earthsdk3-ue 3.0.3-beta.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/earthsdk3-ue.cjs +1 -1
- package/dist/earthsdk3-ue.js +1 -1
- package/dist/earthsdk3-ue.mjs +1 -1
- package/dist/types/ESUeViewer/ESUeViewer.d.ts +17 -13
- package/dist/types/ESUeViewer/Viewers/CSTMPSViewer/ESMsgWebSocketWrapper.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/CSTMPSViewer/PSUEViewer.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/CSTMPSViewer/PSUEViewerWrapper.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/CSTMPSViewer/index.d.ts +5 -5
- package/dist/types/ESUeViewer/Viewers/H5Viewer/DLViewer.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/H5Viewer/ViewerH5Instance.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/INNPSViewer/WebRtcManager.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/INNPSViewer/WebRtcManagerWrapper.d.ts +1 -1
- package/dist/types/ESUeViewer/Viewers/INNPSViewer/index.d.ts +1 -1
- package/dist/types/ESUeViewer/inner/ReactProps.d.ts +7 -7
- package/dist/types/ESUeViewer/inner/UeLocalViewer.d.ts +2 -2
- package/dist/types/ESUeViewer/inner/ViewerCreating.d.ts +2 -1
- package/dist/types/ESUeViewer/inner/ViewerInstance.d.ts +1 -1
- package/dist/types/ESUeViewer/inner/ViewerLocalInstance.d.ts +1 -1
- package/dist/types/ESUeViewer/uemsg/CallUeFuncs.d.ts +3 -0
- package/dist/types/ESUeViewer/uemsg/UeCloudViewerBase.d.ts +1 -1
- package/dist/types/ESUeViewer/uemsg/UeFuncsType.d.ts +8 -1
- package/dist/types/UeObjects/base/UeESGeoVector/index.d.ts +1 -1
- package/dist/types/UeObjects/base/UeESObjectWithLocation/index.d.ts +1 -1
- package/dist/types/UeObjects/base/UeESSceneObject/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeES3DTileset/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeESAreaMeasurement/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeESClassification/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeESForestTileset/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeESGeoExtrudedPolygon/index.d.ts +1 -1
- package/dist/types/UeObjects/general/UeESUnrealActor/index.d.ts +1 -1
- package/package.json +1 -2
package/dist/earthsdk3-ue.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see earthsdk3-ue.mjs.LICENSE.txt */
|
|
2
|
-
import*as A from"earthsdk3";var e={440:function(A){A.exports=function(){var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,n=arguments.length;t<n;t++)for(var r in e=arguments[t])Object.prototype.hasOwnProperty.call(e,r)&&(A[r]=e[r]);return A},t.apply(this,arguments)};function n(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}function r(A,e){var t,n,r,s,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){i.label=s[1];break}if(6===s[0]&&i.label<r[1]){i.label=r[1],r=s;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(s);break}r[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(A,i)}catch(A){s=[6,A],n=0}finally{t=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,o])}}}function s(A,e,t){if(t||2===arguments.length)for(var n,r=0,s=e.length;r<s;r++)!n&&r in e||(n||(n=Array.prototype.slice.call(e,0,r)),n[r]=e[r]);return A.concat(n||e)}for(var i=function(){function A(A,e,t,n){this.left=A,this.top=e,this.width=t,this.height=n}return A.prototype.add=function(e,t,n,r){return new A(this.left+e,this.top+t,this.width+n,this.height+r)},A.fromClientRect=function(e,t){return new A(t.left+e.windowBounds.left,t.top+e.windowBounds.top,t.width,t.height)},A.fromDOMRectList=function(e,t){var n=Array.from(t).find((function(A){return 0!==A.width}));return n?new A(n.left+e.windowBounds.left,n.top+e.windowBounds.top,n.width,n.height):A.EMPTY},A.EMPTY=new A(0,0,0,0),A}(),o=function(A,e){return i.fromClientRect(A,e.getBoundingClientRect())},a=function(A){for(var e=[],t=0,n=A.length;t<n;){var r=A.charCodeAt(t++);if(r>=55296&&r<=56319&&t<n){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&r)<<10)+(1023&s)+65536):(e.push(r),t--)}else e.push(r)}return e},c=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var n=[],r=-1,s="";++r<t;){var i=A[r];i<=65535?n.push(i):(i-=65536,n.push(55296+(i>>10),i%1024+56320)),(r+1===t||n.length>16384)&&(s+=String.fromCharCode.apply(String,n),n.length=0)}return s},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),u=0;u<64;u++)d[l.charCodeAt(u)]=u;for(var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),B=0;B<64;B++)g[h.charCodeAt(B)]=B;for(var w=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},p=function(){function A(A,e,t,n,r,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=n,this.index=r,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",m="undefined"==typeof Uint8Array?[]:new Uint8Array(256),f=0;f<64;f++)m[C.charCodeAt(f)]=f;var v=10,Q=13,F=15,U=17,E=18,y=19,S=20,b=21,I=22,H=24,T=25,M=26,L=27,x=28,P=30,D=32,R=33,k=34,K=35,O=37,V=38,G=39,_=40,N=42,W=[9001,65288],J="×",X="÷",z=function(A){var e,t,n,r=function(A){var e,t,n,r,s,i=.75*A.length,o=A.length,a=0;"="===A[A.length-1]&&(i--,"="===A[A.length-2]&&i--);var c="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(i):new Array(i),l=Array.isArray(c)?c:new Uint8Array(c);for(e=0;e<o;e+=4)t=g[A.charCodeAt(e)],n=g[A.charCodeAt(e+1)],r=g[A.charCodeAt(e+2)],s=g[A.charCodeAt(e+3)],l[a++]=t<<2|n>>4,l[a++]=(15&n)<<4|r>>2,l[a++]=(3&r)<<6|63&s;return c}(A),s=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=4)t.push(A[n+3]<<24|A[n+2]<<16|A[n+1]<<8|A[n]);return t}(r):new Uint32Array(r),i=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=2)t.push(A[n+1]<<8|A[n]);return t}(r):new Uint16Array(r),o=w(i,12,s[4]/2),a=2===s[5]?w(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,n):new Uint32Array(Array.prototype.slice.call(e,t,n)));return new p(s[0],s[1],s[2],s[3],o,a)}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),Y=[P,36],j=[1,2,3,5],$=[v,8],Z=[L,M],q=j.concat($),AA=[V,G,_,k,K],eA=[F,Q],tA=function(A,e,t,n){var r=n[t];if(Array.isArray(A)?-1!==A.indexOf(r):A===r)for(var s=t;s<=n.length;){if((a=n[++s])===e)return!0;if(a!==v)break}if(r===v)for(s=t;s>0;){var i=n[--s];if(Array.isArray(A)?-1!==A.indexOf(i):A===i)for(var o=t;o<=n.length;){var a;if((a=n[++o])===e)return!0;if(a!==v)break}if(i!==v)break}return!1},nA=function(A,e){for(var t=A;t>=0;){var n=e[t];if(n!==v)return n;t--}return 0},rA=function(A,e,t,n,r){if(0===t[n])return J;var s=n-1;if(Array.isArray(r)&&!0===r[s])return J;var i=s-1,o=s+1,a=e[s],c=i>=0?e[i]:0,l=e[o];if(2===a&&3===l)return J;if(-1!==j.indexOf(a))return"!";if(-1!==j.indexOf(l))return J;if(-1!==$.indexOf(l))return J;if(8===nA(s,e))return X;if(11===z.get(A[s]))return J;if((a===D||a===R)&&11===z.get(A[o]))return J;if(7===a||7===l)return J;if(9===a)return J;if(-1===[v,Q,F].indexOf(a)&&9===l)return J;if(-1!==[U,E,y,H,x].indexOf(l))return J;if(nA(s,e)===I)return J;if(tA(23,I,s,e))return J;if(tA([U,E],b,s,e))return J;if(tA(12,12,s,e))return J;if(a===v)return X;if(23===a||23===l)return J;if(16===l||16===a)return X;if(-1!==[Q,F,b].indexOf(l)||14===a)return J;if(36===c&&-1!==eA.indexOf(a))return J;if(a===x&&36===l)return J;if(l===S)return J;if(-1!==Y.indexOf(l)&&a===T||-1!==Y.indexOf(a)&&l===T)return J;if(a===L&&-1!==[O,D,R].indexOf(l)||-1!==[O,D,R].indexOf(a)&&l===M)return J;if(-1!==Y.indexOf(a)&&-1!==Z.indexOf(l)||-1!==Z.indexOf(a)&&-1!==Y.indexOf(l))return J;if(-1!==[L,M].indexOf(a)&&(l===T||-1!==[I,F].indexOf(l)&&e[o+1]===T)||-1!==[I,F].indexOf(a)&&l===T||a===T&&-1!==[T,x,H].indexOf(l))return J;if(-1!==[T,x,H,U,E].indexOf(l))for(var d=s;d>=0;){if((u=e[d])===T)return J;if(-1===[x,H].indexOf(u))break;d--}if(-1!==[L,M].indexOf(l))for(d=-1!==[U,E].indexOf(a)?i:s;d>=0;){var u;if((u=e[d])===T)return J;if(-1===[x,H].indexOf(u))break;d--}if(V===a&&-1!==[V,G,k,K].indexOf(l)||-1!==[G,k].indexOf(a)&&-1!==[G,_].indexOf(l)||-1!==[_,K].indexOf(a)&&l===_)return J;if(-1!==AA.indexOf(a)&&-1!==[S,M].indexOf(l)||-1!==AA.indexOf(l)&&a===L)return J;if(-1!==Y.indexOf(a)&&-1!==Y.indexOf(l))return J;if(a===H&&-1!==Y.indexOf(l))return J;if(-1!==Y.concat(T).indexOf(a)&&l===I&&-1===W.indexOf(A[o])||-1!==Y.concat(T).indexOf(l)&&a===E)return J;if(41===a&&41===l){for(var h=t[s],g=1;h>0&&41===e[--h];)g++;if(g%2!=0)return J}return a===D&&l===R?J:X},sA=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],n=[],r=[];return A.forEach((function(A,s){var i=z.get(A);if(i>50?(r.push(!0),i-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return n.push(s),t.push(16);if(4===i||11===i){if(0===s)return n.push(s),t.push(P);var o=t[s-1];return-1===q.indexOf(o)?(n.push(n[s-1]),t.push(o)):(n.push(s),t.push(P))}return n.push(s),31===i?t.push("strict"===e?b:O):i===N||29===i?t.push(P):43===i?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(O):t.push(P):void t.push(i)})),[n,t,r]}(A,e.lineBreak),n=t[0],r=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(r=r.map((function(A){return-1!==[T,P,N].indexOf(A)?O:A})));var i="keep-all"===e.wordBreak?s.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[n,r,i]},iA=function(){function A(A,e,t,n){this.codePoints=A,this.required="!"===e,this.start=t,this.end=n}return A.prototype.slice=function(){return c.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),oA=45,aA=43,cA=-1,lA=function(A){return A>=48&&A<=57},dA=function(A){return lA(A)||A>=65&&A<=70||A>=97&&A<=102},uA=function(A){return 10===A||9===A||32===A},hA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},gA=function(A){return hA(A)||lA(A)||A===oA},BA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},wA=function(A,e){return 92===A&&10!==e},pA=function(A,e,t){return A===oA?hA(e)||wA(e,t):!!hA(A)||!(92!==A||!wA(A,e))},CA=function(A,e,t){return A===aA||A===oA?!!lA(e)||46===e&&lA(t):lA(46===A?e:A)},mA=function(A){var e=0,t=1;A[e]!==aA&&A[e]!==oA||(A[e]===oA&&(t=-1),e++);for(var n=[];lA(A[e]);)n.push(A[e++]);var r=n.length?parseInt(c.apply(void 0,n),10):0;46===A[e]&&e++;for(var s=[];lA(A[e]);)s.push(A[e++]);var i=s.length,o=i?parseInt(c.apply(void 0,s),10):0;69!==A[e]&&101!==A[e]||e++;var a=1;A[e]!==aA&&A[e]!==oA||(A[e]===oA&&(a=-1),e++);for(var l=[];lA(A[e]);)l.push(A[e++]);var d=l.length?parseInt(c.apply(void 0,l),10):0;return t*(r+o*Math.pow(10,-i))*Math.pow(10,a*d)},fA={type:2},vA={type:3},QA={type:4},FA={type:13},UA={type:8},EA={type:21},yA={type:9},SA={type:10},bA={type:11},IA={type:12},HA={type:14},TA={type:23},MA={type:1},LA={type:25},xA={type:24},PA={type:26},DA={type:27},RA={type:28},kA={type:29},KA={type:31},OA={type:32},VA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(a(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==OA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),n=this.peekCodePoint(2);if(gA(e)||wA(t,n)){var r=pA(e,t,n)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),FA;break;case 39:return this.consumeStringToken(39);case 40:return fA;case 41:return vA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),HA;break;case aA:if(CA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return QA;case oA:var s=A,i=this.peekCodePoint(0),o=this.peekCodePoint(1);if(CA(s,i,o))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(pA(s,i,o))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(i===oA&&62===o)return this.consumeCodePoint(),this.consumeCodePoint(),xA;break;case 46:if(CA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var a=this.consumeCodePoint();if(42===a&&47===(a=this.consumeCodePoint()))return this.consumeToken();if(a===cA)return this.consumeToken()}break;case 58:return PA;case 59:return DA;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===oA&&this.peekCodePoint(2)===oA)return this.consumeCodePoint(),this.consumeCodePoint(),LA;break;case 64:var l=this.peekCodePoint(0),d=this.peekCodePoint(1),u=this.peekCodePoint(2);if(pA(l,d,u))return{type:7,value:this.consumeName()};break;case 91:return RA;case 92:if(wA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return kA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),UA;break;case 123:return bA;case 125:return IA;case 117:case 85:var h=this.peekCodePoint(0),g=this.peekCodePoint(1);return h!==aA||!dA(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),yA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),EA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),SA;break;case cA:return OA}return uA(A)?(this.consumeWhiteSpace(),KA):lA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):hA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:c(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();dA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(c.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(c.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var n=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===oA&&dA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var r=[];dA(e)&&r.length<6;)r.push(e),e=this.consumeCodePoint();return{type:30,start:n,end:parseInt(c.apply(void 0,r),16)}}return{type:30,start:n,end:n}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===cA)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===cA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),TA)}for(;;){var n=this.consumeCodePoint();if(n===cA||41===n)return{type:22,value:c.apply(void 0,A)};if(uA(n))return this.consumeWhiteSpace(),this.peekCodePoint(0)===cA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:c.apply(void 0,A)}):(this.consumeBadUrlRemnants(),TA);if(34===n||39===n||40===n||BA(n))return this.consumeBadUrlRemnants(),TA;if(92===n){if(!wA(n,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),TA;A.push(this.consumeEscapedCodePoint())}else A.push(n)}},A.prototype.consumeWhiteSpace=function(){for(;uA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===cA)return;wA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=c.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var n=this._value[t];if(n===cA||void 0===n||n===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===n)return this._value.splice(0,t),MA;if(92===n){var r=this._value[t+1];r!==cA&&void 0!==r&&(10===r?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):wA(n,r)&&(e+=this.consumeStringSlice(t),e+=c(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==aA&&t!==oA||A.push(this.consumeCodePoint());lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var n=this.peekCodePoint(1);if(46===t&&lA(n))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),n=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===t||101===t)&&((n===aA||n===oA)&&lA(r)||lA(n)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[mA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],n=this.peekCodePoint(0),r=this.peekCodePoint(1),s=this.peekCodePoint(2);return pA(n,r,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===n?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(dA(A)){for(var e=c(A);dA(this.peekCodePoint(0))&&e.length<6;)e+=c(this.consumeCodePoint());uA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===cA?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(gA(e))A+=c(e);else{if(!wA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=c(this.consumeEscapedCodePoint())}}},A}(),GA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new VA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||$A(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?OA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),_A=function(A){return 15===A.type},NA=function(A){return 17===A.type},WA=function(A){return 20===A.type},JA=function(A){return 0===A.type},XA=function(A,e){return WA(A)&&A.value===e},zA=function(A){return 31!==A.type},YA=function(A){return 31!==A.type&&4!==A.type},jA=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},$A=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},ZA=function(A){return 17===A.type||15===A.type},qA=function(A){return 16===A.type||ZA(A)},Ae=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},ee={type:17,number:0,flags:4},te={type:16,number:50,flags:4},ne={type:16,number:100,flags:4},re=function(A,e,t){var n=A[0],r=A[1];return[se(n,e),se(void 0!==r?r:n,t)]},se=function(A,e){if(16===A.type)return A.number/100*e;if(_A(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},ie="grad",oe="turn",ae=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case ie:return Math.PI/200*e.number;case"rad":return e.number;case oe:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},ce=function(A){return 15===A.type&&("deg"===A.unit||A.unit===ie||"rad"===A.unit||A.unit===oe)},le=function(A){switch(A.filter(WA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[ee,ee];case"to top":case"bottom":return de(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[ee,ne];case"to right":case"left":return de(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ne,ne];case"to bottom":case"top":return de(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ne,ee];case"to left":case"right":return de(270)}return 0},de=function(A){return Math.PI*A/180},ue=function(A,e){if(18===e.type){var t=fe[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var n=e.value.substring(0,1),r=e.value.substring(1,2),s=e.value.substring(2,3);return Be(parseInt(n+n,16),parseInt(r+r,16),parseInt(s+s,16),1)}if(4===e.value.length){n=e.value.substring(0,1),r=e.value.substring(1,2),s=e.value.substring(2,3);var i=e.value.substring(3,4);return Be(parseInt(n+n,16),parseInt(r+r,16),parseInt(s+s,16),parseInt(i+i,16)/255)}if(6===e.value.length)return n=e.value.substring(0,2),r=e.value.substring(2,4),s=e.value.substring(4,6),Be(parseInt(n,16),parseInt(r,16),parseInt(s,16),1);if(8===e.value.length)return n=e.value.substring(0,2),r=e.value.substring(2,4),s=e.value.substring(4,6),i=e.value.substring(6,8),Be(parseInt(n,16),parseInt(r,16),parseInt(s,16),parseInt(i,16)/255)}if(20===e.type){var o=Qe[e.value.toUpperCase()];if(void 0!==o)return o}return Qe.TRANSPARENT},he=function(A){return!(255&A)},ge=function(A){var e=255&A,t=255&A>>8,n=255&A>>16,r=255&A>>24;return e<255?"rgba("+r+","+n+","+t+","+e/255+")":"rgb("+r+","+n+","+t+")"},Be=function(A,e,t,n){return(A<<24|e<<16|t<<8|Math.round(255*n))>>>0},we=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},pe=function(A,e){var t=e.filter(YA);if(3===t.length){var n=t.map(we),r=n[0],s=n[1],i=n[2];return Be(r,s,i,1)}if(4===t.length){var o=t.map(we),a=(r=o[0],s=o[1],i=o[2],o[3]);return Be(r,s,i,a)}return 0};function Ce(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var me=function(A,e){var t=e.filter(YA),n=t[0],r=t[1],s=t[2],i=t[3],o=(17===n.type?de(n.number):ae(A,n))/(2*Math.PI),a=qA(r)?r.number/100:0,c=qA(s)?s.number/100:0,l=void 0!==i&&qA(i)?se(i,1):1;if(0===a)return Be(255*c,255*c,255*c,1);var d=c<=.5?c*(a+1):c+a-c*a,u=2*c-d,h=Ce(u,d,o+1/3),g=Ce(u,d,o),B=Ce(u,d,o-1/3);return Be(255*h,255*g,255*B,l)},fe={hsl:me,hsla:me,rgb:pe,rgba:pe},ve=function(A,e){return ue(A,GA.create(e).parseComponentValue())},Qe={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Fe={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(WA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Ue={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ee=function(A,e){var t=ue(A,e[0]),n=e[1];return n&&qA(n)?{color:t,stop:n}:{color:t,stop:null}},ye=function(A,e){var t=A[0],n=A[A.length-1];null===t.stop&&(t.stop=ee),null===n.stop&&(n.stop=ne);for(var r=[],s=0,i=0;i<A.length;i++){var o=A[i].stop;if(null!==o){var a=se(o,e);a>s?r.push(a):r.push(s),s=a}else r.push(null)}var c=null;for(i=0;i<r.length;i++){var l=r[i];if(null===l)null===c&&(c=i);else if(null!==c){for(var d=i-c,u=(l-r[c-1])/(d+1),h=1;h<=d;h++)r[c+h-1]=u*h;c=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,r[t]/e),0)}}))},Se=function(A,e,t){var n="number"==typeof A?A:function(A,e,t){var n=e/2,r=t/2,s=se(A[0],e)-n,i=r-se(A[1],t);return(Math.atan2(i,s)+2*Math.PI)%(2*Math.PI)}(A,e,t),r=Math.abs(e*Math.sin(n))+Math.abs(t*Math.cos(n)),s=e/2,i=t/2,o=r/2,a=Math.sin(n-Math.PI/2)*o,c=Math.cos(n-Math.PI/2)*o;return[r,s-c,s+c,i-a,i+a]},be=function(A,e){return Math.sqrt(A*A+e*e)},Ie=function(A,e,t,n,r){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var s=e[0],i=e[1],o=be(t-s,n-i);return(r?o<A.optimumDistance:o>A.optimumDistance)?{optimumCorner:e,optimumDistance:o}:A}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},He=function(A,e){var t=de(180),n=[];return jA(e).forEach((function(e,r){if(0===r){var s=e[0];if(20===s.type&&-1!==["top","left","right","bottom"].indexOf(s.value))return void(t=le(e));if(ce(s))return void(t=(ae(A,s)+de(270))%de(360))}var i=Ee(A,e);n.push(i)})),{angle:t,stops:n,type:1}},Te="closest-side",Me="farthest-side",Le="closest-corner",xe="farthest-corner",Pe="circle",De="ellipse",Re="cover",ke="contain",Ke=function(A,e){var t=0,n=3,r=[],s=[];return jA(e).forEach((function(e,i){var o=!0;if(0===i?o=e.reduce((function(A,e){if(WA(e))switch(e.value){case"center":return s.push(te),!1;case"top":case"left":return s.push(ee),!1;case"right":case"bottom":return s.push(ne),!1}else if(qA(e)||ZA(e))return s.push(e),!1;return A}),o):1===i&&(o=e.reduce((function(A,e){if(WA(e))switch(e.value){case Pe:return t=0,!1;case De:return t=1,!1;case ke:case Te:return n=0,!1;case Me:return n=1,!1;case Le:return n=2,!1;case Re:case xe:return n=3,!1}else if(ZA(e)||qA(e))return Array.isArray(n)||(n=[]),n.push(e),!1;return A}),o)),o){var a=Ee(A,e);r.push(a)}})),{size:n,shape:t,stops:r,position:s,type:2}},Oe=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var n=Ge[e.name];if(void 0===n)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return n(A,e.values)}throw new Error("Unsupported image type "+e.type)};var Ve,Ge={"linear-gradient":function(A,e){var t=de(180),n=[];return jA(e).forEach((function(e,r){if(0===r){var s=e[0];if(20===s.type&&"to"===s.value)return void(t=le(e));if(ce(s))return void(t=ae(A,s))}var i=Ee(A,e);n.push(i)})),{angle:t,stops:n,type:1}},"-moz-linear-gradient":He,"-ms-linear-gradient":He,"-o-linear-gradient":He,"-webkit-linear-gradient":He,"radial-gradient":function(A,e){var t=0,n=3,r=[],s=[];return jA(e).forEach((function(e,i){var o=!0;if(0===i){var a=!1;o=e.reduce((function(A,e){if(a)if(WA(e))switch(e.value){case"center":return s.push(te),A;case"top":case"left":return s.push(ee),A;case"right":case"bottom":return s.push(ne),A}else(qA(e)||ZA(e))&&s.push(e);else if(WA(e))switch(e.value){case Pe:return t=0,!1;case De:return t=1,!1;case"at":return a=!0,!1;case Te:return n=0,!1;case Re:case Me:return n=1,!1;case ke:case Le:return n=2,!1;case xe:return n=3,!1}else if(ZA(e)||qA(e))return Array.isArray(n)||(n=[]),n.push(e),!1;return A}),o)}if(o){var c=Ee(A,e);r.push(c)}})),{size:n,shape:t,stops:r,position:s,type:2}},"-moz-radial-gradient":Ke,"-ms-radial-gradient":Ke,"-o-radial-gradient":Ke,"-webkit-radial-gradient":Ke,"-webkit-gradient":function(A,e){var t=de(180),n=[],r=1;return jA(e).forEach((function(e,t){var s=e[0];if(0===t){if(WA(s)&&"linear"===s.value)return void(r=1);if(WA(s)&&"radial"===s.value)return void(r=2)}if(18===s.type)if("from"===s.name){var i=ue(A,s.values[0]);n.push({stop:ee,color:i})}else if("to"===s.name)i=ue(A,s.values[0]),n.push({stop:ne,color:i});else if("color-stop"===s.name){var o=s.values.filter(YA);if(2===o.length){i=ue(A,o[1]);var a=o[0];NA(a)&&n.push({stop:{type:16,number:100*a.number,flags:a.flags},color:i})}}})),1===r?{angle:(t+de(180))%de(360),stops:n,type:r}:{size:3,shape:0,stops:n,position:[],type:r}}},_e={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return YA(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!Ge[A.name])}(A)})).map((function(e){return Oe(A,e)}))}},Ne={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(WA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},We={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return jA(e).map((function(A){return A.filter(qA)})).map(Ae)}},Je={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return jA(e).map((function(A){return A.filter(WA).map((function(A){return A.value})).join(" ")})).map(Xe)}},Xe=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(Ve||(Ve={}));var ze,Ye={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return jA(e).map((function(A){return A.filter(je)}))}},je=function(A){return WA(A)||qA(A)},$e=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Ze=$e("top"),qe=$e("right"),At=$e("bottom"),et=$e("left"),tt=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return Ae(e.filter(qA))}}},nt=tt("top-left"),rt=tt("top-right"),st=tt("bottom-right"),it=tt("bottom-left"),ot=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},at=ot("top"),ct=ot("right"),lt=ot("bottom"),dt=ot("left"),ut=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}}},ht=ut("top"),gt=ut("right"),Bt=ut("bottom"),wt=ut("left"),pt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ct={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},mt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).reduce((function(A,e){return A|ft(e.value)}),0)}},ft=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},vt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Qt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(ze||(ze={}));var Ft,Ut={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?ze.STRICT:ze.NORMAL}},Et={name:"line-height",initialValue:"normal",prefix:!1,type:4},yt=function(A,e){return WA(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:qA(A)?se(A,e):e},St={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:Oe(A,e)}},bt={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},It={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Ht=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},Tt=Ht("top"),Mt=Ht("right"),Lt=Ht("bottom"),xt=Ht("left"),Pt={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Dt={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Rt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kt=Rt("top"),Kt=Rt("right"),Ot=Rt("bottom"),Vt=Rt("left"),Gt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},_t={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Nt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&XA(e[0],"none")?[]:jA(e).map((function(e){for(var t={color:Qe.TRANSPARENT,offsetX:ee,offsetY:ee,blur:ee},n=0,r=0;r<e.length;r++){var s=e[r];ZA(s)?(0===n?t.offsetX=s:1===n?t.offsetY=s:t.blur=s,n++):t.color=ue(A,s)}return t}))}},Wt={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},Jt={name:"transform",initialValue:"none",prefix:!0,type:0,parse:function(A,e){if(20===e.type&&"none"===e.value)return null;if(18===e.type){var t=Xt[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported transform function "'+e.name+'"');return t(e.values)}return null}},Xt={matrix:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number}));return 6===e.length?e:null},matrix3d:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number})),t=e[0],n=e[1];e[2],e[3];var r=e[4],s=e[5];e[6],e[7],e[8],e[9],e[10],e[11];var i=e[12],o=e[13];return e[14],e[15],16===e.length?[t,n,r,s,i,o]:null}},zt={type:16,number:50,flags:4},Yt=[zt,zt],jt={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(A,e){var t=e.filter(qA);return 2!==t.length?Yt:[t[0],t[1]]}},$t={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"hidden":return 1;case"collapse":return 2;default:return 0}}};!function(A){A.NORMAL="normal",A.BREAK_ALL="break-all",A.KEEP_ALL="keep-all"}(Ft||(Ft={}));for(var Zt={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"break-all":return Ft.BREAK_ALL;case"keep-all":return Ft.KEEP_ALL;default:return Ft.NORMAL}}},qt={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(A,e){if(20===e.type)return{auto:!0,order:0};if(NA(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},An={name:"time",parse:function(A,e){if(15===e.type)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")}},en={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:1}},tn={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},nn={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).map((function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0})).filter((function(A){return 0!==A}))}},rn={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],n=[];return e.forEach((function(A){switch(A.type){case 20:case 0:t.push(A.value);break;case 17:t.push(A.number.toString());break;case 4:n.push(t.join(" ")),t.length=0}})),t.length&&n.push(t.join(" ")),n.map((function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"}))}},sn={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},on={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:WA(e)&&"bold"===e.value?700:400}},an={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(WA).map((function(A){return A.value}))}},cn={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},ln=function(A,e){return!!(A&e)},dn={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e}},un={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;for(var n=[],r=e.filter(zA),s=0;s<r.length;s++){var i=r[s],o=r[s+1];if(20===i.type){var a=o&&NA(o)?o.number:1;n.push({counter:i.value,increment:a})}}return n}},hn={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],n=e.filter(zA),r=0;r<n.length;r++){var s=n[r],i=n[r+1];if(WA(s)&&"none"!==s.value){var o=i&&NA(i)?i.number:0;t.push({counter:s.value,reset:o})}}return t}},gn={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map((function(e){return An.parse(A,e)}))}},Bn={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;var n=[],r=e.filter(JA);if(r.length%2!=0)return null;for(var s=0;s<r.length;s+=2){var i=r[s].value,o=r[s+1].value;n.push({open:i,close:o})}return n}},wn=function(A,e,t){if(!A)return"";var n=A[Math.min(e,A.length-1)];return n?t?n.open:n.close:""},pn={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&XA(e[0],"none")?[]:jA(e).map((function(e){for(var t={color:255,offsetX:ee,offsetY:ee,blur:ee,spread:ee,inset:!1},n=0,r=0;r<e.length;r++){var s=e[r];XA(s,"inset")?t.inset=!0:ZA(s)?(0===n?t.offsetX=s:1===n?t.offsetY=s:2===n?t.blur=s:t.spread=s,n++):t.color=ue(A,s)}return t}))}},Cn={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:function(A,e){var t=[];return e.filter(WA).forEach((function(A){switch(A.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2)}})),[0,1,2].forEach((function(A){-1===t.indexOf(A)&&t.push(A)})),t}},mn={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},fn={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}},vn=function(){function A(A,e){var t,n;this.animationDuration=Un(A,gn,e.animationDuration),this.backgroundClip=Un(A,Fe,e.backgroundClip),this.backgroundColor=Un(A,Ue,e.backgroundColor),this.backgroundImage=Un(A,_e,e.backgroundImage),this.backgroundOrigin=Un(A,Ne,e.backgroundOrigin),this.backgroundPosition=Un(A,We,e.backgroundPosition),this.backgroundRepeat=Un(A,Je,e.backgroundRepeat),this.backgroundSize=Un(A,Ye,e.backgroundSize),this.borderTopColor=Un(A,Ze,e.borderTopColor),this.borderRightColor=Un(A,qe,e.borderRightColor),this.borderBottomColor=Un(A,At,e.borderBottomColor),this.borderLeftColor=Un(A,et,e.borderLeftColor),this.borderTopLeftRadius=Un(A,nt,e.borderTopLeftRadius),this.borderTopRightRadius=Un(A,rt,e.borderTopRightRadius),this.borderBottomRightRadius=Un(A,st,e.borderBottomRightRadius),this.borderBottomLeftRadius=Un(A,it,e.borderBottomLeftRadius),this.borderTopStyle=Un(A,at,e.borderTopStyle),this.borderRightStyle=Un(A,ct,e.borderRightStyle),this.borderBottomStyle=Un(A,lt,e.borderBottomStyle),this.borderLeftStyle=Un(A,dt,e.borderLeftStyle),this.borderTopWidth=Un(A,ht,e.borderTopWidth),this.borderRightWidth=Un(A,gt,e.borderRightWidth),this.borderBottomWidth=Un(A,Bt,e.borderBottomWidth),this.borderLeftWidth=Un(A,wt,e.borderLeftWidth),this.boxShadow=Un(A,pn,e.boxShadow),this.color=Un(A,pt,e.color),this.direction=Un(A,Ct,e.direction),this.display=Un(A,mt,e.display),this.float=Un(A,vt,e.cssFloat),this.fontFamily=Un(A,rn,e.fontFamily),this.fontSize=Un(A,sn,e.fontSize),this.fontStyle=Un(A,cn,e.fontStyle),this.fontVariant=Un(A,an,e.fontVariant),this.fontWeight=Un(A,on,e.fontWeight),this.letterSpacing=Un(A,Qt,e.letterSpacing),this.lineBreak=Un(A,Ut,e.lineBreak),this.lineHeight=Un(A,Et,e.lineHeight),this.listStyleImage=Un(A,St,e.listStyleImage),this.listStylePosition=Un(A,bt,e.listStylePosition),this.listStyleType=Un(A,It,e.listStyleType),this.marginTop=Un(A,Tt,e.marginTop),this.marginRight=Un(A,Mt,e.marginRight),this.marginBottom=Un(A,Lt,e.marginBottom),this.marginLeft=Un(A,xt,e.marginLeft),this.opacity=Un(A,en,e.opacity);var r=Un(A,Pt,e.overflow);this.overflowX=r[0],this.overflowY=r[r.length>1?1:0],this.overflowWrap=Un(A,Dt,e.overflowWrap),this.paddingTop=Un(A,kt,e.paddingTop),this.paddingRight=Un(A,Kt,e.paddingRight),this.paddingBottom=Un(A,Ot,e.paddingBottom),this.paddingLeft=Un(A,Vt,e.paddingLeft),this.paintOrder=Un(A,Cn,e.paintOrder),this.position=Un(A,_t,e.position),this.textAlign=Un(A,Gt,e.textAlign),this.textDecorationColor=Un(A,tn,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=Un(A,nn,null!==(n=e.textDecorationLine)&&void 0!==n?n:e.textDecoration),this.textShadow=Un(A,Nt,e.textShadow),this.textTransform=Un(A,Wt,e.textTransform),this.transform=Un(A,Jt,e.transform),this.transformOrigin=Un(A,jt,e.transformOrigin),this.visibility=Un(A,$t,e.visibility),this.webkitTextStrokeColor=Un(A,mn,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=Un(A,fn,e.webkitTextStrokeWidth),this.wordBreak=Un(A,Zt,e.wordBreak),this.zIndex=Un(A,qt,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return he(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ln(this.display,4)||ln(this.display,33554432)||ln(this.display,268435456)||ln(this.display,536870912)||ln(this.display,67108864)||ln(this.display,134217728)},A}(),Qn=function(A,e){this.content=Un(A,dn,e.content),this.quotes=Un(A,Bn,e.quotes)},Fn=function(A,e){this.counterIncrement=Un(A,un,e.counterIncrement),this.counterReset=Un(A,hn,e.counterReset)},Un=function(A,e,t){var n=new VA,r=null!=t?t.toString():e.initialValue;n.write(r);var s=new GA(n.read());switch(e.type){case 2:var i=s.parseComponentValue();return e.parse(A,WA(i)?i.value:e.initialValue);case 0:return e.parse(A,s.parseComponentValue());case 1:return e.parse(A,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(e.format){case"angle":return ae(A,s.parseComponentValue());case"color":return ue(A,s.parseComponentValue());case"image":return Oe(A,s.parseComponentValue());case"length":var o=s.parseComponentValue();return ZA(o)?o:ee;case"length-percentage":var a=s.parseComponentValue();return qA(a)?a:ee;case"time":return An.parse(A,s.parseComponentValue())}}},En=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},yn=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,En(e,3),this.styles=new vn(A,window.getComputedStyle(e,null)),Hr(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=o(this.context,e),En(e,4)&&(this.flags|=16)},Sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bn="undefined"==typeof Uint8Array?[]:new Uint8Array(256),In=0;In<64;In++)bn[Sn.charCodeAt(In)]=In;for(var Hn=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},Tn=function(){function A(A,e,t,n,r,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=n,this.index=r,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),Mn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ln="undefined"==typeof Uint8Array?[]:new Uint8Array(256),xn=0;xn<64;xn++)Ln[Mn.charCodeAt(xn)]=xn;var Pn,Dn=8,Rn=9,kn=11,Kn=12,On=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var n=[],r=-1,s="";++r<t;){var i=A[r];i<=65535?n.push(i):(i-=65536,n.push(55296+(i>>10),i%1024+56320)),(r+1===t||n.length>16384)&&(s+=String.fromCharCode.apply(String,n),n.length=0)}return s},Vn=function(A){var e,t,n,r=function(A){var e,t,n,r,s,i=.75*A.length,o=A.length,a=0;"="===A[A.length-1]&&(i--,"="===A[A.length-2]&&i--);var c="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(i):new Array(i),l=Array.isArray(c)?c:new Uint8Array(c);for(e=0;e<o;e+=4)t=bn[A.charCodeAt(e)],n=bn[A.charCodeAt(e+1)],r=bn[A.charCodeAt(e+2)],s=bn[A.charCodeAt(e+3)],l[a++]=t<<2|n>>4,l[a++]=(15&n)<<4|r>>2,l[a++]=(3&r)<<6|63&s;return c}(A),s=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=4)t.push(A[n+3]<<24|A[n+2]<<16|A[n+1]<<8|A[n]);return t}(r):new Uint32Array(r),i=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=2)t.push(A[n+1]<<8|A[n]);return t}(r):new Uint16Array(r),o=Hn(i,12,s[4]/2),a=2===s[5]?Hn(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,n):new Uint32Array(Array.prototype.slice.call(e,t,n)));return new Tn(s[0],s[1],s[2],s[3],o,a)}("AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),Gn="×",_n=function(A){return Vn.get(A)},Nn=function(A,e,t){var n=t-2,r=e[n],s=e[t-1],i=e[t];if(2===s&&3===i)return Gn;if(2===s||3===s||4===s)return"÷";if(2===i||3===i||4===i)return"÷";if(s===Dn&&-1!==[Dn,Rn,kn,Kn].indexOf(i))return Gn;if(!(s!==kn&&s!==Rn||i!==Rn&&10!==i))return Gn;if((s===Kn||10===s)&&10===i)return Gn;if(13===i||5===i)return Gn;if(7===i)return Gn;if(1===s)return Gn;if(13===s&&14===i){for(;5===r;)r=e[--n];if(14===r)return Gn}if(15===s&&15===i){for(var o=0;15===r;)o++,r=e[--n];if(o%2==0)return Gn}return"÷"},Wn=function(A){var e=function(A){for(var e=[],t=0,n=A.length;t<n;){var r=A.charCodeAt(t++);if(r>=55296&&r<=56319&&t<n){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&r)<<10)+(1023&s)+65536):(e.push(r),t--)}else e.push(r)}return e}(A),t=e.length,n=0,r=0,s=e.map(_n);return{next:function(){if(n>=t)return{done:!0,value:null};for(var A=Gn;n<t&&(A=Nn(0,s,++n))===Gn;);if(A!==Gn||n===t){var i=On.apply(null,e.slice(r,n));return r=n,{value:i,done:!1}}return{done:!0,value:null}}}},Jn=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},Xn=function(A,e,t,n,r){var s="http://www.w3.org/2000/svg",i=document.createElementNS(s,"svg"),o=document.createElementNS(s,"foreignObject");return i.setAttributeNS(null,"width",A.toString()),i.setAttributeNS(null,"height",e.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",t.toString()),o.setAttributeNS(null,"y",n.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(r),i},zn=function(A){return new Promise((function(e,t){var n=new Image;n.onload=function(){return e(n)},n.onerror=t,n.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Yn={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var n=e.getBoundingClientRect(),r=Math.round(n.height);if(A.body.removeChild(t),123===r)return!0}}return!1}(document);return Object.defineProperty(Yn,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Yn.SUPPORT_RANGE_BOUNDS&&function(A){var e=A.createElement("boundtest");e.style.width="50px",e.style.display="block",e.style.fontSize="12px",e.style.letterSpacing="0px",e.style.wordSpacing="0px",A.body.appendChild(e);var t=A.createRange();e.innerHTML="function"==typeof"".repeat?"👨".repeat(10):"";var n=e.firstChild,r=a(n.data).map((function(A){return c(A)})),s=0,i={},o=r.every((function(A,e){t.setStart(n,s),t.setEnd(n,s+A.length);var r=t.getBoundingClientRect();s+=A.length;var o=r.x>i.x||r.y>i.y;return i=r,0===e||o}));return A.body.removeChild(e),o}(document);return Object.defineProperty(Yn,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),n=t.getContext("2d");if(!n)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{n.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Yn,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var n=e.getContext("2d");if(!n)return Promise.reject(!1);n.fillStyle="rgb(0, 255, 0)",n.fillRect(0,0,t,t);var r=new Image,s=e.toDataURL();r.src=s;var i=Xn(t,t,0,0,r);return n.fillStyle="red",n.fillRect(0,0,t,t),zn(i).then((function(e){n.drawImage(e,0,0);var r=n.getImageData(0,0,t,t).data;n.fillStyle="red",n.fillRect(0,0,t,t);var i=A.createElement("div");return i.style.backgroundImage="url("+s+")",i.style.height=t+"px",Jn(r)?zn(Xn(t,t,0,0,i)):Promise.reject(!1)})).then((function(A){return n.drawImage(A,0,0),Jn(n.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Yn,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Yn,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Yn,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Yn,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Yn,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},jn=function(A,e){this.text=A,this.bounds=e},$n=function(A,e){var t=e.ownerDocument;if(t){var n=t.createElement("html2canvaswrapper");n.appendChild(e.cloneNode(!0));var r=e.parentNode;if(r){r.replaceChild(n,e);var s=o(A,n);return n.firstChild&&r.replaceChild(n.firstChild,n),s}}return i.EMPTY},Zn=function(A,e,t){var n=A.ownerDocument;if(!n)throw new Error("Node has no owner document");var r=n.createRange();return r.setStart(A,e),r.setEnd(A,e+t),r},qn=function(A){if(Yn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Wn(A),n=[];!(e=t.next()).done;)e.value&&n.push(e.value.slice());return n}(A)},Ar=function(A,e){return 0!==e.letterSpacing?qn(A):function(A,e){if(Yn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return tr(A,e)}(A,e)},er=[32,160,4961,65792,65793,4153,4241],tr=function(A,e){for(var t,n=function(A,e){var t=a(A),n=sA(t,e),r=n[0],s=n[1],i=n[2],o=t.length,c=0,l=0;return{next:function(){if(l>=o)return{done:!0,value:null};for(var A=J;l<o&&(A=rA(t,s,r,++l,i))===J;);if(A!==J||l===o){var e=new iA(t,A,c,l);return c=l,{value:e,done:!1}}return{done:!0,value:null}}}}(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),r=[],s=function(){if(t.value){var A=t.value.slice(),e=a(A),n="";e.forEach((function(A){-1===er.indexOf(A)?n+=c(A):(n.length&&r.push(n),r.push(c(A)),n="")})),n.length&&r.push(n)}};!(t=n.next()).done;)s();return r},nr=function(A,e,t){this.text=rr(e.data,t.textTransform),this.textBounds=function(A,e,t,n){var r=Ar(e,t),s=[],o=0;return r.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(Yn.SUPPORT_RANGE_BOUNDS){var r=Zn(n,o,e.length).getClientRects();if(r.length>1){var a=qn(e),c=0;a.forEach((function(e){s.push(new jn(e,i.fromDOMRectList(A,Zn(n,c+o,e.length).getClientRects()))),c+=e.length}))}else s.push(new jn(e,i.fromDOMRectList(A,r)))}else{var l=n.splitText(e.length);s.push(new jn(e,$n(A,n))),n=l}else Yn.SUPPORT_RANGE_BOUNDS||(n=n.splitText(e.length));o+=e.length})),s}(A,this.text,t,e)},rr=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(sr,ir);case 2:return A.toUpperCase();default:return A}},sr=/(^|\s|:|-|\(|\))([a-z])/g,ir=function(A,e,t){return A.length>0?e+t.toUpperCase():A},or=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.src=t.currentSrc||t.src,n.intrinsicWidth=t.naturalWidth,n.intrinsicHeight=t.naturalHeight,n.context.cache.addImage(n.src),n}return e(t,A),t}(yn),ar=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.canvas=t,n.intrinsicWidth=t.width,n.intrinsicHeight=t.height,n}return e(t,A),t}(yn),cr=function(A){function t(e,t){var n=A.call(this,e,t)||this,r=new XMLSerializer,s=o(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),n.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(t)),n.intrinsicWidth=t.width.baseVal.value,n.intrinsicHeight=t.height.baseVal.value,n.context.cache.addImage(n.svg),n}return e(t,A),t}(yn),lr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.value=t.value,n}return e(t,A),t}(yn),dr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.start=t.start,n.reversed="boolean"==typeof t.reversed&&!0===t.reversed,n}return e(t,A),t}(yn),ur=[{type:15,flags:0,unit:"px",number:3}],hr=[{type:16,flags:0,number:50}],gr="checkbox",Br="radio",wr="password",pr=707406591,Cr=function(A){function t(e,t){var n,r,s,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(s=(r=t).type===wr?new Array(r.value.length+1).join("•"):r.value).length?r.placeholder||"":s,o.type!==gr&&o.type!==Br||(o.styles.backgroundColor=3739148031,o.styles.borderTopColor=o.styles.borderRightColor=o.styles.borderBottomColor=o.styles.borderLeftColor=2779096575,o.styles.borderTopWidth=o.styles.borderRightWidth=o.styles.borderBottomWidth=o.styles.borderLeftWidth=1,o.styles.borderTopStyle=o.styles.borderRightStyle=o.styles.borderBottomStyle=o.styles.borderLeftStyle=1,o.styles.backgroundClip=[0],o.styles.backgroundOrigin=[0],o.bounds=(n=o.bounds).width>n.height?new i(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width<n.height?new i(n.left,n.top+(n.height-n.width)/2,n.width,n.width):n),o.type){case gr:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=ur;break;case Br:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=hr}return o}return e(t,A),t}(yn),mr=function(A){function t(e,t){var n=A.call(this,e,t)||this,r=t.options[t.selectedIndex||0];return n.value=r&&r.text||"",n}return e(t,A),t}(yn),fr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.value=t.value,n}return e(t,A),t}(yn),vr=function(A){function t(e,t){var n=A.call(this,e,t)||this;n.src=t.src,n.width=parseInt(t.width,10)||0,n.height=parseInt(t.height,10)||0,n.backgroundColor=n.styles.backgroundColor;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement){n.tree=Er(e,t.contentWindow.document.documentElement);var r=t.contentWindow.document.documentElement?ve(e,getComputedStyle(t.contentWindow.document.documentElement).backgroundColor):Qe.TRANSPARENT,s=t.contentWindow.document.body?ve(e,getComputedStyle(t.contentWindow.document.body).backgroundColor):Qe.TRANSPARENT;n.backgroundColor=he(r)?he(s)?n.styles.backgroundColor:s:r}}catch(A){}return n}return e(t,A),t}(yn),Qr=["OL","UL","MENU"],Fr=function(A,e,t,n){for(var r=e.firstChild,s=void 0;r;r=s)if(s=r.nextSibling,br(r)&&r.data.trim().length>0)t.textNodes.push(new nr(A,r,t.styles));else if(Ir(r))if(Nr(r)&&r.assignedNodes)r.assignedNodes().forEach((function(e){return Fr(A,e,t,n)}));else{var i=Ur(A,r);i.styles.isVisible()&&(yr(r,i,n)?i.flags|=4:Sr(i.styles)&&(i.flags|=2),-1!==Qr.indexOf(r.tagName)&&(i.flags|=8),t.elements.push(i),r.slot,r.shadowRoot?Fr(A,r.shadowRoot,i,n):Gr(r)||Pr(r)||_r(r)||Fr(A,r,i,n))}},Ur=function(A,e){return Kr(e)?new or(A,e):Rr(e)?new ar(A,e):Pr(e)?new cr(A,e):Mr(e)?new lr(A,e):Lr(e)?new dr(A,e):xr(e)?new Cr(A,e):_r(e)?new mr(A,e):Gr(e)?new fr(A,e):Or(e)?new vr(A,e):new yn(A,e)},Er=function(A,e){var t=Ur(A,e);return t.flags|=4,Fr(A,e,t,t),t},yr=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Dr(A)&&t.styles.isTransparent()},Sr=function(A){return A.isPositioned()||A.isFloating()},br=function(A){return A.nodeType===Node.TEXT_NODE},Ir=function(A){return A.nodeType===Node.ELEMENT_NODE},Hr=function(A){return Ir(A)&&void 0!==A.style&&!Tr(A)},Tr=function(A){return"object"==typeof A.className},Mr=function(A){return"LI"===A.tagName},Lr=function(A){return"OL"===A.tagName},xr=function(A){return"INPUT"===A.tagName},Pr=function(A){return"svg"===A.tagName},Dr=function(A){return"BODY"===A.tagName},Rr=function(A){return"CANVAS"===A.tagName},kr=function(A){return"VIDEO"===A.tagName},Kr=function(A){return"IMG"===A.tagName},Or=function(A){return"IFRAME"===A.tagName},Vr=function(A){return"STYLE"===A.tagName},Gr=function(A){return"TEXTAREA"===A.tagName},_r=function(A){return"SELECT"===A.tagName},Nr=function(A){return"SLOT"===A.tagName},Wr=function(A){return A.tagName.indexOf("-")>0},Jr=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,n=A.counterReset,r=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(r=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return r&&n.forEach((function(A){var t=e.counters[A.counter];s.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),s},A}(),Xr={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},zr={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Yr={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},jr={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},$r=function(A,e,t,n,r,s){return A<e||A>t?is(A,r,s.length>0):n.integers.reduce((function(e,t,r){for(;A>=t;)A-=t,e+=n.values[r];return e}),"")+s},Zr=function(A,e,t,n){var r="";do{t||A--,r=n(A)+r,A/=e}while(A*e>=e);return r},qr=function(A,e,t,n,r){var s=t-e+1;return(A<0?"-":"")+(Zr(Math.abs(A),s,n,(function(A){return c(Math.floor(A%s)+e)}))+r)},As=function(A,e,t){void 0===t&&(t=". ");var n=e.length;return Zr(Math.abs(A),n,!1,(function(A){return e[Math.floor(A%n)]}))+t},es=function(A,e,t,n,r,s){if(A<-9999||A>9999)return is(A,4,r.length>0);var i=Math.abs(A),o=r;if(0===i)return e[0]+o;for(var a=0;i>0&&a<=4;a++){var c=i%10;0===c&&ln(s,1)&&""!==o?o=e[c]+o:c>1||1===c&&0===a||1===c&&1===a&&ln(s,2)||1===c&&1===a&&ln(s,4)&&A>100||1===c&&a>1&&ln(s,8)?o=e[c]+(a>0?t[a-1]:"")+o:1===c&&a>0&&(o=t[a-1]+o),i=Math.floor(i/10)}return(A<0?n:"")+o},ts="十百千萬",ns="拾佰仟萬",rs="マイナス",ss="마이너스",is=function(A,e,t){var n=t?". ":"",r=t?"、":"",s=t?", ":"",i=t?" ":"";switch(e){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:var o=qr(A,48,57,!0,n);return o.length<4?"0"+o:o;case 4:return As(A,"〇一二三四五六七八九",r);case 6:return $r(A,1,3999,Xr,3,n).toLowerCase();case 7:return $r(A,1,3999,Xr,3,n);case 8:return qr(A,945,969,!1,n);case 9:return qr(A,97,122,!1,n);case 10:return qr(A,65,90,!1,n);case 11:return qr(A,1632,1641,!0,n);case 12:case 49:return $r(A,1,9999,zr,3,n);case 35:return $r(A,1,9999,zr,3,n).toLowerCase();case 13:return qr(A,2534,2543,!0,n);case 14:case 30:return qr(A,6112,6121,!0,n);case 15:return As(A,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return As(A,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return es(A,"零一二三四五六七八九",ts,"負",r,14);case 47:return es(A,"零壹貳參肆伍陸柒捌玖",ns,"負",r,15);case 42:return es(A,"零一二三四五六七八九",ts,"负",r,14);case 41:return es(A,"零壹贰叁肆伍陆柒捌玖",ns,"负",r,15);case 26:return es(A,"〇一二三四五六七八九","十百千万",rs,r,0);case 25:return es(A,"零壱弐参四伍六七八九","拾百千万",rs,r,7);case 31:return es(A,"영일이삼사오육칠팔구","십백천만",ss,s,7);case 33:return es(A,"零一二三四五六七八九","十百千萬",ss,s,0);case 32:return es(A,"零壹貳參四五六七八九","拾百千",ss,s,7);case 18:return qr(A,2406,2415,!0,n);case 20:return $r(A,1,19999,jr,3,n);case 21:return qr(A,2790,2799,!0,n);case 22:return qr(A,2662,2671,!0,n);case 22:return $r(A,1,10999,Yr,3,n);case 23:return As(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return As(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return qr(A,3302,3311,!0,n);case 28:return As(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return As(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return qr(A,3792,3801,!0,n);case 37:return qr(A,6160,6169,!0,n);case 38:return qr(A,4160,4169,!0,n);case 39:return qr(A,2918,2927,!0,n);case 40:return qr(A,1776,1785,!0,n);case 43:return qr(A,3046,3055,!0,n);case 44:return qr(A,3174,3183,!0,n);case 45:return qr(A,3664,3673,!0,n);case 46:return qr(A,3872,3881,!0,n);default:return qr(A,48,57,!0,n)}},os="data-html2canvas-ignore",as=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Jr,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,s=ls(A,e);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var i=A.defaultView.pageXOffset,o=A.defaultView.pageYOffset,a=s.contentWindow,c=a.document,l=hs(s).then((function(){return n(t,void 0,void 0,(function(){var A,t;return r(this,(function(n){switch(n.label){case 0:return this.scrolledElements.forEach(Cs),a&&(a.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||a.scrollY===e.top&&a.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(a.scrollX-e.left,a.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:c.fonts&&c.fonts.ready?[4,c.fonts.ready]:[3,2];case 1:n.sent(),n.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,us(c)]:[3,4];case 3:n.sent(),n.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(c,t)})).then((function(){return s}))]:[2,s]}}))}))}));return c.open(),c.write(ws(document.doctype)+"<html></html>"),ps(this.referenceElement.ownerDocument,i,o),c.replaceChild(c.adoptNode(this.documentElement),c.documentElement),c.close(),l},A.prototype.createElementClone=function(A){if(En(A,2),Rr(A))return this.createCanvasClone(A);if(kr(A))return this.createVideoClone(A);if(Vr(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Kr(e)&&(Kr(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Wr(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return Bs(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),n=A.cloneNode(!1);return n.textContent=t,n}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var n=A.cloneNode(!1);try{n.width=A.width,n.height=A.height;var r=A.getContext("2d"),s=n.getContext("2d");if(s)if(!this.options.allowTaint&&r)s.putImageData(r.getImageData(0,0,A.width,A.height),0,0);else{var i=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(i){var o=i.getContextAttributes();!1===(null==o?void 0:o.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}s.drawImage(A,0,0)}return n}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return n},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var n=A.ownerDocument.createElement("canvas");return n.width=A.offsetWidth,n.height=A.offsetHeight,n},A.prototype.appendChildNode=function(A,e,t){Ir(e)&&("SCRIPT"===e.tagName||e.hasAttribute(os)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&Ir(e)&&Vr(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var n=this,r=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;r;r=r.nextSibling)if(Ir(r)&&Nr(r)&&"function"==typeof r.assignedNodes){var s=r.assignedNodes();s.length&&s.forEach((function(A){return n.appendChildNode(e,A,t)}))}else this.appendChildNode(e,r,t)},A.prototype.cloneNode=function(A,e){if(br(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&Ir(A)&&(Hr(A)||Tr(A))){var n=this.createElementClone(A);n.style.transitionProperty="none";var r=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),i=t.getComputedStyle(A,":after");this.referenceElement===A&&Hr(n)&&(this.clonedReferenceElement=n),Dr(n)&&Qs(n);var o=this.counters.parse(new Fn(this.context,r)),a=this.resolvePseudoContent(A,n,s,Pn.BEFORE);Wr(A)&&(e=!0),kr(A)||this.cloneChildNodes(A,n,e),a&&n.insertBefore(a,n.firstChild);var c=this.resolvePseudoContent(A,n,i,Pn.AFTER);return c&&n.appendChild(c),this.counters.pop(o),(r&&(this.options.copyStyles||Tr(A))&&!Or(A)||e)&&Bs(r,n),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([n,A.scrollLeft,A.scrollTop]),(Gr(A)||_r(A))&&(Gr(n)||_r(n))&&(n.value=A.value),n}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,n){var r=this;if(t){var s=t.content,i=e.ownerDocument;if(i&&s&&"none"!==s&&"-moz-alt-content"!==s&&"none"!==t.display){this.counters.parse(new Fn(this.context,t));var o=new Qn(this.context,t),a=i.createElement("html2canvaspseudoelement");Bs(t,a),o.content.forEach((function(e){if(0===e.type)a.appendChild(i.createTextNode(e.value));else if(22===e.type){var t=i.createElement("img");t.src=e.value,t.style.opacity="1",a.appendChild(t)}else if(18===e.type){if("attr"===e.name){var n=e.values.filter(WA);n.length&&a.appendChild(i.createTextNode(A.getAttribute(n[0].value)||""))}else if("counter"===e.name){var s=e.values.filter(YA),c=s[0],l=s[1];if(c&&WA(c)){var d=r.counters.getCounterValue(c.value),u=l&&WA(l)?It.parse(r.context,l.value):3;a.appendChild(i.createTextNode(is(d,u,!1)))}}else if("counters"===e.name){var h=e.values.filter(YA),g=(c=h[0],h[1]);if(l=h[2],c&&WA(c)){var B=r.counters.getCounterValues(c.value),w=l&&WA(l)?It.parse(r.context,l.value):3,p=g&&0===g.type?g.value:"",C=B.map((function(A){return is(A,w,!1)})).join(p);a.appendChild(i.createTextNode(C))}}}else if(20===e.type)switch(e.value){case"open-quote":a.appendChild(i.createTextNode(wn(o.quotes,r.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(wn(o.quotes,--r.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(e.value))}})),a.className=ms+" "+fs;var c=n===Pn.BEFORE?" "+ms:" "+fs;return Tr(e)?e.className.baseValue+=c:e.className+=c,a}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Pn||(Pn={}));var cs,ls=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(os,"true"),A.body.appendChild(t),t},ds=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},us=function(A){return Promise.all([].slice.call(A.images,0).map(ds))},hs=function(A){return new Promise((function(e,t){var n=A.contentWindow;if(!n)return t("No window assigned for iframe");var r=n.document;n.onload=A.onload=function(){n.onload=A.onload=null;var t=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(t),e(A))}),50)}}))},gs=["all","d","content"],Bs=function(A,e){for(var t=A.length-1;t>=0;t--){var n=A.item(t);-1===gs.indexOf(n)&&e.style.setProperty(n,A.getPropertyValue(n))}return e},ws=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},ps=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},Cs=function(A){var e=A[0],t=A[1],n=A[2];e.scrollLeft=t,e.scrollTop=n},ms="___html2canvas___pseudoelement_before",fs="___html2canvas___pseudoelement_after",vs='{\n content: "" !important;\n display: none !important;\n}',Qs=function(A){Fs(A,"."+ms+":before"+vs+"\n ."+fs+":after"+vs)},Fs=function(A,e){var t=A.ownerDocument;if(t){var n=t.createElement("style");n.textContent=e,A.appendChild(n)}},Us=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),Es=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:Ms(A)||Is(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i=this;return r(this,(function(r){switch(r.label){case 0:return e=Us.isSameOrigin(A),t=!Hs(A)&&!0===this._options.useCORS&&Yn.SUPPORT_CORS_IMAGES&&!e,n=!Hs(A)&&!e&&!Ms(A)&&"string"==typeof this._options.proxy&&Yn.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Hs(A)||Ms(A)||n||t?(s=A,n?[4,this.proxy(s)]:[3,2]):[2];case 1:s=r.sent(),r.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var n=new Image;n.onload=function(){return A(n)},n.onerror=e,(Ts(s)||t)&&(n.crossOrigin="anonymous"),n.src=s,!0===n.complete&&setTimeout((function(){return A(n)}),500),i._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+i._options.imageTimeout+"ms) loading image")}),i._options.imageTimeout)}))];case 3:return[2,r.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var n=A.substring(0,256);return new Promise((function(r,s){var i=Yn.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=function(){if(200===o.status)if("text"===i)r(o.response);else{var A=new FileReader;A.addEventListener("load",(function(){return r(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(o.response)}else s("Failed to proxy resource "+n+" with status code "+o.status)},o.onerror=s;var a=t.indexOf("?")>-1?"&":"?";if(o.open("GET",""+t+a+"url="+encodeURIComponent(A)+"&responseType="+i),"text"!==i&&o instanceof XMLHttpRequest&&(o.responseType=i),e._options.imageTimeout){var c=e._options.imageTimeout;o.timeout=c,o.ontimeout=function(){return s("Timed out ("+c+"ms) proxying "+n)}}o.send()}))},A}(),ys=/^data:image\/svg\+xml/i,Ss=/^data:image\/.*;base64,/i,bs=/^data:image\/.*/i,Is=function(A){return Yn.SUPPORT_SVG_DRAWING||!Ls(A)},Hs=function(A){return bs.test(A)},Ts=function(A){return Ss.test(A)},Ms=function(A){return"blob"===A.substr(0,4)},Ls=function(A){return"svg"===A.substr(-3).toLowerCase()||ys.test(A)},xs=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),Ps=function(A,e,t){return new xs(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ds=function(){function A(A,e,t,n){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=n}return A.prototype.subdivide=function(e,t){var n=Ps(this.start,this.startControl,e),r=Ps(this.startControl,this.endControl,e),s=Ps(this.endControl,this.end,e),i=Ps(n,r,e),o=Ps(r,s,e),a=Ps(i,o,e);return t?new A(this.start,n,i,a):new A(a,o,s,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Rs=function(A){return 1===A.type},ks=function(A){var e=A.styles,t=A.bounds,n=re(e.borderTopLeftRadius,t.width,t.height),r=n[0],s=n[1],i=re(e.borderTopRightRadius,t.width,t.height),o=i[0],a=i[1],c=re(e.borderBottomRightRadius,t.width,t.height),l=c[0],d=c[1],u=re(e.borderBottomLeftRadius,t.width,t.height),h=u[0],g=u[1],B=[];B.push((r+o)/t.width),B.push((h+l)/t.width),B.push((s+g)/t.height),B.push((a+d)/t.height);var w=Math.max.apply(Math,B);w>1&&(r/=w,s/=w,o/=w,a/=w,l/=w,d/=w,h/=w,g/=w);var p=t.width-o,C=t.height-d,m=t.width-l,f=t.height-g,v=e.borderTopWidth,Q=e.borderRightWidth,F=e.borderBottomWidth,U=e.borderLeftWidth,E=se(e.paddingTop,A.bounds.width),y=se(e.paddingRight,A.bounds.width),S=se(e.paddingBottom,A.bounds.width),b=se(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||s>0?Ks(t.left+U/3,t.top+v/3,r-U/3,s-v/3,cs.TOP_LEFT):new xs(t.left+U/3,t.top+v/3),this.topRightBorderDoubleOuterBox=r>0||s>0?Ks(t.left+p,t.top+v/3,o-Q/3,a-v/3,cs.TOP_RIGHT):new xs(t.left+t.width-Q/3,t.top+v/3),this.bottomRightBorderDoubleOuterBox=l>0||d>0?Ks(t.left+m,t.top+C,l-Q/3,d-F/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/3,t.top+t.height-F/3),this.bottomLeftBorderDoubleOuterBox=h>0||g>0?Ks(t.left+U/3,t.top+f,h-U/3,g-F/3,cs.BOTTOM_LEFT):new xs(t.left+U/3,t.top+t.height-F/3),this.topLeftBorderDoubleInnerBox=r>0||s>0?Ks(t.left+2*U/3,t.top+2*v/3,r-2*U/3,s-2*v/3,cs.TOP_LEFT):new xs(t.left+2*U/3,t.top+2*v/3),this.topRightBorderDoubleInnerBox=r>0||s>0?Ks(t.left+p,t.top+2*v/3,o-2*Q/3,a-2*v/3,cs.TOP_RIGHT):new xs(t.left+t.width-2*Q/3,t.top+2*v/3),this.bottomRightBorderDoubleInnerBox=l>0||d>0?Ks(t.left+m,t.top+C,l-2*Q/3,d-2*F/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-2*Q/3,t.top+t.height-2*F/3),this.bottomLeftBorderDoubleInnerBox=h>0||g>0?Ks(t.left+2*U/3,t.top+f,h-2*U/3,g-2*F/3,cs.BOTTOM_LEFT):new xs(t.left+2*U/3,t.top+t.height-2*F/3),this.topLeftBorderStroke=r>0||s>0?Ks(t.left+U/2,t.top+v/2,r-U/2,s-v/2,cs.TOP_LEFT):new xs(t.left+U/2,t.top+v/2),this.topRightBorderStroke=r>0||s>0?Ks(t.left+p,t.top+v/2,o-Q/2,a-v/2,cs.TOP_RIGHT):new xs(t.left+t.width-Q/2,t.top+v/2),this.bottomRightBorderStroke=l>0||d>0?Ks(t.left+m,t.top+C,l-Q/2,d-F/2,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/2,t.top+t.height-F/2),this.bottomLeftBorderStroke=h>0||g>0?Ks(t.left+U/2,t.top+f,h-U/2,g-F/2,cs.BOTTOM_LEFT):new xs(t.left+U/2,t.top+t.height-F/2),this.topLeftBorderBox=r>0||s>0?Ks(t.left,t.top,r,s,cs.TOP_LEFT):new xs(t.left,t.top),this.topRightBorderBox=o>0||a>0?Ks(t.left+p,t.top,o,a,cs.TOP_RIGHT):new xs(t.left+t.width,t.top),this.bottomRightBorderBox=l>0||d>0?Ks(t.left+m,t.top+C,l,d,cs.BOTTOM_RIGHT):new xs(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=h>0||g>0?Ks(t.left,t.top+f,h,g,cs.BOTTOM_LEFT):new xs(t.left,t.top+t.height),this.topLeftPaddingBox=r>0||s>0?Ks(t.left+U,t.top+v,Math.max(0,r-U),Math.max(0,s-v),cs.TOP_LEFT):new xs(t.left+U,t.top+v),this.topRightPaddingBox=o>0||a>0?Ks(t.left+Math.min(p,t.width-Q),t.top+v,p>t.width+Q?0:Math.max(0,o-Q),Math.max(0,a-v),cs.TOP_RIGHT):new xs(t.left+t.width-Q,t.top+v),this.bottomRightPaddingBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-U),t.top+Math.min(C,t.height-F),Math.max(0,l-Q),Math.max(0,d-F),cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q,t.top+t.height-F),this.bottomLeftPaddingBox=h>0||g>0?Ks(t.left+U,t.top+Math.min(f,t.height-F),Math.max(0,h-U),Math.max(0,g-F),cs.BOTTOM_LEFT):new xs(t.left+U,t.top+t.height-F),this.topLeftContentBox=r>0||s>0?Ks(t.left+U+b,t.top+v+E,Math.max(0,r-(U+b)),Math.max(0,s-(v+E)),cs.TOP_LEFT):new xs(t.left+U+b,t.top+v+E),this.topRightContentBox=o>0||a>0?Ks(t.left+Math.min(p,t.width+U+b),t.top+v+E,p>t.width+U+b?0:o-U+b,a-(v+E),cs.TOP_RIGHT):new xs(t.left+t.width-(Q+y),t.top+v+E),this.bottomRightContentBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-(U+b)),t.top+Math.min(C,t.height+v+E),Math.max(0,l-(Q+y)),d-(F+S),cs.BOTTOM_RIGHT):new xs(t.left+t.width-(Q+y),t.top+t.height-(F+S)),this.bottomLeftContentBox=h>0||g>0?Ks(t.left+U+b,t.top+f,Math.max(0,h-(U+b)),g-(F+S),cs.BOTTOM_LEFT):new xs(t.left+U+b,t.top+t.height-(F+S))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(cs||(cs={}));var Ks=function(A,e,t,n,r){var s=(Math.sqrt(2)-1)/3*4,i=t*s,o=n*s,a=A+t,c=e+n;switch(r){case cs.TOP_LEFT:return new Ds(new xs(A,c),new xs(A,c-o),new xs(a-i,e),new xs(a,e));case cs.TOP_RIGHT:return new Ds(new xs(A,e),new xs(A+i,e),new xs(a,c-o),new xs(a,c));case cs.BOTTOM_RIGHT:return new Ds(new xs(a,e),new xs(a,e+o),new xs(A+i,c),new xs(A,c));case cs.BOTTOM_LEFT:default:return new Ds(new xs(a,c),new xs(a-i,c),new xs(A,e+o),new xs(A,e))}},Os=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Vs=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Gs=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},_s=function(A,e){this.path=A,this.target=e,this.type=1},Ns=function(A){this.opacity=A,this.type=2,this.target=6},Ws=function(A){return 1===A.type},Js=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Xs=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},zs=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new ks(this.container),this.container.styles.opacity<1&&this.effects.push(new Ns(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new Gs(t,n,r))}if(0!==this.container.styles.overflowX){var s=Os(this.curves),i=Vs(this.curves);Js(s,i)?this.effects.push(new _s(s,6)):(this.effects.push(new _s(s,2)),this.effects.push(new _s(i,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,n=this.effects.slice(0);t;){var r=t.effects.filter((function(A){return!Ws(A)}));if(e||0!==t.container.styles.position||!t.parent){if(n.unshift.apply(n,r),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var s=Os(t.curves),i=Vs(t.curves);Js(s,i)||n.unshift(new _s(i,6))}}else n.unshift.apply(n,r);t=t.parent}return n.filter((function(e){return ln(e.target,A)}))},A}(),Ys=function(A,e,t,n){A.container.elements.forEach((function(r){var s=ln(r.flags,4),i=ln(r.flags,2),o=new zs(r,A);ln(r.styles.display,2048)&&n.push(o);var a=ln(r.flags,8)?[]:n;if(s||i){var c=s||r.styles.isPositioned()?t:e,l=new Xs(o);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var d=r.styles.zIndex.order;if(d<0){var u=0;c.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(u=e,!1):u>0})),c.negativeZIndex.splice(u,0,l)}else if(d>0){var h=0;c.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(h=e+1,!1):h>0})),c.positiveZIndex.splice(h,0,l)}else c.zeroOrAutoZIndexOrTransformedOrOpacity.push(l)}else r.styles.isFloating()?c.nonPositionedFloats.push(l):c.nonPositionedInlineLevel.push(l);Ys(o,l,s?l:t,a)}else r.styles.isInlineLevel()?e.inlineLevel.push(o):e.nonInlineLevel.push(o),Ys(o,e,t,a);ln(r.flags,8)&&js(r,a)}))},js=function(A,e){for(var t=A instanceof dr?A.start:1,n=A instanceof dr&&A.reversed,r=0;r<e.length;r++){var s=e[r];s.container instanceof lr&&"number"==typeof s.container.value&&0!==s.container.value&&(t=s.container.value),s.listValue=is(t,s.container.styles.listStyleType,!0),t+=n?-1:1}},$s=function(A,e){switch(e){case 0:return qs(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return qs(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return qs(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);default:return qs(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}},Zs=function(A,e){var t=[];return Rs(A)?t.push(A.subdivide(.5,!1)):t.push(A),Rs(e)?t.push(e.subdivide(.5,!0)):t.push(e),t},qs=function(A,e,t,n){var r=[];return Rs(A)?r.push(A.subdivide(.5,!1)):r.push(A),Rs(t)?r.push(t.subdivide(.5,!0)):r.push(t),Rs(n)?r.push(n.subdivide(.5,!0).reverse()):r.push(n),Rs(e)?r.push(e.subdivide(.5,!1).reverse()):r.push(e),r},Ai=function(A){var e=A.bounds,t=A.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},ei=function(A){var e=A.styles,t=A.bounds,n=se(e.paddingLeft,t.width),r=se(e.paddingRight,t.width),s=se(e.paddingTop,t.width),i=se(e.paddingBottom,t.width);return t.add(n+e.borderLeftWidth,s+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+n+r),-(e.borderTopWidth+e.borderBottomWidth+s+i))},ti=function(A,e,t){var n=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundOrigin,e),A),r=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundClip,e),A),s=si(ii(A.styles.backgroundSize,e),t,n),i=s[0],o=s[1],a=re(ii(A.styles.backgroundPosition,e),n.width-i,n.height-o);return[oi(ii(A.styles.backgroundRepeat,e),a,s,n,r),Math.round(n.left+a[0]),Math.round(n.top+a[1]),i,o]},ni=function(A){return WA(A)&&A.value===Ve.AUTO},ri=function(A){return"number"==typeof A},si=function(A,e,t){var n=e[0],r=e[1],s=e[2],i=A[0],o=A[1];if(!i)return[0,0];if(qA(i)&&o&&qA(o))return[se(i,t.width),se(o,t.height)];var a=ri(s);if(WA(i)&&(i.value===Ve.CONTAIN||i.value===Ve.COVER))return ri(s)?t.width/t.height<s!=(i.value===Ve.COVER)?[t.width,t.width/s]:[t.height*s,t.height]:[t.width,t.height];var c=ri(n),l=ri(r),d=c||l;if(ni(i)&&(!o||ni(o)))return c&&l?[n,r]:a||d?d&&a?[c?n:r*s,l?r:n/s]:[c?n:t.width,l?r:t.height]:[t.width,t.height];if(a){var u=0,h=0;return qA(i)?u=se(i,t.width):qA(o)&&(h=se(o,t.height)),ni(i)?u=h*s:o&&!ni(o)||(h=u/s),[u,h]}var g=null,B=null;if(qA(i)?g=se(i,t.width):o&&qA(o)&&(B=se(o,t.height)),null===g||o&&!ni(o)||(B=c&&l?g/n*r:t.height),null!==B&&ni(i)&&(g=c&&l?B/r*n:t.width),null!==g&&null!==B)return[g,B];throw new Error("Unable to calculate background-size for element")},ii=function(A,e){var t=A[e];return void 0===t?A[0]:t},oi=function(A,e,t,n,r){var s=e[0],i=e[1],o=t[0],a=t[1];switch(A){case 2:return[new xs(Math.round(n.left),Math.round(n.top+i)),new xs(Math.round(n.left+n.width),Math.round(n.top+i)),new xs(Math.round(n.left+n.width),Math.round(a+n.top+i)),new xs(Math.round(n.left),Math.round(a+n.top+i))];case 3:return[new xs(Math.round(n.left+s),Math.round(n.top)),new xs(Math.round(n.left+s+o),Math.round(n.top)),new xs(Math.round(n.left+s+o),Math.round(n.height+n.top)),new xs(Math.round(n.left+s),Math.round(n.height+n.top))];case 1:return[new xs(Math.round(n.left+s),Math.round(n.top+i)),new xs(Math.round(n.left+s+o),Math.round(n.top+i)),new xs(Math.round(n.left+s+o),Math.round(n.top+i+a)),new xs(Math.round(n.left+s),Math.round(n.top+i+a))];default:return[new xs(Math.round(r.left),Math.round(r.top)),new xs(Math.round(r.left+r.width),Math.round(r.top)),new xs(Math.round(r.left+r.width),Math.round(r.height+r.top)),new xs(Math.round(r.left),Math.round(r.height+r.top))]}},ai="Hidden Text",ci=function(){function A(A){this._data={},this._document=A}return A.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),n=this._document.createElement("img"),r=this._document.createElement("span"),s=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",s.appendChild(t),n.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",n.width=1,n.height=1,n.style.margin="0",n.style.padding="0",n.style.verticalAlign="baseline",r.style.fontFamily=A,r.style.fontSize=e,r.style.margin="0",r.style.padding="0",r.appendChild(this._document.createTextNode(ai)),t.appendChild(r),t.appendChild(n);var i=n.offsetTop-r.offsetTop+2;t.removeChild(r),t.appendChild(this._document.createTextNode(ai)),t.style.lineHeight="normal",n.style.verticalAlign="super";var o=n.offsetTop-t.offsetTop+2;return s.removeChild(t),{baseline:i,middle:o}},A.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},A}(),li=function(A,e){this.context=A,this.options=e},di=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n._activeEffects=[],n.canvas=t.canvas?t.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),t.canvas||(n.canvas.width=Math.floor(t.width*t.scale),n.canvas.height=Math.floor(t.height*t.scale),n.canvas.style.width=t.width+"px",n.canvas.style.height=t.height+"px"),n.fontMetrics=new ci(document),n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-t.x,-t.y),n.ctx.textBaseline="bottom",n._activeEffects=[],n.context.logger.debug("Canvas renderer initialized ("+t.width+"x"+t.height+") with scale "+t.scale),n}return e(t,A),t.prototype.applyEffects=function(A){for(var e=this;this._activeEffects.length;)this.popEffect();A.forEach((function(A){return e.applyEffect(A)}))},t.prototype.applyEffect=function(A){this.ctx.save(),function(A){return 2===A.type}(A)&&(this.ctx.globalAlpha=A.opacity),function(A){return 0===A.type}(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),Ws(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},t.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},t.prototype.renderStack=function(A){return n(this,void 0,void 0,(function(){return r(this,(function(e){switch(e.label){case 0:return A.element.container.styles.isVisible()?[4,this.renderStackContent(A)]:[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},t.prototype.renderNode=function(A){return n(this,void 0,void 0,(function(){return r(this,(function(e){switch(e.label){case 0:return ln(A.container.flags,16),A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return e.sent(),[4,this.renderNodeContent(A)];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},t.prototype.renderTextWithLetterSpacing=function(A,e,t){var n=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):qn(A.text).reduce((function(e,r){return n.ctx.fillText(r,e,A.bounds.top+t),e+n.ctx.measureText(r).width}),A.bounds.left)},t.prototype.createFontStyle=function(A){var e=A.fontVariant.filter((function(A){return"normal"===A||"small-caps"===A})).join(""),t=wi(A.fontFamily).join(", "),n=_A(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,n,t].join(" "),t,n]},t.prototype.renderTextNode=function(A,e){return n(this,void 0,void 0,(function(){var t,n,s,i,o,a,c,l,d=this;return r(this,(function(r){return t=this.createFontStyle(e),n=t[0],s=t[1],i=t[2],this.ctx.font=n,this.ctx.direction=1===e.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",o=this.fontMetrics.getMetrics(s,i),a=o.baseline,c=o.middle,l=e.paintOrder,A.textBounds.forEach((function(A){l.forEach((function(t){switch(t){case 0:d.ctx.fillStyle=ge(e.color),d.renderTextWithLetterSpacing(A,e.letterSpacing,a);var n=e.textShadow;n.length&&A.text.trim().length&&(n.slice(0).reverse().forEach((function(t){d.ctx.shadowColor=ge(t.color),d.ctx.shadowOffsetX=t.offsetX.number*d.options.scale,d.ctx.shadowOffsetY=t.offsetY.number*d.options.scale,d.ctx.shadowBlur=t.blur.number,d.renderTextWithLetterSpacing(A,e.letterSpacing,a)})),d.ctx.shadowColor="",d.ctx.shadowOffsetX=0,d.ctx.shadowOffsetY=0,d.ctx.shadowBlur=0),e.textDecorationLine.length&&(d.ctx.fillStyle=ge(e.textDecorationColor||e.color),e.textDecorationLine.forEach((function(e){switch(e){case 1:d.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top+a),A.bounds.width,1);break;case 2:d.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top),A.bounds.width,1);break;case 3:d.ctx.fillRect(A.bounds.left,Math.ceil(A.bounds.top+c),A.bounds.width,1)}})));break;case 1:e.webkitTextStrokeWidth&&A.text.trim().length&&(d.ctx.strokeStyle=ge(e.webkitTextStrokeColor),d.ctx.lineWidth=e.webkitTextStrokeWidth,d.ctx.lineJoin=window.chrome?"miter":"round",d.ctx.strokeText(A.text,A.bounds.left,A.bounds.top+a)),d.ctx.strokeStyle="",d.ctx.lineWidth=0,d.ctx.lineJoin="miter"}}))})),[2]}))}))},t.prototype.renderReplacedElement=function(A,e,t){if(t&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var n=ei(A),r=Vs(e);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,n.left,n.top,n.width,n.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return n(this,void 0,void 0,(function(){var e,n,s,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return r(this,(function(r){switch(r.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,n=A.curves,s=e.styles,o=0,a=e.textNodes,r.label=1;case 1:return o<a.length?(c=a[o],[4,this.renderTextNode(c,s)]):[3,4];case 2:r.sent(),r.label=3;case 3:return o++,[3,1];case 4:if(!(e instanceof or))return[3,8];r.label=5;case 5:return r.trys.push([5,7,,8]),[4,this.context.cache.match(e.src)];case 6:return C=r.sent(),this.renderReplacedElement(e,n,C),[3,8];case 7:return r.sent(),this.context.logger.error("Error loading image "+e.src),[3,8];case 8:if(e instanceof ar&&this.renderReplacedElement(e,n,e.canvas),!(e instanceof cr))return[3,12];r.label=9;case 9:return r.trys.push([9,11,,12]),[4,this.context.cache.match(e.svg)];case 10:return C=r.sent(),this.renderReplacedElement(e,n,C),[3,12];case 11:return r.sent(),this.context.logger.error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof vr&&e.tree?[4,new t(this.context,{scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,width:e.width,height:e.height}).render(e.tree)]:[3,14];case 13:l=r.sent(),e.width&&e.height&&this.ctx.drawImage(l,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height),r.label=14;case 14:if(e instanceof Cr&&(d=Math.min(e.bounds.width,e.bounds.height),e.type===gr?e.checked&&(this.ctx.save(),this.path([new xs(e.bounds.left+.39363*d,e.bounds.top+.79*d),new xs(e.bounds.left+.16*d,e.bounds.top+.5549*d),new xs(e.bounds.left+.27347*d,e.bounds.top+.44071*d),new xs(e.bounds.left+.39694*d,e.bounds.top+.5649*d),new xs(e.bounds.left+.72983*d,e.bounds.top+.23*d),new xs(e.bounds.left+.84*d,e.bounds.top+.34085*d),new xs(e.bounds.left+.39363*d,e.bounds.top+.79*d)]),this.ctx.fillStyle=ge(pr),this.ctx.fill(),this.ctx.restore()):e.type===Br&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+d/2,e.bounds.top+d/2,d/4,0,2*Math.PI,!0),this.ctx.fillStyle=ge(pr),this.ctx.fill(),this.ctx.restore())),ui(e)&&e.value.length){switch(u=this.createFontStyle(s),f=u[0],h=u[1],g=this.fontMetrics.getMetrics(f,h).baseline,this.ctx.font=f,this.ctx.fillStyle=ge(s.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=gi(e.styles.textAlign),v=ei(e),B=0,e.styles.textAlign){case 1:B+=v.width/2;break;case 2:B+=v.width}w=v.add(B,0,0,-v.height/2+1),this.ctx.save(),this.path([new xs(v.left,v.top),new xs(v.left+v.width,v.top),new xs(v.left+v.width,v.top+v.height),new xs(v.left,v.top+v.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new jn(e.value,w),s.letterSpacing,g),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!ln(e.styles.display,2048))return[3,20];if(null===e.styles.listStyleImage)return[3,19];if(0!==(p=e.styles.listStyleImage).type)return[3,18];C=void 0,m=p.url,r.label=15;case 15:return r.trys.push([15,17,,18]),[4,this.context.cache.match(m)];case 16:return C=r.sent(),this.ctx.drawImage(C,e.bounds.left-(C.width+10),e.bounds.top),[3,18];case 17:return r.sent(),this.context.logger.error("Error loading list-style-image "+m),[3,18];case 18:return[3,20];case 19:A.listValue&&-1!==e.styles.listStyleType&&(f=this.createFontStyle(s)[0],this.ctx.font=f,this.ctx.fillStyle=ge(s.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",v=new i(e.bounds.left,e.bounds.top+se(e.styles.paddingTop,e.bounds.width),e.bounds.width,yt(s.lineHeight,s.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new jn(A.listValue,v),s.letterSpacing,yt(s.lineHeight,s.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),r.label=20;case 20:return[2]}}))}))},t.prototype.renderStackContent=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o,a,c,l,d,u,h,g,B,w;return r(this,(function(r){switch(r.label){case 0:return ln(A.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:r.sent(),e=0,t=A.negativeZIndex,r.label=2;case 2:return e<t.length?(w=t[e],[4,this.renderStack(w)]):[3,5];case 3:r.sent(),r.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:r.sent(),n=0,s=A.nonInlineLevel,r.label=7;case 7:return n<s.length?(w=s[n],[4,this.renderNode(w)]):[3,10];case 8:r.sent(),r.label=9;case 9:return n++,[3,7];case 10:i=0,o=A.nonPositionedFloats,r.label=11;case 11:return i<o.length?(w=o[i],[4,this.renderStack(w)]):[3,14];case 12:r.sent(),r.label=13;case 13:return i++,[3,11];case 14:a=0,c=A.nonPositionedInlineLevel,r.label=15;case 15:return a<c.length?(w=c[a],[4,this.renderStack(w)]):[3,18];case 16:r.sent(),r.label=17;case 17:return a++,[3,15];case 18:l=0,d=A.inlineLevel,r.label=19;case 19:return l<d.length?(w=d[l],[4,this.renderNode(w)]):[3,22];case 20:r.sent(),r.label=21;case 21:return l++,[3,19];case 22:u=0,h=A.zeroOrAutoZIndexOrTransformedOrOpacity,r.label=23;case 23:return u<h.length?(w=h[u],[4,this.renderStack(w)]):[3,26];case 24:r.sent(),r.label=25;case 25:return u++,[3,23];case 26:g=0,B=A.positiveZIndex,r.label=27;case 27:return g<B.length?(w=B[g],[4,this.renderStack(w)]):[3,30];case 28:r.sent(),r.label=29;case 29:return g++,[3,27];case 30:return[2]}}))}))},t.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},t.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},t.prototype.formatPath=function(A){var e=this;A.forEach((function(A,t){var n=Rs(A)?A.start:A;0===t?e.ctx.moveTo(n.x,n.y):e.ctx.lineTo(n.x,n.y),Rs(A)&&e.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)}))},t.prototype.renderRepeat=function(A,e,t,n){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,n),this.ctx.fill(),this.ctx.translate(-t,-n)},t.prototype.resizeImage=function(A,e,t){var n;if(A.width===e&&A.height===t)return A;var r=(null!==(n=this.canvas.ownerDocument)&&void 0!==n?n:document).createElement("canvas");return r.width=Math.max(1,e),r.height=Math.max(1,t),r.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),r},t.prototype.renderBackgroundImage=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o;return r(this,(function(a){switch(a.label){case 0:e=A.styles.backgroundImage.length-1,t=function(t){var s,i,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v,Q,F,U,E,y,S,b,I,H,T,M,L,x,P;return r(this,(function(r){switch(r.label){case 0:if(0!==t.type)return[3,5];s=void 0,i=t.url,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,n.context.cache.match(i)];case 2:return s=r.sent(),[3,4];case 3:return r.sent(),n.context.logger.error("Error loading background-image "+i),[3,4];case 4:return s&&(o=ti(A,e,[s.width,s.height,s.width/s.height]),f=o[0],y=o[1],S=o[2],F=o[3],U=o[4],C=n.ctx.createPattern(n.resizeImage(s,F,U),"repeat"),n.renderRepeat(f,C,y,S)),[3,6];case 5:1===t.type?(a=ti(A,e,[null,null,null]),f=a[0],y=a[1],S=a[2],F=a[3],U=a[4],c=Se(t.angle,F,U),l=c[0],d=c[1],u=c[2],h=c[3],g=c[4],(B=document.createElement("canvas")).width=F,B.height=U,w=B.getContext("2d"),p=w.createLinearGradient(d,h,u,g),ye(t.stops,l).forEach((function(A){return p.addColorStop(A.stop,ge(A.color))})),w.fillStyle=p,w.fillRect(0,0,F,U),F>0&&U>0&&(C=n.ctx.createPattern(B,"repeat"),n.renderRepeat(f,C,y,S))):function(A){return 2===A.type}(t)&&(m=ti(A,e,[null,null,null]),f=m[0],v=m[1],Q=m[2],F=m[3],U=m[4],E=0===t.position.length?[te]:t.position,y=se(E[0],F),S=se(E[E.length-1],U),b=function(A,e,t,n,r){var s=0,i=0;switch(A.size){case 0:0===A.shape?s=i=Math.min(Math.abs(e),Math.abs(e-n),Math.abs(t),Math.abs(t-r)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-n)),i=Math.min(Math.abs(t),Math.abs(t-r)));break;case 2:if(0===A.shape)s=i=Math.min(be(e,t),be(e,t-r),be(e-n,t),be(e-n,t-r));else if(1===A.shape){var o=Math.min(Math.abs(t),Math.abs(t-r))/Math.min(Math.abs(e),Math.abs(e-n)),a=Ie(n,r,e,t,!0),c=a[0],l=a[1];i=o*(s=be(c-e,(l-t)/o))}break;case 1:0===A.shape?s=i=Math.max(Math.abs(e),Math.abs(e-n),Math.abs(t),Math.abs(t-r)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-n)),i=Math.max(Math.abs(t),Math.abs(t-r)));break;case 3:if(0===A.shape)s=i=Math.max(be(e,t),be(e,t-r),be(e-n,t),be(e-n,t-r));else if(1===A.shape){o=Math.max(Math.abs(t),Math.abs(t-r))/Math.max(Math.abs(e),Math.abs(e-n));var d=Ie(n,r,e,t,!1);c=d[0],l=d[1],i=o*(s=be(c-e,(l-t)/o))}}return Array.isArray(A.size)&&(s=se(A.size[0],n),i=2===A.size.length?se(A.size[1],r):s),[s,i]}(t,y,S,F,U),I=b[0],H=b[1],I>0&&H>0&&(T=n.ctx.createRadialGradient(v+y,Q+S,0,v+y,Q+S,I),ye(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,ge(A.color))})),n.path(f),n.ctx.fillStyle=T,I!==H?(M=A.bounds.left+.5*A.bounds.width,L=A.bounds.top+.5*A.bounds.height,P=1/(x=H/I),n.ctx.save(),n.ctx.translate(M,L),n.ctx.transform(1,0,0,x,0,0),n.ctx.translate(-M,-L),n.ctx.fillRect(v,P*(Q-L)+L,F,U*P),n.ctx.restore()):n.ctx.fill())),r.label=6;case 6:return e--,[2]}}))},n=this,s=0,i=A.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return s<i.length?(o=i[s],[5,t(o)]):[3,4];case 2:a.sent(),a.label=3;case 3:return s++,[3,1];case 4:return[2]}}))}))},t.prototype.renderSolidBorder=function(A,e,t){return n(this,void 0,void 0,(function(){return r(this,(function(n){return this.path($s(t,e)),this.ctx.fillStyle=ge(A),this.ctx.fill(),[2]}))}))},t.prototype.renderDoubleBorder=function(A,e,t,s){return n(this,void 0,void 0,(function(){var n,i;return r(this,(function(r){switch(r.label){case 0:return e<3?[4,this.renderSolidBorder(A,t,s)]:[3,2];case 1:return r.sent(),[2];case 2:return n=function(A,e){switch(e){case 0:return qs(A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox,A.topRightBorderBox,A.topRightBorderDoubleOuterBox);case 1:return qs(A.topRightBorderBox,A.topRightBorderDoubleOuterBox,A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox);case 2:return qs(A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox,A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox);default:return qs(A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox,A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox)}}(s,t),this.path(n),this.ctx.fillStyle=ge(A),this.ctx.fill(),i=function(A,e){switch(e){case 0:return qs(A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox,A.topRightBorderDoubleInnerBox,A.topRightPaddingBox);case 1:return qs(A.topRightBorderDoubleInnerBox,A.topRightPaddingBox,A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox);case 2:return qs(A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox,A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox);default:return qs(A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox,A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox)}}(s,t),this.path(i),this.ctx.fill(),[2]}}))}))},t.prototype.renderNodeBackgroundAndBorders=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o,a,c,l=this;return r(this,(function(r){switch(r.label){case 0:return this.applyEffects(A.getEffects(2)),e=A.container.styles,t=!he(e.backgroundColor)||e.backgroundImage.length,n=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],s=hi(ii(e.backgroundClip,0),A.curves),t||e.boxShadow.length?(this.ctx.save(),this.path(s),this.ctx.clip(),he(e.backgroundColor)||(this.ctx.fillStyle=ge(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(A.container)]):[3,2];case 1:r.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){l.ctx.save();var t,n,r,s,i,o=Os(A.curves),a=e.inset?0:1e4,c=(t=o,n=-a+(e.inset?1:-1)*e.spread.number,r=(e.inset?1:-1)*e.spread.number,s=e.spread.number*(e.inset?-2:2),i=e.spread.number*(e.inset?-2:2),t.map((function(A,e){switch(e){case 0:return A.add(n,r);case 1:return A.add(n+s,r);case 2:return A.add(n+s,r+i);case 3:return A.add(n,r+i)}return A})));e.inset?(l.path(o),l.ctx.clip(),l.mask(c)):(l.mask(o),l.ctx.clip(),l.path(c)),l.ctx.shadowOffsetX=e.offsetX.number+a,l.ctx.shadowOffsetY=e.offsetY.number,l.ctx.shadowColor=ge(e.color),l.ctx.shadowBlur=e.blur.number,l.ctx.fillStyle=e.inset?ge(e.color):"rgba(0,0,0,1)",l.ctx.fill(),l.ctx.restore()})),r.label=2;case 2:i=0,o=0,a=n,r.label=3;case 3:return o<a.length?0!==(c=a[o]).style&&!he(c.color)&&c.width>0?2!==c.style?[3,5]:[4,this.renderDashedDottedBorder(c.color,c.width,i,A.curves,2)]:[3,11]:[3,13];case 4:return r.sent(),[3,11];case 5:return 3!==c.style?[3,7]:[4,this.renderDashedDottedBorder(c.color,c.width,i,A.curves,3)];case 6:return r.sent(),[3,11];case 7:return 4!==c.style?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,i,A.curves)];case 8:return r.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,i,A.curves)];case 10:r.sent(),r.label=11;case 11:i++,r.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,i){return n(this,void 0,void 0,(function(){var n,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return r(this,(function(r){return this.ctx.save(),n=function(A,e){switch(e){case 0:return Zs(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return Zs(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return Zs(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return Zs(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(s,t),o=$s(s,t),2===i&&(this.path(o),this.ctx.clip()),Rs(o[0])?(a=o[0].start.x,c=o[0].start.y):(a=o[0].x,c=o[0].y),Rs(o[1])?(l=o[1].end.x,d=o[1].end.y):(l=o[1].x,d=o[1].y),u=0===t||2===t?Math.abs(a-l):Math.abs(c-d),this.ctx.beginPath(),3===i?this.formatPath(n):this.formatPath(o.slice(0,2)),h=e<3?3*e:2*e,g=e<3?2*e:e,3===i&&(h=e,g=e),B=!0,u<=2*h?B=!1:u<=2*h+g?(h*=w=u/(2*h+g),g*=w):(p=Math.floor((u+g)/(h+g)),C=(u-p*h)/(p-1),g=(m=(u-(p+1)*h)/p)<=0||Math.abs(g-C)<Math.abs(g-m)?C:m),B&&(3===i?this.ctx.setLineDash([0,h+g]):this.ctx.setLineDash([h,g])),3===i?(this.ctx.lineCap="round",this.ctx.lineWidth=e):this.ctx.lineWidth=2*e+1.1,this.ctx.strokeStyle=ge(A),this.ctx.stroke(),this.ctx.setLineDash([]),2===i&&(Rs(o[0])&&(f=o[3],v=o[0],this.ctx.beginPath(),this.formatPath([new xs(f.end.x,f.end.y),new xs(v.start.x,v.start.y)]),this.ctx.stroke()),Rs(o[1])&&(f=o[1],v=o[2],this.ctx.beginPath(),this.formatPath([new xs(f.end.x,f.end.y),new xs(v.start.x,v.start.y)]),this.ctx.stroke())),this.ctx.restore(),[2]}))}))},t.prototype.render=function(A){return n(this,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=ge(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height)),n=new zs(A,null),r=new Xs(n),Ys(n,r,r,s=[]),js(n.container,s),e=r,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([]),[2,this.canvas]}var n,r,s}))}))},t}(li),ui=function(A){return A instanceof fr||A instanceof mr||A instanceof Cr&&A.type!==Br&&A.type!==gr},hi=function(A,e){switch(A){case 0:return Os(e);case 2:return function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]}(e);default:return Vs(e)}},gi=function(A){switch(A){case 1:return"center";case 2:return"right";default:return"left"}},Bi=["-apple-system","system-ui"],wi=function(A){return/iPhone OS 15_(0|1)/.test(window.navigator.userAgent)?A.filter((function(A){return-1===Bi.indexOf(A)})):A},pi=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.canvas=t.canvas?t.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),n.options=t,n.canvas.width=Math.floor(t.width*t.scale),n.canvas.height=Math.floor(t.height*t.scale),n.canvas.style.width=t.width+"px",n.canvas.style.height=t.height+"px",n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-t.x,-t.y),n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+t.width+"x"+t.height+" at "+t.x+","+t.y+") with scale "+t.scale),n}return e(t,A),t.prototype.render=function(A){return n(this,void 0,void 0,(function(){var e,t;return r(this,(function(n){switch(n.label){case 0:return e=Xn(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,A),[4,Ci(e)];case 1:return t=n.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=ge(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}}))}))},t}(li),Ci=function(A){return new Promise((function(e,t){var n=new Image;n.onload=function(){e(n)},n.onerror=t,n.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},mi=function(){function A(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}return A.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.getTime=function(){return Date.now()-this.start},A.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,s([this.id,this.getTime()+"ms"],A))},A.prototype.warn=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.warn?console.warn.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.instances={},A}(),fi=function(){function A(e,t){var n;this.windowBounds=t,this.instanceName="#"+A.instanceCount++,this.logger=new mi({id:this.instanceName,enabled:e.logging}),this.cache=null!==(n=e.cache)&&void 0!==n?n:new Es(this,e)}return A.instanceCount=1,A}();"undefined"!=typeof window&&Us.setContext(window);var vi=function(A,e){return n(void 0,void 0,void 0,(function(){var n,s,a,c,l,d,u,h,g,B,w,p,C,m,f,v,Q,F,U,E,y,S,b,I,H,T,M,L,x,P,D,R,k,K,O,V,G,_;return r(this,(function(r){switch(r.label){case 0:if(!A||"object"!=typeof A)return[2,Promise.reject("Invalid element provided as first argument")];if(!(n=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(s=n.defaultView))throw new Error("Document is not attached to a Window");return a={allowTaint:null!==(S=e.allowTaint)&&void 0!==S&&S,imageTimeout:null!==(b=e.imageTimeout)&&void 0!==b?b:15e3,proxy:e.proxy,useCORS:null!==(I=e.useCORS)&&void 0!==I&&I},c=t({logging:null===(H=e.logging)||void 0===H||H,cache:e.cache},a),l={windowWidth:null!==(T=e.windowWidth)&&void 0!==T?T:s.innerWidth,windowHeight:null!==(M=e.windowHeight)&&void 0!==M?M:s.innerHeight,scrollX:null!==(L=e.scrollX)&&void 0!==L?L:s.pageXOffset,scrollY:null!==(x=e.scrollY)&&void 0!==x?x:s.pageYOffset},d=new i(l.scrollX,l.scrollY,l.windowWidth,l.windowHeight),u=new fi(c,d),h=null!==(P=e.foreignObjectRendering)&&void 0!==P&&P,g={allowTaint:null!==(D=e.allowTaint)&&void 0!==D&&D,onclone:e.onclone,ignoreElements:e.ignoreElements,inlineImages:h,copyStyles:h},u.logger.debug("Starting document clone with size "+d.width+"x"+d.height+" scrolled to "+-d.left+","+-d.top),B=new as(u,A,g),(w=B.clonedReferenceElement)?[4,B.toIFrame(n,d)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return p=r.sent(),C=Dr(w)||"HTML"===w.tagName?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");var n=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),r=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new i(0,0,n,r)}(w.ownerDocument):o(u,w),m=C.width,f=C.height,v=C.left,Q=C.top,F=Qi(u,w,e.backgroundColor),U={canvas:e.canvas,backgroundColor:F,scale:null!==(k=null!==(R=e.scale)&&void 0!==R?R:s.devicePixelRatio)&&void 0!==k?k:1,x:(null!==(K=e.x)&&void 0!==K?K:0)+v,y:(null!==(O=e.y)&&void 0!==O?O:0)+Q,width:null!==(V=e.width)&&void 0!==V?V:Math.ceil(m),height:null!==(G=e.height)&&void 0!==G?G:Math.ceil(f)},h?(u.logger.debug("Document cloned, using foreign object rendering"),[4,new pi(u,U).render(w)]):[3,3];case 2:return E=r.sent(),[3,5];case 3:return u.logger.debug("Document cloned, element located at "+v+","+Q+" with size "+m+"x"+f+" using computed rendering"),u.logger.debug("Starting DOM parsing"),y=Er(u,w),F===y.styles.backgroundColor&&(y.styles.backgroundColor=Qe.TRANSPARENT),u.logger.debug("Starting renderer for element at "+U.x+","+U.y+" with size "+U.width+"x"+U.height),[4,new di(u,U).render(y)];case 4:E=r.sent(),r.label=5;case 5:return(null===(_=e.removeContainer)||void 0===_||_)&&(as.destroy(p)||u.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),u.logger.debug("Finished rendering"),[2,E]}}))}))},Qi=function(A,e,t){var n=e.ownerDocument,r=n.documentElement?ve(A,getComputedStyle(n.documentElement).backgroundColor):Qe.TRANSPARENT,s=n.body?ve(A,getComputedStyle(n.body).backgroundColor):Qe.TRANSPARENT,i="string"==typeof t?ve(A,t):null===t?Qe.TRANSPARENT:4294967295;return e===n.documentElement?he(r)?he(s)?i:s:r:i};return function(A,e){return void 0===e&&(e={}),vi(A,e)}}()},880:A=>{const e={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};e.localCName=e.generateIdentifier(),e.splitLines=function(A){return A.trim().split("\n").map((A=>A.trim()))},e.splitSections=function(A){return A.split("\nm=").map(((A,e)=>(e>0?"m="+A:A).trim()+"\r\n"))},e.getDescription=function(A){const t=e.splitSections(A);return t&&t[0]},e.getMediaSections=function(A){const t=e.splitSections(A);return t.shift(),t},e.matchPrefix=function(A,t){return e.splitLines(A).filter((A=>0===A.indexOf(t)))},e.parseCandidate=function(A){let e;e=0===A.indexOf("a=candidate:")?A.substring(12).split(" "):A.substring(10).split(" ");const t={foundation:e[0],component:{1:"rtp",2:"rtcp"}[e[1]]||e[1],protocol:e[2].toLowerCase(),priority:parseInt(e[3],10),ip:e[4],address:e[4],port:parseInt(e[5],10),type:e[7]};for(let A=8;A<e.length;A+=2)switch(e[A]){case"raddr":t.relatedAddress=e[A+1];break;case"rport":t.relatedPort=parseInt(e[A+1],10);break;case"tcptype":t.tcpType=e[A+1];break;case"ufrag":t.ufrag=e[A+1],t.usernameFragment=e[A+1];break;default:void 0===t[e[A]]&&(t[e[A]]=e[A+1])}return t},e.writeCandidate=function(A){const e=[];e.push(A.foundation);const t=A.component;"rtp"===t?e.push(1):"rtcp"===t?e.push(2):e.push(t),e.push(A.protocol.toUpperCase()),e.push(A.priority),e.push(A.address||A.ip),e.push(A.port);const n=A.type;return e.push("typ"),e.push(n),"host"!==n&&A.relatedAddress&&A.relatedPort&&(e.push("raddr"),e.push(A.relatedAddress),e.push("rport"),e.push(A.relatedPort)),A.tcpType&&"tcp"===A.protocol.toLowerCase()&&(e.push("tcptype"),e.push(A.tcpType)),(A.usernameFragment||A.ufrag)&&(e.push("ufrag"),e.push(A.usernameFragment||A.ufrag)),"candidate:"+e.join(" ")},e.parseIceOptions=function(A){return A.substring(14).split(" ")},e.parseRtpMap=function(A){let e=A.substring(9).split(" ");const t={payloadType:parseInt(e.shift(),10)};return e=e[0].split("/"),t.name=e[0],t.clockRate=parseInt(e[1],10),t.channels=3===e.length?parseInt(e[2],10):1,t.numChannels=t.channels,t},e.writeRtpMap=function(A){let e=A.payloadType;void 0!==A.preferredPayloadType&&(e=A.preferredPayloadType);const t=A.channels||A.numChannels||1;return"a=rtpmap:"+e+" "+A.name+"/"+A.clockRate+(1!==t?"/"+t:"")+"\r\n"},e.parseExtmap=function(A){const e=A.substring(9).split(" ");return{id:parseInt(e[0],10),direction:e[0].indexOf("/")>0?e[0].split("/")[1]:"sendrecv",uri:e[1],attributes:e.slice(2).join(" ")}},e.writeExtmap=function(A){return"a=extmap:"+(A.id||A.preferredId)+(A.direction&&"sendrecv"!==A.direction?"/"+A.direction:"")+" "+A.uri+(A.attributes?" "+A.attributes:"")+"\r\n"},e.parseFmtp=function(A){const e={};let t;const n=A.substring(A.indexOf(" ")+1).split(";");for(let A=0;A<n.length;A++)t=n[A].trim().split("="),e[t[0].trim()]=t[1];return e},e.writeFmtp=function(A){let e="",t=A.payloadType;if(void 0!==A.preferredPayloadType&&(t=A.preferredPayloadType),A.parameters&&Object.keys(A.parameters).length){const n=[];Object.keys(A.parameters).forEach((e=>{void 0!==A.parameters[e]?n.push(e+"="+A.parameters[e]):n.push(e)})),e+="a=fmtp:"+t+" "+n.join(";")+"\r\n"}return e},e.parseRtcpFb=function(A){const e=A.substring(A.indexOf(" ")+1).split(" ");return{type:e.shift(),parameter:e.join(" ")}},e.writeRtcpFb=function(A){let e="",t=A.payloadType;return void 0!==A.preferredPayloadType&&(t=A.preferredPayloadType),A.rtcpFeedback&&A.rtcpFeedback.length&&A.rtcpFeedback.forEach((A=>{e+="a=rtcp-fb:"+t+" "+A.type+(A.parameter&&A.parameter.length?" "+A.parameter:"")+"\r\n"})),e},e.parseSsrcMedia=function(A){const e=A.indexOf(" "),t={ssrc:parseInt(A.substring(7,e),10)},n=A.indexOf(":",e);return n>-1?(t.attribute=A.substring(e+1,n),t.value=A.substring(n+1)):t.attribute=A.substring(e+1),t},e.parseSsrcGroup=function(A){const e=A.substring(13).split(" ");return{semantics:e.shift(),ssrcs:e.map((A=>parseInt(A,10)))}},e.getMid=function(A){const t=e.matchPrefix(A,"a=mid:")[0];if(t)return t.substring(6)},e.parseFingerprint=function(A){const e=A.substring(14).split(" ");return{algorithm:e[0].toLowerCase(),value:e[1].toUpperCase()}},e.getDtlsParameters=function(A,t){return{role:"auto",fingerprints:e.matchPrefix(A+t,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(A,e){let t="a=setup:"+e+"\r\n";return A.fingerprints.forEach((A=>{t+="a=fingerprint:"+A.algorithm+" "+A.value+"\r\n"})),t},e.parseCryptoLine=function(A){const e=A.substring(9).split(" ");return{tag:parseInt(e[0],10),cryptoSuite:e[1],keyParams:e[2],sessionParams:e.slice(3)}},e.writeCryptoLine=function(A){return"a=crypto:"+A.tag+" "+A.cryptoSuite+" "+("object"==typeof A.keyParams?e.writeCryptoKeyParams(A.keyParams):A.keyParams)+(A.sessionParams?" "+A.sessionParams.join(" "):"")+"\r\n"},e.parseCryptoKeyParams=function(A){if(0!==A.indexOf("inline:"))return null;const e=A.substring(7).split("|");return{keyMethod:"inline",keySalt:e[0],lifeTime:e[1],mkiValue:e[2]?e[2].split(":")[0]:void 0,mkiLength:e[2]?e[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(A){return A.keyMethod+":"+A.keySalt+(A.lifeTime?"|"+A.lifeTime:"")+(A.mkiValue&&A.mkiLength?"|"+A.mkiValue+":"+A.mkiLength:"")},e.getCryptoParameters=function(A,t){return e.matchPrefix(A+t,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(A,t){const n=e.matchPrefix(A+t,"a=ice-ufrag:")[0],r=e.matchPrefix(A+t,"a=ice-pwd:")[0];return n&&r?{usernameFragment:n.substring(12),password:r.substring(10)}:null},e.writeIceParameters=function(A){let e="a=ice-ufrag:"+A.usernameFragment+"\r\na=ice-pwd:"+A.password+"\r\n";return A.iceLite&&(e+="a=ice-lite\r\n"),e},e.parseRtpParameters=function(A){const t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=e.splitLines(A)[0].split(" ");t.profile=n[2];for(let r=3;r<n.length;r++){const s=n[r],i=e.matchPrefix(A,"a=rtpmap:"+s+" ")[0];if(i){const n=e.parseRtpMap(i),r=e.matchPrefix(A,"a=fmtp:"+s+" ");switch(n.parameters=r.length?e.parseFmtp(r[0]):{},n.rtcpFeedback=e.matchPrefix(A,"a=rtcp-fb:"+s+" ").map(e.parseRtcpFb),t.codecs.push(n),n.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(n.name.toUpperCase())}}}e.matchPrefix(A,"a=extmap:").forEach((A=>{t.headerExtensions.push(e.parseExtmap(A))}));const r=e.matchPrefix(A,"a=rtcp-fb:* ").map(e.parseRtcpFb);return t.codecs.forEach((A=>{r.forEach((e=>{A.rtcpFeedback.find((A=>A.type===e.type&&A.parameter===e.parameter))||A.rtcpFeedback.push(e)}))})),t},e.writeRtpDescription=function(A,t){let n="";n+="m="+A+" ",n+=t.codecs.length>0?"9":"0",n+=" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" ",n+=t.codecs.map((A=>void 0!==A.preferredPayloadType?A.preferredPayloadType:A.payloadType)).join(" ")+"\r\n",n+="c=IN IP4 0.0.0.0\r\n",n+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach((A=>{n+=e.writeRtpMap(A),n+=e.writeFmtp(A),n+=e.writeRtcpFb(A)}));let r=0;return t.codecs.forEach((A=>{A.maxptime>r&&(r=A.maxptime)})),r>0&&(n+="a=maxptime:"+r+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach((A=>{n+=e.writeExtmap(A)})),n},e.parseRtpEncodingParameters=function(A){const t=[],n=e.parseRtpParameters(A),r=-1!==n.fecMechanisms.indexOf("RED"),s=-1!==n.fecMechanisms.indexOf("ULPFEC"),i=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute)),o=i.length>0&&i[0].ssrc;let a;const c=e.matchPrefix(A,"a=ssrc-group:FID").map((A=>A.substring(17).split(" ").map((A=>parseInt(A,10)))));c.length>0&&c[0].length>1&&c[0][0]===o&&(a=c[0][1]),n.codecs.forEach((A=>{if("RTX"===A.name.toUpperCase()&&A.parameters.apt){let e={ssrc:o,codecPayloadType:parseInt(A.parameters.apt,10)};o&&a&&(e.rtx={ssrc:a}),t.push(e),r&&(e=JSON.parse(JSON.stringify(e)),e.fec={ssrc:o,mechanism:s?"red+ulpfec":"red"},t.push(e))}})),0===t.length&&o&&t.push({ssrc:o});let l=e.matchPrefix(A,"b=");return l.length&&(l=0===l[0].indexOf("b=TIAS:")?parseInt(l[0].substring(7),10):0===l[0].indexOf("b=AS:")?1e3*parseInt(l[0].substring(5),10)*.95-16e3:void 0,t.forEach((A=>{A.maxBitrate=l}))),t},e.parseRtcpParameters=function(A){const t={},n=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute))[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);const r=e.matchPrefix(A,"a=rtcp-rsize");t.reducedSize=r.length>0,t.compound=0===r.length;const s=e.matchPrefix(A,"a=rtcp-mux");return t.mux=s.length>0,t},e.writeRtcpParameters=function(A){let e="";return A.reducedSize&&(e+="a=rtcp-rsize\r\n"),A.mux&&(e+="a=rtcp-mux\r\n"),void 0!==A.ssrc&&A.cname&&(e+="a=ssrc:"+A.ssrc+" cname:"+A.cname+"\r\n"),e},e.parseMsid=function(A){let t;const n=e.matchPrefix(A,"a=msid:");if(1===n.length)return t=n[0].substring(7).split(" "),{stream:t[0],track:t[1]};const r=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"msid"===A.attribute));return r.length>0?(t=r[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},e.parseSctpDescription=function(A){const t=e.parseMLine(A),n=e.matchPrefix(A,"a=max-message-size:");let r;n.length>0&&(r=parseInt(n[0].substring(19),10)),isNaN(r)&&(r=65536);const s=e.matchPrefix(A,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substring(12),10),protocol:t.fmt,maxMessageSize:r};const i=e.matchPrefix(A,"a=sctpmap:");if(i.length>0){const A=i[0].substring(10).split(" ");return{port:parseInt(A[0],10),protocol:A[1],maxMessageSize:r}}},e.writeSctpDescription=function(A,e){let t=[];return t="DTLS/SCTP"!==A.protocol?["m="+A.kind+" 9 "+A.protocol+" "+e.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+e.port+"\r\n"]:["m="+A.kind+" 9 "+A.protocol+" "+e.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+e.port+" "+e.protocol+" 65535\r\n"],void 0!==e.maxMessageSize&&t.push("a=max-message-size:"+e.maxMessageSize+"\r\n"),t.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(A,t,n){let r;const s=void 0!==t?t:2;return r=A||e.generateSessionId(),"v=0\r\no="+(n||"thisisadapterortc")+" "+r+" "+s+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},e.getDirection=function(A,t){const n=e.splitLines(A);for(let A=0;A<n.length;A++)switch(n[A]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return n[A].substring(2)}return t?e.getDirection(t):"sendrecv"},e.getKind=function(A){return e.splitLines(A)[0].split(" ")[0].substring(2)},e.isRejected=function(A){return"0"===A.split(" ",2)[1]},e.parseMLine=function(A){const t=e.splitLines(A)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}},e.parseOLine=function(A){const t=e.matchPrefix(A,"o=")[0].substring(2).split(" ");return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}},e.isValidSDP=function(A){if("string"!=typeof A||0===A.length)return!1;const t=e.splitLines(A);for(let A=0;A<t.length;A++)if(t[A].length<2||"="!==t[A].charAt(1))return!1;return!0},A.exports=e}},t={};function n(A){var r=t[A];if(void 0!==r)return r.exports;var s=t[A]={exports:{}};return e[A].call(s.exports,s,s.exports,n),s.exports}n.n=A=>{var e=A&&A.__esModule?()=>A.default:()=>A;return n.d(e,{a:e}),e},n.d=(A,e)=>{for(var t in e)n.o(e,t)&&!n.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},n.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var r={};n.d(r,{ZW:()=>Fn,II:()=>I,LD:()=>b,Z8:()=>T,Ci:()=>H,B5:()=>fA,iE:()=>Pn,sl:()=>cr,KT:()=>lr,ix:()=>ur,yS:()=>hr,ku:()=>gr,bF:()=>Br,Fr:()=>wr,bI:()=>pr,l$:()=>Cr,nl:()=>mr,KZ:()=>fr,u5:()=>vr,aQ:()=>Qr,I$:()=>Fr,$A:()=>Er,Kt:()=>yr,CI:()=>Sr,Cq:()=>br,_b:()=>Ir,sx:()=>mi,r4:()=>Kr,N7:()=>Qi,qr:()=>Or,X8:()=>Vr,Sj:()=>dr,vh:()=>Gr,hj:()=>bn,D4:()=>_r,ZN:()=>Nr,sJ:()=>Wr,EP:()=>ss,Ij:()=>ri,Kx:()=>is,cU:()=>Kn,f8:()=>In,yZ:()=>os,Y0:()=>as,wZ:()=>Ur,E2:()=>cs,RR:()=>ls,Wq:()=>ds,X5:()=>Hn,vQ:()=>Tn,m4:()=>us,$D:()=>vi,M$:()=>ai,rO:()=>Sn,SM:()=>ci,YJ:()=>hs,FU:()=>gs,vP:()=>Bs,Y1:()=>ws,tP:()=>Hs,q5:()=>Ts,HY:()=>Ms,Yn:()=>Ls,cL:()=>xs,D9:()=>Ps,W2:()=>fi,iT:()=>Ds,CB:()=>Un,VS:()=>Rs,Mz:()=>Fi,C6:()=>ks,EF:()=>Ks,jv:()=>Os,vx:()=>ar,CT:()=>Vs,DH:()=>Gs,h4:()=>Zs,QC:()=>qs,GK:()=>Ai,AP:()=>Ci,bT:()=>ei,mE:()=>En,Pk:()=>ti,$8:()=>ni,Rp:()=>vA,CW:()=>iA,Gu:()=>eA,xp:()=>cA,$E:()=>w,ZL:()=>L,Xw:()=>N,s2:()=>R,Cv:()=>Ui,lP:()=>sA,vM:()=>B,Vl:()=>C,l1:()=>m,he:()=>g,jk:()=>F,xG:()=>X,eb:()=>Y,XH:()=>j,d:()=>hA,o:()=>Z,nM:()=>q,hQ:()=>G,aF:()=>_,kG:()=>uA,mK:()=>W,vK:()=>AA,Zd:()=>pA,Nk:()=>$,NP:()=>z,h0:()=>BA,Hv:()=>Q,Ew:()=>mA,Qq:()=>O,rt:()=>V,mC:()=>K,gQ:()=>p,Ky:()=>U,yM:()=>tA,QN:()=>gA,j3:()=>wA,rg:()=>k,Cb:()=>x,$I:()=>P,bR:()=>D,cd:()=>M,qB:()=>y,Y4:()=>E,am:()=>S,PO:()=>CA,Xh:()=>f,Nj:()=>v,QF:()=>J,eK:()=>aA,hT:()=>oA,Kk:()=>nA,H0:()=>rA,Rk:()=>dA,cz:()=>lA});const s=(i={Destroyable:()=>A.Destroyable,ES3DTileset:()=>A.ES3DTileset,ESAlarm:()=>A.ESAlarm,ESApertureEffect:()=>A.ESApertureEffect,ESAreaMeasurement:()=>A.ESAreaMeasurement,ESBlastParticleSystem:()=>A.ESBlastParticleSystem,ESBoxClipping:()=>A.ESBoxClipping,ESCameraView:()=>A.ESCameraView,ESCameraVisibleRange:()=>A.ESCameraVisibleRange,ESCar:()=>A.ESCar,ESClassification:()=>A.ESClassification,ESClippingPlane:()=>A.ESClippingPlane,ESCustomDiv:()=>A.ESCustomDiv,ESDataMesh:()=>A.ESDataMesh,ESDatasmithRuntimeModel:()=>A.ESDatasmithRuntimeModel,ESDirectionMeasurement:()=>A.ESDirectionMeasurement,ESDistanceMeasurement:()=>A.ESDistanceMeasurement,ESDynamicWater:()=>A.ESDynamicWater,ESEntityCluster:()=>A.ESEntityCluster,ESExcavate:()=>A.ESExcavate,ESFireParticleSystem:()=>A.ESFireParticleSystem,ESForestTileset:()=>A.ESForestTileset,ESGaussianSplatting:()=>A.ESGaussianSplatting,ESGeoDiv:()=>A.ESGeoDiv,ESGeoExtrudedPolygon:()=>A.ESGeoExtrudedPolygon,ESGeoJson:()=>A.ESGeoJson,ESGeoLineString:()=>A.ESGeoLineString,ESGeoPolygon:()=>A.ESGeoPolygon,ESGeoRectangle:()=>A.ESGeoRectangle,ESGeoWater:()=>A.ESGeoWater,ESGltfModel:()=>A.ESGltfModel,ESHeightMeasurement:()=>A.ESHeightMeasurement,ESHuman:()=>A.ESHuman,ESHumanPoi:()=>A.ESHumanPoi,ESImageLabel:()=>A.ESImageLabel,ESImageryLayer:()=>A.ESImageryLayer,ESLevelRuntimeModel:()=>A.ESLevelRuntimeModel,ESLocalCircle:()=>A.ESLocalCircle,ESLocalPolygon:()=>A.ESLocalPolygon,ESLocalPolygonZ:()=>A.ESLocalPolygonZ,ESLocalRectangle:()=>A.ESLocalRectangle,ESLocalSkyBox:()=>A.ESLocalSkyBox,ESLocationMeasurement:()=>A.ESLocationMeasurement,ESMsTileset:()=>A.ESMsTileset,ESNavigator:()=>A.ESNavigator,ESPath:()=>A.ESPath,ESPipeFence:()=>A.ESPipeFence,ESPipeline:()=>A.ESPipeline,ESPipeserTileset:()=>A.ESPipeserTileset,ESPit:()=>A.ESPit,ESPoi2D:()=>A.ESPoi2D,ESPoi3D:()=>A.ESPoi3D,ESPoiTileset:()=>A.ESPoiTileset,ESPolygonFence:()=>A.ESPolygonFence,ESPolygonFlattenedPlane:()=>A.ESPolygonFlattenedPlane,ESPolygonWithHole:()=>A.ESPolygonWithHole,ESRtsFeatureEditing:()=>A.ESRtsFeatureEditing,ESRtsTileset:()=>A.ESRtsTileset,ESSceneObject:()=>A.ESSceneObject,ESSeparateFoliage:()=>A.ESSeparateFoliage,ESStaticMesh:()=>A.ESStaticMesh,ESSubmergingAnalysis:()=>A.ESSubmergingAnalysis,ESSunshineAnalysis:()=>A.ESSunshineAnalysis,ESSurfaceAreaMeasurement:()=>A.ESSurfaceAreaMeasurement,ESTerrainLayer:()=>A.ESTerrainLayer,ESTextLabel:()=>A.ESTextLabel,ESUEWidget:()=>A.ESUEWidget,ESUnrealActor:()=>A.ESUnrealActor,ESVideoFusion:()=>A.ESVideoFusion,ESViewShed:()=>A.ESViewShed,ESViewer:()=>A.ESViewer,ESViewerStatusBar:()=>A.ESViewerStatusBar,ESVisibilityAnalysis:()=>A.ESVisibilityAnalysis,ESVisualObject:()=>A.ESVisualObject,ESVolumeMeasurement:()=>A.ESVolumeMeasurement,ESWidget:()=>A.ESWidget,EngineObject:()=>A.EngineObject,Event:()=>A.Event,HasOwner:()=>A.HasOwner,ObjResettingWithEvent:()=>A.ObjResettingWithEvent,PickedInfo:()=>A.PickedInfo,PickedResult:()=>A.PickedResult,SceneObjectPickedInfo:()=>A.SceneObjectPickedInfo,ViewerCustomInteraction:()=>A.ViewerCustomInteraction,addTreesCallFunc:()=>A.addTreesCallFunc,bind:()=>A.bind,createAnimateFrame:()=>A.createAnimateFrame,createGuid:()=>A.createGuid,createInterval:()=>A.createInterval,createNextAnimateFrameEvent:()=>A.createNextAnimateFrameEvent,createProcessingFromAsyncFunc:()=>A.createProcessingFromAsyncFunc,cutDownTreesCallFunc:()=>A.cutDownTreesCallFunc,extendClassProps:()=>A.extendClassProps,getGeoBoundingSphereFromPositions:()=>A.getGeoBoundingSphereFromPositions,growthSimulationCallFunc:()=>A.growthSimulationCallFunc,react:()=>A.react,reactArrayWithUndefined:()=>A.reactArrayWithUndefined,reactJson:()=>A.reactJson,removeAllTreesCallFunc:()=>A.removeAllTreesCallFunc,rpToap:()=>A.rpToap,sleep:()=>A.sleep,track:()=>A.track,updateTreeParamsCallFunc:()=>A.updateTreeParamsCallFunc},o={},n.d(o,i),o);var i,o,a;const c=()=>Object.assign(Object.assign({},s.ESViewer.createCommonProps()),{apiKey:"",apiUrl:"",secretKey:"",speechVoiceMode:"",geoReferenceOrigin:(0,s.reactArrayWithUndefined)(void 0),keepWorldOriginNearCamera:void 0,useCache:void 0,widgetInteractionDistance:void 0,memReportInterval:void 0,sceneControlled:void 0,brightness:void 0,emissiveIntensity:void 0,statusUpdateInterval:void 0,baseUrl:void 0}),l=Object.assign(Object.assign({},s.ESViewer.defaults),{geoReferenceOrigin:void 0,keepWorldOriginNearCamera:!1,useCache:!0,widgetInteractionDistance:200,memReportInterval:10,sceneControlled:!0,brightness:0,emissiveIntensity:1,statusUpdateInterval:.5,baseUrl:null!==(a=window.location.href)&&void 0!==a?a:""});function d(){const A=c(),e=[];return Object.keys(A).forEach((A=>{e.push(A)})),e}function u(A){const{defaults:e}=Fn,t=d(),n={};return t.forEach((t=>{var r;n[t]=null!==(r=A[t])&&void 0!==r?r:e[t]})),n}var h=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const g=(A,e,t,n,r)=>h(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyTo",p:{id:e,duration:t,flyToParam:n,position:r}});if(!s.error)return s.re;console.error(s.error)})),B=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"destroy",p:{id:e}});return t.error&&console.error(t.error),t})),w=(A,e)=>{A.callUeFunc({f:"calcFlyToParam",p:{id:e}}).then((A=>{A.error&&console.error("calcFlyToParam:",A.error)})).catch((A=>{console.error("calcFlyToParam:",A)}))},p=(A,e)=>{A.callUeFunc({f:"refreshTileset",p:{id:e}}).then((A=>{A.error&&console.error("refreshTileset:",A.error)})).catch((A=>{console.error("refreshTileset:",A)}))},C=(A,e,t,n,r)=>h(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyIn",p:{id:e,position:t,rotation:n,duration:r}});if(!s.error)return s.re;console.error(s.error)})),m=(A,e)=>h(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("DefaultCameraFlyIn: viewer is undefined");const t=yield A.callUeFunc({f:"DefaultCameraFlyIn",p:{Duration:null!=e?e:1}});if(!t.error)return t;console.error("DefaultCameraFlyIn:",t.error)})),f=A=>h(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("StartVoice:viewer is undefined");const e=yield A.callUeFunc({f:"StartVoice",p:{}});if(!e.error)return e;console.error("StartVoice:",e.error)})),v=A=>h(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("StopVoice:viewer is undefined");const e=yield A.callUeFunc({f:"StopVoice",p:{}});if(!e.error)return e;console.error("StopVoice:",e.error)})),Q=(A,e)=>h(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("mountPakFiles:viewer is undefined");const t=yield A.callUeFunc({f:"MountPakFiles",p:{json:e}});if(!t.error)return t;console.error("mountPakFiles:",t.error)})),F=A=>h(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("generateMemReport:viewer is undefined");const e=yield A.callUeFunc({f:"GenerateMemReport",p:{}});if(!e.error)return e;console.error("generateMemReport:",e.error)})),U=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"resetWithCurrentCamera",p:{id:e}});return t.error&&console.error("resetWithCurrentCamera:",t.error),t})),E=(A,e,t,n,r)=>{A.callUeFunc({f:"smoothMoveWithRotation",p:{id:e,Destination:t,NewRotation:n,Time:r}}).then((A=>{A.error&&console.error("smoothMoveWithRotation:",A.error)})).catch((A=>{console.error("smoothMoveWithRotation:",A)}))},y=(A,e,t,n,r,s)=>{A.callUeFunc({f:"smoothMoveOnGround",p:{id:e,Lon:t,Lat:n,Ground:r,Time:s}}).then((A=>{A.error&&console.error("smoothMoveOnGround:",A.error)})).catch((A=>{console.error("smoothMoveOnGround:",A)}))},S=(A,e,t,n,r,s,i)=>{A.callUeFunc({f:"smoothMoveWithRotationOnGround",p:{id:e,NewRotation:t,Lon:n,Lat:r,Time:s,Ground:i}}).then((A=>{A.error&&console.error("smoothMoveWithRotationOnGround:",A.error)})).catch((A=>{console.error("smoothMoveWithRotationOnGround:",A)}))},b=(A,e,t)=>{A.callUeFunc({f:"HighlightFeature",p:{id:e,HlId:t}}).then((A=>{A.error&&console.error("HighlightFeature:",A.error)})).catch((A=>{console.error("HighlightFeature:",A)}))},I=(A,e,t,n)=>{A.callUeFunc({f:"HighlightFeatureAndFlyTo",p:{id:e,HlId:t,Duration:n}}).then((A=>{A.error&&console.error("HighlightFeatureAndFlyTo:",A.error)})).catch((A=>{console.error("HighlightFeatureAndFlyTo:",A)}))},H=(A,e,t)=>{A.callUeFunc({f:"SetLayerVisible",p:{id:e,LayerJson:t}}).then((A=>{A.error&&console.error("SetLayerVisible:",A.error)})).catch((A=>{console.error("SetLayerVisible:",A)}))},T=(A,e,t)=>{A.callUeFunc({f:"SetLayerColor",p:{id:e,LayerJson:t}}).then((A=>{A.error&&console.error("SetLayerColor:",A.error)})).catch((A=>{console.error("SetLayerColor:",A)}))},M=(A,e,t,n)=>{A.callUeFunc({f:"smoothMove",p:{id:e,Destination:t,Time:n}}).then((A=>{A.error&&console.error("smoothMove:",A.error)})).catch((A=>{console.error("smoothMove:",A)}))},L=(A,e,t,n)=>{A.callUeFunc({f:"callFunction",p:{id:e,fn:t,p:n}}).then((A=>{A.error&&(console.error("callFunction:",A.error),console.error(`id: ${e} fn: ${t} param: ${n}`))})).catch((A=>{console.error("callFunction:",A),console.error(`id: ${e} fn: ${t} param: ${n}`)}))},x=(A,e,t,n)=>{A.callUeFunc({f:"SetNodePosition",p:{id:e,NodeName:t,NodePosition:n}}).then((A=>{A.error&&console.error("SetNodePosition:",A.error)})).catch((A=>{console.error("SetNodePosition:",A)}))},P=(A,e,t,n)=>{A.callUeFunc({f:"SetNodeRotation",p:{id:e,NodeName:t,NodeRotation:n}}).then((A=>{A.error&&console.error("SetNodeRotation:",A.error)})).catch((A=>{console.error("SetNodeRotation:",A)}))},D=(A,e,t,n)=>{A.callUeFunc({f:"SetNodeScale",p:{id:e,NodeName:t,NodeScale:n}}).then((A=>{A.error&&console.error("SetNodeScale:",A.error)})).catch((A=>{console.error("SetNodeScale:",A)}))},R=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"ChangeNavigationMode",p:e});if(!t.error)return t;console.error("ChangeNavigationMode:",t.error)})),k=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"setGlobalProperty",p:e});if(!t.error)return t;console.error("setGlobalProperty:",t.error)})),K=A=>h(void 0,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"Quit",p:void 0});if(!e.error)return e;console.error("Quit:",e.error)})),O=(A,e,t,n)=>h(void 0,void 0,void 0,(function*(){var r;console.log("pickCallFunc",e,t,n);const i=yield A.callUeFunc({f:"pick",p:{screenPosition:e,parentInfo:n}});if(!i.re&&(i.error||""==i.error))return void console.error("pick:",""==i.error?"未获取到结果":i.error);let o=i.re.id;o=null==o?void 0:o.split("_")[0];const a=o?s.ESSceneObject.getSceneObjectById(o):void 0;return a&&Reflect.has(a,"allowPicking")&&Reflect.has(a,"pickedEvent")&&null!==(r=a.allowPicking)&&void 0!==r&&r&&a.pickedEvent.emit({attachedInfo:t}),a&&Reflect.has(a,"allowPicking")&&!a.allowPicking?new s.PickedResult:new s.PickedResult(i.re,a,i.re.features,i.re.add,t)})),V=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"pickPosition",p:{screenPosition:e}});if(!t.re&&(t.error||""==t.error))return void console.error("pickPosition",""==t.error?"未获取到结果":t.error);const{position:n}=t.re;return n})),G=(A,e,t,n="ECC_Visibility")=>h(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"GetHeightByLonLat",p:{Lon:e,Lat:t,Channel:n}});if(!r.error)return r.re;console.warn(`GetHeightByLonLat:${r.error}`)})),_=(A,e,t="ECC_Visibility")=>h(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"GetHeightsByLonLats",p:{LonLats:e,Channel:t}});if(n.error)console.warn(`GetHeightsByLonLats:${n.error}`);else{n.re.heights.includes(null)&&console.warn("注意! GetHeightsByLonLats: 存在高度为null的点. there are points with a height of null");try{return n.re.heights}catch(A){return}}})),N=(A,e=64,t=64)=>h(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"capture",p:{resx:e,resy:t}});if(!n.error)return n.re.image;console.warn(n.error)})),W=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"LonLatAltToScreenPosition",p:{LonLatAlt:e}});return t.error&&console.warn(t.error),t.re})),J=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"UEPositionToLonLatAlt",p:{UEPosition:e}});if(!t.error)return[...t.re.LonLatAlt];console.warn(t.error)})),X=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetAllSocketNamesByActorTag",p:{ActorTag:e}});if(!t.error)return[...t.re.socketNames];console.warn(t.error)})),z=A=>h(void 0,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"GetVersion",p:void 0});if(!e.error)return e.re.version;console.warn("GetVersion:",e.error)})),Y=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetBoundSphere",p:{id:e}});if(!t.error)return t.re;console.warn(t.error)})),j=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetBoundSphereWithChildren",p:{id:e}});if(!t.error)return t.re;console.warn(`GetBoundSphereWithChildren:${t.error}`)})),$=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetStrokeMaterialParamInfo",p:{id:e}});if(!t.error)return t.re;console.warn(`GetStrokeMaterialParamInfo:${t.error}`)})),Z=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetFillMaterialParamInfo",p:{id:e}});if(!t.error)return t.re;console.warn(`GetFillMaterialParamInfo:${t.error}`)})),q=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"getGlobalProperty",p:{props:e}});if(!t.error)return t.re;console.warn(`getGlobalProperty:${t.error}`)})),AA=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetObjectByInfo",p:{info:e}});if(!t.error)return t.re;console.warn(`GetObjectByInfo:${t.error}`)})),eA=(A,e,t)=>h(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindActorByTag",p:{ID:e,ActorTag:t}})})),tA=A=>h(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"RestoreOriginalScene",p:void 0})})),nA=(A,e)=>h(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByID",p:{ID:e}})})),rA=(A,e)=>h(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByTag",p:{ActorTag:e}})})),sA=(A,e,t)=>h(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"CreateActorByClass",p:{ID:e,ActorClass:t}})})),iA=function(A,e,t){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"Bind3DTilesetByTag",p:{ID:e,ActorTag:t}})}))},oA=function(A,e){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetByTag",p:{ActorTag:e}})}))},aA=function(A,e){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetById",p:{ID:e}})}))},cA=function(A,e,t,n){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindImageryByTag",p:{ID:e,ActorTag:t,ComponentTag:n}})}))},lA=function(A,e,t){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryByTag",p:{ActorTag:e,ComponentTag:t}})}))},dA=function(A,e){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryById",p:{ID:e}})}))},uA=function(A,e,t,n){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetIdByComponentNameAndHitItem",p:{id:e,ComponentName:t,HitItem:n}})}))},hA=function(A,e="ECC_Visibility"){return h(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetCameraRelativeHeight",p:{Channel:e}})}))},gA=function(A,e,t,n){return h(this,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"SaveStringToFile",p:{String:e,Path:null!=t?t:"undefine",File:null!=n?n:"data.txt"}});return""!==r.error&&console.warn("SaveStringToFile: ",r.error),r}))},BA=function(A,e,t=!0){return h(this,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"HighlightActorByTag",p:{ActorTag:e,Highlight:t}});return""!==n.error&&console.warn("HighlightActorByTag: ",n.error),n}))},wA=function(A,e){return h(this,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"SendCustomMessage",p:{Message:e}});return""!==t.error&&console.warn("SendCustomMessage: ",t.error),t}))},pA=function(A){return h(this,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"GetStatus",p:void 0});if(!e.error)return e.re;console.warn(`GetStatus:${e.error}`)}))},CA=(A,e,t,n=!0)=>h(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"startEditing",p:{sceneObjectID:e,modes:t,useKeyToSwitch:n}});if(!r.error)return r;console.error("startEditing:",r.error)})),mA=(A,e)=>h(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"moveObjects",p:{sceneObjectIDs:e}});if(!t.error)return t;console.error("moveObjects:",t.error)}));class fA extends s.Destroyable{}class vA extends s.PickedInfo{constructor(A,e,t){super(e),this.uePickResult=A,this.tilesetPickInfo=t}}var QA,FA,UA,EA=n(880),yA={d:(A,e)=>{for(var t in e)yA.o(e,t)&&!yA.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},SA={};yA.d(SA,{Dz:()=>We,g$:()=>Ae,Lt:()=>$A,Q9:()=>qA,qf:()=>ZA,hV:()=>At,z$:()=>Xt,J0:()=>je,De:()=>_e,$C:()=>Ne,al:()=>ce,_W:()=>le,Gv:()=>Ee,m:()=>ye,tz:()=>ae,Nu:()=>Ye,zg:()=>dt,vp:()=>xe,vU:()=>Pe,wF:()=>fe,rv:()=>Xe,Nh:()=>ze,ss:()=>ct,qW:()=>Se,QL:()=>Ue,cf:()=>ht,eM:()=>me,Yd:()=>bA,Tk:()=>it,iM:()=>KA,qy:()=>IA,ce:()=>OA,sK:()=>Re,Ok:()=>Ve,q5:()=>$e,g:()=>Jt,xl:()=>we,I:()=>pe,bx:()=>Ce,dD:()=>Me,Ib:()=>JA,Az:()=>XA,Iw:()=>zA,qY:()=>jA,db:()=>YA,mR:()=>be,Tn:()=>VA,rV:()=>ve,gh:()=>ue,Mi:()=>he,j:()=>ge,YB:()=>Be,Yt:()=>Fe,i5:()=>Qe,x_:()=>Ke,Am:()=>kt,eR:()=>ee,r8:()=>de,u3:()=>ut,vd:()=>ne,iV:()=>se,jZ:()=>re,SW:()=>oe,ZH:()=>ie,Ni:()=>Ot,lh:()=>te,ZP:()=>Le,bq:()=>GA,$f:()=>Gt,eu:()=>Te,Ax:()=>He,Mc:()=>Ie});class bA{static GetStackTrace(){const A=new Error;let e="No Stack Available for this browser";return A.stack&&(e=A.stack.toString().replace(/Error/g,"")),e}static SetLoggerVerbosity(A){null!=this.verboseLogLevel&&(this.verboseLogLevel=A)}static Log(A,e,t){if(t>this.verboseLogLevel)return;const n=`Level: Log\nMsg: ${e}\nCaller: ${A}`;console.log(n)}static Info(A,e,t){if(t>this.verboseLogLevel)return;const n=`Level: Info\nMsg: ${e}`;console.info(n)}static Error(A,e){const t=`Level: Error\nMsg: ${e}\nCaller: ${A}`;console.error(t)}static Warning(A,e){const t=`Level: Warning\nCaller: ${A}\nMsg: ${e}`;console.warn(t)}}bA.verboseLogLevel=5,(UA=QA||(QA={})).LIST_STREAMERS="listStreamers",UA.SUBSCRIBE="subscribe",UA.UNSUBSCRIBE="unsubscribe",UA.ICE_CANDIDATE="iceCandidate",UA.OFFER="offer",UA.ANSWER="answer",UA.DATACHANNELREQUEST="dataChannelRequest",UA.SFURECVDATACHANNELREADY="peerDataChannelsReady",UA.PONG="pong";class IA{sendFilter(A,e){return e}payload(){return bA.Log(bA.GetStackTrace(),"Sending => \n"+JSON.stringify(this,this.sendFilter,4),6),JSON.stringify(this,this.sendFilter)}}class HA extends IA{constructor(){super(),this.type=QA.LIST_STREAMERS}}class TA extends IA{constructor(A){super(),this.type=QA.SUBSCRIBE,this.streamerId=A}}class MA extends IA{constructor(){super(),this.type=QA.UNSUBSCRIBE}}class LA extends IA{constructor(A){super(),this.type=QA.PONG,this.time=A}}class xA extends IA{constructor(A,e){super(),this.type=QA.OFFER,this.minBitrate=0,this.maxBitrate=0,A&&(this.type=A.type,this.sdp=A.sdp,this.minBitrate=e.minBitrateBps,this.maxBitrate=e.maxBitrateBps)}sendFilter(A,e){if("minBitrate"!=A&&"maxBitrate"!=A||!(e<=0))return e}}class PA extends IA{constructor(A,e){super(),this.type=QA.ANSWER,this.minBitrate=0,this.maxBitrate=0,A&&(this.type=A.type,this.sdp=A.sdp,this.minBitrate=e.minBitrateBps,this.maxBitrate=e.maxBitrateBps)}sendFilter(A,e){if("minBitrate"!=A&&"maxBitrate"!=A||!(e<=0))return e}}class DA extends IA{constructor(){super(),this.type=QA.DATACHANNELREQUEST}}class RA extends IA{constructor(){super(),this.type=QA.SFURECVDATACHANNELREADY}}class kA{constructor(A){this.type=QA.ICE_CANDIDATE,this.candidate=A}payload(){return bA.Log(bA.GetStackTrace(),"Sending => \n"+JSON.stringify(this,void 0,4),6),JSON.stringify(this)}}!function(A){A.CONFIG="config",A.STREAMER_LIST="streamerList",A.STREAMER_ID_CHANGED="streamerIDChanged",A.PLAYER_COUNT="playerCount",A.OFFER="offer",A.ANSWER="answer",A.ICE_CANDIDATE="iceCandidate",A.PEER_DATA_CHANNELS="peerDataChannels",A.PING="ping",A.WARNING="warning"}(FA||(FA={}));class KA{}class OA extends KA{}class VA{constructor(){this.FromUEMessageHandlers=new Map}addMessageHandler(A,e){this.FromUEMessageHandlers.set(A,e)}handleMessage(A,e){this.FromUEMessageHandlers.has(A)?this.FromUEMessageHandlers.get(A)(e):bA.Error(bA.GetStackTrace(),`Message type of ${A} does not have a message handler registered on the frontend - ignoring message.`)}static setupDefaultHandlers(A){A.signallingProtocol.addMessageHandler(FA.PING,(e=>{const t=new LA((new Date).getTime()).payload();bA.Log(bA.GetStackTrace(),FA.PING+": "+e,6),A.webSocket.send(t)})),A.signallingProtocol.addMessageHandler(FA.CONFIG,(e=>{bA.Log(bA.GetStackTrace(),FA.CONFIG,6);const t=JSON.parse(e);A.onConfig(t)})),A.signallingProtocol.addMessageHandler(FA.STREAMER_LIST,(e=>{bA.Log(bA.GetStackTrace(),FA.STREAMER_LIST,6);const t=JSON.parse(e);A.onStreamerList(t)})),A.signallingProtocol.addMessageHandler(FA.STREAMER_ID_CHANGED,(e=>{bA.Log(bA.GetStackTrace(),FA.STREAMER_ID_CHANGED,6);const t=JSON.parse(e);A.onStreamerIDChanged(t)})),A.signallingProtocol.addMessageHandler(FA.PLAYER_COUNT,(e=>{bA.Log(bA.GetStackTrace(),FA.PLAYER_COUNT,6);const t=JSON.parse(e);bA.Log(bA.GetStackTrace(),"Player Count: "+t.count,6),A.onPlayerCount(t)})),A.signallingProtocol.addMessageHandler(FA.ANSWER,(e=>{bA.Log(bA.GetStackTrace(),FA.ANSWER,6);const t=JSON.parse(e);A.onWebRtcAnswer(t)})),A.signallingProtocol.addMessageHandler(FA.OFFER,(e=>{bA.Log(bA.GetStackTrace(),FA.OFFER,6);const t=JSON.parse(e);A.onWebRtcOffer(t)})),A.signallingProtocol.addMessageHandler(FA.ICE_CANDIDATE,(e=>{bA.Log(bA.GetStackTrace(),FA.ICE_CANDIDATE,6);const t=JSON.parse(e);A.onIceCandidate(t.candidate)})),A.signallingProtocol.addMessageHandler(FA.WARNING,(A=>{bA.Warning(bA.GetStackTrace(),`Warning received: ${A}`)})),A.signallingProtocol.addMessageHandler(FA.PEER_DATA_CHANNELS,(e=>{bA.Log(bA.GetStackTrace(),FA.PEER_DATA_CHANNELS,6);const t=JSON.parse(e);A.onWebRtcPeerDataChannels(t)}))}}class GA{constructor(){this.WS_OPEN_STATE=1,this.onOpen=new EventTarget,this.onClose=new EventTarget,this.signallingProtocol=new VA,VA.setupDefaultHandlers(this)}connect(A){bA.Log(bA.GetStackTrace(),A,6);try{return this.webSocket=new WebSocket(A),this.webSocket.onopen=A=>this.handleOnOpen(A),this.webSocket.onerror=()=>this.handleOnError(),this.webSocket.onclose=A=>this.handleOnClose(A),this.webSocket.onmessage=A=>this.handleOnMessage(A),this.webSocket.onmessagebinary=A=>this.handleOnMessageBinary(A),!0}catch(A){return bA.Error(A,A),!1}}handleOnMessageBinary(A){A&&A.data&&A.data.text().then((A=>{const e=new MessageEvent("messageFromBinary",{data:A});this.handleOnMessage(e)})).catch((A=>{bA.Error(bA.GetStackTrace(),`Failed to parse binary blob from websocket, reason: ${A}`)}))}handleOnMessage(A){if(A.data&&A.data instanceof Blob)return void this.handleOnMessageBinary(A);const e=JSON.parse(A.data);bA.Log(bA.GetStackTrace(),"received => \n"+JSON.stringify(JSON.parse(A.data),void 0,4),6),this.signallingProtocol.handleMessage(e.type,A.data)}handleOnOpen(A){bA.Log(bA.GetStackTrace(),"Connected to the signalling server via WebSocket",6),this.onOpen.dispatchEvent(new Event("open"))}handleOnError(){bA.Error(bA.GetStackTrace(),"WebSocket error")}handleOnClose(A){bA.Log(bA.GetStackTrace(),"Disconnected to the signalling server via WebSocket: "+JSON.stringify(A.code)+" - "+A.reason),this.onClose.dispatchEvent(new CustomEvent("close",{detail:A}))}requestStreamerList(){const A=new HA;this.webSocket.send(A.payload())}sendSubscribe(A){const e=new TA(A);this.webSocket.send(e.payload())}sendUnsubscribe(){const A=new MA;this.webSocket.send(A.payload())}sendWebRtcOffer(A,e){const t=new xA(A,e);this.webSocket.send(t.payload())}sendWebRtcAnswer(A,e){const t=new PA(A,e);this.webSocket.send(t.payload())}sendWebRtcDatachannelRequest(){const A=new DA;this.webSocket.send(A.payload())}sendSFURecvDataChannelReady(){const A=new RA;this.webSocket.send(A.payload())}sendIceCandidate(A){if(bA.Log(bA.GetStackTrace(),"Sending Ice Candidate"),this.webSocket&&this.webSocket.readyState===this.WS_OPEN_STATE){const e=new kA(A);this.webSocket.send(e.payload())}}close(){var A;null===(A=this.webSocket)||void 0===A||A.close()}onConfig(A){}onStreamerList(A){}onStreamerIDChanged(A){}onIceCandidate(A){}onWebRtcAnswer(A){}onWebRtcOffer(A){}onWebRtcPeerDataChannels(A){}onPlayerCount(A){}}class _A{constructor(A){this.videoElementProvider=A,this.audioElement=document.createElement("Audio"),this.videoElementProvider.setAudioElement(this.audioElement)}handleOnTrack(A){if(bA.Log(bA.GetStackTrace(),"handleOnTrack "+JSON.stringify(A.streams),6),"probator"==A.track.id)return;const e=this.videoElementProvider.getVideoElement();if(A.track&&bA.Log(bA.GetStackTrace(),"Got track - "+A.track.kind+" id="+A.track.id+" readyState="+A.track.readyState,6),"audio"!=A.track.kind)return"video"==A.track.kind&&e.srcObject!==A.streams[0]?(e.srcObject=A.streams[0],void bA.Log(bA.GetStackTrace(),"Set video source from video track ontrack.")):void 0;this.CreateAudioTrack(A.streams[0])}CreateAudioTrack(A){const e=this.videoElementProvider.getVideoElement();e.srcObject!=A&&e.srcObject&&e.srcObject!==A&&(this.audioElement.srcObject=A,bA.Log(bA.GetStackTrace(),"Created new audio element to play separate audio stream."))}}class NA{constructor(A){this.freezeFrameHeight=0,this.freezeFrameWidth=0,this.rootDiv=A,this.rootElement=document.createElement("div"),this.rootElement.id="freezeFrame",this.rootElement.style.display="none",this.rootElement.style.pointerEvents="none",this.rootElement.style.position="absolute",this.rootElement.style.zIndex="20",this.imageElement=document.createElement("img"),this.imageElement.style.position="absolute",this.rootElement.appendChild(this.imageElement),this.rootDiv.appendChild(this.rootElement)}setElementForShow(){this.rootElement.style.display="block"}setElementForHide(){this.rootElement.style.display="none"}updateImageElementSource(A){const e=btoa(A.reduce(((A,e)=>A+String.fromCharCode(e)),""));this.imageElement.src="data:image/jpeg;base64,"+e}setDimensionsFromElementAndResize(){this.freezeFrameHeight=this.imageElement.naturalHeight,this.freezeFrameWidth=this.imageElement.naturalWidth,this.resize()}resize(){if(0!==this.freezeFrameWidth&&0!==this.freezeFrameHeight){let A=0,e=0,t=0,n=0;const r=this.rootDiv.clientWidth/this.rootDiv.clientHeight,s=this.freezeFrameWidth/this.freezeFrameHeight;r<s?(A=this.rootDiv.clientWidth,e=Math.floor(this.rootDiv.clientWidth/s),t=Math.floor(.5*(this.rootDiv.clientHeight-e)),n=0):(A=Math.floor(this.rootDiv.clientHeight*s),e=this.rootDiv.clientHeight,t=0,n=Math.floor(.5*(this.rootDiv.clientWidth-A))),this.rootElement.style.width=this.rootDiv.offsetWidth+"px",this.rootElement.style.height=this.rootDiv.offsetHeight+"px",this.rootElement.style.left="0px",this.rootElement.style.top="0px",this.imageElement.style.width=A+"px",this.imageElement.style.height=e+"px",this.imageElement.style.left=n+"px",this.imageElement.style.top=t+"px"}}}class WA{constructor(A){this.receiving=!1,this.size=0,this.jpeg=void 0,this.valid=!1,this.freezeFrameDelay=50,this.freezeFrame=new NA(A)}showFreezeFrame(){this.valid&&this.freezeFrame.setElementForShow()}hideFreezeFrame(){this.valid=!1,this.freezeFrame.setElementForHide()}updateFreezeFrameAndShow(A,e){this.freezeFrame.updateImageElementSource(A),this.freezeFrame.imageElement.onload=()=>{this.freezeFrame.setDimensionsFromElementAndResize(),e()}}processFreezeFrameMessage(A,e){this.receiving||(this.receiving=!0,this.valid=!1,this.size=0,this.jpeg=void 0),this.size=new DataView(A.slice(1,5).buffer).getInt32(0,!0);const t=A.slice(5);if(this.jpeg){const A=new Uint8Array(this.jpeg.length+t.length);A.set(this.jpeg,0),A.set(t,this.jpeg.length),this.jpeg=A}else this.jpeg=t,this.receiving=!0,bA.Log(bA.GetStackTrace(),`received first chunk of freeze frame: ${this.jpeg.length}/${this.size}`,6);this.jpeg.length===this.size?(this.receiving=!1,this.valid=!0,bA.Log(bA.GetStackTrace(),`received complete freeze frame ${this.size}`,6),this.updateFreezeFrameAndShow(this.jpeg,e)):this.jpeg.length>this.size&&(bA.Error(bA.GetStackTrace(),`received bigger freeze frame than advertised: ${this.jpeg.length}/${this.size}`),this.jpeg=void 0,this.receiving=!1)}}class JA{constructor(A,e,t,n,r=()=>{}){this.onChange=r,this.onChangeEmit=()=>{},this.id=A,this.description=t,this.label=e,this.value=n}set label(A){this._label=A,this.onChangeEmit(this._value)}get label(){return this._label}get value(){return this._value}set value(A){this._value=A,this.onChange(this._value,this),this.onChangeEmit(this._value)}}class XA extends JA{constructor(A,e,t,n,r,s=()=>{}){super(A,e,t,n,s);const i=new URLSearchParams(window.location.search);if(r&&i.has(this.id)){const A=this.getUrlParamFlag();this.flag=A}else this.flag=n;this.useUrlParams=r}getUrlParamFlag(){const A=new URLSearchParams(window.location.search);return!!A.has(this.id)&&"false"!==A.get(this.id)&&"False"!==A.get(this.id)}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);!0===this.flag?A.set(this.id,"true"):A.set(this.id,"false"),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}enable(){this.flag=!0}get flag(){return!!this.value}set flag(A){this.value=A}}class zA extends JA{constructor(A,e,t,n,r,s,i,o=()=>{}){super(A,e,t,s,o),this._min=n,this._max=r;const a=new URLSearchParams(window.location.search);if(i&&a.has(this.id)){const A=Number.parseFloat(a.get(this.id));this.number=Number.isNaN(A)?s:A}else this.number=s;this.useUrlParams=i}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.number.toString()),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}set number(A){this.value=this.clamp(A)}get number(){return this.value}clamp(A){return null==this._min&&null==this._max?A:null==this._min?Math.min(this._max,A):null==this._max?Math.max(this._min,A):Math.max(Math.min(this._max,A),this._min)}get min(){return this._min}get max(){return this._max}addOnChangedListener(A){this.onChange=A}}class YA extends JA{constructor(A,e,t,n,r,s=()=>{}){super(A,e,t,n,s);const i=new URLSearchParams(window.location.search);if(r&&i.has(this.id)){const A=this.getUrlParamText();this.text=A}else this.text=n;this.useUrlParams=r}getUrlParamText(){var A;const e=new URLSearchParams(window.location.search);return e.has(this.id)&&null!==(A=e.get(this.id))&&void 0!==A?A:""}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.text),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}get text(){return this.value}set text(A){this.value=A}}class jA extends JA{constructor(A,e,t,n,r,s,i=()=>{}){super(A,e,t,n,i),this.options=r;const o=new URLSearchParams(window.location.search),a=s&&o.has(this.id)?this.getUrlParamText():n;this.selected=a,this.useUrlParams=s}getUrlParamText(){var A;const e=new URLSearchParams(window.location.search);return e.has(this.id)&&null!==(A=e.get(this.id))&&void 0!==A?A:""}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.selected),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}addOnChangedListener(A){this.onChange=A}get options(){return this._options}set options(A){this._options=A,this.onChangeEmit(this.selected)}get selected(){return this.value}set selected(A){let e=this.options.filter((e=>-1!==e.indexOf(A)));e.length?this.value=e[0]:(e=this.options.filter((e=>-1!==e.indexOf(A.split(" ")[0]))),e.length&&(this.value=e[0]))}}class $A extends Event{constructor(A){super("afkWarningActivate"),this.data=A}}class ZA extends Event{constructor(A){super("afkWarningUpdate"),this.data=A}}class qA extends Event{constructor(){super("afkWarningDeactivate")}}class Ae extends Event{constructor(){super("afkTimedOut")}}class ee extends Event{constructor(A){super("videoEncoderAvgQP"),this.data=A}}class te extends Event{constructor(){super("webRtcSdp")}}class ne extends Event{constructor(){super("webRtcAutoConnect")}}class re extends Event{constructor(){super("webRtcConnecting")}}class se extends Event{constructor(){super("webRtcConnected")}}class ie extends Event{constructor(){super("webRtcFailed")}}class oe extends Event{constructor(A){super("webRtcDisconnected"),this.data=A}}class ae extends Event{constructor(A){super("dataChannelOpen"),this.data=A}}class ce extends Event{constructor(A){super("dataChannelClose"),this.data=A}}class le extends Event{constructor(A){super("dataChannelError"),this.data=A}}class de extends Event{constructor(){super("videoInitialized")}}class ue extends Event{constructor(){super("streamLoading")}}class he extends Event{constructor(){super("streamConnect")}}class ge extends Event{constructor(){super("streamDisconnect")}}class Be extends Event{constructor(){super("streamReconnect")}}class we extends Event{constructor(A){super("playStreamError"),this.data=A}}class pe extends Event{constructor(){super("playStream")}}class Ce extends Event{constructor(A){super("playStreamRejected"),this.data=A}}class me extends Event{constructor(A){super("loadFreezeFrame"),this.data=A}}class fe extends Event{constructor(){super("hideFreezeFrame")}}class ve extends Event{constructor(A){super("statsReceived"),this.data=A}}class Qe extends Event{constructor(A){super("streamerListMessage"),this.data=A}}class Fe extends Event{constructor(A){super("StreamerIDChangedMessage"),this.data=A}}class Ue extends Event{constructor(A){super("latencyTestResult"),this.data=A}}class Ee extends Event{constructor(A){super("dataChannelLatencyTestResponse"),this.data=A}}class ye extends Event{constructor(A){super("dataChannelLatencyTestResult"),this.data=A}}class Se extends Event{constructor(A){super("initialSettings"),this.data=A}}class be extends Event{constructor(A){super("settingsChanged"),this.data=A}}class Ie extends Event{constructor(){super("xrSessionStarted")}}class He extends Event{constructor(){super("xrSessionEnded")}}class Te extends Event{constructor(A){super("xrFrame"),this.data=A}}class Me extends Event{constructor(A){super("playerCount"),this.data=A}}class Le extends Event{constructor(){super("webRtcTCPRelayDetected")}}class xe extends EventTarget{dispatchEvent(A){return super.dispatchEvent(A)}addEventListener(A,e){super.addEventListener(A,e)}removeEventListener(A,e){super.removeEventListener(A,e)}}class Pe{}Pe.AutoConnect="AutoConnect",Pe.AutoPlayVideo="AutoPlayVideo",Pe.AFKDetection="TimeoutIfIdle",Pe.BrowserSendOffer="OfferToReceive",Pe.HoveringMouseMode="HoveringMouse",Pe.ForceMonoAudio="ForceMonoAudio",Pe.ForceTURN="ForceTURN",Pe.FakeMouseWithTouches="FakeMouseWithTouches",Pe.IsQualityController="ControlsQuality",Pe.MatchViewportResolution="MatchViewportRes",Pe.StartVideoMuted="StartVideoMuted",Pe.SuppressBrowserKeys="SuppressBrowserKeys",Pe.UseMic="UseMic",Pe.KeyboardInput="KeyboardInput",Pe.MouseInput="MouseInput",Pe.TouchInput="TouchInput",Pe.GamepadInput="GamepadInput",Pe.XRControllerInput="XRControllerInput",Pe.WaitForStreamer="WaitForStreamer",Pe.HideUI="HideUI";const De=A=>Object.getOwnPropertyNames(Pe).some((e=>Pe[e]===A));class Re{}Re.AFKTimeoutSecs="AFKTimeout",Re.AFKCountdownSecs="AFKCountdown",Re.MinQP="MinQP",Re.MaxQP="MaxQP",Re.WebRTCFPS="WebRTCFPS",Re.WebRTCMinBitrate="WebRTCMinBitrate",Re.WebRTCMaxBitrate="WebRTCMaxBitrate",Re.MaxReconnectAttempts="MaxReconnectAttempts",Re.StreamerAutoJoinInterval="StreamerAutoJoinInterval";const ke=A=>Object.getOwnPropertyNames(Re).some((e=>Re[e]===A));class Ke{}Ke.SignallingServerUrl="ss";const Oe=A=>Object.getOwnPropertyNames(Ke).some((e=>Ke[e]===A));class Ve{}Ve.PreferredCodec="PreferredCodec",Ve.StreamerId="StreamerId";const Ge=A=>Object.getOwnPropertyNames(Ve).some((e=>Ve[e]===A));class _e{constructor(A={}){this.flags=new Map,this.numericParameters=new Map,this.textParameters=new Map,this.optionParameters=new Map;const{initialSettings:e,useUrlParams:t}=A;this._useUrlParams=!!t,this.populateDefaultSettings(this._useUrlParams,e)}get useUrlParams(){return this._useUrlParams}populateDefaultSettings(A,e){this.textParameters.set(Ke.SignallingServerUrl,new YA(Ke.SignallingServerUrl,"Signalling url","Url of the signalling server",e&&e.hasOwnProperty(Ke.SignallingServerUrl)?e[Ke.SignallingServerUrl]:("https:"===location.protocol?"wss://":"ws://")+window.location.hostname+("80"===window.location.port||""===window.location.port?"":`:${window.location.port}`),A)),this.optionParameters.set(Ve.StreamerId,new jA(Ve.StreamerId,"Streamer ID","The ID of the streamer to stream.",e&&e.hasOwnProperty(Ve.StreamerId)?e[Ve.StreamerId]:"",[],A)),this.optionParameters.set(Ve.PreferredCodec,new jA(Ve.PreferredCodec,"Preferred Codec","The preferred codec to be used during codec negotiation","H264 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f",e&&e.hasOwnProperty(Ve.PreferredCodec)?[e[Ve.PreferredCodec]]:function(){const A=[];if(!RTCRtpReceiver.getCapabilities)return A.push("Only available on Chrome"),A;const e=/(VP\d|H26\d|AV1).*/;return RTCRtpReceiver.getCapabilities("video").codecs.forEach((t=>{const n=t.mimeType.split("/")[1]+" "+(t.sdpFmtpLine||"");null!==e.exec(n)&&A.push(n)})),A}(),A)),this.flags.set(Pe.AutoConnect,new XA(Pe.AutoConnect,"Auto connect to stream","Whether we should attempt to auto connect to the signalling server or show a click to start prompt.",!(!e||!e.hasOwnProperty(Pe.AutoConnect))&&e[Pe.AutoConnect],A)),this.flags.set(Pe.AutoPlayVideo,new XA(Pe.AutoPlayVideo,"Auto play video","When video is ready automatically start playing it as opposed to showing a play button.",!e||!e.hasOwnProperty(Pe.AutoPlayVideo)||e[Pe.AutoPlayVideo],A)),this.flags.set(Pe.BrowserSendOffer,new XA(Pe.BrowserSendOffer,"Browser send offer","Browser will initiate the WebRTC handshake by sending the offer to the streamer",!(!e||!e.hasOwnProperty(Pe.BrowserSendOffer))&&e[Pe.BrowserSendOffer],A)),this.flags.set(Pe.UseMic,new XA(Pe.UseMic,"Use microphone","Make browser request microphone access and open an input audio track.",!(!e||!e.hasOwnProperty(Pe.UseMic))&&e[Pe.UseMic],A)),this.flags.set(Pe.StartVideoMuted,new XA(Pe.StartVideoMuted,"Start video muted","Video will start muted if true.",!(!e||!e.hasOwnProperty(Pe.StartVideoMuted))&&e[Pe.StartVideoMuted],A)),this.flags.set(Pe.SuppressBrowserKeys,new XA(Pe.SuppressBrowserKeys,"Suppress browser keys","Suppress certain browser keys that we use in UE, for example F5 to show shader complexity instead of refresh the page.",!e||!e.hasOwnProperty(Pe.SuppressBrowserKeys)||e[Pe.SuppressBrowserKeys],A)),this.flags.set(Pe.IsQualityController,new XA(Pe.IsQualityController,"Is quality controller?","True if this peer controls stream quality",!e||!e.hasOwnProperty(Pe.IsQualityController)||e[Pe.IsQualityController],A)),this.flags.set(Pe.ForceMonoAudio,new XA(Pe.ForceMonoAudio,"Force mono audio","Force browser to request mono audio in the SDP",!(!e||!e.hasOwnProperty(Pe.ForceMonoAudio))&&e[Pe.ForceMonoAudio],A)),this.flags.set(Pe.ForceTURN,new XA(Pe.ForceTURN,"Force TURN","Only generate TURN/Relayed ICE candidates.",!(!e||!e.hasOwnProperty(Pe.ForceTURN))&&e[Pe.ForceTURN],A)),this.flags.set(Pe.AFKDetection,new XA(Pe.AFKDetection,"AFK if idle","Timeout the experience if user is AFK for a period.",!(!e||!e.hasOwnProperty(Pe.AFKDetection))&&e[Pe.AFKDetection],A)),this.flags.set(Pe.MatchViewportResolution,new XA(Pe.MatchViewportResolution,"Match viewport resolution","Pixel Streaming will be instructed to dynamically resize the video stream to match the size of the video element.",!(!e||!e.hasOwnProperty(Pe.MatchViewportResolution))&&e[Pe.MatchViewportResolution],A)),this.flags.set(Pe.HoveringMouseMode,new XA(Pe.HoveringMouseMode,"Control Scheme: Locked Mouse","Either locked mouse, where the pointer is consumed by the video and locked to it, or hovering mouse, where the mouse is not consumed.",!(!e||!e.hasOwnProperty(Pe.HoveringMouseMode))&&e[Pe.HoveringMouseMode],A,((A,e)=>{e.label=`Control Scheme: ${A?"Hovering":"Locked"} Mouse`}))),this.flags.set(Pe.FakeMouseWithTouches,new XA(Pe.FakeMouseWithTouches,"Fake mouse with touches","A single finger touch is converted into a mouse event. This allows a non-touch application to be controlled partially via a touch device.",!(!e||!e.hasOwnProperty(Pe.FakeMouseWithTouches))&&e[Pe.FakeMouseWithTouches],A)),this.flags.set(Pe.KeyboardInput,new XA(Pe.KeyboardInput,"Keyboard input","If enabled, send keyboard events to streamer",!e||!e.hasOwnProperty(Pe.KeyboardInput)||e[Pe.KeyboardInput],A)),this.flags.set(Pe.MouseInput,new XA(Pe.MouseInput,"Mouse input","If enabled, send mouse events to streamer",!e||!e.hasOwnProperty(Pe.MouseInput)||e[Pe.MouseInput],A)),this.flags.set(Pe.TouchInput,new XA(Pe.TouchInput,"Touch input","If enabled, send touch events to streamer",!e||!e.hasOwnProperty(Pe.TouchInput)||e[Pe.TouchInput],A)),this.flags.set(Pe.GamepadInput,new XA(Pe.GamepadInput,"Gamepad input","If enabled, send gamepad events to streamer",!e||!e.hasOwnProperty(Pe.GamepadInput)||e[Pe.GamepadInput],A)),this.flags.set(Pe.XRControllerInput,new XA(Pe.XRControllerInput,"XR controller input","If enabled, send XR controller events to streamer",!e||!e.hasOwnProperty(Pe.XRControllerInput)||e[Pe.XRControllerInput],A)),this.flags.set(Pe.WaitForStreamer,new XA(Pe.WaitForStreamer,"Wait for streamer","Will continue trying to connect to the first streamer available.",!e||!e.hasOwnProperty(Pe.WaitForStreamer)||e[Pe.WaitForStreamer],A)),this.flags.set(Pe.HideUI,new XA(Pe.HideUI,"Hide the UI overlay","Will hide all UI overlay details",!(!e||!e.hasOwnProperty(Pe.HideUI))&&e[Pe.HideUI],A)),this.numericParameters.set(Re.AFKTimeoutSecs,new zA(Re.AFKTimeoutSecs,"AFK timeout","The time (in seconds) it takes for the application to time out if AFK timeout is enabled.",0,null,e&&e.hasOwnProperty(Re.AFKTimeoutSecs)?e[Re.AFKTimeoutSecs]:120,A)),this.numericParameters.set(Re.AFKCountdownSecs,new zA(Re.AFKCountdownSecs,"AFK countdown","The time (in seconds) for a user to respond before the stream is ended after an AFK timeout.",10,null,10,A)),this.numericParameters.set(Re.MaxReconnectAttempts,new zA(Re.MaxReconnectAttempts,"Max Reconnects","Maximum number of reconnects the application will attempt when a streamer disconnects.",0,999,e&&e.hasOwnProperty(Re.MaxReconnectAttempts)?e[Re.MaxReconnectAttempts]:3,A)),this.numericParameters.set(Re.MinQP,new zA(Re.MinQP,"Min QP","The lower bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.",0,51,e&&e.hasOwnProperty(Re.MinQP)?e[Re.MinQP]:0,A)),this.numericParameters.set(Re.MaxQP,new zA(Re.MaxQP,"Max QP","The upper bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.",0,51,e&&e.hasOwnProperty(Re.MaxQP)?e[Re.MaxQP]:51,A)),this.numericParameters.set(Re.WebRTCFPS,new zA(Re.WebRTCFPS,"Max FPS","The maximum FPS that WebRTC will try to transmit frames at.",1,999,e&&e.hasOwnProperty(Re.WebRTCFPS)?e[Re.WebRTCFPS]:60,A)),this.numericParameters.set(Re.WebRTCMinBitrate,new zA(Re.WebRTCMinBitrate,"Min Bitrate (kbps)","The minimum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(Re.WebRTCMinBitrate)?e[Re.WebRTCMinBitrate]:0,A)),this.numericParameters.set(Re.WebRTCMaxBitrate,new zA(Re.WebRTCMaxBitrate,"Max Bitrate (kbps)","The maximum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(Re.WebRTCMaxBitrate)?e[Re.WebRTCMaxBitrate]:0,A)),this.numericParameters.set(Re.StreamerAutoJoinInterval,new zA(Re.StreamerAutoJoinInterval,"Streamer Auto Join Interval (ms)","Delay between retries when waiting for an available streamer.",500,9e5,e&&e.hasOwnProperty(Re.StreamerAutoJoinInterval)?e[Re.StreamerAutoJoinInterval]:3e3,A))}_addOnNumericSettingChangedListener(A,e){this.numericParameters.has(A)&&this.numericParameters.get(A).addOnChangedListener(e)}_addOnOptionSettingChangedListener(A,e){this.optionParameters.has(A)&&this.optionParameters.get(A).addOnChangedListener(e)}getNumericSettingValue(A){if(this.numericParameters.has(A))return this.numericParameters.get(A).number;throw new Error(`There is no numeric setting with the id of ${A}`)}getTextSettingValue(A){if(this.textParameters.has(A))return this.textParameters.get(A).value;throw new Error(`There is no numeric setting with the id of ${A}`)}setNumericSetting(A,e){if(!this.numericParameters.has(A))throw new Error(`There is no numeric setting with the id of ${A}`);this.numericParameters.get(A).number=e}_addOnSettingChangedListener(A,e){this.flags.has(A)&&(this.flags.get(A).onChange=e)}_addOnTextSettingChangedListener(A,e){this.textParameters.has(A)&&(this.textParameters.get(A).onChange=e)}getSettingOption(A){return this.optionParameters.get(A)}isFlagEnabled(A){return this.flags.get(A).flag}setFlagEnabled(A,e){this.flags.has(A)?this.flags.get(A).flag=e:bA.Warning(bA.GetStackTrace(),`Cannot toggle flag called ${A} - it does not exist in the Config.flags map.`)}setTextSetting(A,e){this.textParameters.has(A)?this.textParameters.get(A).text=e:bA.Warning(bA.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.textParameters map.`)}setOptionSettingOptions(A,e){this.optionParameters.has(A)?this.optionParameters.get(A).options=e:bA.Warning(bA.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.optionParameters map.`)}setOptionSettingValue(A,e){if(this.optionParameters.has(A)){const t=this.optionParameters.get(A),n=t.options;n.includes(e)||(n.push(e),t.options=n),t.selected=e}else bA.Warning(bA.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.enumParameters map.`)}setFlagLabel(A,e){this.flags.has(A)?this.flags.get(A).label=e:bA.Warning(bA.GetStackTrace(),`Cannot set label for flag called ${A} - it does not exist in the Config.flags map.`)}setSettings(A){for(const e of Object.keys(A))De(e)?this.setFlagEnabled(e,A[e]):ke(e)?this.setNumericSetting(e,A[e]):Oe(e)?this.setTextSetting(e,A[e]):Ge(e)&&this.setOptionSettingValue(e,A[e])}getSettings(){const A={};for(const[e,t]of this.flags.entries())A[e]=t.flag;for(const[e,t]of this.numericParameters.entries())A[e]=t.number;for(const[e,t]of this.textParameters.entries())A[e]=t.text;for(const[e,t]of this.optionParameters.entries())A[e]=t.selected;return A}getFlags(){return Array.from(this.flags.values())}getTextSettings(){return Array.from(this.textParameters.values())}getNumericSettings(){return Array.from(this.numericParameters.values())}getOptionSettings(){return Array.from(this.optionParameters.values())}_registerOnChangeEvents(A){for(const e of this.flags.keys()){const t=this.flags.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new be({id:t.id,type:"flag",value:e,target:t})))}for(const e of this.numericParameters.keys()){const t=this.numericParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new be({id:t.id,type:"number",value:e,target:t})))}for(const e of this.textParameters.keys()){const t=this.textParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new be({id:t.id,type:"text",value:e,target:t})))}for(const e of this.optionParameters.keys()){const t=this.optionParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new be({id:t.id,type:"option",value:e,target:t})))}}}var Ne;!function(A){A[A.LockedMouse=0]="LockedMouse",A[A.HoveringMouse=1]="HoveringMouse"}(Ne||(Ne={}));class We{constructor(A,e,t){this.active=!1,this.countdownActive=!1,this.warnTimer=void 0,this.countDown=0,this.countDownTimer=void 0,this.config=A,this.pixelStreaming=e,this.onDismissAfk=t,this.onAFKTimedOutCallback=()=>{console.log("AFK timed out, did you want to override this callback?")}}onAfkClick(){clearInterval(this.countDownTimer),(this.active||this.countdownActive)&&(this.startAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new qA))}startAfkWarningTimer(){this.config.getNumericSettingValue(Re.AFKTimeoutSecs)>0&&this.config.isFlagEnabled(Pe.AFKDetection)?this.active=!0:this.active=!1,this.resetAfkWarningTimer()}stopAfkWarningTimer(){this.active=!1,this.countdownActive=!1,clearTimeout(this.warnTimer),clearInterval(this.countDownTimer)}pauseAfkWarningTimer(){this.active=!1}resetAfkWarningTimer(){this.active&&this.config.isFlagEnabled(Pe.AFKDetection)&&(clearTimeout(this.warnTimer),this.warnTimer=setTimeout((()=>this.activateAfkEvent()),1e3*this.config.getNumericSettingValue(Re.AFKTimeoutSecs)))}activateAfkEvent(){this.pauseAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new $A({countDown:this.countDown,dismissAfk:this.onDismissAfk})),this.countDown=this.config.getNumericSettingValue(Re.AFKCountdownSecs),this.countdownActive=!0,this.pixelStreaming.dispatchEvent(new ZA({countDown:this.countDown})),this.config.isFlagEnabled(Pe.HoveringMouseMode)||document.exitPointerLock&&document.exitPointerLock(),this.countDownTimer=setInterval((()=>{this.countDown--,0==this.countDown?(this.pixelStreaming.dispatchEvent(new Ae),this.onAFKTimedOutCallback(),bA.Log(bA.GetStackTrace(),"You have been disconnected due to inactivity"),this.stopAfkWarningTimer()):this.pixelStreaming.dispatchEvent(new ZA({countDown:this.countDown}))}),1e3)}}class Je{constructor(){this.isReceivingFreezeFrame=!1}getDataChannelInstance(){return this}createDataChannel(A,e,t){this.peerConnection=A,this.label=e,this.datachannelOptions=t,null==t&&(this.datachannelOptions={},this.datachannelOptions.ordered=!0),this.dataChannel=this.peerConnection.createDataChannel(this.label,this.datachannelOptions),this.setupDataChannel()}setupDataChannel(){this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=A=>this.handleOnOpen(A),this.dataChannel.onclose=A=>this.handleOnClose(A),this.dataChannel.onmessage=A=>this.handleOnMessage(A),this.dataChannel.onerror=A=>this.handleOnError(A)}handleOnOpen(A){var e;bA.Log(bA.GetStackTrace(),`Data Channel (${this.label}) opened.`,7),this.onOpen(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnClose(A){var e;bA.Log(bA.GetStackTrace(),`Data Channel (${this.label}) closed.`,7),this.onClose(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnMessage(A){bA.Log(bA.GetStackTrace(),`Data Channel (${this.label}) message: ${A}`,8)}handleOnError(A){var e;bA.Log(bA.GetStackTrace(),`Data Channel (${this.label}) error: ${A}`,7),this.onError(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}onOpen(A,e){}onClose(A,e){}onError(A,e){}}class Xe{}class ze{}class Ye{}class je{}class $e{}class Ze{}class qe{}class At{constructor(){this.inboundVideoStats=new ze,this.inboundAudioStats=new Xe,this.DataChannelStats=new Ye,this.outBoundVideoStats=new $e,this.sessionStats=new Ze,this.streamStats=new qe,this.codecs=new Map}processStats(A){this.localCandidates=new Array,this.remoteCandidates=new Array,this.candidatePairs=new Array,A.forEach((A=>{switch(A.type){case"candidate-pair":this.handleCandidatePair(A);break;case"certificate":case"media-source":case"media-playout":case"outbound-rtp":case"peer-connection":case"remote-inbound-rtp":break;case"codec":this.handleCodec(A);break;case"data-channel":this.handleDataChannel(A);break;case"inbound-rtp":this.handleInBoundRTP(A);break;case"local-candidate":this.handleLocalCandidate(A);break;case"remote-candidate":this.handleRemoteCandidate(A);break;case"remote-outbound-rtp":this.handleRemoteOutBound(A);break;case"track":this.handleTrack(A);break;case"transport":this.handleTransport(A);break;case"stream":this.handleStream(A);break;default:bA.Error(bA.GetStackTrace(),"unhandled Stat Type"),bA.Log(bA.GetStackTrace(),A)}}))}handleStream(A){this.streamStats=A}handleCandidatePair(A){this.candidatePairs.push(A)}handleDataChannel(A){this.DataChannelStats.bytesReceived=A.bytesReceived,this.DataChannelStats.bytesSent=A.bytesSent,this.DataChannelStats.dataChannelIdentifier=A.dataChannelIdentifier,this.DataChannelStats.id=A.id,this.DataChannelStats.label=A.label,this.DataChannelStats.messagesReceived=A.messagesReceived,this.DataChannelStats.messagesSent=A.messagesSent,this.DataChannelStats.protocol=A.protocol,this.DataChannelStats.state=A.state,this.DataChannelStats.timestamp=A.timestamp}handleLocalCandidate(A){const e=new je;e.label="local-candidate",e.address=A.address,e.port=A.port,e.protocol=A.protocol,e.candidateType=A.candidateType,e.id=A.id,e.relayProtocol=A.relayProtocol,e.transportId=A.transportId,this.localCandidates.push(e)}handleRemoteCandidate(A){const e=new je;e.label="remote-candidate",e.address=A.address,e.port=A.port,e.protocol=A.protocol,e.id=A.id,e.candidateType=A.candidateType,e.relayProtocol=A.relayProtocol,e.transportId=A.transportId,this.remoteCandidates.push(e)}handleInBoundRTP(A){switch(A.kind){case"video":this.inboundVideoStats=A,null!=this.lastVideoStats&&(this.inboundVideoStats.bitrate=8*(this.inboundVideoStats.bytesReceived-this.lastVideoStats.bytesReceived)/(this.inboundVideoStats.timestamp-this.lastVideoStats.timestamp),this.inboundVideoStats.bitrate=Math.floor(this.inboundVideoStats.bitrate)),this.lastVideoStats=Object.assign({},this.inboundVideoStats);break;case"audio":this.inboundAudioStats=A,null!=this.lastAudioStats&&(this.inboundAudioStats.bitrate=8*(this.inboundAudioStats.bytesReceived-this.lastAudioStats.bytesReceived)/(this.inboundAudioStats.timestamp-this.lastAudioStats.timestamp),this.inboundAudioStats.bitrate=Math.floor(this.inboundAudioStats.bitrate)),this.lastAudioStats=Object.assign({},this.inboundAudioStats);break;default:bA.Log(bA.GetStackTrace(),"Kind is not handled")}}handleRemoteOutBound(A){"video"===A.kind&&(this.outBoundVideoStats.bytesSent=A.bytesSent,this.outBoundVideoStats.id=A.id,this.outBoundVideoStats.localId=A.localId,this.outBoundVideoStats.packetsSent=A.packetsSent,this.outBoundVideoStats.remoteTimestamp=A.remoteTimestamp,this.outBoundVideoStats.timestamp=A.timestamp)}handleTrack(A){"track"!==A.type||"video_label"!==A.trackIdentifier&&"video"!==A.kind||(this.inboundVideoStats.framesDropped=A.framesDropped,this.inboundVideoStats.framesReceived=A.framesReceived,this.inboundVideoStats.frameHeight=A.frameHeight,this.inboundVideoStats.frameWidth=A.frameWidth)}handleTransport(A){this.transportStats=A}handleCodec(A){const e=A.id,t=`${A.mimeType.replace("video/","").replace("audio/","")}${A.sdpFmtpLine?` ${A.sdpFmtpLine}`:""}`;this.codecs.set(e,t)}handleSessionStatistics(A,e,t){const n=Date.now()-A;this.sessionStats.runTime=new Date(n).toISOString().substr(11,8).toString();const r=null===e?"Not sent yet":e?"true":"false";this.sessionStats.controlsStreamInput=r,this.sessionStats.videoEncoderAvgQP=t}isNumber(A){return"number"==typeof A&&isFinite(A)}getActiveCandidatePair(){return this.transportStats?this.candidatePairs.find((A=>A.id===this.transportStats.selectedCandidatePairId),null):this.candidatePairs.find((A=>A.selected),null)}}const et=(tt={parseRtpParameters:()=>EA.parseRtpParameters,splitSections:()=>EA.splitSections},nt={},yA.d(nt,tt),nt);var tt,nt;class rt{static isVideoTransciever(A){return this.canTransceiverReceiveVideo(A)||this.canTransceiverSendVideo(A)}static canTransceiverReceiveVideo(A){return!!A&&("sendrecv"===A.direction||"recvonly"===A.direction)&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind}static canTransceiverSendVideo(A){return!!A&&("sendrecv"===A.direction||"sendonly"===A.direction)&&A.sender&&A.sender.track&&"video"===A.sender.track.kind}static isAudioTransciever(A){return this.canTransceiverReceiveAudio(A)||this.canTransceiverSendAudio(A)}static canTransceiverReceiveAudio(A){return!!A&&("sendrecv"===A.direction||"recvonly"===A.direction)&&A.receiver&&A.receiver.track&&"audio"===A.receiver.track.kind}static canTransceiverSendAudio(A){return!!A&&("sendrecv"===A.direction||"sendonly"===A.direction)&&A.sender&&A.sender.track&&"audio"===A.sender.track.kind}}var st,it,ot=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class at{constructor(A,e,t){this.config=e,this.createPeerConnection(A,t)}createPeerConnection(A,e){this.config.isFlagEnabled(Pe.ForceTURN)&&(A.iceTransportPolicy="relay",bA.Log(bA.GetStackTrace(),"Forcing TURN usage by setting ICE Transport Policy in peer connection config.")),this.peerConnection=new RTCPeerConnection(A),this.peerConnection.onsignalingstatechange=A=>this.handleSignalStateChange(A),this.peerConnection.oniceconnectionstatechange=A=>this.handleIceConnectionStateChange(A),this.peerConnection.onicegatheringstatechange=A=>this.handleIceGatheringStateChange(A),this.peerConnection.ontrack=A=>this.handleOnTrack(A),this.peerConnection.onicecandidate=A=>this.handleIceCandidate(A),this.peerConnection.ondatachannel=A=>this.handleDataChannel(A),this.aggregatedStats=new At,this.preferredCodec=e,this.updateCodecSelection=!0}createOffer(A,e){return ot(this,void 0,void 0,(function*(){bA.Log(bA.GetStackTrace(),"Create Offer",6);const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,n="https:"===location.protocol;let r=e.isFlagEnabled(Pe.UseMic);!r||t||n||(r=!1,bA.Error(bA.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),bA.Error(bA.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.setupTransceiversAsync(r).finally((()=>{var e;null===(e=this.peerConnection)||void 0===e||e.createOffer(A).then((A=>{var e;this.showTextOverlayConnecting(),A.sdp=this.mungeSDP(A.sdp,r),null===(e=this.peerConnection)||void 0===e||e.setLocalDescription(A),this.onSendWebRTCOffer(A)})).catch((()=>{this.showTextOverlaySetupFailure()}))}))}))}receiveOffer(A,e){var t;return ot(this,void 0,void 0,(function*(){bA.Log(bA.GetStackTrace(),"Receive Offer",6),null===(t=this.peerConnection)||void 0===t||t.setRemoteDescription(A).then((()=>{const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,n="https:"===location.protocol;let r=e.isFlagEnabled(Pe.UseMic);!r||t||n||(r=!1,bA.Error(bA.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),bA.Error(bA.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.config.setOptionSettingOptions(Ve.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A)),this.setupTransceiversAsync(r).finally((()=>{var A;null===(A=this.peerConnection)||void 0===A||A.createAnswer().then((A=>{var e;return A.sdp=this.mungeSDP(A.sdp,r),null===(e=this.peerConnection)||void 0===e?void 0:e.setLocalDescription(A)})).then((()=>{var A;this.onSendWebRTCAnswer(null===(A=this.peerConnection)||void 0===A?void 0:A.currentLocalDescription)})).catch((()=>{bA.Error(bA.GetStackTrace(),"createAnswer() failed")}))}))}))}))}receiveAnswer(A){var e;null===(e=this.peerConnection)||void 0===e||e.setRemoteDescription(A),this.config.setOptionSettingOptions(Ve.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A))}generateStats(){var A;null===(A=this.peerConnection)||void 0===A||A.getStats(null).then((A=>{this.aggregatedStats.processStats(A),this.onVideoStats(this.aggregatedStats),this.updateCodecSelection&&this.aggregatedStats.inboundVideoStats.codecId&&this.config.setOptionSettingValue(Ve.PreferredCodec,this.aggregatedStats.codecs.get(this.aggregatedStats.inboundVideoStats.codecId))}))}close(){this.peerConnection&&(this.peerConnection.close(),this.peerConnection=null)}mungeSDP(A,e){let t=A.replace(/(a=fmtp:\d+ .*level-asymmetry-allowed=.*)\r\n/gm,"$1;x-google-start-bitrate=10000;x-google-max-bitrate=100000\r\n"),n="maxaveragebitrate=510000;";return e&&(n+="sprop-maxcapturerate=48000;"),n+=this.config.isFlagEnabled(Pe.ForceMonoAudio)?"stereo=0;":"stereo=1;",n+="useinbandfec=1",t=t.replace("useinbandfec=1",n),t}handleOnIce(A){var e;bA.Log(bA.GetStackTrace(),"peerconnection handleOnIce",6),this.config.isFlagEnabled(Pe.ForceTURN)&&A.candidate.indexOf("relay")<0?bA.Info(bA.GetStackTrace(),`Dropping candidate because it was not TURN relay. | Type= ${A.type} | Protocol= ${A.protocol} | Address=${A.address} | Port=${A.port} |`,6):null===(e=this.peerConnection)||void 0===e||e.addIceCandidate(A)}handleSignalStateChange(A){bA.Log(bA.GetStackTrace(),"signaling state change: "+A,6)}handleIceConnectionStateChange(A){bA.Log(bA.GetStackTrace(),"ice connection state change: "+A,6),this.onIceConnectionStateChange(A)}handleIceGatheringStateChange(A){bA.Log(bA.GetStackTrace(),"ice gathering state change: "+JSON.stringify(A),6)}handleOnTrack(A){this.onTrack(A)}handleIceCandidate(A){this.onPeerIceCandidate(A)}handleDataChannel(A){this.onDataChannel(A)}onTrack(A){}onIceConnectionStateChange(A){}onPeerIceCandidate(A){}onDataChannel(A){}fuzzyIntersectUEAndBrowserCodecs(A){const e=new Array,t=this.parseAvailableCodecs(A),n=this.config.getSettingOption(Ve.PreferredCodec).options;for(const A of t)if(n.includes(A))e.push(A);else{const t=A.split(" ")[0];for(const A of n)if(A.includes(t)){e.push(A);break}}return e}setupTransceiversAsync(A){var e,t,n,r,s,i,o,a,c,l,d,u;return ot(this,void 0,void 0,(function*(){let h=!1;for(const A of null!==(t=null===(e=this.peerConnection)||void 0===e?void 0:e.getTransceivers())&&void 0!==t?t:[])if(A&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind){h=!0;break}if(h||null===(n=this.peerConnection)||void 0===n||n.addTransceiver("video",{direction:"recvonly"}),RTCRtpReceiver.getCapabilities&&""!=this.preferredCodec)for(const A of null!==(s=null===(r=this.peerConnection)||void 0===r?void 0:r.getTransceivers())&&void 0!==s?s:[])if(A&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind&&A.setCodecPreferences){const e=this.preferredCodec.split(" "),t={mimeType:"video/"+e[0],clockRate:9e4,sdpFmtpLine:e[1]?e[1]:""},n=[t];RTCRtpReceiver.getCapabilities("video").codecs.forEach((A=>{(A.mimeType!=t.mimeType||(null==A?void 0:A.sdpFmtpLine)!=(null==t?void 0:t.sdpFmtpLine))&&n.push(A)}));for(const A of n)void 0!==(null==A?void 0:A.sdpFmtpLine)&&""!==A.sdpFmtpLine||delete A.sdpFmtpLine;A.setCodecPreferences(n)}let g=!1;for(const A of null!==(o=null===(i=this.peerConnection)||void 0===i?void 0:i.getTransceivers())&&void 0!==o?o:[])if(A&&A.receiver&&A.receiver.track&&"audio"===A.receiver.track.kind){g=!0;break}if(A){const A={video:!1,audio:{autoGainControl:!1,channelCount:1,echoCancellation:!1,latency:0,noiseSuppression:!1,sampleRate:48e3,sampleSize:16,volume:1}},e=yield navigator.mediaDevices.getUserMedia(A);if(e)if(g){for(const A of null!==(l=null===(c=this.peerConnection)||void 0===c?void 0:c.getTransceivers())&&void 0!==l?l:[])if(rt.canTransceiverReceiveAudio(A))for(const t of e.getTracks())t.kind&&"audio"==t.kind&&(A.sender.replaceTrack(t),A.direction="sendrecv")}else for(const A of e.getTracks())A.kind&&"audio"==A.kind&&(null===(d=this.peerConnection)||void 0===d||d.addTransceiver(A,{direction:"sendrecv"}));else g||null===(u=this.peerConnection)||void 0===u||u.addTransceiver("audio",{direction:"recvonly"})}else g||null===(a=this.peerConnection)||void 0===a||a.addTransceiver("audio",{direction:"recvonly"})}))}onVideoStats(A){}onSendWebRTCOffer(A){}onSendWebRTCAnswer(A){}showTextOverlayConnecting(){}showTextOverlaySetupFailure(){}parseAvailableCodecs(A){if(!RTCRtpReceiver.getCapabilities)return["Only available on Chrome"];const e=[],t=(0,et.splitSections)(A.sdp);return t.shift(),t.forEach((A=>{const{codecs:t}=(0,et.parseRtpParameters)(A),n=/(VP\d|H26\d|AV1).*/;t.forEach((A=>{const t=A.name+" "+Object.keys(A.parameters||{}).map((e=>e+"="+A.parameters[e])).join(";");if(null!==n.exec(t)){"VP9"==A.name&&(A.parameters={"profile-id":"0"});const t=A.name+" "+Object.keys(A.parameters||{}).map((e=>e+"="+A.parameters[e])).join(";");e.push(t)}}))})),e}}class ct{constructor(){this.PixelStreamingSettings=new lt,this.EncoderSettings=new dt,this.WebRTCSettings=new ut}ueCompatible(){null!=this.WebRTCSettings.MaxFPS&&(this.WebRTCSettings.FPS=this.WebRTCSettings.MaxFPS)}}class lt{}class dt{}class ut{}class ht{constructor(){this.ReceiptTimeMs=null,this.TransmissionTimeMs=null,this.PreCaptureTimeMs=null,this.PostCaptureTimeMs=null,this.PreEncodeTimeMs=null,this.PostEncodeTimeMs=null,this.EncodeMs=null,this.CaptureToSendMs=null,this.testStartTimeMs=0,this.browserReceiptTimeMs=0,this.latencyExcludingDecode=0,this.testDuration=0,this.networkLatency=0,this.browserSendLatency=0,this.frameDisplayDeltaTimeMs=0,this.endToEndLatency=0,this.encodeLatency=0}setFrameDisplayDeltaTime(A){0==this.frameDisplayDeltaTimeMs&&(this.frameDisplayDeltaTimeMs=Math.round(A))}processFields(){null!=this.EncodeMs||null==this.PreEncodeTimeMs&&null==this.PostEncodeTimeMs||(bA.Log(bA.GetStackTrace(),`Setting Encode Ms \n ${this.PostEncodeTimeMs} \n ${this.PreEncodeTimeMs}`,6),this.EncodeMs=this.PostEncodeTimeMs-this.PreEncodeTimeMs),null!=this.CaptureToSendMs||null==this.PreCaptureTimeMs&&null==this.PostCaptureTimeMs||(bA.Log(bA.GetStackTrace(),`Setting CaptureToSendMs Ms \n ${this.PostCaptureTimeMs} \n ${this.PreCaptureTimeMs}`,6),this.CaptureToSendMs=this.PostCaptureTimeMs-this.PreCaptureTimeMs)}}class gt{static setExtensionFromBytes(A,e){e.receiving||(e.mimetype="",e.extension="",e.receiving=!0,e.valid=!1,e.size=0,e.data=[],e.timestampStart=(new Date).getTime(),bA.Log(bA.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));bA.Log(bA.GetStackTrace(),t,6),e.extension=t}static setMimeTypeFromBytes(A,e){e.receiving||(e.mimetype="",e.extension="",e.receiving=!0,e.valid=!1,e.size=0,e.data=[],e.timestampStart=(new Date).getTime(),bA.Log(bA.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));bA.Log(bA.GetStackTrace(),t,6),e.mimetype=t}static setContentsFromBytes(A,e){if(!e.receiving)return;e.size=Math.ceil(new DataView(A.slice(1,5).buffer).getInt32(0,!0)/16379);const t=A.slice(5);if(e.data.push(t),bA.Log(bA.GetStackTrace(),`Received file chunk: ${e.data.length}/${e.size}`,6),e.data.length===e.size){e.receiving=!1,e.valid=!0,bA.Log(bA.GetStackTrace(),"Received complete file",6);const A=(new Date).getTime()-e.timestampStart,t=Math.round(16*e.size*1024/A);bA.Log(bA.GetStackTrace(),`Average transfer bitrate: ${t}kb/s over ${A/1e3} seconds`,6);const n=new Blob(e.data,{type:e.mimetype}),r=document.createElement("a");r.setAttribute("href",URL.createObjectURL(n)),r.setAttribute("download",`transfer.${e.extension}`),document.body.append(r),r.remove()}else e.data.length>e.size&&(e.receiving=!1,bA.Error(bA.GetStackTrace(),`Received bigger file than advertised: ${e.data.length}/${e.size}`))}}class Bt{constructor(){this.mimetype="",this.extension="",this.receiving=!1,this.size=0,this.data=[],this.valid=!1}}class wt{}wt.mainButton=0,wt.auxiliaryButton=1,wt.secondaryButton=2,wt.fourthButton=3,wt.fifthButton=4;class pt{}pt.primaryButton=1,pt.secondaryButton=2,pt.auxiliaryButton=4,pt.fourthButton=8,pt.fifthButton=16;class Ct{constructor(){this.unregisterCallbacks=[]}addUnregisterCallback(A){this.unregisterCallbacks.push(A)}unregisterAll(){for(const A of this.unregisterCallbacks)A();this.unregisterCallbacks=[]}}class mt{constructor(A,e,t){this.touchEventListenerTracker=new Ct,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t;const n=A=>this.onTouchStart(A),r=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);document.addEventListener("touchstart",n,{passive:!1}),document.addEventListener("touchend",r,{passive:!1}),document.addEventListener("touchmove",s,{passive:!1}),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchstart",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchend",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchmove",s)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}setVideoElementParentClientRect(A){this.videoElementParentClientRect=A}onTouchStart(A){if(this.videoElementProvider.isVideoReady()&&A.target===this.videoElementProvider.getVideoElement()){if(null==this.fakeTouchFinger){const e=A.changedTouches[0];this.fakeTouchFinger=new ft(e.identifier,e.clientX-this.videoElementParentClientRect.left,e.clientY-this.videoElementParentClientRect.top);const t=this.videoElementProvider.getVideoParentElement(),n=new MouseEvent("mouseenter",e);t.dispatchEvent(n);const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(this.fakeTouchFinger.x,this.fakeTouchFinger.y);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([wt.mainButton,r.x,r.y])}A.preventDefault()}}onTouchEnd(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.videoElementProvider.getVideoParentElement(),t=this.toStreamerMessagesProvider.toStreamerHandlers;for(let n=0;n<A.changedTouches.length;n++){const r=A.changedTouches[n];if(r.identifier===this.fakeTouchFinger.id){const A=r.clientX-this.videoElementParentClientRect.left,n=r.clientY-this.videoElementParentClientRect.top,s=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,n);t.get("MouseUp")([wt.mainButton,s.x,s.y]);const i=new MouseEvent("mouseleave",r);e.dispatchEvent(i),this.fakeTouchFinger=null;break}}A.preventDefault()}onTouchMove(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.toStreamerMessagesProvider.toStreamerHandlers;for(let t=0;t<A.touches.length;t++){const n=A.touches[t];if(n.identifier===this.fakeTouchFinger.id){const A=n.clientX-this.videoElementParentClientRect.left,t=n.clientY-this.videoElementParentClientRect.top,r=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,t),s=this.coordinateConverter.normalizeAndQuantizeSigned(A-this.fakeTouchFinger.x,t-this.fakeTouchFinger.y);e.get("MouseMove")([r.x,r.y,s.x,s.y]),this.fakeTouchFinger.x=A,this.fakeTouchFinger.y=t;break}}A.preventDefault()}}class ft{constructor(A,e,t){this.id=A,this.x=e,this.y=t}}class vt{}vt.backSpace=8,vt.shift=16,vt.control=17,vt.alt=18,vt.rightShift=253,vt.rightControl=254,vt.rightAlt=255;class Qt{constructor(A,e,t){this.keyboardEventListenerTracker=new Ct,this.CodeToKeyCode={Escape:27,Digit0:48,Digit1:49,Digit2:50,Digit3:51,Digit4:52,Digit5:53,Digit6:54,Digit7:55,Digit8:56,Digit9:57,Minus:173,Equal:187,Backspace:8,Tab:9,KeyQ:81,KeyW:87,KeyE:69,KeyR:82,KeyT:84,KeyY:89,KeyU:85,KeyI:73,KeyO:79,KeyP:80,BracketLeft:219,BracketRight:221,Enter:13,ControlLeft:17,KeyA:65,KeyS:83,KeyD:68,KeyF:70,KeyG:71,KeyH:72,KeyJ:74,KeyK:75,KeyL:76,Semicolon:186,Quote:222,Backquote:192,ShiftLeft:16,Backslash:220,KeyZ:90,KeyX:88,KeyC:67,KeyV:86,KeyB:66,KeyN:78,KeyM:77,Comma:188,Period:190,Slash:191,ShiftRight:253,AltLeft:18,Space:32,CapsLock:20,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,Pause:19,ScrollLock:145,NumpadDivide:111,NumpadMultiply:106,NumpadSubtract:109,NumpadAdd:107,NumpadDecimal:110,Numpad9:105,Numpad8:104,Numpad7:103,Numpad6:102,Numpad5:101,Numpad4:100,Numpad3:99,Numpad2:98,Numpad1:97,Numpad0:96,NumLock:144,ControlRight:254,AltRight:255,Home:36,End:35,ArrowUp:38,ArrowLeft:37,ArrowRight:39,ArrowDown:40,PageUp:33,PageDown:34,Insert:45,Delete:46,ContextMenu:93},this.toStreamerMessagesProvider=A,this.config=e,this.activeKeysProvider=t}registerKeyBoardEvents(){const A=A=>this.handleOnCompositionEnd(A),e=A=>this.handleOnKeyDown(A),t=A=>this.handleOnKeyUp(A),n=A=>this.handleOnKeyPress(A);document.addEventListener("compositionend",A),document.addEventListener("keydown",e),document.addEventListener("keyup",t),document.addEventListener("keypress",n),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("compositionend",A))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keydown",e))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keyup",t))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keypress",n)))}unregisterKeyBoardEvents(){this.keyboardEventListenerTracker.unregisterAll()}handleOnKeyDown(A){const e=this.getKeycode(A);e&&229!==e&&(bA.Log(bA.GetStackTrace(),`key down ${e}, repeat = ${A.repeat}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyDown")([this.getKeycode(A),A.repeat?1:0]),this.activeKeysProvider.getActiveKeys().push(e),e===vt.backSpace&&document.dispatchEvent(new KeyboardEvent("keypress",{charCode:vt.backSpace})),this.config.isFlagEnabled(Pe.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyUp(A){const e=this.getKeycode(A);e&&(bA.Log(bA.GetStackTrace(),`key up ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyUp")([e]),this.config.isFlagEnabled(Pe.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyPress(A){if(!("charCode"in A))return void bA.Warning(bA.GetStackTrace(),"KeyboardEvent.charCode is deprecated in this browser, cannot send key press.");const e=A.charCode;bA.Log(bA.GetStackTrace(),`key press ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyPress")([e])}handleOnCompositionEnd(A){A.data&&A.data.length&&A.data.split("").forEach((A=>{this.handleOnKeyDown(new KeyboardEvent("keydown",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)})),this.handleOnKeyPress(new KeyboardEvent("keypress",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)})),this.handleOnKeyUp(new KeyboardEvent("keyup",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)}))}))}getKeycode(A){if(!("keyCode"in A)){const e=A;return e.code in this.CodeToKeyCode?this.CodeToKeyCode[e.code]:(bA.Warning(bA.GetStackTrace(),`Keyboard code of ${e.code} is not supported in our mapping, ignoring this key.`),null)}return A.keyCode===vt.shift&&"ShiftRight"===A.code?vt.rightShift:A.keyCode===vt.control&&"ControlRight"===A.code?vt.rightControl:A.keyCode===vt.alt&&"AltRight"===A.code?vt.rightAlt:A.keyCode}isKeyCodeBrowserKey(A){return A>=112&&A<=123||9===A}}class Ft{constructor(A,e,t){this.x=0,this.y=0,this.updateMouseMovePositionEvent=A=>{this.updateMouseMovePosition(A)},this.mouseEventListenerTracker=new Ct,this.videoElementProvider=A,this.mouseController=e,this.activeKeysProvider=t;const n=this.videoElementProvider.getVideoParentElement();this.x=n.getBoundingClientRect().width/2,this.y=n.getBoundingClientRect().height/2,this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y)}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}lockStateChange(){const A=this.videoElementProvider.getVideoParentElement(),e=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;if(document.pointerLockElement===A||document.mozPointerLockElement===A)bA.Log(bA.GetStackTrace(),"Pointer locked",6),document.addEventListener("mousemove",this.updateMouseMovePositionEvent,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1)));else{bA.Log(bA.GetStackTrace(),"The pointer lock status is now unlocked",6),document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1);let A=this.activeKeysProvider.getActiveKeys();const t=new Set(A),n=[];t.forEach((A=>{n[A]})),n.forEach((A=>{e.get("KeyUp")([A])})),A=[]}}updateMouseMovePosition(A){if(!this.videoElementProvider.isVideoReady())return;const e=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers,t=this.videoElementProvider.getVideoParentElement().clientWidth,n=this.videoElementProvider.getVideoParentElement().clientHeight;this.x+=A.movementX,this.y+=A.movementY,this.x>t&&(this.x-=t),this.y>n&&(this.y-=n),this.x<0&&(this.x=t+this.x),this.y<0&&(this.y=n-this.y),this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y);const r=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);e.get("MouseMove")([this.coord.x,this.coord.y,r.x,r.y])}handleMouseDown(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A.button,this.coord.x,this.coord.y])}handleMouseUp(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A.button,this.coord.x,this.coord.y])}handleMouseWheel(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseWheel")([A.wheelDelta,this.coord.x,this.coord.y])}handleMouseDouble(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDouble")([A.button,this.coord.x,this.coord.y])}handlePressMouseButtons(A){this.videoElementProvider.isVideoReady()&&this.mouseController.pressMouseButtons(A.buttons,this.x,this.y)}handleReleaseMouseButtons(A){this.videoElementProvider.isVideoReady()&&this.mouseController.releaseMouseButtons(A.buttons,this.x,this.y)}}class Ut{constructor(A){this.mouseController=A}unregisterMouseEvents(){}updateMouseMovePosition(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;bA.Log(bA.GetStackTrace(),"MouseMove",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY),t=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseMove")([e.x,e.y,t.x,t.y]),A.preventDefault()}handleMouseDown(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;bA.Log(bA.GetStackTrace(),"onMouse Down",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A.button,e.x,e.y]),A.preventDefault()}handleMouseUp(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;bA.Log(bA.GetStackTrace(),"onMouse Up",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A.button,e.x,e.y]),A.preventDefault()}handleContextMenu(A){this.mouseController.videoElementProvider.isVideoReady()&&A.preventDefault()}handleMouseWheel(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseWheel")([A.wheelDelta,e.x,e.y]),A.preventDefault()}handleMouseDouble(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDouble")([A.button,e.x,e.y])}handlePressMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),"onMouse press",6),this.mouseController.pressMouseButtons(A.buttons,A.offsetX,A.offsetY))}handleReleaseMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),"onMouse release",6),this.mouseController.releaseMouseButtons(A.buttons,A.offsetX,A.offsetY))}}class Et{constructor(A,e,t,n){this.mouseEventListenerTracker=new Ct,this.toStreamerMessagesProvider=A,this.coordinateConverter=t,this.videoElementProvider=e,this.activeKeysProvider=n,this.registerMouseEnterAndLeaveEvents()}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}registerLockedMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new Ft(this.videoElementProvider,A,this.activeKeysProvider);if(e.requestPointerLock=e.requestPointerLock||e.mozRequestPointerLock,document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock,e.requestPointerLock){const A=()=>{e.requestPointerLock()};e.addEventListener("click",A),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("click",A)))}const n=()=>t.lockStateChange();document.addEventListener("pointerlockchange",n,!1),document.addEventListener("mozpointerlockchange",n,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("pointerlockchange",n,!1))),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mozpointerlockchange",n,!1)));const r=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleMouseWheel(A),o=A=>t.handleMouseDouble(A);e.addEventListener("mousedown",r),e.addEventListener("mouseup",s),e.addEventListener("wheel",i),e.addEventListener("dblclick",o),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mouseup",s))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("wheel",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("dblclick",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.unregisterMouseEvents())),this.mouseEventListenerTracker.addUnregisterCallback((()=>{!document.exitPointerLock||document.pointerLockElement!==e&&document.mozPointerLockElement!==e||document.exitPointerLock()}))}registerHoveringMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new Ut(A),n=A=>t.updateMouseMovePosition(A),r=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleContextMenu(A),o=A=>t.handleMouseWheel(A),a=A=>t.handleMouseDouble(A);e.addEventListener("mousemove",n),e.addEventListener("mousedown",r),e.addEventListener("mouseup",s),e.addEventListener("contextmenu",i),e.addEventListener("wheel",o),e.addEventListener("dblclick",a),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousemove",n))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mouseup",s))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("contextmenu",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("wheel",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("dblclick",a))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.unregisterMouseEvents()))}registerMouseEnterAndLeaveEvents(){const A=this.videoElementProvider.getVideoParentElement(),e=A=>{this.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),"Mouse Entered",6),this.sendMouseEnter(),this.pressMouseButtons(A.buttons,A.x,A.y))},t=A=>{this.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),"Mouse Left",6),this.sendMouseLeave(),this.releaseMouseButtons(A.buttons,A.x,A.y))};A.addEventListener("mouseenter",e),A.addEventListener("mouseleave",t),this.mouseEventListenerTracker.addUnregisterCallback((()=>A.removeEventListener("mouseenter",e))),this.mouseEventListenerTracker.addUnregisterCallback((()=>A.removeEventListener("mouseleave",t)))}releaseMouseButtons(A,e,t){const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&pt.primaryButton&&this.sendMouseUp(wt.mainButton,n.x,n.y),A&pt.secondaryButton&&this.sendMouseUp(wt.secondaryButton,n.x,n.y),A&pt.auxiliaryButton&&this.sendMouseUp(wt.auxiliaryButton,n.x,n.y),A&pt.fourthButton&&this.sendMouseUp(wt.fourthButton,n.x,n.y),A&pt.fifthButton&&this.sendMouseUp(wt.fifthButton,n.x,n.y)}pressMouseButtons(A,e,t){if(!this.videoElementProvider.isVideoReady())return;const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&pt.primaryButton&&this.sendMouseDown(wt.mainButton,n.x,n.y),A&pt.secondaryButton&&this.sendMouseDown(wt.secondaryButton,n.x,n.y),A&pt.auxiliaryButton&&this.sendMouseDown(wt.auxiliaryButton,n.x,n.y),A&pt.fourthButton&&this.sendMouseDown(wt.fourthButton,n.x,n.y),A&pt.fifthButton&&this.sendMouseDown(wt.fifthButton,n.x,n.y)}sendMouseEnter(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseEnter")()}sendMouseLeave(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseLeave")()}sendMouseDown(A,e,t){this.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),`mouse button ${A} down at (${e}, ${t})`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A,e,t]))}sendMouseUp(A,e,t){if(!this.videoElementProvider.isVideoReady())return;bA.Log(bA.GetStackTrace(),`mouse button ${A} up at (${e}, ${t})`,6);const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A,n.x,n.y])}}class yt{constructor(A,e,t){this.fingers=[9,8,7,6,5,4,3,2,1,0],this.fingerIds=new Map,this.maxByteValue=255,this.touchEventListenerTracker=new Ct,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t,this.videoElementParent=e.getVideoElement();const n=A=>this.onTouchStart(A),r=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);this.videoElementParent.addEventListener("touchstart",n),this.videoElementParent.addEventListener("touchend",r),this.videoElementParent.addEventListener("touchmove",s),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchstart",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchend",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchmove",s))),bA.Log(bA.GetStackTrace(),"Touch Events Registered",6);const i=A=>{A.preventDefault()};document.addEventListener("touchmove",i),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchmove",i)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}rememberTouch(A){const e=this.fingers.pop();void 0===e&&bA.Log(bA.GetStackTrace(),"exhausted touch identifiers",6),this.fingerIds.set(A.identifier,e)}forgetTouch(A){this.fingers.push(this.fingerIds.get(A.identifier)),this.fingers.sort((function(A,e){return e-A})),this.fingerIds.delete(A.identifier)}onTouchStart(A){if(this.videoElementProvider.isVideoReady()){for(let e=0;e<A.changedTouches.length;e++)this.rememberTouch(A.changedTouches[e]);bA.Log(bA.GetStackTrace(),"touch start",6),this.emitTouchData("TouchStart",A.changedTouches),A.preventDefault()}}onTouchEnd(A){if(this.videoElementProvider.isVideoReady()){bA.Log(bA.GetStackTrace(),"touch end",6),this.emitTouchData("TouchEnd",A.changedTouches);for(let e=0;e<A.changedTouches.length;e++)this.forgetTouch(A.changedTouches[e]);A.preventDefault()}}onTouchMove(A){this.videoElementProvider.isVideoReady()&&(bA.Log(bA.GetStackTrace(),"touch move",6),this.emitTouchData("TouchMove",A.touches),A.preventDefault())}emitTouchData(A,e){if(!this.videoElementProvider.isVideoReady())return;const t=this.videoElementProvider.getVideoParentElement().getBoundingClientRect(),n=this.toStreamerMessagesProvider.toStreamerHandlers;for(let r=0;r<e.length;r++){const s=1,i=e[r],o=i.clientX-t.left,a=i.clientY-t.top;bA.Log(bA.GetStackTrace(),`F${this.fingerIds.get(i.identifier)}=(${o}, ${a})`,6);const c=this.coordinateConverter.normalizeAndQuantizeUnsigned(o,a);switch(A){case"TouchStart":n.get("TouchStart")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*(i.force>0?i.force:1),c.inRange?1:0]);break;case"TouchEnd":n.get("TouchEnd")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*i.force,c.inRange?1:0]);break;case"TouchMove":n.get("TouchMove")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*(i.force>0?i.force:1),c.inRange?1:0])}}}}class St{constructor(A){this.gamePadEventListenerTracker=new Ct,this.toStreamerMessagesProvider=A,this.requestAnimationFrame=(window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.requestAnimationFrame).bind(window);const e=window;if(window.addEventListener("beforeunload",(A=>this.onBeforeUnload(A))),"GamepadEvent"in e){const A=A=>this.gamePadConnectHandler(A),e=A=>this.gamePadDisconnectHandler(A);window.addEventListener("gamepadconnected",A),window.addEventListener("gamepaddisconnected",e),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("gamepadconnected",A))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("gamepaddisconnected",e)))}else if("WebKitGamepadEvent"in e){const A=A=>this.gamePadConnectHandler(A),e=A=>this.gamePadDisconnectHandler(A);window.addEventListener("webkitgamepadconnected",A),window.addEventListener("webkitgamepaddisconnected",e),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("webkitgamepadconnected",A))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("webkitgamepaddisconnected",e)))}if(this.controllers=[],navigator.getGamepads)for(const A of navigator.getGamepads())A&&this.gamePadConnectHandler(new GamepadEvent("gamepadconnected",{gamepad:A}))}unregisterGamePadEvents(){this.gamePadEventListenerTracker.unregisterAll();for(const A of this.controllers)void 0!==A.id&&this.onGamepadDisconnected(A.id);this.controllers=[],this.onGamepadConnected=()=>{},this.onGamepadDisconnected=()=>{}}gamePadConnectHandler(A){bA.Log(bA.GetStackTrace(),"Gamepad connect handler",6);const e=A.gamepad,t={currentState:e,prevState:e,id:void 0};this.controllers.push(t),this.controllers[e.index].currentState=e,this.controllers[e.index].prevState=e,bA.Log(bA.GetStackTrace(),"gamepad: "+e.id+" connected",6),window.requestAnimationFrame((()=>this.updateStatus())),this.onGamepadConnected()}gamePadDisconnectHandler(A){bA.Log(bA.GetStackTrace(),"Gamepad disconnect handler",6),bA.Log(bA.GetStackTrace(),"gamepad: "+A.gamepad.id+" disconnected",6);const e=this.controllers[A.gamepad.index];delete this.controllers[A.gamepad.index],this.controllers=this.controllers.filter((A=>void 0!==A)),this.onGamepadDisconnected(e.id)}scanGamePads(){const A=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():[];for(let e=0;e<A.length;e++)A[e]&&A[e].index in this.controllers&&(this.controllers[A[e].index].currentState=A[e])}updateStatus(){this.scanGamePads();const A=this.toStreamerMessagesProvider.toStreamerHandlers;for(const e of this.controllers){const t=void 0===e.id?this.controllers.indexOf(e):e.id,n=e.currentState;for(let n=0;n<e.currentState.buttons.length;n++){const r=e.currentState.buttons[n],s=e.prevState.buttons[n];r.pressed?n==st.LeftTrigger?A.get("GamepadAnalog")([t,5,r.value]):n==st.RightTrigger?A.get("GamepadAnalog")([t,6,r.value]):A.get("GamepadButtonPressed")([t,n,s.pressed?1:0]):!r.pressed&&s.pressed&&(n==st.LeftTrigger?A.get("GamepadAnalog")([t,5,0]):n==st.RightTrigger?A.get("GamepadAnalog")([t,6,0]):A.get("GamepadButtonReleased")([t,n,0]))}for(let e=0;e<n.axes.length;e+=2){const r=parseFloat(n.axes[e].toFixed(4)),s=-parseFloat(n.axes[e+1].toFixed(4));A.get("GamepadAnalog")([t,e+1,r]),A.get("GamepadAnalog")([t,e+2,s])}this.controllers[t].prevState=n}this.controllers.length>0&&this.requestAnimationFrame((()=>this.updateStatus()))}onGamepadResponseReceived(A){for(const e of this.controllers)if(void 0===e.id){e.id=A;break}}onGamepadConnected(){}onGamepadDisconnected(A){}onBeforeUnload(A){for(const A of this.controllers)this.onGamepadDisconnected(A.id)}}!function(A){A[A.RightClusterBottomButton=0]="RightClusterBottomButton",A[A.RightClusterRightButton=1]="RightClusterRightButton",A[A.RightClusterLeftButton=2]="RightClusterLeftButton",A[A.RightClusterTopButton=3]="RightClusterTopButton",A[A.LeftShoulder=4]="LeftShoulder",A[A.RightShoulder=5]="RightShoulder",A[A.LeftTrigger=6]="LeftTrigger",A[A.RightTrigger=7]="RightTrigger",A[A.SelectOrBack=8]="SelectOrBack",A[A.StartOrForward=9]="StartOrForward",A[A.LeftAnalogPress=10]="LeftAnalogPress",A[A.RightAnalogPress=11]="RightAnalogPress",A[A.LeftClusterTopButton=12]="LeftClusterTopButton",A[A.LeftClusterBottomButton=13]="LeftClusterBottomButton",A[A.LeftClusterLeftButton=14]="LeftClusterLeftButton",A[A.LeftClusterRightButton=15]="LeftClusterRightButton",A[A.CentreButton=16]="CentreButton",A[A.LeftStickHorizontal=0]="LeftStickHorizontal",A[A.LeftStickVertical=1]="LeftStickVertical",A[A.RightStickHorizontal=2]="RightStickHorizontal",A[A.RightStickVertical=3]="RightStickVertical"}(st||(st={}));class bt{constructor(A,e,t){this.activeKeys=new It,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t}registerKeyBoard(A){bA.Log(bA.GetStackTrace(),"Register Keyboard Events",7);const e=new Qt(this.toStreamerMessagesProvider,A,this.activeKeys);return e.registerKeyBoardEvents(),e}registerMouse(A){bA.Log(bA.GetStackTrace(),"Register Mouse Events",7);const e=new Et(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter,this.activeKeys);switch(A){case Ne.LockedMouse:e.registerLockedMouseEvents(e);break;case Ne.HoveringMouse:e.registerHoveringMouseEvents(e);break;default:bA.Info(bA.GetStackTrace(),"unknown Control Scheme Type Defaulting to Locked Mouse Events"),e.registerLockedMouseEvents(e)}return e}registerTouch(A,e){if(bA.Log(bA.GetStackTrace(),"Registering Touch",6),A){const A=new mt(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter);return A.setVideoElementParentClientRect(e),A}return new yt(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter)}registerGamePad(){return bA.Log(bA.GetStackTrace(),"Register Game Pad",7),new St(this.toStreamerMessagesProvider)}}class It{constructor(){this.activeKeys=[],this.activeKeys=[]}getActiveKeys(){return this.activeKeys}}class Ht{constructor(A,e){this.lastTimeResized=(new Date).getTime(),this.videoElement=document.createElement("video"),this.config=e,this.videoElement.id="streamingVideo",this.videoElement.disablePictureInPicture=!0,this.videoElement.playsInline=!0,this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.pointerEvents="all",A.appendChild(this.videoElement),this.onResizePlayerCallback=()=>{console.log("Resolution changed, restyling player, did you forget to override this function?")},this.onMatchViewportResolutionCallback=()=>{console.log("Resolution changed and match viewport resolution is turned on, did you forget to override this function?")},this.videoElement.onclick=()=>{null!=this.audioElement&&this.audioElement.paused&&this.audioElement.play(),this.videoElement.paused&&this.videoElement.play()},this.videoElement.onloadedmetadata=()=>{this.onVideoInitialized()},window.addEventListener("resize",(()=>this.resizePlayerStyle()),!0),window.addEventListener("orientationchange",(()=>this.onOrientationChange()))}setAudioElement(A){this.audioElement=A}play(){return this.videoElement.muted=this.config.isFlagEnabled(Pe.StartVideoMuted),this.videoElement.autoplay=this.config.isFlagEnabled(Pe.AutoPlayVideo),this.videoElement.play()}isPaused(){return this.videoElement.paused}isVideoReady(){return void 0!==this.videoElement.readyState&&this.videoElement.readyState>0}hasVideoSource(){return void 0!==this.videoElement.srcObject&&null!==this.videoElement.srcObject}getVideoElement(){return this.videoElement}getVideoParentElement(){return this.videoElement.parentElement}setVideoEnabled(A){this.videoElement.srcObject.getTracks().forEach((e=>e.enabled=A))}onVideoInitialized(){}onOrientationChange(){clearTimeout(this.orientationChangeTimeout),this.orientationChangeTimeout=window.setTimeout((()=>{this.resizePlayerStyle()}),500)}resizePlayerStyle(){const A=this.getVideoParentElement();A&&(this.updateVideoStreamSize(),A.classList.contains("fixed-size")||this.resizePlayerStyleToFillParentElement(),this.onResizePlayerCallback())}resizePlayerStyleToFillParentElement(){this.getVideoParentElement().setAttribute("style","top: 0px; left: 0px; width: 100%; height: 100%; cursor: default;")}updateVideoStreamSize(){if(this.config.isFlagEnabled(Pe.MatchViewportResolution))if((new Date).getTime()-this.lastTimeResized>300){const A=this.getVideoParentElement();if(!A)return;this.onMatchViewportResolutionCallback(A.clientWidth,A.clientHeight),this.lastTimeResized=(new Date).getTime()}else bA.Log(bA.GetStackTrace(),"Resizing too often - skipping",6),clearTimeout(this.resizeTimeoutHandle),this.resizeTimeoutHandle=window.setTimeout((()=>this.updateVideoStreamSize()),100)}}class Tt{constructor(){this.toStreamerHandlers=new Map,this.fromStreamerHandlers=new Map,this.toStreamerMessages=new Map,this.fromStreamerMessages=new Map}populateDefaultProtocol(){this.toStreamerMessages.set("IFrameRequest",{id:0,structure:[]}),this.toStreamerMessages.set("RequestQualityControl",{id:1,structure:[]}),this.toStreamerMessages.set("FpsRequest",{id:2,structure:[]}),this.toStreamerMessages.set("AverageBitrateRequest",{id:3,structure:[]}),this.toStreamerMessages.set("StartStreaming",{id:4,structure:[]}),this.toStreamerMessages.set("StopStreaming",{id:5,structure:[]}),this.toStreamerMessages.set("LatencyTest",{id:6,structure:["string"]}),this.toStreamerMessages.set("RequestInitialSettings",{id:7,structure:[]}),this.toStreamerMessages.set("TestEcho",{id:8,structure:[]}),this.toStreamerMessages.set("DataChannelLatencyTest",{id:9,structure:[]}),this.toStreamerMessages.set("UIInteraction",{id:50,structure:["string"]}),this.toStreamerMessages.set("Command",{id:51,structure:["string"]}),this.toStreamerMessages.set("KeyDown",{id:60,structure:["uint8","uint8"]}),this.toStreamerMessages.set("KeyUp",{id:61,structure:["uint8"]}),this.toStreamerMessages.set("KeyPress",{id:62,structure:["uint16"]}),this.toStreamerMessages.set("MouseEnter",{id:70,structure:[]}),this.toStreamerMessages.set("MouseLeave",{id:71,structure:[]}),this.toStreamerMessages.set("MouseDown",{id:72,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("MouseUp",{id:73,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("MouseMove",{id:74,structure:["uint16","uint16","int16","int16"]}),this.toStreamerMessages.set("MouseWheel",{id:75,structure:["int16","uint16","uint16"]}),this.toStreamerMessages.set("MouseDouble",{id:76,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("TouchStart",{id:80,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("TouchEnd",{id:81,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("TouchMove",{id:82,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadConnected",{id:93,structure:[]}),this.toStreamerMessages.set("GamepadButtonPressed",{id:90,structure:["uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadButtonReleased",{id:91,structure:["uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadAnalog",{id:92,structure:["uint8","uint8","double"]}),this.toStreamerMessages.set("GamepadDisconnected",{id:94,structure:["uint8"]}),this.fromStreamerMessages.set(0,"QualityControlOwnership"),this.fromStreamerMessages.set(1,"Response"),this.fromStreamerMessages.set(2,"Command"),this.fromStreamerMessages.set(3,"FreezeFrame"),this.fromStreamerMessages.set(4,"UnfreezeFrame"),this.fromStreamerMessages.set(5,"VideoEncoderAvgQP"),this.fromStreamerMessages.set(6,"LatencyTest"),this.fromStreamerMessages.set(7,"InitialSettings"),this.fromStreamerMessages.set(8,"FileExtension"),this.fromStreamerMessages.set(9,"FileMimeType"),this.fromStreamerMessages.set(10,"FileContents"),this.fromStreamerMessages.set(11,"TestEcho"),this.fromStreamerMessages.set(12,"InputControlOwnership"),this.fromStreamerMessages.set(13,"GamepadResponse"),this.fromStreamerMessages.set(14,"DataChannelLatencyTest"),this.fromStreamerMessages.set(255,"Protocol")}registerMessageHandler(A,e,t){switch(A){case it.ToStreamer:this.toStreamerHandlers.set(e,t);break;case it.FromStreamer:this.fromStreamerHandlers.set(e,t);break;default:bA.Log(bA.GetStackTrace(),`Unknown message direction ${A}`)}}}!function(A){A[A.ToStreamer=0]="ToStreamer",A[A.FromStreamer=1]="FromStreamer"}(it||(it={}));class Mt{constructor(){this.responseEventListeners=new Map}addResponseEventListener(A,e){this.responseEventListeners.set(A,e)}removeResponseEventListener(A){this.responseEventListeners.delete(A)}onResponse(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.Response",6);const e=new TextDecoder("utf-16").decode(A.slice(1));bA.Log(bA.GetStackTrace(),e,6),this.responseEventListeners.forEach((A=>{A(e)}))}}class Lt{constructor(A,e){this.dataChannelSender=A,this.toStreamerMessagesMapProvider=e}sendMessageToStreamer(A,e){void 0===e&&(e=[]);const t=this.toStreamerMessagesMapProvider.toStreamerMessages.get(A);if(void 0===t)return void bA.Error(bA.GetStackTrace(),`Attempted to send a message to the streamer with message type: ${A}, but the frontend hasn't been configured to send such a message. Check you've added the message type in your cpp`);if(t.structure&&e&&t.structure.length!==e.length)return void bA.Error(bA.GetStackTrace(),`Provided message data doesn't match expected layout. Expected [ ${t.structure.map((A=>{switch(A){case"uint8":case"uint16":case"int16":case"float":case"double":return"number";case"string":return"string"}})).toString()} ] but received [ ${e.map((A=>typeof A)).toString()} ]`);let n=0;const r=new TextEncoder;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":n+=1;break;case"uint16":case"int16":n+=2;break;case"float":n+=4;break;case"double":n+=8;break;case"string":n+=2,n+=2*r.encode(A).length}}));const s=new DataView(new ArrayBuffer(n+1));s.setUint8(0,t.id);let i=1;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":s.setUint8(i,A),i+=1;break;case"uint16":s.setUint16(i,A,!0),i+=2;break;case"int16":s.setInt16(i,A,!0),i+=2;break;case"float":s.setFloat32(i,A,!0),i+=4;break;case"double":s.setFloat64(i,A,!0),i+=8;break;case"string":s.setUint16(i,A.length,!0),i+=2;for(let e=0;e<A.length;e++)s.setUint16(i,A.charCodeAt(e),!0),i+=2}})),this.dataChannelSender.canSend()?this.dataChannelSender.sendData(s.buffer):bA.Info(bA.GetStackTrace(),`Data channel cannot send yet, skipping sending message: ${A} - ${new Uint8Array(s.buffer)}`)}}class xt{constructor(A){this.sendMessageController=A}SendRequestQualityControl(){this.sendMessageController.sendMessageToStreamer("RequestQualityControl")}SendMaxFpsRequest(){this.sendMessageController.sendMessageToStreamer("FpsRequest")}SendAverageBitrateRequest(){this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest")}SendStartStreaming(){this.sendMessageController.sendMessageToStreamer("StartStreaming")}SendStopStreaming(){this.sendMessageController.sendMessageToStreamer("StopStreaming")}SendRequestInitialSettings(){this.sendMessageController.sendMessageToStreamer("RequestInitialSettings")}}class Pt{constructor(A){this.dataChannelProvider=A}canSend(){return void 0!==this.dataChannelProvider.getDataChannelInstance().dataChannel&&"open"==this.dataChannelProvider.getDataChannelInstance().dataChannel.readyState}sendData(A){const e=this.dataChannelProvider.getDataChannelInstance();"open"==e.dataChannel.readyState?(e.dataChannel.send(A),bA.Log(bA.GetStackTrace(),`Message Sent: ${new Uint8Array(A)}`,6),this.resetAfkWarningTimerOnDataSend()):bA.Error(bA.GetStackTrace(),`Message Failed: ${new Uint8Array(A)}`)}resetAfkWarningTimerOnDataSend(){}}class Dt{constructor(A){this.videoElementProvider=A,this.normalizeAndQuantizeUnsignedFunc=()=>{throw new Error("Normalize and quantize unsigned, method not implemented.")},this.normalizeAndQuantizeSignedFunc=()=>{throw new Error("Normalize and unquantize signed, method not implemented.")},this.denormalizeAndUnquantizeUnsignedFunc=()=>{throw new Error("Denormalize and unquantize unsigned, method not implemented.")}}normalizeAndQuantizeUnsigned(A,e){return this.normalizeAndQuantizeUnsignedFunc(A,e)}unquantizeAndDenormalizeUnsigned(A,e){return this.denormalizeAndUnquantizeUnsignedFunc(A,e)}normalizeAndQuantizeSigned(A,e){return this.normalizeAndQuantizeSignedFunc(A,e)}setupNormalizeAndQuantize(){if(this.videoElementParent=this.videoElementProvider.getVideoParentElement(),this.videoElement=this.videoElementProvider.getVideoElement(),this.videoElementParent&&this.videoElement){const A=this.videoElementParent.clientWidth||1,e=this.videoElementParent.clientHeight||1,t=this.videoElement.videoWidth||1,n=e/A,r=(this.videoElement.videoHeight||1)/t;n>r?(bA.Log(bA.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio > videoAspectRatio",6),this.ratio=n/r,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerBigger(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerBigger(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerBigger(A,e)):(bA.Log(bA.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio <= videoAspectRatio",6),this.ratio=r/n,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerSmaller(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerSmaller(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e))}}normalizeAndQuantizeUnsignedPlayerBigger(A,e){const t=A/this.videoElementParent.clientWidth,n=this.ratio*(e/this.videoElementParent.clientHeight-.5)+.5;return t<0||t>1||n<0||n>1?new Rt(!1,65535,65535):new Rt(!0,65536*t,65536*n)}denormalizeAndUnquantizeUnsignedPlayerBigger(A,e){const t=A/65536,n=(e/65536-.5)/this.ratio+.5;return new kt(t*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerBigger(A,e){const t=A/(.5*this.videoElementParent.clientWidth),n=this.ratio*e/(.5*this.videoElementParent.clientHeight);return new Kt(32767*t,32767*n)}normalizeAndQuantizeUnsignedPlayerSmaller(A,e){const t=this.ratio*(A/this.videoElementParent.clientWidth-.5)+.5,n=e/this.videoElementParent.clientHeight;return t<0||t>1||n<0||n>1?new Rt(!1,65535,65535):new Rt(!0,65536*t,65536*n)}denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e){const t=(A/65536-.5)/this.ratio+.5,n=e/65536;return new kt(t*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerSmaller(A,e){const t=this.ratio*A/(.5*this.videoElementParent.clientWidth),n=e/(.5*this.videoElementParent.clientHeight);return new Kt(32767*t,32767*n)}}class Rt{constructor(A,e,t){this.inRange=A,this.x=e,this.y=t}}class kt{constructor(A,e){this.x=A,this.y=e}}class Kt{constructor(A,e){this.x=A,this.y=e}}class Ot{constructor(A,e){this.shouldShowPlayOverlay=!0,this.autoJoinTimer=void 0,this.config=A,this.pixelStreaming=e,this.responseController=new Mt,this.file=new Bt,this.sdpConstraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},this.afkController=new We(this.config,this.pixelStreaming,this.onAfkTriggered.bind(this)),this.afkController.onAFKTimedOutCallback=()=>{this.closeSignalingServer("You have been disconnected due to inactivity")},this.freezeFrameController=new WA(this.pixelStreaming.videoElementParent),this.videoPlayer=new Ht(this.pixelStreaming.videoElementParent,this.config),this.videoPlayer.onVideoInitialized=()=>this.handleVideoInitialized(),this.videoPlayer.onMatchViewportResolutionCallback=(A,e)=>{const t={"Resolution.Width":A,"Resolution.Height":e};this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(t)])},this.videoPlayer.onResizePlayerCallback=()=>{this.setUpMouseAndFreezeFrame()},this.streamController=new _A(this.videoPlayer),this.coordinateConverter=new Dt(this.videoPlayer),this.sendrecvDataChannelController=new Je,this.recvDataChannelController=new Je,this.registerDataChannelEventEmitters(this.sendrecvDataChannelController),this.registerDataChannelEventEmitters(this.recvDataChannelController),this.dataChannelSender=new Pt(this.sendrecvDataChannelController),this.dataChannelSender.resetAfkWarningTimerOnDataSend=()=>this.afkController.resetAfkWarningTimer(),this.streamMessageController=new Tt,this.webSocketController=new GA,this.webSocketController.onConfig=A=>this.handleOnConfigMessage(A),this.webSocketController.onStreamerList=A=>this.handleStreamerListMessage(A),this.webSocketController.onStreamerIDChanged=A=>this.handleStreamerIDChangedMessage(A),this.webSocketController.onPlayerCount=A=>{this.pixelStreaming._onPlayerCount(A.count)},this.webSocketController.onOpen.addEventListener("open",(()=>{this.config.isFlagEnabled(Pe.BrowserSendOffer)||this.webSocketController.requestStreamerList()})),this.webSocketController.onClose.addEventListener("close",(A=>{const e=this.shouldReconnect&&1001!=A.detail.code&&this.config.getNumericSettingValue(Re.MaxReconnectAttempts)>0,t=this.disconnectMessage?this.disconnectMessage:A.detail.reason;this.pixelStreaming._onDisconnect(t,!e&&!this.isReconnecting),this.afkController.stopAfkWarningTimer(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.setVideoEncoderAvgQP(0),this.setTouchInputEnabled(!1),this.setMouseInputEnabled(!1),this.setKeyboardInputEnabled(!1),this.setGamePadInputEnabled(!1),e&&setTimeout((()=>{this.isReconnecting=!0,this.reconnectAttempt++,this.tryReconnect(A.detail.reason)}),2e3)})),this.sendMessageController=new Lt(this.dataChannelSender,this.streamMessageController),this.toStreamerMessagesController=new xt(this.sendMessageController),this.registerMessageHandlers(),this.streamMessageController.populateDefaultProtocol(),this.inputClassesFactory=new bt(this.streamMessageController,this.videoPlayer,this.coordinateConverter),this.isUsingSFU=!1,this.isQualityController=!1,this.preferredCodec="",this.shouldReconnect=!0,this.isReconnecting=!1,this.reconnectAttempt=0,this.config._addOnOptionSettingChangedListener(Ve.StreamerId,(A=>{""!==A&&(this.peerConnectionController.peerConnection.close(),this.peerConnectionController.createPeerConnection(this.peerConfig,this.preferredCodec),this.subscribedStream=A,this.webSocketController.sendSubscribe(A))})),this.setVideoEncoderAvgQP(-1),this.signallingUrlBuilder=()=>{let A=this.config.getTextSettingValue(Ke.SignallingServerUrl);return this.config.isFlagEnabled(Pe.BrowserSendOffer)&&(A+="?"+Pe.BrowserSendOffer+"=true"),A}}requestUnquantizedAndDenormalizeUnsigned(A,e){return this.coordinateConverter.unquantizeAndDenormalizeUnsigned(A,e)}handleOnMessage(A){const e=new Uint8Array(A.data);bA.Log(bA.GetStackTrace(),"Message incoming:"+e,6);const t=this.streamMessageController.fromStreamerMessages.get(e[0]);this.streamMessageController.fromStreamerHandlers.get(t)(A.data)}registerMessageHandlers(){this.streamMessageController.registerMessageHandler(it.FromStreamer,"QualityControlOwnership",(A=>this.onQualityControlOwnership(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"Response",(A=>this.responseController.onResponse(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"Command",(A=>{this.onCommand(A)})),this.streamMessageController.registerMessageHandler(it.FromStreamer,"FreezeFrame",(A=>this.onFreezeFrameMessage(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"UnfreezeFrame",(()=>this.invalidateFreezeFrameAndEnableVideo())),this.streamMessageController.registerMessageHandler(it.FromStreamer,"VideoEncoderAvgQP",(A=>this.handleVideoEncoderAvgQP(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"LatencyTest",(A=>this.handleLatencyTestResult(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"DataChannelLatencyTest",(A=>this.handleDataChannelLatencyTestResponse(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"InitialSettings",(A=>this.handleInitialSettings(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"FileExtension",(A=>this.onFileExtension(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"FileMimeType",(A=>this.onFileMimeType(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"FileContents",(A=>this.onFileContents(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(it.FromStreamer,"InputControlOwnership",(A=>this.onInputControlOwnership(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"GamepadResponse",(A=>this.onGamepadResponse(A))),this.streamMessageController.registerMessageHandler(it.FromStreamer,"Protocol",(A=>this.onProtocolMessage(A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"IFrameRequest",(()=>this.sendMessageController.sendMessageToStreamer("IFrameRequest"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"RequestQualityControl",(()=>this.sendMessageController.sendMessageToStreamer("RequestQualityControl"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"FpsRequest",(()=>this.sendMessageController.sendMessageToStreamer("FpsRequest"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"AverageBitrateRequest",(()=>this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"StartStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StartStreaming"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"StopStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StopStreaming"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"LatencyTest",(A=>this.sendMessageController.sendMessageToStreamer("LatencyTest",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"RequestInitialSettings",(()=>this.sendMessageController.sendMessageToStreamer("RequestInitialSettings"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(it.ToStreamer,"UIInteraction",(A=>this.sendMessageController.sendMessageToStreamer("UIInteraction",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"Command",(A=>this.sendMessageController.sendMessageToStreamer("Command",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"TextboxEntry",(A=>this.sendMessageController.sendMessageToStreamer("TextboxEntry",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"KeyDown",(A=>this.sendMessageController.sendMessageToStreamer("KeyDown",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"KeyUp",(A=>this.sendMessageController.sendMessageToStreamer("KeyUp",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"KeyPress",(A=>this.sendMessageController.sendMessageToStreamer("KeyPress",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseEnter",(A=>this.sendMessageController.sendMessageToStreamer("MouseEnter",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseLeave",(A=>this.sendMessageController.sendMessageToStreamer("MouseLeave",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseDown",(A=>this.sendMessageController.sendMessageToStreamer("MouseDown",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseUp",(A=>this.sendMessageController.sendMessageToStreamer("MouseUp",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseMove",(A=>this.sendMessageController.sendMessageToStreamer("MouseMove",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseWheel",(A=>this.sendMessageController.sendMessageToStreamer("MouseWheel",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"MouseDouble",(A=>this.sendMessageController.sendMessageToStreamer("MouseDouble",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"TouchStart",(A=>this.sendMessageController.sendMessageToStreamer("TouchStart",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"TouchEnd",(A=>this.sendMessageController.sendMessageToStreamer("TouchEnd",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"TouchMove",(A=>this.sendMessageController.sendMessageToStreamer("TouchMove",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"GamepadConnected",(()=>this.sendMessageController.sendMessageToStreamer("GamepadConnected"))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"GamepadButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonPressed",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"GamepadButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonReleased",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"GamepadAnalog",(A=>this.sendMessageController.sendMessageToStreamer("GamepadAnalog",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"GamepadDisconnected",(A=>this.sendMessageController.sendMessageToStreamer("GamepadDisconnected",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XREyeViews",(A=>this.sendMessageController.sendMessageToStreamer("XREyeViews",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRHMDTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRHMDTransform",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRControllerTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRControllerTransform",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRSystem",(A=>this.sendMessageController.sendMessageToStreamer("XRSystem",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRButtonTouched",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouched",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRButtonTouchReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouchReleased",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonPressed",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonReleased",A))),this.streamMessageController.registerMessageHandler(it.ToStreamer,"XRAnalog",(A=>this.sendMessageController.sendMessageToStreamer("XRAnalog",A)))}onCommand(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.Command",6);const e=new TextDecoder("utf-16").decode(A.slice(1));bA.Log(bA.GetStackTrace(),"Data Channel Command: "+e,6);const t=JSON.parse(e);"onScreenKeyboard"===t.command&&this.pixelStreaming._activateOnScreenKeyboard(t)}onProtocolMessage(A){try{const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);Object.prototype.hasOwnProperty.call(t,"Direction")||bA.Error(bA.GetStackTrace(),"Malformed protocol received. Ensure the protocol message contains a direction");const n=t.Direction;delete t.Direction,bA.Log(bA.GetStackTrace(),`Received new ${n==it.FromStreamer?"FromStreamer":"ToStreamer"} protocol. Updating existing protocol...`),Object.keys(t).forEach((A=>{const e=t[A];switch(n){case it.ToStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void bA.Error(bA.GetStackTrace(),`ToStreamer->${A} protocol definition was malformed as it didn't contain at least an id\n\n Definition was: ${JSON.stringify(e,null,2)}`);if("UIInteraction"===A||"Command"===A||"LatencyTest"===A)return;this.streamMessageController.toStreamerHandlers.get(A)?this.streamMessageController.toStreamerMessages.set(A,e):bA.Error(bA.GetStackTrace(),`There was no registered handler for "${A}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${A}", myHandler)`);break;case it.FromStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void bA.Error(bA.GetStackTrace(),`FromStreamer->${A} protocol definition was malformed as it didn't contain at least an id\n\n Definition was: ${JSON.stringify(e,null,2)}`);this.streamMessageController.fromStreamerHandlers.get(A)?this.streamMessageController.fromStreamerMessages.set(e.id,A):bA.Error(bA.GetStackTrace(),`There was no registered handler for "${e}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${A}", myHandler)`);break;default:bA.Error(bA.GetStackTrace(),`Unknown direction: ${n}`)}})),this.toStreamerMessagesController.SendRequestInitialSettings(),this.toStreamerMessagesController.SendRequestQualityControl()}catch(A){bA.Log(bA.GetStackTrace(),A)}}onInputControlOwnership(A){const e=new Uint8Array(A);bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.InputControlOwnership",6);const t=new Boolean(e[1]).valueOf();bA.Log(bA.GetStackTrace(),`Received input controller message - will your input control the stream: ${t}`),this.pixelStreaming._onInputControlOwnership(t)}onGamepadResponse(A){const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.gamePadController.onGamepadResponseReceived(t.controllerId)}onAfkTriggered(){this.afkController.onAfkClick(),this.videoPlayer.isPaused()&&this.videoPlayer.hasVideoSource()&&this.playStream()}setAfkEnabled(A){A?this.onAfkTriggered():this.afkController.stopAfkWarningTimer()}tryReconnect(A){this.webSocketController?(this.isReconnecting=!0,this.webSocketController.webSocket&&this.webSocketController.webSocket.readyState!=WebSocket.CLOSED?(this.closeSignalingServer(`${A} Restarting stream...`),setTimeout((()=>{this.tryReconnect(A)}),3e3)):(this.pixelStreaming._onWebRtcAutoConnect(),this.connectToSignallingServer())):bA.Log(bA.GetStackTrace(),"The Web Socket Controller does not exist so this will not work right now.")}loadFreezeFrameOrShowPlayOverlay(){this.pixelStreaming.dispatchEvent(new me({shouldShowPlayOverlay:this.shouldShowPlayOverlay,isValid:this.freezeFrameController.valid,jpegData:this.freezeFrameController.jpeg})),!0===this.shouldShowPlayOverlay?(bA.Log(bA.GetStackTrace(),"showing play overlay"),this.resizePlayerStyle()):(bA.Log(bA.GetStackTrace(),"showing freeze frame"),this.freezeFrameController.showFreezeFrame()),setTimeout((()=>{this.videoPlayer.setVideoEnabled(!1)}),this.freezeFrameController.freezeFrameDelay)}onFreezeFrameMessage(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6);const e=new Uint8Array(A);this.freezeFrameController.processFreezeFrameMessage(e,(()=>this.loadFreezeFrameOrShowPlayOverlay()))}invalidateFreezeFrameAndEnableVideo(){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6),setTimeout((()=>{this.pixelStreaming.dispatchEvent(new fe),this.freezeFrameController.hideFreezeFrame()}),this.freezeFrameController.freezeFrameDelay),this.videoPlayer.getVideoElement()&&this.videoPlayer.setVideoEnabled(!0)}onFileExtension(A){const e=new Uint8Array(A);gt.setExtensionFromBytes(e,this.file)}onFileMimeType(A){const e=new Uint8Array(A);gt.setMimeTypeFromBytes(e,this.file)}onFileContents(A){const e=new Uint8Array(A);gt.setContentsFromBytes(e,this.file)}playStream(){if(!this.videoPlayer.getVideoElement()){const A="Could not play video stream because the video player was not initialized correctly.";return this.pixelStreaming.dispatchEvent(new we({message:A})),bA.Error(bA.GetStackTrace(),A),void this.closeSignalingServer("Stream not initialized correctly")}if(this.videoPlayer.hasVideoSource()){if(this.setTouchInputEnabled(this.config.isFlagEnabled(Pe.TouchInput)),this.pixelStreaming.dispatchEvent(new pe),this.streamController.audioElement.srcObject){const A=this.config.isFlagEnabled(Pe.StartVideoMuted);this.streamController.audioElement.muted=A,A?this.playVideo():this.streamController.audioElement.play().then((()=>{this.playVideo()})).catch((A=>{bA.Log(bA.GetStackTrace(),A),bA.Log(bA.GetStackTrace(),"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay."),this.pixelStreaming.dispatchEvent(new Ce({reason:A}))}))}else this.playVideo();this.shouldShowPlayOverlay=!1,this.freezeFrameController.showFreezeFrame()}else bA.Warning(bA.GetStackTrace(),"Cannot play stream, the video element has no srcObject to play.")}playVideo(){this.videoPlayer.play().catch((A=>{this.streamController.audioElement.srcObject&&this.streamController.audioElement.pause(),bA.Log(bA.GetStackTrace(),A),bA.Log(bA.GetStackTrace(),"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay."),this.pixelStreaming.dispatchEvent(new Ce({reason:A}))}))}autoPlayVideoOrSetUpPlayOverlay(){this.config.isFlagEnabled(Pe.AutoPlayVideo)&&this.playStream(),this.resizePlayerStyle()}connectToSignallingServer(){this.locallyClosed=!1,this.shouldReconnect=!0,this.disconnectMessage=null;const A=this.signallingUrlBuilder();this.webSocketController.connect(A)}startSession(A){if(this.peerConfig=A,this.config.isFlagEnabled(Pe.ForceTURN)&&!this.checkTurnServerAvailability(A))return bA.Info(bA.GetStackTrace(),"No turn server was found in the Peer Connection Options. TURN cannot be forced, closing connection. Please use STUN instead"),void this.closeSignalingServer("TURN cannot be forced, closing connection. Please use STUN instead.");this.peerConnectionController=new at(this.peerConfig,this.config,this.preferredCodec),this.peerConnectionController.onVideoStats=A=>this.handleVideoStats(A),this.peerConnectionController.onSendWebRTCOffer=A=>this.handleSendWebRTCOffer(A),this.peerConnectionController.onSendWebRTCAnswer=A=>this.handleSendWebRTCAnswer(A),this.peerConnectionController.onPeerIceCandidate=A=>this.handleSendIceCandidate(A),this.peerConnectionController.onDataChannel=A=>this.handleDataChannel(A),this.peerConnectionController.showTextOverlayConnecting=()=>this.pixelStreaming._onWebRtcConnecting(),this.peerConnectionController.showTextOverlaySetupFailure=()=>this.pixelStreaming._onWebRtcFailed();let e=!1;this.peerConnectionController.onIceConnectionStateChange=()=>{!e&&["connected","completed"].includes(this.peerConnectionController.peerConnection.iceConnectionState)&&(this.pixelStreaming._onWebRtcConnected(),e=!0)},this.peerConnectionController.onTrack=A=>this.streamController.handleOnTrack(A),this.config.isFlagEnabled(Pe.BrowserSendOffer)&&(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,"cirrus",this.datachannelOptions),this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A),this.peerConnectionController.createOffer(this.sdpConstraints,this.config))}checkTurnServerAvailability(A){if(!A.iceServers)return bA.Info(bA.GetStackTrace(),"A turn sever was not found"),!1;for(const e of A.iceServers)for(const A of e.urls)if(A.includes("turn"))return bA.Log(bA.GetStackTrace(),`A turn sever was found at ${A}`),!0;return bA.Info(bA.GetStackTrace(),"A turn sever was not found"),!1}handleOnConfigMessage(A){this.resizePlayerStyle(),this.startSession(A.peerConnectionOptions),this.webSocketController.onWebRtcAnswer=A=>this.handleWebRtcAnswer(A),this.webSocketController.onWebRtcOffer=A=>this.handleWebRtcOffer(A),this.webSocketController.onWebRtcPeerDataChannels=A=>this.handleWebRtcSFUPeerDatachannels(A),this.webSocketController.onIceCandidate=A=>this.handleIceCandidate(A)}handleStreamerListMessage(A){bA.Log(bA.GetStackTrace(),`Got streamer list ${A.ids}`,6);let e=null;var t=this.config.getSettingOption(Ve.StreamerId);t.selected.toString().trim()&&(e=t.selected);const n=[...A.ids];n.unshift(""),this.config.setOptionSettingOptions(Ve.StreamerId,n);let r=null;const s=this.config.isFlagEnabled(Pe.WaitForStreamer),i=this.config.getNumericSettingValue(Re.MaxReconnectAttempts),o=this.config.getNumericSettingValue(Re.StreamerAutoJoinInterval),a=this.config.useUrlParams,c=new URLSearchParams(window.location.search);a&&c.has(Ve.StreamerId)?e=c.get(Ve.StreamerId):this.subscribedStream&&(e=this.subscribedStream),e&&A.ids.includes(e)?r=e:e&&s||1!=A.ids.length||(r=A.ids[0]),r?(this.isReconnecting=!1,this.reconnectAttempt=0,this.config.setOptionSettingValue(Ve.StreamerId,r)):s&&(this.reconnectAttempt<i?(this.isReconnecting=!0,this.reconnectAttempt++,setTimeout((()=>{this.webSocketController.requestStreamerList()}),o)):(this.reconnectAttempt=0,this.isReconnecting=!1,this.shouldReconnect=!1)),this.pixelStreaming.dispatchEvent(new Qe({messageStreamerList:A,autoSelectedStreamerId:r,wantedStreamerId:e}))}handleStreamerIDChangedMessage(A){const e=A.newID;var t=this.config.getSettingOption(Ve.StreamerId),n=t.onChange;t.onChange=()=>{};for(var r=t.options,s=0;s<r.length;++s)if(r[s]==this.subscribedStream){r[s]=e;break}t.options=r,t.selected=e,t.onChange=n,this.subscribedStream=A.newID,this.pixelStreaming.dispatchEvent(new Fe({newID:e}))}handleWebRtcAnswer(A){bA.Log(bA.GetStackTrace(),`Got answer sdp ${A.sdp}`,6);const e={sdp:A.sdp,type:"answer"};this.peerConnectionController.receiveAnswer(e),this.handlePostWebrtcNegotiation()}handleWebRtcOffer(A){bA.Log(bA.GetStackTrace(),`Got offer sdp ${A.sdp}`,6),this.isUsingSFU=!!A.sfu&&A.sfu,this.isUsingSFU&&(this.peerConnectionController.preferredCodec="");const e={sdp:A.sdp,type:"offer"};this.peerConnectionController.receiveOffer(e,this.config),this.handlePostWebrtcNegotiation()}handleWebRtcSFUPeerDatachannels(A){const e={ordered:!0,negotiated:!0,id:A.sendStreamId},t=A.sendStreamId!=A.recvStreamId;if(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,t?"send-datachannel":"datachannel",e),t){const e={ordered:!0,negotiated:!0,id:A.recvStreamId};this.recvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,"recv-datachannel",e),this.recvDataChannelController.handleOnOpen=()=>this.webSocketController.sendSFURecvDataChannelReady(),this.recvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}else this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}handlePostWebrtcNegotiation(){this.afkController.startAfkWarningTimer(),this.pixelStreaming._onWebRtcSdp(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.statsTimerHandle=window.setInterval((()=>this.getStats()),1e3),this.setMouseInputEnabled(this.config.isFlagEnabled(Pe.MouseInput)),this.setKeyboardInputEnabled(this.config.isFlagEnabled(Pe.KeyboardInput)),this.setGamePadInputEnabled(this.config.isFlagEnabled(Pe.GamepadInput))}handleIceCandidate(A){bA.Log(bA.GetStackTrace(),"Web RTC Controller: onWebRtcIce",6);const e=new RTCIceCandidate(A);this.peerConnectionController.handleOnIce(e)}handleSendIceCandidate(A){bA.Log(bA.GetStackTrace(),"OnIceCandidate",6),A.candidate&&A.candidate.candidate&&this.webSocketController.sendIceCandidate(A.candidate)}handleDataChannel(A){bA.Log(bA.GetStackTrace(),"Data channel created for us by browser as we are a receiving peer.",6),this.sendrecvDataChannelController.dataChannel=A.channel,this.sendrecvDataChannelController.setupDataChannel(),this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}handleSendWebRTCOffer(A){bA.Log(bA.GetStackTrace(),"Sending the offer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(Re.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(Re.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcOffer(A,e)}handleSendWebRTCAnswer(A){bA.Log(bA.GetStackTrace(),"Sending the answer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(Re.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(Re.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcAnswer(A,e),this.isUsingSFU&&this.webSocketController.sendWebRtcDatachannelRequest()}setUpMouseAndFreezeFrame(){this.videoElementParentClientRect=this.videoPlayer.getVideoParentElement().getBoundingClientRect(),this.coordinateConverter.setupNormalizeAndQuantize(),this.freezeFrameController.freezeFrame.resize()}closeSignalingServer(A){var e;this.locallyClosed=!0,this.shouldReconnect=!1,this.disconnectMessage=A,null===(e=this.webSocketController)||void 0===e||e.close()}closePeerConnection(){var A;null===(A=this.peerConnectionController)||void 0===A||A.close()}close(){this.closeSignalingServer(""),this.closePeerConnection()}getStats(){this.peerConnectionController.generateStats()}sendLatencyTest(){this.latencyStartTime=Date.now(),this.streamMessageController.toStreamerHandlers.get("LatencyTest")([JSON.stringify({StartTime:this.latencyStartTime})])}sendDataChannelLatencyTest(A){this.streamMessageController.toStreamerHandlers.get("DataChannelLatencyTest")([JSON.stringify(A)])}sendEncoderMinQP(A){bA.Log(bA.GetStackTrace(),`MinQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MinQP":A})])}sendEncoderMaxQP(A){bA.Log(bA.GetStackTrace(),`MaxQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MaxQP":A})])}sendWebRTCMinBitrate(A){bA.Log(bA.GetStackTrace(),`WebRTC Min Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MinBitrate":A})])}sendWebRTCMaxBitrate(A){bA.Log(bA.GetStackTrace(),`WebRTC Max Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxBitrate":A})])}sendWebRTCFps(A){bA.Log(bA.GetStackTrace(),`WebRTC FPS=${A}`,6),null!=A&&(this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.Fps":A})]),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxFps":A})]))}sendShowFps(){bA.Log(bA.GetStackTrace(),"---- Sending show stat to UE ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"stat.fps":""})])}sendIframeRequest(){bA.Log(bA.GetStackTrace(),"---- Sending Request for an IFrame ----",6),this.streamMessageController.toStreamerHandlers.get("IFrameRequest")()}emitUIInteraction(A){bA.Log(bA.GetStackTrace(),"---- Sending custom UIInteraction message ----",6),this.streamMessageController.toStreamerHandlers.get("UIInteraction")([JSON.stringify(A)])}emitCommand(A){bA.Log(bA.GetStackTrace(),"---- Sending custom Command message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(A)])}emitConsoleCommand(A){bA.Log(bA.GetStackTrace(),"---- Sending custom Command:ConsoleCommand message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({ConsoleCommand:A})])}sendRequestQualityControlOwnership(){bA.Log(bA.GetStackTrace(),"---- Sending Request to Control Quality ----",6),this.toStreamerMessagesController.SendRequestQualityControl()}handleLatencyTestResult(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.latencyTest",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=new ht;Object.assign(t,JSON.parse(e)),t.processFields(),t.testStartTimeMs=this.latencyStartTime,t.browserReceiptTimeMs=Date.now(),t.latencyExcludingDecode=~~(t.browserReceiptTimeMs-t.testStartTimeMs),t.testDuration=~~(t.TransmissionTimeMs-t.ReceiptTimeMs),t.networkLatency=~~(t.latencyExcludingDecode-t.testDuration),t.frameDisplayDeltaTimeMs&&t.browserReceiptTimeMs&&(t.endToEndLatency=(t.frameDisplayDeltaTimeMs,t.networkLatency,~~+t.CaptureToSendMs)),this.pixelStreaming._onLatencyTestResult(t)}handleDataChannelLatencyTestResponse(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.dataChannelLatencyResponse",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.pixelStreaming._onDataChannelLatencyTestResponse(t)}handleInitialSettings(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.InitialSettings",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e),n=new ct;t.Encoder&&(n.EncoderSettings=t.Encoder),t.WebRTC&&(n.WebRTCSettings=t.WebRTC),t.PixelStreaming&&(n.PixelStreamingSettings=t.PixelStreaming),t.ConfigOptions&&void 0!==t.ConfigOptions.DefaultToHover&&this.config.setFlagEnabled(Pe.HoveringMouseMode,!!t.ConfigOptions.DefaultToHover),n.ueCompatible(),bA.Log(bA.GetStackTrace(),e,6),this.pixelStreaming._onInitialSettings(n)}handleVideoEncoderAvgQP(A){bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.VideoEncoderAvgQP",6);const e=Number(new TextDecoder("utf-16").decode(A.slice(1)));this.setVideoEncoderAvgQP(e)}handleVideoInitialized(){this.pixelStreaming._onVideoInitialized(),this.autoPlayVideoOrSetUpPlayOverlay(),this.resizePlayerStyle(),this.videoPlayer.updateVideoStreamSize()}onQualityControlOwnership(A){const e=new Uint8Array(A);bA.Log(bA.GetStackTrace(),"DataChannelReceiveMessageType.QualityControlOwnership",6),this.isQualityController=new Boolean(e[1]).valueOf(),bA.Log(bA.GetStackTrace(),`Received quality controller message, will control quality: ${this.isQualityController}`),this.pixelStreaming._onQualityControlOwnership(this.isQualityController)}handleVideoStats(A){this.pixelStreaming._onVideoStats(A)}resizePlayerStyle(){this.videoPlayer.resizePlayerStyle()}setPreferredCodec(A){this.preferredCodec=A,this.peerConnectionController&&(this.peerConnectionController.preferredCodec=A,this.peerConnectionController.updateCodecSelection=!1)}setVideoEncoderAvgQP(A){this.videoAvgQp=A,this.pixelStreaming._onVideoEncoderAvgQP(this.videoAvgQp)}setKeyboardInputEnabled(A){var e;null===(e=this.keyboardController)||void 0===e||e.unregisterKeyBoardEvents(),A&&(this.keyboardController=this.inputClassesFactory.registerKeyBoard(this.config))}setMouseInputEnabled(A){var e;if(null===(e=this.mouseController)||void 0===e||e.unregisterMouseEvents(),A){const A=this.config.isFlagEnabled(Pe.HoveringMouseMode)?Ne.HoveringMouse:Ne.LockedMouse;this.mouseController=this.inputClassesFactory.registerMouse(A)}}setTouchInputEnabled(A){var e;null===(e=this.touchController)||void 0===e||e.unregisterTouchEvents(),A&&(this.touchController=this.inputClassesFactory.registerTouch(this.config.isFlagEnabled(Pe.FakeMouseWithTouches),this.videoElementParentClientRect))}setGamePadInputEnabled(A){var e;null===(e=this.gamePadController)||void 0===e||e.unregisterGamePadEvents(),A&&(this.gamePadController=this.inputClassesFactory.registerGamePad(),this.gamePadController.onGamepadConnected=()=>{this.streamMessageController.toStreamerHandlers.get("GamepadConnected")()},this.gamePadController.onGamepadDisconnected=A=>{this.streamMessageController.toStreamerHandlers.get("GamepadDisconnected")([A])})}registerDataChannelEventEmitters(A){A.onOpen=(A,e)=>this.pixelStreaming.dispatchEvent(new ae({label:A,event:e})),A.onClose=(A,e)=>this.pixelStreaming.dispatchEvent(new ce({label:A,event:e})),A.onError=(A,e)=>this.pixelStreaming.dispatchEvent(new le({label:A,event:e}))}registerMessageHandler(A,e,t){e===it.FromStreamer&&void 0===t&&bA.Warning(bA.GetStackTrace(),`Unable to register handler for ${A} as no handler was passed`),this.streamMessageController.registerMessageHandler(e,A,(n=>void 0===t&&e===it.ToStreamer?this.sendMessageController.sendMessageToStreamer(A,n):t(n)))}}class Vt{constructor(A){this.toStreamerMessagesProvider=A,this.controllers=[]}static deepCopyGamepad(A){return JSON.parse(JSON.stringify({buttons:A.buttons.map((A=>JSON.parse(JSON.stringify({pressed:A.pressed,touched:A.touched,value:A.value})))),axes:A.axes}))}updateStatus(A,e,t){if(A.gamepad){const n=e.getPose(A.gripSpace,t);if(!n)return;let r=0;A.profiles.includes("htc-vive")?r=1:A.profiles.includes("oculus-touch")&&(r=2),this.toStreamerMessagesProvider.toStreamerHandlers.get("XRSystem")([r]);let s=2;switch(A.handedness){case"left":s=0;break;case"right":s=1}const i=n.transform.matrix,o=[];for(let A=0;A<16;A++)o[A]=new Float32Array([i[A]])[0];this.toStreamerMessagesProvider.toStreamerHandlers.get("XRControllerTransform")([o[0],o[4],o[8],o[12],o[1],o[5],o[9],o[13],o[2],o[6],o[10],o[14],o[3],o[7],o[11],o[15],s]),void 0===this.controllers[s]&&(this.controllers[s]={prevState:void 0,currentState:void 0,id:void 0},this.controllers[s].prevState=Vt.deepCopyGamepad(A.gamepad)),this.controllers[s].currentState=Vt.deepCopyGamepad(A.gamepad);const a=this.controllers[s],c=a.currentState,l=a.prevState;for(let A=0;A<c.buttons.length;A++){const e=c.buttons[A],t=l.buttons[A];if(e.pressed){let e=t.pressed?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonPressed")([s,A,e])}else t.pressed&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonReleased")([s,A,0]);if(e.touched){let e=t.touched?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonTouched")([s,A,e])}else t.touched&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonTouchReleased")([s,A,0])}for(let A=0;A<c.axes.length;A++){let e=c.axes[A];e!=l.axes[A]&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRAnalog")([s,A,e])}this.controllers[s].prevState=c}}}class Gt{constructor(A){this.xrViewerPose=null,this.videoTexture=null,this.prevVideoWidth=0,this.prevVideoHeight=0,this.leftView=null,this.rightView=null,this.xrSession=null,this.webRtcController=A,this.xrGamepadController=new Vt(this.webRtcController.streamMessageController),this.onSessionEnded=new EventTarget,this.onSessionStarted=new EventTarget,this.onFrame=new EventTarget}xrClicked(){if(this.xrSession)this.xrSession.end();else{if(!navigator.xr)return void bA.Error(bA.GetStackTrace(),"This browser does not support XR.");navigator.xr.requestSession("immersive-vr",{optionalFeatures:[]}).then((A=>{this.onXrSessionStarted(A)}))}}onXrSessionEnded(){bA.Log(bA.GetStackTrace(),"XR Session ended"),this.xrSession=null,this.onSessionEnded.dispatchEvent(new Event("xrSessionEnded"))}initGL(){if(this.gl)return;const A=document.createElement("canvas");this.gl=A.getContext("webgl2",{xrCompatible:!0}),this.gl.clearColor(0,0,0,1)}initShaders(){const A=this.gl.createShader(this.gl.VERTEX_SHADER);this.gl.shaderSource(A,"\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n\n // varyings\n varying vec2 v_texCoord;\n\n void main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n // pass the texCoord to the fragment shader\n // The GPU will interpolate this value between points.\n v_texCoord = a_texCoord;\n }\n "),this.gl.compileShader(A);const e=this.gl.createShader(this.gl.FRAGMENT_SHADER);this.gl.shaderSource(e,"\n precision mediump float;\n\n // our texture\n uniform sampler2D u_image;\n\n // the texCoords passed in from the vertex shader.\n varying vec2 v_texCoord;\n\n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n }\n "),this.gl.compileShader(e);const t=this.gl.createProgram();this.gl.attachShader(t,A),this.gl.attachShader(t,e),this.gl.linkProgram(t),this.gl.useProgram(t),this.positionLocation=this.gl.getAttribLocation(t,"a_position"),this.texcoordLocation=this.gl.getAttribLocation(t,"a_texCoord")}updateVideoTexture(){this.videoTexture||(this.videoTexture=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D,this.videoTexture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR));let A=this.webRtcController.videoPlayer.getVideoElement().videoHeight,e=this.webRtcController.videoPlayer.getVideoElement().videoWidth;this.prevVideoHeight!=A||this.prevVideoWidth!=e?this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,e,A,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()):this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,e,A,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()),this.prevVideoHeight=A,this.prevVideoWidth=e}initBuffers(){this.positionBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.positionBuffer),this.gl.enableVertexAttribArray(this.positionLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([-1,1,1,1,-1,-1,-1,-1,1,1,1,-1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.positionLocation,2,this.gl.FLOAT,!1,0,0),this.texcoordBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.texcoordBuffer),this.gl.enableVertexAttribArray(this.texcoordLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.texcoordLocation,2,this.gl.FLOAT,!1,0,0)}onXrSessionStarted(A){bA.Log(bA.GetStackTrace(),"XR Session started"),this.xrSession=A,this.xrSession.addEventListener("end",(()=>{this.onXrSessionEnded()})),this.initGL(),this.initShaders(),this.initBuffers(),A.requestReferenceSpace("local").then((e=>{if(this.xrRefSpace=e,this.xrSession.updateRenderState({baseLayer:new XRWebGLLayer(this.xrSession,this.gl)}),this.xrSession.supportedFrameRates)for(let e of this.xrSession.supportedFrameRates)90==e&&A.updateTargetFrameRate(90);this.xrSession.requestAnimationFrame(this.onXrFrame.bind(this))})),this.onSessionStarted.dispatchEvent(new Event("xrSessionStarted"))}sendXRDataToUE(){if(null==this.leftView||null==this.rightView)return;const A=this.leftView.transform.matrix,e=this.leftView.projectionMatrix,t=this.rightView.transform.matrix,n=this.rightView.projectionMatrix;this.webRtcController.streamMessageController.toStreamerHandlers.get("XREyeViews")([A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15],e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15],t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15],n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15]])}onXrFrame(A,e){if(this.xrViewerPose=e.getViewerPose(this.xrRefSpace),this.xrViewerPose){if(this.updateViews(),null==this.leftView||null==this.rightView)return;this.sendXRDataToUE(),this.updateVideoTexture(),this.render()}this.webRtcController.config.isFlagEnabled(Pe.XRControllerInput)&&this.xrSession.inputSources.forEach(((A,t,n)=>{this.xrGamepadController.updateStatus(A,e,this.xrRefSpace)}),this),this.xrSession.requestAnimationFrame(((A,e)=>this.onXrFrame(A,e))),this.onFrame.dispatchEvent(new Te({time:A,frame:e}))}updateViews(){if(this.xrViewerPose)for(const A of this.xrViewerPose.views)"left"===A.eye?this.leftView=A:"right"===A.eye&&(this.rightView=A)}render(){if(!this.gl)return;const A=this.xrSession.renderState.baseLayer;this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,A.framebuffer),this.gl.viewport(0,0,A.framebufferWidth,A.framebufferHeight),this.gl.drawArrays(this.gl.TRIANGLES,0,6)}static isSessionSupported(A){return"https:"!==location.protocol&&bA.Info(null,"WebXR requires https, if you want WebXR use https."),navigator.xr?navigator.xr.isSessionSupported(A):new Promise((()=>!1))}}class _t{constructor(A){this.editTextButton=null,this.hiddenInput=null,"ontouchstart"in document.documentElement&&this.createOnScreenKeyboardHelpers(A)}unquantizeAndDenormalizeUnsigned(A,e){return null}createOnScreenKeyboardHelpers(A){this.hiddenInput||(this.hiddenInput=document.createElement("input"),this.hiddenInput.id="hiddenInput",this.hiddenInput.maxLength=0,this.hiddenInput.style.position="absolute",this.hiddenInput.style.left="-10%",this.hiddenInput.style.width="0px",this.hiddenInput.style.opacity="0",A.appendChild(this.hiddenInput)),this.editTextButton||(this.editTextButton=document.createElement("button"),this.editTextButton.id="editTextButton",this.editTextButton.innerHTML="edit text",A.appendChild(this.editTextButton),this.editTextButton.style.display="none",this.editTextButton.addEventListener("touchend",(A=>{this.hiddenInput.focus(),A.preventDefault()})))}showOnScreenKeyboard(A){if(A.showOnScreenKeyboard){this.editTextButton.style.display="default";const e=this.unquantizeAndDenormalizeUnsigned(A.x,A.y);this.editTextButton.style.top=e.y.toString()+"px",this.editTextButton.style.left=(e.x-40).toString()+"px"}else this.editTextButton.style.display="none",this.hiddenInput.blur()}}class Nt{constructor(A){this.seq=A.Seq,this.playerSentTimestamp=Date.now(),this.requestFillerSize=A.Filler?A.Filler.length:0}update(A){this.playerReceivedTimestamp=Date.now(),this.streamerReceivedTimestamp=A.ReceivedTimestamp,this.streamerSentTimestamp=A.SentTimestamp,this.responseFillerSize=A.Filler?A.Filler.length:0}}class Wt{constructor(A,e){this.sink=A,this.callback=e,this.records=new Map,this.seq=0}start(A){return!this.isRunning()&&(this.startTime=Date.now(),this.records.clear(),this.interval=setInterval((()=>{Date.now()-this.startTime>=A.duration?this.stop():this.sendRequest(A.requestSize,A.responseSize)}).bind(this),Math.floor(1e3/A.rps)),!0)}stop(){this.interval&&(clearInterval(this.interval),this.interval=void 0,this.callback(this.produceResult()))}produceResult(){const A=new Map(this.records);return{records:A,dataChannelRtt:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.playerReceivedTimestamp-e.playerSentTimestamp)),0)/this.records.size),playerToStreamerTime:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.streamerReceivedTimestamp-e.playerSentTimestamp)),0)/this.records.size),streamerToPlayerTime:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.playerReceivedTimestamp-e.streamerSentTimestamp)),0)/this.records.size),exportLatencyAsCSV:()=>{let e="Timestamp;RTT;PlayerToStreamer;StreamerToPlayer;\n";return A.forEach((A=>{e+=A.playerSentTimestamp+";",e+=A.playerReceivedTimestamp-A.playerSentTimestamp+";",e+=A.streamerReceivedTimestamp-A.playerSentTimestamp+";",e+=A.playerReceivedTimestamp-A.streamerSentTimestamp+";",e+="\n"})),e}}}isRunning(){return!!this.interval}receive(A){if(!this.isRunning())return;if(!A)return void bA.Error(bA.GetStackTrace(),"Undefined response from server");let e=this.records.get(A.Seq);e&&e.update(A)}sendRequest(A,e){let t=this.createRequest(A,e),n=new Nt(t);this.records.set(n.seq,n),this.sink(t)}createRequest(A,e){return{Seq:this.seq++,FillResponseSize:e,Filler:A?"A".repeat(A):""}}}class Jt{constructor(A,e){this.allowConsoleCommands=!1,this.config=A,(null==e?void 0:e.videoElementParent)&&(this._videoElementParent=e.videoElementParent),this._eventEmitter=new xe,this.configureSettings(),this.setWebRtcPlayerController(new Ot(this.config,this)),this.onScreenKeyboardHelper=new _t(this.videoElementParent),this.onScreenKeyboardHelper.unquantizeAndDenormalizeUnsigned=(A,e)=>this._webRtcController.requestUnquantizedAndDenormalizeUnsigned(A,e),this._activateOnScreenKeyboard=A=>this.onScreenKeyboardHelper.showOnScreenKeyboard(A),this._webXrController=new Gt(this._webRtcController),this._setupWebRtcTCPRelayDetection=this._setupWebRtcTCPRelayDetection.bind(this),this._eventEmitter.addEventListener("webRtcConnected",(A=>{this._eventEmitter.addEventListener("statsReceived",this._setupWebRtcTCPRelayDetection)}))}get videoElementParent(){return this._videoElementParent||(this._videoElementParent=document.createElement("div"),this._videoElementParent.id="videoElementParent"),this._videoElementParent}configureSettings(){this.config._addOnSettingChangedListener(Pe.IsQualityController,(A=>{!0!==A||this._webRtcController.isQualityController||this._webRtcController.sendRequestQualityControlOwnership()})),this.config._addOnSettingChangedListener(Pe.AFKDetection,(A=>{this._webRtcController.setAfkEnabled(A)})),this.config._addOnSettingChangedListener(Pe.MatchViewportResolution,(()=>{this._webRtcController.videoPlayer.updateVideoStreamSize()})),this.config._addOnSettingChangedListener(Pe.HoveringMouseMode,(A=>{this.config.setFlagLabel(Pe.HoveringMouseMode,`Control Scheme: ${A?"Hovering":"Locked"} Mouse`),this._webRtcController.setMouseInputEnabled(this.config.isFlagEnabled(Pe.MouseInput))})),this.config._addOnSettingChangedListener(Pe.KeyboardInput,(A=>{this._webRtcController.setKeyboardInputEnabled(A)})),this.config._addOnSettingChangedListener(Pe.MouseInput,(A=>{this._webRtcController.setMouseInputEnabled(A)})),this.config._addOnSettingChangedListener(Pe.FakeMouseWithTouches,(A=>{this._webRtcController.setTouchInputEnabled(this.config.isFlagEnabled(Pe.TouchInput))})),this.config._addOnSettingChangedListener(Pe.TouchInput,(A=>{this._webRtcController.setTouchInputEnabled(A)})),this.config._addOnSettingChangedListener(Pe.GamepadInput,(A=>{this._webRtcController.setGamePadInputEnabled(A)})),this.config._addOnNumericSettingChangedListener(Re.MinQP,(A=>{bA.Log(bA.GetStackTrace(),"-------- Sending MinQP --------",7),this._webRtcController.sendEncoderMinQP(A),bA.Log(bA.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(Re.MaxQP,(A=>{bA.Log(bA.GetStackTrace(),"-------- Sending encoder settings --------",7),this._webRtcController.sendEncoderMaxQP(A),bA.Log(bA.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(Re.WebRTCMinBitrate,(A=>{bA.Log(bA.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMinBitrate(1e3*A),bA.Log(bA.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(Re.WebRTCMaxBitrate,(A=>{bA.Log(bA.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMaxBitrate(1e3*A),bA.Log(bA.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(Re.WebRTCFPS,(A=>{bA.Log(bA.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCFps(A),bA.Log(bA.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnOptionSettingChangedListener(Ve.PreferredCodec,(A=>{this._webRtcController&&this._webRtcController.setPreferredCodec(A)})),this.config._registerOnChangeEvents(this._eventEmitter)}_activateOnScreenKeyboard(A){throw new Error("Method not implemented.")}_onInputControlOwnership(A){this._inputController=A}setWebRtcPlayerController(A){this._webRtcController=A,this._webRtcController.setPreferredCodec(this.config.getSettingOption(Ve.PreferredCodec).selected),this._webRtcController.resizePlayerStyle(),this.checkForAutoConnect()}connect(){this._eventEmitter.dispatchEvent(new he),this._webRtcController.connectToSignallingServer()}reconnect(){this._eventEmitter.dispatchEvent(new Be),this._webRtcController.tryReconnect("Reconnecting...")}disconnect(){this._eventEmitter.dispatchEvent(new ge),this._webRtcController.close()}play(){this._onStreamLoading(),this._webRtcController.playStream()}checkForAutoConnect(){this.config.isFlagEnabled(Pe.AutoConnect)&&(this._onWebRtcAutoConnect(),this._webRtcController.connectToSignallingServer())}unmuteMicrophone(A=!1){if(!this.config.isFlagEnabled("UseMic"))return A?(this.config.setFlagEnabled("UseMic",!0),void this.reconnect()):void bA.Warning(bA.GetStackTrace(),"Trying to unmute mic, but PixelStreaming was initialized with no microphone track. Call with forceEnable == true to re-connect with a mic track.");this.setMicrophoneMuted(!1)}muteMicrophone(){this.config.isFlagEnabled("UseMic")?this.setMicrophoneMuted(!0):bA.Info(bA.GetStackTrace(),"Trying to mute mic, but PixelStreaming has no microphone track, so sending sound is already disabled.")}setMicrophoneMuted(A){var e,t,n,r;for(const s of null!==(r=null===(n=null===(t=null===(e=this._webRtcController)||void 0===e?void 0:e.peerConnectionController)||void 0===t?void 0:t.peerConnection)||void 0===n?void 0:n.getTransceivers())&&void 0!==r?r:[])rt.canTransceiverSendAudio(s)&&(s.sender.track.enabled=!A)}_onWebRtcAutoConnect(){this._eventEmitter.dispatchEvent(new ne)}_onWebRtcSdp(){this._eventEmitter.dispatchEvent(new te)}_onStreamLoading(){this._eventEmitter.dispatchEvent(new ue)}_onDisconnect(A,e){this._eventEmitter.dispatchEvent(new oe({eventString:A,allowClickToReconnect:e}))}_onWebRtcConnecting(){this._eventEmitter.dispatchEvent(new re)}_onWebRtcConnected(){this._eventEmitter.dispatchEvent(new se)}_onWebRtcFailed(){this._eventEmitter.dispatchEvent(new ie)}_onVideoInitialized(){this._eventEmitter.dispatchEvent(new de),this._videoStartTime=Date.now()}_onLatencyTestResult(A){this._eventEmitter.dispatchEvent(new Ue({latencyTimings:A}))}_onDataChannelLatencyTestResponse(A){this._eventEmitter.dispatchEvent(new Ee({response:A}))}_onVideoStats(A){this._videoStartTime&&void 0!==this._videoStartTime||(this._videoStartTime=Date.now()),A.handleSessionStatistics(this._videoStartTime,this._inputController,this._webRtcController.videoAvgQp),this._eventEmitter.dispatchEvent(new ve({aggregatedStats:A}))}_onVideoEncoderAvgQP(A){this._eventEmitter.dispatchEvent(new ee({avgQP:A}))}_onInitialSettings(A){var e;this._eventEmitter.dispatchEvent(new Se({settings:A})),A.PixelStreamingSettings&&(this.allowConsoleCommands=null!==(e=A.PixelStreamingSettings.AllowPixelStreamingCommands)&&void 0!==e&&e,!1===this.allowConsoleCommands&&bA.Info(bA.GetStackTrace(),"-AllowPixelStreamingCommands=false, sending arbitrary console commands from browser to UE is disabled."));const t=this.config.useUrlParams,n=new URLSearchParams(window.location.search);bA.Info(bA.GetStackTrace(),`using URL parameters ${t}`),A.EncoderSettings&&(this.config.setNumericSetting(Re.MinQP,t&&n.has(Re.MinQP)?Number.parseFloat(n.get(Re.MinQP)):A.EncoderSettings.MinQP),this.config.setNumericSetting(Re.MaxQP,t&&n.has(Re.MaxQP)?Number.parseFloat(n.get(Re.MaxQP)):A.EncoderSettings.MaxQP)),A.WebRTCSettings&&(this.config.setNumericSetting(Re.WebRTCMinBitrate,t&&n.has(Re.WebRTCMinBitrate)?Number.parseFloat(n.get(Re.WebRTCMinBitrate)):A.WebRTCSettings.MinBitrate/1e3),this.config.setNumericSetting(Re.WebRTCMaxBitrate,t&&n.has(Re.WebRTCMaxBitrate)?Number.parseFloat(n.get(Re.WebRTCMaxBitrate)):A.WebRTCSettings.MaxBitrate/1e3),this.config.setNumericSetting(Re.WebRTCFPS,t&&n.has(Re.WebRTCFPS)?Number.parseFloat(n.get(Re.WebRTCFPS)):A.WebRTCSettings.FPS))}_onQualityControlOwnership(A){this.config.setFlagEnabled(Pe.IsQualityController,A)}_onPlayerCount(A){this._eventEmitter.dispatchEvent(new Me({count:A}))}_setupWebRtcTCPRelayDetection(A){let e=A.data.aggregatedStats.getActiveCandidatePair();if(null!=e){let t=A.data.aggregatedStats.localCandidates.find((A=>A.id==e.localCandidateId),null);null!=t&&"relay"==t.candidateType&&"tcp"==t.relayProtocol&&this._eventEmitter.dispatchEvent(new Le),this._eventEmitter.removeEventListener("statsReceived",this._setupWebRtcTCPRelayDetection)}}requestLatencyTest(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendLatencyTest(),!0)}requestDataChannelLatencyTest(A){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._dataChannelLatencyTestController||(this._dataChannelLatencyTestController=new Wt(this._webRtcController.sendDataChannelLatencyTest.bind(this._webRtcController),(A=>{this._eventEmitter.dispatchEvent(new ye({result:A}))})),this.addEventListener("dataChannelLatencyTestResponse",(({data:{response:A}})=>{this._dataChannelLatencyTestController.receive(A)}))),this._dataChannelLatencyTestController.start(A))}requestShowFps(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendShowFps(),!0)}requestIframe(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendIframeRequest(),!0)}emitUIInteraction(A){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.emitUIInteraction(A),!0)}emitCommand(A){return!(!this._webRtcController.videoPlayer.isVideoReady()||!this.allowConsoleCommands&&"ConsoleCommand"in A||(this._webRtcController.emitCommand(A),0))}emitConsoleCommand(A){return!(!this.allowConsoleCommands||!this._webRtcController.videoPlayer.isVideoReady()||(this._webRtcController.emitConsoleCommand(A),0))}addResponseEventListener(A,e){this._webRtcController.responseController.addResponseEventListener(A,e)}removeResponseEventListener(A){this._webRtcController.responseController.removeResponseEventListener(A)}dispatchEvent(A){return this._eventEmitter.dispatchEvent(A)}addEventListener(A,e){this._eventEmitter.addEventListener(A,e)}removeEventListener(A,e){this._eventEmitter.removeEventListener(A,e)}toggleXR(){this.webXrController.xrClicked()}setSignallingUrlBuilder(A){this._webRtcController.signallingUrlBuilder=A}get webSocketController(){return this._webRtcController.webSocketController}get webXrController(){return this._webXrController}registerMessageHandler(A,e,t){e!==it.FromStreamer||void 0!==t?e===it.ToStreamer&&void 0===t?this._webRtcController.streamMessageController.registerMessageHandler(e,A,(e=>this._webRtcController.sendMessageController.sendMessageToStreamer(A,e))):this._webRtcController.streamMessageController.registerMessageHandler(e,A,(A=>t(A))):bA.Warning(bA.GetStackTrace(),`Unable to register an undefined handler for ${A}`)}get toStreamerHandlers(){return this._webRtcController.streamMessageController.toStreamerHandlers}isReconnecting(){return this._webRtcController.isReconnecting}}class Xt{}var zt=SA.De,Yt=SA.vU,jt=SA.Yd,$t=SA.sK,Zt=SA.g,qt=SA.x_;class An extends s.HasOwner{get esUeViewer(){return this.owner}get uri(){return this._uri}get inner(){return this._inner}constructor(A,e){super(A),this._uri=e,this._processResponseFn=A=>this.esUeViewer.processResponse(A),this._inner=new WebSocket(this._uri),this._innerInit=(()=>{this.inner.onmessage=A=>{if(this.isDestroyed())return;let e=new FileReader;e.onload=A=>{if(this.isDestroyed())return;let e=A.target.result,t=new Uint32Array(e),n=0;if(1===t[0]){n+=4;let A=t[n/4];n+=4;for(let r=0;r<A;r++){let A=t[n/4];n+=4;let r=new TextDecoder("utf-8").decode(e.slice(n,n+A));n+=A,this._processResponseFn(r)}}},e.readAsArrayBuffer(A.data)},this.inner.onopen=()=>{this.isDestroyed()||(console.warn("earthsdk message websocket server connected:",this.uri),console.log("%c[EarthSDK websocket open]","background: #a6ec99; color: black","open"),this.owner.dispatchEvent(new CustomEvent("esmsgwsopen",{detail:"websocket open"})))},this._inner.onclose=A=>{this.isDestroyed()||(console.log("%c[EarthSDK websocket close ]","background: red; color: black","error"),this.owner.dispatchEvent(new CustomEvent("error",{detail:"websocket close"})))},this._inner.onerror=A=>{this.isDestroyed()||(console.log("%c[EarthSDK websocket error ]","background: red; color: black","error"),this.owner.dispatchEvent(new CustomEvent("error",{detail:"websocket error"})))},this.d((()=>{!this.isDestroyed()&&this._inner.close()}))})()}sendInputData(A){const e=this.inner;if(e.readyState!==WebSocket.OPEN)return;const t=new Uint8Array(A)[0];if(t>=50&&t<=75){const t=new ArrayBuffer(A.byteLength+4);return new DataView(t).setUint32(0,A.byteLength,!0),new Uint8Array(t,4).set(new Uint8Array(A)),e.send(new DataView(t)),!0}return!1}emitDescriptorWithString(A,e){let t=(new TextEncoder).encode(e),n=new DataView(new ArrayBuffer(3+t.length)),r=0;n.setUint8(r,A),r++,n.setUint16(r,t.length,!0),r+=2;for(let A=0;A<t.length;A++)n.setUint8(r,t[A]),r+=1;try{this.sendInputData(n.buffer)}catch(A){console.error(`data.buffer.size: ${n.buffer.byteLength} 独立通道 sendInputData error: ${A}`,A)}}destroyImpl(){this._inner&&this._inner.close()}}window.g_emitDescriptor_maxBytes=3e4;let en=-1;jt.SetLoggerVerbosity(1);class tn extends s.Destroyable{get eventTarget(){return this._eventTarget}addEventListener(A,e,t){return this.eventTarget.addEventListener(A,e,t)}removeEventListener(A,e,t){return this.eventTarget.removeEventListener(A,e,t)}dispatchEvent(A){return this.eventTarget.dispatchEvent(A)}get container(){return this._container}get pixelStream(){return this._pixelStream}get esMsgWsWrapper(){return this._esMsgWsWrapper}get esWebSocketReady(){var A;return 1===(null===(A=this.esMsgWsWrapper)||void 0===A?void 0:A.inner.readyState)}constructor(A,e){super(),this._domOrDomId=A,this._options=e,this._eventTarget=new EventTarget,this.debug=!1,this.uiInteractionCallbacks=new Map,this._url=this._options.url,this._container=(()=>{const A="string"==typeof this._domOrDomId?document.getElementById(this._domOrDomId):this._domOrDomId;if(!A)throw new Error(`ESUEViewer container${this._domOrDomId} error!`);return A})(),this._pixelStream=(()=>{const A=new zt({initialSettings:{AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,[qt.SignallingServerUrl]:this._url}});A.setFlagEnabled(Yt.BrowserSendOffer,!1),A.setFlagEnabled(Yt.HoveringMouseMode,!0),A.setFlagEnabled(Yt.MatchViewportResolution,!0),A.setNumericSetting($t.MaxReconnectAttempts,0);const e=new Zt(A,{videoElementParent:this._options.createUI?void 0:this.container});return this.d((()=>{!this.isDestroyed()&&e.disconnect()})),e})(),this._esMsgWsWrapperInit=(()=>{this._options.esmsgWsUri&&(this._esMsgWsWrapper=this.disposeVar(new An(this,this._options.esmsgWsUri)))})();const t=this;if(t.esMsgWsWrapper){const A=this.webRtcController.sendMessageController.dataChannelSender.sendData;this.webRtcController.sendMessageController.dataChannelSender.constructor.prototype.sendData=function(e){t.esMsgWsWrapper?t.esMsgWsWrapper.sendInputData(e):A.call(this,e)}}this.pixelStream.addEventListener("videoInitialized",(()=>{console.log("%c[EarthSDK webrtc videoInitialized]","background: #a6ec99; color: black","videoInitialized"),this.dispatchEvent(new CustomEvent("videoinited",{detail:"videoinited"}))})),this.pixelStream.addEventListener("webRtcFailed",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webRtc webRtcFailed]","background: red; color: black","webRtcFailed"),this.dispatchEvent(new CustomEvent("error",{detail:"webRtcFailed"})),this.pixelStream.disconnect())})),this.pixelStream.addEventListener("webRtcDisconnected",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webRtc webRtcDisconnected]","background: red; color: black","webRtcDisconnected"),this.dispatchEvent(new CustomEvent("error",{detail:"webRtcDisconnected"})),this.pixelStream.disconnect())})),this.pixelStream.addEventListener("webRtcConnected",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webrtc webRtcConnected]","background: #a6ec99; color: black","webRtcConnected"),this.dispatchEvent(new CustomEvent("webRtcConnected",{detail:"webRtcConnected"})))})),this.pixelStream.addResponseEventListener("esueviewer",(A=>{this.processResponse(A)})),this.dispose((()=>{this._options.createUI||this.container.removeChild(this.webRtcController.videoPlayer.getVideoElement()),this.pixelStream.disconnect(),this.pixelStream.removeResponseEventListener("esueviewer")}))}resolveCallback(A){let e={};try{e=JSON.parse(A)}catch(A){return!1}let t=e.callid;if("string"!=typeof t)return!1;if(!this.uiInteractionCallbacks.has(t))return!1;let n=this.uiInteractionCallbacks.get(t);return"function"==typeof n&&(n(e),this.uiInteractionCallbacks.delete(t),!0)}processResponse(A){var e;if(null!==(e=this.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);if(e.ers=e.ers&&e.ers.filter((A=>"mouseMoveEvent"!==A.et)),!(e.ers&&e.ers.length>0||e.frs&&e.frs.length>0))return;console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}this.resolveCallback(A)||this.dispatchEvent(new CustomEvent("ueevent",{detail:A}))}emitUIInteraction(A,e){"function"==typeof e&&(A.callid=(0,s.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e)),this.pixelStream.emitUIInteraction(A)}get webRtcController(){return this.pixelStream._webRtcController}_pixelStreamEmitUIInteractionAsString(A){this.webRtcController.streamMessageController.toStreamerHandlers.get("UIInteraction")([A])}emitUIInteractionForBigData(A,e){"function"==typeof e&&(A.callid=(0,s.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e));const t=JSON.stringify(A),n=window.g_emitDescriptor_maxBytes,r=t.length,i=++en;if(this.esMsgWsWrapper){if(r<n)return void this.esMsgWsWrapper.emitDescriptorWithString(50,`${i}-0/1-`+t);const A=0|Math.ceil(r/n),e=[...new Array(A).keys()].map((A=>t.slice(A*n,(A+1)*n)));e.forEach(((e,t)=>{this.esMsgWsWrapper&&this.esMsgWsWrapper.emitDescriptorWithString(50,`${i}-${t}/${A}-`+e)}))}}emitCommand(A){this.pixelStream.emitCommand(A)}getVideoSize(){const A=this.webRtcController.videoPlayer.getVideoElement();return{width:A.videoWidth,height:A.videoHeight}}resizeUEVideo(A,e){let t={Resolution:{Width:A,Height:e}};console.log(`resizeUEVideo emitCommand ${A} ${e} begin`),this.emitCommand(t)}}class nn extends s.Destroyable{get webSocketReady(){return this._instance.esWebSocketReady}get event(){return this._event}get debug(){return this._instance.debug}set debug(A){this._instance.debug=A}constructor(A,e,t){super(),this._container=A,this._wsuri=e,this._esmsgWsUri=t,this._instance=this.disposeVar(new tn(this._container,{url:this._wsuri,esmsgWsUri:this._esmsgWsUri})),this._event=this.disposeVar(new s.Event),"addEventListener"in this._instance?["esmsgwsopen","error","videoinited","ueevent","webRtcConnected"].forEach((A=>{const e=e=>{this._event.emit(A,e.detail)};this._instance.addEventListener(A,e),this.dispose((()=>this._instance.removeEventListener(A,e)))})):(this.dispose(this._instance.errorEvent.disposableOn((A=>{this._event.emit("error",A.detail)}))),this.dispose(this._instance.webRtcConnectedEvent.disposableOn((A=>{this._event.emit("webRtcConnected",A.detail)}))),this.dispose(this._instance.videoinitedEvent.disposableOn((A=>{this._event.emit("videoinited",A.detail)}))),this.dispose(this._instance.ueevent.disposableOn((A=>{this._event.emit("ueevent",A.detail)}))))}emitUIInteractionForBigData(A,e){return new Promise(((t,n)=>{const r=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,r)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),n(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}class rn extends fA{get esueViewerWrapper(){return this._esueViewerWrapper}get errorEvent(){return this._errorEvent}get readyEvent(){return this._readyEvent}get esmsgwsopen(){return this._esmsgwsopen.value}set esmsgwsopen(A){this._esmsgwsopen.value=A}get esmsgwsopenChanged(){return this._esmsgwsopen.changed}get videoinited(){return this._videoinited.value}set videoinited(A){this._videoinited.value=A}get videoinitedChanged(){return this._videoinited.changed}get webRtcConnected(){return this._webRtcConnected.value}set webRtcConnected(A){this._webRtcConnected.value=A}get webRtcConnectedChanged(){return this._webRtcConnected.changed}resize(A,e){this.esueViewerWrapper.resize(A,e)}constructor(A,e,t,n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new s.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new s.Event),this._errorEvent=this.dv(new s.Event),this._readyEvent=this.dv(new s.Event),this._esmsgwsopen=this.dv((0,s.react)(!1)),this._videoinited=this.dv((0,s.react)(!1)),this._webRtcConnected=this.dv((0,s.react)(!1)),console.log("CSTMPSViewer init ! 以官方像素流 + 独立通信的模式启动!");const r=this._ueViewer;this._esueViewerWrapper=this.dv(new nn(A,e,t));const i=this._esueViewerWrapper;{const A=()=>{var A;return i.debug=null!==(A=r.debug)&&void 0!==A&&A};A(),this.d(r.debugChanged.don(A))}let o=!1;{const A=()=>{if(o)return;const A=i.webSocketReady;if(this.videoinited&&this.webRtcConnected&&A){console.log("%c[EarthSDK: esmsgWebSocket && videoinited && webRtcConnected]","background: #a6ec99; color: black");const A={eventType:"init",params:{}};i.emitUIInteractionForBigData(A),this._readyEvent.emit(),o=!0}};this.d(this.videoinitedChanged.don((()=>{A()}))),this.d(this.webRtcConnectedChanged.don((()=>{A()}))),this.d(this.esmsgwsopenChanged.don((()=>{A()})))}this.d(i.event.don(((A,e)=>{if("error"===A)this._errorEvent.emit(e);else if("ueevent"===A){const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}else"webRtcConnected"===A?this.webRtcConnected=!0:"videoinited"===A?this.videoinited=!0:"esmsgwsopen"===A&&(this.esmsgwsopen=!0)})));{let e,t;this.dv((0,s.createAnimateFrame)()).start((()=>{e===A.offsetWidth&&t===A.offsetHeight||(e=A.offsetWidth,t=A.offsetHeight,void 0===e||void 0===t||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${e} ${t}`):(i.resize(e,t),console.log(`resize: ${e} ${t}`)))}))}this.d(this._ueFuncResultWithIdsEvent.don((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A.resultCallback(e.r))}})));let a=0;const c=A=>{const e={n:a++,tt:Date.now(),t:"c",fs:A};this._waitingUeCalls.add(e),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd()),this._esueViewerWrapper.emitUIInteractionForBigData(e,(()=>{this._waitingUeCalls.delete(e)}))};this.dv((0,s.createInterval)()).start((()=>{if(!o)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A));for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0;{const e=window.g_emitDescriptor_maxBytes,t=A.map((A=>({f:A,s:JSON.stringify(A).length})));let n=t.length,s=0,i=0,o=[];do{do{const{f:A,s:n}=t[s];if(o.push(A),++s,i+n>e||o.length>=20)break}while(s<n);o.length>0&&(r.debug&&console.log(`传送${o.length}条消息...`),c([...o]),o.length=0,i=0)}while(s<n)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((e=>{const t=(0,s.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:e}])}))}disposableOnUeEvent(A,e){var t;null!==(t=this._ueViewer.debug)&&void 0!==t&&t&&console.log(`disposableOnUeEvent from UeCloudViewer, type:${A}`);const n=(0,s.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:n}});const r=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:n}})},i=this._ueEvent.don((t=>{t.et===A&&t.eid===n&&e(t)}));return()=>{i(),r()}}}function sn(A){let e="";const t=new Uint8Array(A),n=t.length;for(let A=0;A<n;A++)e+=String.fromCharCode(t[A]);return btoa(e)}window.g_emitDescriptor_maxBytes=3e4,console.log("全局可设置消息体最大字节, window.g_emitDescriptor_maxBytes 默认 30000 。");let on=-1;jt.SetLoggerVerbosity(1);class an extends s.Destroyable{get error(){return this._error}get connected(){return this._connected}get ueevent(){return this._ueevent}get container(){return"string"==typeof(A=this._container)?document.getElementById(A):A;var A}get pixelStream(){return this._pixelStream}get webSocketReady(){return 1===this.pixelStream.webSocketController.webSocket.readyState}processResponse(A){var e;if(null!==(e=this.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}this.resolveCallback(A)||this.ueevent.emit(A)}emitUIInteractionForBigData(A,e){var t;"function"==typeof e&&(A.callid=(0,s.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e));const n=JSON.stringify(A),r=null!==(t=window.g_emitDescriptor_maxBytes)&&void 0!==t?t:3e4,i=n.length,o=++on;if(i<r){const A={type:"earthsdk",time:(new Date).getTime(),params:`${o}-0/1-`+n};return void this.sendData(JSON.stringify(A))}const a=0|Math.ceil(i/r),c=[...new Array(a).keys()].map((A=>n.slice(A*r,(A+1)*r)));c.forEach(((A,e)=>{const t={type:"earthsdk",time:(new Date).getTime(),params:`${o}-${e}/${a}-`+A};this.sendData(JSON.stringify(t))}))}sendData(A){this.pixelStream.webSocketController.webSocket.send(A)}constructor(A,e){super(),this._container=A,this._option=e,this.debug=!1,this._error=this.dv(new s.Event),this._connected=this.dv(new s.Event),this._ueevent=this.dv(new s.Event),this.uiInteractionCallbacks=new Map;const t=new zt({initialSettings:{HoveringMouse:!0,AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,ss:this._option.ws},useUrlParams:!0});t.setFlagEnabled(Yt.BrowserSendOffer,!1),t.setFlagEnabled(Yt.HoveringMouseMode,!0),t.setFlagEnabled(Yt.MatchViewportResolution,!0),t.setNumericSetting($t.MaxReconnectAttempts,0),this._pixelStream=new Zt(t,{videoElementParent:this.container});{const A=this.pixelStream.webSocketController.webSocket,e=this._pixelStream._webRtcController.sendMessageController.dataChannelSender.sendData;this._pixelStream._webRtcController.sendMessageController.dataChannelSender.constructor.prototype.sendData=function(t){A?A.send((A=>{const e={type:"input",inputdata:sn(A)};return JSON.stringify(e)})(t)):e.call(this,t)}}{const A=A=>{const e=this._pixelStream._webRtcController.mouseController;setTimeout((()=>{const t=e.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY),n=e.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp");n&&n([A.button,t.x,t.y]),A.preventDefault()}))};this.container.addEventListener("dblclick",A),this.d((()=>{this.container.removeEventListener("dblclick",A)}))}["error","close","open"].forEach((A=>{const e=()=>{this.isDestroyed()||("open"===A?this.connected.emit("webSocketOpen"):"close"===A?this.error.emit("webSocketClose"):"error"===A&&this.error.emit("webSocketError"))};this.pixelStream.webSocketController.webSocket.addEventListener(A,e),this.d((()=>{this.pixelStream.webSocketController.webSocket.removeEventListener(A,e)}))})),["videoInitialized","webRtcConnected","webRtcDisconnected","webRtcFailed"].forEach((A=>{const e=()=>{this.isDestroyed()||("webRtcConnected"===A||"videoInitialized"===A?this.connected.emit(A):"webRtcDisconnected"!==A&&"webRtcFailed"!==A||(this.error.emit(A),this.pixelStream.disconnect()))};this.pixelStream.addEventListener(A,e),this.d((()=>{this.pixelStream.removeEventListener(A,e)}))})),this.pixelStream.addResponseEventListener("handle_responses",(A=>{this.processResponse(A)})),this.d((()=>{this.pixelStream.removeResponseEventListener("handle_responses")}))}resolveCallback(A){let e={};try{e=JSON.parse(A)}catch(A){return!1}let t=e.callid;if("string"!=typeof t)return!1;if(!this.uiInteractionCallbacks.has(t))return!1;let n=this.uiInteractionCallbacks.get(t);return"function"==typeof n&&(n(e),this.uiInteractionCallbacks.delete(t),!0)}getVideoSize(){const A=this._pixelStream._webRtcController.videoPlayer.getVideoElement();return{width:A.videoWidth,height:A.videoHeight}}emitCommand(A){this.pixelStream.emitCommand(A)}emitUIInteraction(){console.log("emitUIInteraction 像素流初始化"),this.pixelStream.emitUIInteraction("像素流初始化")}resizeUEVideo(A,e){const t={Resolution:{Width:A,Height:e}};console.log(`resizeUEVideo emitCommand ${A} ${e} begin`),this.emitCommand(t)}}class cn extends s.Destroyable{get instance(){return this._instance}get event(){return this._event}get debug(){return this._instance.debug}set debug(A){this._instance.debug=A}constructor(A,e,t){super(),this._container=A,this._wsuri=e,this._esmsgWsUri=t,this._event=this.dv(new s.Event),this._instance=this.dv(new an(this._container,{ws:this._wsuri})),this.d(this._instance.connected.don((A=>{this._event.emit(A,A),console.log(`%c[EarthSDK] ${A}`,"background: #a6ec99; color: black")}))),this.d(this._instance.error.don((A=>{this._event.emit("errorEvent",A),console.log(`%c[EarthSDK] ${A}`,"background: red; color: black")}))),this.d(this._instance.ueevent.don((A=>{this._event.emit("ueevent",A)})))}emitUIInteractionForBigData(A,e){return new Promise(((t,n)=>{const r=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,r)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),n(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}class ln extends fA{get videoInitialized(){return this._videoInitialized.value}get webRtcConnected(){return this._webRtcConnected.value}get webSocketOpen(){return this._webSocketOpen.value}get ue5ViewerWrapper(){return this._ue5ViewerWrapper}get errorEvent(){return this._errorEvent}get readyEvent(){return this._readyEvent}resize(A,e){this.ue5ViewerWrapper.resize(A,e)}constructor(A,e,t,n){super(),this._ueViewer=n,this._videoInitialized=this.dv((0,s.react)(!1)),this._webRtcConnected=this.dv((0,s.react)(!1)),this._webSocketOpen=this.dv((0,s.react)(!1)),this._ueFuncResultWithIdsEvent=this.dv(new s.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new s.Event),this._errorEvent=this.dv(new s.Event),this._readyEvent=this.dv(new s.Event),console.log("INNPSViewer init ! 以内置信令服务器模式启动!");const r=this._ueViewer,i=this.dv(new cn(A,e,t));this._ue5ViewerWrapper=i;{const A=()=>{var A;return i.debug=null!==(A=r.debug)&&void 0!==A&&A};A(),this.d(r.debugChanged.don(A))}{let A=!1;const e=this.dv((0,s.createNextAnimateFrameEvent)(this._videoInitialized.changed,this._webRtcConnected.changed,this._webSocketOpen.changed));this.d(e.don((()=>{if(A)return;const e=this._ue5ViewerWrapper.instance.webSocketReady;if(this.videoInitialized&&this.webRtcConnected&&e){this._ue5ViewerWrapper.instance.emitUIInteraction(),this._readyEvent.emit(),A=!0,console.log("%c[EarthSDK videoInitialized && webRtcConnected && webSocketReady]","background: #a6ec99; color: black");const e={eventType:"init",params:{}};this._ue5ViewerWrapper.emitUIInteractionForBigData(e)}else console.warn("webSocketReady",e),A=!1})))}this.d(i.event.don(((A,e)=>{if("errorEvent"===A)this._errorEvent.emit(e);else if("videoInitialized"===A)this._videoInitialized.value=!0;else if("webRtcConnected"===A)this._webRtcConnected.value=!0;else if("webSocketOpen"===A)this._webSocketOpen.value=!0;else if("ueevent"===A){const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}})));{let e,t,n;this.dv((0,s.createAnimateFrame)()).start((()=>{e===A.offsetWidth&&t===A.offsetHeight&&n===r.resolutionScale||(e=A.offsetWidth,t=A.offsetHeight,void 0===e||void 0===t||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${e} ${t}`):(n=r.resolutionScale,i.resize(e/n,t/n)))}))}this.d(this._ueFuncResultWithIdsEvent.don((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A.resultCallback(e.r))}})));let o=0;const a=A=>{const e={n:o++,tt:Date.now(),t:"c",fs:A};this._waitingUeCalls.add(e),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd()),this._ue5ViewerWrapper.emitUIInteractionForBigData(e,(()=>{this._waitingUeCalls.delete(e)}))};this.dv((0,s.createInterval)()).start((()=>{if(!this._ue5ViewerWrapper.instance.webSocketReady)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A));for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0;{const e=window.g_emitDescriptor_maxBytes,t=A.map((A=>({f:A,s:JSON.stringify(A).length})));let n=t.length,s=0,i=0,o=[];do{do{const{f:A,s:n}=t[s];if(o.push(A),++s,i+n>e||o.length>=20)break}while(s<n);o.length>0&&(r.debug&&console.log(`传送${o.length}条消息...`),a([...o]),o.length=0,i=0)}while(s<n)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((e=>{const t=(0,s.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:e}])}))}disposableOnUeEvent(A,e){const t=(0,s.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.don((n=>{n.et===A&&n.eid===t&&e(n)}));return()=>{r(),n()}}}class dn extends s.Destroyable{get onRuntimeInitialized(){return this._onRuntimeInitialized}get vIframe(){return this._vIframe}constructor(A,e,t,n){super(),this._ueViewer=n,this._onRuntimeInitialized=this.dv(new s.Event),this._vIframe=null;const r=this._ueViewer;{const n=document.createElement("iframe");this._vIframe=n,n.style.cssText="width: 100%; height: 100%; margin: 0; padding: 0; border: none; outline: none;",A.appendChild(n),this.d((()=>{n&&A.removeChild(n)}));const i=s.ESSceneObject.getStrFromEnv(t+`/web/${e}.html`);n.src=i,n.onload=()=>{const A=n.contentWindow;A?(console.log("iwindow.Module",A.Module),A.Module.onRuntimeInitialized=()=>{this._onRuntimeInitialized.emit(),r.setStatus("Created"),r.setStatusLog("创建成功"),A.Module.UE4_resizeCanvas(),A.console.log("创建成功__________________________________________")}):console.error("iframeWindow is null")}}}}const un="undefined"!=typeof TextDecoder?new TextDecoder:void 0;class hn extends s.Destroyable{constructor(A,e,t){super();{const A=()=>{const A=u(e);e.setGlobalProperty(A)};A();const t=d(),n=[];t.forEach((A=>{const t=e[A+"Changed"];n.push(t)}));const r=this.dv((0,s.createNextAnimateFrameEvent)(...n));this.d(r.don(A))}this.d(e.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((t=>{const n=null===A.props[t]?void 0:A.props[t];e[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),e.useCustomInteraction=!1,this.dv(new s.ViewerCustomInteraction(e,A)),this.dv(new s.ObjResettingWithEvent(e.statusUpdateIntervalChanged,(A=>{var n;if(0===(null!==(n=e.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new s.Destroyable;return r.d(t.disposableOnUeEvent("statusUpdate",(A=>{e.statusUpdateEvent.emit(A)}))),r}))),this.dv(new s.ObjResettingWithEvent(e.propChangedListeningChanged,(()=>{var A;if(null!==(A=e.propChangedListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(A=>{e.propChanged.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.objectEventListeningChanged,(()=>{var A;if(null!==(A=e.objectEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(A=>{e.objectEvent.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.widgetEventListeningChanged,(()=>{var A;if(null!==(A=e.widgetEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(A=>{e.widgetEvent.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=e.speechRecognitionListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(A=>{e.speechRecognition.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.customMessageListeningChanged,(()=>{var A;if(null!==(A=e.customMessageListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(A=>{e.customMessage.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.editingEventListeningChanged,(()=>{var A;if(null!==(A=e.editingEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(A=>{e.editingEvent.emit(A)}))),n})))}}let gn=-1;class Bn extends fA{constructor(A,e,t="${earthsdk3-ue-h5-assets-script-dir}",n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new s.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Map,this._ueEvent=this.dv(new s.Event);const r=this._ueViewer,i=this.dv(new dn(A,e,t,r));let o=!1,a=null;this.d(i.onRuntimeInitialized.don((()=>{var A;if(o=!0,null===(A=null==i?void 0:i.vIframe)||void 0===A?void 0:A.contentWindow){{a=i.vIframe.contentWindow;const A=i.vIframe.contentWindow.document.getElementById("mainarea");A?this.dv(new hn(A,r,this)):console.error("h5Container is null")}a.UE_JSHTML5Communication?a.UE_JSHTML5Communication.UESendMessageToJS=A=>{try{const e=((A,e=0,t=NaN)=>{const n=e+t;let r=e;for(;A[r]&&!(r>=n);)++r;if(r-e>16&&A.buffer&&un)return un.decode(A.subarray(e,r));let s="";for(;e<r;){var i=A[e++];if(128&i){var o=63&A[e++];if(192!=(224&i)){var a=63&A[e++];if(224==(240&i)?i=(15&i)<<12|o<<6|a:(240!=(248&i)&&console.warn("Invalid UTF-8 leading byte encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),i=(7&i)<<18|o<<12|a<<6|63&A[e++]),i<65536)s+=String.fromCharCode(i);else{var c=i-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else s+=String.fromCharCode((31&i)<<6|o)}else s+=String.fromCharCode(i)}return s})(a.HEAPU8,A),t=JSON.parse(e);if(r.debug&&(console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(t,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()),"cr"===t.t){const A=t;if(A.frs&&this._ueFuncResultWithIdsEvent.emit(A.frs),A.ers)for(let e of A.ers)this._ueEvent.emit(e)}t.callid&&this._waitingUeCalls.has(t.callid)&&(this._waitingUeCalls.delete(t.callid),console.log(`waitingUeCalls.delete:${t.callid} end`))}catch(A){console.error("UE_JSHTML5Communication.UESendMessageToJS error:",A)}}:console.error("UE_JSHTML5Communication UESendMessageToJS not found")}else console.error("iframeWindow is null")}))),this.dispose(this._ueFuncResultWithIdsEvent.disposableOn((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A(e.r))}})));let c=0;this.dv((0,s.createInterval)()).start((()=>{var A;if(!o)return;if(!a)return;if(!a.UE_JSHTML5Communication||!a.UE_JSHTML5Communication.JSSendMessageToUE)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const e=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),t={n:c++,tt:Date.now(),t:"c",fs:e,callid:(0,s.createGuid)()};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.set(t.callid,t),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(t,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=JSON.stringify(t),i=null!==(A=window.g_emitDescriptor_maxBytes)&&void 0!==A?A:3e4,l=n.length,d=++gn;if(l<i){const A=`${d}-0/1-`+n;return void a.UE_JSHTML5Communication.JSSendMessageToUE(A)}const u=0|Math.ceil(l/i),h=[...new Array(u).keys()].map((A=>n.slice(A*i,(A+1)*i)));h.forEach(((A,e)=>{const t=`${d}-${e}/${u}-`+A;a.UE_JSHTML5Communication.JSSendMessageToUE(t)}))}),50)}processResponse(A){var e;if(null!==(e=this._ueViewer.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}}callUeFunc(A){return new Promise((e=>{const t=(0,s.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,e])}))}disposableOnUeEvent(A,e){const t=(0,s.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.disposableOn((n=>{var r;n.et===A&&n.eid===t&&(null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`callback, type:${A} eid:${t} ueEvent:${JSON.stringify(n)}`),e(n))}));return()=>{r(),n()}}}let wn=-1;class pn extends fA{constructor(A,e){super(),this._ueViewer=e,this._ueFuncResultWithIdsEvent=this.dv(new s.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new s.Event);const t=this._ueViewer;let n=!1;window.ue.es.oncommand(JSON.stringify({eventType:"init",params:{}})),n=!0,window.calljs=(A,e)=>{if(t.debug&&console.log(`calljs eventName:${A} eventDetailStr:${e}`),"ueevent"===A||"commanFinish"===A)try{const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}catch(A){console.error(A)}},this.dispose(this._ueFuncResultWithIdsEvent.disposableOn((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A(e.r))}})));let r=0;this.dv((0,s.createInterval)()).start((()=>{if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),e={n:r++,tt:Date.now(),t:"c",fs:A};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.add(e),t.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=++wn;window.ue.es.oncommand(`${n}-0/1-`+JSON.stringify(e)).then((()=>{this._waitingUeCalls.delete(e)}))}),50)}callUeFunc(A){return new Promise((e=>{const t=(0,s.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,e])}))}disposableOnUeEvent(A,e){const t=(0,s.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.disposableOn((n=>{var r;n.et===A&&n.eid===t&&(null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`callback, type:${A} eid:${t} ueEvent:${JSON.stringify(n)}`),e(n))}));return()=>{r(),n()}}}class Cn extends s.Destroyable{constructor(A,e){super();{const e=()=>{const e=u(A);A.setGlobalProperty(e)};e();const t=d(),n=[];t.forEach((e=>{const t=A[e+"Changed"];n.push(t)}));const r=this.dv((0,s.createNextAnimateFrameEvent)(...n));this.d(r.don(e))}this.d(A.propChanged.don((e=>{if(""===e.objId)try{Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),this.dv(new s.ObjResettingWithEvent(A.statusUpdateIntervalChanged,(t=>{var n;if(0===(null!==(n=A.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new s.Destroyable;return r.d(e.disposableOnUeEvent("statusUpdate",(e=>{A.statusUpdateEvent.emit(e)}))),r}))),this.dv(new s.ObjResettingWithEvent(A.propChangedListeningChanged,(()=>{var t;if(null!==(t=A.propChangedListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("propChanged",(e=>{A.propChanged.emit(e)}))),n}))),this.dv(new s.ObjResettingWithEvent(A.objectEventListeningChanged,(()=>{var t;if(null!==(t=A.objectEventListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("objectEvent",(e=>{A.objectEvent.emit(e)}))),n}))),this.dv(new s.ObjResettingWithEvent(A.widgetEventListeningChanged,(()=>{var t;if(null!==(t=A.widgetEventListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("widgetEvent",(e=>{A.widgetEvent.emit(e)}))),n}))),this.dv(new s.ObjResettingWithEvent(A.speechRecognitionListeningChanged,(()=>{var t;if(null!==(t=A.speechRecognitionListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("speechRecognition",(e=>{A.speechRecognition.emit(e)}))),n}))),this.dv(new s.ObjResettingWithEvent(A.customMessageListeningChanged,(()=>{var t;if(null!==(t=A.customMessageListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("customMessage",(e=>{A.customMessage.emit(e)}))),n}))),this.dv(new s.ObjResettingWithEvent(A.editingEventListeningChanged,(()=>{var t;if(null!==(t=A.editingEventListening)&&void 0!==t&&!t)return;const n=new s.Destroyable;return n.d(e.disposableOnUeEvent("editingEvent",(e=>{A.editingEvent.emit(e)}))),n})))}}class mn extends s.Destroyable{constructor(A,e,t){super();{const A=()=>{const A=u(e);e.setGlobalProperty(A)};A();const t=d(),n=[];t.forEach((A=>{const t=e[A+"Changed"];n.push(t)}));const r=this.dv((0,s.createNextAnimateFrameEvent)(...n));this.d(r.don(A))}this.d(e.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((t=>{const n=null===A.props[t]?void 0:A.props[t];e[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}})));const n=document.createElement("div");n.style.width="100%",n.style.height="100%",n.style.position="absolute",n.style.overflow="hidden",n.style.top="0",n.style.left="0",n.style.zIndex="0",n.style.backgroundColor="rgba(255,0,0,0)",n.setAttribute("masker","大屏顶层div,用于模拟鼠标事件和控制UE鼠标事件是否生效"),A.appendChild(n),this.d((()=>{n&&A&&A.removeChild(n)}));{const A=(A,e)=>{window.ue.esinput.setinterceptevent(e),A.preventDefault()},e=e=>{A(e,!1)},t=e=>{A(e,!0)},r=e=>{A(e,!1)};n.addEventListener("mouseenter",e),n.addEventListener("mouseleave",t),n.addEventListener("mousemove",r),this.d((()=>{n.removeEventListener("mouseenter",e),n.removeEventListener("mouseleave",t),n.removeEventListener("mousemove",r)}))}e.useCustomInteraction=!1,this.dv(new s.ViewerCustomInteraction(e,n)),this.dv(new s.ObjResettingWithEvent(e.statusUpdateIntervalChanged,(A=>{var n;if(0===(null!==(n=e.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new s.Destroyable;return r.d(t.disposableOnUeEvent("statusUpdate",(A=>{e.statusUpdateEvent.emit(A)}))),r}))),this.dv(new s.ObjResettingWithEvent(e.propChangedListeningChanged,(()=>{var A;if(null!==(A=e.propChangedListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(A=>{e.propChanged.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.objectEventListeningChanged,(()=>{var A;if(null!==(A=e.objectEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(A=>{e.objectEvent.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.widgetEventListeningChanged,(()=>{var A;if(null!==(A=e.widgetEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(A=>{e.widgetEvent.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=e.speechRecognitionListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(A=>{e.speechRecognition.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.customMessageListeningChanged,(()=>{var A;if(null!==(A=e.customMessageListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(A=>{e.customMessage.emit(A)}))),n}))),this.dv(new s.ObjResettingWithEvent(e.editingEventListeningChanged,(()=>{var A;if(null!==(A=e.editingEventListening)&&void 0!==A&&!A)return;const n=new s.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(A=>{e.editingEvent.emit(A)}))),n})))}}class fn extends s.Destroyable{constructor(A,e,t){super(),this._reconnectEvent=this.dv(new s.Event);const n=(A,e)=>A.hasOwnProperty(e);let r,i=0;if(this.d((()=>{r&&clearTimeout(r)})),window.ue&&window.ue.es)if(window.ue.esinput){t.setStatus("Creating"),console.log("存在(window.ue && window.ue.es && window.ue.esinput 需要适配新版ESWebView 鼠标穿透), 开始创建UeFalseCloudViewer..."),t.setStatusLog("开始创建本地视口...");const e=this.dv(new pn(A,t));this.d((()=>t.viewer=void 0)),t.viewer=e,t.setStatus("Created"),t.setStatusLog("本地视口创建成功!"),this.dv(new mn(A,t,e))}else t.setStatus("Error"),t.setStatusLog("请升级 ESWebView !");else if(n(e.options,"ws")||n(e.options,"uri")&&n(e.options,"app")){let o;t.setStatus("Creating"),t.setStatusLog("开始创建云渲染视口..."),this.d((()=>{t.setStatus("Raw"),t.setStatusLog(""),A&&o&&A.removeChild(o)&&(o=void 0)}));const a=this.dv((0,s.createProcessingFromAsyncFunc)((a=>function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){let c,l,d;if(t.viewer&&!t.viewer.isDestroyed()&&t.viewer.destroy(),t.viewer=void 0,o&&A.removeChild(o)&&(o=void 0),o=document.createElement("div"),o.setAttribute("earthsdk3-ue","earthsdk3-ue-videoContainer"),o.style.cssText="position:relative; height: 100%;width:100%;",A.appendChild(o),n(e.options,"ws")){const{ws:A,esmsg:t,uselnternalSignallingServer:n}=e.options;c=A,l=t,d=null!=n&&n}if(n(e.options,"uri")&&n(e.options,"app")){const{offsetWidth:A,offsetHeight:n}=o;let{uri:r,app:i,token:u}=e.options;r.endsWith("/")||(r+="/");const h=`/${i}/${null!=A?A:1920}/${null!=n?n:1080}`+(u?`?essstoken=${u}`:"");console.log(`请求信令服务器: ${r}instance${h}`);const g=yield a.promise(fetch(`${r}instance${h}`,{method:"GET"})),B=yield a.promise(g.json());if(B&&"ok"!==B.status)return t.setStatus("Error"),t.setStatusLog(`信令服务器请求失败 ${B.status}`),void this._reconnectEvent.emit(void 0);{console.log(`信令服务器请求成功! ${JSON.stringify(B,void 0," ")}`),yield(0,s.sleep)(5e3);const{server:A,esmsg:e,instanceId:n,useInternalSignallingServer:r}=B;if(!n)return t.setStatus("Error"),t.setStatusLog("检查信令服务器版本,返回数据错误! "),console.log("信令服务器返回数据错误!不包含instanceId!请升级到 ESSS V3.0+ 版本!"),void this._reconnectEvent.emit(void 0);c=A,l=e,d=null!=r&&r,t.esssResponse=B}}const u=this.dv(d?new ln(o,c,l,t):new rn(o,c,l,t));this.d((()=>t.viewer=void 0)),this.d(u.errorEvent.don((A=>{const e=`[${A}]:像素流连接错误!`;t.setStatus("Error"),t.setStatusLog(e),this._reconnectEvent.emit(u)}))),yield a.promise(new Promise((A=>this.d(u.readyEvent.donce(A))))),t.setStatus("Created"),t.setStatusLog("云渲染视口创建成功!"),i=0,r&&clearTimeout(r),r=void 0;const{offsetWidth:h,offsetHeight:g}=o;u.resize(h*window.devicePixelRatio,g*window.devicePixelRatio),t.viewer=u,this.d((()=>t.viewer=void 0)),this.dv(new Cn(t,u))})))));a.start(),this.d(this._reconnectEvent.don((A=>{void 0===r&&(A&&!A.isDestroyed()&&A.destroy(),t.viewer&&!t.viewer.isDestroyed()&&t.viewer.destroy(),t.viewer=void 0,t.autoReconnect&&(t.setStatus("Reconnecting"),t.setStatusLog("正在尝试重新连接..."),i=i+5e3>3e4?3e4:i+5e3,console.warn(`间隔:${i/1e3}s,正在尝试重新连接...`),r=window.setTimeout((()=>{a.restart()}),i)))}))),this.d(a.errorEvent.don((A=>{t.setStatus("Error"),t.setStatusLog("云渲染视口创建失败!"),console.warn("云渲染视口创建失败!",A),this._reconnectEvent.emit(void 0)})))}else if(n(e.options,"project")){const n=e,r=n.options.project,s=n.options.baseUrl;t.setStatus("Creating"),t.setStatusLog("下载编译中...");const i=this.dv(new Bn(A,r,s,t));t.viewer=i,this.d((()=>t.viewer=void 0))}else t.setStatus("Error"),t.setStatusLog("视口创建失败!"),console.warn("视口创建失败: 参数错误!")}}var vn,Qn=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class Fn extends s.ESViewer{get defaultProps(){return Fn.createDefaultProps()}set viewer(A){this._viewer.value=A}get viewer(){return this._viewer.value}get esssResponse(){return this._esssResponse}set esssResponse(A){this._esssResponse=A}get speechRecognition(){return this._speechRecognition}get propChanged(){return this._propChanged}get objectEvent(){return this._objectEvent}get widgetEvent(){return this._widgetEvent}get customMessage(){return this._customMessage}get statusUpdateEvent(){return this._statusUpdateEvent}uePositionToLonLatAlt(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield J(this.viewer,A);console.warn("UEPositionToLonLatAlt: viewer is undefined")}))}changeNavigationMode(A){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return void console.warn("ChangeNavigationMode: viewer is undefined");const e=yield R(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}resetWithCurrentCamera(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield U(this.viewer,A);console.warn("resetWithCurrentCamera: viewer is undefined")}))}getAllSocketNamesByActorTag(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield X(this.viewer,A);console.warn("GetAllSocketNamesByActorTag: viewer is undefined")}))}getBoundSphere(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield Y(this.viewer,A);console.warn("getBoundSphere: viewer is undefined")}))}getBoundSphereWithChildren(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield j(this.viewer,A);console.warn("getBoundSphereWithChildren: viewer is undefined")}))}getStrokeMaterialParamInfo(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield $(this.viewer,A);console.warn("GetStrokeMaterialParamInfo: viewer is undefined")}))}getFillMaterialParamInfo(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield Z(this.viewer,A);console.warn("getFillMaterialParamInfo: viewer is undefined")}))}getGlobalProperty(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield q(this.viewer,A);console.warn("getGlobalProperty: viewer is undefined")}))}getObjectByInfo(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield AA(this.viewer,A);console.warn("GetObjectByInfo: viewer is undefined")}))}defaultCameraFlyIn(A=1){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield m(this.viewer,A);console.warn("DefaultCameraFlyIn: viewer is undefined")}))}startVoice(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield f(this.viewer);console.warn("startVoice:viewer is undefined")}))}stopVoice(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield v(this.viewer);console.warn("startVoice:viewer is undefined")}))}mountPakFiles(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield Q(this.viewer,A);console.warn("mountPakFiles:viewer is undefined")}))}generateMemReport(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield F(this.viewer);console.warn("generateMemReport:viewer is undefined")}))}quit(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield K(this.viewer);console.warn("Quit: viewer is undefined")}))}bindActorByTag(A,e){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield eA(this.viewer,A,e);console.warn("BindActorByTag: viewer is undefined")}))}restoreOriginalScene(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield tA(this.viewer);console.warn("RestoreOriginalScene: viewer is undefined")}))}unBindActorByID(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield nA(this.viewer,A);console.warn("UnBindActorByID: viewer is undefined")}))}unBindActorByTag(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield rA(this.viewer,A);console.warn("UnBindActorByTag: viewer is undefined")}))}createActorByClass(A,e){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield sA(this.viewer,A,e);console.warn("CreateActorByClass: viewer is undefined")}))}bind3DTilesetByTag(A,e){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield iA(this.viewer,A,e);console.warn("Bind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetByTag(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield oA(this.viewer,A);console.warn("UnBind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetById(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield aA(this.viewer,A);console.warn("UnBind3DTilesetById: viewer is undefined")}))}bindImageryByTag(A,e,t){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield cA(this.viewer,A,e,t);console.warn("BindImageryByTag: viewer is undefined")}))}unBindImageryByTag(A,e){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield lA(this.viewer,A,e);console.warn("UnBindImageryByTag: viewer is undefined")}))}unBindImageryById(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield dA(this.viewer,A);console.warn("UnBindImageryById: viewer is undefined")}))}getIdByComponentNameAndHitItem(A,e,t){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield uA(this.viewer,A,e,t);console.warn("GetIdByComponentNameAndHitItem: viewer is undefined")}))}getCameraRelativeHeight(A="ECC_Visibility"){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield hA(this.viewer,A);console.warn("GetCameraRelativeHeight: viewer is undefined")}))}saveStringToFile(A,e,t){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield gA(this.viewer,A,e,t);console.warn("SaveStringToFile: viewer is undefined")}))}highlightActorByTag(A,e=!0){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield BA(this.viewer,A,e);console.warn("HighlightActorByTag: viewer is undefined")}))}sendCustomMessage(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield wA(this.viewer,A);console.warn("SendCustomMessage: viewer is undefined")}))}getStatus(){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield pA(this.viewer);console.warn("GetStatus:viewer is undefined")}))}pick(A,e,t){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;let n=A;if(A&&window.ue&&this.container){const[e,t]=A,{left:r,top:s}=this.container.getBoundingClientRect();n=[r+e,s+t]}return yield O(this.viewer,n,e,t)}))}pickPosition(A){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;let e=A;if(A&&window.ue&&this.container){const[t,n]=A,{left:r,top:s}=this.container.getBoundingClientRect();e=[r+t,s+n]}return yield V(this.viewer,e)}))}flyIn(A,e=[0,0,0],t=1){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const n=yield C(this.viewer,void 0,A,e,t);return n?(0===n.endType&&console.warn(`flyTo:flyTo is end! endType:${n.endType}`),1===n.endType&&console.warn(`flyTo:飞行中断! endType:${n.endType}`),n):void 0}))}flyTo(A,e){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const t=yield g(this.viewer,void 0,void 0,A,e);return t?(0===t.endType&&console.warn(`flyTo:flyTo is end! endType:${t.endType}`),1===t.endType&&console.warn(`flyTo:飞行中断! endType:${t.endType}`),t):void 0}))}flyToBoundingSphere(A,e,t=1){const n=[[A[0],A[1],0],[A[0],A[3],0],[A[2],A[3],0],[A[2],A[1],0]],r=(0,s.getGeoBoundingSphereFromPositions)(n);if(!r)return;const{center:i,radius:o}=r,a={distance:null!=e?e:o,heading:0,pitch:-90,flyDuration:t,hDelta:0,pDelta:0};this.flyTo(a,i)}getCurrentCameraInfo(){const{position:A,rotation:e}=this._statusInfo;return{position:A,rotation:e}}getLengthInPixel(){return this._statusInfo.length}changeToWalk(A,e=4.2){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const t={mode:"Walk",position:A,jumpZVelocity:e},n=yield R(this.viewer,t);return n&&!n.error&&(this._navigationMode.value=t.mode),n}))}changeToMap(){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const A={mode:"Map"},e=yield R(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}changeToRotateGlobe(A=38,e=1e7,t=60){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const n={mode:"RotateGlobe",latitude:A,height:e,cycleTime:t},r=yield R(this.viewer,n);return r&&!r.error&&(this._navigationMode.value=n.mode),r}))}changeToLine(A,e=10,t=10,n=!0,r=10,s="auto"){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const i={mode:"Line",geoLineStringId:A,speed:e,heightOffset:t,loop:n,turnRateDPS:r,lineMode:s},o=yield R(this.viewer,i);return o&&!o.error&&(this._navigationMode.value=i.mode),o}))}changeToUserDefined(A){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const e={mode:"UserDefined",userDefinedPawn:A},t=yield R(this.viewer,e);return t&&!t.error&&(this._navigationMode.value=e.mode),t}))}changeToRotatePoint(A,e=5e4,t=60,n=0,r=-30){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"RotatePoint",position:A,distance:e,orbitPeriod:t,heading:n,pitch:r},i=yield R(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}changeToFollow(A,e=0,t=0,n=-30,r=!0){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"Follow",objectId:A,distance:e,heading:t,pitch:n,relativeRotation:r},i=yield R(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}getFPS(){return this._statusInfo.fps}getVersion(){var A;return Qn(this,void 0,void 0,(function*(){const e=null!==(A=window.g_XE3CopyRights)&&void 0!==A?A:{};if(!this.viewer)return e;const t=yield z(this.viewer);return e.esforue=t,e}))}getHeightByLonLat(A,e,t="ECC_Visibility"){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return null;const n=yield G(this.viewer,A,e,t);return n&&void 0!==n.height?n.height:null}))}getHeightsByLonLats(A,e="ECC_Visibility"){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield _(this.viewer,A,e)}))}capture(A=64,e=64){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield N(this.viewer,A,e)}))}lonLatAltToScreenPosition(A){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=yield W(this.viewer,A);return e&&[e.Y,e.Y]}))}setGlobalProperty(A){return Qn(this,void 0,void 0,(function*(){if(this.viewer)return yield k(this.viewer,A)}))}startEditing(A,e,t=!0){return Qn(this,void 0,void 0,(function*(){const n=A.combinationClass?A.getMainClass():A;if(n&&this.viewer)return yield CA(this.viewer,n.id,e,t)}))}moveObjects(A){return Qn(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=[];for(let t=0;t<A.length;t++){const n=A[t],r=n.combinationClass?n.getMainClass():n;r&&e.push(r.id)}return 0!==e.length?yield mA(this.viewer,e):void 0}))}constructor(A){if(super(A),this._viewer=this.dv((0,s.react)(void 0)),this._speechRecognition=this.dv(new s.Event),this._propChanged=this.dv(new s.Event),this._objectEvent=this.dv(new s.Event),this._widgetEvent=this.dv(new s.Event),this._customMessage=this.dv(new s.Event),this._statusUpdateEvent=this.dv(new s.Event),this._statusUpdateEventdon=(()=>{this.d(this.statusUpdateEvent.don((A=>{var e,t,n,r;this._statusInfo.fps=null!==(e=A.FPS)&&void 0!==e?e:0,this._statusInfo.length=null!==(t=A.length)&&void 0!==t?t:0,this._statusInfo.position=null!==(n=A.position)&&void 0!==n?n:[0,0,0],this._statusInfo.rotation=null!==(r=A.rotation)&&void 0!==r?r:[0,0,0]})))})(),"ESUeViewer"!==A.type)throw new Error("option.type must be ESUeViewer");const e=A;this.d(this._viewer.changed.don((()=>{this.viewerChanged.emit(this.viewer)}))),this.dv(new s.ObjResettingWithEvent(this.subContainerChanged,(()=>{if(this.setStatus("Raw"),this.setStatusLog(""),this.subContainer)return new fn(this.subContainer,e,this)})))}getProperties(){return[...super.getProperties()]}}vn=Fn,Fn.type=vn.register("ESUeViewer",vn),Fn.defaults=Object.assign({},l),function(A){A.createDefaultProps=()=>Object.assign(Object.assign(Object.assign({},s.ESViewer.createDefaultProps()),c()),{resolutionScale:1,autoReconnect:!1,propChangedListening:void 0,objectEventListening:void 0,widgetEventListening:void 0,speechRecognitionListening:void 0,customMessageListening:void 0})}(Fn||(Fn={})),(0,s.extendClassProps)(Fn.prototype,Fn.createDefaultProps);class Un extends s.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(t&&(A.combinationClass||this.d(this.createdEvent.don((()=>{const n=this.constructor.propValFuncs,r=A.defaultProps,i=Object.keys(r).filter((A=>null!==n[A]));i.push(...this.constructor.forceUeUpdateProps);const o=A.constructor.defaults,a={val:{}},c=[];for(let t of i){const r=A[t+"Changed"];c.push(r);const s=n[t];if(null===s)throw console.error("vf === null error"),new Error("vf === null error");const i=()=>{var n;const r=null!==(n=A[t])&&void 0!==n?n:o[t];let i=s?s(r,this,e,A):r;void 0!==i?a.val[t]=i:console.warn(`UE自动更新的属性,不应该为undefined! 属性名:${t} 对象名:${A.name} 对象id: ${A.id}`)};i(),this.d(r.don(i))}const l=()=>{t.callUeFunc({f:"update",p:Object.assign({id:A.id},a.val)}),a.val={}},d=this.dv((0,s.createNextAnimateFrameEvent)(...c));this.d(d.don(l)),this.d(A.createdEvent.don(l)),this.d(A.flushEvent.don((()=>d.flush())))}))),!A.combinationClass)){let e=!1;this.d((()=>{e&&B(t,A.id)})),t.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}).then((()=>{e=!0,A.createdEvent.emit()})).catch((A=>console.error(A)))}}}Un.propValFuncs={ref:null,devTags:null,extras:null,execOnceFuncStr:null,updateFuncStr:null,toDestroyFuncStr:null},Un.forceUeUpdateProps=[];class En extends Un{constructor(A,e){super(A,e);const t=e.viewer;t&&(this.d(A.flyToEvent.don((e=>{g(t,A.id,e)}))),this.d(A.flyInEvent.don((e=>{var n,r;C(t,A.id,null===(n=A.flyInParam)||void 0===n?void 0:n.position,null===(r=A.flyInParam)||void 0===r?void 0:r.rotation,null!=e?e:1)}))),this.d(A.calcFlyToParamEvent.don((()=>{w(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))),this.d(e.propChanged.don((e=>{e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}))))}}var yn=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class Sn extends En{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return;const n=()=>{A.editing||t.callUeFunc({f:"update",p:{id:A.id,position:A.position,rotation:A.rotation}})},r=this.dv((0,s.createNextAnimateFrameEvent)(A.positionChanged,A.rotationChanged,A.editingChanged));this.d(r.don((()=>{setTimeout(n,0)}))),this.d(A.smoothMoveEvent.don(((e,n)=>{M(t,A.id,e,n)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,n,r)=>{E(t,A.id,e,n,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,n,r,s)=>{y(t,A.id,e,n,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,n,r,s,i)=>{S(t,A.id,e,n,r,s,i)}))),this.d(A.smoothMoveKeepPitchEvent.don(((e,n)=>yn(this,void 0,void 0,(function*(){const r=yield t.callUeFunc({f:"SmoothMoveKeepPitch",p:{id:A.id,Destination:e,Time:n}});r.error&&console.error("SmoothMoveKeepPitch:",r.error)}))))),this.d(A.automaticLandingEvent.don((t=>{const n=[A.position[0],A.position[1]];e.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((e=>{null!==e&&(A.position=[...n,e],A.collision=t)}))})));const i=(A,e,t,n)=>yn(this,void 0,void 0,(function*(){const{viewer:r}=A;if(!r)return void console.error("SmoothMoveRelatively: ueViewer.viewer is undefined");const s=yield r.callUeFunc({f:"SmoothMoveRelatively",p:{id:e,RelativePosition:t,Time:n}});return s.error&&console.error("SmoothMoveRelatively:",s.error),s}));this.d(A.smoothMoveRelativelyEvent.don(((t,n)=>{i(e,A.id,t,n)})));const o=(A,e,t,n,r)=>yn(this,void 0,void 0,(function*(){const{viewer:s}=A;if(!s)return void console.error("SmoothMoveRelativelyWithRotation: ueViewer.viewer is undefined");const i=yield s.callUeFunc({f:"SmoothMoveRelativelyWithRotation",p:{id:e,RelativePosition:t,NewRotation:n,Time:r}});return i.error&&console.error("SmoothMoveRelativelyWithRotation:",i.error),i}));this.d(A.smoothMoveRelativelyWithRotationEvent.don(((t,n,r)=>{o(e,A.id,t,n,r)})))}}Sn.forceUeUpdateProps=[...En.forceUeUpdateProps,"editing"],Sn.propValFuncs=Object.assign({},En.propValFuncs);class bn extends En{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return;const n=()=>{A.editing||t.callUeFunc({f:"update",p:{id:A.id,points:A.points}})},r=this.dv((0,s.createNextAnimateFrameEvent)(A.pointsChanged,A.editingChanged));this.d(r.don((()=>{setTimeout(n,0)})))}}bn.forceUeUpdateProps=[...En.forceUeUpdateProps,"editing"],bn.propValFuncs=Object.assign(Object.assign({},En.propValFuncs),{pointStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},strokeStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},fillStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})}});class In extends Sn{constructor(A,e){super(A,e),e.viewer&&this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,add:n}=e;A.widgetEvent.emit({type:t,add:n})})))}}class Hn extends Sn{constructor(A,e){super(A,e),e.viewer}}Hn.propValFuncs=Object.assign(Object.assign({},Sn.propValFuncs),{pointStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},strokeStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},fillStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})}});class Tn extends Hn{constructor(A,e){super(A,e),e.viewer}}var Mn,Ln=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const xn=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是3dTileset,无法绑定";default:return"未知错误"}};class Pn extends s.EngineObject{constructor(A,e){super(A,e),this._styleColor=this.dv((0,s.react)([])),this._styleVisable=this.dv((0,s.react)([]));const t=e.viewer;if(!t)return void console.warn("UeES3DTileset: viewer is undefined!");let n,r;const i=()=>Ln(this,void 0,void 0,(function*(){var e,i;(n||r)&&(yield t.callUeFunc({f:"update",p:{id:A.id,url:A.url,show:A.show,collision:A.collision,allowPicking:A.allowPicking,flyToParam:null!==(e=A.flyToParam)&&void 0!==e?e:s.ESVisualObject.defaults.flyToParam,flyInParam:null!==(i=A.flyInParam)&&void 0!==i?i:s.ESVisualObject.defaults.flyInParam,highlightID:A.highlightID,highlightColor:A.highlightColor,highlight:A.highlight,materialMode:A.materialMode,maximumScreenSpaceError:A.maximumScreenSpaceError,colorMode:Reflect.has(A,"colorMode")?A.colorMode:void 0,offset:A.offset,editing:A.editing,rotation:A.rotation,cacheBytes:A.cacheBytes,colorBlendMode:A.colorBlendMode}}))})),o=this.dv((0,s.createNextAnimateFrameEvent)(A.urlChanged,A.showChanged,A.flyToParamChanged,A.flyInParamChanged,A.collisionChanged,A.allowPickingChanged,A.highlightIDChanged,A.highlightColorChanged,A.highlightChanged,A.materialModeChanged,A.maximumScreenSpaceErrorChanged,A.offsetChanged,A.editingChanged,A.rotationChanged,A.cacheBytesChanged,A.colorBlendModeChanged));i(),this.d(o.don(i)),Reflect.has(A,"colorMode")&&this.d(A.colorModeChanged.don((()=>i())));const a=this.dv((0,s.react)(void 0));{const e=this.dv((0,s.createNextAnimateFrameEvent)(A.actorTagChanged,A.urlChanged)),t=()=>{A.actorTag?a.value={type:"ActorTag",actorTag:A.actorTag}:A.url?a.value={type:"CreatedUrl",url:A.url}:a.value=void 0,A.editing=!1};t(),this.d(e.don(t))}const c=()=>Ln(this,void 0,void 0,(function*(){const{id:s}=A;if(void 0!==n){n=void 0;try{const A=yield e.unBind3DTilesetById(s);if(!A)return;if(""!==A.error)return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A.error}`)}catch(A){return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A}`)}}if(void 0!==r){r=void 0;try{const A=yield t.callUeFunc({f:"destroy",p:{id:s}});if(!A)return;if(""!==A.error)return void console.warn(`UeES3DTileset Destroy: ${A.error}`)}catch(A){return void console.warn(`UeES3DTileset Destroy: ${A}`)}}}));this.d((()=>{c()}));{const o=this.dv((0,s.createProcessingFromAsyncFunc)((s=>Ln(this,void 0,void 0,(function*(){if(void 0!==a.value){if("ActorTag"===a.value.type){const{actorTag:t}=a.value;if(n!==t&&(yield s.promise(c())),void 0!==n)return;if(void 0===t)return;try{n=t;const r=yield s.promise(e.bind3DTilesetByTag(A.id,t));if(!r)return;if(""!==r.error)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${r.error}`);if(0===r.re.type);else{if(1!==r.re.type)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${xn(r.re.type)}`);console.warn(`UeES3DTileset Bind3DTilesetByTag: ${xn(r.re.type)}`)}}catch(A){return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${A}`)}}else if("CreatedUrl"===a.value.type){const{url:e}=a.value;if(e!==r&&(yield c()),void 0!==r)return;if(void 0===e)return;try{r=e;const n=yield s.promise(t.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}));if(!n)return;if(""!==n.error)return void console.warn(`UeES3DTileset create: ${n.error}`)}catch(A){return void console.warn(`UeES3DTileset create: ${A}`)}}yield s.promise(i())}else yield s.promise(c())}))))),l=()=>Ln(this,void 0,void 0,(function*(){o.restart()}));l(),this.d(a.changed.don(l))}this.d(A.refreshTilesetEvent.don((()=>{p(t,A.id)}))),this.d(A.flyToEvent.don(((s,i)=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;const o=yield g(t,A.id,s);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),A.flyOverEvent.emit(i,a,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{(n||r)&&w(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:s,rotation:i}=t;A.flyInParam={position:s,rotation:i,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{(n||r)&&e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}))),this.d(e.objectEvent.don((e=>{(n||r)&&e.id===A.id&&"3DTilesetReady"===e.type&&A.tilesetReady.emit(e.p)})));{const e=(e,s)=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;const i=yield t.callUeFunc({f:"SetFeatureColor",p:{id:A.id,featureName:e,json:s}});i&&(""===i.error||console.warn(`UeES3DTileset SetFeatureColor: ${i.error}`))})),s=(e,s)=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;const i=yield t.callUeFunc({f:"SetFeatureVisable",p:{id:A.id,featureName:e,json:s}});i&&(""===i.error||console.warn(`UeES3DTileset SetFeatureVisable: ${i.error}`))})),i=()=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;const e=yield t.callUeFunc({f:"ResetFeatureStyle",p:{id:A.id}});e&&(""===e.error||console.warn(`UeES3DTileset ResetFeatureStyle: ${e.error}`))})),o=e=>Ln(this,void 0,void 0,(function*(){if(!n&&!r)return;const s=yield t.callUeFunc({f:"SetFeatureStyle",p:{id:A.id,json:e}});s&&(""===s.error||console.warn(`UeES3DTileset SetFeatureStyle: ${s.error}`))}));this.d(A.setFeatureColorEvent.don(((A,t)=>{const n=[...this.styleColor,...t];this.styleColor=[...n],e(A,n)}))),this.d(A.setFeatureVisableEvent.don(((A,e)=>{const t=[...this.styleVisable,...e];this.styleVisable=[...t],s(A,t)}))),this.d(A.resetFeatureStyleEvent.don((()=>{i(),this.styleColor=[],this.styleVisable=[]}))),this.d(A.setFeatureStyleEvent.don((A=>{o(A)})))}{const e=()=>Ln(this,void 0,void 0,(function*(){if(n||r)try{const e=yield t.callUeFunc({f:"GetFeatureTable",p:{id:A.id}});""!==e.error&&console.warn(`UeES3DTileset GetFeatureTable: ${e.error}`),A._featureTableResultEvent.emit(e.re.table)}catch(e){console.warn(`UeES3DTileset GetFeatureTable: ${e}`),A._featureTableResultEvent.emit(void 0)}else A._featureTableResultEvent.emit(void 0)}));this.d(A.getFeatureTableEvent.don((()=>{e()})))}}get styleColor(){return this._styleColor.value}set styleColor(A){this._styleColor.value=A}get styleVisable(){return this._styleVisable.value}set styleVisable(A){this._styleVisable.value=A}}Mn=Pn,Pn.type=Mn.register("ESUeViewer",s.ES3DTileset.type,Mn);var Dn,Rn=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const kn=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag对应的Actor是地形,无法绑定";case 4:return"没搜索到ComponentTag,无法绑定";default:return"未知错误"}};class Kn extends s.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");let n,r;const i=this.dv((0,s.react)(void 0)),o=this.ad((0,s.reactJson)(""));{const e=()=>{if("string"==typeof A.url)o.value=s.ESSceneObject.context.getStrFromEnv(A.url);else{const e=A.url;e.url=s.ESSceneObject.context.getStrFromEnv(e.url),o.value=e}};e(),this.ad(A.urlChanged.don(e))}const a=()=>Rn(this,void 0,void 0,(function*(){var e,i,a,c,l,d,u,h,g,B,w,p,C;(n||r)&&(yield t.callUeFunc({f:"update",p:{id:A.id,show:null===(e=A.show)||void 0===e||e,rectangle:null!==(i=A.rectangle)&&void 0!==i?i:[-180,-90,180,90],collision:null===(a=A.collision)||void 0===a||a,allowPicking:null!==(c=A.allowPicking)&&void 0!==c&&c,flyToParam:null!==(l=A.flyToParam)&&void 0!==l?l:s.ESVisualObject.defaults.flyToParam,flyInParam:null!==(d=A.flyInParam)&&void 0!==d?d:s.ESVisualObject.defaults.flyInParam,url:null!==(u=o.value)&&void 0!==u?u:"",zIndex:null!==(h=A.zIndex)&&void 0!==h?h:0,maximumLevel:null!==(g=A.maximumLevel)&&void 0!==g?g:s.ESImageryLayer.defaults.maximumLevel,minimumLevel:null!==(B=A.minimumLevel)&&void 0!==B?B:s.ESImageryLayer.defaults.minimumLevel,options:null!==(w=A.options)&&void 0!==w?w:s.ESImageryLayer.defaults.options,targetID:null!==(p=A.targetID)&&void 0!==p?p:s.ESImageryLayer.defaults.targetID,opacity:null!==(C=A.opacity)&&void 0!==C?C:s.ESImageryLayer.defaults.opacity}}))})),c=this.dv((0,s.createNextAnimateFrameEvent)(A.showChanged,o.changed,A.flyToParamChanged,A.flyInParamChanged,A.zIndexChanged,A.collisionChanged,A.allowPickingChanged,A.maximumLevelChanged,A.minimumLevelChanged,A.rectangleChanged,A.optionsChanged,A.targetIDChanged,A.opacityChanged));this.d(c.don(a));const l=()=>Rn(this,void 0,void 0,(function*(){const{id:s}=A;if(void 0!==n){n=void 0;try{const A=yield e.unBindImageryById(s);if(!A)return;if(""!==A.error)return void console.warn(`UeESImageryLayer UnImageryByID: ${A.error}`)}catch(A){return void console.warn(`UeESImageryLayer UnImageryByID promise: ${A}`)}}if(void 0!==r){r=void 0;try{const A=yield t.callUeFunc({f:"destroy",p:{id:s,test:"UeESImageryLayer"}});if(!A)return;if(""!==A.error)return void console.warn(`UeESImageryLayer Destroy: ${A.error}`)}catch(A){return void console.warn(`UeESImageryLayer Destroy promise: ${A}`)}}}));this.d((()=>{l()}));{const o=this.dv((0,s.createProcessingFromAsyncFunc)((s=>Rn(this,void 0,void 0,(function*(){if(void 0!==i.value){if("ActorTag"===i.value.type){const{actorTag:t,componentTag:r}=i.value;if(n!==t&&(yield s.promise(l())),void 0!==n)return;if(void 0===t)return;try{n=t;const i=yield s.promise(e.bindImageryByTag(A.id,t,r));if(!i)return;if(""!==i.error)return void console.warn(`ESImageryLayer BindImageryByTag: ${i.error}`);if(0===i.re.type);else{if(1!==i.re.type)return void console.warn(`ESImageryLayer BindImageryByTag: ${kn(i.re.type)}`);console.warn(`ESImageryLayer BindImageryByTag: ${kn(i.re.type)}`)}}catch(A){return void console.warn(`ESImageryLayer BindImageryByTag promise: ${A}`)}}else if("CreatedUrl"===i.value.type){const{url:e}=i.value;if(e!==r&&(yield s.promise(l())),void 0!==r)return;if(void 0===e)return;try{r=e;const n=yield s.promise(t.callUeFunc({f:"create",p:{type:"ESImageryLayer",id:A.id}}));if(!n)return;if(""!==n.error)return void console.warn(`ESImageryLayer create: ${n.error}`)}catch(A){return void console.warn("ESImageryLayer create: create promise error")}}yield s.promise(a())}else yield s.promise(l())}))))),c=()=>Rn(this,void 0,void 0,(function*(){o.restart()}));c(),this.d(i.changed.don(c))}{const e=this.dv((0,s.createNextAnimateFrameEvent)(A.actorTagChanged,o.changed,A.componentTagChanged)),t=()=>{A.actorTag&&A.componentTag?i.value={type:"ActorTag",actorTag:A.actorTag,componentTag:A.componentTag}:o.value?i.value={type:"CreatedUrl",url:o.value}:i.value=void 0};t(),this.d(e.don(t))}this.d(A.flyToEvent.don(((s,i)=>Rn(this,void 0,void 0,(function*(){if(!n&&!r)return;const o=yield g(t,A.id,s);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),A.flyOverEvent.emit(i,a,e)}))))),this.d(A.flyInEvent.don(((s,i)=>Rn(this,void 0,void 0,(function*(){var o,a;if(!n&&!r)return;const c=yield C(t,A.id,null===(o=A.flyInParam)||void 0===o?void 0:o.position,null===(a=A.flyInParam)||void 0===a?void 0:a.rotation,null!=s?s:1);let l="over";void 0===c?l="error":0===c.endType?l="over":1===c.endType&&(l="cancelled"),A.flyOverEvent.emit(i,l,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{(n||r)&&w(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>Rn(this,void 0,void 0,(function*(){if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{(n||r)&&e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))})))}}var On,Vn,Gn,_n,Nn,Wn,Jn,Xn,zn,Yn,jn,$n,Zn,qn,Ar,er,tr,nr,rr,sr,ir,or;Dn=Kn,Kn.type=Dn.register("ESUeViewer",s.ESImageryLayer.type,Dn);class ar extends En{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}On=ar,ar.type=On.register("ESUeViewer",s.ESTerrainLayer.type,On),ar.forceUeUpdateProps=[...En.forceUeUpdateProps,"url"],ar.propValFuncs=Object.assign(Object.assign({},En.propValFuncs),{url:A=>"string"==typeof A?s.ESSceneObject.context.getStrFromEnv(A):(A.url=s.ESSceneObject.context.getStrFromEnv(A.url),A),czmMaxzoom:null,czmMinzoom:null});class cr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Vn=cr,cr.type=Vn.register("ESUeViewer",s.ESAlarm.type,Vn);class lr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Gn=lr,lr.type=Gn.register("ESUeViewer",s.ESApertureEffect.type,Gn);class dr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}_n=dr,dr.type=_n.register("ESUeViewer",s.ESGeoPolygon.type,_n);class ur extends dr{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n,r;let i=s.ESAreaMeasurement.defaults.fillStyle;try{i=Object.assign({},null!==(e=A.fillStyle)&&void 0!==e?e:s.ESAreaMeasurement.defaults.fillStyle)}catch(A){console.error("ESAreaMeasurement fillStyle 属性类型错误!",A),i=Object.assign({},s.ESAreaMeasurement.defaults.fillStyle)}i.materialParams=JSON.stringify(i.materialParams),t.callUeFunc({f:"update",p:{id:A.id,stroked:null!==(n=A.stroked)&&void 0!==n?n:s.ESAreaMeasurement.defaults.stroked,fillStyle:i,filled:null!==(r=A.filled)&&void 0!==r?r:s.ESAreaMeasurement.defaults.filled}}),console.log(i)},r=this.dv((0,s.createNextAnimateFrameEvent)(A.fillStyleChanged,A.strokedChanged,A.filledChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}Nn=ur,ur.type=Nn.register("ESUeViewer",s.ESAreaMeasurement.type,Nn);class hr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wn=hr,hr.type=Wn.register("ESUeViewer",s.ESBlastParticleSystem.type,Wn);class gr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Jn=gr,gr.type=Jn.register("ESUeViewer",s.ESBoxClipping.type,Jn);class Br extends Sn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.dispose(A.flyInEvent.don((e=>{C(t,A.id,A.position,A.rotation,e)}))),this.dispose(A.resetWithCurrentCameraEvent.don((()=>{U(t,A.id)}))),this.dispose(A.captureEvent.don(((t,n)=>{e.capture(t,n).then((e=>{e&&(A.thumbnail=e)}))})))):console.warn("viewer is undefined!")}}Xn=Br,Br.type=Xn.register("ESUeViewer",s.ESCameraView.type,Xn);class wr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zn=wr,wr.type=zn.register("ESUeViewer",s.ESCameraVisibleRange.type,zn);class pr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yn=pr,pr.type=Yn.register("ESUeViewer",s.ESCar.type,Yn);class Cr extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n;let r=s.ESClassification.defaults.fillStyle;try{r=Object.assign({},null!==(e=A.fillStyle)&&void 0!==e?e:s.ESClassification.defaults.fillStyle)}catch(A){console.error("ESClassification fillStyle 属性类型错误!",A),r=Object.assign({},s.ESClassification.defaults.fillStyle)}r.materialParams=JSON.stringify(r.materialParams),t.callUeFunc({f:"update",p:{id:A.id,filled:null!==(n=A.filled)&&void 0!==n?n:s.ESClassification.defaults.filled,fillStyle:r}})},r=this.dv((0,s.createNextAnimateFrameEvent)(A.fillStyleChanged,A.filledChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}jn=Cr,Cr.type=jn.register("ESUeViewer",s.ESClassification.type,jn);class mr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}$n=mr,mr.type=$n.register("ESUeViewer",s.ESClippingPlane.type,$n);class fr extends Sn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=this.ad((0,s.reactJson)(""));{const e=()=>{var e,t;if("string"==typeof A.url)n.value=s.ESSceneObject.context.getStrFromEnv(null!==(e=A.url)&&void 0!==e?e:s.ESDataMesh.defaults.url);else{const e=A.url;e.url=s.ESSceneObject.context.getStrFromEnv(null!==(t=e.url)&&void 0!==t?t:s.ESDataMesh.defaults.url),n.value=e}};e(),this.ad(A.urlChanged.don(e))}const r=()=>{var e,r,i,o,a;const c=null!==(e=A.colorStops)&&void 0!==e?e:s.ESDataMesh.defaults.colorStops;t.callUeFunc({f:"update",p:{id:A.id,url:null!==(r=n.value)&&void 0!==r?r:s.ESDataMesh.defaults.url,currentTime:null!==(i=A.currentTime)&&void 0!==i?i:s.ESDataMesh.defaults.currentTime,minPropValue:null!==(o=A.minPropValue)&&void 0!==o?o:s.ESDataMesh.defaults.minPropValue,maxPropValue:null!==(a=A.maxPropValue)&&void 0!==a?a:s.ESDataMesh.defaults.maxPropValue,colorStops:JSON.stringify(c)}})},i=this.dv((0,s.createNextAnimateFrameEvent)(n.changed,A.currentTimeChanged,A.minPropValueChanged,A.maxPropValueChanged,A.colorStopsChanged));this.d(i.don(r)),this.d(A.createdEvent.don(r))}}Zn=fr,fr.type=Zn.register("ESUeViewer",s.ESDataMesh.type,Zn);class vr extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}qn=vr,vr.type=qn.register("ESUeViewer",s.ESDatasmithRuntimeModel.type,qn);class Qr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ar=Qr,Qr.type=Ar.register("ESUeViewer",s.ESDirectionMeasurement.type,Ar);class Fr extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e;let n;try{n=Object.assign({},null!==(e=A.strokeStyle)&&void 0!==e?e:s.ESDistanceMeasurement.defaults.strokeStyle)}catch(A){console.error("ESDistanceMeasurement strokeStyle 属性类型错误!",A),n=Object.assign({},s.ESDistanceMeasurement.defaults.strokeStyle)}t.callUeFunc({f:"update",p:{id:A.id,strokeStyle:n}})},r=this.dv((0,s.createNextAnimateFrameEvent)(A.strokeStyleChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}er=Fr,Fr.type=er.register("ESUeViewer",s.ESDistanceMeasurement.type,er);class Ur extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}tr=Ur,Ur.type=tr.register("ESUeViewer",s.ESLocalPolygon.type,tr);class Er extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}nr=Er,Er.type=nr.register("ESUeViewer",s.ESDynamicWater.type,nr);class yr extends En{constructor(A,e){super(A,e),e.viewer?this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,properties:n}=e;A.widgetEvent.emit({type:t,properties:n})}))):console.warn("viewer is undefined!")}}rr=yr,yr.type=rr.register("ESUeViewer",s.ESEntityCluster.type,rr);class Sr extends dr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}sr=Sr,Sr.type=sr.register("ESUeViewer",s.ESExcavate.type,sr);class br extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ir=br,br.type=ir.register("ESUeViewer",s.ESFireParticleSystem.type,ir);class Ir extends En{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=this.ad((0,s.reactJson)(""));{const e=()=>{if("string"==typeof A.url)n.value=s.ESSceneObject.context.getStrFromEnv(A.url);else{const e=A.url;e.url=s.ESSceneObject.context.getStrFromEnv(e.url),n.value=e}};e(),this.ad(A.urlChanged.don(e))}const r=()=>{var e,r,i,o,a,c,l,d;t.callUeFunc({f:"update",p:{id:A.id,url:null!==(e=n.value)&&void 0!==e?e:s.ESForestTileset.defaults.url,treeTypes:null!==(r=A.treeTypes)&&void 0!==r?r:s.ESForestTileset.defaults.treeTypes,xiaoBanWidget:null!==(i=A.xiaoBanWidget)&&void 0!==i?i:s.ESForestTileset.defaults.xiaoBanWidgetDefault,youShiSZ:null!==(o=A.youShiSZ)&&void 0!==o?o:s.ESForestTileset.defaults.youShiSZ,diLei:null!==(a=A.diLei)&&void 0!==a?a:s.ESForestTileset.defaults.diLei,senLinLB:null!==(c=A.senLinLB)&&void 0!==c?c:s.ESForestTileset.defaults.senLinLB,labelMaterial:null!==(l=A.labelMaterial)&&void 0!==l?l:s.ESForestTileset.defaults.labelMaterial,heightOffset:null!==(d=A.heightOffset)&&void 0!==d?d:s.ESForestTileset.defaults.heightOffset}})},i=this.dv((0,s.createNextAnimateFrameEvent)(n.changed,A.treeTypesChanged,A.xiaoBanWidgetChanged,A.youShiSZChanged,A.diLeiChanged,A.senLinLBChanged,A.labelMaterialChanged,A.heightOffsetChanged));this.d(i.don(r)),this.d(A.createdEvent.don(r))}}or=Ir,Ir.type=or.register("ESUeViewer",s.ESForestTileset.type,or);var Hr,Tr,Mr,Lr,xr,Pr,Dr,Rr=n(440),kr=n.n(Rr);class Kr extends s.EngineObject{constructor(A,e){super(A,e),this._imageLabel=this.dv(new s.ESImageLabel(`${this.id}_ESImageLabel`)),this._hasClassDivAndPos={};const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");A.mainClass=this._imageLabel;const n=this._imageLabel;e.add(n),this.d((()=>e.delete(n))),this.d((0,s.track)([n,"show"],[A,"show"])),this.d((0,s.track)([n,"anchor"],[A,"anchor"])),this.d((0,s.bind)([n,"editing"],[A,"editing"])),this.d((0,s.bind)([n,"position"],[A,"position"])),this.d((0,s.bind)([n,"rotation"],[A,"rotation"])),this.d((0,s.bind)([n,"flyToParam"],[A,"flyToParam"])),this.d((0,s.bind)([n,"flyInParam"],[A,"flyInParam"])),this.d((0,s.bind)([n,"allowPicking"],[A,"allowPicking"])),this.d((0,s.bind)([n,"scale"],[A,"scale"])),this.d((0,s.track)([n,"minVisibleDistance"],[A,"minVisibleDistance"])),this.d((0,s.track)([n,"maxVisibleDistance"],[A,"maxVisibleDistance"])),this.ad(A.automaticLandingEvent.don((()=>{n.automaticLanding()}))),this.d(n.pickedEvent.don((e=>{var t;null!==(t=A.allowPicking)&&void 0!==t&&t&&A.pickedEvent.emit(e)}))),this.d(e.widgetEvent.don((e=>{if(e.objId!==this._imageLabel.id)return;const{type:t,add:n}=e;if("leftClick"===t){const A=Object.keys(this._hasClassDivAndPos);for(let e=0;e<A.length;e++){const t=A[e];let r=this._hasClassDivAndPos[t];if(n&&n.mouseRelativePos&&n.mouseRelativePos[0]>=r[0]&&n.mouseRelativePos[0]<=r[2]&&n.mouseRelativePos[1]>=r[1]&&n.mouseRelativePos[1]<=r[3]){n.className=t;break}}}A.widgetEvent.emit({type:t,add:n})}))),this.d(A.calcFlyToParamEvent.don((()=>{w(t,n.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))),this.d(A.smoothMoveEvent.don(((A,e)=>{M(t,n.id,A,e)}))),this.d(A.smoothMoveWithRotationEvent.don(((A,e,r)=>{E(t,n.id,A,e,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((A,e,r,s)=>{y(t,n.id,A,e,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((A,e,r,s,i)=>{S(t,n.id,A,e,r,s,i)}))),this.d(A.flyToEvent.don(((A,e)=>{n.flyTo(A)}))),this.d(A.flyInEvent.don((A=>{n.flyIn(A)})));{const r=()=>{var r;if(!t)return;if(!A.instanceClass)throw new Error("!sceneObject.instanceClass");const i=document.createElement("div"),o=this.dv(new A.instanceClass(i,A,e))._container;if(o.style.opacity=null!==(r=A.opacity.toString())&&void 0!==r?r:s.ESGeoDiv.defaults.opacity,o.style.position="fixed",o.style.zIndex="-1",o.style.top="0px",!document.body.contains(o)){document.body.appendChild(o);let A=o?o.querySelectorAll("*[class]"):[];for(let e=0;e<A.length;e++){const t=A[e];var a=t.getBoundingClientRect();this._hasClassDivAndPos[t.className]=[t.offsetLeft,t.offsetTop,t.offsetLeft+a.width,t.offsetTop+a.height]}}kr()(o,{backgroundColor:null,allowTaint:!0,useCORS:!0,width:o.offsetWidth,height:o.offsetHeight,scale:1}).then((A=>{document.body.contains(o)&&document.body.removeChild(o),n.url=A.toDataURL()})).catch((()=>{document.body.contains(o)&&document.body.removeChild(o)}))},i=()=>{try{A.instanceClass?r():n.url=""}catch(A){console.error(A)}};i();const o=this.dv((0,s.createNextAnimateFrameEvent)(A.instanceClassChanged,A.opacityChanged));this.d(o.don(i))}}}Hr=Kr,Kr.type=Hr.register("ESUeViewer",s.ESGeoDiv.type,Hr);class Or extends En{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.flyToFeatureIndexEvent.don(((e,n)=>{t.callUeFunc({f:"flyToFeatureIndex",p:{id:A.id,index:e,duration:n}})}))),this.d(A.flyToFeatureEvent.don(((e,n,r)=>{t.callUeFunc({f:"flyToFeature",p:{id:A.id,key:e,value:n,duration:r}})})))):console.warn("viewer is undefined!")}}Tr=Or,Or.type=Tr.register("ESUeViewer",s.ESGeoJson.type,Tr);class Vr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Mr=Vr,Vr.type=Mr.register("ESUeViewer",s.ESGeoLineString.type,Mr);class Gr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Lr=Gr,Gr.type=Lr.register("ESUeViewer",s.ESGeoRectangle.type,Lr);class _r extends dr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}xr=_r,_r.type=xr.register("ESUeViewer",s.ESGeoWater.type,xr);class Nr extends Sn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.setNodePositionEvent.don(((e,n)=>{x(t,A.id,e,n)}))),this.d(A.setNodeRotationEvent.don(((e,n)=>{P(t,A.id,e,n)}))),this.d(A.setNodeScaleEvent.don(((e,n)=>{D(t,A.id,e,n)})))):console.warn("viewer is undefined!")}}Pr=Nr,Nr.forceUeUpdateProps=[...Sn.forceUeUpdateProps,"url"],Nr.propValFuncs=Object.assign(Object.assign({},Sn.propValFuncs),{url:A=>"string"==typeof A?s.ESSceneObject.context.getStrFromEnv((0,s.rpToap)(A)):(A.url=s.ESSceneObject.context.getStrFromEnv((0,s.rpToap)(A.url)),A),czmMaximumScale:null,czmMinimumPixelSize:null,czmNativeScale:null,czmColor:null}),Nr.type=Pr.register("ESUeViewer",s.ESGltfModel.type,Pr);class Wr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Dr=Wr,Wr.type=Dr.register("ESUeViewer",s.ESHeightMeasurement.type,Dr);var Jr,Xr,zr,Yr,jr,$r,Zr,qr,As,es,ts,ns,rs=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class ss extends Sn{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=(A,e,t,n)=>rs(this,void 0,void 0,(function*(){const{viewer:r}=A;if(!r)return void console.error("AIMoveTo: ueViewer.viewer is undefined");const s=yield r.callUeFunc({f:"AIMoveTo",p:{id:e,Destination:t,Time:n}});return s.error&&console.error("AIMoveTo:",s.error),s}));this.d(A.aiMoveToEvent.don(((n,r)=>{t(e,A.id,n,r)})));const n=(A,e)=>rs(this,void 0,void 0,(function*(){const{viewer:t}=A;if(!t)return void console.error("StopAIMove: ueViewer.viewer is undefined");const n=yield t.callUeFunc({f:"StopAIMove",p:{id:e}});return n.error&&console.error("StopAIMove:",n.error),n}));this.d(A.stopAIMoveEvent.don((()=>{n(e,A.id)})))}}Jr=ss,ss.type=Jr.register("ESUeViewer",s.ESHuman.type,Jr);class is extends In{constructor(A,e){super(A,e),e.viewer?A.anchor=[.5,1]:console.warn("viewer is undefined!")}}Xr=is,is.type=Xr.register("ESUeViewer",s.ESImageLabel.type,Xr),is.forceUeUpdateProps=[...In.forceUeUpdateProps,"url"],is.propValFuncs=Object.assign(Object.assign({},In.propValFuncs),{url:A=>"string"==typeof A?s.ESSceneObject.context.getStrFromEnv((0,s.rpToap)(A)):(A.url=s.ESSceneObject.context.getStrFromEnv((0,s.rpToap)(A.url)),A)});class os extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zr=os,os.type=zr.register("ESUeViewer",s.ESLevelRuntimeModel.type,zr);class as extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yr=as,as.type=Yr.register("ESUeViewer",s.ESLocalCircle.type,Yr);class cs extends En{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}jr=cs,cs.type=jr.register("ESUeViewer",s.ESLocalPolygonZ.type,jr);class ls extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}$r=ls,ls.type=$r.register("ESUeViewer",s.ESLocalRectangle.type,$r);class ds extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zr=ds,ds.type=Zr.register("ESUeViewer",s.ESLocalSkyBox.type,Zr);class us extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}qr=us,us.type=qr.register("ESUeViewer",s.ESLocationMeasurement.type,qr);class hs extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}As=hs,hs.type=As.register("ESUeViewer",s.ESPipeFence.type,As);class gs extends Vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}es=gs,gs.type=es.register("ESUeViewer",s.ESPipeline.type,es);class Bs extends Pn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.highlightFeatureEvent.don((e=>{const n="number"==typeof e?e.toString():e;b(t,A.id,n)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((e,n,r,s)=>{const i="number"==typeof e?e.toString():e;I(t,A.id,i,null!=s?s:1)}))),this.d(A.setLayerVisibleEvent.don(((e,n)=>{let r="";r="string"!=typeof n?JSON.stringify(n):n,H(t,A.id,r)}))),this.d(A.setLayerColorEvent.don(((e,n)=>{let r="";r="string"!=typeof n?JSON.stringify(n):n,T(t,A.id,r)})))):console.warn("viewer is undefined!")}}ts=Bs,Bs.type=ts.register("ESUeViewer",s.ESPipeserTileset.type,ts);class ws extends dr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ns=ws,ws.type=ns.register("ESUeViewer",s.ESPit.type,ns);var ps,Cs,ms,fs,vs,Qs,Fs,Us,Es,ys,Ss,bs,Is;class Hs extends In{constructor(A,e){super(A,e);const t=e.viewer;t?this.ad(A.getInitialStyleEvent.don((()=>function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){try{const e=yield t.callUeFunc({f:"GetInitialStyle",p:{id:A.id}});""!=e.error&&console.error("getInitialStyleEvent:",e.error),A.initialStyle.value=structuredClone(e.re)}catch(e){console.error("getInitialStyleEvent:",e),A.initialStyle.value=void 0}}))))):console.warn("viewer is undefined!")}}ps=Hs,Hs.type=ps.register("ESUeViewer",s.ESPoi2D.type,ps);class Ts extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Cs=Ts,Ts.type=Cs.register("ESUeViewer",s.ESPoi3D.type,Cs);class Ms extends En{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ms=Ms,Ms.type=ms.register("ESUeViewer",s.ESPoiTileset.type,ms),Ms.forceUeUpdateProps=[...En.forceUeUpdateProps,"url"],Ms.propValFuncs=Object.assign(Object.assign({},En.propValFuncs),{url:A=>"string"==typeof A?s.ESSceneObject.context.getStrFromEnv(A):(A.url=s.ESSceneObject.context.getStrFromEnv(A.url),A)});class Ls extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}fs=Ls,Ls.type=fs.register("ESUeViewer",s.ESPolygonFence.type,fs);class xs extends dr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}vs=xs,xs.type=vs.register("ESUeViewer",s.ESPolygonFlattenedPlane.type,vs);class Ps extends dr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Qs=Ps,Ps.type=Qs.register("ESUeViewer",s.ESPolygonWithHole.type,Qs);class Ds extends Un{constructor(A,e){if(super(A,e),e.viewer){this.d(A.highlightInner3DtilesetEvent.don((A=>{A.highlight=!0}))),this.d(A.removeHighlightInner3DtilesetEvent.don((A=>{A.highlight=!1})));{const e=A=>{let e=[255,255,255,1];if((A=A.toLocaleLowerCase()).startsWith("#"))4===A.length?e=[parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16),parseInt(A[3]+A[3],16),1]:7===A.length&&(e=[parseInt(A.substring(1,3),16),parseInt(A.substring(3,5),16),parseInt(A.substring(5,7),16),1]);else if(A.startsWith("rgba")){let t=A.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/);t&&(e=[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])])}else if(A.startsWith("rgb")){let t=A.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);t&&(e=[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1])}else console.error("color类型只能为#rrggbb、#rgb、rgba(r,g,b,a)、rgb(r,g,b)");return[e[0]/255,e[1]/255,e[2]/255,e[3]]},t=()=>{const t=A.layerConfig;if(!t)return;const n=[];t.forEach((A=>{var t;n.push({condition:[{field:"layer",op:"==",value:A.layer},{field:"dataset",op:"==",value:A.dataset}],color:e(null!==(t=A.value.color)&&void 0!==t?t:"rgb(255,255,255)"),show:A.value.visible})})),A.setFeatureStyle(n)};t();const n=this.dv((0,s.createNextAnimateFrameEvent)(A.layerConfigChanged));this.d(n.don((()=>{t()})))}}else console.warn("viewer is undefined!")}}Fs=Ds,Ds.type=Fs.register("ESUeViewer",s.ESRtsTileset.type,Fs);class Rs extends En{constructor(A,e){super(A,e),e.viewer?(this.d(A.addTreesEvent.don((t=>{(0,s.addTreesCallFunc)(e,A.id,t)}))),this.d(A.removeAllTreesEvent.don((()=>{(0,s.removeAllTreesCallFunc)(e,A.id)}))),this.d(A.updateTreeParamsEvent.don((t=>{(0,s.updateTreeParamsCallFunc)(e,A.id,t)}))),this.d(A.cutDownTreesEvent.don(((t,n)=>{(0,s.cutDownTreesCallFunc)(e,A.id,t,n)}))),this.d(A.growthSimulationEvent.don(((t,n,r)=>{(0,s.growthSimulationCallFunc)(e,A.id,t,n,r)})))):console.warn("viewer is undefined!")}}Us=Rs,Rs.type=Us.register("ESUeViewer",s.ESSeparateFoliage.type,Us);class ks extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Es=ks,ks.type=Es.register("ESUeViewer",s.ESSubmergingAnalysis.type,Es);class Ks extends dr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))),this.d(A.stopEvent.don((()=>{t.callUeFunc({f:"Stop",p:{id:A.id}})})))):console.warn("viewer is undefined!")}}ys=Ks,Ks.type=ys.register("ESUeViewer",s.ESSunshineAnalysis.type,ys);class Os extends dr{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))):console.warn("viewer is undefined!")}}Ss=Os,Os.type=Ss.register("ESUeViewer",s.ESSurfaceAreaMeasurement.type,Ss);class Vs extends In{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}bs=Vs,Vs.type=bs.register("ESUeViewer",s.ESTextLabel.type,bs);class Gs extends In{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.callFunctionEvent.don(((e,n)=>{L(t,A.id,e,n)}))):console.warn("viewer is undefined!")}}Is=Gs,Gs.type=Is.register("ESUeViewer",s.ESUEWidget.type,Is),Gs.propValFuncs=Object.assign(Object.assign({},In.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});const _s=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"未搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是场景原有的,而是新建的,无法绑定";case 4:return"搜索到ActorTag对应的Actor是地形或3DTileset,无法绑定";default:return"未知错误"}};var Ns,Ws,Js,Xs,zs,Ys,js,$s=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class Zs extends s.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn(`${A.id} UeESUnrealActor viewer is undefined!`);this.d((()=>{B(t,A.id)}));const n=()=>$s(this,void 0,void 0,(function*(){var e,n;c()||(yield t.callUeFunc({f:"update",p:{id:A.id,name:A.name,show:A.show,rotation:A.rotation,flyToParam:null!==(e=A.flyToParam)&&void 0!==e?e:s.ESVisualObject.defaults.flyToParam,flyInParam:null!==(n=A.flyInParam)&&void 0!==n?n:s.ESVisualObject.defaults.flyInParam,editing:A.editing,highlight:A.highlight,collision:A.collision,scale:A.scale,minVisibleDistance:A.minVisibleDistance,maxVisibleDistance:A.maxVisibleDistance}}))})),r=this.dv((0,s.createNextAnimateFrameEvent)(A.showChanged,A.nameChanged,A.rotationChanged,A.editingChanged,A.flyToParamChanged,A.flyInParamChanged,A.highlightChanged,A.collisionChanged,A.scaleChanged,A.minVisibleDistanceChanged,A.maxVisibleDistanceChanged));let i,o;this.d(r.don(n)),this.d(A.flushEvent.don((()=>r.flush())));const a=()=>$s(this,void 0,void 0,(function*(){var n;c()||(yield t.callUeFunc({f:"update",p:{id:A.id,position:A.position}}),null!==(n=e.debug)&&void 0!==n&&n&&console.log(`updatePostion:${A.position},actorTag:${A.actorTag},actorClass:${A.actorClass}`))})),c=()=>!i&&!o&&(console.warn(`${A.id} 未绑定ActorTag或未创建ActorClass!`),!0),l=()=>$s(this,void 0,void 0,(function*(){const{id:n}=A,r=yield e.unBindActorByID(n);r&&""!==r.error&&console.warn(`${A.id} UeESUnrealActor UnBindActorByID: ${r.error}`),i=void 0;const s=yield t.callUeFunc({f:"destroy",p:{id:n}});s&&""!==s.error?console.warn(`${A.id} UeESUnrealActor DestroyActorByID: ${s.error}`):o=void 0})),d=this.dv((0,s.react)({type:"ActorClass",actorClass:"default"}));{const e=this.dv((0,s.createNextAnimateFrameEvent)(A.actorClassChanged,A.actorTagChanged)),t=()=>$s(this,void 0,void 0,(function*(){""!==A.actorTag?d.value={type:"ActorTag",actorTag:A.actorTag}:d.value={type:"ActorClass",actorClass:""===A.actorClass?"default":A.actorClass}}));t(),this.d(e.don(t)),this.d(A.flushEvent.don((()=>e.flush())))}{const t=this.dv((0,s.createProcessingFromAsyncFunc)((t=>$s(this,void 0,void 0,(function*(){if(yield t.promise(l()),"ActorTag"===d.value.type){const{actorTag:n}=d.value;yield t.promise(l());try{A.lastActorStatus="null";const r=yield t.promise(e.bindActorByTag(A.id,n));if(!r)return;if(""!==r.error)return void console.warn(`${A.id} UeESUnrealActor BindActorByTag:${n},${r.error}`);if(0===r.re.type)A.lastActorStatus="bound",i=n;else{if(1!==r.re.type)return i=void 0,void console.warn(`${A.id} UeESUnrealActor BindActorByTag error:${n}, ${_s(r.re.type)}`);A.lastActorStatus="bound",i=n,console.warn(`${A.id} UeESUnrealActor BindActorByTag:${n},${_s(r.re.type)}`)}}catch(e){return void console.warn(`${A.id} UeESUnrealActor BindActorByTag catch error:${n}, ${e}`)}}else if("ActorClass"===d.value.type){const{actorClass:n}=d.value;try{const r=yield t.promise(e.createActorByClass(A.id,n));if(!r)return;if(""!==r.error)return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error :${n}, ${r.error}`);if(0!==r.re.type)return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error type :${n},${(A=>{switch(A){case 0:return"创建成功";case 1:return"未找到对应的资源,无法创建";case 2:return"Id与场景中现有的ActorTag重复,创建后可能出现问题,创建失败";default:return"未知错误"}})(r.re.type)}`);A.lastActorStatus="created",o=n}catch(e){return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error catch :${n}, ${JSON.stringify(e)}`)}}yield t.promise(n()),yield t.promise(a())}))))),r=()=>$s(this,void 0,void 0,(function*(){t.restart()}));r(),this.d(d.changed.don(r))}this.d(A.positionChanged.don(a)),this.d(A.callFunctionEvent.don(((e,n)=>{c()||L(t,A.id,e,n)}))),this.d(A.smoothMoveEvent.don(((e,n)=>{c()||M(t,A.id,e,n)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,n,r)=>{c()||E(t,A.id,e,n,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,n,r,s)=>{c()||y(t,A.id,e,n,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,n,r,s,i)=>{c()||S(t,A.id,e,n,r,s,i)}))),this.d(A.automaticLandingEvent.don((t=>{if(c())return;const n=[A.position[0],A.position[1]];e.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((e=>{null!==e&&(A.position=[...n,e],A.collision=t)}))}))),this.d(A.flyToEvent.don(((n,r)=>$s(this,void 0,void 0,(function*(){if(c())return;const s=yield g(t,A.id,n);let i="over";void 0===s?i="error":0===s.endType?i="over":1===s.endType&&(i="cancelled"),A.flyOverEvent.emit(r,i,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{c()||w(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>$s(this,void 0,void 0,(function*(){if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{c()||e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))})))}}Ns=Zs,Zs.type=Ns.register("ESUeViewer",s.ESUnrealActor.type,Ns);class qs extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ws=qs,qs.type=Ws.register("ESUeViewer",s.ESVideoFusion.type,Ws);class Ai extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Js=Ai,Ai.type=Js.register("ESUeViewer",s.ESViewShed.type,Js);class ei extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Xs=ei,ei.type=Xs.register("ESUeViewer",s.ESVisibilityAnalysis.type,Xs);class ti extends dr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))),this.d(A.clearEvent.don((()=>{t.callUeFunc({f:"Clear",p:{id:A.id}})})))):console.warn("viewer is undefined!")}}zs=ti,ti.type=zs.register("ESUeViewer",s.ESVolumeMeasurement.type,zs);class ni extends In{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ys=ni,ni.type=Ys.register("ESUeViewer",s.ESWidget.type,Ys),ni.propValFuncs=Object.assign(Object.assign({},In.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});class ri extends s.EngineObject{constructor(A,e){super(A,e),e.viewer?(A.poi.actorTag=A.human.id,A.poi.positionOffset=[0,0,A.poiOffsetHeight-.8],this.d(A.poiOffsetHeightChanged.don((()=>{A.poi.positionOffset=[0,0,A.poiOffsetHeight-.8]}))),this.d((()=>{A.poi.actorTag=""}))):console.warn("viewer is undefined!")}}js=ri,ri.type=js.register("ESUeViewer",s.ESHumanPoi.type,js);var si,ii,oi=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};s.ESSceneObject.context.getStrFromEnv(s.ESNavigator.defaults.imgUrl);class ai extends s.EngineObject{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=this.disposeVar(new s.ESCustomDiv);e.add(t),this.dispose((()=>e.delete(t))),this.dispose((0,s.track)([t,"show"],[A,"show"])),t.instanceClass=class extends s.Destroyable{constructor(t,n,r){super(),this._subContainer=t;const i=document.createElement("div");this._subContainer.appendChild(i),this.dispose((()=>this._subContainer.removeChild(i)));{const A=()=>oi(this,void 0,void 0,(function*(){const A=yield e.getCurrentCameraInfo(),t=null==A?void 0:A.position,n=[...null==A?void 0:A.rotation];n[0]=360,e.flyIn(t,n)}));i.addEventListener("click",A),i.style.cursor="pointer",this.dispose((()=>i.removeEventListener("click",A)))}{const e=()=>{i.style.width=`${A.cssSize?A.cssSize:s.ESNavigator.defaults.cssSize}px`,i.style.height=`${A.cssSize?A.cssSize:s.ESNavigator.defaults.cssSize}px`};e(),A.dispose(A.cssSizeChanged.disposableOn(e))}i.style.position="fixed";{const e=()=>{i.style.top=`${A.cssPosition?A.cssPosition[0]:s.ESNavigator.defaults.cssPosition[0]}px`,i.style.right=`${A.cssPosition?A.cssPosition[1]:s.ESNavigator.defaults.cssPosition[1]}px`};e(),A.dispose(A.cssPositionChanged.disposableOn(e))}i.style.transition=" right 0.4s linear",i.style.cursor="pointer";const o=document.createElement("div");i.appendChild(o),this.dispose((()=>i.removeChild(o))),o.style.width="100%",o.style.height="100%",o.style.position="relative";const a=document.createElement("img");o.appendChild(a),this.dispose((()=>o.removeChild(a))),a.style.width="100%",a.style.height="100%",a.style.border="none";{const e=()=>a.src=A.imgUrl;e(),A.dispose(A.imgUrlChanged.disposableOn(e))}{const t=()=>{const A=-e.getCurrentCameraInfo().rotation[0];a.style.transform=`rotate(${A}deg)`};let n;const r=()=>oi(this,void 0,void 0,(function*(){t(),A.show?(i.style.display="block",n=setInterval((()=>{t()}),1e3)):(i.style.display="none",clearInterval(n))}));this.dispose(A.showChanged.disposableOn(r)),r(),this.dispose((()=>clearInterval(n)))}a.style.transformOrigin="50% 50%"}}}}si=ai,ai.type=si.register("ESUeViewer",s.ESNavigator.type,si);class ci extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(t){const e=()=>{let e="blue"===A.materialMode?"multipleArrows":"purple"===A.materialMode?"singleArrow":A.materialMode;t.callUeFunc({f:"update",p:{id:A.id,materialMode:e}})};this.dispose(A.materialModeChanged.disposableOn(e)),this.dispose(A.createdEvent.disposableOn(e))}else console.warn("viewer is undefined!")}}ii=ci,ci.type=ii.register("ESUeViewer",s.ESPath.type,ii),ci.forceUeUpdateProps=[...bn.forceUeUpdateProps],ci.propValFuncs=Object.assign(Object.assign({},bn.propValFuncs),{materialMode:null});var li,di,ui,hi,gi,Bi,wi,pi=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class Ci extends s.EngineObject{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=this.disposeVar(new s.ESCustomDiv);e.add(t),this.dispose((()=>e.delete(t))),t.instanceClass=class extends s.Destroyable{constructor(t,n,r){if(super(),this._subContainer=t,!r)return;if(!(r instanceof Fn))return;const i=document.createElement("div");this._subContainer.appendChild(i),this.dispose((()=>this._subContainer.removeChild(i))),i.style.width="100%",i.style.position="absolute",i.style.height=`${s.ESViewerStatusBar.defaults.height}px`,i.style.left="0",i.style.bottom="0",i.style.color="#fff",i.style.padding="0 20px 0 0",i.style.boxSizing="border-box",i.style.lineHeight=`${s.ESViewerStatusBar.defaults.height}px`,i.style.zIndex="100",i.style.alignContent="center",i.style.justifyContent="space-between";const o=document.createElement("span");i.appendChild(o),this.dispose((()=>i.removeChild(o)));const a=document.createElement("span");o.appendChild(a),this.dispose((()=>o.removeChild(a)));const c=document.createElement("span");o.appendChild(c),c.addEventListener("dblclick",(function(){let A=c.innerHTML;A.startsWith("鼠标位置")&&(A=A.slice(5)),function(A){pi(this,void 0,void 0,(function*(){navigator.clipboard.writeText(A).then((function(){console.log("复制成功")}),(function(A){console.log("复制失败")}))}))}(A)})),c.style.cursor="pointer",this.dispose((()=>o.removeChild(c)));const l=document.createElement("span");i.appendChild(l),this.dispose((()=>i.removeChild(l)));{const e=()=>{var e,t;i.style.height=(null!==(e=A.height)&&void 0!==e?e:s.ESViewerStatusBar.defaults.height)+"px",i.style.lineHeight=(null!==(t=A.height)&&void 0!==t?t:s.ESViewerStatusBar.defaults.height)+"px"};this.dispose(A.heightChanged.disposableOn(e)),e()}{const e=()=>{var e;i.style.fontSize=(null!==(e=A.fontSize)&&void 0!==e?e:s.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(A.fontSizeChanged.disposableOn(e)),e()}{const e=()=>{A.bgColor?i.style.background=`rgba(${255*A.bgColor[0]},${255*A.bgColor[1]},${255*A.bgColor[2]},${A.bgColor[3]})`:i.style.background=`rgba(${s.ESViewerStatusBar.defaults.bgColor[0]},${s.ESViewerStatusBar.defaults.bgColor[1]},${s.ESViewerStatusBar.defaults.bgColor[2]},${s.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(A.bgColorChanged.disposableOn(e)),e()}r.getVersion().then((A=>{A&&(l.innerText=`Ue 版本 : ${A[0]} `)})).catch((A=>{console.log(A)}));{const t=()=>{let A="",t="";A+=`帧率:${r.getFPS().toFixed(0)}FPS`,a.innerText=A;const n=e.getCurrentCameraInfo();A+=` 经度: ${n.position[0].toFixed(5)}° 纬度: ${n.position[1].toFixed(5)}° 高度: ${n.position[2].toFixed(2)}米 偏航角: ${n.rotation[0].toFixed(2)}° 俯仰角: ${n.rotation[1].toFixed(2)}° 翻滚角:${n.rotation[2].toFixed(2)}° `,a.innerText=A,e.pick().then((A=>{if(A){const{pickResult:e}=A;if(e&&e.position){const{position:A}=e;t+=`鼠标位置:${A[0].toFixed(5)}° ${A[1].toFixed(5)}° ${A[2].toFixed(2)}m`}else t+="暂时无法获取鼠标位置...";c.innerText=t}})).catch((A=>{console.log(A)}))};let n;const s=()=>pi(this,void 0,void 0,(function*(){t(),A.show?(i.style.display="flex",n=setInterval((()=>{t()}),1e3)):(i.style.display="none",clearInterval(n))}));this.dispose(A.showChanged.disposableOn(s)),s(),this.dispose((()=>clearInterval(n)))}}}}}li=Ci,Ci.type=li.register("ESUeViewer",s.ESViewerStatusBar.type,li);class mi extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}di=mi,mi.type=di.register("ESUeViewer",s.ESGaussianSplatting.type,di);class fi extends Un{get es3DTileset(){return this._es3DTileset}constructor(A,e){if(super(A,e),this._es3DTileset=this.dv(new s.ES3DTileset(`${this.sceneObject.id}_ES3DTileset`)),e.viewer){A.mainClass=this._es3DTileset;{const t=this._es3DTileset;e.add(t),this.dispose((()=>e.delete(t))),this.d((0,s.track)([t,"allowPicking"],[A,"allowPicking"])),this.d((0,s.track)([t,"collision"],[A,"collision"])),this.d((0,s.bind)([t,"flyToParam"],[A,"flyToParam"])),this.d((0,s.bind)([t,"flyToParam"],[A,"flyToParam"])),this.d((0,s.bind)([t,"editing"],[A,"editing"])),this.d((0,s.track)([t,"url"],[A,"url"])),this.d((0,s.track)([t,"actorTag"],[A,"actorTag"])),this.d((0,s.track)([t,"materialMode"],[A,"materialMode"])),this.d((0,s.track)([t,"highlight"],[A,"highlight"])),this.d((0,s.track)([t,"maximumScreenSpaceError"],[A,"maximumScreenSpaceError"])),this.d((0,s.track)([t,"highlightID"],[A,"highlightID"])),this.d((0,s.track)([t,"highlightColor"],[A,"highlightColor"])),this.d((0,s.bind)([t,"offset"],[A,"offset"])),this.d((0,s.bind)([t,"rotation"],[A,"rotation"])),this.d((0,s.track)([t,"czmImageBasedLightingFactor"],[A,"czmImageBasedLightingFactor"])),this.d((0,s.track)([t,"czmLuminanceAtZenith"],[A,"czmLuminanceAtZenith"])),this.d((0,s.track)([t,"czmMaximumMemoryUsage"],[A,"czmMaximumMemoryUsage"])),this.d((0,s.track)([t,"czmClassificationType"],[A,"czmClassificationType"])),this.d((0,s.track)([t,"czmStyleJson"],[A,"czmStyleJson"])),this.d((0,s.track)([t,"czmBackFaceCulling"],[A,"czmBackFaceCulling"])),this.d((0,s.track)([t,"czmDebugShowBoundingVolume"],[A,"czmDebugShowBoundingVolume"])),this.d((0,s.track)([t,"czmDebugShowContentBoundingVolume"],[A,"czmDebugShowContentBoundingVolume"])),this.d((0,s.track)([t,"colorBlendMode"],[A,"colorBlendMode"])),this.d((0,s.track)([t,"cacheBytes"],[A,"cacheBytes"])),this.d((0,s.track)([t,"clippingPlaneEnabled"],[A,"clippingPlaneEnabled"])),this.d((0,s.track)([t,"unionClippingRegions"],[A,"unionClippingRegions"])),this.d((0,s.track)([t,"clippingPlaneEdgeColor"],[A,"clippingPlaneEdgeColor"])),this.d((0,s.track)([t,"clippingPlaneEdgeWidth"],[A,"clippingPlaneEdgeWidth"])),this.d((0,s.track)([t,"materialParams"],[A,"materialParams"])),this.d((0,s.bind)([t,"supportEdit"],[A,"supportEdit"])),this.d((0,s.bind)([t,"clippingPlanesId"],[A,"clippingPlanesId"])),this.d((0,s.bind)([t,"clippingPlaneIds"],[A,"clippingPlaneIds"])),this.d((0,s.bind)([t,"flattenedPlaneId"],[A,"flattenedPlaneId"])),this.d((0,s.bind)([t,"flattenedPlaneEnabled"],[A,"flattenedPlaneEnabled"])),this.d((0,s.bind)([t,"clippingPlaneId"],[A,"clippingPlaneId"])),this.d((0,s.bind)([t,"excavateId"],[A,"excavateId"]))}{const e=this._es3DTileset;this.d(A.refreshTilesetEvent.don((()=>{e.refreshTileset()}))),this.d(A.highlightFeatureEvent.don(((...A)=>{e.highlightFeature(...A)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((...A)=>{e.highlightFeatureAndFlyTo(...A)}))),this.d(A.setFeatureColorEvent.don(((...A)=>{e.setFeatureColor(...A)}))),this.d(A.setFeatureVisableEvent.don(((...A)=>{e.setFeatureVisable(...A)}))),this.d(A.resetFeatureStyleEvent.don(((...A)=>{e.resetFeatureStyle(...A)}))),this.d(A.flyInEvent.don(((...A)=>{e.flyIn(A[0])}))),this.d(A.flyToEvent.don(((...A)=>{e.flyTo(A[0])}))),this.d(A.calcFlyToParamEvent.don(((...A)=>{e.calcFlyToParam(...A)}))),this.d(A.calcFlyInParamEvent.don(((...A)=>{e.calcFlyInParam(...A)})))}{const e=this._es3DTileset;this.d(e.tilesetReady.don((e=>{A.tilesetReady.emit(e)}))),this.d(e.pickedEvent.don((e=>{A.pickedEvent.emit(new s.SceneObjectPickedInfo(A,e.childPickedInfo))})))}{const e=()=>{this.es3DTileset.show=A.show};e(),this.d(A.showChanged.don((()=>{e()})))}}else console.warn("viewer is undefined!")}}ui=fi,fi.type=ui.register("ESUeViewer",s.ESRtsFeatureEditing.type,ui);class vi extends Un{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}hi=vi,vi.type=hi.register("ESUeViewer",s.ESMsTileset.type,hi);class Qi extends dr{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n,r;t.callUeFunc({f:"update",p:{id:A.id,height:null!==(e=A.height)&&void 0!==e?e:s.ESGeoExtrudedPolygon.defaults.height,extrudedHeight:null!==(n=A.extrudedHeight)&&void 0!==n?n:s.ESGeoExtrudedPolygon.defaults.extrudedHeight,perPositionHeight:null!==(r=A.perPositionHeight)&&void 0!==r?r:s.ESGeoExtrudedPolygon.defaults.perPositionHeight}})},r=this.disposeVar((0,s.createNextAnimateFrameEvent)(A.heightChanged,A.extrudedHeightChanged,A.perPositionHeightChanged));this.dispose(r.disposableOn(n)),this.dispose(A.createdEvent.disposableOn(n))}}gi=Qi,Qi.type=gi.register("ESUeViewer",s.ESGeoExtrudedPolygon.type,gi);class Fi extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}let Ui;Bi=Fi,Fi.type=Bi.register("ESUeViewer",s.ESStaticMesh.type,Bi);try{const A=null!=="earthsdk3-ue"?"earthsdk3-ue":"-",e="3.0.1",t="2025-04-03T03:12:18.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="2b3e316f8957b8997dd380674d5ab14b845e345f",i=1743649938e3,o=((Date.now()-i)/36e5).toFixed(1),a=`%c🌏 ${A}%c ${e}.${s.slice(0,8)}.${t} (距今${o}个小时)\n%c${r?r+"\n":""}当前网站正在使用${A},此软件版权归${n}所有\n`;Ui=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","2b3e316f8957b8997dd380674d5ab14b845e345f")},get info(){return a},get date(){return"2025-04-03T03:12:18.000Z"},get author(){return"suplyang"},get version(){return"3.0.1"},get name(){return"earthsdk3-ue"},get commitId(){return"2b3e316f8957b8997dd380674d5ab14b845e345f"},print(A=!1){!A&&window._xe2_no_copy_print||console.info(this.info,"\n font-size: 18px;\n font-weight: 1000;\n line-height: 1;\n color: rgb(0, 120, 215);\n padding-top: 20px;\n padding-bottom: 10px;\n ","\n font-size: 10px;\n font-weight: 1000;\n color: rgb(0, 120, 215);\n ","\n font-size: 10px;\n line-height: 1.5;\n color: rgb(0, 120, 215);\n padding-bottom: 2px;\n padding-left: 35px;\n ")}}),window.g_XE3CopyRights=window.g_XE3CopyRights||{},window.g_XE3CopyRights[A]=Ui,window.g_earthsdk_copyright_print=null===(wi=window.g_earthsdk_copyright_print)||void 0===wi||wi,window.g_earthsdk_copyright_print&&Ui.print()}catch(A){}var Ei=r.ZW,yi=r.II,Si=r.LD,bi=r.Z8,Ii=r.Ci,Hi=r.B5,Ti=r.iE,Mi=r.sl,Li=r.KT,xi=r.ix,Pi=r.yS,Di=r.ku,Ri=r.bF,ki=r.Fr,Ki=r.bI,Oi=r.l$,Vi=r.nl,Gi=r.KZ,_i=r.u5,Ni=r.aQ,Wi=r.I$,Ji=r.$A,Xi=r.Kt,zi=r.CI,Yi=r.Cq,ji=r._b,$i=r.sx,Zi=r.r4,qi=r.N7,Ao=r.qr,eo=r.X8,to=r.Sj,no=r.vh,ro=r.hj,so=r.D4,io=r.ZN,oo=r.sJ,ao=r.EP,co=r.Ij,lo=r.Kx,uo=r.cU,ho=r.f8,go=r.yZ,Bo=r.Y0,wo=r.wZ,po=r.E2,Co=r.RR,mo=r.Wq,fo=r.X5,vo=r.vQ,Qo=r.m4,Fo=r.$D,Uo=r.M$,Eo=r.rO,yo=r.SM,So=r.YJ,bo=r.FU,Io=r.vP,Ho=r.Y1,To=r.tP,Mo=r.q5,Lo=r.HY,xo=r.Yn,Po=r.cL,Do=r.D9,Ro=r.W2,ko=r.iT,Ko=r.CB,Oo=r.VS,Vo=r.Mz,Go=r.C6,_o=r.EF,No=r.jv,Wo=r.vx,Jo=r.CT,Xo=r.DH,zo=r.h4,Yo=r.QC,jo=r.GK,$o=r.AP,Zo=r.bT,qo=r.mE,Aa=r.Pk,ea=r.$8,ta=r.Rp,na=r.CW,ra=r.Gu,sa=r.xp,ia=r.$E,oa=r.ZL,aa=r.Xw,ca=r.s2,la=r.Cv,da=r.lP,ua=r.vM,ha=r.Vl,ga=r.l1,Ba=r.he,wa=r.jk,pa=r.xG,Ca=r.eb,ma=r.XH,fa=r.d,va=r.o,Qa=r.nM,Fa=r.hQ,Ua=r.aF,Ea=r.kG,ya=r.mK,Sa=r.vK,ba=r.Zd,Ia=r.Nk,Ha=r.NP,Ta=r.h0,Ma=r.Hv,La=r.Ew,xa=r.Qq,Pa=r.rt,Da=r.mC,Ra=r.gQ,ka=r.Ky,Ka=r.yM,Oa=r.QN,Va=r.j3,Ga=r.rg,_a=r.Cb,Na=r.$I,Wa=r.bR,Ja=r.cd,Xa=r.qB,za=r.Y4,Ya=r.am,ja=r.PO,$a=r.Xh,Za=r.Nj,qa=r.QF,Ac=r.eK,ec=r.hT,tc=r.Kk,nc=r.H0,rc=r.Rk,sc=r.cz;export{Ei as ESUeViewer,yi as HighlightFeatureAndFlyToCallFunc,Si as HighlightFeatureCallFunc,bi as SetLayerColorCallFunc,Ii as SetLayerVisibleCallFunc,Hi as UeCloudViewerBase,Ti as UeES3DTileset,Mi as UeESAlarm,Li as UeESApertureEffect,xi as UeESAreaMeasurement,Pi as UeESBlastParticleSystem,Di as UeESBoxClipping,Ri as UeESCameraView,ki as UeESCameraVisibleRange,Ki as UeESCar,Oi as UeESClassification,Vi as UeESClippingPlane,Gi as UeESDataMesh,_i as UeESDatasmithRuntimeModel,Ni as UeESDirectionMeasurement,Wi as UeESDistanceMeasurement,Ji as UeESDynamicWater,Xi as UeESEntityCluster,zi as UeESExcavate,Yi as UeESFireParticleSystem,ji as UeESForestTileset,$i as UeESGaussianSplatting,Zi as UeESGeoDiv,qi as UeESGeoExtrudedPolygon,Ao as UeESGeoJson,eo as UeESGeoLineString,to as UeESGeoPolygon,no as UeESGeoRectangle,ro as UeESGeoVector,so as UeESGeoWater,io as UeESGltfModel,oo as UeESHeightMeasurement,ao as UeESHuman,co as UeESHumanPoi,lo as UeESImageLabel,uo as UeESImageryLayer,ho as UeESLabel,go as UeESLevelRuntimeModel,Bo as UeESLocalCircle,wo as UeESLocalPolygon,po as UeESLocalPolygonZ,Co as UeESLocalRectangle,mo as UeESLocalSkyBox,fo as UeESLocalVector,vo as UeESLocalVector2D,Qo as UeESLocationMeasurement,Fo as UeESMsTileset,Uo as UeESNavigator,Eo as UeESObjectWithLocation,yo as UeESPath,So as UeESPipeFence,bo as UeESPipeline,Io as UeESPipeserTileset,Ho as UeESPit,To as UeESPoi2D,Mo as UeESPoi3D,Lo as UeESPoiTileset,xo as UeESPolygonFence,Po as UeESPolygonFlattenedPlane,Do as UeESPolygonWithHole,Ro as UeESRtsFeatureEditing,ko as UeESRtsTileset,Ko as UeESSceneObject,Oo as UeESSeparateFoliage,Vo as UeESStaticMesh,Go as UeESSubmergingAnalysis,_o as UeESSunshineAnalysis,No as UeESSurfaceAreaMeasurement,Wo as UeESTerrainLayer,Jo as UeESTextLabel,Xo as UeESUEWidget,zo as UeESUnrealActor,Yo as UeESVideoFusion,jo as UeESViewShed,$o as UeESViewerStatusBar,Zo as UeESVisibilityAnalysis,qo as UeESVisualObject,Aa as UeESVolumeMeasurement,ea as UeESWidget,ta as UePickedInfo,na as bind3DTilesetByTagCallFunc,ra as bindActorByTagCallFunc,sa as bindImageryByTagCallFunc,ia as calcFlyToParamCallFunc,oa as callFunctionCallFunc,aa as captureCallFunc,ca as changeNavigationModeCallFunc,la as copyright,da as createActorByClassCallFunc,ua as destroyCallFunc,ha as flyInCallFunc,ga as flyInDefaultCameraCallFunc,Ba as flyToCallFunc,wa as generateMemReportCallFunc,pa as getAllSocketNamesByActorTagCallFunc,Ca as getBoundSphereCallFunc,ma as getBoundSphereWithChildrenCallFunc,fa as getCameraRelativeHeightCallFunc,va as getFillMaterialParamInfoCallFunc,Qa as getGlobalPropertyCallFunc,Fa as getHeightByLonLatCallFunc,Ua as getHeightByLonLatsCallFunc,Ea as getIdByComponentNameAndHitItemCallFunc,ya as getLonLatAltToScreenPositionCallFunc,Sa as getObjectByInfoCallFunc,ba as getStatusCallFunc,Ia as getStrokeMaterialParamInfoCallFunc,Ha as getVersionCallFunc,Ta as highlightActorByTagCallFunc,Ma as mountPakFiles,La as moveObjectsCallFunc,xa as pickCallFunc,Pa as pickPositionCallFunc,Da as quitCallFunc,Ra as refreshTilesetCallFunc,ka as resetWithCurrentCameraCallFunc,Ka as restoreOriginalSceneCallFunc,Oa as saveStringToFileCallFunc,Va as sendCustomMessageCallFunc,Ga as setGlobalPropertyCallFunc,_a as setNodePositionCallFunc,Na as setNodeRotationCallFunc,Wa as setNodeScaleCallFunc,Ja as smoothMoveCallFunc,Xa as smoothMoveOnGroundCallFunc,za as smoothMoveWithRotationCallFunc,Ya as smoothMoveWithRotationOnGroundCallFunc,ja as startEditingCallFunc,$a as startVoiceCallFunc,Za as stopVoiceCallFunc,qa as uePositionToLonLatAltCallFunc,Ac as unBind3DTilesetByIdCallFunc,ec as unBind3DTilesetByTagCallFunc,tc as unBindActorByIDCallFunc,nc as unBindActorByTagCallFunc,rc as unBindImageryByIdCallFunc,sc as unBindImageryByTagCallFunc};
|
|
2
|
+
import*as A from"earthsdk3";import*as e from"xbsj-base";var t={440:function(A){A.exports=function(){var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,n=arguments.length;t<n;t++)for(var r in e=arguments[t])Object.prototype.hasOwnProperty.call(e,r)&&(A[r]=e[r]);return A},t.apply(this,arguments)};function n(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}function r(A,e){var t,n,r,s,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){i.label=s[1];break}if(6===s[0]&&i.label<r[1]){i.label=r[1],r=s;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(s);break}r[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(A,i)}catch(A){s=[6,A],n=0}finally{t=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,o])}}}function s(A,e,t){if(t||2===arguments.length)for(var n,r=0,s=e.length;r<s;r++)!n&&r in e||(n||(n=Array.prototype.slice.call(e,0,r)),n[r]=e[r]);return A.concat(n||e)}for(var i=function(){function A(A,e,t,n){this.left=A,this.top=e,this.width=t,this.height=n}return A.prototype.add=function(e,t,n,r){return new A(this.left+e,this.top+t,this.width+n,this.height+r)},A.fromClientRect=function(e,t){return new A(t.left+e.windowBounds.left,t.top+e.windowBounds.top,t.width,t.height)},A.fromDOMRectList=function(e,t){var n=Array.from(t).find((function(A){return 0!==A.width}));return n?new A(n.left+e.windowBounds.left,n.top+e.windowBounds.top,n.width,n.height):A.EMPTY},A.EMPTY=new A(0,0,0,0),A}(),o=function(A,e){return i.fromClientRect(A,e.getBoundingClientRect())},a=function(A){for(var e=[],t=0,n=A.length;t<n;){var r=A.charCodeAt(t++);if(r>=55296&&r<=56319&&t<n){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&r)<<10)+(1023&s)+65536):(e.push(r),t--)}else e.push(r)}return e},c=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var n=[],r=-1,s="";++r<t;){var i=A[r];i<=65535?n.push(i):(i-=65536,n.push(55296+(i>>10),i%1024+56320)),(r+1===t||n.length>16384)&&(s+=String.fromCharCode.apply(String,n),n.length=0)}return s},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),u=0;u<64;u++)d[l.charCodeAt(u)]=u;for(var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),B=0;B<64;B++)g[h.charCodeAt(B)]=B;for(var w=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},p=function(){function A(A,e,t,n,r,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=n,this.index=r,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",m="undefined"==typeof Uint8Array?[]:new Uint8Array(256),f=0;f<64;f++)m[C.charCodeAt(f)]=f;var v=10,F=13,Q=15,U=17,E=18,y=19,S=20,b=21,I=22,H=24,T=25,M=26,L=27,x=28,P=30,D=32,R=33,k=34,K=35,O=37,V=38,G=39,_=40,N=42,W=[9001,65288],J="×",X="÷",z=function(A){var e,t,n,r=function(A){var e,t,n,r,s,i=.75*A.length,o=A.length,a=0;"="===A[A.length-1]&&(i--,"="===A[A.length-2]&&i--);var c="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(i):new Array(i),l=Array.isArray(c)?c:new Uint8Array(c);for(e=0;e<o;e+=4)t=g[A.charCodeAt(e)],n=g[A.charCodeAt(e+1)],r=g[A.charCodeAt(e+2)],s=g[A.charCodeAt(e+3)],l[a++]=t<<2|n>>4,l[a++]=(15&n)<<4|r>>2,l[a++]=(3&r)<<6|63&s;return c}(A),s=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=4)t.push(A[n+3]<<24|A[n+2]<<16|A[n+1]<<8|A[n]);return t}(r):new Uint32Array(r),i=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=2)t.push(A[n+1]<<8|A[n]);return t}(r):new Uint16Array(r),o=w(i,12,s[4]/2),a=2===s[5]?w(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,n):new Uint32Array(Array.prototype.slice.call(e,t,n)));return new p(s[0],s[1],s[2],s[3],o,a)}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),Y=[P,36],j=[1,2,3,5],$=[v,8],Z=[L,M],q=j.concat($),AA=[V,G,_,k,K],eA=[Q,F],tA=function(A,e,t,n){var r=n[t];if(Array.isArray(A)?-1!==A.indexOf(r):A===r)for(var s=t;s<=n.length;){if((a=n[++s])===e)return!0;if(a!==v)break}if(r===v)for(s=t;s>0;){var i=n[--s];if(Array.isArray(A)?-1!==A.indexOf(i):A===i)for(var o=t;o<=n.length;){var a;if((a=n[++o])===e)return!0;if(a!==v)break}if(i!==v)break}return!1},nA=function(A,e){for(var t=A;t>=0;){var n=e[t];if(n!==v)return n;t--}return 0},rA=function(A,e,t,n,r){if(0===t[n])return J;var s=n-1;if(Array.isArray(r)&&!0===r[s])return J;var i=s-1,o=s+1,a=e[s],c=i>=0?e[i]:0,l=e[o];if(2===a&&3===l)return J;if(-1!==j.indexOf(a))return"!";if(-1!==j.indexOf(l))return J;if(-1!==$.indexOf(l))return J;if(8===nA(s,e))return X;if(11===z.get(A[s]))return J;if((a===D||a===R)&&11===z.get(A[o]))return J;if(7===a||7===l)return J;if(9===a)return J;if(-1===[v,F,Q].indexOf(a)&&9===l)return J;if(-1!==[U,E,y,H,x].indexOf(l))return J;if(nA(s,e)===I)return J;if(tA(23,I,s,e))return J;if(tA([U,E],b,s,e))return J;if(tA(12,12,s,e))return J;if(a===v)return X;if(23===a||23===l)return J;if(16===l||16===a)return X;if(-1!==[F,Q,b].indexOf(l)||14===a)return J;if(36===c&&-1!==eA.indexOf(a))return J;if(a===x&&36===l)return J;if(l===S)return J;if(-1!==Y.indexOf(l)&&a===T||-1!==Y.indexOf(a)&&l===T)return J;if(a===L&&-1!==[O,D,R].indexOf(l)||-1!==[O,D,R].indexOf(a)&&l===M)return J;if(-1!==Y.indexOf(a)&&-1!==Z.indexOf(l)||-1!==Z.indexOf(a)&&-1!==Y.indexOf(l))return J;if(-1!==[L,M].indexOf(a)&&(l===T||-1!==[I,Q].indexOf(l)&&e[o+1]===T)||-1!==[I,Q].indexOf(a)&&l===T||a===T&&-1!==[T,x,H].indexOf(l))return J;if(-1!==[T,x,H,U,E].indexOf(l))for(var d=s;d>=0;){if((u=e[d])===T)return J;if(-1===[x,H].indexOf(u))break;d--}if(-1!==[L,M].indexOf(l))for(d=-1!==[U,E].indexOf(a)?i:s;d>=0;){var u;if((u=e[d])===T)return J;if(-1===[x,H].indexOf(u))break;d--}if(V===a&&-1!==[V,G,k,K].indexOf(l)||-1!==[G,k].indexOf(a)&&-1!==[G,_].indexOf(l)||-1!==[_,K].indexOf(a)&&l===_)return J;if(-1!==AA.indexOf(a)&&-1!==[S,M].indexOf(l)||-1!==AA.indexOf(l)&&a===L)return J;if(-1!==Y.indexOf(a)&&-1!==Y.indexOf(l))return J;if(a===H&&-1!==Y.indexOf(l))return J;if(-1!==Y.concat(T).indexOf(a)&&l===I&&-1===W.indexOf(A[o])||-1!==Y.concat(T).indexOf(l)&&a===E)return J;if(41===a&&41===l){for(var h=t[s],g=1;h>0&&41===e[--h];)g++;if(g%2!=0)return J}return a===D&&l===R?J:X},sA=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],n=[],r=[];return A.forEach((function(A,s){var i=z.get(A);if(i>50?(r.push(!0),i-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return n.push(s),t.push(16);if(4===i||11===i){if(0===s)return n.push(s),t.push(P);var o=t[s-1];return-1===q.indexOf(o)?(n.push(n[s-1]),t.push(o)):(n.push(s),t.push(P))}return n.push(s),31===i?t.push("strict"===e?b:O):i===N||29===i?t.push(P):43===i?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(O):t.push(P):void t.push(i)})),[n,t,r]}(A,e.lineBreak),n=t[0],r=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(r=r.map((function(A){return-1!==[T,P,N].indexOf(A)?O:A})));var i="keep-all"===e.wordBreak?s.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[n,r,i]},iA=function(){function A(A,e,t,n){this.codePoints=A,this.required="!"===e,this.start=t,this.end=n}return A.prototype.slice=function(){return c.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),oA=45,aA=43,cA=-1,lA=function(A){return A>=48&&A<=57},dA=function(A){return lA(A)||A>=65&&A<=70||A>=97&&A<=102},uA=function(A){return 10===A||9===A||32===A},hA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},gA=function(A){return hA(A)||lA(A)||A===oA},BA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},wA=function(A,e){return 92===A&&10!==e},pA=function(A,e,t){return A===oA?hA(e)||wA(e,t):!!hA(A)||!(92!==A||!wA(A,e))},CA=function(A,e,t){return A===aA||A===oA?!!lA(e)||46===e&&lA(t):lA(46===A?e:A)},mA=function(A){var e=0,t=1;A[e]!==aA&&A[e]!==oA||(A[e]===oA&&(t=-1),e++);for(var n=[];lA(A[e]);)n.push(A[e++]);var r=n.length?parseInt(c.apply(void 0,n),10):0;46===A[e]&&e++;for(var s=[];lA(A[e]);)s.push(A[e++]);var i=s.length,o=i?parseInt(c.apply(void 0,s),10):0;69!==A[e]&&101!==A[e]||e++;var a=1;A[e]!==aA&&A[e]!==oA||(A[e]===oA&&(a=-1),e++);for(var l=[];lA(A[e]);)l.push(A[e++]);var d=l.length?parseInt(c.apply(void 0,l),10):0;return t*(r+o*Math.pow(10,-i))*Math.pow(10,a*d)},fA={type:2},vA={type:3},FA={type:4},QA={type:13},UA={type:8},EA={type:21},yA={type:9},SA={type:10},bA={type:11},IA={type:12},HA={type:14},TA={type:23},MA={type:1},LA={type:25},xA={type:24},PA={type:26},DA={type:27},RA={type:28},kA={type:29},KA={type:31},OA={type:32},VA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(a(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==OA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),n=this.peekCodePoint(2);if(gA(e)||wA(t,n)){var r=pA(e,t,n)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),QA;break;case 39:return this.consumeStringToken(39);case 40:return fA;case 41:return vA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),HA;break;case aA:if(CA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return FA;case oA:var s=A,i=this.peekCodePoint(0),o=this.peekCodePoint(1);if(CA(s,i,o))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(pA(s,i,o))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(i===oA&&62===o)return this.consumeCodePoint(),this.consumeCodePoint(),xA;break;case 46:if(CA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var a=this.consumeCodePoint();if(42===a&&47===(a=this.consumeCodePoint()))return this.consumeToken();if(a===cA)return this.consumeToken()}break;case 58:return PA;case 59:return DA;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===oA&&this.peekCodePoint(2)===oA)return this.consumeCodePoint(),this.consumeCodePoint(),LA;break;case 64:var l=this.peekCodePoint(0),d=this.peekCodePoint(1),u=this.peekCodePoint(2);if(pA(l,d,u))return{type:7,value:this.consumeName()};break;case 91:return RA;case 92:if(wA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return kA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),UA;break;case 123:return bA;case 125:return IA;case 117:case 85:var h=this.peekCodePoint(0),g=this.peekCodePoint(1);return h!==aA||!dA(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),yA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),EA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),SA;break;case cA:return OA}return uA(A)?(this.consumeWhiteSpace(),KA):lA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):hA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:c(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();dA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(c.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(c.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var n=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===oA&&dA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var r=[];dA(e)&&r.length<6;)r.push(e),e=this.consumeCodePoint();return{type:30,start:n,end:parseInt(c.apply(void 0,r),16)}}return{type:30,start:n,end:n}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===cA)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===cA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),TA)}for(;;){var n=this.consumeCodePoint();if(n===cA||41===n)return{type:22,value:c.apply(void 0,A)};if(uA(n))return this.consumeWhiteSpace(),this.peekCodePoint(0)===cA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:c.apply(void 0,A)}):(this.consumeBadUrlRemnants(),TA);if(34===n||39===n||40===n||BA(n))return this.consumeBadUrlRemnants(),TA;if(92===n){if(!wA(n,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),TA;A.push(this.consumeEscapedCodePoint())}else A.push(n)}},A.prototype.consumeWhiteSpace=function(){for(;uA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===cA)return;wA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=c.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var n=this._value[t];if(n===cA||void 0===n||n===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===n)return this._value.splice(0,t),MA;if(92===n){var r=this._value[t+1];r!==cA&&void 0!==r&&(10===r?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):wA(n,r)&&(e+=this.consumeStringSlice(t),e+=c(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==aA&&t!==oA||A.push(this.consumeCodePoint());lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var n=this.peekCodePoint(1);if(46===t&&lA(n))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),n=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===t||101===t)&&((n===aA||n===oA)&&lA(r)||lA(n)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[mA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],n=this.peekCodePoint(0),r=this.peekCodePoint(1),s=this.peekCodePoint(2);return pA(n,r,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===n?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(dA(A)){for(var e=c(A);dA(this.peekCodePoint(0))&&e.length<6;)e+=c(this.consumeCodePoint());uA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===cA?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(gA(e))A+=c(e);else{if(!wA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=c(this.consumeEscapedCodePoint())}}},A}(),GA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new VA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||$A(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?OA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),_A=function(A){return 15===A.type},NA=function(A){return 17===A.type},WA=function(A){return 20===A.type},JA=function(A){return 0===A.type},XA=function(A,e){return WA(A)&&A.value===e},zA=function(A){return 31!==A.type},YA=function(A){return 31!==A.type&&4!==A.type},jA=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},$A=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},ZA=function(A){return 17===A.type||15===A.type},qA=function(A){return 16===A.type||ZA(A)},Ae=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},ee={type:17,number:0,flags:4},te={type:16,number:50,flags:4},ne={type:16,number:100,flags:4},re=function(A,e,t){var n=A[0],r=A[1];return[se(n,e),se(void 0!==r?r:n,t)]},se=function(A,e){if(16===A.type)return A.number/100*e;if(_A(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},ie="grad",oe="turn",ae=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case ie:return Math.PI/200*e.number;case"rad":return e.number;case oe:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},ce=function(A){return 15===A.type&&("deg"===A.unit||A.unit===ie||"rad"===A.unit||A.unit===oe)},le=function(A){switch(A.filter(WA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[ee,ee];case"to top":case"bottom":return de(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[ee,ne];case"to right":case"left":return de(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ne,ne];case"to bottom":case"top":return de(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ne,ee];case"to left":case"right":return de(270)}return 0},de=function(A){return Math.PI*A/180},ue=function(A,e){if(18===e.type){var t=fe[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var n=e.value.substring(0,1),r=e.value.substring(1,2),s=e.value.substring(2,3);return Be(parseInt(n+n,16),parseInt(r+r,16),parseInt(s+s,16),1)}if(4===e.value.length){n=e.value.substring(0,1),r=e.value.substring(1,2),s=e.value.substring(2,3);var i=e.value.substring(3,4);return Be(parseInt(n+n,16),parseInt(r+r,16),parseInt(s+s,16),parseInt(i+i,16)/255)}if(6===e.value.length)return n=e.value.substring(0,2),r=e.value.substring(2,4),s=e.value.substring(4,6),Be(parseInt(n,16),parseInt(r,16),parseInt(s,16),1);if(8===e.value.length)return n=e.value.substring(0,2),r=e.value.substring(2,4),s=e.value.substring(4,6),i=e.value.substring(6,8),Be(parseInt(n,16),parseInt(r,16),parseInt(s,16),parseInt(i,16)/255)}if(20===e.type){var o=Fe[e.value.toUpperCase()];if(void 0!==o)return o}return Fe.TRANSPARENT},he=function(A){return!(255&A)},ge=function(A){var e=255&A,t=255&A>>8,n=255&A>>16,r=255&A>>24;return e<255?"rgba("+r+","+n+","+t+","+e/255+")":"rgb("+r+","+n+","+t+")"},Be=function(A,e,t,n){return(A<<24|e<<16|t<<8|Math.round(255*n))>>>0},we=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},pe=function(A,e){var t=e.filter(YA);if(3===t.length){var n=t.map(we),r=n[0],s=n[1],i=n[2];return Be(r,s,i,1)}if(4===t.length){var o=t.map(we),a=(r=o[0],s=o[1],i=o[2],o[3]);return Be(r,s,i,a)}return 0};function Ce(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var me=function(A,e){var t=e.filter(YA),n=t[0],r=t[1],s=t[2],i=t[3],o=(17===n.type?de(n.number):ae(A,n))/(2*Math.PI),a=qA(r)?r.number/100:0,c=qA(s)?s.number/100:0,l=void 0!==i&&qA(i)?se(i,1):1;if(0===a)return Be(255*c,255*c,255*c,1);var d=c<=.5?c*(a+1):c+a-c*a,u=2*c-d,h=Ce(u,d,o+1/3),g=Ce(u,d,o),B=Ce(u,d,o-1/3);return Be(255*h,255*g,255*B,l)},fe={hsl:me,hsla:me,rgb:pe,rgba:pe},ve=function(A,e){return ue(A,GA.create(e).parseComponentValue())},Fe={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Qe={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(WA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Ue={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ee=function(A,e){var t=ue(A,e[0]),n=e[1];return n&&qA(n)?{color:t,stop:n}:{color:t,stop:null}},ye=function(A,e){var t=A[0],n=A[A.length-1];null===t.stop&&(t.stop=ee),null===n.stop&&(n.stop=ne);for(var r=[],s=0,i=0;i<A.length;i++){var o=A[i].stop;if(null!==o){var a=se(o,e);a>s?r.push(a):r.push(s),s=a}else r.push(null)}var c=null;for(i=0;i<r.length;i++){var l=r[i];if(null===l)null===c&&(c=i);else if(null!==c){for(var d=i-c,u=(l-r[c-1])/(d+1),h=1;h<=d;h++)r[c+h-1]=u*h;c=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,r[t]/e),0)}}))},Se=function(A,e,t){var n="number"==typeof A?A:function(A,e,t){var n=e/2,r=t/2,s=se(A[0],e)-n,i=r-se(A[1],t);return(Math.atan2(i,s)+2*Math.PI)%(2*Math.PI)}(A,e,t),r=Math.abs(e*Math.sin(n))+Math.abs(t*Math.cos(n)),s=e/2,i=t/2,o=r/2,a=Math.sin(n-Math.PI/2)*o,c=Math.cos(n-Math.PI/2)*o;return[r,s-c,s+c,i-a,i+a]},be=function(A,e){return Math.sqrt(A*A+e*e)},Ie=function(A,e,t,n,r){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var s=e[0],i=e[1],o=be(t-s,n-i);return(r?o<A.optimumDistance:o>A.optimumDistance)?{optimumCorner:e,optimumDistance:o}:A}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},He=function(A,e){var t=de(180),n=[];return jA(e).forEach((function(e,r){if(0===r){var s=e[0];if(20===s.type&&-1!==["top","left","right","bottom"].indexOf(s.value))return void(t=le(e));if(ce(s))return void(t=(ae(A,s)+de(270))%de(360))}var i=Ee(A,e);n.push(i)})),{angle:t,stops:n,type:1}},Te="closest-side",Me="farthest-side",Le="closest-corner",xe="farthest-corner",Pe="circle",De="ellipse",Re="cover",ke="contain",Ke=function(A,e){var t=0,n=3,r=[],s=[];return jA(e).forEach((function(e,i){var o=!0;if(0===i?o=e.reduce((function(A,e){if(WA(e))switch(e.value){case"center":return s.push(te),!1;case"top":case"left":return s.push(ee),!1;case"right":case"bottom":return s.push(ne),!1}else if(qA(e)||ZA(e))return s.push(e),!1;return A}),o):1===i&&(o=e.reduce((function(A,e){if(WA(e))switch(e.value){case Pe:return t=0,!1;case De:return t=1,!1;case ke:case Te:return n=0,!1;case Me:return n=1,!1;case Le:return n=2,!1;case Re:case xe:return n=3,!1}else if(ZA(e)||qA(e))return Array.isArray(n)||(n=[]),n.push(e),!1;return A}),o)),o){var a=Ee(A,e);r.push(a)}})),{size:n,shape:t,stops:r,position:s,type:2}},Oe=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var n=Ge[e.name];if(void 0===n)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return n(A,e.values)}throw new Error("Unsupported image type "+e.type)};var Ve,Ge={"linear-gradient":function(A,e){var t=de(180),n=[];return jA(e).forEach((function(e,r){if(0===r){var s=e[0];if(20===s.type&&"to"===s.value)return void(t=le(e));if(ce(s))return void(t=ae(A,s))}var i=Ee(A,e);n.push(i)})),{angle:t,stops:n,type:1}},"-moz-linear-gradient":He,"-ms-linear-gradient":He,"-o-linear-gradient":He,"-webkit-linear-gradient":He,"radial-gradient":function(A,e){var t=0,n=3,r=[],s=[];return jA(e).forEach((function(e,i){var o=!0;if(0===i){var a=!1;o=e.reduce((function(A,e){if(a)if(WA(e))switch(e.value){case"center":return s.push(te),A;case"top":case"left":return s.push(ee),A;case"right":case"bottom":return s.push(ne),A}else(qA(e)||ZA(e))&&s.push(e);else if(WA(e))switch(e.value){case Pe:return t=0,!1;case De:return t=1,!1;case"at":return a=!0,!1;case Te:return n=0,!1;case Re:case Me:return n=1,!1;case ke:case Le:return n=2,!1;case xe:return n=3,!1}else if(ZA(e)||qA(e))return Array.isArray(n)||(n=[]),n.push(e),!1;return A}),o)}if(o){var c=Ee(A,e);r.push(c)}})),{size:n,shape:t,stops:r,position:s,type:2}},"-moz-radial-gradient":Ke,"-ms-radial-gradient":Ke,"-o-radial-gradient":Ke,"-webkit-radial-gradient":Ke,"-webkit-gradient":function(A,e){var t=de(180),n=[],r=1;return jA(e).forEach((function(e,t){var s=e[0];if(0===t){if(WA(s)&&"linear"===s.value)return void(r=1);if(WA(s)&&"radial"===s.value)return void(r=2)}if(18===s.type)if("from"===s.name){var i=ue(A,s.values[0]);n.push({stop:ee,color:i})}else if("to"===s.name)i=ue(A,s.values[0]),n.push({stop:ne,color:i});else if("color-stop"===s.name){var o=s.values.filter(YA);if(2===o.length){i=ue(A,o[1]);var a=o[0];NA(a)&&n.push({stop:{type:16,number:100*a.number,flags:a.flags},color:i})}}})),1===r?{angle:(t+de(180))%de(360),stops:n,type:r}:{size:3,shape:0,stops:n,position:[],type:r}}},_e={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return YA(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!Ge[A.name])}(A)})).map((function(e){return Oe(A,e)}))}},Ne={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(WA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},We={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return jA(e).map((function(A){return A.filter(qA)})).map(Ae)}},Je={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return jA(e).map((function(A){return A.filter(WA).map((function(A){return A.value})).join(" ")})).map(Xe)}},Xe=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(Ve||(Ve={}));var ze,Ye={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return jA(e).map((function(A){return A.filter(je)}))}},je=function(A){return WA(A)||qA(A)},$e=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Ze=$e("top"),qe=$e("right"),At=$e("bottom"),et=$e("left"),tt=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return Ae(e.filter(qA))}}},nt=tt("top-left"),rt=tt("top-right"),st=tt("bottom-right"),it=tt("bottom-left"),ot=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},at=ot("top"),ct=ot("right"),lt=ot("bottom"),dt=ot("left"),ut=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}}},ht=ut("top"),gt=ut("right"),Bt=ut("bottom"),wt=ut("left"),pt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ct={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},mt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).reduce((function(A,e){return A|ft(e.value)}),0)}},ft=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},vt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Ft={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(ze||(ze={}));var Qt,Ut={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?ze.STRICT:ze.NORMAL}},Et={name:"line-height",initialValue:"normal",prefix:!1,type:4},yt=function(A,e){return WA(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:qA(A)?se(A,e):e},St={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:Oe(A,e)}},bt={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},It={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Ht=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},Tt=Ht("top"),Mt=Ht("right"),Lt=Ht("bottom"),xt=Ht("left"),Pt={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Dt={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Rt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kt=Rt("top"),Kt=Rt("right"),Ot=Rt("bottom"),Vt=Rt("left"),Gt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},_t={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Nt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&XA(e[0],"none")?[]:jA(e).map((function(e){for(var t={color:Fe.TRANSPARENT,offsetX:ee,offsetY:ee,blur:ee},n=0,r=0;r<e.length;r++){var s=e[r];ZA(s)?(0===n?t.offsetX=s:1===n?t.offsetY=s:t.blur=s,n++):t.color=ue(A,s)}return t}))}},Wt={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},Jt={name:"transform",initialValue:"none",prefix:!0,type:0,parse:function(A,e){if(20===e.type&&"none"===e.value)return null;if(18===e.type){var t=Xt[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported transform function "'+e.name+'"');return t(e.values)}return null}},Xt={matrix:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number}));return 6===e.length?e:null},matrix3d:function(A){var e=A.filter((function(A){return 17===A.type})).map((function(A){return A.number})),t=e[0],n=e[1];e[2],e[3];var r=e[4],s=e[5];e[6],e[7],e[8],e[9],e[10],e[11];var i=e[12],o=e[13];return e[14],e[15],16===e.length?[t,n,r,s,i,o]:null}},zt={type:16,number:50,flags:4},Yt=[zt,zt],jt={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(A,e){var t=e.filter(qA);return 2!==t.length?Yt:[t[0],t[1]]}},$t={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"hidden":return 1;case"collapse":return 2;default:return 0}}};!function(A){A.NORMAL="normal",A.BREAK_ALL="break-all",A.KEEP_ALL="keep-all"}(Qt||(Qt={}));for(var Zt={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"break-all":return Qt.BREAK_ALL;case"keep-all":return Qt.KEEP_ALL;default:return Qt.NORMAL}}},qt={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(A,e){if(20===e.type)return{auto:!0,order:0};if(NA(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},An={name:"time",parse:function(A,e){if(15===e.type)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")}},en={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:1}},tn={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},nn={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(A,e){return e.filter(WA).map((function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0})).filter((function(A){return 0!==A}))}},rn={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],n=[];return e.forEach((function(A){switch(A.type){case 20:case 0:t.push(A.value);break;case 17:t.push(A.number.toString());break;case 4:n.push(t.join(" ")),t.length=0}})),t.length&&n.push(t.join(" ")),n.map((function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"}))}},sn={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},on={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:WA(e)&&"bold"===e.value?700:400}},an={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(WA).map((function(A){return A.value}))}},cn={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},ln=function(A,e){return!!(A&e)},dn={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e}},un={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;for(var n=[],r=e.filter(zA),s=0;s<r.length;s++){var i=r[s],o=r[s+1];if(20===i.type){var a=o&&NA(o)?o.number:1;n.push({counter:i.value,increment:a})}}return n}},hn={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],n=e.filter(zA),r=0;r<n.length;r++){var s=n[r],i=n[r+1];if(WA(s)&&"none"!==s.value){var o=i&&NA(i)?i.number:0;t.push({counter:s.value,reset:o})}}return t}},gn={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map((function(e){return An.parse(A,e)}))}},Bn={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;var n=[],r=e.filter(JA);if(r.length%2!=0)return null;for(var s=0;s<r.length;s+=2){var i=r[s].value,o=r[s+1].value;n.push({open:i,close:o})}return n}},wn=function(A,e,t){if(!A)return"";var n=A[Math.min(e,A.length-1)];return n?t?n.open:n.close:""},pn={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&XA(e[0],"none")?[]:jA(e).map((function(e){for(var t={color:255,offsetX:ee,offsetY:ee,blur:ee,spread:ee,inset:!1},n=0,r=0;r<e.length;r++){var s=e[r];XA(s,"inset")?t.inset=!0:ZA(s)?(0===n?t.offsetX=s:1===n?t.offsetY=s:2===n?t.blur=s:t.spread=s,n++):t.color=ue(A,s)}return t}))}},Cn={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:function(A,e){var t=[];return e.filter(WA).forEach((function(A){switch(A.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2)}})),[0,1,2].forEach((function(A){-1===t.indexOf(A)&&t.push(A)})),t}},mn={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},fn={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}},vn=function(){function A(A,e){var t,n;this.animationDuration=Un(A,gn,e.animationDuration),this.backgroundClip=Un(A,Qe,e.backgroundClip),this.backgroundColor=Un(A,Ue,e.backgroundColor),this.backgroundImage=Un(A,_e,e.backgroundImage),this.backgroundOrigin=Un(A,Ne,e.backgroundOrigin),this.backgroundPosition=Un(A,We,e.backgroundPosition),this.backgroundRepeat=Un(A,Je,e.backgroundRepeat),this.backgroundSize=Un(A,Ye,e.backgroundSize),this.borderTopColor=Un(A,Ze,e.borderTopColor),this.borderRightColor=Un(A,qe,e.borderRightColor),this.borderBottomColor=Un(A,At,e.borderBottomColor),this.borderLeftColor=Un(A,et,e.borderLeftColor),this.borderTopLeftRadius=Un(A,nt,e.borderTopLeftRadius),this.borderTopRightRadius=Un(A,rt,e.borderTopRightRadius),this.borderBottomRightRadius=Un(A,st,e.borderBottomRightRadius),this.borderBottomLeftRadius=Un(A,it,e.borderBottomLeftRadius),this.borderTopStyle=Un(A,at,e.borderTopStyle),this.borderRightStyle=Un(A,ct,e.borderRightStyle),this.borderBottomStyle=Un(A,lt,e.borderBottomStyle),this.borderLeftStyle=Un(A,dt,e.borderLeftStyle),this.borderTopWidth=Un(A,ht,e.borderTopWidth),this.borderRightWidth=Un(A,gt,e.borderRightWidth),this.borderBottomWidth=Un(A,Bt,e.borderBottomWidth),this.borderLeftWidth=Un(A,wt,e.borderLeftWidth),this.boxShadow=Un(A,pn,e.boxShadow),this.color=Un(A,pt,e.color),this.direction=Un(A,Ct,e.direction),this.display=Un(A,mt,e.display),this.float=Un(A,vt,e.cssFloat),this.fontFamily=Un(A,rn,e.fontFamily),this.fontSize=Un(A,sn,e.fontSize),this.fontStyle=Un(A,cn,e.fontStyle),this.fontVariant=Un(A,an,e.fontVariant),this.fontWeight=Un(A,on,e.fontWeight),this.letterSpacing=Un(A,Ft,e.letterSpacing),this.lineBreak=Un(A,Ut,e.lineBreak),this.lineHeight=Un(A,Et,e.lineHeight),this.listStyleImage=Un(A,St,e.listStyleImage),this.listStylePosition=Un(A,bt,e.listStylePosition),this.listStyleType=Un(A,It,e.listStyleType),this.marginTop=Un(A,Tt,e.marginTop),this.marginRight=Un(A,Mt,e.marginRight),this.marginBottom=Un(A,Lt,e.marginBottom),this.marginLeft=Un(A,xt,e.marginLeft),this.opacity=Un(A,en,e.opacity);var r=Un(A,Pt,e.overflow);this.overflowX=r[0],this.overflowY=r[r.length>1?1:0],this.overflowWrap=Un(A,Dt,e.overflowWrap),this.paddingTop=Un(A,kt,e.paddingTop),this.paddingRight=Un(A,Kt,e.paddingRight),this.paddingBottom=Un(A,Ot,e.paddingBottom),this.paddingLeft=Un(A,Vt,e.paddingLeft),this.paintOrder=Un(A,Cn,e.paintOrder),this.position=Un(A,_t,e.position),this.textAlign=Un(A,Gt,e.textAlign),this.textDecorationColor=Un(A,tn,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=Un(A,nn,null!==(n=e.textDecorationLine)&&void 0!==n?n:e.textDecoration),this.textShadow=Un(A,Nt,e.textShadow),this.textTransform=Un(A,Wt,e.textTransform),this.transform=Un(A,Jt,e.transform),this.transformOrigin=Un(A,jt,e.transformOrigin),this.visibility=Un(A,$t,e.visibility),this.webkitTextStrokeColor=Un(A,mn,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=Un(A,fn,e.webkitTextStrokeWidth),this.wordBreak=Un(A,Zt,e.wordBreak),this.zIndex=Un(A,qt,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return he(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ln(this.display,4)||ln(this.display,33554432)||ln(this.display,268435456)||ln(this.display,536870912)||ln(this.display,67108864)||ln(this.display,134217728)},A}(),Fn=function(A,e){this.content=Un(A,dn,e.content),this.quotes=Un(A,Bn,e.quotes)},Qn=function(A,e){this.counterIncrement=Un(A,un,e.counterIncrement),this.counterReset=Un(A,hn,e.counterReset)},Un=function(A,e,t){var n=new VA,r=null!=t?t.toString():e.initialValue;n.write(r);var s=new GA(n.read());switch(e.type){case 2:var i=s.parseComponentValue();return e.parse(A,WA(i)?i.value:e.initialValue);case 0:return e.parse(A,s.parseComponentValue());case 1:return e.parse(A,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(e.format){case"angle":return ae(A,s.parseComponentValue());case"color":return ue(A,s.parseComponentValue());case"image":return Oe(A,s.parseComponentValue());case"length":var o=s.parseComponentValue();return ZA(o)?o:ee;case"length-percentage":var a=s.parseComponentValue();return qA(a)?a:ee;case"time":return An.parse(A,s.parseComponentValue())}}},En=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},yn=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,En(e,3),this.styles=new vn(A,window.getComputedStyle(e,null)),Hr(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=o(this.context,e),En(e,4)&&(this.flags|=16)},Sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bn="undefined"==typeof Uint8Array?[]:new Uint8Array(256),In=0;In<64;In++)bn[Sn.charCodeAt(In)]=In;for(var Hn=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},Tn=function(){function A(A,e,t,n,r,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=n,this.index=r,this.data=s}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),Mn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ln="undefined"==typeof Uint8Array?[]:new Uint8Array(256),xn=0;xn<64;xn++)Ln[Mn.charCodeAt(xn)]=xn;var Pn,Dn=8,Rn=9,kn=11,Kn=12,On=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var n=[],r=-1,s="";++r<t;){var i=A[r];i<=65535?n.push(i):(i-=65536,n.push(55296+(i>>10),i%1024+56320)),(r+1===t||n.length>16384)&&(s+=String.fromCharCode.apply(String,n),n.length=0)}return s},Vn=function(A){var e,t,n,r=function(A){var e,t,n,r,s,i=.75*A.length,o=A.length,a=0;"="===A[A.length-1]&&(i--,"="===A[A.length-2]&&i--);var c="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(i):new Array(i),l=Array.isArray(c)?c:new Uint8Array(c);for(e=0;e<o;e+=4)t=bn[A.charCodeAt(e)],n=bn[A.charCodeAt(e+1)],r=bn[A.charCodeAt(e+2)],s=bn[A.charCodeAt(e+3)],l[a++]=t<<2|n>>4,l[a++]=(15&n)<<4|r>>2,l[a++]=(3&r)<<6|63&s;return c}(A),s=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=4)t.push(A[n+3]<<24|A[n+2]<<16|A[n+1]<<8|A[n]);return t}(r):new Uint32Array(r),i=Array.isArray(r)?function(A){for(var e=A.length,t=[],n=0;n<e;n+=2)t.push(A[n+1]<<8|A[n]);return t}(r):new Uint16Array(r),o=Hn(i,12,s[4]/2),a=2===s[5]?Hn(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,n):new Uint32Array(Array.prototype.slice.call(e,t,n)));return new Tn(s[0],s[1],s[2],s[3],o,a)}("AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),Gn="×",_n=function(A){return Vn.get(A)},Nn=function(A,e,t){var n=t-2,r=e[n],s=e[t-1],i=e[t];if(2===s&&3===i)return Gn;if(2===s||3===s||4===s)return"÷";if(2===i||3===i||4===i)return"÷";if(s===Dn&&-1!==[Dn,Rn,kn,Kn].indexOf(i))return Gn;if(!(s!==kn&&s!==Rn||i!==Rn&&10!==i))return Gn;if((s===Kn||10===s)&&10===i)return Gn;if(13===i||5===i)return Gn;if(7===i)return Gn;if(1===s)return Gn;if(13===s&&14===i){for(;5===r;)r=e[--n];if(14===r)return Gn}if(15===s&&15===i){for(var o=0;15===r;)o++,r=e[--n];if(o%2==0)return Gn}return"÷"},Wn=function(A){var e=function(A){for(var e=[],t=0,n=A.length;t<n;){var r=A.charCodeAt(t++);if(r>=55296&&r<=56319&&t<n){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&r)<<10)+(1023&s)+65536):(e.push(r),t--)}else e.push(r)}return e}(A),t=e.length,n=0,r=0,s=e.map(_n);return{next:function(){if(n>=t)return{done:!0,value:null};for(var A=Gn;n<t&&(A=Nn(0,s,++n))===Gn;);if(A!==Gn||n===t){var i=On.apply(null,e.slice(r,n));return r=n,{value:i,done:!1}}return{done:!0,value:null}}}},Jn=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},Xn=function(A,e,t,n,r){var s="http://www.w3.org/2000/svg",i=document.createElementNS(s,"svg"),o=document.createElementNS(s,"foreignObject");return i.setAttributeNS(null,"width",A.toString()),i.setAttributeNS(null,"height",e.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",t.toString()),o.setAttributeNS(null,"y",n.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(r),i},zn=function(A){return new Promise((function(e,t){var n=new Image;n.onload=function(){return e(n)},n.onerror=t,n.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Yn={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var n=e.getBoundingClientRect(),r=Math.round(n.height);if(A.body.removeChild(t),123===r)return!0}}return!1}(document);return Object.defineProperty(Yn,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Yn.SUPPORT_RANGE_BOUNDS&&function(A){var e=A.createElement("boundtest");e.style.width="50px",e.style.display="block",e.style.fontSize="12px",e.style.letterSpacing="0px",e.style.wordSpacing="0px",A.body.appendChild(e);var t=A.createRange();e.innerHTML="function"==typeof"".repeat?"👨".repeat(10):"";var n=e.firstChild,r=a(n.data).map((function(A){return c(A)})),s=0,i={},o=r.every((function(A,e){t.setStart(n,s),t.setEnd(n,s+A.length);var r=t.getBoundingClientRect();s+=A.length;var o=r.x>i.x||r.y>i.y;return i=r,0===e||o}));return A.body.removeChild(e),o}(document);return Object.defineProperty(Yn,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),n=t.getContext("2d");if(!n)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{n.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Yn,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var n=e.getContext("2d");if(!n)return Promise.reject(!1);n.fillStyle="rgb(0, 255, 0)",n.fillRect(0,0,t,t);var r=new Image,s=e.toDataURL();r.src=s;var i=Xn(t,t,0,0,r);return n.fillStyle="red",n.fillRect(0,0,t,t),zn(i).then((function(e){n.drawImage(e,0,0);var r=n.getImageData(0,0,t,t).data;n.fillStyle="red",n.fillRect(0,0,t,t);var i=A.createElement("div");return i.style.backgroundImage="url("+s+")",i.style.height=t+"px",Jn(r)?zn(Xn(t,t,0,0,i)):Promise.reject(!1)})).then((function(A){return n.drawImage(A,0,0),Jn(n.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Yn,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Yn,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Yn,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Yn,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Yn,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},jn=function(A,e){this.text=A,this.bounds=e},$n=function(A,e){var t=e.ownerDocument;if(t){var n=t.createElement("html2canvaswrapper");n.appendChild(e.cloneNode(!0));var r=e.parentNode;if(r){r.replaceChild(n,e);var s=o(A,n);return n.firstChild&&r.replaceChild(n.firstChild,n),s}}return i.EMPTY},Zn=function(A,e,t){var n=A.ownerDocument;if(!n)throw new Error("Node has no owner document");var r=n.createRange();return r.setStart(A,e),r.setEnd(A,e+t),r},qn=function(A){if(Yn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Wn(A),n=[];!(e=t.next()).done;)e.value&&n.push(e.value.slice());return n}(A)},Ar=function(A,e){return 0!==e.letterSpacing?qn(A):function(A,e){if(Yn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return tr(A,e)}(A,e)},er=[32,160,4961,65792,65793,4153,4241],tr=function(A,e){for(var t,n=function(A,e){var t=a(A),n=sA(t,e),r=n[0],s=n[1],i=n[2],o=t.length,c=0,l=0;return{next:function(){if(l>=o)return{done:!0,value:null};for(var A=J;l<o&&(A=rA(t,s,r,++l,i))===J;);if(A!==J||l===o){var e=new iA(t,A,c,l);return c=l,{value:e,done:!1}}return{done:!0,value:null}}}}(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),r=[],s=function(){if(t.value){var A=t.value.slice(),e=a(A),n="";e.forEach((function(A){-1===er.indexOf(A)?n+=c(A):(n.length&&r.push(n),r.push(c(A)),n="")})),n.length&&r.push(n)}};!(t=n.next()).done;)s();return r},nr=function(A,e,t){this.text=rr(e.data,t.textTransform),this.textBounds=function(A,e,t,n){var r=Ar(e,t),s=[],o=0;return r.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(Yn.SUPPORT_RANGE_BOUNDS){var r=Zn(n,o,e.length).getClientRects();if(r.length>1){var a=qn(e),c=0;a.forEach((function(e){s.push(new jn(e,i.fromDOMRectList(A,Zn(n,c+o,e.length).getClientRects()))),c+=e.length}))}else s.push(new jn(e,i.fromDOMRectList(A,r)))}else{var l=n.splitText(e.length);s.push(new jn(e,$n(A,n))),n=l}else Yn.SUPPORT_RANGE_BOUNDS||(n=n.splitText(e.length));o+=e.length})),s}(A,this.text,t,e)},rr=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(sr,ir);case 2:return A.toUpperCase();default:return A}},sr=/(^|\s|:|-|\(|\))([a-z])/g,ir=function(A,e,t){return A.length>0?e+t.toUpperCase():A},or=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.src=t.currentSrc||t.src,n.intrinsicWidth=t.naturalWidth,n.intrinsicHeight=t.naturalHeight,n.context.cache.addImage(n.src),n}return e(t,A),t}(yn),ar=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.canvas=t,n.intrinsicWidth=t.width,n.intrinsicHeight=t.height,n}return e(t,A),t}(yn),cr=function(A){function t(e,t){var n=A.call(this,e,t)||this,r=new XMLSerializer,s=o(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),n.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(t)),n.intrinsicWidth=t.width.baseVal.value,n.intrinsicHeight=t.height.baseVal.value,n.context.cache.addImage(n.svg),n}return e(t,A),t}(yn),lr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.value=t.value,n}return e(t,A),t}(yn),dr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.start=t.start,n.reversed="boolean"==typeof t.reversed&&!0===t.reversed,n}return e(t,A),t}(yn),ur=[{type:15,flags:0,unit:"px",number:3}],hr=[{type:16,flags:0,number:50}],gr="checkbox",Br="radio",wr="password",pr=707406591,Cr=function(A){function t(e,t){var n,r,s,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(s=(r=t).type===wr?new Array(r.value.length+1).join("•"):r.value).length?r.placeholder||"":s,o.type!==gr&&o.type!==Br||(o.styles.backgroundColor=3739148031,o.styles.borderTopColor=o.styles.borderRightColor=o.styles.borderBottomColor=o.styles.borderLeftColor=2779096575,o.styles.borderTopWidth=o.styles.borderRightWidth=o.styles.borderBottomWidth=o.styles.borderLeftWidth=1,o.styles.borderTopStyle=o.styles.borderRightStyle=o.styles.borderBottomStyle=o.styles.borderLeftStyle=1,o.styles.backgroundClip=[0],o.styles.backgroundOrigin=[0],o.bounds=(n=o.bounds).width>n.height?new i(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width<n.height?new i(n.left,n.top+(n.height-n.width)/2,n.width,n.width):n),o.type){case gr:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=ur;break;case Br:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=hr}return o}return e(t,A),t}(yn),mr=function(A){function t(e,t){var n=A.call(this,e,t)||this,r=t.options[t.selectedIndex||0];return n.value=r&&r.text||"",n}return e(t,A),t}(yn),fr=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.value=t.value,n}return e(t,A),t}(yn),vr=function(A){function t(e,t){var n=A.call(this,e,t)||this;n.src=t.src,n.width=parseInt(t.width,10)||0,n.height=parseInt(t.height,10)||0,n.backgroundColor=n.styles.backgroundColor;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement){n.tree=Er(e,t.contentWindow.document.documentElement);var r=t.contentWindow.document.documentElement?ve(e,getComputedStyle(t.contentWindow.document.documentElement).backgroundColor):Fe.TRANSPARENT,s=t.contentWindow.document.body?ve(e,getComputedStyle(t.contentWindow.document.body).backgroundColor):Fe.TRANSPARENT;n.backgroundColor=he(r)?he(s)?n.styles.backgroundColor:s:r}}catch(A){}return n}return e(t,A),t}(yn),Fr=["OL","UL","MENU"],Qr=function(A,e,t,n){for(var r=e.firstChild,s=void 0;r;r=s)if(s=r.nextSibling,br(r)&&r.data.trim().length>0)t.textNodes.push(new nr(A,r,t.styles));else if(Ir(r))if(Nr(r)&&r.assignedNodes)r.assignedNodes().forEach((function(e){return Qr(A,e,t,n)}));else{var i=Ur(A,r);i.styles.isVisible()&&(yr(r,i,n)?i.flags|=4:Sr(i.styles)&&(i.flags|=2),-1!==Fr.indexOf(r.tagName)&&(i.flags|=8),t.elements.push(i),r.slot,r.shadowRoot?Qr(A,r.shadowRoot,i,n):Gr(r)||Pr(r)||_r(r)||Qr(A,r,i,n))}},Ur=function(A,e){return Kr(e)?new or(A,e):Rr(e)?new ar(A,e):Pr(e)?new cr(A,e):Mr(e)?new lr(A,e):Lr(e)?new dr(A,e):xr(e)?new Cr(A,e):_r(e)?new mr(A,e):Gr(e)?new fr(A,e):Or(e)?new vr(A,e):new yn(A,e)},Er=function(A,e){var t=Ur(A,e);return t.flags|=4,Qr(A,e,t,t),t},yr=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Dr(A)&&t.styles.isTransparent()},Sr=function(A){return A.isPositioned()||A.isFloating()},br=function(A){return A.nodeType===Node.TEXT_NODE},Ir=function(A){return A.nodeType===Node.ELEMENT_NODE},Hr=function(A){return Ir(A)&&void 0!==A.style&&!Tr(A)},Tr=function(A){return"object"==typeof A.className},Mr=function(A){return"LI"===A.tagName},Lr=function(A){return"OL"===A.tagName},xr=function(A){return"INPUT"===A.tagName},Pr=function(A){return"svg"===A.tagName},Dr=function(A){return"BODY"===A.tagName},Rr=function(A){return"CANVAS"===A.tagName},kr=function(A){return"VIDEO"===A.tagName},Kr=function(A){return"IMG"===A.tagName},Or=function(A){return"IFRAME"===A.tagName},Vr=function(A){return"STYLE"===A.tagName},Gr=function(A){return"TEXTAREA"===A.tagName},_r=function(A){return"SELECT"===A.tagName},Nr=function(A){return"SLOT"===A.tagName},Wr=function(A){return A.tagName.indexOf("-")>0},Jr=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,n=A.counterReset,r=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(r=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return r&&n.forEach((function(A){var t=e.counters[A.counter];s.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),s},A}(),Xr={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},zr={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Yr={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},jr={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},$r=function(A,e,t,n,r,s){return A<e||A>t?is(A,r,s.length>0):n.integers.reduce((function(e,t,r){for(;A>=t;)A-=t,e+=n.values[r];return e}),"")+s},Zr=function(A,e,t,n){var r="";do{t||A--,r=n(A)+r,A/=e}while(A*e>=e);return r},qr=function(A,e,t,n,r){var s=t-e+1;return(A<0?"-":"")+(Zr(Math.abs(A),s,n,(function(A){return c(Math.floor(A%s)+e)}))+r)},As=function(A,e,t){void 0===t&&(t=". ");var n=e.length;return Zr(Math.abs(A),n,!1,(function(A){return e[Math.floor(A%n)]}))+t},es=function(A,e,t,n,r,s){if(A<-9999||A>9999)return is(A,4,r.length>0);var i=Math.abs(A),o=r;if(0===i)return e[0]+o;for(var a=0;i>0&&a<=4;a++){var c=i%10;0===c&&ln(s,1)&&""!==o?o=e[c]+o:c>1||1===c&&0===a||1===c&&1===a&&ln(s,2)||1===c&&1===a&&ln(s,4)&&A>100||1===c&&a>1&&ln(s,8)?o=e[c]+(a>0?t[a-1]:"")+o:1===c&&a>0&&(o=t[a-1]+o),i=Math.floor(i/10)}return(A<0?n:"")+o},ts="十百千萬",ns="拾佰仟萬",rs="マイナス",ss="마이너스",is=function(A,e,t){var n=t?". ":"",r=t?"、":"",s=t?", ":"",i=t?" ":"";switch(e){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:var o=qr(A,48,57,!0,n);return o.length<4?"0"+o:o;case 4:return As(A,"〇一二三四五六七八九",r);case 6:return $r(A,1,3999,Xr,3,n).toLowerCase();case 7:return $r(A,1,3999,Xr,3,n);case 8:return qr(A,945,969,!1,n);case 9:return qr(A,97,122,!1,n);case 10:return qr(A,65,90,!1,n);case 11:return qr(A,1632,1641,!0,n);case 12:case 49:return $r(A,1,9999,zr,3,n);case 35:return $r(A,1,9999,zr,3,n).toLowerCase();case 13:return qr(A,2534,2543,!0,n);case 14:case 30:return qr(A,6112,6121,!0,n);case 15:return As(A,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return As(A,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return es(A,"零一二三四五六七八九",ts,"負",r,14);case 47:return es(A,"零壹貳參肆伍陸柒捌玖",ns,"負",r,15);case 42:return es(A,"零一二三四五六七八九",ts,"负",r,14);case 41:return es(A,"零壹贰叁肆伍陆柒捌玖",ns,"负",r,15);case 26:return es(A,"〇一二三四五六七八九","十百千万",rs,r,0);case 25:return es(A,"零壱弐参四伍六七八九","拾百千万",rs,r,7);case 31:return es(A,"영일이삼사오육칠팔구","십백천만",ss,s,7);case 33:return es(A,"零一二三四五六七八九","十百千萬",ss,s,0);case 32:return es(A,"零壹貳參四五六七八九","拾百千",ss,s,7);case 18:return qr(A,2406,2415,!0,n);case 20:return $r(A,1,19999,jr,3,n);case 21:return qr(A,2790,2799,!0,n);case 22:return qr(A,2662,2671,!0,n);case 22:return $r(A,1,10999,Yr,3,n);case 23:return As(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return As(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return qr(A,3302,3311,!0,n);case 28:return As(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return As(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return qr(A,3792,3801,!0,n);case 37:return qr(A,6160,6169,!0,n);case 38:return qr(A,4160,4169,!0,n);case 39:return qr(A,2918,2927,!0,n);case 40:return qr(A,1776,1785,!0,n);case 43:return qr(A,3046,3055,!0,n);case 44:return qr(A,3174,3183,!0,n);case 45:return qr(A,3664,3673,!0,n);case 46:return qr(A,3872,3881,!0,n);default:return qr(A,48,57,!0,n)}},os="data-html2canvas-ignore",as=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Jr,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,s=ls(A,e);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var i=A.defaultView.pageXOffset,o=A.defaultView.pageYOffset,a=s.contentWindow,c=a.document,l=hs(s).then((function(){return n(t,void 0,void 0,(function(){var A,t;return r(this,(function(n){switch(n.label){case 0:return this.scrolledElements.forEach(Cs),a&&(a.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||a.scrollY===e.top&&a.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(a.scrollX-e.left,a.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:c.fonts&&c.fonts.ready?[4,c.fonts.ready]:[3,2];case 1:n.sent(),n.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,us(c)]:[3,4];case 3:n.sent(),n.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(c,t)})).then((function(){return s}))]:[2,s]}}))}))}));return c.open(),c.write(ws(document.doctype)+"<html></html>"),ps(this.referenceElement.ownerDocument,i,o),c.replaceChild(c.adoptNode(this.documentElement),c.documentElement),c.close(),l},A.prototype.createElementClone=function(A){if(En(A,2),Rr(A))return this.createCanvasClone(A);if(kr(A))return this.createVideoClone(A);if(Vr(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Kr(e)&&(Kr(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Wr(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return Bs(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),n=A.cloneNode(!1);return n.textContent=t,n}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var n=A.cloneNode(!1);try{n.width=A.width,n.height=A.height;var r=A.getContext("2d"),s=n.getContext("2d");if(s)if(!this.options.allowTaint&&r)s.putImageData(r.getImageData(0,0,A.width,A.height),0,0);else{var i=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(i){var o=i.getContextAttributes();!1===(null==o?void 0:o.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}s.drawImage(A,0,0)}return n}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return n},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var n=A.ownerDocument.createElement("canvas");return n.width=A.offsetWidth,n.height=A.offsetHeight,n},A.prototype.appendChildNode=function(A,e,t){Ir(e)&&("SCRIPT"===e.tagName||e.hasAttribute(os)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&Ir(e)&&Vr(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var n=this,r=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;r;r=r.nextSibling)if(Ir(r)&&Nr(r)&&"function"==typeof r.assignedNodes){var s=r.assignedNodes();s.length&&s.forEach((function(A){return n.appendChildNode(e,A,t)}))}else this.appendChildNode(e,r,t)},A.prototype.cloneNode=function(A,e){if(br(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&Ir(A)&&(Hr(A)||Tr(A))){var n=this.createElementClone(A);n.style.transitionProperty="none";var r=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),i=t.getComputedStyle(A,":after");this.referenceElement===A&&Hr(n)&&(this.clonedReferenceElement=n),Dr(n)&&Fs(n);var o=this.counters.parse(new Qn(this.context,r)),a=this.resolvePseudoContent(A,n,s,Pn.BEFORE);Wr(A)&&(e=!0),kr(A)||this.cloneChildNodes(A,n,e),a&&n.insertBefore(a,n.firstChild);var c=this.resolvePseudoContent(A,n,i,Pn.AFTER);return c&&n.appendChild(c),this.counters.pop(o),(r&&(this.options.copyStyles||Tr(A))&&!Or(A)||e)&&Bs(r,n),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([n,A.scrollLeft,A.scrollTop]),(Gr(A)||_r(A))&&(Gr(n)||_r(n))&&(n.value=A.value),n}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,n){var r=this;if(t){var s=t.content,i=e.ownerDocument;if(i&&s&&"none"!==s&&"-moz-alt-content"!==s&&"none"!==t.display){this.counters.parse(new Qn(this.context,t));var o=new Fn(this.context,t),a=i.createElement("html2canvaspseudoelement");Bs(t,a),o.content.forEach((function(e){if(0===e.type)a.appendChild(i.createTextNode(e.value));else if(22===e.type){var t=i.createElement("img");t.src=e.value,t.style.opacity="1",a.appendChild(t)}else if(18===e.type){if("attr"===e.name){var n=e.values.filter(WA);n.length&&a.appendChild(i.createTextNode(A.getAttribute(n[0].value)||""))}else if("counter"===e.name){var s=e.values.filter(YA),c=s[0],l=s[1];if(c&&WA(c)){var d=r.counters.getCounterValue(c.value),u=l&&WA(l)?It.parse(r.context,l.value):3;a.appendChild(i.createTextNode(is(d,u,!1)))}}else if("counters"===e.name){var h=e.values.filter(YA),g=(c=h[0],h[1]);if(l=h[2],c&&WA(c)){var B=r.counters.getCounterValues(c.value),w=l&&WA(l)?It.parse(r.context,l.value):3,p=g&&0===g.type?g.value:"",C=B.map((function(A){return is(A,w,!1)})).join(p);a.appendChild(i.createTextNode(C))}}}else if(20===e.type)switch(e.value){case"open-quote":a.appendChild(i.createTextNode(wn(o.quotes,r.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(wn(o.quotes,--r.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(e.value))}})),a.className=ms+" "+fs;var c=n===Pn.BEFORE?" "+ms:" "+fs;return Tr(e)?e.className.baseValue+=c:e.className+=c,a}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Pn||(Pn={}));var cs,ls=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(os,"true"),A.body.appendChild(t),t},ds=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},us=function(A){return Promise.all([].slice.call(A.images,0).map(ds))},hs=function(A){return new Promise((function(e,t){var n=A.contentWindow;if(!n)return t("No window assigned for iframe");var r=n.document;n.onload=A.onload=function(){n.onload=A.onload=null;var t=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(t),e(A))}),50)}}))},gs=["all","d","content"],Bs=function(A,e){for(var t=A.length-1;t>=0;t--){var n=A.item(t);-1===gs.indexOf(n)&&e.style.setProperty(n,A.getPropertyValue(n))}return e},ws=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},ps=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},Cs=function(A){var e=A[0],t=A[1],n=A[2];e.scrollLeft=t,e.scrollTop=n},ms="___html2canvas___pseudoelement_before",fs="___html2canvas___pseudoelement_after",vs='{\n content: "" !important;\n display: none !important;\n}',Fs=function(A){Qs(A,"."+ms+":before"+vs+"\n ."+fs+":after"+vs)},Qs=function(A,e){var t=A.ownerDocument;if(t){var n=t.createElement("style");n.textContent=e,A.appendChild(n)}},Us=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),Es=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:Ms(A)||Is(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i=this;return r(this,(function(r){switch(r.label){case 0:return e=Us.isSameOrigin(A),t=!Hs(A)&&!0===this._options.useCORS&&Yn.SUPPORT_CORS_IMAGES&&!e,n=!Hs(A)&&!e&&!Ms(A)&&"string"==typeof this._options.proxy&&Yn.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Hs(A)||Ms(A)||n||t?(s=A,n?[4,this.proxy(s)]:[3,2]):[2];case 1:s=r.sent(),r.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var n=new Image;n.onload=function(){return A(n)},n.onerror=e,(Ts(s)||t)&&(n.crossOrigin="anonymous"),n.src=s,!0===n.complete&&setTimeout((function(){return A(n)}),500),i._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+i._options.imageTimeout+"ms) loading image")}),i._options.imageTimeout)}))];case 3:return[2,r.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var n=A.substring(0,256);return new Promise((function(r,s){var i=Yn.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=function(){if(200===o.status)if("text"===i)r(o.response);else{var A=new FileReader;A.addEventListener("load",(function(){return r(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(o.response)}else s("Failed to proxy resource "+n+" with status code "+o.status)},o.onerror=s;var a=t.indexOf("?")>-1?"&":"?";if(o.open("GET",""+t+a+"url="+encodeURIComponent(A)+"&responseType="+i),"text"!==i&&o instanceof XMLHttpRequest&&(o.responseType=i),e._options.imageTimeout){var c=e._options.imageTimeout;o.timeout=c,o.ontimeout=function(){return s("Timed out ("+c+"ms) proxying "+n)}}o.send()}))},A}(),ys=/^data:image\/svg\+xml/i,Ss=/^data:image\/.*;base64,/i,bs=/^data:image\/.*/i,Is=function(A){return Yn.SUPPORT_SVG_DRAWING||!Ls(A)},Hs=function(A){return bs.test(A)},Ts=function(A){return Ss.test(A)},Ms=function(A){return"blob"===A.substr(0,4)},Ls=function(A){return"svg"===A.substr(-3).toLowerCase()||ys.test(A)},xs=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),Ps=function(A,e,t){return new xs(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ds=function(){function A(A,e,t,n){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=n}return A.prototype.subdivide=function(e,t){var n=Ps(this.start,this.startControl,e),r=Ps(this.startControl,this.endControl,e),s=Ps(this.endControl,this.end,e),i=Ps(n,r,e),o=Ps(r,s,e),a=Ps(i,o,e);return t?new A(this.start,n,i,a):new A(a,o,s,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Rs=function(A){return 1===A.type},ks=function(A){var e=A.styles,t=A.bounds,n=re(e.borderTopLeftRadius,t.width,t.height),r=n[0],s=n[1],i=re(e.borderTopRightRadius,t.width,t.height),o=i[0],a=i[1],c=re(e.borderBottomRightRadius,t.width,t.height),l=c[0],d=c[1],u=re(e.borderBottomLeftRadius,t.width,t.height),h=u[0],g=u[1],B=[];B.push((r+o)/t.width),B.push((h+l)/t.width),B.push((s+g)/t.height),B.push((a+d)/t.height);var w=Math.max.apply(Math,B);w>1&&(r/=w,s/=w,o/=w,a/=w,l/=w,d/=w,h/=w,g/=w);var p=t.width-o,C=t.height-d,m=t.width-l,f=t.height-g,v=e.borderTopWidth,F=e.borderRightWidth,Q=e.borderBottomWidth,U=e.borderLeftWidth,E=se(e.paddingTop,A.bounds.width),y=se(e.paddingRight,A.bounds.width),S=se(e.paddingBottom,A.bounds.width),b=se(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||s>0?Ks(t.left+U/3,t.top+v/3,r-U/3,s-v/3,cs.TOP_LEFT):new xs(t.left+U/3,t.top+v/3),this.topRightBorderDoubleOuterBox=r>0||s>0?Ks(t.left+p,t.top+v/3,o-F/3,a-v/3,cs.TOP_RIGHT):new xs(t.left+t.width-F/3,t.top+v/3),this.bottomRightBorderDoubleOuterBox=l>0||d>0?Ks(t.left+m,t.top+C,l-F/3,d-Q/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-F/3,t.top+t.height-Q/3),this.bottomLeftBorderDoubleOuterBox=h>0||g>0?Ks(t.left+U/3,t.top+f,h-U/3,g-Q/3,cs.BOTTOM_LEFT):new xs(t.left+U/3,t.top+t.height-Q/3),this.topLeftBorderDoubleInnerBox=r>0||s>0?Ks(t.left+2*U/3,t.top+2*v/3,r-2*U/3,s-2*v/3,cs.TOP_LEFT):new xs(t.left+2*U/3,t.top+2*v/3),this.topRightBorderDoubleInnerBox=r>0||s>0?Ks(t.left+p,t.top+2*v/3,o-2*F/3,a-2*v/3,cs.TOP_RIGHT):new xs(t.left+t.width-2*F/3,t.top+2*v/3),this.bottomRightBorderDoubleInnerBox=l>0||d>0?Ks(t.left+m,t.top+C,l-2*F/3,d-2*Q/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-2*F/3,t.top+t.height-2*Q/3),this.bottomLeftBorderDoubleInnerBox=h>0||g>0?Ks(t.left+2*U/3,t.top+f,h-2*U/3,g-2*Q/3,cs.BOTTOM_LEFT):new xs(t.left+2*U/3,t.top+t.height-2*Q/3),this.topLeftBorderStroke=r>0||s>0?Ks(t.left+U/2,t.top+v/2,r-U/2,s-v/2,cs.TOP_LEFT):new xs(t.left+U/2,t.top+v/2),this.topRightBorderStroke=r>0||s>0?Ks(t.left+p,t.top+v/2,o-F/2,a-v/2,cs.TOP_RIGHT):new xs(t.left+t.width-F/2,t.top+v/2),this.bottomRightBorderStroke=l>0||d>0?Ks(t.left+m,t.top+C,l-F/2,d-Q/2,cs.BOTTOM_RIGHT):new xs(t.left+t.width-F/2,t.top+t.height-Q/2),this.bottomLeftBorderStroke=h>0||g>0?Ks(t.left+U/2,t.top+f,h-U/2,g-Q/2,cs.BOTTOM_LEFT):new xs(t.left+U/2,t.top+t.height-Q/2),this.topLeftBorderBox=r>0||s>0?Ks(t.left,t.top,r,s,cs.TOP_LEFT):new xs(t.left,t.top),this.topRightBorderBox=o>0||a>0?Ks(t.left+p,t.top,o,a,cs.TOP_RIGHT):new xs(t.left+t.width,t.top),this.bottomRightBorderBox=l>0||d>0?Ks(t.left+m,t.top+C,l,d,cs.BOTTOM_RIGHT):new xs(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=h>0||g>0?Ks(t.left,t.top+f,h,g,cs.BOTTOM_LEFT):new xs(t.left,t.top+t.height),this.topLeftPaddingBox=r>0||s>0?Ks(t.left+U,t.top+v,Math.max(0,r-U),Math.max(0,s-v),cs.TOP_LEFT):new xs(t.left+U,t.top+v),this.topRightPaddingBox=o>0||a>0?Ks(t.left+Math.min(p,t.width-F),t.top+v,p>t.width+F?0:Math.max(0,o-F),Math.max(0,a-v),cs.TOP_RIGHT):new xs(t.left+t.width-F,t.top+v),this.bottomRightPaddingBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-U),t.top+Math.min(C,t.height-Q),Math.max(0,l-F),Math.max(0,d-Q),cs.BOTTOM_RIGHT):new xs(t.left+t.width-F,t.top+t.height-Q),this.bottomLeftPaddingBox=h>0||g>0?Ks(t.left+U,t.top+Math.min(f,t.height-Q),Math.max(0,h-U),Math.max(0,g-Q),cs.BOTTOM_LEFT):new xs(t.left+U,t.top+t.height-Q),this.topLeftContentBox=r>0||s>0?Ks(t.left+U+b,t.top+v+E,Math.max(0,r-(U+b)),Math.max(0,s-(v+E)),cs.TOP_LEFT):new xs(t.left+U+b,t.top+v+E),this.topRightContentBox=o>0||a>0?Ks(t.left+Math.min(p,t.width+U+b),t.top+v+E,p>t.width+U+b?0:o-U+b,a-(v+E),cs.TOP_RIGHT):new xs(t.left+t.width-(F+y),t.top+v+E),this.bottomRightContentBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-(U+b)),t.top+Math.min(C,t.height+v+E),Math.max(0,l-(F+y)),d-(Q+S),cs.BOTTOM_RIGHT):new xs(t.left+t.width-(F+y),t.top+t.height-(Q+S)),this.bottomLeftContentBox=h>0||g>0?Ks(t.left+U+b,t.top+f,Math.max(0,h-(U+b)),g-(Q+S),cs.BOTTOM_LEFT):new xs(t.left+U+b,t.top+t.height-(Q+S))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(cs||(cs={}));var Ks=function(A,e,t,n,r){var s=(Math.sqrt(2)-1)/3*4,i=t*s,o=n*s,a=A+t,c=e+n;switch(r){case cs.TOP_LEFT:return new Ds(new xs(A,c),new xs(A,c-o),new xs(a-i,e),new xs(a,e));case cs.TOP_RIGHT:return new Ds(new xs(A,e),new xs(A+i,e),new xs(a,c-o),new xs(a,c));case cs.BOTTOM_RIGHT:return new Ds(new xs(a,e),new xs(a,e+o),new xs(A+i,c),new xs(A,c));case cs.BOTTOM_LEFT:default:return new Ds(new xs(a,c),new xs(a-i,c),new xs(A,e+o),new xs(A,e))}},Os=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Vs=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Gs=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},_s=function(A,e){this.path=A,this.target=e,this.type=1},Ns=function(A){this.opacity=A,this.type=2,this.target=6},Ws=function(A){return 1===A.type},Js=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Xs=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},zs=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new ks(this.container),this.container.styles.opacity<1&&this.effects.push(new Ns(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new Gs(t,n,r))}if(0!==this.container.styles.overflowX){var s=Os(this.curves),i=Vs(this.curves);Js(s,i)?this.effects.push(new _s(s,6)):(this.effects.push(new _s(s,2)),this.effects.push(new _s(i,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,n=this.effects.slice(0);t;){var r=t.effects.filter((function(A){return!Ws(A)}));if(e||0!==t.container.styles.position||!t.parent){if(n.unshift.apply(n,r),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var s=Os(t.curves),i=Vs(t.curves);Js(s,i)||n.unshift(new _s(i,6))}}else n.unshift.apply(n,r);t=t.parent}return n.filter((function(e){return ln(e.target,A)}))},A}(),Ys=function(A,e,t,n){A.container.elements.forEach((function(r){var s=ln(r.flags,4),i=ln(r.flags,2),o=new zs(r,A);ln(r.styles.display,2048)&&n.push(o);var a=ln(r.flags,8)?[]:n;if(s||i){var c=s||r.styles.isPositioned()?t:e,l=new Xs(o);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var d=r.styles.zIndex.order;if(d<0){var u=0;c.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(u=e,!1):u>0})),c.negativeZIndex.splice(u,0,l)}else if(d>0){var h=0;c.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(h=e+1,!1):h>0})),c.positiveZIndex.splice(h,0,l)}else c.zeroOrAutoZIndexOrTransformedOrOpacity.push(l)}else r.styles.isFloating()?c.nonPositionedFloats.push(l):c.nonPositionedInlineLevel.push(l);Ys(o,l,s?l:t,a)}else r.styles.isInlineLevel()?e.inlineLevel.push(o):e.nonInlineLevel.push(o),Ys(o,e,t,a);ln(r.flags,8)&&js(r,a)}))},js=function(A,e){for(var t=A instanceof dr?A.start:1,n=A instanceof dr&&A.reversed,r=0;r<e.length;r++){var s=e[r];s.container instanceof lr&&"number"==typeof s.container.value&&0!==s.container.value&&(t=s.container.value),s.listValue=is(t,s.container.styles.listStyleType,!0),t+=n?-1:1}},$s=function(A,e){switch(e){case 0:return qs(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return qs(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return qs(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);default:return qs(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}},Zs=function(A,e){var t=[];return Rs(A)?t.push(A.subdivide(.5,!1)):t.push(A),Rs(e)?t.push(e.subdivide(.5,!0)):t.push(e),t},qs=function(A,e,t,n){var r=[];return Rs(A)?r.push(A.subdivide(.5,!1)):r.push(A),Rs(t)?r.push(t.subdivide(.5,!0)):r.push(t),Rs(n)?r.push(n.subdivide(.5,!0).reverse()):r.push(n),Rs(e)?r.push(e.subdivide(.5,!1).reverse()):r.push(e),r},Ai=function(A){var e=A.bounds,t=A.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},ei=function(A){var e=A.styles,t=A.bounds,n=se(e.paddingLeft,t.width),r=se(e.paddingRight,t.width),s=se(e.paddingTop,t.width),i=se(e.paddingBottom,t.width);return t.add(n+e.borderLeftWidth,s+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+n+r),-(e.borderTopWidth+e.borderBottomWidth+s+i))},ti=function(A,e,t){var n=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundOrigin,e),A),r=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundClip,e),A),s=si(ii(A.styles.backgroundSize,e),t,n),i=s[0],o=s[1],a=re(ii(A.styles.backgroundPosition,e),n.width-i,n.height-o);return[oi(ii(A.styles.backgroundRepeat,e),a,s,n,r),Math.round(n.left+a[0]),Math.round(n.top+a[1]),i,o]},ni=function(A){return WA(A)&&A.value===Ve.AUTO},ri=function(A){return"number"==typeof A},si=function(A,e,t){var n=e[0],r=e[1],s=e[2],i=A[0],o=A[1];if(!i)return[0,0];if(qA(i)&&o&&qA(o))return[se(i,t.width),se(o,t.height)];var a=ri(s);if(WA(i)&&(i.value===Ve.CONTAIN||i.value===Ve.COVER))return ri(s)?t.width/t.height<s!=(i.value===Ve.COVER)?[t.width,t.width/s]:[t.height*s,t.height]:[t.width,t.height];var c=ri(n),l=ri(r),d=c||l;if(ni(i)&&(!o||ni(o)))return c&&l?[n,r]:a||d?d&&a?[c?n:r*s,l?r:n/s]:[c?n:t.width,l?r:t.height]:[t.width,t.height];if(a){var u=0,h=0;return qA(i)?u=se(i,t.width):qA(o)&&(h=se(o,t.height)),ni(i)?u=h*s:o&&!ni(o)||(h=u/s),[u,h]}var g=null,B=null;if(qA(i)?g=se(i,t.width):o&&qA(o)&&(B=se(o,t.height)),null===g||o&&!ni(o)||(B=c&&l?g/n*r:t.height),null!==B&&ni(i)&&(g=c&&l?B/r*n:t.width),null!==g&&null!==B)return[g,B];throw new Error("Unable to calculate background-size for element")},ii=function(A,e){var t=A[e];return void 0===t?A[0]:t},oi=function(A,e,t,n,r){var s=e[0],i=e[1],o=t[0],a=t[1];switch(A){case 2:return[new xs(Math.round(n.left),Math.round(n.top+i)),new xs(Math.round(n.left+n.width),Math.round(n.top+i)),new xs(Math.round(n.left+n.width),Math.round(a+n.top+i)),new xs(Math.round(n.left),Math.round(a+n.top+i))];case 3:return[new xs(Math.round(n.left+s),Math.round(n.top)),new xs(Math.round(n.left+s+o),Math.round(n.top)),new xs(Math.round(n.left+s+o),Math.round(n.height+n.top)),new xs(Math.round(n.left+s),Math.round(n.height+n.top))];case 1:return[new xs(Math.round(n.left+s),Math.round(n.top+i)),new xs(Math.round(n.left+s+o),Math.round(n.top+i)),new xs(Math.round(n.left+s+o),Math.round(n.top+i+a)),new xs(Math.round(n.left+s),Math.round(n.top+i+a))];default:return[new xs(Math.round(r.left),Math.round(r.top)),new xs(Math.round(r.left+r.width),Math.round(r.top)),new xs(Math.round(r.left+r.width),Math.round(r.height+r.top)),new xs(Math.round(r.left),Math.round(r.height+r.top))]}},ai="Hidden Text",ci=function(){function A(A){this._data={},this._document=A}return A.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),n=this._document.createElement("img"),r=this._document.createElement("span"),s=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",s.appendChild(t),n.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",n.width=1,n.height=1,n.style.margin="0",n.style.padding="0",n.style.verticalAlign="baseline",r.style.fontFamily=A,r.style.fontSize=e,r.style.margin="0",r.style.padding="0",r.appendChild(this._document.createTextNode(ai)),t.appendChild(r),t.appendChild(n);var i=n.offsetTop-r.offsetTop+2;t.removeChild(r),t.appendChild(this._document.createTextNode(ai)),t.style.lineHeight="normal",n.style.verticalAlign="super";var o=n.offsetTop-t.offsetTop+2;return s.removeChild(t),{baseline:i,middle:o}},A.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},A}(),li=function(A,e){this.context=A,this.options=e},di=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n._activeEffects=[],n.canvas=t.canvas?t.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),t.canvas||(n.canvas.width=Math.floor(t.width*t.scale),n.canvas.height=Math.floor(t.height*t.scale),n.canvas.style.width=t.width+"px",n.canvas.style.height=t.height+"px"),n.fontMetrics=new ci(document),n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-t.x,-t.y),n.ctx.textBaseline="bottom",n._activeEffects=[],n.context.logger.debug("Canvas renderer initialized ("+t.width+"x"+t.height+") with scale "+t.scale),n}return e(t,A),t.prototype.applyEffects=function(A){for(var e=this;this._activeEffects.length;)this.popEffect();A.forEach((function(A){return e.applyEffect(A)}))},t.prototype.applyEffect=function(A){this.ctx.save(),function(A){return 2===A.type}(A)&&(this.ctx.globalAlpha=A.opacity),function(A){return 0===A.type}(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),Ws(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},t.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},t.prototype.renderStack=function(A){return n(this,void 0,void 0,(function(){return r(this,(function(e){switch(e.label){case 0:return A.element.container.styles.isVisible()?[4,this.renderStackContent(A)]:[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},t.prototype.renderNode=function(A){return n(this,void 0,void 0,(function(){return r(this,(function(e){switch(e.label){case 0:return ln(A.container.flags,16),A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return e.sent(),[4,this.renderNodeContent(A)];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},t.prototype.renderTextWithLetterSpacing=function(A,e,t){var n=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):qn(A.text).reduce((function(e,r){return n.ctx.fillText(r,e,A.bounds.top+t),e+n.ctx.measureText(r).width}),A.bounds.left)},t.prototype.createFontStyle=function(A){var e=A.fontVariant.filter((function(A){return"normal"===A||"small-caps"===A})).join(""),t=wi(A.fontFamily).join(", "),n=_A(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,n,t].join(" "),t,n]},t.prototype.renderTextNode=function(A,e){return n(this,void 0,void 0,(function(){var t,n,s,i,o,a,c,l,d=this;return r(this,(function(r){return t=this.createFontStyle(e),n=t[0],s=t[1],i=t[2],this.ctx.font=n,this.ctx.direction=1===e.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",o=this.fontMetrics.getMetrics(s,i),a=o.baseline,c=o.middle,l=e.paintOrder,A.textBounds.forEach((function(A){l.forEach((function(t){switch(t){case 0:d.ctx.fillStyle=ge(e.color),d.renderTextWithLetterSpacing(A,e.letterSpacing,a);var n=e.textShadow;n.length&&A.text.trim().length&&(n.slice(0).reverse().forEach((function(t){d.ctx.shadowColor=ge(t.color),d.ctx.shadowOffsetX=t.offsetX.number*d.options.scale,d.ctx.shadowOffsetY=t.offsetY.number*d.options.scale,d.ctx.shadowBlur=t.blur.number,d.renderTextWithLetterSpacing(A,e.letterSpacing,a)})),d.ctx.shadowColor="",d.ctx.shadowOffsetX=0,d.ctx.shadowOffsetY=0,d.ctx.shadowBlur=0),e.textDecorationLine.length&&(d.ctx.fillStyle=ge(e.textDecorationColor||e.color),e.textDecorationLine.forEach((function(e){switch(e){case 1:d.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top+a),A.bounds.width,1);break;case 2:d.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top),A.bounds.width,1);break;case 3:d.ctx.fillRect(A.bounds.left,Math.ceil(A.bounds.top+c),A.bounds.width,1)}})));break;case 1:e.webkitTextStrokeWidth&&A.text.trim().length&&(d.ctx.strokeStyle=ge(e.webkitTextStrokeColor),d.ctx.lineWidth=e.webkitTextStrokeWidth,d.ctx.lineJoin=window.chrome?"miter":"round",d.ctx.strokeText(A.text,A.bounds.left,A.bounds.top+a)),d.ctx.strokeStyle="",d.ctx.lineWidth=0,d.ctx.lineJoin="miter"}}))})),[2]}))}))},t.prototype.renderReplacedElement=function(A,e,t){if(t&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var n=ei(A),r=Vs(e);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,n.left,n.top,n.width,n.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return n(this,void 0,void 0,(function(){var e,n,s,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return r(this,(function(r){switch(r.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,n=A.curves,s=e.styles,o=0,a=e.textNodes,r.label=1;case 1:return o<a.length?(c=a[o],[4,this.renderTextNode(c,s)]):[3,4];case 2:r.sent(),r.label=3;case 3:return o++,[3,1];case 4:if(!(e instanceof or))return[3,8];r.label=5;case 5:return r.trys.push([5,7,,8]),[4,this.context.cache.match(e.src)];case 6:return C=r.sent(),this.renderReplacedElement(e,n,C),[3,8];case 7:return r.sent(),this.context.logger.error("Error loading image "+e.src),[3,8];case 8:if(e instanceof ar&&this.renderReplacedElement(e,n,e.canvas),!(e instanceof cr))return[3,12];r.label=9;case 9:return r.trys.push([9,11,,12]),[4,this.context.cache.match(e.svg)];case 10:return C=r.sent(),this.renderReplacedElement(e,n,C),[3,12];case 11:return r.sent(),this.context.logger.error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof vr&&e.tree?[4,new t(this.context,{scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,width:e.width,height:e.height}).render(e.tree)]:[3,14];case 13:l=r.sent(),e.width&&e.height&&this.ctx.drawImage(l,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height),r.label=14;case 14:if(e instanceof Cr&&(d=Math.min(e.bounds.width,e.bounds.height),e.type===gr?e.checked&&(this.ctx.save(),this.path([new xs(e.bounds.left+.39363*d,e.bounds.top+.79*d),new xs(e.bounds.left+.16*d,e.bounds.top+.5549*d),new xs(e.bounds.left+.27347*d,e.bounds.top+.44071*d),new xs(e.bounds.left+.39694*d,e.bounds.top+.5649*d),new xs(e.bounds.left+.72983*d,e.bounds.top+.23*d),new xs(e.bounds.left+.84*d,e.bounds.top+.34085*d),new xs(e.bounds.left+.39363*d,e.bounds.top+.79*d)]),this.ctx.fillStyle=ge(pr),this.ctx.fill(),this.ctx.restore()):e.type===Br&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+d/2,e.bounds.top+d/2,d/4,0,2*Math.PI,!0),this.ctx.fillStyle=ge(pr),this.ctx.fill(),this.ctx.restore())),ui(e)&&e.value.length){switch(u=this.createFontStyle(s),f=u[0],h=u[1],g=this.fontMetrics.getMetrics(f,h).baseline,this.ctx.font=f,this.ctx.fillStyle=ge(s.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=gi(e.styles.textAlign),v=ei(e),B=0,e.styles.textAlign){case 1:B+=v.width/2;break;case 2:B+=v.width}w=v.add(B,0,0,-v.height/2+1),this.ctx.save(),this.path([new xs(v.left,v.top),new xs(v.left+v.width,v.top),new xs(v.left+v.width,v.top+v.height),new xs(v.left,v.top+v.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new jn(e.value,w),s.letterSpacing,g),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!ln(e.styles.display,2048))return[3,20];if(null===e.styles.listStyleImage)return[3,19];if(0!==(p=e.styles.listStyleImage).type)return[3,18];C=void 0,m=p.url,r.label=15;case 15:return r.trys.push([15,17,,18]),[4,this.context.cache.match(m)];case 16:return C=r.sent(),this.ctx.drawImage(C,e.bounds.left-(C.width+10),e.bounds.top),[3,18];case 17:return r.sent(),this.context.logger.error("Error loading list-style-image "+m),[3,18];case 18:return[3,20];case 19:A.listValue&&-1!==e.styles.listStyleType&&(f=this.createFontStyle(s)[0],this.ctx.font=f,this.ctx.fillStyle=ge(s.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",v=new i(e.bounds.left,e.bounds.top+se(e.styles.paddingTop,e.bounds.width),e.bounds.width,yt(s.lineHeight,s.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new jn(A.listValue,v),s.letterSpacing,yt(s.lineHeight,s.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),r.label=20;case 20:return[2]}}))}))},t.prototype.renderStackContent=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o,a,c,l,d,u,h,g,B,w;return r(this,(function(r){switch(r.label){case 0:return ln(A.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:r.sent(),e=0,t=A.negativeZIndex,r.label=2;case 2:return e<t.length?(w=t[e],[4,this.renderStack(w)]):[3,5];case 3:r.sent(),r.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:r.sent(),n=0,s=A.nonInlineLevel,r.label=7;case 7:return n<s.length?(w=s[n],[4,this.renderNode(w)]):[3,10];case 8:r.sent(),r.label=9;case 9:return n++,[3,7];case 10:i=0,o=A.nonPositionedFloats,r.label=11;case 11:return i<o.length?(w=o[i],[4,this.renderStack(w)]):[3,14];case 12:r.sent(),r.label=13;case 13:return i++,[3,11];case 14:a=0,c=A.nonPositionedInlineLevel,r.label=15;case 15:return a<c.length?(w=c[a],[4,this.renderStack(w)]):[3,18];case 16:r.sent(),r.label=17;case 17:return a++,[3,15];case 18:l=0,d=A.inlineLevel,r.label=19;case 19:return l<d.length?(w=d[l],[4,this.renderNode(w)]):[3,22];case 20:r.sent(),r.label=21;case 21:return l++,[3,19];case 22:u=0,h=A.zeroOrAutoZIndexOrTransformedOrOpacity,r.label=23;case 23:return u<h.length?(w=h[u],[4,this.renderStack(w)]):[3,26];case 24:r.sent(),r.label=25;case 25:return u++,[3,23];case 26:g=0,B=A.positiveZIndex,r.label=27;case 27:return g<B.length?(w=B[g],[4,this.renderStack(w)]):[3,30];case 28:r.sent(),r.label=29;case 29:return g++,[3,27];case 30:return[2]}}))}))},t.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},t.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},t.prototype.formatPath=function(A){var e=this;A.forEach((function(A,t){var n=Rs(A)?A.start:A;0===t?e.ctx.moveTo(n.x,n.y):e.ctx.lineTo(n.x,n.y),Rs(A)&&e.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)}))},t.prototype.renderRepeat=function(A,e,t,n){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,n),this.ctx.fill(),this.ctx.translate(-t,-n)},t.prototype.resizeImage=function(A,e,t){var n;if(A.width===e&&A.height===t)return A;var r=(null!==(n=this.canvas.ownerDocument)&&void 0!==n?n:document).createElement("canvas");return r.width=Math.max(1,e),r.height=Math.max(1,t),r.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),r},t.prototype.renderBackgroundImage=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o;return r(this,(function(a){switch(a.label){case 0:e=A.styles.backgroundImage.length-1,t=function(t){var s,i,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v,F,Q,U,E,y,S,b,I,H,T,M,L,x,P;return r(this,(function(r){switch(r.label){case 0:if(0!==t.type)return[3,5];s=void 0,i=t.url,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,n.context.cache.match(i)];case 2:return s=r.sent(),[3,4];case 3:return r.sent(),n.context.logger.error("Error loading background-image "+i),[3,4];case 4:return s&&(o=ti(A,e,[s.width,s.height,s.width/s.height]),f=o[0],y=o[1],S=o[2],Q=o[3],U=o[4],C=n.ctx.createPattern(n.resizeImage(s,Q,U),"repeat"),n.renderRepeat(f,C,y,S)),[3,6];case 5:1===t.type?(a=ti(A,e,[null,null,null]),f=a[0],y=a[1],S=a[2],Q=a[3],U=a[4],c=Se(t.angle,Q,U),l=c[0],d=c[1],u=c[2],h=c[3],g=c[4],(B=document.createElement("canvas")).width=Q,B.height=U,w=B.getContext("2d"),p=w.createLinearGradient(d,h,u,g),ye(t.stops,l).forEach((function(A){return p.addColorStop(A.stop,ge(A.color))})),w.fillStyle=p,w.fillRect(0,0,Q,U),Q>0&&U>0&&(C=n.ctx.createPattern(B,"repeat"),n.renderRepeat(f,C,y,S))):function(A){return 2===A.type}(t)&&(m=ti(A,e,[null,null,null]),f=m[0],v=m[1],F=m[2],Q=m[3],U=m[4],E=0===t.position.length?[te]:t.position,y=se(E[0],Q),S=se(E[E.length-1],U),b=function(A,e,t,n,r){var s=0,i=0;switch(A.size){case 0:0===A.shape?s=i=Math.min(Math.abs(e),Math.abs(e-n),Math.abs(t),Math.abs(t-r)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-n)),i=Math.min(Math.abs(t),Math.abs(t-r)));break;case 2:if(0===A.shape)s=i=Math.min(be(e,t),be(e,t-r),be(e-n,t),be(e-n,t-r));else if(1===A.shape){var o=Math.min(Math.abs(t),Math.abs(t-r))/Math.min(Math.abs(e),Math.abs(e-n)),a=Ie(n,r,e,t,!0),c=a[0],l=a[1];i=o*(s=be(c-e,(l-t)/o))}break;case 1:0===A.shape?s=i=Math.max(Math.abs(e),Math.abs(e-n),Math.abs(t),Math.abs(t-r)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-n)),i=Math.max(Math.abs(t),Math.abs(t-r)));break;case 3:if(0===A.shape)s=i=Math.max(be(e,t),be(e,t-r),be(e-n,t),be(e-n,t-r));else if(1===A.shape){o=Math.max(Math.abs(t),Math.abs(t-r))/Math.max(Math.abs(e),Math.abs(e-n));var d=Ie(n,r,e,t,!1);c=d[0],l=d[1],i=o*(s=be(c-e,(l-t)/o))}}return Array.isArray(A.size)&&(s=se(A.size[0],n),i=2===A.size.length?se(A.size[1],r):s),[s,i]}(t,y,S,Q,U),I=b[0],H=b[1],I>0&&H>0&&(T=n.ctx.createRadialGradient(v+y,F+S,0,v+y,F+S,I),ye(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,ge(A.color))})),n.path(f),n.ctx.fillStyle=T,I!==H?(M=A.bounds.left+.5*A.bounds.width,L=A.bounds.top+.5*A.bounds.height,P=1/(x=H/I),n.ctx.save(),n.ctx.translate(M,L),n.ctx.transform(1,0,0,x,0,0),n.ctx.translate(-M,-L),n.ctx.fillRect(v,P*(F-L)+L,Q,U*P),n.ctx.restore()):n.ctx.fill())),r.label=6;case 6:return e--,[2]}}))},n=this,s=0,i=A.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return s<i.length?(o=i[s],[5,t(o)]):[3,4];case 2:a.sent(),a.label=3;case 3:return s++,[3,1];case 4:return[2]}}))}))},t.prototype.renderSolidBorder=function(A,e,t){return n(this,void 0,void 0,(function(){return r(this,(function(n){return this.path($s(t,e)),this.ctx.fillStyle=ge(A),this.ctx.fill(),[2]}))}))},t.prototype.renderDoubleBorder=function(A,e,t,s){return n(this,void 0,void 0,(function(){var n,i;return r(this,(function(r){switch(r.label){case 0:return e<3?[4,this.renderSolidBorder(A,t,s)]:[3,2];case 1:return r.sent(),[2];case 2:return n=function(A,e){switch(e){case 0:return qs(A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox,A.topRightBorderBox,A.topRightBorderDoubleOuterBox);case 1:return qs(A.topRightBorderBox,A.topRightBorderDoubleOuterBox,A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox);case 2:return qs(A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox,A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox);default:return qs(A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox,A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox)}}(s,t),this.path(n),this.ctx.fillStyle=ge(A),this.ctx.fill(),i=function(A,e){switch(e){case 0:return qs(A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox,A.topRightBorderDoubleInnerBox,A.topRightPaddingBox);case 1:return qs(A.topRightBorderDoubleInnerBox,A.topRightPaddingBox,A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox);case 2:return qs(A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox,A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox);default:return qs(A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox,A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox)}}(s,t),this.path(i),this.ctx.fill(),[2]}}))}))},t.prototype.renderNodeBackgroundAndBorders=function(A){return n(this,void 0,void 0,(function(){var e,t,n,s,i,o,a,c,l=this;return r(this,(function(r){switch(r.label){case 0:return this.applyEffects(A.getEffects(2)),e=A.container.styles,t=!he(e.backgroundColor)||e.backgroundImage.length,n=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],s=hi(ii(e.backgroundClip,0),A.curves),t||e.boxShadow.length?(this.ctx.save(),this.path(s),this.ctx.clip(),he(e.backgroundColor)||(this.ctx.fillStyle=ge(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(A.container)]):[3,2];case 1:r.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){l.ctx.save();var t,n,r,s,i,o=Os(A.curves),a=e.inset?0:1e4,c=(t=o,n=-a+(e.inset?1:-1)*e.spread.number,r=(e.inset?1:-1)*e.spread.number,s=e.spread.number*(e.inset?-2:2),i=e.spread.number*(e.inset?-2:2),t.map((function(A,e){switch(e){case 0:return A.add(n,r);case 1:return A.add(n+s,r);case 2:return A.add(n+s,r+i);case 3:return A.add(n,r+i)}return A})));e.inset?(l.path(o),l.ctx.clip(),l.mask(c)):(l.mask(o),l.ctx.clip(),l.path(c)),l.ctx.shadowOffsetX=e.offsetX.number+a,l.ctx.shadowOffsetY=e.offsetY.number,l.ctx.shadowColor=ge(e.color),l.ctx.shadowBlur=e.blur.number,l.ctx.fillStyle=e.inset?ge(e.color):"rgba(0,0,0,1)",l.ctx.fill(),l.ctx.restore()})),r.label=2;case 2:i=0,o=0,a=n,r.label=3;case 3:return o<a.length?0!==(c=a[o]).style&&!he(c.color)&&c.width>0?2!==c.style?[3,5]:[4,this.renderDashedDottedBorder(c.color,c.width,i,A.curves,2)]:[3,11]:[3,13];case 4:return r.sent(),[3,11];case 5:return 3!==c.style?[3,7]:[4,this.renderDashedDottedBorder(c.color,c.width,i,A.curves,3)];case 6:return r.sent(),[3,11];case 7:return 4!==c.style?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,i,A.curves)];case 8:return r.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,i,A.curves)];case 10:r.sent(),r.label=11;case 11:i++,r.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,i){return n(this,void 0,void 0,(function(){var n,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return r(this,(function(r){return this.ctx.save(),n=function(A,e){switch(e){case 0:return Zs(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return Zs(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return Zs(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return Zs(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(s,t),o=$s(s,t),2===i&&(this.path(o),this.ctx.clip()),Rs(o[0])?(a=o[0].start.x,c=o[0].start.y):(a=o[0].x,c=o[0].y),Rs(o[1])?(l=o[1].end.x,d=o[1].end.y):(l=o[1].x,d=o[1].y),u=0===t||2===t?Math.abs(a-l):Math.abs(c-d),this.ctx.beginPath(),3===i?this.formatPath(n):this.formatPath(o.slice(0,2)),h=e<3?3*e:2*e,g=e<3?2*e:e,3===i&&(h=e,g=e),B=!0,u<=2*h?B=!1:u<=2*h+g?(h*=w=u/(2*h+g),g*=w):(p=Math.floor((u+g)/(h+g)),C=(u-p*h)/(p-1),g=(m=(u-(p+1)*h)/p)<=0||Math.abs(g-C)<Math.abs(g-m)?C:m),B&&(3===i?this.ctx.setLineDash([0,h+g]):this.ctx.setLineDash([h,g])),3===i?(this.ctx.lineCap="round",this.ctx.lineWidth=e):this.ctx.lineWidth=2*e+1.1,this.ctx.strokeStyle=ge(A),this.ctx.stroke(),this.ctx.setLineDash([]),2===i&&(Rs(o[0])&&(f=o[3],v=o[0],this.ctx.beginPath(),this.formatPath([new xs(f.end.x,f.end.y),new xs(v.start.x,v.start.y)]),this.ctx.stroke()),Rs(o[1])&&(f=o[1],v=o[2],this.ctx.beginPath(),this.formatPath([new xs(f.end.x,f.end.y),new xs(v.start.x,v.start.y)]),this.ctx.stroke())),this.ctx.restore(),[2]}))}))},t.prototype.render=function(A){return n(this,void 0,void 0,(function(){var e;return r(this,(function(t){switch(t.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=ge(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height)),n=new zs(A,null),r=new Xs(n),Ys(n,r,r,s=[]),js(n.container,s),e=r,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([]),[2,this.canvas]}var n,r,s}))}))},t}(li),ui=function(A){return A instanceof fr||A instanceof mr||A instanceof Cr&&A.type!==Br&&A.type!==gr},hi=function(A,e){switch(A){case 0:return Os(e);case 2:return function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]}(e);default:return Vs(e)}},gi=function(A){switch(A){case 1:return"center";case 2:return"right";default:return"left"}},Bi=["-apple-system","system-ui"],wi=function(A){return/iPhone OS 15_(0|1)/.test(window.navigator.userAgent)?A.filter((function(A){return-1===Bi.indexOf(A)})):A},pi=function(A){function t(e,t){var n=A.call(this,e,t)||this;return n.canvas=t.canvas?t.canvas:document.createElement("canvas"),n.ctx=n.canvas.getContext("2d"),n.options=t,n.canvas.width=Math.floor(t.width*t.scale),n.canvas.height=Math.floor(t.height*t.scale),n.canvas.style.width=t.width+"px",n.canvas.style.height=t.height+"px",n.ctx.scale(n.options.scale,n.options.scale),n.ctx.translate(-t.x,-t.y),n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+t.width+"x"+t.height+" at "+t.x+","+t.y+") with scale "+t.scale),n}return e(t,A),t.prototype.render=function(A){return n(this,void 0,void 0,(function(){var e,t;return r(this,(function(n){switch(n.label){case 0:return e=Xn(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,A),[4,Ci(e)];case 1:return t=n.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=ge(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}}))}))},t}(li),Ci=function(A){return new Promise((function(e,t){var n=new Image;n.onload=function(){e(n)},n.onerror=t,n.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},mi=function(){function A(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}return A.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.getTime=function(){return Date.now()-this.start},A.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,s([this.id,this.getTime()+"ms"],A))},A.prototype.warn=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.warn?console.warn.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,s([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},A.instances={},A}(),fi=function(){function A(e,t){var n;this.windowBounds=t,this.instanceName="#"+A.instanceCount++,this.logger=new mi({id:this.instanceName,enabled:e.logging}),this.cache=null!==(n=e.cache)&&void 0!==n?n:new Es(this,e)}return A.instanceCount=1,A}();"undefined"!=typeof window&&Us.setContext(window);var vi=function(A,e){return n(void 0,void 0,void 0,(function(){var n,s,a,c,l,d,u,h,g,B,w,p,C,m,f,v,F,Q,U,E,y,S,b,I,H,T,M,L,x,P,D,R,k,K,O,V,G,_;return r(this,(function(r){switch(r.label){case 0:if(!A||"object"!=typeof A)return[2,Promise.reject("Invalid element provided as first argument")];if(!(n=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(s=n.defaultView))throw new Error("Document is not attached to a Window");return a={allowTaint:null!==(S=e.allowTaint)&&void 0!==S&&S,imageTimeout:null!==(b=e.imageTimeout)&&void 0!==b?b:15e3,proxy:e.proxy,useCORS:null!==(I=e.useCORS)&&void 0!==I&&I},c=t({logging:null===(H=e.logging)||void 0===H||H,cache:e.cache},a),l={windowWidth:null!==(T=e.windowWidth)&&void 0!==T?T:s.innerWidth,windowHeight:null!==(M=e.windowHeight)&&void 0!==M?M:s.innerHeight,scrollX:null!==(L=e.scrollX)&&void 0!==L?L:s.pageXOffset,scrollY:null!==(x=e.scrollY)&&void 0!==x?x:s.pageYOffset},d=new i(l.scrollX,l.scrollY,l.windowWidth,l.windowHeight),u=new fi(c,d),h=null!==(P=e.foreignObjectRendering)&&void 0!==P&&P,g={allowTaint:null!==(D=e.allowTaint)&&void 0!==D&&D,onclone:e.onclone,ignoreElements:e.ignoreElements,inlineImages:h,copyStyles:h},u.logger.debug("Starting document clone with size "+d.width+"x"+d.height+" scrolled to "+-d.left+","+-d.top),B=new as(u,A,g),(w=B.clonedReferenceElement)?[4,B.toIFrame(n,d)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return p=r.sent(),C=Dr(w)||"HTML"===w.tagName?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");var n=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),r=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new i(0,0,n,r)}(w.ownerDocument):o(u,w),m=C.width,f=C.height,v=C.left,F=C.top,Q=Fi(u,w,e.backgroundColor),U={canvas:e.canvas,backgroundColor:Q,scale:null!==(k=null!==(R=e.scale)&&void 0!==R?R:s.devicePixelRatio)&&void 0!==k?k:1,x:(null!==(K=e.x)&&void 0!==K?K:0)+v,y:(null!==(O=e.y)&&void 0!==O?O:0)+F,width:null!==(V=e.width)&&void 0!==V?V:Math.ceil(m),height:null!==(G=e.height)&&void 0!==G?G:Math.ceil(f)},h?(u.logger.debug("Document cloned, using foreign object rendering"),[4,new pi(u,U).render(w)]):[3,3];case 2:return E=r.sent(),[3,5];case 3:return u.logger.debug("Document cloned, element located at "+v+","+F+" with size "+m+"x"+f+" using computed rendering"),u.logger.debug("Starting DOM parsing"),y=Er(u,w),Q===y.styles.backgroundColor&&(y.styles.backgroundColor=Fe.TRANSPARENT),u.logger.debug("Starting renderer for element at "+U.x+","+U.y+" with size "+U.width+"x"+U.height),[4,new di(u,U).render(y)];case 4:E=r.sent(),r.label=5;case 5:return(null===(_=e.removeContainer)||void 0===_||_)&&(as.destroy(p)||u.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")),u.logger.debug("Finished rendering"),[2,E]}}))}))},Fi=function(A,e,t){var n=e.ownerDocument,r=n.documentElement?ve(A,getComputedStyle(n.documentElement).backgroundColor):Fe.TRANSPARENT,s=n.body?ve(A,getComputedStyle(n.body).backgroundColor):Fe.TRANSPARENT,i="string"==typeof t?ve(A,t):null===t?Fe.TRANSPARENT:4294967295;return e===n.documentElement?he(r)?he(s)?i:s:r:i};return function(A,e){return void 0===e&&(e={}),vi(A,e)}}()},880:A=>{const e={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};e.localCName=e.generateIdentifier(),e.splitLines=function(A){return A.trim().split("\n").map((A=>A.trim()))},e.splitSections=function(A){return A.split("\nm=").map(((A,e)=>(e>0?"m="+A:A).trim()+"\r\n"))},e.getDescription=function(A){const t=e.splitSections(A);return t&&t[0]},e.getMediaSections=function(A){const t=e.splitSections(A);return t.shift(),t},e.matchPrefix=function(A,t){return e.splitLines(A).filter((A=>0===A.indexOf(t)))},e.parseCandidate=function(A){let e;e=0===A.indexOf("a=candidate:")?A.substring(12).split(" "):A.substring(10).split(" ");const t={foundation:e[0],component:{1:"rtp",2:"rtcp"}[e[1]]||e[1],protocol:e[2].toLowerCase(),priority:parseInt(e[3],10),ip:e[4],address:e[4],port:parseInt(e[5],10),type:e[7]};for(let A=8;A<e.length;A+=2)switch(e[A]){case"raddr":t.relatedAddress=e[A+1];break;case"rport":t.relatedPort=parseInt(e[A+1],10);break;case"tcptype":t.tcpType=e[A+1];break;case"ufrag":t.ufrag=e[A+1],t.usernameFragment=e[A+1];break;default:void 0===t[e[A]]&&(t[e[A]]=e[A+1])}return t},e.writeCandidate=function(A){const e=[];e.push(A.foundation);const t=A.component;"rtp"===t?e.push(1):"rtcp"===t?e.push(2):e.push(t),e.push(A.protocol.toUpperCase()),e.push(A.priority),e.push(A.address||A.ip),e.push(A.port);const n=A.type;return e.push("typ"),e.push(n),"host"!==n&&A.relatedAddress&&A.relatedPort&&(e.push("raddr"),e.push(A.relatedAddress),e.push("rport"),e.push(A.relatedPort)),A.tcpType&&"tcp"===A.protocol.toLowerCase()&&(e.push("tcptype"),e.push(A.tcpType)),(A.usernameFragment||A.ufrag)&&(e.push("ufrag"),e.push(A.usernameFragment||A.ufrag)),"candidate:"+e.join(" ")},e.parseIceOptions=function(A){return A.substring(14).split(" ")},e.parseRtpMap=function(A){let e=A.substring(9).split(" ");const t={payloadType:parseInt(e.shift(),10)};return e=e[0].split("/"),t.name=e[0],t.clockRate=parseInt(e[1],10),t.channels=3===e.length?parseInt(e[2],10):1,t.numChannels=t.channels,t},e.writeRtpMap=function(A){let e=A.payloadType;void 0!==A.preferredPayloadType&&(e=A.preferredPayloadType);const t=A.channels||A.numChannels||1;return"a=rtpmap:"+e+" "+A.name+"/"+A.clockRate+(1!==t?"/"+t:"")+"\r\n"},e.parseExtmap=function(A){const e=A.substring(9).split(" ");return{id:parseInt(e[0],10),direction:e[0].indexOf("/")>0?e[0].split("/")[1]:"sendrecv",uri:e[1],attributes:e.slice(2).join(" ")}},e.writeExtmap=function(A){return"a=extmap:"+(A.id||A.preferredId)+(A.direction&&"sendrecv"!==A.direction?"/"+A.direction:"")+" "+A.uri+(A.attributes?" "+A.attributes:"")+"\r\n"},e.parseFmtp=function(A){const e={};let t;const n=A.substring(A.indexOf(" ")+1).split(";");for(let A=0;A<n.length;A++)t=n[A].trim().split("="),e[t[0].trim()]=t[1];return e},e.writeFmtp=function(A){let e="",t=A.payloadType;if(void 0!==A.preferredPayloadType&&(t=A.preferredPayloadType),A.parameters&&Object.keys(A.parameters).length){const n=[];Object.keys(A.parameters).forEach((e=>{void 0!==A.parameters[e]?n.push(e+"="+A.parameters[e]):n.push(e)})),e+="a=fmtp:"+t+" "+n.join(";")+"\r\n"}return e},e.parseRtcpFb=function(A){const e=A.substring(A.indexOf(" ")+1).split(" ");return{type:e.shift(),parameter:e.join(" ")}},e.writeRtcpFb=function(A){let e="",t=A.payloadType;return void 0!==A.preferredPayloadType&&(t=A.preferredPayloadType),A.rtcpFeedback&&A.rtcpFeedback.length&&A.rtcpFeedback.forEach((A=>{e+="a=rtcp-fb:"+t+" "+A.type+(A.parameter&&A.parameter.length?" "+A.parameter:"")+"\r\n"})),e},e.parseSsrcMedia=function(A){const e=A.indexOf(" "),t={ssrc:parseInt(A.substring(7,e),10)},n=A.indexOf(":",e);return n>-1?(t.attribute=A.substring(e+1,n),t.value=A.substring(n+1)):t.attribute=A.substring(e+1),t},e.parseSsrcGroup=function(A){const e=A.substring(13).split(" ");return{semantics:e.shift(),ssrcs:e.map((A=>parseInt(A,10)))}},e.getMid=function(A){const t=e.matchPrefix(A,"a=mid:")[0];if(t)return t.substring(6)},e.parseFingerprint=function(A){const e=A.substring(14).split(" ");return{algorithm:e[0].toLowerCase(),value:e[1].toUpperCase()}},e.getDtlsParameters=function(A,t){return{role:"auto",fingerprints:e.matchPrefix(A+t,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(A,e){let t="a=setup:"+e+"\r\n";return A.fingerprints.forEach((A=>{t+="a=fingerprint:"+A.algorithm+" "+A.value+"\r\n"})),t},e.parseCryptoLine=function(A){const e=A.substring(9).split(" ");return{tag:parseInt(e[0],10),cryptoSuite:e[1],keyParams:e[2],sessionParams:e.slice(3)}},e.writeCryptoLine=function(A){return"a=crypto:"+A.tag+" "+A.cryptoSuite+" "+("object"==typeof A.keyParams?e.writeCryptoKeyParams(A.keyParams):A.keyParams)+(A.sessionParams?" "+A.sessionParams.join(" "):"")+"\r\n"},e.parseCryptoKeyParams=function(A){if(0!==A.indexOf("inline:"))return null;const e=A.substring(7).split("|");return{keyMethod:"inline",keySalt:e[0],lifeTime:e[1],mkiValue:e[2]?e[2].split(":")[0]:void 0,mkiLength:e[2]?e[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(A){return A.keyMethod+":"+A.keySalt+(A.lifeTime?"|"+A.lifeTime:"")+(A.mkiValue&&A.mkiLength?"|"+A.mkiValue+":"+A.mkiLength:"")},e.getCryptoParameters=function(A,t){return e.matchPrefix(A+t,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(A,t){const n=e.matchPrefix(A+t,"a=ice-ufrag:")[0],r=e.matchPrefix(A+t,"a=ice-pwd:")[0];return n&&r?{usernameFragment:n.substring(12),password:r.substring(10)}:null},e.writeIceParameters=function(A){let e="a=ice-ufrag:"+A.usernameFragment+"\r\na=ice-pwd:"+A.password+"\r\n";return A.iceLite&&(e+="a=ice-lite\r\n"),e},e.parseRtpParameters=function(A){const t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=e.splitLines(A)[0].split(" ");t.profile=n[2];for(let r=3;r<n.length;r++){const s=n[r],i=e.matchPrefix(A,"a=rtpmap:"+s+" ")[0];if(i){const n=e.parseRtpMap(i),r=e.matchPrefix(A,"a=fmtp:"+s+" ");switch(n.parameters=r.length?e.parseFmtp(r[0]):{},n.rtcpFeedback=e.matchPrefix(A,"a=rtcp-fb:"+s+" ").map(e.parseRtcpFb),t.codecs.push(n),n.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(n.name.toUpperCase())}}}e.matchPrefix(A,"a=extmap:").forEach((A=>{t.headerExtensions.push(e.parseExtmap(A))}));const r=e.matchPrefix(A,"a=rtcp-fb:* ").map(e.parseRtcpFb);return t.codecs.forEach((A=>{r.forEach((e=>{A.rtcpFeedback.find((A=>A.type===e.type&&A.parameter===e.parameter))||A.rtcpFeedback.push(e)}))})),t},e.writeRtpDescription=function(A,t){let n="";n+="m="+A+" ",n+=t.codecs.length>0?"9":"0",n+=" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" ",n+=t.codecs.map((A=>void 0!==A.preferredPayloadType?A.preferredPayloadType:A.payloadType)).join(" ")+"\r\n",n+="c=IN IP4 0.0.0.0\r\n",n+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach((A=>{n+=e.writeRtpMap(A),n+=e.writeFmtp(A),n+=e.writeRtcpFb(A)}));let r=0;return t.codecs.forEach((A=>{A.maxptime>r&&(r=A.maxptime)})),r>0&&(n+="a=maxptime:"+r+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach((A=>{n+=e.writeExtmap(A)})),n},e.parseRtpEncodingParameters=function(A){const t=[],n=e.parseRtpParameters(A),r=-1!==n.fecMechanisms.indexOf("RED"),s=-1!==n.fecMechanisms.indexOf("ULPFEC"),i=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute)),o=i.length>0&&i[0].ssrc;let a;const c=e.matchPrefix(A,"a=ssrc-group:FID").map((A=>A.substring(17).split(" ").map((A=>parseInt(A,10)))));c.length>0&&c[0].length>1&&c[0][0]===o&&(a=c[0][1]),n.codecs.forEach((A=>{if("RTX"===A.name.toUpperCase()&&A.parameters.apt){let e={ssrc:o,codecPayloadType:parseInt(A.parameters.apt,10)};o&&a&&(e.rtx={ssrc:a}),t.push(e),r&&(e=JSON.parse(JSON.stringify(e)),e.fec={ssrc:o,mechanism:s?"red+ulpfec":"red"},t.push(e))}})),0===t.length&&o&&t.push({ssrc:o});let l=e.matchPrefix(A,"b=");return l.length&&(l=0===l[0].indexOf("b=TIAS:")?parseInt(l[0].substring(7),10):0===l[0].indexOf("b=AS:")?1e3*parseInt(l[0].substring(5),10)*.95-16e3:void 0,t.forEach((A=>{A.maxBitrate=l}))),t},e.parseRtcpParameters=function(A){const t={},n=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute))[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);const r=e.matchPrefix(A,"a=rtcp-rsize");t.reducedSize=r.length>0,t.compound=0===r.length;const s=e.matchPrefix(A,"a=rtcp-mux");return t.mux=s.length>0,t},e.writeRtcpParameters=function(A){let e="";return A.reducedSize&&(e+="a=rtcp-rsize\r\n"),A.mux&&(e+="a=rtcp-mux\r\n"),void 0!==A.ssrc&&A.cname&&(e+="a=ssrc:"+A.ssrc+" cname:"+A.cname+"\r\n"),e},e.parseMsid=function(A){let t;const n=e.matchPrefix(A,"a=msid:");if(1===n.length)return t=n[0].substring(7).split(" "),{stream:t[0],track:t[1]};const r=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"msid"===A.attribute));return r.length>0?(t=r[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},e.parseSctpDescription=function(A){const t=e.parseMLine(A),n=e.matchPrefix(A,"a=max-message-size:");let r;n.length>0&&(r=parseInt(n[0].substring(19),10)),isNaN(r)&&(r=65536);const s=e.matchPrefix(A,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substring(12),10),protocol:t.fmt,maxMessageSize:r};const i=e.matchPrefix(A,"a=sctpmap:");if(i.length>0){const A=i[0].substring(10).split(" ");return{port:parseInt(A[0],10),protocol:A[1],maxMessageSize:r}}},e.writeSctpDescription=function(A,e){let t=[];return t="DTLS/SCTP"!==A.protocol?["m="+A.kind+" 9 "+A.protocol+" "+e.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+e.port+"\r\n"]:["m="+A.kind+" 9 "+A.protocol+" "+e.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+e.port+" "+e.protocol+" 65535\r\n"],void 0!==e.maxMessageSize&&t.push("a=max-message-size:"+e.maxMessageSize+"\r\n"),t.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(A,t,n){let r;const s=void 0!==t?t:2;return r=A||e.generateSessionId(),"v=0\r\no="+(n||"thisisadapterortc")+" "+r+" "+s+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},e.getDirection=function(A,t){const n=e.splitLines(A);for(let A=0;A<n.length;A++)switch(n[A]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return n[A].substring(2)}return t?e.getDirection(t):"sendrecv"},e.getKind=function(A){return e.splitLines(A)[0].split(" ")[0].substring(2)},e.isRejected=function(A){return"0"===A.split(" ",2)[1]},e.parseMLine=function(A){const t=e.splitLines(A)[0].substring(2).split(" ");return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(" ")}},e.parseOLine=function(A){const t=e.matchPrefix(A,"o=")[0].substring(2).split(" ");return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}},e.isValidSDP=function(A){if("string"!=typeof A||0===A.length)return!1;const t=e.splitLines(A);for(let A=0;A<t.length;A++)if(t[A].length<2||"="!==t[A].charAt(1))return!1;return!0},A.exports=e}},n={};function r(A){var e=n[A];if(void 0!==e)return e.exports;var s=n[A]={exports:{}};return t[A].call(s.exports,s,s.exports,r),s.exports}r.n=A=>{var e=A&&A.__esModule?()=>A.default:()=>A;return r.d(e,{a:e}),e},r.d=(A,e)=>{for(var t in e)r.o(e,t)&&!r.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},r.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var s={};r.d(s,{ZW:()=>yn,II:()=>ht,LD:()=>ut,Z8:()=>Bt,Ci:()=>gt,B5:()=>sn,iE:()=>kn,sl:()=>ur,KT:()=>hr,ix:()=>Br,yS:()=>wr,ku:()=>pr,bF:()=>Cr,Fr:()=>mr,bI:()=>fr,l$:()=>vr,nl:()=>Fr,KZ:()=>Qr,u5:()=>Ur,aQ:()=>Er,I$:()=>yr,$A:()=>br,Kt:()=>Ir,CI:()=>Hr,Cq:()=>Tr,_b:()=>Mr,sx:()=>Fi,r4:()=>Gr,N7:()=>Ei,qr:()=>_r,X8:()=>Nr,Sj:()=>gr,vh:()=>Wr,hj:()=>Tn,D4:()=>Jr,ZN:()=>Xr,sJ:()=>zr,EP:()=>as,Ij:()=>oi,Kx:()=>cs,cU:()=>Gn,f8:()=>Mn,yZ:()=>ls,Y0:()=>ds,wZ:()=>Sr,E2:()=>us,RR:()=>hs,Wq:()=>gs,X5:()=>Ln,vQ:()=>xn,m4:()=>Bs,$D:()=>Ui,M$:()=>di,rO:()=>Hn,SM:()=>ui,YJ:()=>ws,FU:()=>ps,vP:()=>Cs,Y1:()=>ms,tP:()=>Ls,q5:()=>xs,HY:()=>Ps,Yn:()=>Ds,cL:()=>Rs,D9:()=>ks,W2:()=>Qi,iT:()=>Ks,CB:()=>Sn,VS:()=>Os,Mz:()=>yi,C6:()=>Vs,EF:()=>Gs,jv:()=>_s,vx:()=>dr,CT:()=>Ns,DH:()=>Ws,h4:()=>ei,QC:()=>ti,GK:()=>ni,AP:()=>vi,bT:()=>ri,mE:()=>bn,Pk:()=>si,$8:()=>ii,Rp:()=>on,CW:()=>Nt,Gu:()=>Kt,xp:()=>Xt,$E:()=>At,ZL:()=>pt,Xw:()=>bt,s2:()=>vt,Cv:()=>Si,lP:()=>_t,vM:()=>qe,Vl:()=>tt,l1:()=>nt,he:()=>Ze,jk:()=>ot,xG:()=>Tt,eb:()=>Lt,XH:()=>xt,d:()=>$t,o:()=>Dt,nM:()=>Rt,hQ:()=>yt,aF:()=>St,kG:()=>jt,mK:()=>It,vK:()=>kt,Zd:()=>en,Nk:()=>Pt,NP:()=>Mt,h0:()=>qt,Hv:()=>it,Ew:()=>rn,Qq:()=>Ut,rt:()=>Et,mC:()=>Qt,gQ:()=>et,Ky:()=>at,yM:()=>Ot,QN:()=>Zt,j3:()=>An,rg:()=>Ft,Cb:()=>Ct,$I:()=>mt,bR:()=>ft,cd:()=>wt,qB:()=>lt,Y4:()=>ct,am:()=>dt,PO:()=>tn,Xh:()=>rt,nF:()=>nn,Nj:()=>st,QF:()=>Ht,eK:()=>Jt,hT:()=>Wt,Kk:()=>Vt,H0:()=>Gt,Rk:()=>Yt,cz:()=>zt});const i=(o={ES3DTileset:()=>A.ES3DTileset,ESAlarm:()=>A.ESAlarm,ESApertureEffect:()=>A.ESApertureEffect,ESAreaMeasurement:()=>A.ESAreaMeasurement,ESBlastParticleSystem:()=>A.ESBlastParticleSystem,ESBoxClipping:()=>A.ESBoxClipping,ESCameraView:()=>A.ESCameraView,ESCameraVisibleRange:()=>A.ESCameraVisibleRange,ESCar:()=>A.ESCar,ESClassification:()=>A.ESClassification,ESClippingPlane:()=>A.ESClippingPlane,ESCustomDiv:()=>A.ESCustomDiv,ESDataMesh:()=>A.ESDataMesh,ESDatasmithRuntimeModel:()=>A.ESDatasmithRuntimeModel,ESDirectionMeasurement:()=>A.ESDirectionMeasurement,ESDistanceMeasurement:()=>A.ESDistanceMeasurement,ESDynamicWater:()=>A.ESDynamicWater,ESEntityCluster:()=>A.ESEntityCluster,ESExcavate:()=>A.ESExcavate,ESFireParticleSystem:()=>A.ESFireParticleSystem,ESForestTileset:()=>A.ESForestTileset,ESGaussianSplatting:()=>A.ESGaussianSplatting,ESGeoDiv:()=>A.ESGeoDiv,ESGeoExtrudedPolygon:()=>A.ESGeoExtrudedPolygon,ESGeoJson:()=>A.ESGeoJson,ESGeoLineString:()=>A.ESGeoLineString,ESGeoPolygon:()=>A.ESGeoPolygon,ESGeoRectangle:()=>A.ESGeoRectangle,ESGeoWater:()=>A.ESGeoWater,ESGltfModel:()=>A.ESGltfModel,ESHeightMeasurement:()=>A.ESHeightMeasurement,ESHuman:()=>A.ESHuman,ESHumanPoi:()=>A.ESHumanPoi,ESImageLabel:()=>A.ESImageLabel,ESImageryLayer:()=>A.ESImageryLayer,ESLevelRuntimeModel:()=>A.ESLevelRuntimeModel,ESLocalCircle:()=>A.ESLocalCircle,ESLocalPolygon:()=>A.ESLocalPolygon,ESLocalPolygonZ:()=>A.ESLocalPolygonZ,ESLocalRectangle:()=>A.ESLocalRectangle,ESLocalSkyBox:()=>A.ESLocalSkyBox,ESLocationMeasurement:()=>A.ESLocationMeasurement,ESMsTileset:()=>A.ESMsTileset,ESNavigator:()=>A.ESNavigator,ESPath:()=>A.ESPath,ESPipeFence:()=>A.ESPipeFence,ESPipeline:()=>A.ESPipeline,ESPipeserTileset:()=>A.ESPipeserTileset,ESPit:()=>A.ESPit,ESPoi2D:()=>A.ESPoi2D,ESPoi3D:()=>A.ESPoi3D,ESPoiTileset:()=>A.ESPoiTileset,ESPolygonFence:()=>A.ESPolygonFence,ESPolygonFlattenedPlane:()=>A.ESPolygonFlattenedPlane,ESPolygonWithHole:()=>A.ESPolygonWithHole,ESRtsFeatureEditing:()=>A.ESRtsFeatureEditing,ESRtsTileset:()=>A.ESRtsTileset,ESSceneObject:()=>A.ESSceneObject,ESSeparateFoliage:()=>A.ESSeparateFoliage,ESStaticMesh:()=>A.ESStaticMesh,ESSubmergingAnalysis:()=>A.ESSubmergingAnalysis,ESSunshineAnalysis:()=>A.ESSunshineAnalysis,ESSurfaceAreaMeasurement:()=>A.ESSurfaceAreaMeasurement,ESTerrainLayer:()=>A.ESTerrainLayer,ESTextLabel:()=>A.ESTextLabel,ESUEWidget:()=>A.ESUEWidget,ESUnrealActor:()=>A.ESUnrealActor,ESVideoFusion:()=>A.ESVideoFusion,ESViewShed:()=>A.ESViewShed,ESViewer:()=>A.ESViewer,ESViewerStatusBar:()=>A.ESViewerStatusBar,ESVisibilityAnalysis:()=>A.ESVisibilityAnalysis,ESVisualObject:()=>A.ESVisualObject,ESVolumeMeasurement:()=>A.ESVolumeMeasurement,ESWidget:()=>A.ESWidget,EngineObject:()=>A.EngineObject,PickedInfo:()=>A.PickedInfo,PickedResult:()=>A.PickedResult,SceneObjectPickedInfo:()=>A.SceneObjectPickedInfo,ViewerCustomInteraction:()=>A.ViewerCustomInteraction,addTreesCallFunc:()=>A.addTreesCallFunc,cutDownTreesCallFunc:()=>A.cutDownTreesCallFunc,getGeoBoundingSphereFromPositions:()=>A.getGeoBoundingSphereFromPositions,growthSimulationCallFunc:()=>A.growthSimulationCallFunc,removeAllTreesCallFunc:()=>A.removeAllTreesCallFunc,rpToap:()=>A.rpToap,updateTreeParamsCallFunc:()=>A.updateTreeParamsCallFunc},a={},r.d(a,o),a);var o,a;const c=(A=>{var e={};return r.d(e,A),e})({Destroyable:()=>e.Destroyable,Event:()=>e.Event,HasOwner:()=>e.HasOwner,ObjResettingWithEvent:()=>e.ObjResettingWithEvent,bind:()=>e.bind,createAnimateFrame:()=>e.createAnimateFrame,createGuid:()=>e.createGuid,createInterval:()=>e.createInterval,createNextAnimateFrameEvent:()=>e.createNextAnimateFrameEvent,createProcessingFromAsyncFunc:()=>e.createProcessingFromAsyncFunc,extendClassProps:()=>e.extendClassProps,react:()=>e.react,reactArrayWithUndefined:()=>e.reactArrayWithUndefined,reactJson:()=>e.reactJson,sleep:()=>e.sleep,track:()=>e.track});var l;const d=()=>Object.assign(Object.assign({},i.ESViewer.createCommonProps()),{apiKey:"",apiUrl:"",secretKey:"",speechVoiceMode:"",geoReferenceOrigin:(0,c.reactArrayWithUndefined)(void 0),keepWorldOriginNearCamera:void 0,useCache:void 0,widgetInteractionDistance:void 0,memReportInterval:void 0,sceneControlled:void 0,brightness:void 0,emissiveIntensity:void 0,statusUpdateInterval:void 0,baseUrl:void 0}),u=Object.assign(Object.assign({},i.ESViewer.defaults),{geoReferenceOrigin:void 0,keepWorldOriginNearCamera:!1,useCache:!0,widgetInteractionDistance:200,memReportInterval:10,sceneControlled:!0,brightness:0,emissiveIntensity:1,statusUpdateInterval:.5,baseUrl:null!==(l=window.location.href)&&void 0!==l?l:""});function h(){const A=d(),e=[];return Object.keys(A).forEach((A=>{e.push(A)})),e}function g(A){const{defaults:e}=yn,t=h(),n={};return t.forEach((t=>{var r;n[t]=null!==(r=A[t])&&void 0!==r?r:e[t]})),n}var B,w,p,C=r(880),m={d:(A,e)=>{for(var t in e)m.o(e,t)&&!m.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},f={};m.d(f,{Dz:()=>kA,g$:()=>X,Lt:()=>N,Q9:()=>J,qf:()=>W,hV:()=>XA,z$:()=>Oe,J0:()=>_A,De:()=>DA,$C:()=>RA,al:()=>tA,_W:()=>nA,Gv:()=>CA,m:()=>mA,tz:()=>eA,Nu:()=>GA,zg:()=>re,vp:()=>SA,vU:()=>bA,wF:()=>hA,rv:()=>OA,Nh:()=>VA,ss:()=>te,qW:()=>fA,QL:()=>pA,cf:()=>ie,eM:()=>uA,Yd:()=>v,Tk:()=>qA,iM:()=>M,qy:()=>F,ce:()=>L,sK:()=>HA,Ok:()=>xA,q5:()=>NA,g:()=>Ke,xl:()=>cA,I:()=>lA,bx:()=>dA,dD:()=>EA,Ib:()=>K,Az:()=>O,Iw:()=>V,qY:()=>_,db:()=>G,mR:()=>vA,Tn:()=>x,rV:()=>gA,gh:()=>sA,Mi:()=>iA,j:()=>oA,YB:()=>aA,Yt:()=>wA,i5:()=>BA,x_:()=>MA,Am:()=>Te,eR:()=>z,r8:()=>rA,u3:()=>se,vd:()=>j,iV:()=>Z,jZ:()=>$,SW:()=>AA,ZH:()=>q,Ni:()=>Le,lh:()=>Y,ZP:()=>yA,bq:()=>P,$f:()=>Pe,eu:()=>UA,Ax:()=>QA,Mc:()=>FA});class v{static GetStackTrace(){const A=new Error;let e="No Stack Available for this browser";return A.stack&&(e=A.stack.toString().replace(/Error/g,"")),e}static SetLoggerVerbosity(A){null!=this.verboseLogLevel&&(this.verboseLogLevel=A)}static Log(A,e,t){if(t>this.verboseLogLevel)return;const n=`Level: Log\nMsg: ${e}\nCaller: ${A}`;console.log(n)}static Info(A,e,t){if(t>this.verboseLogLevel)return;const n=`Level: Info\nMsg: ${e}`;console.info(n)}static Error(A,e){const t=`Level: Error\nMsg: ${e}\nCaller: ${A}`;console.error(t)}static Warning(A,e){const t=`Level: Warning\nCaller: ${A}\nMsg: ${e}`;console.warn(t)}}v.verboseLogLevel=5,(p=B||(B={})).LIST_STREAMERS="listStreamers",p.SUBSCRIBE="subscribe",p.UNSUBSCRIBE="unsubscribe",p.ICE_CANDIDATE="iceCandidate",p.OFFER="offer",p.ANSWER="answer",p.DATACHANNELREQUEST="dataChannelRequest",p.SFURECVDATACHANNELREADY="peerDataChannelsReady",p.PONG="pong";class F{sendFilter(A,e){return e}payload(){return v.Log(v.GetStackTrace(),"Sending => \n"+JSON.stringify(this,this.sendFilter,4),6),JSON.stringify(this,this.sendFilter)}}class Q extends F{constructor(){super(),this.type=B.LIST_STREAMERS}}class U extends F{constructor(A){super(),this.type=B.SUBSCRIBE,this.streamerId=A}}class E extends F{constructor(){super(),this.type=B.UNSUBSCRIBE}}class y extends F{constructor(A){super(),this.type=B.PONG,this.time=A}}class S extends F{constructor(A,e){super(),this.type=B.OFFER,this.minBitrate=0,this.maxBitrate=0,A&&(this.type=A.type,this.sdp=A.sdp,this.minBitrate=e.minBitrateBps,this.maxBitrate=e.maxBitrateBps)}sendFilter(A,e){if("minBitrate"!=A&&"maxBitrate"!=A||!(e<=0))return e}}class b extends F{constructor(A,e){super(),this.type=B.ANSWER,this.minBitrate=0,this.maxBitrate=0,A&&(this.type=A.type,this.sdp=A.sdp,this.minBitrate=e.minBitrateBps,this.maxBitrate=e.maxBitrateBps)}sendFilter(A,e){if("minBitrate"!=A&&"maxBitrate"!=A||!(e<=0))return e}}class I extends F{constructor(){super(),this.type=B.DATACHANNELREQUEST}}class H extends F{constructor(){super(),this.type=B.SFURECVDATACHANNELREADY}}class T{constructor(A){this.type=B.ICE_CANDIDATE,this.candidate=A}payload(){return v.Log(v.GetStackTrace(),"Sending => \n"+JSON.stringify(this,void 0,4),6),JSON.stringify(this)}}!function(A){A.CONFIG="config",A.STREAMER_LIST="streamerList",A.STREAMER_ID_CHANGED="streamerIDChanged",A.PLAYER_COUNT="playerCount",A.OFFER="offer",A.ANSWER="answer",A.ICE_CANDIDATE="iceCandidate",A.PEER_DATA_CHANNELS="peerDataChannels",A.PING="ping",A.WARNING="warning"}(w||(w={}));class M{}class L extends M{}class x{constructor(){this.FromUEMessageHandlers=new Map}addMessageHandler(A,e){this.FromUEMessageHandlers.set(A,e)}handleMessage(A,e){this.FromUEMessageHandlers.has(A)?this.FromUEMessageHandlers.get(A)(e):v.Error(v.GetStackTrace(),`Message type of ${A} does not have a message handler registered on the frontend - ignoring message.`)}static setupDefaultHandlers(A){A.signallingProtocol.addMessageHandler(w.PING,(e=>{const t=new y((new Date).getTime()).payload();v.Log(v.GetStackTrace(),w.PING+": "+e,6),A.webSocket.send(t)})),A.signallingProtocol.addMessageHandler(w.CONFIG,(e=>{v.Log(v.GetStackTrace(),w.CONFIG,6);const t=JSON.parse(e);A.onConfig(t)})),A.signallingProtocol.addMessageHandler(w.STREAMER_LIST,(e=>{v.Log(v.GetStackTrace(),w.STREAMER_LIST,6);const t=JSON.parse(e);A.onStreamerList(t)})),A.signallingProtocol.addMessageHandler(w.STREAMER_ID_CHANGED,(e=>{v.Log(v.GetStackTrace(),w.STREAMER_ID_CHANGED,6);const t=JSON.parse(e);A.onStreamerIDChanged(t)})),A.signallingProtocol.addMessageHandler(w.PLAYER_COUNT,(e=>{v.Log(v.GetStackTrace(),w.PLAYER_COUNT,6);const t=JSON.parse(e);v.Log(v.GetStackTrace(),"Player Count: "+t.count,6),A.onPlayerCount(t)})),A.signallingProtocol.addMessageHandler(w.ANSWER,(e=>{v.Log(v.GetStackTrace(),w.ANSWER,6);const t=JSON.parse(e);A.onWebRtcAnswer(t)})),A.signallingProtocol.addMessageHandler(w.OFFER,(e=>{v.Log(v.GetStackTrace(),w.OFFER,6);const t=JSON.parse(e);A.onWebRtcOffer(t)})),A.signallingProtocol.addMessageHandler(w.ICE_CANDIDATE,(e=>{v.Log(v.GetStackTrace(),w.ICE_CANDIDATE,6);const t=JSON.parse(e);A.onIceCandidate(t.candidate)})),A.signallingProtocol.addMessageHandler(w.WARNING,(A=>{v.Warning(v.GetStackTrace(),`Warning received: ${A}`)})),A.signallingProtocol.addMessageHandler(w.PEER_DATA_CHANNELS,(e=>{v.Log(v.GetStackTrace(),w.PEER_DATA_CHANNELS,6);const t=JSON.parse(e);A.onWebRtcPeerDataChannels(t)}))}}class P{constructor(){this.WS_OPEN_STATE=1,this.onOpen=new EventTarget,this.onClose=new EventTarget,this.signallingProtocol=new x,x.setupDefaultHandlers(this)}connect(A){v.Log(v.GetStackTrace(),A,6);try{return this.webSocket=new WebSocket(A),this.webSocket.onopen=A=>this.handleOnOpen(A),this.webSocket.onerror=()=>this.handleOnError(),this.webSocket.onclose=A=>this.handleOnClose(A),this.webSocket.onmessage=A=>this.handleOnMessage(A),this.webSocket.onmessagebinary=A=>this.handleOnMessageBinary(A),!0}catch(A){return v.Error(A,A),!1}}handleOnMessageBinary(A){A&&A.data&&A.data.text().then((A=>{const e=new MessageEvent("messageFromBinary",{data:A});this.handleOnMessage(e)})).catch((A=>{v.Error(v.GetStackTrace(),`Failed to parse binary blob from websocket, reason: ${A}`)}))}handleOnMessage(A){if(A.data&&A.data instanceof Blob)return void this.handleOnMessageBinary(A);const e=JSON.parse(A.data);v.Log(v.GetStackTrace(),"received => \n"+JSON.stringify(JSON.parse(A.data),void 0,4),6),this.signallingProtocol.handleMessage(e.type,A.data)}handleOnOpen(A){v.Log(v.GetStackTrace(),"Connected to the signalling server via WebSocket",6),this.onOpen.dispatchEvent(new Event("open"))}handleOnError(){v.Error(v.GetStackTrace(),"WebSocket error")}handleOnClose(A){v.Log(v.GetStackTrace(),"Disconnected to the signalling server via WebSocket: "+JSON.stringify(A.code)+" - "+A.reason),this.onClose.dispatchEvent(new CustomEvent("close",{detail:A}))}requestStreamerList(){const A=new Q;this.webSocket.send(A.payload())}sendSubscribe(A){const e=new U(A);this.webSocket.send(e.payload())}sendUnsubscribe(){const A=new E;this.webSocket.send(A.payload())}sendWebRtcOffer(A,e){const t=new S(A,e);this.webSocket.send(t.payload())}sendWebRtcAnswer(A,e){const t=new b(A,e);this.webSocket.send(t.payload())}sendWebRtcDatachannelRequest(){const A=new I;this.webSocket.send(A.payload())}sendSFURecvDataChannelReady(){const A=new H;this.webSocket.send(A.payload())}sendIceCandidate(A){if(v.Log(v.GetStackTrace(),"Sending Ice Candidate"),this.webSocket&&this.webSocket.readyState===this.WS_OPEN_STATE){const e=new T(A);this.webSocket.send(e.payload())}}close(){var A;null===(A=this.webSocket)||void 0===A||A.close()}onConfig(A){}onStreamerList(A){}onStreamerIDChanged(A){}onIceCandidate(A){}onWebRtcAnswer(A){}onWebRtcOffer(A){}onWebRtcPeerDataChannels(A){}onPlayerCount(A){}}class D{constructor(A){this.videoElementProvider=A,this.audioElement=document.createElement("Audio"),this.videoElementProvider.setAudioElement(this.audioElement)}handleOnTrack(A){if(v.Log(v.GetStackTrace(),"handleOnTrack "+JSON.stringify(A.streams),6),"probator"==A.track.id)return;const e=this.videoElementProvider.getVideoElement();if(A.track&&v.Log(v.GetStackTrace(),"Got track - "+A.track.kind+" id="+A.track.id+" readyState="+A.track.readyState,6),"audio"!=A.track.kind)return"video"==A.track.kind&&e.srcObject!==A.streams[0]?(e.srcObject=A.streams[0],void v.Log(v.GetStackTrace(),"Set video source from video track ontrack.")):void 0;this.CreateAudioTrack(A.streams[0])}CreateAudioTrack(A){const e=this.videoElementProvider.getVideoElement();e.srcObject!=A&&e.srcObject&&e.srcObject!==A&&(this.audioElement.srcObject=A,v.Log(v.GetStackTrace(),"Created new audio element to play separate audio stream."))}}class R{constructor(A){this.freezeFrameHeight=0,this.freezeFrameWidth=0,this.rootDiv=A,this.rootElement=document.createElement("div"),this.rootElement.id="freezeFrame",this.rootElement.style.display="none",this.rootElement.style.pointerEvents="none",this.rootElement.style.position="absolute",this.rootElement.style.zIndex="20",this.imageElement=document.createElement("img"),this.imageElement.style.position="absolute",this.rootElement.appendChild(this.imageElement),this.rootDiv.appendChild(this.rootElement)}setElementForShow(){this.rootElement.style.display="block"}setElementForHide(){this.rootElement.style.display="none"}updateImageElementSource(A){const e=btoa(A.reduce(((A,e)=>A+String.fromCharCode(e)),""));this.imageElement.src="data:image/jpeg;base64,"+e}setDimensionsFromElementAndResize(){this.freezeFrameHeight=this.imageElement.naturalHeight,this.freezeFrameWidth=this.imageElement.naturalWidth,this.resize()}resize(){if(0!==this.freezeFrameWidth&&0!==this.freezeFrameHeight){let A=0,e=0,t=0,n=0;const r=this.rootDiv.clientWidth/this.rootDiv.clientHeight,s=this.freezeFrameWidth/this.freezeFrameHeight;r<s?(A=this.rootDiv.clientWidth,e=Math.floor(this.rootDiv.clientWidth/s),t=Math.floor(.5*(this.rootDiv.clientHeight-e)),n=0):(A=Math.floor(this.rootDiv.clientHeight*s),e=this.rootDiv.clientHeight,t=0,n=Math.floor(.5*(this.rootDiv.clientWidth-A))),this.rootElement.style.width=this.rootDiv.offsetWidth+"px",this.rootElement.style.height=this.rootDiv.offsetHeight+"px",this.rootElement.style.left="0px",this.rootElement.style.top="0px",this.imageElement.style.width=A+"px",this.imageElement.style.height=e+"px",this.imageElement.style.left=n+"px",this.imageElement.style.top=t+"px"}}}class k{constructor(A){this.receiving=!1,this.size=0,this.jpeg=void 0,this.valid=!1,this.freezeFrameDelay=50,this.freezeFrame=new R(A)}showFreezeFrame(){this.valid&&this.freezeFrame.setElementForShow()}hideFreezeFrame(){this.valid=!1,this.freezeFrame.setElementForHide()}updateFreezeFrameAndShow(A,e){this.freezeFrame.updateImageElementSource(A),this.freezeFrame.imageElement.onload=()=>{this.freezeFrame.setDimensionsFromElementAndResize(),e()}}processFreezeFrameMessage(A,e){this.receiving||(this.receiving=!0,this.valid=!1,this.size=0,this.jpeg=void 0),this.size=new DataView(A.slice(1,5).buffer).getInt32(0,!0);const t=A.slice(5);if(this.jpeg){const A=new Uint8Array(this.jpeg.length+t.length);A.set(this.jpeg,0),A.set(t,this.jpeg.length),this.jpeg=A}else this.jpeg=t,this.receiving=!0,v.Log(v.GetStackTrace(),`received first chunk of freeze frame: ${this.jpeg.length}/${this.size}`,6);this.jpeg.length===this.size?(this.receiving=!1,this.valid=!0,v.Log(v.GetStackTrace(),`received complete freeze frame ${this.size}`,6),this.updateFreezeFrameAndShow(this.jpeg,e)):this.jpeg.length>this.size&&(v.Error(v.GetStackTrace(),`received bigger freeze frame than advertised: ${this.jpeg.length}/${this.size}`),this.jpeg=void 0,this.receiving=!1)}}class K{constructor(A,e,t,n,r=()=>{}){this.onChange=r,this.onChangeEmit=()=>{},this.id=A,this.description=t,this.label=e,this.value=n}set label(A){this._label=A,this.onChangeEmit(this._value)}get label(){return this._label}get value(){return this._value}set value(A){this._value=A,this.onChange(this._value,this),this.onChangeEmit(this._value)}}class O extends K{constructor(A,e,t,n,r,s=()=>{}){super(A,e,t,n,s);const i=new URLSearchParams(window.location.search);if(r&&i.has(this.id)){const A=this.getUrlParamFlag();this.flag=A}else this.flag=n;this.useUrlParams=r}getUrlParamFlag(){const A=new URLSearchParams(window.location.search);return!!A.has(this.id)&&"false"!==A.get(this.id)&&"False"!==A.get(this.id)}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);!0===this.flag?A.set(this.id,"true"):A.set(this.id,"false"),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}enable(){this.flag=!0}get flag(){return!!this.value}set flag(A){this.value=A}}class V extends K{constructor(A,e,t,n,r,s,i,o=()=>{}){super(A,e,t,s,o),this._min=n,this._max=r;const a=new URLSearchParams(window.location.search);if(i&&a.has(this.id)){const A=Number.parseFloat(a.get(this.id));this.number=Number.isNaN(A)?s:A}else this.number=s;this.useUrlParams=i}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.number.toString()),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}set number(A){this.value=this.clamp(A)}get number(){return this.value}clamp(A){return null==this._min&&null==this._max?A:null==this._min?Math.min(this._max,A):null==this._max?Math.max(this._min,A):Math.max(Math.min(this._max,A),this._min)}get min(){return this._min}get max(){return this._max}addOnChangedListener(A){this.onChange=A}}class G extends K{constructor(A,e,t,n,r,s=()=>{}){super(A,e,t,n,s);const i=new URLSearchParams(window.location.search);if(r&&i.has(this.id)){const A=this.getUrlParamText();this.text=A}else this.text=n;this.useUrlParams=r}getUrlParamText(){var A;const e=new URLSearchParams(window.location.search);return e.has(this.id)&&null!==(A=e.get(this.id))&&void 0!==A?A:""}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.text),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}get text(){return this.value}set text(A){this.value=A}}class _ extends K{constructor(A,e,t,n,r,s,i=()=>{}){super(A,e,t,n,i),this.options=r;const o=new URLSearchParams(window.location.search),a=s&&o.has(this.id)?this.getUrlParamText():n;this.selected=a,this.useUrlParams=s}getUrlParamText(){var A;const e=new URLSearchParams(window.location.search);return e.has(this.id)&&null!==(A=e.get(this.id))&&void 0!==A?A:""}updateURLParams(){if(this.useUrlParams){const A=new URLSearchParams(window.location.search);A.set(this.id,this.selected),window.history.replaceState({},"",""!==A.toString()?`${location.pathname}?${A}`:`${location.pathname}`)}}addOnChangedListener(A){this.onChange=A}get options(){return this._options}set options(A){this._options=A,this.onChangeEmit(this.selected)}get selected(){return this.value}set selected(A){let e=this.options.filter((e=>-1!==e.indexOf(A)));e.length?this.value=e[0]:(e=this.options.filter((e=>-1!==e.indexOf(A.split(" ")[0]))),e.length&&(this.value=e[0]))}}class N extends Event{constructor(A){super("afkWarningActivate"),this.data=A}}class W extends Event{constructor(A){super("afkWarningUpdate"),this.data=A}}class J extends Event{constructor(){super("afkWarningDeactivate")}}class X extends Event{constructor(){super("afkTimedOut")}}class z extends Event{constructor(A){super("videoEncoderAvgQP"),this.data=A}}class Y extends Event{constructor(){super("webRtcSdp")}}class j extends Event{constructor(){super("webRtcAutoConnect")}}class $ extends Event{constructor(){super("webRtcConnecting")}}class Z extends Event{constructor(){super("webRtcConnected")}}class q extends Event{constructor(){super("webRtcFailed")}}class AA extends Event{constructor(A){super("webRtcDisconnected"),this.data=A}}class eA extends Event{constructor(A){super("dataChannelOpen"),this.data=A}}class tA extends Event{constructor(A){super("dataChannelClose"),this.data=A}}class nA extends Event{constructor(A){super("dataChannelError"),this.data=A}}class rA extends Event{constructor(){super("videoInitialized")}}class sA extends Event{constructor(){super("streamLoading")}}class iA extends Event{constructor(){super("streamConnect")}}class oA extends Event{constructor(){super("streamDisconnect")}}class aA extends Event{constructor(){super("streamReconnect")}}class cA extends Event{constructor(A){super("playStreamError"),this.data=A}}class lA extends Event{constructor(){super("playStream")}}class dA extends Event{constructor(A){super("playStreamRejected"),this.data=A}}class uA extends Event{constructor(A){super("loadFreezeFrame"),this.data=A}}class hA extends Event{constructor(){super("hideFreezeFrame")}}class gA extends Event{constructor(A){super("statsReceived"),this.data=A}}class BA extends Event{constructor(A){super("streamerListMessage"),this.data=A}}class wA extends Event{constructor(A){super("StreamerIDChangedMessage"),this.data=A}}class pA extends Event{constructor(A){super("latencyTestResult"),this.data=A}}class CA extends Event{constructor(A){super("dataChannelLatencyTestResponse"),this.data=A}}class mA extends Event{constructor(A){super("dataChannelLatencyTestResult"),this.data=A}}class fA extends Event{constructor(A){super("initialSettings"),this.data=A}}class vA extends Event{constructor(A){super("settingsChanged"),this.data=A}}class FA extends Event{constructor(){super("xrSessionStarted")}}class QA extends Event{constructor(){super("xrSessionEnded")}}class UA extends Event{constructor(A){super("xrFrame"),this.data=A}}class EA extends Event{constructor(A){super("playerCount"),this.data=A}}class yA extends Event{constructor(){super("webRtcTCPRelayDetected")}}class SA extends EventTarget{dispatchEvent(A){return super.dispatchEvent(A)}addEventListener(A,e){super.addEventListener(A,e)}removeEventListener(A,e){super.removeEventListener(A,e)}}class bA{}bA.AutoConnect="AutoConnect",bA.AutoPlayVideo="AutoPlayVideo",bA.AFKDetection="TimeoutIfIdle",bA.BrowserSendOffer="OfferToReceive",bA.HoveringMouseMode="HoveringMouse",bA.ForceMonoAudio="ForceMonoAudio",bA.ForceTURN="ForceTURN",bA.FakeMouseWithTouches="FakeMouseWithTouches",bA.IsQualityController="ControlsQuality",bA.MatchViewportResolution="MatchViewportRes",bA.StartVideoMuted="StartVideoMuted",bA.SuppressBrowserKeys="SuppressBrowserKeys",bA.UseMic="UseMic",bA.KeyboardInput="KeyboardInput",bA.MouseInput="MouseInput",bA.TouchInput="TouchInput",bA.GamepadInput="GamepadInput",bA.XRControllerInput="XRControllerInput",bA.WaitForStreamer="WaitForStreamer",bA.HideUI="HideUI";const IA=A=>Object.getOwnPropertyNames(bA).some((e=>bA[e]===A));class HA{}HA.AFKTimeoutSecs="AFKTimeout",HA.AFKCountdownSecs="AFKCountdown",HA.MinQP="MinQP",HA.MaxQP="MaxQP",HA.WebRTCFPS="WebRTCFPS",HA.WebRTCMinBitrate="WebRTCMinBitrate",HA.WebRTCMaxBitrate="WebRTCMaxBitrate",HA.MaxReconnectAttempts="MaxReconnectAttempts",HA.StreamerAutoJoinInterval="StreamerAutoJoinInterval";const TA=A=>Object.getOwnPropertyNames(HA).some((e=>HA[e]===A));class MA{}MA.SignallingServerUrl="ss";const LA=A=>Object.getOwnPropertyNames(MA).some((e=>MA[e]===A));class xA{}xA.PreferredCodec="PreferredCodec",xA.StreamerId="StreamerId";const PA=A=>Object.getOwnPropertyNames(xA).some((e=>xA[e]===A));class DA{constructor(A={}){this.flags=new Map,this.numericParameters=new Map,this.textParameters=new Map,this.optionParameters=new Map;const{initialSettings:e,useUrlParams:t}=A;this._useUrlParams=!!t,this.populateDefaultSettings(this._useUrlParams,e)}get useUrlParams(){return this._useUrlParams}populateDefaultSettings(A,e){this.textParameters.set(MA.SignallingServerUrl,new G(MA.SignallingServerUrl,"Signalling url","Url of the signalling server",e&&e.hasOwnProperty(MA.SignallingServerUrl)?e[MA.SignallingServerUrl]:("https:"===location.protocol?"wss://":"ws://")+window.location.hostname+("80"===window.location.port||""===window.location.port?"":`:${window.location.port}`),A)),this.optionParameters.set(xA.StreamerId,new _(xA.StreamerId,"Streamer ID","The ID of the streamer to stream.",e&&e.hasOwnProperty(xA.StreamerId)?e[xA.StreamerId]:"",[],A)),this.optionParameters.set(xA.PreferredCodec,new _(xA.PreferredCodec,"Preferred Codec","The preferred codec to be used during codec negotiation","H264 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f",e&&e.hasOwnProperty(xA.PreferredCodec)?[e[xA.PreferredCodec]]:function(){const A=[];if(!RTCRtpReceiver.getCapabilities)return A.push("Only available on Chrome"),A;const e=/(VP\d|H26\d|AV1).*/;return RTCRtpReceiver.getCapabilities("video").codecs.forEach((t=>{const n=t.mimeType.split("/")[1]+" "+(t.sdpFmtpLine||"");null!==e.exec(n)&&A.push(n)})),A}(),A)),this.flags.set(bA.AutoConnect,new O(bA.AutoConnect,"Auto connect to stream","Whether we should attempt to auto connect to the signalling server or show a click to start prompt.",!(!e||!e.hasOwnProperty(bA.AutoConnect))&&e[bA.AutoConnect],A)),this.flags.set(bA.AutoPlayVideo,new O(bA.AutoPlayVideo,"Auto play video","When video is ready automatically start playing it as opposed to showing a play button.",!e||!e.hasOwnProperty(bA.AutoPlayVideo)||e[bA.AutoPlayVideo],A)),this.flags.set(bA.BrowserSendOffer,new O(bA.BrowserSendOffer,"Browser send offer","Browser will initiate the WebRTC handshake by sending the offer to the streamer",!(!e||!e.hasOwnProperty(bA.BrowserSendOffer))&&e[bA.BrowserSendOffer],A)),this.flags.set(bA.UseMic,new O(bA.UseMic,"Use microphone","Make browser request microphone access and open an input audio track.",!(!e||!e.hasOwnProperty(bA.UseMic))&&e[bA.UseMic],A)),this.flags.set(bA.StartVideoMuted,new O(bA.StartVideoMuted,"Start video muted","Video will start muted if true.",!(!e||!e.hasOwnProperty(bA.StartVideoMuted))&&e[bA.StartVideoMuted],A)),this.flags.set(bA.SuppressBrowserKeys,new O(bA.SuppressBrowserKeys,"Suppress browser keys","Suppress certain browser keys that we use in UE, for example F5 to show shader complexity instead of refresh the page.",!e||!e.hasOwnProperty(bA.SuppressBrowserKeys)||e[bA.SuppressBrowserKeys],A)),this.flags.set(bA.IsQualityController,new O(bA.IsQualityController,"Is quality controller?","True if this peer controls stream quality",!e||!e.hasOwnProperty(bA.IsQualityController)||e[bA.IsQualityController],A)),this.flags.set(bA.ForceMonoAudio,new O(bA.ForceMonoAudio,"Force mono audio","Force browser to request mono audio in the SDP",!(!e||!e.hasOwnProperty(bA.ForceMonoAudio))&&e[bA.ForceMonoAudio],A)),this.flags.set(bA.ForceTURN,new O(bA.ForceTURN,"Force TURN","Only generate TURN/Relayed ICE candidates.",!(!e||!e.hasOwnProperty(bA.ForceTURN))&&e[bA.ForceTURN],A)),this.flags.set(bA.AFKDetection,new O(bA.AFKDetection,"AFK if idle","Timeout the experience if user is AFK for a period.",!(!e||!e.hasOwnProperty(bA.AFKDetection))&&e[bA.AFKDetection],A)),this.flags.set(bA.MatchViewportResolution,new O(bA.MatchViewportResolution,"Match viewport resolution","Pixel Streaming will be instructed to dynamically resize the video stream to match the size of the video element.",!(!e||!e.hasOwnProperty(bA.MatchViewportResolution))&&e[bA.MatchViewportResolution],A)),this.flags.set(bA.HoveringMouseMode,new O(bA.HoveringMouseMode,"Control Scheme: Locked Mouse","Either locked mouse, where the pointer is consumed by the video and locked to it, or hovering mouse, where the mouse is not consumed.",!(!e||!e.hasOwnProperty(bA.HoveringMouseMode))&&e[bA.HoveringMouseMode],A,((A,e)=>{e.label=`Control Scheme: ${A?"Hovering":"Locked"} Mouse`}))),this.flags.set(bA.FakeMouseWithTouches,new O(bA.FakeMouseWithTouches,"Fake mouse with touches","A single finger touch is converted into a mouse event. This allows a non-touch application to be controlled partially via a touch device.",!(!e||!e.hasOwnProperty(bA.FakeMouseWithTouches))&&e[bA.FakeMouseWithTouches],A)),this.flags.set(bA.KeyboardInput,new O(bA.KeyboardInput,"Keyboard input","If enabled, send keyboard events to streamer",!e||!e.hasOwnProperty(bA.KeyboardInput)||e[bA.KeyboardInput],A)),this.flags.set(bA.MouseInput,new O(bA.MouseInput,"Mouse input","If enabled, send mouse events to streamer",!e||!e.hasOwnProperty(bA.MouseInput)||e[bA.MouseInput],A)),this.flags.set(bA.TouchInput,new O(bA.TouchInput,"Touch input","If enabled, send touch events to streamer",!e||!e.hasOwnProperty(bA.TouchInput)||e[bA.TouchInput],A)),this.flags.set(bA.GamepadInput,new O(bA.GamepadInput,"Gamepad input","If enabled, send gamepad events to streamer",!e||!e.hasOwnProperty(bA.GamepadInput)||e[bA.GamepadInput],A)),this.flags.set(bA.XRControllerInput,new O(bA.XRControllerInput,"XR controller input","If enabled, send XR controller events to streamer",!e||!e.hasOwnProperty(bA.XRControllerInput)||e[bA.XRControllerInput],A)),this.flags.set(bA.WaitForStreamer,new O(bA.WaitForStreamer,"Wait for streamer","Will continue trying to connect to the first streamer available.",!e||!e.hasOwnProperty(bA.WaitForStreamer)||e[bA.WaitForStreamer],A)),this.flags.set(bA.HideUI,new O(bA.HideUI,"Hide the UI overlay","Will hide all UI overlay details",!(!e||!e.hasOwnProperty(bA.HideUI))&&e[bA.HideUI],A)),this.numericParameters.set(HA.AFKTimeoutSecs,new V(HA.AFKTimeoutSecs,"AFK timeout","The time (in seconds) it takes for the application to time out if AFK timeout is enabled.",0,null,e&&e.hasOwnProperty(HA.AFKTimeoutSecs)?e[HA.AFKTimeoutSecs]:120,A)),this.numericParameters.set(HA.AFKCountdownSecs,new V(HA.AFKCountdownSecs,"AFK countdown","The time (in seconds) for a user to respond before the stream is ended after an AFK timeout.",10,null,10,A)),this.numericParameters.set(HA.MaxReconnectAttempts,new V(HA.MaxReconnectAttempts,"Max Reconnects","Maximum number of reconnects the application will attempt when a streamer disconnects.",0,999,e&&e.hasOwnProperty(HA.MaxReconnectAttempts)?e[HA.MaxReconnectAttempts]:3,A)),this.numericParameters.set(HA.MinQP,new V(HA.MinQP,"Min QP","The lower bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.",0,51,e&&e.hasOwnProperty(HA.MinQP)?e[HA.MinQP]:0,A)),this.numericParameters.set(HA.MaxQP,new V(HA.MaxQP,"Max QP","The upper bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.",0,51,e&&e.hasOwnProperty(HA.MaxQP)?e[HA.MaxQP]:51,A)),this.numericParameters.set(HA.WebRTCFPS,new V(HA.WebRTCFPS,"Max FPS","The maximum FPS that WebRTC will try to transmit frames at.",1,999,e&&e.hasOwnProperty(HA.WebRTCFPS)?e[HA.WebRTCFPS]:60,A)),this.numericParameters.set(HA.WebRTCMinBitrate,new V(HA.WebRTCMinBitrate,"Min Bitrate (kbps)","The minimum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(HA.WebRTCMinBitrate)?e[HA.WebRTCMinBitrate]:0,A)),this.numericParameters.set(HA.WebRTCMaxBitrate,new V(HA.WebRTCMaxBitrate,"Max Bitrate (kbps)","The maximum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(HA.WebRTCMaxBitrate)?e[HA.WebRTCMaxBitrate]:0,A)),this.numericParameters.set(HA.StreamerAutoJoinInterval,new V(HA.StreamerAutoJoinInterval,"Streamer Auto Join Interval (ms)","Delay between retries when waiting for an available streamer.",500,9e5,e&&e.hasOwnProperty(HA.StreamerAutoJoinInterval)?e[HA.StreamerAutoJoinInterval]:3e3,A))}_addOnNumericSettingChangedListener(A,e){this.numericParameters.has(A)&&this.numericParameters.get(A).addOnChangedListener(e)}_addOnOptionSettingChangedListener(A,e){this.optionParameters.has(A)&&this.optionParameters.get(A).addOnChangedListener(e)}getNumericSettingValue(A){if(this.numericParameters.has(A))return this.numericParameters.get(A).number;throw new Error(`There is no numeric setting with the id of ${A}`)}getTextSettingValue(A){if(this.textParameters.has(A))return this.textParameters.get(A).value;throw new Error(`There is no numeric setting with the id of ${A}`)}setNumericSetting(A,e){if(!this.numericParameters.has(A))throw new Error(`There is no numeric setting with the id of ${A}`);this.numericParameters.get(A).number=e}_addOnSettingChangedListener(A,e){this.flags.has(A)&&(this.flags.get(A).onChange=e)}_addOnTextSettingChangedListener(A,e){this.textParameters.has(A)&&(this.textParameters.get(A).onChange=e)}getSettingOption(A){return this.optionParameters.get(A)}isFlagEnabled(A){return this.flags.get(A).flag}setFlagEnabled(A,e){this.flags.has(A)?this.flags.get(A).flag=e:v.Warning(v.GetStackTrace(),`Cannot toggle flag called ${A} - it does not exist in the Config.flags map.`)}setTextSetting(A,e){this.textParameters.has(A)?this.textParameters.get(A).text=e:v.Warning(v.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.textParameters map.`)}setOptionSettingOptions(A,e){this.optionParameters.has(A)?this.optionParameters.get(A).options=e:v.Warning(v.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.optionParameters map.`)}setOptionSettingValue(A,e){if(this.optionParameters.has(A)){const t=this.optionParameters.get(A),n=t.options;n.includes(e)||(n.push(e),t.options=n),t.selected=e}else v.Warning(v.GetStackTrace(),`Cannot set text setting called ${A} - it does not exist in the Config.enumParameters map.`)}setFlagLabel(A,e){this.flags.has(A)?this.flags.get(A).label=e:v.Warning(v.GetStackTrace(),`Cannot set label for flag called ${A} - it does not exist in the Config.flags map.`)}setSettings(A){for(const e of Object.keys(A))IA(e)?this.setFlagEnabled(e,A[e]):TA(e)?this.setNumericSetting(e,A[e]):LA(e)?this.setTextSetting(e,A[e]):PA(e)&&this.setOptionSettingValue(e,A[e])}getSettings(){const A={};for(const[e,t]of this.flags.entries())A[e]=t.flag;for(const[e,t]of this.numericParameters.entries())A[e]=t.number;for(const[e,t]of this.textParameters.entries())A[e]=t.text;for(const[e,t]of this.optionParameters.entries())A[e]=t.selected;return A}getFlags(){return Array.from(this.flags.values())}getTextSettings(){return Array.from(this.textParameters.values())}getNumericSettings(){return Array.from(this.numericParameters.values())}getOptionSettings(){return Array.from(this.optionParameters.values())}_registerOnChangeEvents(A){for(const e of this.flags.keys()){const t=this.flags.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new vA({id:t.id,type:"flag",value:e,target:t})))}for(const e of this.numericParameters.keys()){const t=this.numericParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new vA({id:t.id,type:"number",value:e,target:t})))}for(const e of this.textParameters.keys()){const t=this.textParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new vA({id:t.id,type:"text",value:e,target:t})))}for(const e of this.optionParameters.keys()){const t=this.optionParameters.get(e);t&&(t.onChangeEmit=e=>A.dispatchEvent(new vA({id:t.id,type:"option",value:e,target:t})))}}}var RA;!function(A){A[A.LockedMouse=0]="LockedMouse",A[A.HoveringMouse=1]="HoveringMouse"}(RA||(RA={}));class kA{constructor(A,e,t){this.active=!1,this.countdownActive=!1,this.warnTimer=void 0,this.countDown=0,this.countDownTimer=void 0,this.config=A,this.pixelStreaming=e,this.onDismissAfk=t,this.onAFKTimedOutCallback=()=>{console.log("AFK timed out, did you want to override this callback?")}}onAfkClick(){clearInterval(this.countDownTimer),(this.active||this.countdownActive)&&(this.startAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new J))}startAfkWarningTimer(){this.config.getNumericSettingValue(HA.AFKTimeoutSecs)>0&&this.config.isFlagEnabled(bA.AFKDetection)?this.active=!0:this.active=!1,this.resetAfkWarningTimer()}stopAfkWarningTimer(){this.active=!1,this.countdownActive=!1,clearTimeout(this.warnTimer),clearInterval(this.countDownTimer)}pauseAfkWarningTimer(){this.active=!1}resetAfkWarningTimer(){this.active&&this.config.isFlagEnabled(bA.AFKDetection)&&(clearTimeout(this.warnTimer),this.warnTimer=setTimeout((()=>this.activateAfkEvent()),1e3*this.config.getNumericSettingValue(HA.AFKTimeoutSecs)))}activateAfkEvent(){this.pauseAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new N({countDown:this.countDown,dismissAfk:this.onDismissAfk})),this.countDown=this.config.getNumericSettingValue(HA.AFKCountdownSecs),this.countdownActive=!0,this.pixelStreaming.dispatchEvent(new W({countDown:this.countDown})),this.config.isFlagEnabled(bA.HoveringMouseMode)||document.exitPointerLock&&document.exitPointerLock(),this.countDownTimer=setInterval((()=>{this.countDown--,0==this.countDown?(this.pixelStreaming.dispatchEvent(new X),this.onAFKTimedOutCallback(),v.Log(v.GetStackTrace(),"You have been disconnected due to inactivity"),this.stopAfkWarningTimer()):this.pixelStreaming.dispatchEvent(new W({countDown:this.countDown}))}),1e3)}}class KA{constructor(){this.isReceivingFreezeFrame=!1}getDataChannelInstance(){return this}createDataChannel(A,e,t){this.peerConnection=A,this.label=e,this.datachannelOptions=t,null==t&&(this.datachannelOptions={},this.datachannelOptions.ordered=!0),this.dataChannel=this.peerConnection.createDataChannel(this.label,this.datachannelOptions),this.setupDataChannel()}setupDataChannel(){this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=A=>this.handleOnOpen(A),this.dataChannel.onclose=A=>this.handleOnClose(A),this.dataChannel.onmessage=A=>this.handleOnMessage(A),this.dataChannel.onerror=A=>this.handleOnError(A)}handleOnOpen(A){var e;v.Log(v.GetStackTrace(),`Data Channel (${this.label}) opened.`,7),this.onOpen(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnClose(A){var e;v.Log(v.GetStackTrace(),`Data Channel (${this.label}) closed.`,7),this.onClose(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnMessage(A){v.Log(v.GetStackTrace(),`Data Channel (${this.label}) message: ${A}`,8)}handleOnError(A){var e;v.Log(v.GetStackTrace(),`Data Channel (${this.label}) error: ${A}`,7),this.onError(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}onOpen(A,e){}onClose(A,e){}onError(A,e){}}class OA{}class VA{}class GA{}class _A{}class NA{}class WA{}class JA{}class XA{constructor(){this.inboundVideoStats=new VA,this.inboundAudioStats=new OA,this.DataChannelStats=new GA,this.outBoundVideoStats=new NA,this.sessionStats=new WA,this.streamStats=new JA,this.codecs=new Map}processStats(A){this.localCandidates=new Array,this.remoteCandidates=new Array,this.candidatePairs=new Array,A.forEach((A=>{switch(A.type){case"candidate-pair":this.handleCandidatePair(A);break;case"certificate":case"media-source":case"media-playout":case"outbound-rtp":case"peer-connection":case"remote-inbound-rtp":break;case"codec":this.handleCodec(A);break;case"data-channel":this.handleDataChannel(A);break;case"inbound-rtp":this.handleInBoundRTP(A);break;case"local-candidate":this.handleLocalCandidate(A);break;case"remote-candidate":this.handleRemoteCandidate(A);break;case"remote-outbound-rtp":this.handleRemoteOutBound(A);break;case"track":this.handleTrack(A);break;case"transport":this.handleTransport(A);break;case"stream":this.handleStream(A);break;default:v.Error(v.GetStackTrace(),"unhandled Stat Type"),v.Log(v.GetStackTrace(),A)}}))}handleStream(A){this.streamStats=A}handleCandidatePair(A){this.candidatePairs.push(A)}handleDataChannel(A){this.DataChannelStats.bytesReceived=A.bytesReceived,this.DataChannelStats.bytesSent=A.bytesSent,this.DataChannelStats.dataChannelIdentifier=A.dataChannelIdentifier,this.DataChannelStats.id=A.id,this.DataChannelStats.label=A.label,this.DataChannelStats.messagesReceived=A.messagesReceived,this.DataChannelStats.messagesSent=A.messagesSent,this.DataChannelStats.protocol=A.protocol,this.DataChannelStats.state=A.state,this.DataChannelStats.timestamp=A.timestamp}handleLocalCandidate(A){const e=new _A;e.label="local-candidate",e.address=A.address,e.port=A.port,e.protocol=A.protocol,e.candidateType=A.candidateType,e.id=A.id,e.relayProtocol=A.relayProtocol,e.transportId=A.transportId,this.localCandidates.push(e)}handleRemoteCandidate(A){const e=new _A;e.label="remote-candidate",e.address=A.address,e.port=A.port,e.protocol=A.protocol,e.id=A.id,e.candidateType=A.candidateType,e.relayProtocol=A.relayProtocol,e.transportId=A.transportId,this.remoteCandidates.push(e)}handleInBoundRTP(A){switch(A.kind){case"video":this.inboundVideoStats=A,null!=this.lastVideoStats&&(this.inboundVideoStats.bitrate=8*(this.inboundVideoStats.bytesReceived-this.lastVideoStats.bytesReceived)/(this.inboundVideoStats.timestamp-this.lastVideoStats.timestamp),this.inboundVideoStats.bitrate=Math.floor(this.inboundVideoStats.bitrate)),this.lastVideoStats=Object.assign({},this.inboundVideoStats);break;case"audio":this.inboundAudioStats=A,null!=this.lastAudioStats&&(this.inboundAudioStats.bitrate=8*(this.inboundAudioStats.bytesReceived-this.lastAudioStats.bytesReceived)/(this.inboundAudioStats.timestamp-this.lastAudioStats.timestamp),this.inboundAudioStats.bitrate=Math.floor(this.inboundAudioStats.bitrate)),this.lastAudioStats=Object.assign({},this.inboundAudioStats);break;default:v.Log(v.GetStackTrace(),"Kind is not handled")}}handleRemoteOutBound(A){"video"===A.kind&&(this.outBoundVideoStats.bytesSent=A.bytesSent,this.outBoundVideoStats.id=A.id,this.outBoundVideoStats.localId=A.localId,this.outBoundVideoStats.packetsSent=A.packetsSent,this.outBoundVideoStats.remoteTimestamp=A.remoteTimestamp,this.outBoundVideoStats.timestamp=A.timestamp)}handleTrack(A){"track"!==A.type||"video_label"!==A.trackIdentifier&&"video"!==A.kind||(this.inboundVideoStats.framesDropped=A.framesDropped,this.inboundVideoStats.framesReceived=A.framesReceived,this.inboundVideoStats.frameHeight=A.frameHeight,this.inboundVideoStats.frameWidth=A.frameWidth)}handleTransport(A){this.transportStats=A}handleCodec(A){const e=A.id,t=`${A.mimeType.replace("video/","").replace("audio/","")}${A.sdpFmtpLine?` ${A.sdpFmtpLine}`:""}`;this.codecs.set(e,t)}handleSessionStatistics(A,e,t){const n=Date.now()-A;this.sessionStats.runTime=new Date(n).toISOString().substr(11,8).toString();const r=null===e?"Not sent yet":e?"true":"false";this.sessionStats.controlsStreamInput=r,this.sessionStats.videoEncoderAvgQP=t}isNumber(A){return"number"==typeof A&&isFinite(A)}getActiveCandidatePair(){return this.transportStats?this.candidatePairs.find((A=>A.id===this.transportStats.selectedCandidatePairId),null):this.candidatePairs.find((A=>A.selected),null)}}const zA=(YA={parseRtpParameters:()=>C.parseRtpParameters,splitSections:()=>C.splitSections},jA={},m.d(jA,YA),jA);var YA,jA;class $A{static isVideoTransciever(A){return this.canTransceiverReceiveVideo(A)||this.canTransceiverSendVideo(A)}static canTransceiverReceiveVideo(A){return!!A&&("sendrecv"===A.direction||"recvonly"===A.direction)&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind}static canTransceiverSendVideo(A){return!!A&&("sendrecv"===A.direction||"sendonly"===A.direction)&&A.sender&&A.sender.track&&"video"===A.sender.track.kind}static isAudioTransciever(A){return this.canTransceiverReceiveAudio(A)||this.canTransceiverSendAudio(A)}static canTransceiverReceiveAudio(A){return!!A&&("sendrecv"===A.direction||"recvonly"===A.direction)&&A.receiver&&A.receiver.track&&"audio"===A.receiver.track.kind}static canTransceiverSendAudio(A){return!!A&&("sendrecv"===A.direction||"sendonly"===A.direction)&&A.sender&&A.sender.track&&"audio"===A.sender.track.kind}}var ZA,qA,Ae=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class ee{constructor(A,e,t){this.config=e,this.createPeerConnection(A,t)}createPeerConnection(A,e){this.config.isFlagEnabled(bA.ForceTURN)&&(A.iceTransportPolicy="relay",v.Log(v.GetStackTrace(),"Forcing TURN usage by setting ICE Transport Policy in peer connection config.")),this.peerConnection=new RTCPeerConnection(A),this.peerConnection.onsignalingstatechange=A=>this.handleSignalStateChange(A),this.peerConnection.oniceconnectionstatechange=A=>this.handleIceConnectionStateChange(A),this.peerConnection.onicegatheringstatechange=A=>this.handleIceGatheringStateChange(A),this.peerConnection.ontrack=A=>this.handleOnTrack(A),this.peerConnection.onicecandidate=A=>this.handleIceCandidate(A),this.peerConnection.ondatachannel=A=>this.handleDataChannel(A),this.aggregatedStats=new XA,this.preferredCodec=e,this.updateCodecSelection=!0}createOffer(A,e){return Ae(this,void 0,void 0,(function*(){v.Log(v.GetStackTrace(),"Create Offer",6);const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,n="https:"===location.protocol;let r=e.isFlagEnabled(bA.UseMic);!r||t||n||(r=!1,v.Error(v.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),v.Error(v.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.setupTransceiversAsync(r).finally((()=>{var e;null===(e=this.peerConnection)||void 0===e||e.createOffer(A).then((A=>{var e;this.showTextOverlayConnecting(),A.sdp=this.mungeSDP(A.sdp,r),null===(e=this.peerConnection)||void 0===e||e.setLocalDescription(A),this.onSendWebRTCOffer(A)})).catch((()=>{this.showTextOverlaySetupFailure()}))}))}))}receiveOffer(A,e){var t;return Ae(this,void 0,void 0,(function*(){v.Log(v.GetStackTrace(),"Receive Offer",6),null===(t=this.peerConnection)||void 0===t||t.setRemoteDescription(A).then((()=>{const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,n="https:"===location.protocol;let r=e.isFlagEnabled(bA.UseMic);!r||t||n||(r=!1,v.Error(v.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),v.Error(v.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.config.setOptionSettingOptions(xA.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A)),this.setupTransceiversAsync(r).finally((()=>{var A;null===(A=this.peerConnection)||void 0===A||A.createAnswer().then((A=>{var e;return A.sdp=this.mungeSDP(A.sdp,r),null===(e=this.peerConnection)||void 0===e?void 0:e.setLocalDescription(A)})).then((()=>{var A;this.onSendWebRTCAnswer(null===(A=this.peerConnection)||void 0===A?void 0:A.currentLocalDescription)})).catch((()=>{v.Error(v.GetStackTrace(),"createAnswer() failed")}))}))}))}))}receiveAnswer(A){var e;null===(e=this.peerConnection)||void 0===e||e.setRemoteDescription(A),this.config.setOptionSettingOptions(xA.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A))}generateStats(){var A;null===(A=this.peerConnection)||void 0===A||A.getStats(null).then((A=>{this.aggregatedStats.processStats(A),this.onVideoStats(this.aggregatedStats),this.updateCodecSelection&&this.aggregatedStats.inboundVideoStats.codecId&&this.config.setOptionSettingValue(xA.PreferredCodec,this.aggregatedStats.codecs.get(this.aggregatedStats.inboundVideoStats.codecId))}))}close(){this.peerConnection&&(this.peerConnection.close(),this.peerConnection=null)}mungeSDP(A,e){let t=A.replace(/(a=fmtp:\d+ .*level-asymmetry-allowed=.*)\r\n/gm,"$1;x-google-start-bitrate=10000;x-google-max-bitrate=100000\r\n"),n="maxaveragebitrate=510000;";return e&&(n+="sprop-maxcapturerate=48000;"),n+=this.config.isFlagEnabled(bA.ForceMonoAudio)?"stereo=0;":"stereo=1;",n+="useinbandfec=1",t=t.replace("useinbandfec=1",n),t}handleOnIce(A){var e;v.Log(v.GetStackTrace(),"peerconnection handleOnIce",6),this.config.isFlagEnabled(bA.ForceTURN)&&A.candidate.indexOf("relay")<0?v.Info(v.GetStackTrace(),`Dropping candidate because it was not TURN relay. | Type= ${A.type} | Protocol= ${A.protocol} | Address=${A.address} | Port=${A.port} |`,6):null===(e=this.peerConnection)||void 0===e||e.addIceCandidate(A)}handleSignalStateChange(A){v.Log(v.GetStackTrace(),"signaling state change: "+A,6)}handleIceConnectionStateChange(A){v.Log(v.GetStackTrace(),"ice connection state change: "+A,6),this.onIceConnectionStateChange(A)}handleIceGatheringStateChange(A){v.Log(v.GetStackTrace(),"ice gathering state change: "+JSON.stringify(A),6)}handleOnTrack(A){this.onTrack(A)}handleIceCandidate(A){this.onPeerIceCandidate(A)}handleDataChannel(A){this.onDataChannel(A)}onTrack(A){}onIceConnectionStateChange(A){}onPeerIceCandidate(A){}onDataChannel(A){}fuzzyIntersectUEAndBrowserCodecs(A){const e=new Array,t=this.parseAvailableCodecs(A),n=this.config.getSettingOption(xA.PreferredCodec).options;for(const A of t)if(n.includes(A))e.push(A);else{const t=A.split(" ")[0];for(const A of n)if(A.includes(t)){e.push(A);break}}return e}setupTransceiversAsync(A){var e,t,n,r,s,i,o,a,c,l,d,u;return Ae(this,void 0,void 0,(function*(){let h=!1;for(const A of null!==(t=null===(e=this.peerConnection)||void 0===e?void 0:e.getTransceivers())&&void 0!==t?t:[])if(A&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind){h=!0;break}if(h||null===(n=this.peerConnection)||void 0===n||n.addTransceiver("video",{direction:"recvonly"}),RTCRtpReceiver.getCapabilities&&""!=this.preferredCodec)for(const A of null!==(s=null===(r=this.peerConnection)||void 0===r?void 0:r.getTransceivers())&&void 0!==s?s:[])if(A&&A.receiver&&A.receiver.track&&"video"===A.receiver.track.kind&&A.setCodecPreferences){const e=this.preferredCodec.split(" "),t={mimeType:"video/"+e[0],clockRate:9e4,sdpFmtpLine:e[1]?e[1]:""},n=[t];RTCRtpReceiver.getCapabilities("video").codecs.forEach((A=>{(A.mimeType!=t.mimeType||(null==A?void 0:A.sdpFmtpLine)!=(null==t?void 0:t.sdpFmtpLine))&&n.push(A)}));for(const A of n)void 0!==(null==A?void 0:A.sdpFmtpLine)&&""!==A.sdpFmtpLine||delete A.sdpFmtpLine;A.setCodecPreferences(n)}let g=!1;for(const A of null!==(o=null===(i=this.peerConnection)||void 0===i?void 0:i.getTransceivers())&&void 0!==o?o:[])if(A&&A.receiver&&A.receiver.track&&"audio"===A.receiver.track.kind){g=!0;break}if(A){const A={video:!1,audio:{autoGainControl:!1,channelCount:1,echoCancellation:!1,latency:0,noiseSuppression:!1,sampleRate:48e3,sampleSize:16,volume:1}},e=yield navigator.mediaDevices.getUserMedia(A);if(e)if(g){for(const A of null!==(l=null===(c=this.peerConnection)||void 0===c?void 0:c.getTransceivers())&&void 0!==l?l:[])if($A.canTransceiverReceiveAudio(A))for(const t of e.getTracks())t.kind&&"audio"==t.kind&&(A.sender.replaceTrack(t),A.direction="sendrecv")}else for(const A of e.getTracks())A.kind&&"audio"==A.kind&&(null===(d=this.peerConnection)||void 0===d||d.addTransceiver(A,{direction:"sendrecv"}));else g||null===(u=this.peerConnection)||void 0===u||u.addTransceiver("audio",{direction:"recvonly"})}else g||null===(a=this.peerConnection)||void 0===a||a.addTransceiver("audio",{direction:"recvonly"})}))}onVideoStats(A){}onSendWebRTCOffer(A){}onSendWebRTCAnswer(A){}showTextOverlayConnecting(){}showTextOverlaySetupFailure(){}parseAvailableCodecs(A){if(!RTCRtpReceiver.getCapabilities)return["Only available on Chrome"];const e=[],t=(0,zA.splitSections)(A.sdp);return t.shift(),t.forEach((A=>{const{codecs:t}=(0,zA.parseRtpParameters)(A),n=/(VP\d|H26\d|AV1).*/;t.forEach((A=>{const t=A.name+" "+Object.keys(A.parameters||{}).map((e=>e+"="+A.parameters[e])).join(";");if(null!==n.exec(t)){"VP9"==A.name&&(A.parameters={"profile-id":"0"});const t=A.name+" "+Object.keys(A.parameters||{}).map((e=>e+"="+A.parameters[e])).join(";");e.push(t)}}))})),e}}class te{constructor(){this.PixelStreamingSettings=new ne,this.EncoderSettings=new re,this.WebRTCSettings=new se}ueCompatible(){null!=this.WebRTCSettings.MaxFPS&&(this.WebRTCSettings.FPS=this.WebRTCSettings.MaxFPS)}}class ne{}class re{}class se{}class ie{constructor(){this.ReceiptTimeMs=null,this.TransmissionTimeMs=null,this.PreCaptureTimeMs=null,this.PostCaptureTimeMs=null,this.PreEncodeTimeMs=null,this.PostEncodeTimeMs=null,this.EncodeMs=null,this.CaptureToSendMs=null,this.testStartTimeMs=0,this.browserReceiptTimeMs=0,this.latencyExcludingDecode=0,this.testDuration=0,this.networkLatency=0,this.browserSendLatency=0,this.frameDisplayDeltaTimeMs=0,this.endToEndLatency=0,this.encodeLatency=0}setFrameDisplayDeltaTime(A){0==this.frameDisplayDeltaTimeMs&&(this.frameDisplayDeltaTimeMs=Math.round(A))}processFields(){null!=this.EncodeMs||null==this.PreEncodeTimeMs&&null==this.PostEncodeTimeMs||(v.Log(v.GetStackTrace(),`Setting Encode Ms \n ${this.PostEncodeTimeMs} \n ${this.PreEncodeTimeMs}`,6),this.EncodeMs=this.PostEncodeTimeMs-this.PreEncodeTimeMs),null!=this.CaptureToSendMs||null==this.PreCaptureTimeMs&&null==this.PostCaptureTimeMs||(v.Log(v.GetStackTrace(),`Setting CaptureToSendMs Ms \n ${this.PostCaptureTimeMs} \n ${this.PreCaptureTimeMs}`,6),this.CaptureToSendMs=this.PostCaptureTimeMs-this.PreCaptureTimeMs)}}class oe{static setExtensionFromBytes(A,e){e.receiving||(e.mimetype="",e.extension="",e.receiving=!0,e.valid=!1,e.size=0,e.data=[],e.timestampStart=(new Date).getTime(),v.Log(v.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));v.Log(v.GetStackTrace(),t,6),e.extension=t}static setMimeTypeFromBytes(A,e){e.receiving||(e.mimetype="",e.extension="",e.receiving=!0,e.valid=!1,e.size=0,e.data=[],e.timestampStart=(new Date).getTime(),v.Log(v.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));v.Log(v.GetStackTrace(),t,6),e.mimetype=t}static setContentsFromBytes(A,e){if(!e.receiving)return;e.size=Math.ceil(new DataView(A.slice(1,5).buffer).getInt32(0,!0)/16379);const t=A.slice(5);if(e.data.push(t),v.Log(v.GetStackTrace(),`Received file chunk: ${e.data.length}/${e.size}`,6),e.data.length===e.size){e.receiving=!1,e.valid=!0,v.Log(v.GetStackTrace(),"Received complete file",6);const A=(new Date).getTime()-e.timestampStart,t=Math.round(16*e.size*1024/A);v.Log(v.GetStackTrace(),`Average transfer bitrate: ${t}kb/s over ${A/1e3} seconds`,6);const n=new Blob(e.data,{type:e.mimetype}),r=document.createElement("a");r.setAttribute("href",URL.createObjectURL(n)),r.setAttribute("download",`transfer.${e.extension}`),document.body.append(r),r.remove()}else e.data.length>e.size&&(e.receiving=!1,v.Error(v.GetStackTrace(),`Received bigger file than advertised: ${e.data.length}/${e.size}`))}}class ae{constructor(){this.mimetype="",this.extension="",this.receiving=!1,this.size=0,this.data=[],this.valid=!1}}class ce{}ce.mainButton=0,ce.auxiliaryButton=1,ce.secondaryButton=2,ce.fourthButton=3,ce.fifthButton=4;class le{}le.primaryButton=1,le.secondaryButton=2,le.auxiliaryButton=4,le.fourthButton=8,le.fifthButton=16;class de{constructor(){this.unregisterCallbacks=[]}addUnregisterCallback(A){this.unregisterCallbacks.push(A)}unregisterAll(){for(const A of this.unregisterCallbacks)A();this.unregisterCallbacks=[]}}class ue{constructor(A,e,t){this.touchEventListenerTracker=new de,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t;const n=A=>this.onTouchStart(A),r=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);document.addEventListener("touchstart",n,{passive:!1}),document.addEventListener("touchend",r,{passive:!1}),document.addEventListener("touchmove",s,{passive:!1}),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchstart",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchend",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchmove",s)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}setVideoElementParentClientRect(A){this.videoElementParentClientRect=A}onTouchStart(A){if(this.videoElementProvider.isVideoReady()&&A.target===this.videoElementProvider.getVideoElement()){if(null==this.fakeTouchFinger){const e=A.changedTouches[0];this.fakeTouchFinger=new he(e.identifier,e.clientX-this.videoElementParentClientRect.left,e.clientY-this.videoElementParentClientRect.top);const t=this.videoElementProvider.getVideoParentElement(),n=new MouseEvent("mouseenter",e);t.dispatchEvent(n);const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(this.fakeTouchFinger.x,this.fakeTouchFinger.y);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([ce.mainButton,r.x,r.y])}A.preventDefault()}}onTouchEnd(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.videoElementProvider.getVideoParentElement(),t=this.toStreamerMessagesProvider.toStreamerHandlers;for(let n=0;n<A.changedTouches.length;n++){const r=A.changedTouches[n];if(r.identifier===this.fakeTouchFinger.id){const A=r.clientX-this.videoElementParentClientRect.left,n=r.clientY-this.videoElementParentClientRect.top,s=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,n);t.get("MouseUp")([ce.mainButton,s.x,s.y]);const i=new MouseEvent("mouseleave",r);e.dispatchEvent(i),this.fakeTouchFinger=null;break}}A.preventDefault()}onTouchMove(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.toStreamerMessagesProvider.toStreamerHandlers;for(let t=0;t<A.touches.length;t++){const n=A.touches[t];if(n.identifier===this.fakeTouchFinger.id){const A=n.clientX-this.videoElementParentClientRect.left,t=n.clientY-this.videoElementParentClientRect.top,r=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,t),s=this.coordinateConverter.normalizeAndQuantizeSigned(A-this.fakeTouchFinger.x,t-this.fakeTouchFinger.y);e.get("MouseMove")([r.x,r.y,s.x,s.y]),this.fakeTouchFinger.x=A,this.fakeTouchFinger.y=t;break}}A.preventDefault()}}class he{constructor(A,e,t){this.id=A,this.x=e,this.y=t}}class ge{}ge.backSpace=8,ge.shift=16,ge.control=17,ge.alt=18,ge.rightShift=253,ge.rightControl=254,ge.rightAlt=255;class Be{constructor(A,e,t){this.keyboardEventListenerTracker=new de,this.CodeToKeyCode={Escape:27,Digit0:48,Digit1:49,Digit2:50,Digit3:51,Digit4:52,Digit5:53,Digit6:54,Digit7:55,Digit8:56,Digit9:57,Minus:173,Equal:187,Backspace:8,Tab:9,KeyQ:81,KeyW:87,KeyE:69,KeyR:82,KeyT:84,KeyY:89,KeyU:85,KeyI:73,KeyO:79,KeyP:80,BracketLeft:219,BracketRight:221,Enter:13,ControlLeft:17,KeyA:65,KeyS:83,KeyD:68,KeyF:70,KeyG:71,KeyH:72,KeyJ:74,KeyK:75,KeyL:76,Semicolon:186,Quote:222,Backquote:192,ShiftLeft:16,Backslash:220,KeyZ:90,KeyX:88,KeyC:67,KeyV:86,KeyB:66,KeyN:78,KeyM:77,Comma:188,Period:190,Slash:191,ShiftRight:253,AltLeft:18,Space:32,CapsLock:20,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,Pause:19,ScrollLock:145,NumpadDivide:111,NumpadMultiply:106,NumpadSubtract:109,NumpadAdd:107,NumpadDecimal:110,Numpad9:105,Numpad8:104,Numpad7:103,Numpad6:102,Numpad5:101,Numpad4:100,Numpad3:99,Numpad2:98,Numpad1:97,Numpad0:96,NumLock:144,ControlRight:254,AltRight:255,Home:36,End:35,ArrowUp:38,ArrowLeft:37,ArrowRight:39,ArrowDown:40,PageUp:33,PageDown:34,Insert:45,Delete:46,ContextMenu:93},this.toStreamerMessagesProvider=A,this.config=e,this.activeKeysProvider=t}registerKeyBoardEvents(){const A=A=>this.handleOnCompositionEnd(A),e=A=>this.handleOnKeyDown(A),t=A=>this.handleOnKeyUp(A),n=A=>this.handleOnKeyPress(A);document.addEventListener("compositionend",A),document.addEventListener("keydown",e),document.addEventListener("keyup",t),document.addEventListener("keypress",n),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("compositionend",A))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keydown",e))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keyup",t))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("keypress",n)))}unregisterKeyBoardEvents(){this.keyboardEventListenerTracker.unregisterAll()}handleOnKeyDown(A){const e=this.getKeycode(A);e&&229!==e&&(v.Log(v.GetStackTrace(),`key down ${e}, repeat = ${A.repeat}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyDown")([this.getKeycode(A),A.repeat?1:0]),this.activeKeysProvider.getActiveKeys().push(e),e===ge.backSpace&&document.dispatchEvent(new KeyboardEvent("keypress",{charCode:ge.backSpace})),this.config.isFlagEnabled(bA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyUp(A){const e=this.getKeycode(A);e&&(v.Log(v.GetStackTrace(),`key up ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyUp")([e]),this.config.isFlagEnabled(bA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyPress(A){if(!("charCode"in A))return void v.Warning(v.GetStackTrace(),"KeyboardEvent.charCode is deprecated in this browser, cannot send key press.");const e=A.charCode;v.Log(v.GetStackTrace(),`key press ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyPress")([e])}handleOnCompositionEnd(A){A.data&&A.data.length&&A.data.split("").forEach((A=>{this.handleOnKeyDown(new KeyboardEvent("keydown",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)})),this.handleOnKeyPress(new KeyboardEvent("keypress",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)})),this.handleOnKeyUp(new KeyboardEvent("keyup",{keyCode:A.toUpperCase().charCodeAt(0),charCode:A.charCodeAt(0)}))}))}getKeycode(A){if(!("keyCode"in A)){const e=A;return e.code in this.CodeToKeyCode?this.CodeToKeyCode[e.code]:(v.Warning(v.GetStackTrace(),`Keyboard code of ${e.code} is not supported in our mapping, ignoring this key.`),null)}return A.keyCode===ge.shift&&"ShiftRight"===A.code?ge.rightShift:A.keyCode===ge.control&&"ControlRight"===A.code?ge.rightControl:A.keyCode===ge.alt&&"AltRight"===A.code?ge.rightAlt:A.keyCode}isKeyCodeBrowserKey(A){return A>=112&&A<=123||9===A}}class we{constructor(A,e,t){this.x=0,this.y=0,this.updateMouseMovePositionEvent=A=>{this.updateMouseMovePosition(A)},this.mouseEventListenerTracker=new de,this.videoElementProvider=A,this.mouseController=e,this.activeKeysProvider=t;const n=this.videoElementProvider.getVideoParentElement();this.x=n.getBoundingClientRect().width/2,this.y=n.getBoundingClientRect().height/2,this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y)}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}lockStateChange(){const A=this.videoElementProvider.getVideoParentElement(),e=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;if(document.pointerLockElement===A||document.mozPointerLockElement===A)v.Log(v.GetStackTrace(),"Pointer locked",6),document.addEventListener("mousemove",this.updateMouseMovePositionEvent,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1)));else{v.Log(v.GetStackTrace(),"The pointer lock status is now unlocked",6),document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1);let A=this.activeKeysProvider.getActiveKeys();const t=new Set(A),n=[];t.forEach((A=>{n[A]})),n.forEach((A=>{e.get("KeyUp")([A])})),A=[]}}updateMouseMovePosition(A){if(!this.videoElementProvider.isVideoReady())return;const e=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers,t=this.videoElementProvider.getVideoParentElement().clientWidth,n=this.videoElementProvider.getVideoParentElement().clientHeight;this.x+=A.movementX,this.y+=A.movementY,this.x>t&&(this.x-=t),this.y>n&&(this.y-=n),this.x<0&&(this.x=t+this.x),this.y<0&&(this.y=n-this.y),this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y);const r=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);e.get("MouseMove")([this.coord.x,this.coord.y,r.x,r.y])}handleMouseDown(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A.button,this.coord.x,this.coord.y])}handleMouseUp(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A.button,this.coord.x,this.coord.y])}handleMouseWheel(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseWheel")([A.wheelDelta,this.coord.x,this.coord.y])}handleMouseDouble(A){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDouble")([A.button,this.coord.x,this.coord.y])}handlePressMouseButtons(A){this.videoElementProvider.isVideoReady()&&this.mouseController.pressMouseButtons(A.buttons,this.x,this.y)}handleReleaseMouseButtons(A){this.videoElementProvider.isVideoReady()&&this.mouseController.releaseMouseButtons(A.buttons,this.x,this.y)}}class pe{constructor(A){this.mouseController=A}unregisterMouseEvents(){}updateMouseMovePosition(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;v.Log(v.GetStackTrace(),"MouseMove",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY),t=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseMove")([e.x,e.y,t.x,t.y]),A.preventDefault()}handleMouseDown(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;v.Log(v.GetStackTrace(),"onMouse Down",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A.button,e.x,e.y]),A.preventDefault()}handleMouseUp(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;v.Log(v.GetStackTrace(),"onMouse Up",6);const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A.button,e.x,e.y]),A.preventDefault()}handleContextMenu(A){this.mouseController.videoElementProvider.isVideoReady()&&A.preventDefault()}handleMouseWheel(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseWheel")([A.wheelDelta,e.x,e.y]),A.preventDefault()}handleMouseDouble(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;const e=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDouble")([A.button,e.x,e.y])}handlePressMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),"onMouse press",6),this.mouseController.pressMouseButtons(A.buttons,A.offsetX,A.offsetY))}handleReleaseMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),"onMouse release",6),this.mouseController.releaseMouseButtons(A.buttons,A.offsetX,A.offsetY))}}class Ce{constructor(A,e,t,n){this.mouseEventListenerTracker=new de,this.toStreamerMessagesProvider=A,this.coordinateConverter=t,this.videoElementProvider=e,this.activeKeysProvider=n,this.registerMouseEnterAndLeaveEvents()}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}registerLockedMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new we(this.videoElementProvider,A,this.activeKeysProvider);if(e.requestPointerLock=e.requestPointerLock||e.mozRequestPointerLock,document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock,e.requestPointerLock){const A=()=>{e.requestPointerLock()};e.addEventListener("click",A),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("click",A)))}const n=()=>t.lockStateChange();document.addEventListener("pointerlockchange",n,!1),document.addEventListener("mozpointerlockchange",n,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("pointerlockchange",n,!1))),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mozpointerlockchange",n,!1)));const r=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleMouseWheel(A),o=A=>t.handleMouseDouble(A);e.addEventListener("mousedown",r),e.addEventListener("mouseup",s),e.addEventListener("wheel",i),e.addEventListener("dblclick",o),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mouseup",s))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("wheel",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("dblclick",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.unregisterMouseEvents())),this.mouseEventListenerTracker.addUnregisterCallback((()=>{!document.exitPointerLock||document.pointerLockElement!==e&&document.mozPointerLockElement!==e||document.exitPointerLock()}))}registerHoveringMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new pe(A),n=A=>t.updateMouseMovePosition(A),r=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleContextMenu(A),o=A=>t.handleMouseWheel(A),a=A=>t.handleMouseDouble(A);e.addEventListener("mousemove",n),e.addEventListener("mousedown",r),e.addEventListener("mouseup",s),e.addEventListener("contextmenu",i),e.addEventListener("wheel",o),e.addEventListener("dblclick",a),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousemove",n))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mouseup",s))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("contextmenu",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("wheel",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("dblclick",a))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.unregisterMouseEvents()))}registerMouseEnterAndLeaveEvents(){const A=this.videoElementProvider.getVideoParentElement(),e=A=>{this.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),"Mouse Entered",6),this.sendMouseEnter(),this.pressMouseButtons(A.buttons,A.x,A.y))},t=A=>{this.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),"Mouse Left",6),this.sendMouseLeave(),this.releaseMouseButtons(A.buttons,A.x,A.y))};A.addEventListener("mouseenter",e),A.addEventListener("mouseleave",t),this.mouseEventListenerTracker.addUnregisterCallback((()=>A.removeEventListener("mouseenter",e))),this.mouseEventListenerTracker.addUnregisterCallback((()=>A.removeEventListener("mouseleave",t)))}releaseMouseButtons(A,e,t){const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&le.primaryButton&&this.sendMouseUp(ce.mainButton,n.x,n.y),A&le.secondaryButton&&this.sendMouseUp(ce.secondaryButton,n.x,n.y),A&le.auxiliaryButton&&this.sendMouseUp(ce.auxiliaryButton,n.x,n.y),A&le.fourthButton&&this.sendMouseUp(ce.fourthButton,n.x,n.y),A&le.fifthButton&&this.sendMouseUp(ce.fifthButton,n.x,n.y)}pressMouseButtons(A,e,t){if(!this.videoElementProvider.isVideoReady())return;const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&le.primaryButton&&this.sendMouseDown(ce.mainButton,n.x,n.y),A&le.secondaryButton&&this.sendMouseDown(ce.secondaryButton,n.x,n.y),A&le.auxiliaryButton&&this.sendMouseDown(ce.auxiliaryButton,n.x,n.y),A&le.fourthButton&&this.sendMouseDown(ce.fourthButton,n.x,n.y),A&le.fifthButton&&this.sendMouseDown(ce.fifthButton,n.x,n.y)}sendMouseEnter(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseEnter")()}sendMouseLeave(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseLeave")()}sendMouseDown(A,e,t){this.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),`mouse button ${A} down at (${e}, ${t})`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([A,e,t]))}sendMouseUp(A,e,t){if(!this.videoElementProvider.isVideoReady())return;v.Log(v.GetStackTrace(),`mouse button ${A} up at (${e}, ${t})`,6);const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A,n.x,n.y])}}class me{constructor(A,e,t){this.fingers=[9,8,7,6,5,4,3,2,1,0],this.fingerIds=new Map,this.maxByteValue=255,this.touchEventListenerTracker=new de,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t,this.videoElementParent=e.getVideoElement();const n=A=>this.onTouchStart(A),r=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);this.videoElementParent.addEventListener("touchstart",n),this.videoElementParent.addEventListener("touchend",r),this.videoElementParent.addEventListener("touchmove",s),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchstart",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchend",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchmove",s))),v.Log(v.GetStackTrace(),"Touch Events Registered",6);const i=A=>{A.preventDefault()};document.addEventListener("touchmove",i),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchmove",i)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}rememberTouch(A){const e=this.fingers.pop();void 0===e&&v.Log(v.GetStackTrace(),"exhausted touch identifiers",6),this.fingerIds.set(A.identifier,e)}forgetTouch(A){this.fingers.push(this.fingerIds.get(A.identifier)),this.fingers.sort((function(A,e){return e-A})),this.fingerIds.delete(A.identifier)}onTouchStart(A){if(this.videoElementProvider.isVideoReady()){for(let e=0;e<A.changedTouches.length;e++)this.rememberTouch(A.changedTouches[e]);v.Log(v.GetStackTrace(),"touch start",6),this.emitTouchData("TouchStart",A.changedTouches),A.preventDefault()}}onTouchEnd(A){if(this.videoElementProvider.isVideoReady()){v.Log(v.GetStackTrace(),"touch end",6),this.emitTouchData("TouchEnd",A.changedTouches);for(let e=0;e<A.changedTouches.length;e++)this.forgetTouch(A.changedTouches[e]);A.preventDefault()}}onTouchMove(A){this.videoElementProvider.isVideoReady()&&(v.Log(v.GetStackTrace(),"touch move",6),this.emitTouchData("TouchMove",A.touches),A.preventDefault())}emitTouchData(A,e){if(!this.videoElementProvider.isVideoReady())return;const t=this.videoElementProvider.getVideoParentElement().getBoundingClientRect(),n=this.toStreamerMessagesProvider.toStreamerHandlers;for(let r=0;r<e.length;r++){const s=1,i=e[r],o=i.clientX-t.left,a=i.clientY-t.top;v.Log(v.GetStackTrace(),`F${this.fingerIds.get(i.identifier)}=(${o}, ${a})`,6);const c=this.coordinateConverter.normalizeAndQuantizeUnsigned(o,a);switch(A){case"TouchStart":n.get("TouchStart")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*(i.force>0?i.force:1),c.inRange?1:0]);break;case"TouchEnd":n.get("TouchEnd")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*i.force,c.inRange?1:0]);break;case"TouchMove":n.get("TouchMove")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*(i.force>0?i.force:1),c.inRange?1:0])}}}}class fe{constructor(A){this.gamePadEventListenerTracker=new de,this.toStreamerMessagesProvider=A,this.requestAnimationFrame=(window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.requestAnimationFrame).bind(window);const e=window;if(window.addEventListener("beforeunload",(A=>this.onBeforeUnload(A))),"GamepadEvent"in e){const A=A=>this.gamePadConnectHandler(A),e=A=>this.gamePadDisconnectHandler(A);window.addEventListener("gamepadconnected",A),window.addEventListener("gamepaddisconnected",e),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("gamepadconnected",A))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("gamepaddisconnected",e)))}else if("WebKitGamepadEvent"in e){const A=A=>this.gamePadConnectHandler(A),e=A=>this.gamePadDisconnectHandler(A);window.addEventListener("webkitgamepadconnected",A),window.addEventListener("webkitgamepaddisconnected",e),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("webkitgamepadconnected",A))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener("webkitgamepaddisconnected",e)))}if(this.controllers=[],navigator.getGamepads)for(const A of navigator.getGamepads())A&&this.gamePadConnectHandler(new GamepadEvent("gamepadconnected",{gamepad:A}))}unregisterGamePadEvents(){this.gamePadEventListenerTracker.unregisterAll();for(const A of this.controllers)void 0!==A.id&&this.onGamepadDisconnected(A.id);this.controllers=[],this.onGamepadConnected=()=>{},this.onGamepadDisconnected=()=>{}}gamePadConnectHandler(A){v.Log(v.GetStackTrace(),"Gamepad connect handler",6);const e=A.gamepad,t={currentState:e,prevState:e,id:void 0};this.controllers.push(t),this.controllers[e.index].currentState=e,this.controllers[e.index].prevState=e,v.Log(v.GetStackTrace(),"gamepad: "+e.id+" connected",6),window.requestAnimationFrame((()=>this.updateStatus())),this.onGamepadConnected()}gamePadDisconnectHandler(A){v.Log(v.GetStackTrace(),"Gamepad disconnect handler",6),v.Log(v.GetStackTrace(),"gamepad: "+A.gamepad.id+" disconnected",6);const e=this.controllers[A.gamepad.index];delete this.controllers[A.gamepad.index],this.controllers=this.controllers.filter((A=>void 0!==A)),this.onGamepadDisconnected(e.id)}scanGamePads(){const A=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():[];for(let e=0;e<A.length;e++)A[e]&&A[e].index in this.controllers&&(this.controllers[A[e].index].currentState=A[e])}updateStatus(){this.scanGamePads();const A=this.toStreamerMessagesProvider.toStreamerHandlers;for(const e of this.controllers){const t=void 0===e.id?this.controllers.indexOf(e):e.id,n=e.currentState;for(let n=0;n<e.currentState.buttons.length;n++){const r=e.currentState.buttons[n],s=e.prevState.buttons[n];r.pressed?n==ZA.LeftTrigger?A.get("GamepadAnalog")([t,5,r.value]):n==ZA.RightTrigger?A.get("GamepadAnalog")([t,6,r.value]):A.get("GamepadButtonPressed")([t,n,s.pressed?1:0]):!r.pressed&&s.pressed&&(n==ZA.LeftTrigger?A.get("GamepadAnalog")([t,5,0]):n==ZA.RightTrigger?A.get("GamepadAnalog")([t,6,0]):A.get("GamepadButtonReleased")([t,n,0]))}for(let e=0;e<n.axes.length;e+=2){const r=parseFloat(n.axes[e].toFixed(4)),s=-parseFloat(n.axes[e+1].toFixed(4));A.get("GamepadAnalog")([t,e+1,r]),A.get("GamepadAnalog")([t,e+2,s])}this.controllers[t].prevState=n}this.controllers.length>0&&this.requestAnimationFrame((()=>this.updateStatus()))}onGamepadResponseReceived(A){for(const e of this.controllers)if(void 0===e.id){e.id=A;break}}onGamepadConnected(){}onGamepadDisconnected(A){}onBeforeUnload(A){for(const A of this.controllers)this.onGamepadDisconnected(A.id)}}!function(A){A[A.RightClusterBottomButton=0]="RightClusterBottomButton",A[A.RightClusterRightButton=1]="RightClusterRightButton",A[A.RightClusterLeftButton=2]="RightClusterLeftButton",A[A.RightClusterTopButton=3]="RightClusterTopButton",A[A.LeftShoulder=4]="LeftShoulder",A[A.RightShoulder=5]="RightShoulder",A[A.LeftTrigger=6]="LeftTrigger",A[A.RightTrigger=7]="RightTrigger",A[A.SelectOrBack=8]="SelectOrBack",A[A.StartOrForward=9]="StartOrForward",A[A.LeftAnalogPress=10]="LeftAnalogPress",A[A.RightAnalogPress=11]="RightAnalogPress",A[A.LeftClusterTopButton=12]="LeftClusterTopButton",A[A.LeftClusterBottomButton=13]="LeftClusterBottomButton",A[A.LeftClusterLeftButton=14]="LeftClusterLeftButton",A[A.LeftClusterRightButton=15]="LeftClusterRightButton",A[A.CentreButton=16]="CentreButton",A[A.LeftStickHorizontal=0]="LeftStickHorizontal",A[A.LeftStickVertical=1]="LeftStickVertical",A[A.RightStickHorizontal=2]="RightStickHorizontal",A[A.RightStickVertical=3]="RightStickVertical"}(ZA||(ZA={}));class ve{constructor(A,e,t){this.activeKeys=new Fe,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t}registerKeyBoard(A){v.Log(v.GetStackTrace(),"Register Keyboard Events",7);const e=new Be(this.toStreamerMessagesProvider,A,this.activeKeys);return e.registerKeyBoardEvents(),e}registerMouse(A){v.Log(v.GetStackTrace(),"Register Mouse Events",7);const e=new Ce(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter,this.activeKeys);switch(A){case RA.LockedMouse:e.registerLockedMouseEvents(e);break;case RA.HoveringMouse:e.registerHoveringMouseEvents(e);break;default:v.Info(v.GetStackTrace(),"unknown Control Scheme Type Defaulting to Locked Mouse Events"),e.registerLockedMouseEvents(e)}return e}registerTouch(A,e){if(v.Log(v.GetStackTrace(),"Registering Touch",6),A){const A=new ue(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter);return A.setVideoElementParentClientRect(e),A}return new me(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter)}registerGamePad(){return v.Log(v.GetStackTrace(),"Register Game Pad",7),new fe(this.toStreamerMessagesProvider)}}class Fe{constructor(){this.activeKeys=[],this.activeKeys=[]}getActiveKeys(){return this.activeKeys}}class Qe{constructor(A,e){this.lastTimeResized=(new Date).getTime(),this.videoElement=document.createElement("video"),this.config=e,this.videoElement.id="streamingVideo",this.videoElement.disablePictureInPicture=!0,this.videoElement.playsInline=!0,this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.pointerEvents="all",A.appendChild(this.videoElement),this.onResizePlayerCallback=()=>{console.log("Resolution changed, restyling player, did you forget to override this function?")},this.onMatchViewportResolutionCallback=()=>{console.log("Resolution changed and match viewport resolution is turned on, did you forget to override this function?")},this.videoElement.onclick=()=>{null!=this.audioElement&&this.audioElement.paused&&this.audioElement.play(),this.videoElement.paused&&this.videoElement.play()},this.videoElement.onloadedmetadata=()=>{this.onVideoInitialized()},window.addEventListener("resize",(()=>this.resizePlayerStyle()),!0),window.addEventListener("orientationchange",(()=>this.onOrientationChange()))}setAudioElement(A){this.audioElement=A}play(){return this.videoElement.muted=this.config.isFlagEnabled(bA.StartVideoMuted),this.videoElement.autoplay=this.config.isFlagEnabled(bA.AutoPlayVideo),this.videoElement.play()}isPaused(){return this.videoElement.paused}isVideoReady(){return void 0!==this.videoElement.readyState&&this.videoElement.readyState>0}hasVideoSource(){return void 0!==this.videoElement.srcObject&&null!==this.videoElement.srcObject}getVideoElement(){return this.videoElement}getVideoParentElement(){return this.videoElement.parentElement}setVideoEnabled(A){this.videoElement.srcObject.getTracks().forEach((e=>e.enabled=A))}onVideoInitialized(){}onOrientationChange(){clearTimeout(this.orientationChangeTimeout),this.orientationChangeTimeout=window.setTimeout((()=>{this.resizePlayerStyle()}),500)}resizePlayerStyle(){const A=this.getVideoParentElement();A&&(this.updateVideoStreamSize(),A.classList.contains("fixed-size")||this.resizePlayerStyleToFillParentElement(),this.onResizePlayerCallback())}resizePlayerStyleToFillParentElement(){this.getVideoParentElement().setAttribute("style","top: 0px; left: 0px; width: 100%; height: 100%; cursor: default;")}updateVideoStreamSize(){if(this.config.isFlagEnabled(bA.MatchViewportResolution))if((new Date).getTime()-this.lastTimeResized>300){const A=this.getVideoParentElement();if(!A)return;this.onMatchViewportResolutionCallback(A.clientWidth,A.clientHeight),this.lastTimeResized=(new Date).getTime()}else v.Log(v.GetStackTrace(),"Resizing too often - skipping",6),clearTimeout(this.resizeTimeoutHandle),this.resizeTimeoutHandle=window.setTimeout((()=>this.updateVideoStreamSize()),100)}}class Ue{constructor(){this.toStreamerHandlers=new Map,this.fromStreamerHandlers=new Map,this.toStreamerMessages=new Map,this.fromStreamerMessages=new Map}populateDefaultProtocol(){this.toStreamerMessages.set("IFrameRequest",{id:0,structure:[]}),this.toStreamerMessages.set("RequestQualityControl",{id:1,structure:[]}),this.toStreamerMessages.set("FpsRequest",{id:2,structure:[]}),this.toStreamerMessages.set("AverageBitrateRequest",{id:3,structure:[]}),this.toStreamerMessages.set("StartStreaming",{id:4,structure:[]}),this.toStreamerMessages.set("StopStreaming",{id:5,structure:[]}),this.toStreamerMessages.set("LatencyTest",{id:6,structure:["string"]}),this.toStreamerMessages.set("RequestInitialSettings",{id:7,structure:[]}),this.toStreamerMessages.set("TestEcho",{id:8,structure:[]}),this.toStreamerMessages.set("DataChannelLatencyTest",{id:9,structure:[]}),this.toStreamerMessages.set("UIInteraction",{id:50,structure:["string"]}),this.toStreamerMessages.set("Command",{id:51,structure:["string"]}),this.toStreamerMessages.set("KeyDown",{id:60,structure:["uint8","uint8"]}),this.toStreamerMessages.set("KeyUp",{id:61,structure:["uint8"]}),this.toStreamerMessages.set("KeyPress",{id:62,structure:["uint16"]}),this.toStreamerMessages.set("MouseEnter",{id:70,structure:[]}),this.toStreamerMessages.set("MouseLeave",{id:71,structure:[]}),this.toStreamerMessages.set("MouseDown",{id:72,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("MouseUp",{id:73,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("MouseMove",{id:74,structure:["uint16","uint16","int16","int16"]}),this.toStreamerMessages.set("MouseWheel",{id:75,structure:["int16","uint16","uint16"]}),this.toStreamerMessages.set("MouseDouble",{id:76,structure:["uint8","uint16","uint16"]}),this.toStreamerMessages.set("TouchStart",{id:80,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("TouchEnd",{id:81,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("TouchMove",{id:82,structure:["uint8","uint16","uint16","uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadConnected",{id:93,structure:[]}),this.toStreamerMessages.set("GamepadButtonPressed",{id:90,structure:["uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadButtonReleased",{id:91,structure:["uint8","uint8","uint8"]}),this.toStreamerMessages.set("GamepadAnalog",{id:92,structure:["uint8","uint8","double"]}),this.toStreamerMessages.set("GamepadDisconnected",{id:94,structure:["uint8"]}),this.fromStreamerMessages.set(0,"QualityControlOwnership"),this.fromStreamerMessages.set(1,"Response"),this.fromStreamerMessages.set(2,"Command"),this.fromStreamerMessages.set(3,"FreezeFrame"),this.fromStreamerMessages.set(4,"UnfreezeFrame"),this.fromStreamerMessages.set(5,"VideoEncoderAvgQP"),this.fromStreamerMessages.set(6,"LatencyTest"),this.fromStreamerMessages.set(7,"InitialSettings"),this.fromStreamerMessages.set(8,"FileExtension"),this.fromStreamerMessages.set(9,"FileMimeType"),this.fromStreamerMessages.set(10,"FileContents"),this.fromStreamerMessages.set(11,"TestEcho"),this.fromStreamerMessages.set(12,"InputControlOwnership"),this.fromStreamerMessages.set(13,"GamepadResponse"),this.fromStreamerMessages.set(14,"DataChannelLatencyTest"),this.fromStreamerMessages.set(255,"Protocol")}registerMessageHandler(A,e,t){switch(A){case qA.ToStreamer:this.toStreamerHandlers.set(e,t);break;case qA.FromStreamer:this.fromStreamerHandlers.set(e,t);break;default:v.Log(v.GetStackTrace(),`Unknown message direction ${A}`)}}}!function(A){A[A.ToStreamer=0]="ToStreamer",A[A.FromStreamer=1]="FromStreamer"}(qA||(qA={}));class Ee{constructor(){this.responseEventListeners=new Map}addResponseEventListener(A,e){this.responseEventListeners.set(A,e)}removeResponseEventListener(A){this.responseEventListeners.delete(A)}onResponse(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.Response",6);const e=new TextDecoder("utf-16").decode(A.slice(1));v.Log(v.GetStackTrace(),e,6),this.responseEventListeners.forEach((A=>{A(e)}))}}class ye{constructor(A,e){this.dataChannelSender=A,this.toStreamerMessagesMapProvider=e}sendMessageToStreamer(A,e){void 0===e&&(e=[]);const t=this.toStreamerMessagesMapProvider.toStreamerMessages.get(A);if(void 0===t)return void v.Error(v.GetStackTrace(),`Attempted to send a message to the streamer with message type: ${A}, but the frontend hasn't been configured to send such a message. Check you've added the message type in your cpp`);if(t.structure&&e&&t.structure.length!==e.length)return void v.Error(v.GetStackTrace(),`Provided message data doesn't match expected layout. Expected [ ${t.structure.map((A=>{switch(A){case"uint8":case"uint16":case"int16":case"float":case"double":return"number";case"string":return"string"}})).toString()} ] but received [ ${e.map((A=>typeof A)).toString()} ]`);let n=0;const r=new TextEncoder;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":n+=1;break;case"uint16":case"int16":n+=2;break;case"float":n+=4;break;case"double":n+=8;break;case"string":n+=2,n+=2*r.encode(A).length}}));const s=new DataView(new ArrayBuffer(n+1));s.setUint8(0,t.id);let i=1;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":s.setUint8(i,A),i+=1;break;case"uint16":s.setUint16(i,A,!0),i+=2;break;case"int16":s.setInt16(i,A,!0),i+=2;break;case"float":s.setFloat32(i,A,!0),i+=4;break;case"double":s.setFloat64(i,A,!0),i+=8;break;case"string":s.setUint16(i,A.length,!0),i+=2;for(let e=0;e<A.length;e++)s.setUint16(i,A.charCodeAt(e),!0),i+=2}})),this.dataChannelSender.canSend()?this.dataChannelSender.sendData(s.buffer):v.Info(v.GetStackTrace(),`Data channel cannot send yet, skipping sending message: ${A} - ${new Uint8Array(s.buffer)}`)}}class Se{constructor(A){this.sendMessageController=A}SendRequestQualityControl(){this.sendMessageController.sendMessageToStreamer("RequestQualityControl")}SendMaxFpsRequest(){this.sendMessageController.sendMessageToStreamer("FpsRequest")}SendAverageBitrateRequest(){this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest")}SendStartStreaming(){this.sendMessageController.sendMessageToStreamer("StartStreaming")}SendStopStreaming(){this.sendMessageController.sendMessageToStreamer("StopStreaming")}SendRequestInitialSettings(){this.sendMessageController.sendMessageToStreamer("RequestInitialSettings")}}class be{constructor(A){this.dataChannelProvider=A}canSend(){return void 0!==this.dataChannelProvider.getDataChannelInstance().dataChannel&&"open"==this.dataChannelProvider.getDataChannelInstance().dataChannel.readyState}sendData(A){const e=this.dataChannelProvider.getDataChannelInstance();"open"==e.dataChannel.readyState?(e.dataChannel.send(A),v.Log(v.GetStackTrace(),`Message Sent: ${new Uint8Array(A)}`,6),this.resetAfkWarningTimerOnDataSend()):v.Error(v.GetStackTrace(),`Message Failed: ${new Uint8Array(A)}`)}resetAfkWarningTimerOnDataSend(){}}class Ie{constructor(A){this.videoElementProvider=A,this.normalizeAndQuantizeUnsignedFunc=()=>{throw new Error("Normalize and quantize unsigned, method not implemented.")},this.normalizeAndQuantizeSignedFunc=()=>{throw new Error("Normalize and unquantize signed, method not implemented.")},this.denormalizeAndUnquantizeUnsignedFunc=()=>{throw new Error("Denormalize and unquantize unsigned, method not implemented.")}}normalizeAndQuantizeUnsigned(A,e){return this.normalizeAndQuantizeUnsignedFunc(A,e)}unquantizeAndDenormalizeUnsigned(A,e){return this.denormalizeAndUnquantizeUnsignedFunc(A,e)}normalizeAndQuantizeSigned(A,e){return this.normalizeAndQuantizeSignedFunc(A,e)}setupNormalizeAndQuantize(){if(this.videoElementParent=this.videoElementProvider.getVideoParentElement(),this.videoElement=this.videoElementProvider.getVideoElement(),this.videoElementParent&&this.videoElement){const A=this.videoElementParent.clientWidth||1,e=this.videoElementParent.clientHeight||1,t=this.videoElement.videoWidth||1,n=e/A,r=(this.videoElement.videoHeight||1)/t;n>r?(v.Log(v.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio > videoAspectRatio",6),this.ratio=n/r,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerBigger(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerBigger(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerBigger(A,e)):(v.Log(v.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio <= videoAspectRatio",6),this.ratio=r/n,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerSmaller(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerSmaller(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e))}}normalizeAndQuantizeUnsignedPlayerBigger(A,e){const t=A/this.videoElementParent.clientWidth,n=this.ratio*(e/this.videoElementParent.clientHeight-.5)+.5;return t<0||t>1||n<0||n>1?new He(!1,65535,65535):new He(!0,65536*t,65536*n)}denormalizeAndUnquantizeUnsignedPlayerBigger(A,e){const t=A/65536,n=(e/65536-.5)/this.ratio+.5;return new Te(t*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerBigger(A,e){const t=A/(.5*this.videoElementParent.clientWidth),n=this.ratio*e/(.5*this.videoElementParent.clientHeight);return new Me(32767*t,32767*n)}normalizeAndQuantizeUnsignedPlayerSmaller(A,e){const t=this.ratio*(A/this.videoElementParent.clientWidth-.5)+.5,n=e/this.videoElementParent.clientHeight;return t<0||t>1||n<0||n>1?new He(!1,65535,65535):new He(!0,65536*t,65536*n)}denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e){const t=(A/65536-.5)/this.ratio+.5,n=e/65536;return new Te(t*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerSmaller(A,e){const t=this.ratio*A/(.5*this.videoElementParent.clientWidth),n=e/(.5*this.videoElementParent.clientHeight);return new Me(32767*t,32767*n)}}class He{constructor(A,e,t){this.inRange=A,this.x=e,this.y=t}}class Te{constructor(A,e){this.x=A,this.y=e}}class Me{constructor(A,e){this.x=A,this.y=e}}class Le{constructor(A,e){this.shouldShowPlayOverlay=!0,this.autoJoinTimer=void 0,this.config=A,this.pixelStreaming=e,this.responseController=new Ee,this.file=new ae,this.sdpConstraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},this.afkController=new kA(this.config,this.pixelStreaming,this.onAfkTriggered.bind(this)),this.afkController.onAFKTimedOutCallback=()=>{this.closeSignalingServer("You have been disconnected due to inactivity")},this.freezeFrameController=new k(this.pixelStreaming.videoElementParent),this.videoPlayer=new Qe(this.pixelStreaming.videoElementParent,this.config),this.videoPlayer.onVideoInitialized=()=>this.handleVideoInitialized(),this.videoPlayer.onMatchViewportResolutionCallback=(A,e)=>{const t={"Resolution.Width":A,"Resolution.Height":e};this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(t)])},this.videoPlayer.onResizePlayerCallback=()=>{this.setUpMouseAndFreezeFrame()},this.streamController=new D(this.videoPlayer),this.coordinateConverter=new Ie(this.videoPlayer),this.sendrecvDataChannelController=new KA,this.recvDataChannelController=new KA,this.registerDataChannelEventEmitters(this.sendrecvDataChannelController),this.registerDataChannelEventEmitters(this.recvDataChannelController),this.dataChannelSender=new be(this.sendrecvDataChannelController),this.dataChannelSender.resetAfkWarningTimerOnDataSend=()=>this.afkController.resetAfkWarningTimer(),this.streamMessageController=new Ue,this.webSocketController=new P,this.webSocketController.onConfig=A=>this.handleOnConfigMessage(A),this.webSocketController.onStreamerList=A=>this.handleStreamerListMessage(A),this.webSocketController.onStreamerIDChanged=A=>this.handleStreamerIDChangedMessage(A),this.webSocketController.onPlayerCount=A=>{this.pixelStreaming._onPlayerCount(A.count)},this.webSocketController.onOpen.addEventListener("open",(()=>{this.config.isFlagEnabled(bA.BrowserSendOffer)||this.webSocketController.requestStreamerList()})),this.webSocketController.onClose.addEventListener("close",(A=>{const e=this.shouldReconnect&&1001!=A.detail.code&&this.config.getNumericSettingValue(HA.MaxReconnectAttempts)>0,t=this.disconnectMessage?this.disconnectMessage:A.detail.reason;this.pixelStreaming._onDisconnect(t,!e&&!this.isReconnecting),this.afkController.stopAfkWarningTimer(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.setVideoEncoderAvgQP(0),this.setTouchInputEnabled(!1),this.setMouseInputEnabled(!1),this.setKeyboardInputEnabled(!1),this.setGamePadInputEnabled(!1),e&&setTimeout((()=>{this.isReconnecting=!0,this.reconnectAttempt++,this.tryReconnect(A.detail.reason)}),2e3)})),this.sendMessageController=new ye(this.dataChannelSender,this.streamMessageController),this.toStreamerMessagesController=new Se(this.sendMessageController),this.registerMessageHandlers(),this.streamMessageController.populateDefaultProtocol(),this.inputClassesFactory=new ve(this.streamMessageController,this.videoPlayer,this.coordinateConverter),this.isUsingSFU=!1,this.isQualityController=!1,this.preferredCodec="",this.shouldReconnect=!0,this.isReconnecting=!1,this.reconnectAttempt=0,this.config._addOnOptionSettingChangedListener(xA.StreamerId,(A=>{""!==A&&(this.peerConnectionController.peerConnection.close(),this.peerConnectionController.createPeerConnection(this.peerConfig,this.preferredCodec),this.subscribedStream=A,this.webSocketController.sendSubscribe(A))})),this.setVideoEncoderAvgQP(-1),this.signallingUrlBuilder=()=>{let A=this.config.getTextSettingValue(MA.SignallingServerUrl);return this.config.isFlagEnabled(bA.BrowserSendOffer)&&(A+="?"+bA.BrowserSendOffer+"=true"),A}}requestUnquantizedAndDenormalizeUnsigned(A,e){return this.coordinateConverter.unquantizeAndDenormalizeUnsigned(A,e)}handleOnMessage(A){const e=new Uint8Array(A.data);v.Log(v.GetStackTrace(),"Message incoming:"+e,6);const t=this.streamMessageController.fromStreamerMessages.get(e[0]);this.streamMessageController.fromStreamerHandlers.get(t)(A.data)}registerMessageHandlers(){this.streamMessageController.registerMessageHandler(qA.FromStreamer,"QualityControlOwnership",(A=>this.onQualityControlOwnership(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"Response",(A=>this.responseController.onResponse(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"Command",(A=>{this.onCommand(A)})),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"FreezeFrame",(A=>this.onFreezeFrameMessage(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"UnfreezeFrame",(()=>this.invalidateFreezeFrameAndEnableVideo())),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"VideoEncoderAvgQP",(A=>this.handleVideoEncoderAvgQP(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"LatencyTest",(A=>this.handleLatencyTestResult(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"DataChannelLatencyTest",(A=>this.handleDataChannelLatencyTestResponse(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"InitialSettings",(A=>this.handleInitialSettings(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"FileExtension",(A=>this.onFileExtension(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"FileMimeType",(A=>this.onFileMimeType(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"FileContents",(A=>this.onFileContents(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"InputControlOwnership",(A=>this.onInputControlOwnership(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"GamepadResponse",(A=>this.onGamepadResponse(A))),this.streamMessageController.registerMessageHandler(qA.FromStreamer,"Protocol",(A=>this.onProtocolMessage(A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"IFrameRequest",(()=>this.sendMessageController.sendMessageToStreamer("IFrameRequest"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"RequestQualityControl",(()=>this.sendMessageController.sendMessageToStreamer("RequestQualityControl"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"FpsRequest",(()=>this.sendMessageController.sendMessageToStreamer("FpsRequest"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"AverageBitrateRequest",(()=>this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"StartStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StartStreaming"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"StopStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StopStreaming"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"LatencyTest",(A=>this.sendMessageController.sendMessageToStreamer("LatencyTest",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"RequestInitialSettings",(()=>this.sendMessageController.sendMessageToStreamer("RequestInitialSettings"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"UIInteraction",(A=>this.sendMessageController.sendMessageToStreamer("UIInteraction",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"Command",(A=>this.sendMessageController.sendMessageToStreamer("Command",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"TextboxEntry",(A=>this.sendMessageController.sendMessageToStreamer("TextboxEntry",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"KeyDown",(A=>this.sendMessageController.sendMessageToStreamer("KeyDown",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"KeyUp",(A=>this.sendMessageController.sendMessageToStreamer("KeyUp",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"KeyPress",(A=>this.sendMessageController.sendMessageToStreamer("KeyPress",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseEnter",(A=>this.sendMessageController.sendMessageToStreamer("MouseEnter",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseLeave",(A=>this.sendMessageController.sendMessageToStreamer("MouseLeave",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseDown",(A=>this.sendMessageController.sendMessageToStreamer("MouseDown",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseUp",(A=>this.sendMessageController.sendMessageToStreamer("MouseUp",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseMove",(A=>this.sendMessageController.sendMessageToStreamer("MouseMove",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseWheel",(A=>this.sendMessageController.sendMessageToStreamer("MouseWheel",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"MouseDouble",(A=>this.sendMessageController.sendMessageToStreamer("MouseDouble",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"TouchStart",(A=>this.sendMessageController.sendMessageToStreamer("TouchStart",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"TouchEnd",(A=>this.sendMessageController.sendMessageToStreamer("TouchEnd",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"TouchMove",(A=>this.sendMessageController.sendMessageToStreamer("TouchMove",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"GamepadConnected",(()=>this.sendMessageController.sendMessageToStreamer("GamepadConnected"))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"GamepadButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonPressed",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"GamepadButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonReleased",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"GamepadAnalog",(A=>this.sendMessageController.sendMessageToStreamer("GamepadAnalog",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"GamepadDisconnected",(A=>this.sendMessageController.sendMessageToStreamer("GamepadDisconnected",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XREyeViews",(A=>this.sendMessageController.sendMessageToStreamer("XREyeViews",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRHMDTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRHMDTransform",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRControllerTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRControllerTransform",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRSystem",(A=>this.sendMessageController.sendMessageToStreamer("XRSystem",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRButtonTouched",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouched",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRButtonTouchReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouchReleased",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonPressed",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonReleased",A))),this.streamMessageController.registerMessageHandler(qA.ToStreamer,"XRAnalog",(A=>this.sendMessageController.sendMessageToStreamer("XRAnalog",A)))}onCommand(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.Command",6);const e=new TextDecoder("utf-16").decode(A.slice(1));v.Log(v.GetStackTrace(),"Data Channel Command: "+e,6);const t=JSON.parse(e);"onScreenKeyboard"===t.command&&this.pixelStreaming._activateOnScreenKeyboard(t)}onProtocolMessage(A){try{const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);Object.prototype.hasOwnProperty.call(t,"Direction")||v.Error(v.GetStackTrace(),"Malformed protocol received. Ensure the protocol message contains a direction");const n=t.Direction;delete t.Direction,v.Log(v.GetStackTrace(),`Received new ${n==qA.FromStreamer?"FromStreamer":"ToStreamer"} protocol. Updating existing protocol...`),Object.keys(t).forEach((A=>{const e=t[A];switch(n){case qA.ToStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void v.Error(v.GetStackTrace(),`ToStreamer->${A} protocol definition was malformed as it didn't contain at least an id\n\n Definition was: ${JSON.stringify(e,null,2)}`);if("UIInteraction"===A||"Command"===A||"LatencyTest"===A)return;this.streamMessageController.toStreamerHandlers.get(A)?this.streamMessageController.toStreamerMessages.set(A,e):v.Error(v.GetStackTrace(),`There was no registered handler for "${A}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${A}", myHandler)`);break;case qA.FromStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void v.Error(v.GetStackTrace(),`FromStreamer->${A} protocol definition was malformed as it didn't contain at least an id\n\n Definition was: ${JSON.stringify(e,null,2)}`);this.streamMessageController.fromStreamerHandlers.get(A)?this.streamMessageController.fromStreamerMessages.set(e.id,A):v.Error(v.GetStackTrace(),`There was no registered handler for "${e}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${A}", myHandler)`);break;default:v.Error(v.GetStackTrace(),`Unknown direction: ${n}`)}})),this.toStreamerMessagesController.SendRequestInitialSettings(),this.toStreamerMessagesController.SendRequestQualityControl()}catch(A){v.Log(v.GetStackTrace(),A)}}onInputControlOwnership(A){const e=new Uint8Array(A);v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.InputControlOwnership",6);const t=new Boolean(e[1]).valueOf();v.Log(v.GetStackTrace(),`Received input controller message - will your input control the stream: ${t}`),this.pixelStreaming._onInputControlOwnership(t)}onGamepadResponse(A){const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.gamePadController.onGamepadResponseReceived(t.controllerId)}onAfkTriggered(){this.afkController.onAfkClick(),this.videoPlayer.isPaused()&&this.videoPlayer.hasVideoSource()&&this.playStream()}setAfkEnabled(A){A?this.onAfkTriggered():this.afkController.stopAfkWarningTimer()}tryReconnect(A){this.webSocketController?(this.isReconnecting=!0,this.webSocketController.webSocket&&this.webSocketController.webSocket.readyState!=WebSocket.CLOSED?(this.closeSignalingServer(`${A} Restarting stream...`),setTimeout((()=>{this.tryReconnect(A)}),3e3)):(this.pixelStreaming._onWebRtcAutoConnect(),this.connectToSignallingServer())):v.Log(v.GetStackTrace(),"The Web Socket Controller does not exist so this will not work right now.")}loadFreezeFrameOrShowPlayOverlay(){this.pixelStreaming.dispatchEvent(new uA({shouldShowPlayOverlay:this.shouldShowPlayOverlay,isValid:this.freezeFrameController.valid,jpegData:this.freezeFrameController.jpeg})),!0===this.shouldShowPlayOverlay?(v.Log(v.GetStackTrace(),"showing play overlay"),this.resizePlayerStyle()):(v.Log(v.GetStackTrace(),"showing freeze frame"),this.freezeFrameController.showFreezeFrame()),setTimeout((()=>{this.videoPlayer.setVideoEnabled(!1)}),this.freezeFrameController.freezeFrameDelay)}onFreezeFrameMessage(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6);const e=new Uint8Array(A);this.freezeFrameController.processFreezeFrameMessage(e,(()=>this.loadFreezeFrameOrShowPlayOverlay()))}invalidateFreezeFrameAndEnableVideo(){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6),setTimeout((()=>{this.pixelStreaming.dispatchEvent(new hA),this.freezeFrameController.hideFreezeFrame()}),this.freezeFrameController.freezeFrameDelay),this.videoPlayer.getVideoElement()&&this.videoPlayer.setVideoEnabled(!0)}onFileExtension(A){const e=new Uint8Array(A);oe.setExtensionFromBytes(e,this.file)}onFileMimeType(A){const e=new Uint8Array(A);oe.setMimeTypeFromBytes(e,this.file)}onFileContents(A){const e=new Uint8Array(A);oe.setContentsFromBytes(e,this.file)}playStream(){if(!this.videoPlayer.getVideoElement()){const A="Could not play video stream because the video player was not initialized correctly.";return this.pixelStreaming.dispatchEvent(new cA({message:A})),v.Error(v.GetStackTrace(),A),void this.closeSignalingServer("Stream not initialized correctly")}if(this.videoPlayer.hasVideoSource()){if(this.setTouchInputEnabled(this.config.isFlagEnabled(bA.TouchInput)),this.pixelStreaming.dispatchEvent(new lA),this.streamController.audioElement.srcObject){const A=this.config.isFlagEnabled(bA.StartVideoMuted);this.streamController.audioElement.muted=A,A?this.playVideo():this.streamController.audioElement.play().then((()=>{this.playVideo()})).catch((A=>{v.Log(v.GetStackTrace(),A),v.Log(v.GetStackTrace(),"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay."),this.pixelStreaming.dispatchEvent(new dA({reason:A}))}))}else this.playVideo();this.shouldShowPlayOverlay=!1,this.freezeFrameController.showFreezeFrame()}else v.Warning(v.GetStackTrace(),"Cannot play stream, the video element has no srcObject to play.")}playVideo(){this.videoPlayer.play().catch((A=>{this.streamController.audioElement.srcObject&&this.streamController.audioElement.pause(),v.Log(v.GetStackTrace(),A),v.Log(v.GetStackTrace(),"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay."),this.pixelStreaming.dispatchEvent(new dA({reason:A}))}))}autoPlayVideoOrSetUpPlayOverlay(){this.config.isFlagEnabled(bA.AutoPlayVideo)&&this.playStream(),this.resizePlayerStyle()}connectToSignallingServer(){this.locallyClosed=!1,this.shouldReconnect=!0,this.disconnectMessage=null;const A=this.signallingUrlBuilder();this.webSocketController.connect(A)}startSession(A){if(this.peerConfig=A,this.config.isFlagEnabled(bA.ForceTURN)&&!this.checkTurnServerAvailability(A))return v.Info(v.GetStackTrace(),"No turn server was found in the Peer Connection Options. TURN cannot be forced, closing connection. Please use STUN instead"),void this.closeSignalingServer("TURN cannot be forced, closing connection. Please use STUN instead.");this.peerConnectionController=new ee(this.peerConfig,this.config,this.preferredCodec),this.peerConnectionController.onVideoStats=A=>this.handleVideoStats(A),this.peerConnectionController.onSendWebRTCOffer=A=>this.handleSendWebRTCOffer(A),this.peerConnectionController.onSendWebRTCAnswer=A=>this.handleSendWebRTCAnswer(A),this.peerConnectionController.onPeerIceCandidate=A=>this.handleSendIceCandidate(A),this.peerConnectionController.onDataChannel=A=>this.handleDataChannel(A),this.peerConnectionController.showTextOverlayConnecting=()=>this.pixelStreaming._onWebRtcConnecting(),this.peerConnectionController.showTextOverlaySetupFailure=()=>this.pixelStreaming._onWebRtcFailed();let e=!1;this.peerConnectionController.onIceConnectionStateChange=()=>{!e&&["connected","completed"].includes(this.peerConnectionController.peerConnection.iceConnectionState)&&(this.pixelStreaming._onWebRtcConnected(),e=!0)},this.peerConnectionController.onTrack=A=>this.streamController.handleOnTrack(A),this.config.isFlagEnabled(bA.BrowserSendOffer)&&(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,"cirrus",this.datachannelOptions),this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A),this.peerConnectionController.createOffer(this.sdpConstraints,this.config))}checkTurnServerAvailability(A){if(!A.iceServers)return v.Info(v.GetStackTrace(),"A turn sever was not found"),!1;for(const e of A.iceServers)for(const A of e.urls)if(A.includes("turn"))return v.Log(v.GetStackTrace(),`A turn sever was found at ${A}`),!0;return v.Info(v.GetStackTrace(),"A turn sever was not found"),!1}handleOnConfigMessage(A){this.resizePlayerStyle(),this.startSession(A.peerConnectionOptions),this.webSocketController.onWebRtcAnswer=A=>this.handleWebRtcAnswer(A),this.webSocketController.onWebRtcOffer=A=>this.handleWebRtcOffer(A),this.webSocketController.onWebRtcPeerDataChannels=A=>this.handleWebRtcSFUPeerDatachannels(A),this.webSocketController.onIceCandidate=A=>this.handleIceCandidate(A)}handleStreamerListMessage(A){v.Log(v.GetStackTrace(),`Got streamer list ${A.ids}`,6);let e=null;var t=this.config.getSettingOption(xA.StreamerId);t.selected.toString().trim()&&(e=t.selected);const n=[...A.ids];n.unshift(""),this.config.setOptionSettingOptions(xA.StreamerId,n);let r=null;const s=this.config.isFlagEnabled(bA.WaitForStreamer),i=this.config.getNumericSettingValue(HA.MaxReconnectAttempts),o=this.config.getNumericSettingValue(HA.StreamerAutoJoinInterval),a=this.config.useUrlParams,c=new URLSearchParams(window.location.search);a&&c.has(xA.StreamerId)?e=c.get(xA.StreamerId):this.subscribedStream&&(e=this.subscribedStream),e&&A.ids.includes(e)?r=e:e&&s||1!=A.ids.length||(r=A.ids[0]),r?(this.isReconnecting=!1,this.reconnectAttempt=0,this.config.setOptionSettingValue(xA.StreamerId,r)):s&&(this.reconnectAttempt<i?(this.isReconnecting=!0,this.reconnectAttempt++,setTimeout((()=>{this.webSocketController.requestStreamerList()}),o)):(this.reconnectAttempt=0,this.isReconnecting=!1,this.shouldReconnect=!1)),this.pixelStreaming.dispatchEvent(new BA({messageStreamerList:A,autoSelectedStreamerId:r,wantedStreamerId:e}))}handleStreamerIDChangedMessage(A){const e=A.newID;var t=this.config.getSettingOption(xA.StreamerId),n=t.onChange;t.onChange=()=>{};for(var r=t.options,s=0;s<r.length;++s)if(r[s]==this.subscribedStream){r[s]=e;break}t.options=r,t.selected=e,t.onChange=n,this.subscribedStream=A.newID,this.pixelStreaming.dispatchEvent(new wA({newID:e}))}handleWebRtcAnswer(A){v.Log(v.GetStackTrace(),`Got answer sdp ${A.sdp}`,6);const e={sdp:A.sdp,type:"answer"};this.peerConnectionController.receiveAnswer(e),this.handlePostWebrtcNegotiation()}handleWebRtcOffer(A){v.Log(v.GetStackTrace(),`Got offer sdp ${A.sdp}`,6),this.isUsingSFU=!!A.sfu&&A.sfu,this.isUsingSFU&&(this.peerConnectionController.preferredCodec="");const e={sdp:A.sdp,type:"offer"};this.peerConnectionController.receiveOffer(e,this.config),this.handlePostWebrtcNegotiation()}handleWebRtcSFUPeerDatachannels(A){const e={ordered:!0,negotiated:!0,id:A.sendStreamId},t=A.sendStreamId!=A.recvStreamId;if(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,t?"send-datachannel":"datachannel",e),t){const e={ordered:!0,negotiated:!0,id:A.recvStreamId};this.recvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,"recv-datachannel",e),this.recvDataChannelController.handleOnOpen=()=>this.webSocketController.sendSFURecvDataChannelReady(),this.recvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}else this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}handlePostWebrtcNegotiation(){this.afkController.startAfkWarningTimer(),this.pixelStreaming._onWebRtcSdp(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.statsTimerHandle=window.setInterval((()=>this.getStats()),1e3),this.setMouseInputEnabled(this.config.isFlagEnabled(bA.MouseInput)),this.setKeyboardInputEnabled(this.config.isFlagEnabled(bA.KeyboardInput)),this.setGamePadInputEnabled(this.config.isFlagEnabled(bA.GamepadInput))}handleIceCandidate(A){v.Log(v.GetStackTrace(),"Web RTC Controller: onWebRtcIce",6);const e=new RTCIceCandidate(A);this.peerConnectionController.handleOnIce(e)}handleSendIceCandidate(A){v.Log(v.GetStackTrace(),"OnIceCandidate",6),A.candidate&&A.candidate.candidate&&this.webSocketController.sendIceCandidate(A.candidate)}handleDataChannel(A){v.Log(v.GetStackTrace(),"Data channel created for us by browser as we are a receiving peer.",6),this.sendrecvDataChannelController.dataChannel=A.channel,this.sendrecvDataChannelController.setupDataChannel(),this.sendrecvDataChannelController.handleOnMessage=A=>this.handleOnMessage(A)}handleSendWebRTCOffer(A){v.Log(v.GetStackTrace(),"Sending the offer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(HA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(HA.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcOffer(A,e)}handleSendWebRTCAnswer(A){v.Log(v.GetStackTrace(),"Sending the answer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(HA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(HA.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcAnswer(A,e),this.isUsingSFU&&this.webSocketController.sendWebRtcDatachannelRequest()}setUpMouseAndFreezeFrame(){this.videoElementParentClientRect=this.videoPlayer.getVideoParentElement().getBoundingClientRect(),this.coordinateConverter.setupNormalizeAndQuantize(),this.freezeFrameController.freezeFrame.resize()}closeSignalingServer(A){var e;this.locallyClosed=!0,this.shouldReconnect=!1,this.disconnectMessage=A,null===(e=this.webSocketController)||void 0===e||e.close()}closePeerConnection(){var A;null===(A=this.peerConnectionController)||void 0===A||A.close()}close(){this.closeSignalingServer(""),this.closePeerConnection()}getStats(){this.peerConnectionController.generateStats()}sendLatencyTest(){this.latencyStartTime=Date.now(),this.streamMessageController.toStreamerHandlers.get("LatencyTest")([JSON.stringify({StartTime:this.latencyStartTime})])}sendDataChannelLatencyTest(A){this.streamMessageController.toStreamerHandlers.get("DataChannelLatencyTest")([JSON.stringify(A)])}sendEncoderMinQP(A){v.Log(v.GetStackTrace(),`MinQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MinQP":A})])}sendEncoderMaxQP(A){v.Log(v.GetStackTrace(),`MaxQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MaxQP":A})])}sendWebRTCMinBitrate(A){v.Log(v.GetStackTrace(),`WebRTC Min Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MinBitrate":A})])}sendWebRTCMaxBitrate(A){v.Log(v.GetStackTrace(),`WebRTC Max Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxBitrate":A})])}sendWebRTCFps(A){v.Log(v.GetStackTrace(),`WebRTC FPS=${A}`,6),null!=A&&(this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.Fps":A})]),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxFps":A})]))}sendShowFps(){v.Log(v.GetStackTrace(),"---- Sending show stat to UE ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"stat.fps":""})])}sendIframeRequest(){v.Log(v.GetStackTrace(),"---- Sending Request for an IFrame ----",6),this.streamMessageController.toStreamerHandlers.get("IFrameRequest")()}emitUIInteraction(A){v.Log(v.GetStackTrace(),"---- Sending custom UIInteraction message ----",6),this.streamMessageController.toStreamerHandlers.get("UIInteraction")([JSON.stringify(A)])}emitCommand(A){v.Log(v.GetStackTrace(),"---- Sending custom Command message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(A)])}emitConsoleCommand(A){v.Log(v.GetStackTrace(),"---- Sending custom Command:ConsoleCommand message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({ConsoleCommand:A})])}sendRequestQualityControlOwnership(){v.Log(v.GetStackTrace(),"---- Sending Request to Control Quality ----",6),this.toStreamerMessagesController.SendRequestQualityControl()}handleLatencyTestResult(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.latencyTest",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=new ie;Object.assign(t,JSON.parse(e)),t.processFields(),t.testStartTimeMs=this.latencyStartTime,t.browserReceiptTimeMs=Date.now(),t.latencyExcludingDecode=~~(t.browserReceiptTimeMs-t.testStartTimeMs),t.testDuration=~~(t.TransmissionTimeMs-t.ReceiptTimeMs),t.networkLatency=~~(t.latencyExcludingDecode-t.testDuration),t.frameDisplayDeltaTimeMs&&t.browserReceiptTimeMs&&(t.endToEndLatency=(t.frameDisplayDeltaTimeMs,t.networkLatency,~~+t.CaptureToSendMs)),this.pixelStreaming._onLatencyTestResult(t)}handleDataChannelLatencyTestResponse(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.dataChannelLatencyResponse",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.pixelStreaming._onDataChannelLatencyTestResponse(t)}handleInitialSettings(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.InitialSettings",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e),n=new te;t.Encoder&&(n.EncoderSettings=t.Encoder),t.WebRTC&&(n.WebRTCSettings=t.WebRTC),t.PixelStreaming&&(n.PixelStreamingSettings=t.PixelStreaming),t.ConfigOptions&&void 0!==t.ConfigOptions.DefaultToHover&&this.config.setFlagEnabled(bA.HoveringMouseMode,!!t.ConfigOptions.DefaultToHover),n.ueCompatible(),v.Log(v.GetStackTrace(),e,6),this.pixelStreaming._onInitialSettings(n)}handleVideoEncoderAvgQP(A){v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.VideoEncoderAvgQP",6);const e=Number(new TextDecoder("utf-16").decode(A.slice(1)));this.setVideoEncoderAvgQP(e)}handleVideoInitialized(){this.pixelStreaming._onVideoInitialized(),this.autoPlayVideoOrSetUpPlayOverlay(),this.resizePlayerStyle(),this.videoPlayer.updateVideoStreamSize()}onQualityControlOwnership(A){const e=new Uint8Array(A);v.Log(v.GetStackTrace(),"DataChannelReceiveMessageType.QualityControlOwnership",6),this.isQualityController=new Boolean(e[1]).valueOf(),v.Log(v.GetStackTrace(),`Received quality controller message, will control quality: ${this.isQualityController}`),this.pixelStreaming._onQualityControlOwnership(this.isQualityController)}handleVideoStats(A){this.pixelStreaming._onVideoStats(A)}resizePlayerStyle(){this.videoPlayer.resizePlayerStyle()}setPreferredCodec(A){this.preferredCodec=A,this.peerConnectionController&&(this.peerConnectionController.preferredCodec=A,this.peerConnectionController.updateCodecSelection=!1)}setVideoEncoderAvgQP(A){this.videoAvgQp=A,this.pixelStreaming._onVideoEncoderAvgQP(this.videoAvgQp)}setKeyboardInputEnabled(A){var e;null===(e=this.keyboardController)||void 0===e||e.unregisterKeyBoardEvents(),A&&(this.keyboardController=this.inputClassesFactory.registerKeyBoard(this.config))}setMouseInputEnabled(A){var e;if(null===(e=this.mouseController)||void 0===e||e.unregisterMouseEvents(),A){const A=this.config.isFlagEnabled(bA.HoveringMouseMode)?RA.HoveringMouse:RA.LockedMouse;this.mouseController=this.inputClassesFactory.registerMouse(A)}}setTouchInputEnabled(A){var e;null===(e=this.touchController)||void 0===e||e.unregisterTouchEvents(),A&&(this.touchController=this.inputClassesFactory.registerTouch(this.config.isFlagEnabled(bA.FakeMouseWithTouches),this.videoElementParentClientRect))}setGamePadInputEnabled(A){var e;null===(e=this.gamePadController)||void 0===e||e.unregisterGamePadEvents(),A&&(this.gamePadController=this.inputClassesFactory.registerGamePad(),this.gamePadController.onGamepadConnected=()=>{this.streamMessageController.toStreamerHandlers.get("GamepadConnected")()},this.gamePadController.onGamepadDisconnected=A=>{this.streamMessageController.toStreamerHandlers.get("GamepadDisconnected")([A])})}registerDataChannelEventEmitters(A){A.onOpen=(A,e)=>this.pixelStreaming.dispatchEvent(new eA({label:A,event:e})),A.onClose=(A,e)=>this.pixelStreaming.dispatchEvent(new tA({label:A,event:e})),A.onError=(A,e)=>this.pixelStreaming.dispatchEvent(new nA({label:A,event:e}))}registerMessageHandler(A,e,t){e===qA.FromStreamer&&void 0===t&&v.Warning(v.GetStackTrace(),`Unable to register handler for ${A} as no handler was passed`),this.streamMessageController.registerMessageHandler(e,A,(n=>void 0===t&&e===qA.ToStreamer?this.sendMessageController.sendMessageToStreamer(A,n):t(n)))}}class xe{constructor(A){this.toStreamerMessagesProvider=A,this.controllers=[]}static deepCopyGamepad(A){return JSON.parse(JSON.stringify({buttons:A.buttons.map((A=>JSON.parse(JSON.stringify({pressed:A.pressed,touched:A.touched,value:A.value})))),axes:A.axes}))}updateStatus(A,e,t){if(A.gamepad){const n=e.getPose(A.gripSpace,t);if(!n)return;let r=0;A.profiles.includes("htc-vive")?r=1:A.profiles.includes("oculus-touch")&&(r=2),this.toStreamerMessagesProvider.toStreamerHandlers.get("XRSystem")([r]);let s=2;switch(A.handedness){case"left":s=0;break;case"right":s=1}const i=n.transform.matrix,o=[];for(let A=0;A<16;A++)o[A]=new Float32Array([i[A]])[0];this.toStreamerMessagesProvider.toStreamerHandlers.get("XRControllerTransform")([o[0],o[4],o[8],o[12],o[1],o[5],o[9],o[13],o[2],o[6],o[10],o[14],o[3],o[7],o[11],o[15],s]),void 0===this.controllers[s]&&(this.controllers[s]={prevState:void 0,currentState:void 0,id:void 0},this.controllers[s].prevState=xe.deepCopyGamepad(A.gamepad)),this.controllers[s].currentState=xe.deepCopyGamepad(A.gamepad);const a=this.controllers[s],c=a.currentState,l=a.prevState;for(let A=0;A<c.buttons.length;A++){const e=c.buttons[A],t=l.buttons[A];if(e.pressed){let e=t.pressed?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonPressed")([s,A,e])}else t.pressed&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonReleased")([s,A,0]);if(e.touched){let e=t.touched?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonTouched")([s,A,e])}else t.touched&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRButtonTouchReleased")([s,A,0])}for(let A=0;A<c.axes.length;A++){let e=c.axes[A];e!=l.axes[A]&&this.toStreamerMessagesProvider.toStreamerHandlers.get("XRAnalog")([s,A,e])}this.controllers[s].prevState=c}}}class Pe{constructor(A){this.xrViewerPose=null,this.videoTexture=null,this.prevVideoWidth=0,this.prevVideoHeight=0,this.leftView=null,this.rightView=null,this.xrSession=null,this.webRtcController=A,this.xrGamepadController=new xe(this.webRtcController.streamMessageController),this.onSessionEnded=new EventTarget,this.onSessionStarted=new EventTarget,this.onFrame=new EventTarget}xrClicked(){if(this.xrSession)this.xrSession.end();else{if(!navigator.xr)return void v.Error(v.GetStackTrace(),"This browser does not support XR.");navigator.xr.requestSession("immersive-vr",{optionalFeatures:[]}).then((A=>{this.onXrSessionStarted(A)}))}}onXrSessionEnded(){v.Log(v.GetStackTrace(),"XR Session ended"),this.xrSession=null,this.onSessionEnded.dispatchEvent(new Event("xrSessionEnded"))}initGL(){if(this.gl)return;const A=document.createElement("canvas");this.gl=A.getContext("webgl2",{xrCompatible:!0}),this.gl.clearColor(0,0,0,1)}initShaders(){const A=this.gl.createShader(this.gl.VERTEX_SHADER);this.gl.shaderSource(A,"\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n\n // varyings\n varying vec2 v_texCoord;\n\n void main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n // pass the texCoord to the fragment shader\n // The GPU will interpolate this value between points.\n v_texCoord = a_texCoord;\n }\n "),this.gl.compileShader(A);const e=this.gl.createShader(this.gl.FRAGMENT_SHADER);this.gl.shaderSource(e,"\n precision mediump float;\n\n // our texture\n uniform sampler2D u_image;\n\n // the texCoords passed in from the vertex shader.\n varying vec2 v_texCoord;\n\n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n }\n "),this.gl.compileShader(e);const t=this.gl.createProgram();this.gl.attachShader(t,A),this.gl.attachShader(t,e),this.gl.linkProgram(t),this.gl.useProgram(t),this.positionLocation=this.gl.getAttribLocation(t,"a_position"),this.texcoordLocation=this.gl.getAttribLocation(t,"a_texCoord")}updateVideoTexture(){this.videoTexture||(this.videoTexture=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D,this.videoTexture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR));let A=this.webRtcController.videoPlayer.getVideoElement().videoHeight,e=this.webRtcController.videoPlayer.getVideoElement().videoWidth;this.prevVideoHeight!=A||this.prevVideoWidth!=e?this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,e,A,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()):this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,e,A,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()),this.prevVideoHeight=A,this.prevVideoWidth=e}initBuffers(){this.positionBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.positionBuffer),this.gl.enableVertexAttribArray(this.positionLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([-1,1,1,1,-1,-1,-1,-1,1,1,1,-1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.positionLocation,2,this.gl.FLOAT,!1,0,0),this.texcoordBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.texcoordBuffer),this.gl.enableVertexAttribArray(this.texcoordLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.texcoordLocation,2,this.gl.FLOAT,!1,0,0)}onXrSessionStarted(A){v.Log(v.GetStackTrace(),"XR Session started"),this.xrSession=A,this.xrSession.addEventListener("end",(()=>{this.onXrSessionEnded()})),this.initGL(),this.initShaders(),this.initBuffers(),A.requestReferenceSpace("local").then((e=>{if(this.xrRefSpace=e,this.xrSession.updateRenderState({baseLayer:new XRWebGLLayer(this.xrSession,this.gl)}),this.xrSession.supportedFrameRates)for(let e of this.xrSession.supportedFrameRates)90==e&&A.updateTargetFrameRate(90);this.xrSession.requestAnimationFrame(this.onXrFrame.bind(this))})),this.onSessionStarted.dispatchEvent(new Event("xrSessionStarted"))}sendXRDataToUE(){if(null==this.leftView||null==this.rightView)return;const A=this.leftView.transform.matrix,e=this.leftView.projectionMatrix,t=this.rightView.transform.matrix,n=this.rightView.projectionMatrix;this.webRtcController.streamMessageController.toStreamerHandlers.get("XREyeViews")([A[0],A[4],A[8],A[12],A[1],A[5],A[9],A[13],A[2],A[6],A[10],A[14],A[3],A[7],A[11],A[15],e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15],t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15],n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15]])}onXrFrame(A,e){if(this.xrViewerPose=e.getViewerPose(this.xrRefSpace),this.xrViewerPose){if(this.updateViews(),null==this.leftView||null==this.rightView)return;this.sendXRDataToUE(),this.updateVideoTexture(),this.render()}this.webRtcController.config.isFlagEnabled(bA.XRControllerInput)&&this.xrSession.inputSources.forEach(((A,t,n)=>{this.xrGamepadController.updateStatus(A,e,this.xrRefSpace)}),this),this.xrSession.requestAnimationFrame(((A,e)=>this.onXrFrame(A,e))),this.onFrame.dispatchEvent(new UA({time:A,frame:e}))}updateViews(){if(this.xrViewerPose)for(const A of this.xrViewerPose.views)"left"===A.eye?this.leftView=A:"right"===A.eye&&(this.rightView=A)}render(){if(!this.gl)return;const A=this.xrSession.renderState.baseLayer;this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,A.framebuffer),this.gl.viewport(0,0,A.framebufferWidth,A.framebufferHeight),this.gl.drawArrays(this.gl.TRIANGLES,0,6)}static isSessionSupported(A){return"https:"!==location.protocol&&v.Info(null,"WebXR requires https, if you want WebXR use https."),navigator.xr?navigator.xr.isSessionSupported(A):new Promise((()=>!1))}}class De{constructor(A){this.editTextButton=null,this.hiddenInput=null,"ontouchstart"in document.documentElement&&this.createOnScreenKeyboardHelpers(A)}unquantizeAndDenormalizeUnsigned(A,e){return null}createOnScreenKeyboardHelpers(A){this.hiddenInput||(this.hiddenInput=document.createElement("input"),this.hiddenInput.id="hiddenInput",this.hiddenInput.maxLength=0,this.hiddenInput.style.position="absolute",this.hiddenInput.style.left="-10%",this.hiddenInput.style.width="0px",this.hiddenInput.style.opacity="0",A.appendChild(this.hiddenInput)),this.editTextButton||(this.editTextButton=document.createElement("button"),this.editTextButton.id="editTextButton",this.editTextButton.innerHTML="edit text",A.appendChild(this.editTextButton),this.editTextButton.style.display="none",this.editTextButton.addEventListener("touchend",(A=>{this.hiddenInput.focus(),A.preventDefault()})))}showOnScreenKeyboard(A){if(A.showOnScreenKeyboard){this.editTextButton.style.display="default";const e=this.unquantizeAndDenormalizeUnsigned(A.x,A.y);this.editTextButton.style.top=e.y.toString()+"px",this.editTextButton.style.left=(e.x-40).toString()+"px"}else this.editTextButton.style.display="none",this.hiddenInput.blur()}}class Re{constructor(A){this.seq=A.Seq,this.playerSentTimestamp=Date.now(),this.requestFillerSize=A.Filler?A.Filler.length:0}update(A){this.playerReceivedTimestamp=Date.now(),this.streamerReceivedTimestamp=A.ReceivedTimestamp,this.streamerSentTimestamp=A.SentTimestamp,this.responseFillerSize=A.Filler?A.Filler.length:0}}class ke{constructor(A,e){this.sink=A,this.callback=e,this.records=new Map,this.seq=0}start(A){return!this.isRunning()&&(this.startTime=Date.now(),this.records.clear(),this.interval=setInterval((()=>{Date.now()-this.startTime>=A.duration?this.stop():this.sendRequest(A.requestSize,A.responseSize)}).bind(this),Math.floor(1e3/A.rps)),!0)}stop(){this.interval&&(clearInterval(this.interval),this.interval=void 0,this.callback(this.produceResult()))}produceResult(){const A=new Map(this.records);return{records:A,dataChannelRtt:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.playerReceivedTimestamp-e.playerSentTimestamp)),0)/this.records.size),playerToStreamerTime:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.streamerReceivedTimestamp-e.playerSentTimestamp)),0)/this.records.size),streamerToPlayerTime:Math.ceil(Array.from(this.records.values()).reduce(((A,e)=>A+(e.playerReceivedTimestamp-e.streamerSentTimestamp)),0)/this.records.size),exportLatencyAsCSV:()=>{let e="Timestamp;RTT;PlayerToStreamer;StreamerToPlayer;\n";return A.forEach((A=>{e+=A.playerSentTimestamp+";",e+=A.playerReceivedTimestamp-A.playerSentTimestamp+";",e+=A.streamerReceivedTimestamp-A.playerSentTimestamp+";",e+=A.playerReceivedTimestamp-A.streamerSentTimestamp+";",e+="\n"})),e}}}isRunning(){return!!this.interval}receive(A){if(!this.isRunning())return;if(!A)return void v.Error(v.GetStackTrace(),"Undefined response from server");let e=this.records.get(A.Seq);e&&e.update(A)}sendRequest(A,e){let t=this.createRequest(A,e),n=new Re(t);this.records.set(n.seq,n),this.sink(t)}createRequest(A,e){return{Seq:this.seq++,FillResponseSize:e,Filler:A?"A".repeat(A):""}}}class Ke{constructor(A,e){this.allowConsoleCommands=!1,this.config=A,(null==e?void 0:e.videoElementParent)&&(this._videoElementParent=e.videoElementParent),this._eventEmitter=new SA,this.configureSettings(),this.setWebRtcPlayerController(new Le(this.config,this)),this.onScreenKeyboardHelper=new De(this.videoElementParent),this.onScreenKeyboardHelper.unquantizeAndDenormalizeUnsigned=(A,e)=>this._webRtcController.requestUnquantizedAndDenormalizeUnsigned(A,e),this._activateOnScreenKeyboard=A=>this.onScreenKeyboardHelper.showOnScreenKeyboard(A),this._webXrController=new Pe(this._webRtcController),this._setupWebRtcTCPRelayDetection=this._setupWebRtcTCPRelayDetection.bind(this),this._eventEmitter.addEventListener("webRtcConnected",(A=>{this._eventEmitter.addEventListener("statsReceived",this._setupWebRtcTCPRelayDetection)}))}get videoElementParent(){return this._videoElementParent||(this._videoElementParent=document.createElement("div"),this._videoElementParent.id="videoElementParent"),this._videoElementParent}configureSettings(){this.config._addOnSettingChangedListener(bA.IsQualityController,(A=>{!0!==A||this._webRtcController.isQualityController||this._webRtcController.sendRequestQualityControlOwnership()})),this.config._addOnSettingChangedListener(bA.AFKDetection,(A=>{this._webRtcController.setAfkEnabled(A)})),this.config._addOnSettingChangedListener(bA.MatchViewportResolution,(()=>{this._webRtcController.videoPlayer.updateVideoStreamSize()})),this.config._addOnSettingChangedListener(bA.HoveringMouseMode,(A=>{this.config.setFlagLabel(bA.HoveringMouseMode,`Control Scheme: ${A?"Hovering":"Locked"} Mouse`),this._webRtcController.setMouseInputEnabled(this.config.isFlagEnabled(bA.MouseInput))})),this.config._addOnSettingChangedListener(bA.KeyboardInput,(A=>{this._webRtcController.setKeyboardInputEnabled(A)})),this.config._addOnSettingChangedListener(bA.MouseInput,(A=>{this._webRtcController.setMouseInputEnabled(A)})),this.config._addOnSettingChangedListener(bA.FakeMouseWithTouches,(A=>{this._webRtcController.setTouchInputEnabled(this.config.isFlagEnabled(bA.TouchInput))})),this.config._addOnSettingChangedListener(bA.TouchInput,(A=>{this._webRtcController.setTouchInputEnabled(A)})),this.config._addOnSettingChangedListener(bA.GamepadInput,(A=>{this._webRtcController.setGamePadInputEnabled(A)})),this.config._addOnNumericSettingChangedListener(HA.MinQP,(A=>{v.Log(v.GetStackTrace(),"-------- Sending MinQP --------",7),this._webRtcController.sendEncoderMinQP(A),v.Log(v.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(HA.MaxQP,(A=>{v.Log(v.GetStackTrace(),"-------- Sending encoder settings --------",7),this._webRtcController.sendEncoderMaxQP(A),v.Log(v.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(HA.WebRTCMinBitrate,(A=>{v.Log(v.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMinBitrate(1e3*A),v.Log(v.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(HA.WebRTCMaxBitrate,(A=>{v.Log(v.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMaxBitrate(1e3*A),v.Log(v.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(HA.WebRTCFPS,(A=>{v.Log(v.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCFps(A),v.Log(v.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnOptionSettingChangedListener(xA.PreferredCodec,(A=>{this._webRtcController&&this._webRtcController.setPreferredCodec(A)})),this.config._registerOnChangeEvents(this._eventEmitter)}_activateOnScreenKeyboard(A){throw new Error("Method not implemented.")}_onInputControlOwnership(A){this._inputController=A}setWebRtcPlayerController(A){this._webRtcController=A,this._webRtcController.setPreferredCodec(this.config.getSettingOption(xA.PreferredCodec).selected),this._webRtcController.resizePlayerStyle(),this.checkForAutoConnect()}connect(){this._eventEmitter.dispatchEvent(new iA),this._webRtcController.connectToSignallingServer()}reconnect(){this._eventEmitter.dispatchEvent(new aA),this._webRtcController.tryReconnect("Reconnecting...")}disconnect(){this._eventEmitter.dispatchEvent(new oA),this._webRtcController.close()}play(){this._onStreamLoading(),this._webRtcController.playStream()}checkForAutoConnect(){this.config.isFlagEnabled(bA.AutoConnect)&&(this._onWebRtcAutoConnect(),this._webRtcController.connectToSignallingServer())}unmuteMicrophone(A=!1){if(!this.config.isFlagEnabled("UseMic"))return A?(this.config.setFlagEnabled("UseMic",!0),void this.reconnect()):void v.Warning(v.GetStackTrace(),"Trying to unmute mic, but PixelStreaming was initialized with no microphone track. Call with forceEnable == true to re-connect with a mic track.");this.setMicrophoneMuted(!1)}muteMicrophone(){this.config.isFlagEnabled("UseMic")?this.setMicrophoneMuted(!0):v.Info(v.GetStackTrace(),"Trying to mute mic, but PixelStreaming has no microphone track, so sending sound is already disabled.")}setMicrophoneMuted(A){var e,t,n,r;for(const s of null!==(r=null===(n=null===(t=null===(e=this._webRtcController)||void 0===e?void 0:e.peerConnectionController)||void 0===t?void 0:t.peerConnection)||void 0===n?void 0:n.getTransceivers())&&void 0!==r?r:[])$A.canTransceiverSendAudio(s)&&(s.sender.track.enabled=!A)}_onWebRtcAutoConnect(){this._eventEmitter.dispatchEvent(new j)}_onWebRtcSdp(){this._eventEmitter.dispatchEvent(new Y)}_onStreamLoading(){this._eventEmitter.dispatchEvent(new sA)}_onDisconnect(A,e){this._eventEmitter.dispatchEvent(new AA({eventString:A,allowClickToReconnect:e}))}_onWebRtcConnecting(){this._eventEmitter.dispatchEvent(new $)}_onWebRtcConnected(){this._eventEmitter.dispatchEvent(new Z)}_onWebRtcFailed(){this._eventEmitter.dispatchEvent(new q)}_onVideoInitialized(){this._eventEmitter.dispatchEvent(new rA),this._videoStartTime=Date.now()}_onLatencyTestResult(A){this._eventEmitter.dispatchEvent(new pA({latencyTimings:A}))}_onDataChannelLatencyTestResponse(A){this._eventEmitter.dispatchEvent(new CA({response:A}))}_onVideoStats(A){this._videoStartTime&&void 0!==this._videoStartTime||(this._videoStartTime=Date.now()),A.handleSessionStatistics(this._videoStartTime,this._inputController,this._webRtcController.videoAvgQp),this._eventEmitter.dispatchEvent(new gA({aggregatedStats:A}))}_onVideoEncoderAvgQP(A){this._eventEmitter.dispatchEvent(new z({avgQP:A}))}_onInitialSettings(A){var e;this._eventEmitter.dispatchEvent(new fA({settings:A})),A.PixelStreamingSettings&&(this.allowConsoleCommands=null!==(e=A.PixelStreamingSettings.AllowPixelStreamingCommands)&&void 0!==e&&e,!1===this.allowConsoleCommands&&v.Info(v.GetStackTrace(),"-AllowPixelStreamingCommands=false, sending arbitrary console commands from browser to UE is disabled."));const t=this.config.useUrlParams,n=new URLSearchParams(window.location.search);v.Info(v.GetStackTrace(),`using URL parameters ${t}`),A.EncoderSettings&&(this.config.setNumericSetting(HA.MinQP,t&&n.has(HA.MinQP)?Number.parseFloat(n.get(HA.MinQP)):A.EncoderSettings.MinQP),this.config.setNumericSetting(HA.MaxQP,t&&n.has(HA.MaxQP)?Number.parseFloat(n.get(HA.MaxQP)):A.EncoderSettings.MaxQP)),A.WebRTCSettings&&(this.config.setNumericSetting(HA.WebRTCMinBitrate,t&&n.has(HA.WebRTCMinBitrate)?Number.parseFloat(n.get(HA.WebRTCMinBitrate)):A.WebRTCSettings.MinBitrate/1e3),this.config.setNumericSetting(HA.WebRTCMaxBitrate,t&&n.has(HA.WebRTCMaxBitrate)?Number.parseFloat(n.get(HA.WebRTCMaxBitrate)):A.WebRTCSettings.MaxBitrate/1e3),this.config.setNumericSetting(HA.WebRTCFPS,t&&n.has(HA.WebRTCFPS)?Number.parseFloat(n.get(HA.WebRTCFPS)):A.WebRTCSettings.FPS))}_onQualityControlOwnership(A){this.config.setFlagEnabled(bA.IsQualityController,A)}_onPlayerCount(A){this._eventEmitter.dispatchEvent(new EA({count:A}))}_setupWebRtcTCPRelayDetection(A){let e=A.data.aggregatedStats.getActiveCandidatePair();if(null!=e){let t=A.data.aggregatedStats.localCandidates.find((A=>A.id==e.localCandidateId),null);null!=t&&"relay"==t.candidateType&&"tcp"==t.relayProtocol&&this._eventEmitter.dispatchEvent(new yA),this._eventEmitter.removeEventListener("statsReceived",this._setupWebRtcTCPRelayDetection)}}requestLatencyTest(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendLatencyTest(),!0)}requestDataChannelLatencyTest(A){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._dataChannelLatencyTestController||(this._dataChannelLatencyTestController=new ke(this._webRtcController.sendDataChannelLatencyTest.bind(this._webRtcController),(A=>{this._eventEmitter.dispatchEvent(new mA({result:A}))})),this.addEventListener("dataChannelLatencyTestResponse",(({data:{response:A}})=>{this._dataChannelLatencyTestController.receive(A)}))),this._dataChannelLatencyTestController.start(A))}requestShowFps(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendShowFps(),!0)}requestIframe(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendIframeRequest(),!0)}emitUIInteraction(A){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.emitUIInteraction(A),!0)}emitCommand(A){return!(!this._webRtcController.videoPlayer.isVideoReady()||!this.allowConsoleCommands&&"ConsoleCommand"in A||(this._webRtcController.emitCommand(A),0))}emitConsoleCommand(A){return!(!this.allowConsoleCommands||!this._webRtcController.videoPlayer.isVideoReady()||(this._webRtcController.emitConsoleCommand(A),0))}addResponseEventListener(A,e){this._webRtcController.responseController.addResponseEventListener(A,e)}removeResponseEventListener(A){this._webRtcController.responseController.removeResponseEventListener(A)}dispatchEvent(A){return this._eventEmitter.dispatchEvent(A)}addEventListener(A,e){this._eventEmitter.addEventListener(A,e)}removeEventListener(A,e){this._eventEmitter.removeEventListener(A,e)}toggleXR(){this.webXrController.xrClicked()}setSignallingUrlBuilder(A){this._webRtcController.signallingUrlBuilder=A}get webSocketController(){return this._webRtcController.webSocketController}get webXrController(){return this._webXrController}registerMessageHandler(A,e,t){e!==qA.FromStreamer||void 0!==t?e===qA.ToStreamer&&void 0===t?this._webRtcController.streamMessageController.registerMessageHandler(e,A,(e=>this._webRtcController.sendMessageController.sendMessageToStreamer(A,e))):this._webRtcController.streamMessageController.registerMessageHandler(e,A,(A=>t(A))):v.Warning(v.GetStackTrace(),`Unable to register an undefined handler for ${A}`)}get toStreamerHandlers(){return this._webRtcController.streamMessageController.toStreamerHandlers}isReconnecting(){return this._webRtcController.isReconnecting}}class Oe{}var Ve=f.De,Ge=f.vU,_e=f.Yd,Ne=f.sK,We=f.g,Je=f.x_;class Xe extends c.HasOwner{get esUeViewer(){return this.owner}get uri(){return this._uri}get inner(){return this._inner}constructor(A,e){super(A),this._uri=e,this._processResponseFn=A=>this.esUeViewer.processResponse(A),this._inner=new WebSocket(this._uri),this._innerInit=(()=>{this.inner.onmessage=A=>{if(this.isDestroyed())return;let e=new FileReader;e.onload=A=>{if(this.isDestroyed())return;let e=A.target.result,t=new Uint32Array(e),n=0;if(1===t[0]){n+=4;let A=t[n/4];n+=4;for(let r=0;r<A;r++){let A=t[n/4];n+=4;let r=new TextDecoder("utf-8").decode(e.slice(n,n+A));n+=A,this._processResponseFn(r)}}},e.readAsArrayBuffer(A.data)},this.inner.onopen=()=>{this.isDestroyed()||(console.warn("earthsdk message websocket server connected:",this.uri),console.log("%c[EarthSDK websocket open]","background: #a6ec99; color: black","open"),this.owner.dispatchEvent(new CustomEvent("esmsgwsopen",{detail:"websocket open"})))},this._inner.onclose=A=>{this.isDestroyed()||(console.log("%c[EarthSDK websocket close ]","background: red; color: black","error"),this.owner.dispatchEvent(new CustomEvent("error",{detail:"websocket close"})))},this._inner.onerror=A=>{this.isDestroyed()||(console.log("%c[EarthSDK websocket error ]","background: red; color: black","error"),this.owner.dispatchEvent(new CustomEvent("error",{detail:"websocket error"})))},this.d((()=>{!this.isDestroyed()&&this._inner.close()}))})()}sendInputData(A){const e=this.inner;if(e.readyState!==WebSocket.OPEN)return;const t=new Uint8Array(A)[0];if(t>=50&&t<=75){const t=new ArrayBuffer(A.byteLength+4);return new DataView(t).setUint32(0,A.byteLength,!0),new Uint8Array(t,4).set(new Uint8Array(A)),e.send(new DataView(t)),!0}return!1}emitDescriptorWithString(A,e){let t=(new TextEncoder).encode(e),n=new DataView(new ArrayBuffer(3+t.length)),r=0;n.setUint8(r,A),r++,n.setUint16(r,t.length,!0),r+=2;for(let A=0;A<t.length;A++)n.setUint8(r,t[A]),r+=1;try{this.sendInputData(n.buffer)}catch(A){console.error(`data.buffer.size: ${n.buffer.byteLength} 独立通道 sendInputData error: ${A}`,A)}}destroyImpl(){this._inner&&this._inner.close()}}window.g_emitDescriptor_maxBytes=3e4;let ze=-1;_e.SetLoggerVerbosity(1);class Ye extends c.Destroyable{get eventTarget(){return this._eventTarget}addEventListener(A,e,t){return this.eventTarget.addEventListener(A,e,t)}removeEventListener(A,e,t){return this.eventTarget.removeEventListener(A,e,t)}dispatchEvent(A){return this.eventTarget.dispatchEvent(A)}get container(){return this._container}get pixelStream(){return this._pixelStream}get esMsgWsWrapper(){return this._esMsgWsWrapper}get esWebSocketReady(){var A;return 1===(null===(A=this.esMsgWsWrapper)||void 0===A?void 0:A.inner.readyState)}constructor(A,e){super(),this._domOrDomId=A,this._options=e,this._eventTarget=new EventTarget,this.debug=!1,this.uiInteractionCallbacks=new Map,this._url=this._options.url,this._container=(()=>{const A="string"==typeof this._domOrDomId?document.getElementById(this._domOrDomId):this._domOrDomId;if(!A)throw new Error(`ESUEViewer container${this._domOrDomId} error!`);return A})(),this._pixelStream=(()=>{const A=new Ve({initialSettings:{AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,[Je.SignallingServerUrl]:this._url}});A.setFlagEnabled(Ge.BrowserSendOffer,!1),A.setFlagEnabled(Ge.HoveringMouseMode,!0),A.setFlagEnabled(Ge.MatchViewportResolution,!0),A.setNumericSetting(Ne.MaxReconnectAttempts,0);const e=new We(A,{videoElementParent:this._options.createUI?void 0:this.container});return this.d((()=>{!this.isDestroyed()&&e.disconnect()})),e})(),this._esMsgWsWrapperInit=(()=>{this._options.esmsgWsUri&&(this._esMsgWsWrapper=this.disposeVar(new Xe(this,this._options.esmsgWsUri)))})();const t=this;if(t.esMsgWsWrapper){const A=this.webRtcController.sendMessageController.dataChannelSender.sendData;this.webRtcController.sendMessageController.dataChannelSender.constructor.prototype.sendData=function(e){t.esMsgWsWrapper?t.esMsgWsWrapper.sendInputData(e):A.call(this,e)}}this.pixelStream.addEventListener("videoInitialized",(()=>{console.log("%c[EarthSDK webrtc videoInitialized]","background: #a6ec99; color: black","videoInitialized"),this.dispatchEvent(new CustomEvent("videoinited",{detail:"videoinited"}))})),this.pixelStream.addEventListener("webRtcFailed",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webRtc webRtcFailed]","background: red; color: black","webRtcFailed"),this.dispatchEvent(new CustomEvent("error",{detail:"webRtcFailed"})),this.pixelStream.disconnect())})),this.pixelStream.addEventListener("webRtcDisconnected",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webRtc webRtcDisconnected]","background: red; color: black","webRtcDisconnected"),this.dispatchEvent(new CustomEvent("error",{detail:"webRtcDisconnected"})),this.pixelStream.disconnect())})),this.pixelStream.addEventListener("webRtcConnected",(()=>{this.isDestroyed()||(console.log("%c[EarthSDK webrtc webRtcConnected]","background: #a6ec99; color: black","webRtcConnected"),this.dispatchEvent(new CustomEvent("webRtcConnected",{detail:"webRtcConnected"})))})),this.pixelStream.addResponseEventListener("esueviewer",(A=>{this.processResponse(A)})),this.dispose((()=>{this._options.createUI||this.container.removeChild(this.webRtcController.videoPlayer.getVideoElement()),this.pixelStream.disconnect(),this.pixelStream.removeResponseEventListener("esueviewer")}))}resolveCallback(A){let e={};try{e=JSON.parse(A)}catch(A){return!1}let t=e.callid;if("string"!=typeof t)return!1;if(!this.uiInteractionCallbacks.has(t))return!1;let n=this.uiInteractionCallbacks.get(t);return"function"==typeof n&&(n(e),this.uiInteractionCallbacks.delete(t),!0)}processResponse(A){var e;if(null!==(e=this.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);if(e.ers=e.ers&&e.ers.filter((A=>"mouseMoveEvent"!==A.et)),!(e.ers&&e.ers.length>0||e.frs&&e.frs.length>0))return;console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}this.resolveCallback(A)||this.dispatchEvent(new CustomEvent("ueevent",{detail:A}))}emitUIInteraction(A,e){"function"==typeof e&&(A.callid=(0,c.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e)),this.pixelStream.emitUIInteraction(A)}get webRtcController(){return this.pixelStream._webRtcController}_pixelStreamEmitUIInteractionAsString(A){this.webRtcController.streamMessageController.toStreamerHandlers.get("UIInteraction")([A])}emitUIInteractionForBigData(A,e){"function"==typeof e&&(A.callid=(0,c.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e));const t=JSON.stringify(A),n=window.g_emitDescriptor_maxBytes,r=t.length,s=++ze;if(this.esMsgWsWrapper){if(r<n)return void this.esMsgWsWrapper.emitDescriptorWithString(50,`${s}-0/1-`+t);const A=0|Math.ceil(r/n),e=[...new Array(A).keys()].map((A=>t.slice(A*n,(A+1)*n)));e.forEach(((e,t)=>{this.esMsgWsWrapper&&this.esMsgWsWrapper.emitDescriptorWithString(50,`${s}-${t}/${A}-`+e)}))}}emitCommand(A){this.pixelStream.emitCommand(A)}getVideoSize(){const A=this.webRtcController.videoPlayer.getVideoElement();return{width:A.videoWidth,height:A.videoHeight}}resizeUEVideo(A,e){let t={Resolution:{Width:A,Height:e}};console.log(`resizeUEVideo emitCommand ${A} ${e} begin`),this.emitCommand(t)}}class je extends c.Destroyable{get webSocketReady(){return this._instance.esWebSocketReady}get event(){return this._event}get debug(){return this._instance.debug}set debug(A){this._instance.debug=A}constructor(A,e,t){super(),this._container=A,this._wsuri=e,this._esmsgWsUri=t,this._instance=this.disposeVar(new Ye(this._container,{url:this._wsuri,esmsgWsUri:this._esmsgWsUri})),this._event=this.disposeVar(new c.Event),"addEventListener"in this._instance?["esmsgwsopen","error","videoinited","ueevent","webRtcConnected"].forEach((A=>{const e=e=>{this._event.emit(A,e.detail)};this._instance.addEventListener(A,e),this.dispose((()=>this._instance.removeEventListener(A,e)))})):(this.dispose(this._instance.errorEvent.disposableOn((A=>{this._event.emit("error",A.detail)}))),this.dispose(this._instance.webRtcConnectedEvent.disposableOn((A=>{this._event.emit("webRtcConnected",A.detail)}))),this.dispose(this._instance.videoinitedEvent.disposableOn((A=>{this._event.emit("videoinited",A.detail)}))),this.dispose(this._instance.ueevent.disposableOn((A=>{this._event.emit("ueevent",A.detail)}))))}emitUIInteractionForBigData(A,e){return new Promise(((t,n)=>{const r=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,r)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),n(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}var $e=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const Ze=(A,e,t,n,r)=>$e(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyTo",p:{id:e,duration:t,flyToParam:n,position:r}});if(!s.error)return s.re;console.error(s.error)})),qe=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"destroy",p:{id:e}});return t.error&&console.error(t.error),t})),At=(A,e)=>{A.callUeFunc({f:"calcFlyToParam",p:{id:e}}).then((A=>{A.error&&console.error("calcFlyToParam:",A.error)})).catch((A=>{console.error("calcFlyToParam:",A)}))},et=(A,e)=>{A.callUeFunc({f:"refreshTileset",p:{id:e}}).then((A=>{A.error&&console.error("refreshTileset:",A.error)})).catch((A=>{console.error("refreshTileset:",A)}))},tt=(A,e,t,n,r)=>$e(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyIn",p:{id:e,position:t,rotation:n,duration:r}});if(!s.error)return s.re;console.error(s.error)})),nt=(A,e)=>$e(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("DefaultCameraFlyIn: viewer is undefined");const t=yield A.callUeFunc({f:"DefaultCameraFlyIn",p:{Duration:null!=e?e:1}});if(!t.error)return t;console.error("DefaultCameraFlyIn:",t.error)})),rt=A=>$e(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("StartVoice:viewer is undefined");const e=yield A.callUeFunc({f:"StartVoice",p:{}});if(!e.error)return e;console.error("StartVoice:",e.error)})),st=A=>$e(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("StopVoice:viewer is undefined");const e=yield A.callUeFunc({f:"StopVoice",p:{}});if(!e.error)return e;console.error("StopVoice:",e.error)})),it=(A,e)=>$e(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("mountPakFiles:viewer is undefined");const t=yield A.callUeFunc({f:"MountPakFiles",p:{json:e}});if(!t.error)return t;console.error("mountPakFiles:",t.error)})),ot=A=>$e(void 0,void 0,void 0,(function*(){if(!A)return void console.warn("generateMemReport:viewer is undefined");const e=yield A.callUeFunc({f:"GenerateMemReport",p:{}});if(!e.error)return e;console.error("generateMemReport:",e.error)})),at=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"resetWithCurrentCamera",p:{id:e}});return t.error&&console.error("resetWithCurrentCamera:",t.error),t})),ct=(A,e,t,n,r)=>{A.callUeFunc({f:"smoothMoveWithRotation",p:{id:e,Destination:t,NewRotation:n,Time:r}}).then((A=>{A.error&&console.error("smoothMoveWithRotation:",A.error)})).catch((A=>{console.error("smoothMoveWithRotation:",A)}))},lt=(A,e,t,n,r,s)=>{A.callUeFunc({f:"smoothMoveOnGround",p:{id:e,Lon:t,Lat:n,Ground:r,Time:s}}).then((A=>{A.error&&console.error("smoothMoveOnGround:",A.error)})).catch((A=>{console.error("smoothMoveOnGround:",A)}))},dt=(A,e,t,n,r,s,i)=>{A.callUeFunc({f:"smoothMoveWithRotationOnGround",p:{id:e,NewRotation:t,Lon:n,Lat:r,Time:s,Ground:i}}).then((A=>{A.error&&console.error("smoothMoveWithRotationOnGround:",A.error)})).catch((A=>{console.error("smoothMoveWithRotationOnGround:",A)}))},ut=(A,e,t)=>{A.callUeFunc({f:"HighlightFeature",p:{id:e,HlId:t}}).then((A=>{A.error&&console.error("HighlightFeature:",A.error)})).catch((A=>{console.error("HighlightFeature:",A)}))},ht=(A,e,t,n)=>{A.callUeFunc({f:"HighlightFeatureAndFlyTo",p:{id:e,HlId:t,Duration:n}}).then((A=>{A.error&&console.error("HighlightFeatureAndFlyTo:",A.error)})).catch((A=>{console.error("HighlightFeatureAndFlyTo:",A)}))},gt=(A,e,t)=>{A.callUeFunc({f:"SetLayerVisible",p:{id:e,LayerJson:t}}).then((A=>{A.error&&console.error("SetLayerVisible:",A.error)})).catch((A=>{console.error("SetLayerVisible:",A)}))},Bt=(A,e,t)=>{A.callUeFunc({f:"SetLayerColor",p:{id:e,LayerJson:t}}).then((A=>{A.error&&console.error("SetLayerColor:",A.error)})).catch((A=>{console.error("SetLayerColor:",A)}))},wt=(A,e,t,n)=>{A.callUeFunc({f:"smoothMove",p:{id:e,Destination:t,Time:n}}).then((A=>{A.error&&console.error("smoothMove:",A.error)})).catch((A=>{console.error("smoothMove:",A)}))},pt=(A,e,t,n)=>{A.callUeFunc({f:"callFunction",p:{id:e,fn:t,p:n}}).then((A=>{A.error&&(console.error("callFunction:",A.error),console.error(`id: ${e} fn: ${t} param: ${n}`))})).catch((A=>{console.error("callFunction:",A),console.error(`id: ${e} fn: ${t} param: ${n}`)}))},Ct=(A,e,t,n)=>{A.callUeFunc({f:"SetNodePosition",p:{id:e,NodeName:t,NodePosition:n}}).then((A=>{A.error&&console.error("SetNodePosition:",A.error)})).catch((A=>{console.error("SetNodePosition:",A)}))},mt=(A,e,t,n)=>{A.callUeFunc({f:"SetNodeRotation",p:{id:e,NodeName:t,NodeRotation:n}}).then((A=>{A.error&&console.error("SetNodeRotation:",A.error)})).catch((A=>{console.error("SetNodeRotation:",A)}))},ft=(A,e,t,n)=>{A.callUeFunc({f:"SetNodeScale",p:{id:e,NodeName:t,NodeScale:n}}).then((A=>{A.error&&console.error("SetNodeScale:",A.error)})).catch((A=>{console.error("SetNodeScale:",A)}))},vt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"ChangeNavigationMode",p:e});if(!t.error)return t;console.error("ChangeNavigationMode:",t.error)})),Ft=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"setGlobalProperty",p:e});if(!t.error)return t;console.error("setGlobalProperty:",t.error)})),Qt=A=>$e(void 0,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"Quit",p:void 0});if(!e.error)return e;console.error("Quit:",e.error)})),Ut=(A,e,t,n)=>$e(void 0,void 0,void 0,(function*(){var r;console.log("pickCallFunc",e,t,n);const s=yield A.callUeFunc({f:"pick",p:{screenPosition:e,parentInfo:n}});if(!s.re&&(s.error||""==s.error))return void console.error("pick:",""==s.error?"未获取到结果":s.error);let o=s.re.id;o=null==o?void 0:o.split("_")[0];const a=o?i.ESSceneObject.getSceneObjectById(o):void 0;return a&&Reflect.has(a,"allowPicking")&&Reflect.has(a,"pickedEvent")&&null!==(r=a.allowPicking)&&void 0!==r&&r&&a.pickedEvent.emit({attachedInfo:t}),a&&Reflect.has(a,"allowPicking")&&!a.allowPicking?new i.PickedResult:new i.PickedResult(s.re,a,s.re.features,s.re.add,t)})),Et=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"pickPosition",p:{screenPosition:e}});if(!t.re&&(t.error||""==t.error))return void console.error("pickPosition",""==t.error?"未获取到结果":t.error);const{position:n}=t.re;return n})),yt=(A,e,t,n="ECC_Visibility")=>$e(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"GetHeightByLonLat",p:{Lon:e,Lat:t,Channel:n}});if(!r.error)return r.re;console.warn(`GetHeightByLonLat:${r.error}`)})),St=(A,e,t="ECC_Visibility")=>$e(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"GetHeightsByLonLats",p:{LonLats:e,Channel:t}});if(n.error)console.warn(`GetHeightsByLonLats:${n.error}`);else{n.re.heights.includes(null)&&console.warn("注意! GetHeightsByLonLats: 存在高度为null的点. there are points with a height of null");try{return n.re.heights}catch(A){return}}})),bt=(A,e=64,t=64)=>$e(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"capture",p:{resx:e,resy:t}});if(!n.error)return n.re.image;console.warn(n.error)})),It=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"LonLatAltToScreenPosition",p:{LonLatAlt:e}});return t.error&&console.warn(t.error),t.re})),Ht=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"UEPositionToLonLatAlt",p:{UEPosition:e}});if(!t.error)return[...t.re.LonLatAlt];console.warn(t.error)})),Tt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetAllSocketNamesByActorTag",p:{ActorTag:e}});if(!t.error)return[...t.re.socketNames];console.warn(t.error)})),Mt=A=>$e(void 0,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"GetVersion",p:void 0});if(!e.error)return e.re.version;console.warn("GetVersion:",e.error)})),Lt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetBoundSphere",p:{id:e}});if(!t.error)return t.re;console.warn(t.error)})),xt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetBoundSphereWithChildren",p:{id:e}});if(!t.error)return t.re;console.warn(`GetBoundSphereWithChildren:${t.error}`)})),Pt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetStrokeMaterialParamInfo",p:{id:e}});if(!t.error)return t.re;console.warn(`GetStrokeMaterialParamInfo:${t.error}`)})),Dt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetFillMaterialParamInfo",p:{id:e}});if(!t.error)return t.re;console.warn(`GetFillMaterialParamInfo:${t.error}`)})),Rt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"getGlobalProperty",p:{props:e}});if(!t.error)return t.re;console.warn(`getGlobalProperty:${t.error}`)})),kt=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"GetObjectByInfo",p:{info:e}});if(!t.error)return t.re;console.warn(`GetObjectByInfo:${t.error}`)})),Kt=(A,e,t)=>$e(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindActorByTag",p:{ID:e,ActorTag:t}})})),Ot=A=>$e(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"RestoreOriginalScene",p:void 0})})),Vt=(A,e)=>$e(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByID",p:{ID:e}})})),Gt=(A,e)=>$e(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByTag",p:{ActorTag:e}})})),_t=(A,e,t)=>$e(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"CreateActorByClass",p:{ID:e,ActorClass:t}})})),Nt=function(A,e,t){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"Bind3DTilesetByTag",p:{ID:e,ActorTag:t}})}))},Wt=function(A,e){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetByTag",p:{ActorTag:e}})}))},Jt=function(A,e){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetById",p:{ID:e}})}))},Xt=function(A,e,t,n){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindImageryByTag",p:{ID:e,ActorTag:t,ComponentTag:n}})}))},zt=function(A,e,t){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryByTag",p:{ActorTag:e,ComponentTag:t}})}))},Yt=function(A,e){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryById",p:{ID:e}})}))},jt=function(A,e,t,n){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetIdByComponentNameAndHitItem",p:{id:e,ComponentName:t,HitItem:n}})}))},$t=function(A,e="ECC_Visibility"){return $e(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetCameraRelativeHeight",p:{Channel:e}})}))},Zt=function(A,e,t,n){return $e(this,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"SaveStringToFile",p:{String:e,Path:null!=t?t:"undefine",File:null!=n?n:"data.txt"}});return""!==r.error&&console.warn("SaveStringToFile: ",r.error),r}))},qt=function(A,e,t=!0){return $e(this,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"HighlightActorByTag",p:{ActorTag:e,Highlight:t}});return""!==n.error&&console.warn("HighlightActorByTag: ",n.error),n}))},An=function(A,e){return $e(this,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"SendCustomMessage",p:{Message:e}});return""!==t.error&&console.warn("SendCustomMessage: ",t.error),t}))},en=function(A){return $e(this,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"GetStatus",p:void 0});if(!e.error)return e.re;console.warn(`GetStatus:${e.error}`)}))},tn=(A,e,t,n=!0)=>$e(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"startEditing",p:{sceneObjectID:e,modes:t,useKeyToSwitch:n}});if(!r.error)return r;console.error("startEditing:",r.error)})),nn=A=>$e(void 0,void 0,void 0,(function*(){const e=yield A.callUeFunc({f:"stopEditing",p:void 0});if(!e.error)return e;console.error("stopEditing:",e.error)})),rn=(A,e)=>$e(void 0,void 0,void 0,(function*(){const t=yield A.callUeFunc({f:"moveObjects",p:{sceneObjectIDs:e}});if(!t.error)return t;console.error("moveObjects:",t.error)}));class sn extends c.Destroyable{}class on extends i.PickedInfo{constructor(A,e,t){super(e),this.uePickResult=A,this.tilesetPickInfo=t}}class an extends sn{get esueViewerWrapper(){return this._esueViewerWrapper}get errorEvent(){return this._errorEvent}get readyEvent(){return this._readyEvent}get esmsgwsopen(){return this._esmsgwsopen.value}set esmsgwsopen(A){this._esmsgwsopen.value=A}get esmsgwsopenChanged(){return this._esmsgwsopen.changed}get videoinited(){return this._videoinited.value}set videoinited(A){this._videoinited.value=A}get videoinitedChanged(){return this._videoinited.changed}get webRtcConnected(){return this._webRtcConnected.value}set webRtcConnected(A){this._webRtcConnected.value=A}get webRtcConnectedChanged(){return this._webRtcConnected.changed}resize(A,e){this.esueViewerWrapper.resize(A,e)}constructor(A,e,t,n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new c.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new c.Event),this._errorEvent=this.dv(new c.Event),this._readyEvent=this.dv(new c.Event),this._esmsgwsopen=this.dv((0,c.react)(!1)),this._videoinited=this.dv((0,c.react)(!1)),this._webRtcConnected=this.dv((0,c.react)(!1)),console.log("CSTMPSViewer init ! 以官方像素流 + 独立通信的模式启动!");const r=this._ueViewer;this._esueViewerWrapper=this.dv(new je(A,e,t));const s=this._esueViewerWrapper;{const A=()=>{var A;return s.debug=null!==(A=r.debug)&&void 0!==A&&A};A(),this.d(r.debugChanged.don(A))}let i=!1;{const A=()=>{if(i)return;const A=s.webSocketReady;if(this.videoinited&&this.webRtcConnected&&A){console.log("%c[EarthSDK: esmsgWebSocket && videoinited && webRtcConnected]","background: #a6ec99; color: black");const A={eventType:"init",params:{}};s.emitUIInteractionForBigData(A),this._readyEvent.emit(),i=!0}};this.d(this.videoinitedChanged.don((()=>{A()}))),this.d(this.webRtcConnectedChanged.don((()=>{A()}))),this.d(this.esmsgwsopenChanged.don((()=>{A()})))}this.d(s.event.don(((A,e)=>{if("error"===A)this._errorEvent.emit(e);else if("ueevent"===A){const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}else"webRtcConnected"===A?this.webRtcConnected=!0:"videoinited"===A?this.videoinited=!0:"esmsgwsopen"===A&&(this.esmsgwsopen=!0)})));{let e,t;this.dv((0,c.createAnimateFrame)()).start((()=>{e===A.offsetWidth&&t===A.offsetHeight||(e=A.offsetWidth,t=A.offsetHeight,void 0===e||void 0===t||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${e} ${t}`):(s.resize(e,t),console.log(`resize: ${e} ${t}`)))}))}this.d(this._ueFuncResultWithIdsEvent.don((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A.resultCallback(e.r))}})));let o=0;const a=A=>{const e={n:o++,tt:Date.now(),t:"c",fs:A};this._waitingUeCalls.add(e),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd()),this._esueViewerWrapper.emitUIInteractionForBigData(e,(()=>{this._waitingUeCalls.delete(e)}))};this.dv((0,c.createInterval)()).start((()=>{if(!i)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A));for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0;{const e=window.g_emitDescriptor_maxBytes,t=A.map((A=>({f:A,s:JSON.stringify(A).length})));let n=t.length,s=0,i=0,o=[];do{do{const{f:A,s:n}=t[s];if(o.push(A),++s,i+n>e||o.length>=20)break}while(s<n);o.length>0&&(r.debug&&console.log(`传送${o.length}条消息...`),a([...o]),o.length=0,i=0)}while(s<n)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((e=>{const t=(0,c.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:e}])}))}disposableOnUeEvent(A,e){var t;null!==(t=this._ueViewer.debug)&&void 0!==t&&t&&console.log(`disposableOnUeEvent from UeCloudViewer, type:${A}`);const n=(0,c.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:n}});const r=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:n}})},s=this._ueEvent.don((t=>{t.et===A&&t.eid===n&&e(t)}));return()=>{s(),r()}}}function cn(A){let e="";const t=new Uint8Array(A),n=t.length;for(let A=0;A<n;A++)e+=String.fromCharCode(t[A]);return btoa(e)}window.g_emitDescriptor_maxBytes=3e4,console.log("全局可设置消息体最大字节, window.g_emitDescriptor_maxBytes 默认 30000 。");let ln=-1;_e.SetLoggerVerbosity(1);class dn extends c.Destroyable{get error(){return this._error}get connected(){return this._connected}get ueevent(){return this._ueevent}get container(){return"string"==typeof(A=this._container)?document.getElementById(A):A;var A}get pixelStream(){return this._pixelStream}get webSocketReady(){return 1===this.pixelStream.webSocketController.webSocket.readyState}processResponse(A){var e;if(null!==(e=this.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}this.resolveCallback(A)||this.ueevent.emit(A)}emitUIInteractionForBigData(A,e){var t;"function"==typeof e&&(A.callid=(0,c.createGuid)(),this.uiInteractionCallbacks.set(A.callid,e));const n=JSON.stringify(A),r=null!==(t=window.g_emitDescriptor_maxBytes)&&void 0!==t?t:3e4,s=n.length,i=++ln;if(s<r){const A={type:"earthsdk",time:(new Date).getTime(),params:`${i}-0/1-`+n};return void this.sendData(JSON.stringify(A))}const o=0|Math.ceil(s/r),a=[...new Array(o).keys()].map((A=>n.slice(A*r,(A+1)*r)));a.forEach(((A,e)=>{const t={type:"earthsdk",time:(new Date).getTime(),params:`${i}-${e}/${o}-`+A};this.sendData(JSON.stringify(t))}))}sendData(A){this.pixelStream.webSocketController.webSocket.send(A)}constructor(A,e){super(),this._container=A,this._option=e,this.debug=!1,this._error=this.dv(new c.Event),this._connected=this.dv(new c.Event),this._ueevent=this.dv(new c.Event),this.uiInteractionCallbacks=new Map;const t=new Ve({initialSettings:{HoveringMouse:!0,AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,ss:this._option.ws},useUrlParams:!0});t.setFlagEnabled(Ge.BrowserSendOffer,!1),t.setFlagEnabled(Ge.HoveringMouseMode,!0),t.setFlagEnabled(Ge.MatchViewportResolution,!0),t.setNumericSetting(Ne.MaxReconnectAttempts,0),this._pixelStream=new We(t,{videoElementParent:this.container});{const A=this.pixelStream.webSocketController.webSocket,e=this._pixelStream._webRtcController.sendMessageController.dataChannelSender.sendData;this._pixelStream._webRtcController.sendMessageController.dataChannelSender.constructor.prototype.sendData=function(t){A?A.send((A=>{const e={type:"input",inputdata:cn(A)};return JSON.stringify(e)})(t)):e.call(this,t)}}{const A=A=>{const e=this._pixelStream._webRtcController.mouseController;setTimeout((()=>{const t=e.coordinateConverter.normalizeAndQuantizeUnsigned(A.offsetX,A.offsetY),n=e.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp");n&&n([A.button,t.x,t.y]),A.preventDefault()}))};this.container.addEventListener("dblclick",A),this.d((()=>{this.container.removeEventListener("dblclick",A)}))}["error","close","open"].forEach((A=>{const e=()=>{this.isDestroyed()||("open"===A?this.connected.emit("webSocketOpen"):"close"===A?this.error.emit("webSocketClose"):"error"===A&&this.error.emit("webSocketError"))};this.pixelStream.webSocketController.webSocket.addEventListener(A,e),this.d((()=>{this.pixelStream.webSocketController.webSocket.removeEventListener(A,e)}))})),["videoInitialized","webRtcConnected","webRtcDisconnected","webRtcFailed"].forEach((A=>{const e=()=>{this.isDestroyed()||("webRtcConnected"===A||"videoInitialized"===A?this.connected.emit(A):"webRtcDisconnected"!==A&&"webRtcFailed"!==A||(this.error.emit(A),this.pixelStream.disconnect()))};this.pixelStream.addEventListener(A,e),this.d((()=>{this.pixelStream.removeEventListener(A,e)}))})),this.pixelStream.addResponseEventListener("handle_responses",(A=>{this.processResponse(A)})),this.d((()=>{this.pixelStream.removeResponseEventListener("handle_responses")}))}resolveCallback(A){let e={};try{e=JSON.parse(A)}catch(A){return!1}let t=e.callid;if("string"!=typeof t)return!1;if(!this.uiInteractionCallbacks.has(t))return!1;let n=this.uiInteractionCallbacks.get(t);return"function"==typeof n&&(n(e),this.uiInteractionCallbacks.delete(t),!0)}getVideoSize(){const A=this._pixelStream._webRtcController.videoPlayer.getVideoElement();return{width:A.videoWidth,height:A.videoHeight}}emitCommand(A){this.pixelStream.emitCommand(A)}emitUIInteraction(){console.log("emitUIInteraction 像素流初始化"),this.pixelStream.emitUIInteraction("像素流初始化")}resizeUEVideo(A,e){const t={Resolution:{Width:A,Height:e}};console.log(`resizeUEVideo emitCommand ${A} ${e} begin`),this.emitCommand(t)}}class un extends c.Destroyable{get instance(){return this._instance}get event(){return this._event}get debug(){return this._instance.debug}set debug(A){this._instance.debug=A}constructor(A,e,t){super(),this._container=A,this._wsuri=e,this._esmsgWsUri=t,this._event=this.dv(new c.Event),this._instance=this.dv(new dn(this._container,{ws:this._wsuri})),this.d(this._instance.connected.don((A=>{this._event.emit(A,A),console.log(`%c[EarthSDK] ${A}`,"background: #a6ec99; color: black")}))),this.d(this._instance.error.don((A=>{this._event.emit("errorEvent",A),console.log(`%c[EarthSDK] ${A}`,"background: red; color: black")}))),this.d(this._instance.ueevent.don((A=>{this._event.emit("ueevent",A)})))}emitUIInteractionForBigData(A,e){return new Promise(((t,n)=>{const r=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,r)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),n(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}class hn extends sn{get videoInitialized(){return this._videoInitialized.value}get webRtcConnected(){return this._webRtcConnected.value}get webSocketOpen(){return this._webSocketOpen.value}get ue5ViewerWrapper(){return this._ue5ViewerWrapper}get errorEvent(){return this._errorEvent}get readyEvent(){return this._readyEvent}resize(A,e){this.ue5ViewerWrapper.resize(A,e)}constructor(A,e,t,n){super(),this._ueViewer=n,this._videoInitialized=this.dv((0,c.react)(!1)),this._webRtcConnected=this.dv((0,c.react)(!1)),this._webSocketOpen=this.dv((0,c.react)(!1)),this._ueFuncResultWithIdsEvent=this.dv(new c.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new c.Event),this._errorEvent=this.dv(new c.Event),this._readyEvent=this.dv(new c.Event),console.log("INNPSViewer init ! 以内置信令服务器模式启动!");const r=this._ueViewer,s=this.dv(new un(A,e,t));this._ue5ViewerWrapper=s;{const A=()=>{var A;return s.debug=null!==(A=r.debug)&&void 0!==A&&A};A(),this.d(r.debugChanged.don(A))}{let A=!1;const e=this.dv((0,c.createNextAnimateFrameEvent)(this._videoInitialized.changed,this._webRtcConnected.changed,this._webSocketOpen.changed));this.d(e.don((()=>{if(A)return;const e=this._ue5ViewerWrapper.instance.webSocketReady;if(this.videoInitialized&&this.webRtcConnected&&e){this._ue5ViewerWrapper.instance.emitUIInteraction(),this._readyEvent.emit(),A=!0,console.log("%c[EarthSDK videoInitialized && webRtcConnected && webSocketReady]","background: #a6ec99; color: black");const e={eventType:"init",params:{}};this._ue5ViewerWrapper.emitUIInteractionForBigData(e)}else console.warn("webSocketReady",e),A=!1})))}this.d(s.event.don(((A,e)=>{if("errorEvent"===A)this._errorEvent.emit(e);else if("videoInitialized"===A)this._videoInitialized.value=!0;else if("webRtcConnected"===A)this._webRtcConnected.value=!0;else if("webSocketOpen"===A)this._webSocketOpen.value=!0;else if("ueevent"===A){const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}})));{let e,t,n;this.dv((0,c.createAnimateFrame)()).start((()=>{e===A.offsetWidth&&t===A.offsetHeight&&n===r.resolutionScale||(e=A.offsetWidth,t=A.offsetHeight,void 0===e||void 0===t||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${e} ${t}`):(n=r.resolutionScale,s.resize(e/n,t/n)))}))}this.d(this._ueFuncResultWithIdsEvent.don((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A.resultCallback(e.r))}})));let i=0;const o=A=>{const e={n:i++,tt:Date.now(),t:"c",fs:A};this._waitingUeCalls.add(e),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd()),this._ue5ViewerWrapper.emitUIInteractionForBigData(e,(()=>{this._waitingUeCalls.delete(e)}))};this.dv((0,c.createInterval)()).start((()=>{if(!this._ue5ViewerWrapper.instance.webSocketReady)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A));for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0;{const e=window.g_emitDescriptor_maxBytes,t=A.map((A=>({f:A,s:JSON.stringify(A).length})));let n=t.length,s=0,i=0,a=[];do{do{const{f:A,s:n}=t[s];if(a.push(A),++s,i+n>e||a.length>=20)break}while(s<n);a.length>0&&(r.debug&&console.log(`传送${a.length}条消息...`),o([...a]),a.length=0,i=0)}while(s<n)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((e=>{const t=(0,c.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:e}])}))}disposableOnUeEvent(A,e){const t=(0,c.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.don((n=>{n.et===A&&n.eid===t&&e(n)}));return()=>{r(),n()}}}class gn extends c.Destroyable{get onRuntimeInitialized(){return this._onRuntimeInitialized}get vIframe(){return this._vIframe}constructor(A,e,t,n){super(),this._ueViewer=n,this._onRuntimeInitialized=this.dv(new c.Event),this._vIframe=null;const r=this._ueViewer;{const n=document.createElement("iframe");this._vIframe=n,n.style.cssText="width: 100%; height: 100%; margin: 0; padding: 0; border: none; outline: none;",A.appendChild(n),this.d((()=>{n&&A.removeChild(n)}));const s=i.ESSceneObject.getStrFromEnv(t+`/web/${e}.html`);n.src=s,n.onload=()=>{const A=n.contentWindow;A?(console.log("iwindow.Module",A.Module),A.Module.onRuntimeInitialized=()=>{this._onRuntimeInitialized.emit(),r.setStatus("Created"),r.setStatusLog("创建成功"),A.Module.UE4_resizeCanvas(),A.console.log("创建成功__________________________________________")}):console.error("iframeWindow is null")}}}}const Bn="undefined"!=typeof TextDecoder?new TextDecoder:void 0;class wn extends c.Destroyable{constructor(A,e,t){super();{const A=()=>{const A=g(e);e.setGlobalProperty(A)};A();const t=h(),n=[];t.forEach((A=>{const t=e[A+"Changed"];n.push(t)}));const r=this.dv((0,c.createNextAnimateFrameEvent)(...n));this.d(r.don(A))}this.d(e.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((t=>{const n=null===A.props[t]?void 0:A.props[t];e[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),e.useCustomInteraction=!1,this.dv(new i.ViewerCustomInteraction(e,A)),this.dv(new c.ObjResettingWithEvent(e.statusUpdateIntervalChanged,(A=>{var n;if(0===(null!==(n=e.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new c.Destroyable;return r.d(t.disposableOnUeEvent("statusUpdate",(A=>{e.statusUpdateEvent.emit(A)}))),r}))),this.dv(new c.ObjResettingWithEvent(e.propChangedListeningChanged,(()=>{var A;if(null!==(A=e.propChangedListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(A=>{e.propChanged.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.objectEventListeningChanged,(()=>{var A;if(null!==(A=e.objectEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(A=>{e.objectEvent.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.widgetEventListeningChanged,(()=>{var A;if(null!==(A=e.widgetEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(A=>{e.widgetEvent.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=e.speechRecognitionListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(A=>{e.speechRecognition.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.customMessageListeningChanged,(()=>{var A;if(null!==(A=e.customMessageListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(A=>{e.customMessage.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.editingEventListeningChanged,(()=>{var A;if(null!==(A=e.editingEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(A=>{e.editingEvent.emit(A)}))),n})))}}let pn=-1;class Cn extends sn{constructor(A,e,t="${earthsdk3-ue-h5-assets-script-dir}",n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new c.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Map,this._ueEvent=this.dv(new c.Event);const r=this._ueViewer,s=this.dv(new gn(A,e,t,r));let i=!1,o=null;this.d(s.onRuntimeInitialized.don((()=>{var A;if(i=!0,null===(A=null==s?void 0:s.vIframe)||void 0===A?void 0:A.contentWindow){{o=s.vIframe.contentWindow;const A=s.vIframe.contentWindow.document.getElementById("mainarea");A?this.dv(new wn(A,r,this)):console.error("h5Container is null")}o.UE_JSHTML5Communication?o.UE_JSHTML5Communication.UESendMessageToJS=A=>{try{const e=((A,e=0,t=NaN)=>{const n=e+t;let r=e;for(;A[r]&&!(r>=n);)++r;if(r-e>16&&A.buffer&&Bn)return Bn.decode(A.subarray(e,r));let s="";for(;e<r;){var i=A[e++];if(128&i){var o=63&A[e++];if(192!=(224&i)){var a=63&A[e++];if(224==(240&i)?i=(15&i)<<12|o<<6|a:(240!=(248&i)&&console.warn("Invalid UTF-8 leading byte encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),i=(7&i)<<18|o<<12|a<<6|63&A[e++]),i<65536)s+=String.fromCharCode(i);else{var c=i-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else s+=String.fromCharCode((31&i)<<6|o)}else s+=String.fromCharCode(i)}return s})(o.HEAPU8,A),t=JSON.parse(e);if(r.debug&&(console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(t,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()),"cr"===t.t){const A=t;if(A.frs&&this._ueFuncResultWithIdsEvent.emit(A.frs),A.ers)for(let e of A.ers)this._ueEvent.emit(e)}t.callid&&this._waitingUeCalls.has(t.callid)&&(this._waitingUeCalls.delete(t.callid),console.log(`waitingUeCalls.delete:${t.callid} end`))}catch(A){console.error("UE_JSHTML5Communication.UESendMessageToJS error:",A)}}:console.error("UE_JSHTML5Communication UESendMessageToJS not found")}else console.error("iframeWindow is null")}))),this.dispose(this._ueFuncResultWithIdsEvent.disposableOn((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A(e.r))}})));let a=0;this.dv((0,c.createInterval)()).start((()=>{var A;if(!i)return;if(!o)return;if(!o.UE_JSHTML5Communication||!o.UE_JSHTML5Communication.JSSendMessageToUE)return;if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const e=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),t={n:a++,tt:Date.now(),t:"c",fs:e,callid:(0,c.createGuid)()};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.set(t.callid,t),r.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(t,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=JSON.stringify(t),s=null!==(A=window.g_emitDescriptor_maxBytes)&&void 0!==A?A:3e4,l=n.length,d=++pn;if(l<s){const A=`${d}-0/1-`+n;return void o.UE_JSHTML5Communication.JSSendMessageToUE(A)}const u=0|Math.ceil(l/s),h=[...new Array(u).keys()].map((A=>n.slice(A*s,(A+1)*s)));h.forEach(((A,e)=>{const t=`${d}-${e}/${u}-`+A;o.UE_JSHTML5Communication.JSSendMessageToUE(t)}))}),50)}processResponse(A){var e;if(null!==(e=this._ueViewer.debug)&&void 0!==e&&e)try{const e=JSON.parse(A);console.group("%cUE => JS"," background-color:#006EFF;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed #006EFF;border-radius:5px;padding:10px;line-height:25px;color:#006EFF;"),console.groupEnd()}catch(e){console.error(`processResponse(${A}) error: ${e}`,e)}}callUeFunc(A){return new Promise((e=>{const t=(0,c.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,e])}))}disposableOnUeEvent(A,e){const t=(0,c.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.disposableOn((n=>{var r;n.et===A&&n.eid===t&&(null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`callback, type:${A} eid:${t} ueEvent:${JSON.stringify(n)}`),e(n))}));return()=>{r(),n()}}}let mn=-1;class fn extends sn{constructor(A,e){super(),this._ueViewer=e,this._ueFuncResultWithIdsEvent=this.dv(new c.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new c.Event);const t=this._ueViewer;let n=!1;window.ue.es.oncommand(JSON.stringify({eventType:"init",params:{}})),n=!0,window.calljs=(A,e)=>{if(t.debug&&console.log(`calljs eventName:${A} eventDetailStr:${e}`),"ueevent"===A||"commanFinish"===A)try{const A=JSON.parse(e);if("cr"===A.t){const e=A;if(e.frs&&this._ueFuncResultWithIdsEvent.emit(e.frs),e.ers)for(let A of e.ers)this._ueEvent.emit(A)}}catch(A){console.error(A)}},this.dispose(this._ueFuncResultWithIdsEvent.disposableOn((A=>{for(const e of A){const A=this._waitingUeFuncIdAndResultCallbacks.get(e.fid);A&&(this._waitingUeFuncIdAndResultCallbacks.delete(e.fid),A(e.r))}})));let r=0;this.dv((0,c.createInterval)()).start((()=>{if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),e={n:r++,tt:Date.now(),t:"c",fs:A};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.add(e),t.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(e,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=++mn;window.ue.es.oncommand(`${n}-0/1-`+JSON.stringify(e)).then((()=>{this._waitingUeCalls.delete(e)}))}),50)}callUeFunc(A){return new Promise((e=>{const t=(0,c.createGuid)(),n=Object.assign({fid:t},A);this._ueFuncWithIdAndResultCallbacks.push([n,e])}))}disposableOnUeEvent(A,e){const t=(0,c.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:t}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:t}})},r=this._ueEvent.disposableOn((n=>{var r;n.et===A&&n.eid===t&&(null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`callback, type:${A} eid:${t} ueEvent:${JSON.stringify(n)}`),e(n))}));return()=>{r(),n()}}}class vn extends c.Destroyable{constructor(A,e){super();{const e=()=>{const e=g(A);A.setGlobalProperty(e)};e();const t=h(),n=[];t.forEach((e=>{const t=A[e+"Changed"];n.push(t)}));const r=this.dv((0,c.createNextAnimateFrameEvent)(...n));this.d(r.don(e))}this.d(A.propChanged.don((e=>{if(""===e.objId)try{Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),this.dv(new c.ObjResettingWithEvent(A.statusUpdateIntervalChanged,(t=>{var n;if(0===(null!==(n=A.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new c.Destroyable;return r.d(e.disposableOnUeEvent("statusUpdate",(e=>{A.statusUpdateEvent.emit(e)}))),r}))),this.dv(new c.ObjResettingWithEvent(A.propChangedListeningChanged,(()=>{var t;if(null!==(t=A.propChangedListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("propChanged",(e=>{A.propChanged.emit(e)}))),n}))),this.dv(new c.ObjResettingWithEvent(A.objectEventListeningChanged,(()=>{var t;if(null!==(t=A.objectEventListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("objectEvent",(e=>{A.objectEvent.emit(e)}))),n}))),this.dv(new c.ObjResettingWithEvent(A.widgetEventListeningChanged,(()=>{var t;if(null!==(t=A.widgetEventListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("widgetEvent",(e=>{A.widgetEvent.emit(e)}))),n}))),this.dv(new c.ObjResettingWithEvent(A.speechRecognitionListeningChanged,(()=>{var t;if(null!==(t=A.speechRecognitionListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("speechRecognition",(e=>{A.speechRecognition.emit(e)}))),n}))),this.dv(new c.ObjResettingWithEvent(A.customMessageListeningChanged,(()=>{var t;if(null!==(t=A.customMessageListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("customMessage",(e=>{A.customMessage.emit(e)}))),n}))),this.dv(new c.ObjResettingWithEvent(A.editingEventListeningChanged,(()=>{var t;if(null!==(t=A.editingEventListening)&&void 0!==t&&!t)return;const n=new c.Destroyable;return n.d(e.disposableOnUeEvent("editingEvent",(e=>{A.editingEvent.emit(e)}))),n})))}}class Fn extends c.Destroyable{constructor(A,e,t){super();{const A=()=>{const A=g(e);e.setGlobalProperty(A)};A();const t=h(),n=[];t.forEach((A=>{const t=e[A+"Changed"];n.push(t)}));const r=this.dv((0,c.createNextAnimateFrameEvent)(...n));this.d(r.don(A))}this.d(e.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((t=>{const n=null===A.props[t]?void 0:A.props[t];e[t]=n}))}catch(A){console.error("ueViewer propChanged:"+A)}})));const n=document.createElement("div");n.style.width="100%",n.style.height="100%",n.style.position="absolute",n.style.overflow="hidden",n.style.top="0",n.style.left="0",n.style.zIndex="0",n.style.backgroundColor="rgba(255,0,0,0)",n.setAttribute("masker","大屏顶层div,用于模拟鼠标事件和控制UE鼠标事件是否生效"),A.appendChild(n),this.d((()=>{n&&A&&A.removeChild(n)}));{const A=(A,e)=>{window.ue.esinput.setinterceptevent(e),A.preventDefault()},e=e=>{A(e,!1)},t=e=>{A(e,!0)},r=e=>{A(e,!1)};n.addEventListener("mouseenter",e),n.addEventListener("mouseleave",t),n.addEventListener("mousemove",r),this.d((()=>{n.removeEventListener("mouseenter",e),n.removeEventListener("mouseleave",t),n.removeEventListener("mousemove",r)}))}e.useCustomInteraction=!1,this.dv(new i.ViewerCustomInteraction(e,n)),this.dv(new c.ObjResettingWithEvent(e.statusUpdateIntervalChanged,(A=>{var n;if(0===(null!==(n=e.statusUpdateInterval)&&void 0!==n?n:.5))return;const r=new c.Destroyable;return r.d(t.disposableOnUeEvent("statusUpdate",(A=>{e.statusUpdateEvent.emit(A)}))),r}))),this.dv(new c.ObjResettingWithEvent(e.propChangedListeningChanged,(()=>{var A;if(null!==(A=e.propChangedListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(A=>{e.propChanged.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.objectEventListeningChanged,(()=>{var A;if(null!==(A=e.objectEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(A=>{e.objectEvent.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.widgetEventListeningChanged,(()=>{var A;if(null!==(A=e.widgetEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(A=>{e.widgetEvent.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=e.speechRecognitionListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(A=>{e.speechRecognition.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.customMessageListeningChanged,(()=>{var A;if(null!==(A=e.customMessageListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(A=>{e.customMessage.emit(A)}))),n}))),this.dv(new c.ObjResettingWithEvent(e.editingEventListeningChanged,(()=>{var A;if(null!==(A=e.editingEventListening)&&void 0!==A&&!A)return;const n=new c.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(A=>{e.editingEvent.emit(A)}))),n})))}}class Qn extends c.Destroyable{constructor(A,e,t){super(),this._reconnectEvent=this.dv(new c.Event);const n=(A,e)=>A.hasOwnProperty(e);let r,s=0;if(this.d((()=>{r&&clearTimeout(r)})),window.ue&&window.ue.es)if(window.ue.esinput){t.setStatus("Creating"),console.log("存在(window.ue && window.ue.es && window.ue.esinput 需要适配新版ESWebView 鼠标穿透), 开始创建UeFalseCloudViewer..."),t.setStatusLog("开始创建本地视口...");const e=this.dv(new fn(A,t));this.d((()=>t.viewer=void 0)),t.viewer=e,t.setStatus("Created"),t.setStatusLog("本地视口创建成功!"),this.dv(new Fn(A,t,e))}else t.setStatus("Error"),t.setStatusLog("请升级 ESWebView !");else if(n(e.options,"ws")||n(e.options,"uri")&&n(e.options,"app")){let i;t.setStatus("Creating"),t.setStatusLog("开始创建云渲染视口..."),this.d((()=>{t.setStatus("Raw"),t.setStatusLog(""),A&&i&&A.removeChild(i)&&(i=void 0)}));const o=this.dv((0,c.createProcessingFromAsyncFunc)((o=>function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){let a,l,d;if(t.viewer&&!t.viewer.isDestroyed()&&t.viewer.destroy(),t.viewer=void 0,i&&A.removeChild(i)&&(i=void 0),i=document.createElement("div"),i.setAttribute("earthsdk3-ue","earthsdk3-ue-videoContainer"),i.style.cssText="position:relative; height: 100%;width:100%;",A.appendChild(i),n(e.options,"ws")){const{ws:A,esmsg:t,uselnternalSignallingServer:n}=e.options;a=A,l=t,d=null!=n&&n}if(n(e.options,"uri")&&n(e.options,"app")){const{offsetWidth:A,offsetHeight:n}=i;let{uri:r,app:s,token:u}=e.options;r.endsWith("/")||(r+="/");const h=`/${s}/${null!=A?A:1920}/${null!=n?n:1080}`+(u?`?essstoken=${u}`:"");console.log(`请求信令服务器: ${r}instance${h}`);const g=yield o.promise(fetch(`${r}instance${h}`,{method:"GET"})),B=yield o.promise(g.json());if(B&&"ok"!==B.status)return t.setStatus("Error"),t.setStatusLog(`信令服务器请求失败 ${B.status}`),void this._reconnectEvent.emit(void 0);{console.log(`信令服务器请求成功! ${JSON.stringify(B,void 0," ")}`),yield(0,c.sleep)(5e3);const{server:A,esmsg:e,instanceId:n,useInternalSignallingServer:r}=B;if(!n)return t.setStatus("Error"),t.setStatusLog("检查信令服务器版本,返回数据错误! "),console.log("信令服务器返回数据错误!不包含instanceId!请升级到 ESSS V3.0+ 版本!"),void this._reconnectEvent.emit(void 0);a=A,l=e,d=null!=r&&r,t.esssResponse=B}}const u=this.dv(d?new hn(i,a,l,t):new an(i,a,l,t));this.d((()=>t.viewer=void 0)),this.d(u.errorEvent.don((A=>{const e=`[${A}]:像素流连接错误!`;t.setStatus("Error"),t.setStatusLog(e),this._reconnectEvent.emit(u)}))),yield o.promise(new Promise((A=>this.d(u.readyEvent.donce(A))))),t.setStatus("Created"),t.setStatusLog("云渲染视口创建成功!"),s=0,r&&clearTimeout(r),r=void 0;const{offsetWidth:h,offsetHeight:g}=i;u.resize(h*window.devicePixelRatio,g*window.devicePixelRatio),t.viewer=u,this.d((()=>t.viewer=void 0)),this.dv(new vn(t,u))})))));o.start(),this.d(this._reconnectEvent.don((A=>{void 0===r&&(A&&!A.isDestroyed()&&A.destroy(),t.viewer&&!t.viewer.isDestroyed()&&t.viewer.destroy(),t.viewer=void 0,t.autoReconnect&&(t.setStatus("Reconnecting"),t.setStatusLog("正在尝试重新连接..."),s=s+5e3>3e4?3e4:s+5e3,console.warn(`间隔:${s/1e3}s,正在尝试重新连接...`),r=window.setTimeout((()=>{o.restart()}),s)))}))),this.d(o.errorEvent.don((A=>{t.setStatus("Error"),t.setStatusLog("云渲染视口创建失败!"),console.warn("云渲染视口创建失败!",A),this._reconnectEvent.emit(void 0)})))}else if(n(e.options,"project")){const n=e,r=n.options.project,s=n.options.baseUrl;t.setStatus("Creating"),t.setStatusLog("下载编译中...");const i=this.dv(new Cn(A,r,s,t));t.viewer=i,this.d((()=>t.viewer=void 0))}else t.setStatus("Error"),t.setStatusLog("视口创建失败!"),console.warn("视口创建失败: 参数错误!")}}var Un,En=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class yn extends i.ESViewer{get defaultProps(){return yn.createDefaultProps()}set viewer(A){this._viewer.value=A}get viewer(){return this._viewer.value}get esssResponse(){return this._esssResponse}set esssResponse(A){this._esssResponse=A}get speechRecognition(){return this._speechRecognition}get propChanged(){return this._propChanged}get objectEvent(){return this._objectEvent}get widgetEvent(){return this._widgetEvent}get customMessage(){return this._customMessage}get statusUpdateEvent(){return this._statusUpdateEvent}uePositionToLonLatAlt(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Ht(this.viewer,A);console.warn("UEPositionToLonLatAlt: viewer is undefined")}))}changeNavigationMode(A){return En(this,void 0,void 0,(function*(){if(!this.viewer)return void console.warn("ChangeNavigationMode: viewer is undefined");const e=yield vt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}resetWithCurrentCamera(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield at(this.viewer,A);console.warn("resetWithCurrentCamera: viewer is undefined")}))}getAllSocketNamesByActorTag(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Tt(this.viewer,A);console.warn("GetAllSocketNamesByActorTag: viewer is undefined")}))}getBoundSphere(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Lt(this.viewer,A);console.warn("getBoundSphere: viewer is undefined")}))}getBoundSphereWithChildren(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield xt(this.viewer,A);console.warn("getBoundSphereWithChildren: viewer is undefined")}))}getStrokeMaterialParamInfo(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Pt(this.viewer,A);console.warn("GetStrokeMaterialParamInfo: viewer is undefined")}))}getFillMaterialParamInfo(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Dt(this.viewer,A);console.warn("getFillMaterialParamInfo: viewer is undefined")}))}getGlobalProperty(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Rt(this.viewer,A);console.warn("getGlobalProperty: viewer is undefined")}))}getObjectByInfo(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield kt(this.viewer,A);console.warn("GetObjectByInfo: viewer is undefined")}))}defaultCameraFlyIn(A=1){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield nt(this.viewer,A);console.warn("DefaultCameraFlyIn: viewer is undefined")}))}startVoice(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield rt(this.viewer);console.warn("startVoice:viewer is undefined")}))}stopVoice(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield st(this.viewer);console.warn("startVoice:viewer is undefined")}))}mountPakFiles(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield it(this.viewer,A);console.warn("mountPakFiles:viewer is undefined")}))}generateMemReport(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield ot(this.viewer);console.warn("generateMemReport:viewer is undefined")}))}quit(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Qt(this.viewer);console.warn("Quit: viewer is undefined")}))}bindActorByTag(A,e){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Kt(this.viewer,A,e);console.warn("BindActorByTag: viewer is undefined")}))}restoreOriginalScene(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Ot(this.viewer);console.warn("RestoreOriginalScene: viewer is undefined")}))}unBindActorByID(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Vt(this.viewer,A);console.warn("UnBindActorByID: viewer is undefined")}))}unBindActorByTag(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Gt(this.viewer,A);console.warn("UnBindActorByTag: viewer is undefined")}))}createActorByClass(A,e){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield _t(this.viewer,A,e);console.warn("CreateActorByClass: viewer is undefined")}))}bind3DTilesetByTag(A,e){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Nt(this.viewer,A,e);console.warn("Bind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetByTag(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Wt(this.viewer,A);console.warn("UnBind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetById(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Jt(this.viewer,A);console.warn("UnBind3DTilesetById: viewer is undefined")}))}bindImageryByTag(A,e,t){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Xt(this.viewer,A,e,t);console.warn("BindImageryByTag: viewer is undefined")}))}unBindImageryByTag(A,e){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield zt(this.viewer,A,e);console.warn("UnBindImageryByTag: viewer is undefined")}))}unBindImageryById(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Yt(this.viewer,A);console.warn("UnBindImageryById: viewer is undefined")}))}getIdByComponentNameAndHitItem(A,e,t){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield jt(this.viewer,A,e,t);console.warn("GetIdByComponentNameAndHitItem: viewer is undefined")}))}getCameraRelativeHeight(A="ECC_Visibility"){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield $t(this.viewer,A);console.warn("GetCameraRelativeHeight: viewer is undefined")}))}saveStringToFile(A,e,t){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Zt(this.viewer,A,e,t);console.warn("SaveStringToFile: viewer is undefined")}))}highlightActorByTag(A,e=!0){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield qt(this.viewer,A,e);console.warn("HighlightActorByTag: viewer is undefined")}))}sendCustomMessage(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield An(this.viewer,A);console.warn("SendCustomMessage: viewer is undefined")}))}getStatus(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield en(this.viewer);console.warn("GetStatus:viewer is undefined")}))}pick(A,e,t){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;let n=A;if(A&&window.ue&&this.container){const[e,t]=A,{left:r,top:s}=this.container.getBoundingClientRect();n=[r+e,s+t]}return yield Ut(this.viewer,n,e,t)}))}pickPosition(A){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;let e=A;if(A&&window.ue&&this.container){const[t,n]=A,{left:r,top:s}=this.container.getBoundingClientRect();e=[r+t,s+n]}return yield Et(this.viewer,e)}))}flyIn(A,e=[0,0,0],t=1){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const n=yield tt(this.viewer,void 0,A,e,t);return n?(0===n.endType&&console.warn(`flyTo:flyTo is end! endType:${n.endType}`),1===n.endType&&console.warn(`flyTo:飞行中断! endType:${n.endType}`),n):void 0}))}flyTo(A,e){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const t=yield Ze(this.viewer,void 0,void 0,A,e);return t?(0===t.endType&&console.warn(`flyTo:flyTo is end! endType:${t.endType}`),1===t.endType&&console.warn(`flyTo:飞行中断! endType:${t.endType}`),t):void 0}))}flyToBoundingSphere(A,e,t=1){const n=[[A[0],A[1],0],[A[0],A[3],0],[A[2],A[3],0],[A[2],A[1],0]],r=(0,i.getGeoBoundingSphereFromPositions)(n);if(!r)return;const{center:s,radius:o}=r,a={distance:null!=e?e:o,heading:0,pitch:-90,flyDuration:t,hDelta:0,pDelta:0};this.flyTo(a,s)}getCurrentCameraInfo(){const{position:A,rotation:e}=this._statusInfo;return{position:A,rotation:e}}getLengthInPixel(){return this._statusInfo.length}changeToWalk(A,e=4.2){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const t={mode:"Walk",position:A,jumpZVelocity:e},n=yield vt(this.viewer,t);return n&&!n.error&&(this._navigationMode.value=t.mode),n}))}changeToMap(){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const A={mode:"Map"},e=yield vt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}changeToRotateGlobe(A=38,e=1e7,t=60){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const n={mode:"RotateGlobe",latitude:A,height:e,cycleTime:t},r=yield vt(this.viewer,n);return r&&!r.error&&(this._navigationMode.value=n.mode),r}))}changeToLine(A,e=10,t=10,n=!0,r=10,s="auto"){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const i={mode:"Line",geoLineStringId:A,speed:e,heightOffset:t,loop:n,turnRateDPS:r,lineMode:s},o=yield vt(this.viewer,i);return o&&!o.error&&(this._navigationMode.value=i.mode),o}))}changeToUserDefined(A){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const e={mode:"UserDefined",userDefinedPawn:A},t=yield vt(this.viewer,e);return t&&!t.error&&(this._navigationMode.value=e.mode),t}))}changeToRotatePoint(A,e=5e4,t=60,n=0,r=-30){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"RotatePoint",position:A,distance:e,orbitPeriod:t,heading:n,pitch:r},i=yield vt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}changeToFollow(A,e=0,t=0,n=-30,r=!0){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"Follow",objectId:A,distance:e,heading:t,pitch:n,relativeRotation:r},i=yield vt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}getFPS(){return this._statusInfo.fps}getVersion(){var A;return En(this,void 0,void 0,(function*(){const e=null!==(A=window.g_XE3CopyRights)&&void 0!==A?A:{};if(!this.viewer)return e;const t=yield Mt(this.viewer);return e.esforue=t,e}))}getHeightByLonLat(A,e,t="ECC_Visibility"){return En(this,void 0,void 0,(function*(){if(!this.viewer)return null;const n=yield yt(this.viewer,A,e,t);return n&&void 0!==n.height?n.height:null}))}getHeightsByLonLats(A,e="ECC_Visibility"){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield St(this.viewer,A,e)}))}capture(A=64,e=64){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield bt(this.viewer,A,e)}))}lonLatAltToScreenPosition(A){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=yield It(this.viewer,A);return e&&[e.Y,e.Y]}))}setGlobalProperty(A){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield Ft(this.viewer,A)}))}startEditing(A,e,t=!0){return En(this,void 0,void 0,(function*(){const n=A.combinationClass?A.getMainClass():A;if(n&&this.viewer)return yield tn(this.viewer,n.id,e,t)}))}stopEditing(){return En(this,void 0,void 0,(function*(){if(this.viewer)return yield nn(this.viewer)}))}moveObjects(A){return En(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=[];for(let t=0;t<A.length;t++){const n=A[t],r=n.combinationClass?n.getMainClass():n;r&&e.push(r.id)}return 0!==e.length?yield rn(this.viewer,e):void 0}))}constructor(A){if(super(A),this._viewer=this.dv((0,c.react)(void 0)),this._speechRecognition=this.dv(new c.Event),this._propChanged=this.dv(new c.Event),this._objectEvent=this.dv(new c.Event),this._widgetEvent=this.dv(new c.Event),this._customMessage=this.dv(new c.Event),this._statusUpdateEvent=this.dv(new c.Event),this._statusUpdateEventdon=(()=>{this.d(this.statusUpdateEvent.don((A=>{var e,t,n,r;this._statusInfo.fps=null!==(e=A.FPS)&&void 0!==e?e:0,this._statusInfo.length=null!==(t=A.length)&&void 0!==t?t:0,this._statusInfo.position=null!==(n=A.position)&&void 0!==n?n:[0,0,0],this._statusInfo.rotation=null!==(r=A.rotation)&&void 0!==r?r:[0,0,0]})))})(),"ESUeViewer"!==A.type)throw new Error("option.type must be ESUeViewer");const e=A;this.d(this._viewer.changed.don((()=>{this.viewerChanged.emit(this.viewer)}))),this.dv(new c.ObjResettingWithEvent(this.subContainerChanged,(()=>{if(this.setStatus("Raw"),this.setStatusLog(""),this.subContainer)return new Qn(this.subContainer,e,this)})))}getProperties(){return[...super.getProperties()]}}Un=yn,yn.type=Un.register("ESUeViewer",Un),yn.defaults=Object.assign({},u),function(A){A.createDefaultProps=()=>Object.assign(Object.assign(Object.assign({},i.ESViewer.createDefaultProps()),d()),{resolutionScale:1,autoReconnect:!1,propChangedListening:void 0,objectEventListening:void 0,widgetEventListening:void 0,speechRecognitionListening:void 0,customMessageListening:void 0})}(yn||(yn={})),(0,c.extendClassProps)(yn.prototype,yn.createDefaultProps);class Sn extends i.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(t&&(A.combinationClass||this.d(this.createdEvent.don((()=>{const n=this.constructor.propValFuncs,r=A.defaultProps,s=Object.keys(r).filter((A=>null!==n[A]));s.push(...this.constructor.forceUeUpdateProps);const i=A.constructor.defaults,o={val:{}},a=[];for(let t of s){const r=A[t+"Changed"];a.push(r);const s=n[t];if(null===s)throw console.error("vf === null error"),new Error("vf === null error");const c=()=>{var n;const r=null!==(n=A[t])&&void 0!==n?n:i[t];let a=s?s(r,this,e,A):r;void 0!==a?o.val[t]=a:console.warn(`UE自动更新的属性,不应该为undefined! 属性名:${t} 对象名:${A.name} 对象id: ${A.id}`)};c(),this.d(r.don(c))}const l=()=>{t.callUeFunc({f:"update",p:Object.assign({id:A.id},o.val)}),o.val={}},d=this.dv((0,c.createNextAnimateFrameEvent)(...a));this.d(d.don(l)),this.d(A.createdEvent.don(l)),this.d(A.flushEvent.don((()=>d.flush())))}))),!A.combinationClass)){let e=!1;this.d((()=>{e&&qe(t,A.id)})),t.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}).then((()=>{e=!0,A.createdEvent.emit()})).catch((A=>console.error(A)))}}}Sn.propValFuncs={ref:null,devTags:null,extras:null,execOnceFuncStr:null,updateFuncStr:null,toDestroyFuncStr:null},Sn.forceUeUpdateProps=[];class bn extends Sn{constructor(A,e){super(A,e);const t=e.viewer;t&&(this.d(A.flyToEvent.don((e=>{Ze(t,A.id,e)}))),this.d(A.flyInEvent.don((e=>{var n,r;tt(t,A.id,null===(n=A.flyInParam)||void 0===n?void 0:n.position,null===(r=A.flyInParam)||void 0===r?void 0:r.rotation,null!=e?e:1)}))),this.d(A.calcFlyToParamEvent.don((()=>{At(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))),this.d(e.propChanged.don((e=>{e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}))))}}var In=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class Hn extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return;const n=()=>{A.editing||t.callUeFunc({f:"update",p:{id:A.id,position:A.position,rotation:A.rotation}})},r=this.dv((0,c.createNextAnimateFrameEvent)(A.positionChanged,A.rotationChanged,A.editingChanged));this.d(r.don((()=>{setTimeout(n,0)}))),this.d(A.smoothMoveEvent.don(((e,n)=>{wt(t,A.id,e,n)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,n,r)=>{ct(t,A.id,e,n,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,n,r,s)=>{lt(t,A.id,e,n,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,n,r,s,i)=>{dt(t,A.id,e,n,r,s,i)}))),this.d(A.smoothMoveKeepPitchEvent.don(((e,n)=>In(this,void 0,void 0,(function*(){const r=yield t.callUeFunc({f:"SmoothMoveKeepPitch",p:{id:A.id,Destination:e,Time:n}});r.error&&console.error("SmoothMoveKeepPitch:",r.error)}))))),this.d(A.automaticLandingEvent.don((t=>{const n=[A.position[0],A.position[1]];e.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((e=>{null!==e&&(A.position=[...n,e],A.collision=t)}))})));const s=(A,e,t,n)=>In(this,void 0,void 0,(function*(){const{viewer:r}=A;if(!r)return void console.error("SmoothMoveRelatively: ueViewer.viewer is undefined");const s=yield r.callUeFunc({f:"SmoothMoveRelatively",p:{id:e,RelativePosition:t,Time:n}});return s.error&&console.error("SmoothMoveRelatively:",s.error),s}));this.d(A.smoothMoveRelativelyEvent.don(((t,n)=>{s(e,A.id,t,n)})));const i=(A,e,t,n,r)=>In(this,void 0,void 0,(function*(){const{viewer:s}=A;if(!s)return void console.error("SmoothMoveRelativelyWithRotation: ueViewer.viewer is undefined");const i=yield s.callUeFunc({f:"SmoothMoveRelativelyWithRotation",p:{id:e,RelativePosition:t,NewRotation:n,Time:r}});return i.error&&console.error("SmoothMoveRelativelyWithRotation:",i.error),i}));this.d(A.smoothMoveRelativelyWithRotationEvent.don(((t,n,r)=>{i(e,A.id,t,n,r)})))}}Hn.forceUeUpdateProps=[...bn.forceUeUpdateProps,"editing"],Hn.propValFuncs=Object.assign({},bn.propValFuncs);class Tn extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return;const n=()=>{A.editing||t.callUeFunc({f:"update",p:{id:A.id,points:A.points}})},r=this.dv((0,c.createNextAnimateFrameEvent)(A.pointsChanged,A.editingChanged));this.d(r.don((()=>{setTimeout(n,0)})))}}Tn.forceUeUpdateProps=[...bn.forceUeUpdateProps,"editing"],Tn.propValFuncs=Object.assign(Object.assign({},bn.propValFuncs),{pointStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},strokeStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},fillStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})}});class Mn extends Hn{constructor(A,e){super(A,e),e.viewer&&this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,add:n}=e;A.widgetEvent.emit({type:t,add:n})})))}}class Ln extends Hn{constructor(A,e){super(A,e),e.viewer}}Ln.propValFuncs=Object.assign(Object.assign({},Hn.propValFuncs),{pointStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},strokeStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})},fillStyle:A=>{var e;return Object.assign(Object.assign({},A),{materialParams:JSON.stringify(null!==(e=A.materialParams)&&void 0!==e?e:{})})}});class xn extends Ln{constructor(A,e){super(A,e),e.viewer}}var Pn,Dn=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const Rn=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是3dTileset,无法绑定";default:return"未知错误"}};class kn extends i.EngineObject{constructor(A,e){super(A,e),this._styleColor=this.dv((0,c.react)([])),this._styleVisable=this.dv((0,c.react)([]));const t=e.viewer;if(!t)return void console.warn("UeES3DTileset: viewer is undefined!");let n,r;const s=()=>Dn(this,void 0,void 0,(function*(){var e,s;(n||r)&&(yield t.callUeFunc({f:"update",p:{id:A.id,url:A.url,show:A.show,collision:A.collision,allowPicking:A.allowPicking,flyToParam:null!==(e=A.flyToParam)&&void 0!==e?e:i.ESVisualObject.defaults.flyToParam,flyInParam:null!==(s=A.flyInParam)&&void 0!==s?s:i.ESVisualObject.defaults.flyInParam,highlightID:A.highlightID,highlightColor:A.highlightColor,highlight:A.highlight,materialMode:A.materialMode,maximumScreenSpaceError:A.maximumScreenSpaceError,colorMode:Reflect.has(A,"colorMode")?A.colorMode:void 0,offset:A.offset,editing:A.editing,rotation:A.rotation,cacheBytes:A.cacheBytes,colorBlendMode:A.colorBlendMode}}))})),o=this.dv((0,c.createNextAnimateFrameEvent)(A.urlChanged,A.showChanged,A.flyToParamChanged,A.flyInParamChanged,A.collisionChanged,A.allowPickingChanged,A.highlightIDChanged,A.highlightColorChanged,A.highlightChanged,A.materialModeChanged,A.maximumScreenSpaceErrorChanged,A.offsetChanged,A.editingChanged,A.rotationChanged,A.cacheBytesChanged,A.colorBlendModeChanged));s(),this.d(o.don(s)),Reflect.has(A,"colorMode")&&this.d(A.colorModeChanged.don((()=>s())));const a=this.dv((0,c.react)(void 0));{const e=this.dv((0,c.createNextAnimateFrameEvent)(A.actorTagChanged,A.urlChanged)),t=()=>{A.actorTag?a.value={type:"ActorTag",actorTag:A.actorTag}:A.url?a.value={type:"CreatedUrl",url:A.url}:a.value=void 0,A.editing=!1};t(),this.d(e.don(t))}const l=()=>Dn(this,void 0,void 0,(function*(){const{id:s}=A;if(void 0!==n){n=void 0;try{const A=yield e.unBind3DTilesetById(s);if(!A)return;if(""!==A.error)return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A.error}`)}catch(A){return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A}`)}}if(void 0!==r){r=void 0;try{const A=yield t.callUeFunc({f:"destroy",p:{id:s}});if(!A)return;if(""!==A.error)return void console.warn(`UeES3DTileset Destroy: ${A.error}`)}catch(A){return void console.warn(`UeES3DTileset Destroy: ${A}`)}}}));this.d((()=>{l()}));{const i=this.dv((0,c.createProcessingFromAsyncFunc)((i=>Dn(this,void 0,void 0,(function*(){if(void 0!==a.value){if("ActorTag"===a.value.type){const{actorTag:t}=a.value;if(n!==t&&(yield i.promise(l())),void 0!==n)return;if(void 0===t)return;try{n=t;const r=yield i.promise(e.bind3DTilesetByTag(A.id,t));if(!r)return;if(""!==r.error)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${r.error}`);if(0===r.re.type);else{if(1!==r.re.type)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Rn(r.re.type)}`);console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Rn(r.re.type)}`)}}catch(A){return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${A}`)}}else if("CreatedUrl"===a.value.type){const{url:e}=a.value;if(e!==r&&(yield l()),void 0!==r)return;if(void 0===e)return;try{r=e;const n=yield i.promise(t.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}));if(!n)return;if(""!==n.error)return void console.warn(`UeES3DTileset create: ${n.error}`)}catch(A){return void console.warn(`UeES3DTileset create: ${A}`)}}yield i.promise(s())}else yield i.promise(l())}))))),o=()=>Dn(this,void 0,void 0,(function*(){i.restart()}));o(),this.d(a.changed.don(o))}this.d(A.refreshTilesetEvent.don((()=>{et(t,A.id)}))),this.d(A.flyToEvent.don(((s,i)=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;const o=yield Ze(t,A.id,s);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),A.flyOverEvent.emit(i,a,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{(n||r)&&At(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:s,rotation:i}=t;A.flyInParam={position:s,rotation:i,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{(n||r)&&e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))}))),this.d(e.objectEvent.don((e=>{(n||r)&&e.id===A.id&&"3DTilesetReady"===e.type&&A.tilesetReady.emit(e.p)})));{const e=(e,s)=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;const i=yield t.callUeFunc({f:"SetFeatureColor",p:{id:A.id,featureName:e,json:s}});i&&(""===i.error||console.warn(`UeES3DTileset SetFeatureColor: ${i.error}`))})),s=(e,s)=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;const i=yield t.callUeFunc({f:"SetFeatureVisable",p:{id:A.id,featureName:e,json:s}});i&&(""===i.error||console.warn(`UeES3DTileset SetFeatureVisable: ${i.error}`))})),i=()=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;const e=yield t.callUeFunc({f:"ResetFeatureStyle",p:{id:A.id}});e&&(""===e.error||console.warn(`UeES3DTileset ResetFeatureStyle: ${e.error}`))})),o=e=>Dn(this,void 0,void 0,(function*(){if(!n&&!r)return;const s=yield t.callUeFunc({f:"SetFeatureStyle",p:{id:A.id,json:e}});s&&(""===s.error||console.warn(`UeES3DTileset SetFeatureStyle: ${s.error}`))}));this.d(A.setFeatureColorEvent.don(((A,t)=>{const n=[...this.styleColor,...t];this.styleColor=[...n],e(A,n)}))),this.d(A.setFeatureVisableEvent.don(((A,e)=>{const t=[...this.styleVisable,...e];this.styleVisable=[...t],s(A,t)}))),this.d(A.resetFeatureStyleEvent.don((()=>{i(),this.styleColor=[],this.styleVisable=[]}))),this.d(A.setFeatureStyleEvent.don((A=>{o(A)})))}{const e=()=>Dn(this,void 0,void 0,(function*(){if(n||r)try{const e=yield t.callUeFunc({f:"GetFeatureTable",p:{id:A.id}});""!==e.error&&console.warn(`UeES3DTileset GetFeatureTable: ${e.error}`),A._featureTableResultEvent.emit(e.re.table)}catch(e){console.warn(`UeES3DTileset GetFeatureTable: ${e}`),A._featureTableResultEvent.emit(void 0)}else A._featureTableResultEvent.emit(void 0)}));this.d(A.getFeatureTableEvent.don((()=>{e()})))}}get styleColor(){return this._styleColor.value}set styleColor(A){this._styleColor.value=A}get styleVisable(){return this._styleVisable.value}set styleVisable(A){this._styleVisable.value=A}}Pn=kn,kn.type=Pn.register("ESUeViewer",i.ES3DTileset.type,Pn);var Kn,On=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};const Vn=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag对应的Actor是地形,无法绑定";case 4:return"没搜索到ComponentTag,无法绑定";default:return"未知错误"}};class Gn extends i.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");let n,r;const s=this.dv((0,c.react)(void 0)),o=this.ad((0,c.reactJson)(""));{const e=()=>{if("string"==typeof A.url)o.value=i.ESSceneObject.context.getStrFromEnv(A.url);else{const e=A.url;e.url=i.ESSceneObject.context.getStrFromEnv(e.url),o.value=e}};e(),this.ad(A.urlChanged.don(e))}const a=()=>On(this,void 0,void 0,(function*(){var e,s,a,c,l,d,u,h,g,B,w,p,C;(n||r)&&(yield t.callUeFunc({f:"update",p:{id:A.id,show:null===(e=A.show)||void 0===e||e,rectangle:null!==(s=A.rectangle)&&void 0!==s?s:[-180,-90,180,90],collision:null===(a=A.collision)||void 0===a||a,allowPicking:null!==(c=A.allowPicking)&&void 0!==c&&c,flyToParam:null!==(l=A.flyToParam)&&void 0!==l?l:i.ESVisualObject.defaults.flyToParam,flyInParam:null!==(d=A.flyInParam)&&void 0!==d?d:i.ESVisualObject.defaults.flyInParam,url:null!==(u=o.value)&&void 0!==u?u:"",zIndex:null!==(h=A.zIndex)&&void 0!==h?h:0,maximumLevel:null!==(g=A.maximumLevel)&&void 0!==g?g:i.ESImageryLayer.defaults.maximumLevel,minimumLevel:null!==(B=A.minimumLevel)&&void 0!==B?B:i.ESImageryLayer.defaults.minimumLevel,options:null!==(w=A.options)&&void 0!==w?w:i.ESImageryLayer.defaults.options,targetID:null!==(p=A.targetID)&&void 0!==p?p:i.ESImageryLayer.defaults.targetID,opacity:null!==(C=A.opacity)&&void 0!==C?C:i.ESImageryLayer.defaults.opacity}}))})),l=this.dv((0,c.createNextAnimateFrameEvent)(A.showChanged,o.changed,A.flyToParamChanged,A.flyInParamChanged,A.zIndexChanged,A.collisionChanged,A.allowPickingChanged,A.maximumLevelChanged,A.minimumLevelChanged,A.rectangleChanged,A.optionsChanged,A.targetIDChanged,A.opacityChanged));this.d(l.don(a));const d=()=>On(this,void 0,void 0,(function*(){const{id:s}=A;if(void 0!==n){n=void 0;try{const A=yield e.unBindImageryById(s);if(!A)return;if(""!==A.error)return void console.warn(`UeESImageryLayer UnImageryByID: ${A.error}`)}catch(A){return void console.warn(`UeESImageryLayer UnImageryByID promise: ${A}`)}}if(void 0!==r){r=void 0;try{const A=yield t.callUeFunc({f:"destroy",p:{id:s,test:"UeESImageryLayer"}});if(!A)return;if(""!==A.error)return void console.warn(`UeESImageryLayer Destroy: ${A.error}`)}catch(A){return void console.warn(`UeESImageryLayer Destroy promise: ${A}`)}}}));this.d((()=>{d()}));{const i=this.dv((0,c.createProcessingFromAsyncFunc)((i=>On(this,void 0,void 0,(function*(){if(void 0!==s.value){if("ActorTag"===s.value.type){const{actorTag:t,componentTag:r}=s.value;if(n!==t&&(yield i.promise(d())),void 0!==n)return;if(void 0===t)return;try{n=t;const s=yield i.promise(e.bindImageryByTag(A.id,t,r));if(!s)return;if(""!==s.error)return void console.warn(`ESImageryLayer BindImageryByTag: ${s.error}`);if(0===s.re.type);else{if(1!==s.re.type)return void console.warn(`ESImageryLayer BindImageryByTag: ${Vn(s.re.type)}`);console.warn(`ESImageryLayer BindImageryByTag: ${Vn(s.re.type)}`)}}catch(A){return void console.warn(`ESImageryLayer BindImageryByTag promise: ${A}`)}}else if("CreatedUrl"===s.value.type){const{url:e}=s.value;if(e!==r&&(yield i.promise(d())),void 0!==r)return;if(void 0===e)return;try{r=e;const n=yield i.promise(t.callUeFunc({f:"create",p:{type:"ESImageryLayer",id:A.id}}));if(!n)return;if(""!==n.error)return void console.warn(`ESImageryLayer create: ${n.error}`)}catch(A){return void console.warn("ESImageryLayer create: create promise error")}}yield i.promise(a())}else yield i.promise(d())}))))),o=()=>On(this,void 0,void 0,(function*(){i.restart()}));o(),this.d(s.changed.don(o))}{const e=this.dv((0,c.createNextAnimateFrameEvent)(A.actorTagChanged,o.changed,A.componentTagChanged)),t=()=>{A.actorTag&&A.componentTag?s.value={type:"ActorTag",actorTag:A.actorTag,componentTag:A.componentTag}:o.value?s.value={type:"CreatedUrl",url:o.value}:s.value=void 0};t(),this.d(e.don(t))}this.d(A.flyToEvent.don(((s,i)=>On(this,void 0,void 0,(function*(){if(!n&&!r)return;const o=yield Ze(t,A.id,s);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),A.flyOverEvent.emit(i,a,e)}))))),this.d(A.flyInEvent.don(((s,i)=>On(this,void 0,void 0,(function*(){var o,a;if(!n&&!r)return;const c=yield tt(t,A.id,null===(o=A.flyInParam)||void 0===o?void 0:o.position,null===(a=A.flyInParam)||void 0===a?void 0:a.rotation,null!=s?s:1);let l="over";void 0===c?l="error":0===c.endType?l="over":1===c.endType&&(l="cancelled"),A.flyOverEvent.emit(i,l,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{(n||r)&&At(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>On(this,void 0,void 0,(function*(){if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{(n||r)&&e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))})))}}var _n,Nn,Wn,Jn,Xn,zn,Yn,jn,$n,Zn,qn,Ar,er,tr,nr,rr,sr,ir,or,ar,cr,lr;Kn=Gn,Gn.type=Kn.register("ESUeViewer",i.ESImageryLayer.type,Kn);class dr extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}_n=dr,dr.type=_n.register("ESUeViewer",i.ESTerrainLayer.type,_n),dr.forceUeUpdateProps=[...bn.forceUeUpdateProps,"url"],dr.propValFuncs=Object.assign(Object.assign({},bn.propValFuncs),{url:A=>"string"==typeof A?i.ESSceneObject.context.getStrFromEnv(A):(A.url=i.ESSceneObject.context.getStrFromEnv(A.url),A),czmMaxzoom:null,czmMinzoom:null});class ur extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Nn=ur,ur.type=Nn.register("ESUeViewer",i.ESAlarm.type,Nn);class hr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wn=hr,hr.type=Wn.register("ESUeViewer",i.ESApertureEffect.type,Wn);class gr extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Jn=gr,gr.type=Jn.register("ESUeViewer",i.ESGeoPolygon.type,Jn);class Br extends gr{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n,r;let s=i.ESAreaMeasurement.defaults.fillStyle;try{s=Object.assign({},null!==(e=A.fillStyle)&&void 0!==e?e:i.ESAreaMeasurement.defaults.fillStyle)}catch(A){console.error("ESAreaMeasurement fillStyle 属性类型错误!",A),s=Object.assign({},i.ESAreaMeasurement.defaults.fillStyle)}s.materialParams=JSON.stringify(s.materialParams),t.callUeFunc({f:"update",p:{id:A.id,stroked:null!==(n=A.stroked)&&void 0!==n?n:i.ESAreaMeasurement.defaults.stroked,fillStyle:s,filled:null!==(r=A.filled)&&void 0!==r?r:i.ESAreaMeasurement.defaults.filled}}),console.log(s)},r=this.dv((0,c.createNextAnimateFrameEvent)(A.fillStyleChanged,A.strokedChanged,A.filledChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}Xn=Br,Br.type=Xn.register("ESUeViewer",i.ESAreaMeasurement.type,Xn);class wr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zn=wr,wr.type=zn.register("ESUeViewer",i.ESBlastParticleSystem.type,zn);class pr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Yn=pr,pr.type=Yn.register("ESUeViewer",i.ESBoxClipping.type,Yn);class Cr extends Hn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.dispose(A.flyInEvent.don((e=>{tt(t,A.id,A.position,A.rotation,e)}))),this.dispose(A.resetWithCurrentCameraEvent.don((()=>{at(t,A.id)}))),this.dispose(A.captureEvent.don(((t,n)=>{e.capture(t,n).then((e=>{e&&(A.thumbnail=e)}))})))):console.warn("viewer is undefined!")}}jn=Cr,Cr.type=jn.register("ESUeViewer",i.ESCameraView.type,jn);class mr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}$n=mr,mr.type=$n.register("ESUeViewer",i.ESCameraVisibleRange.type,$n);class fr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zn=fr,fr.type=Zn.register("ESUeViewer",i.ESCar.type,Zn);class vr extends Tn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n;let r=i.ESClassification.defaults.fillStyle;try{r=Object.assign({},null!==(e=A.fillStyle)&&void 0!==e?e:i.ESClassification.defaults.fillStyle)}catch(A){console.error("ESClassification fillStyle 属性类型错误!",A),r=Object.assign({},i.ESClassification.defaults.fillStyle)}r.materialParams=JSON.stringify(r.materialParams),t.callUeFunc({f:"update",p:{id:A.id,filled:null!==(n=A.filled)&&void 0!==n?n:i.ESClassification.defaults.filled,fillStyle:r}})},r=this.dv((0,c.createNextAnimateFrameEvent)(A.fillStyleChanged,A.filledChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}qn=vr,vr.type=qn.register("ESUeViewer",i.ESClassification.type,qn);class Fr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Ar=Fr,Fr.type=Ar.register("ESUeViewer",i.ESClippingPlane.type,Ar);class Qr extends Hn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=this.ad((0,c.reactJson)(""));{const e=()=>{var e,t;if("string"==typeof A.url)n.value=i.ESSceneObject.context.getStrFromEnv(null!==(e=A.url)&&void 0!==e?e:i.ESDataMesh.defaults.url);else{const e=A.url;e.url=i.ESSceneObject.context.getStrFromEnv(null!==(t=e.url)&&void 0!==t?t:i.ESDataMesh.defaults.url),n.value=e}};e(),this.ad(A.urlChanged.don(e))}const r=()=>{var e,r,s,o,a;const c=null!==(e=A.colorStops)&&void 0!==e?e:i.ESDataMesh.defaults.colorStops;t.callUeFunc({f:"update",p:{id:A.id,url:null!==(r=n.value)&&void 0!==r?r:i.ESDataMesh.defaults.url,currentTime:null!==(s=A.currentTime)&&void 0!==s?s:i.ESDataMesh.defaults.currentTime,minPropValue:null!==(o=A.minPropValue)&&void 0!==o?o:i.ESDataMesh.defaults.minPropValue,maxPropValue:null!==(a=A.maxPropValue)&&void 0!==a?a:i.ESDataMesh.defaults.maxPropValue,colorStops:JSON.stringify(c)}})},s=this.dv((0,c.createNextAnimateFrameEvent)(n.changed,A.currentTimeChanged,A.minPropValueChanged,A.maxPropValueChanged,A.colorStopsChanged));this.d(s.don(r)),this.d(A.createdEvent.don(r))}}er=Qr,Qr.type=er.register("ESUeViewer",i.ESDataMesh.type,er);class Ur extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}tr=Ur,Ur.type=tr.register("ESUeViewer",i.ESDatasmithRuntimeModel.type,tr);class Er extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}nr=Er,Er.type=nr.register("ESUeViewer",i.ESDirectionMeasurement.type,nr);class yr extends Tn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e;let n;try{n=Object.assign({},null!==(e=A.strokeStyle)&&void 0!==e?e:i.ESDistanceMeasurement.defaults.strokeStyle)}catch(A){console.error("ESDistanceMeasurement strokeStyle 属性类型错误!",A),n=Object.assign({},i.ESDistanceMeasurement.defaults.strokeStyle)}t.callUeFunc({f:"update",p:{id:A.id,strokeStyle:n}})},r=this.dv((0,c.createNextAnimateFrameEvent)(A.strokeStyleChanged));this.d(r.don(n)),this.d(A.createdEvent.don(n))}}rr=yr,yr.type=rr.register("ESUeViewer",i.ESDistanceMeasurement.type,rr);class Sr extends xn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}sr=Sr,Sr.type=sr.register("ESUeViewer",i.ESLocalPolygon.type,sr);class br extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ir=br,br.type=ir.register("ESUeViewer",i.ESDynamicWater.type,ir);class Ir extends bn{constructor(A,e){super(A,e),e.viewer?this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,properties:n}=e;A.widgetEvent.emit({type:t,properties:n})}))):console.warn("viewer is undefined!")}}or=Ir,Ir.type=or.register("ESUeViewer",i.ESEntityCluster.type,or);class Hr extends gr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ar=Hr,Hr.type=ar.register("ESUeViewer",i.ESExcavate.type,ar);class Tr extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}cr=Tr,Tr.type=cr.register("ESUeViewer",i.ESFireParticleSystem.type,cr);class Mr extends bn{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=this.ad((0,c.reactJson)(""));{const e=()=>{if("string"==typeof A.url)n.value=i.ESSceneObject.context.getStrFromEnv(A.url);else{const e=A.url;e.url=i.ESSceneObject.context.getStrFromEnv(e.url),n.value=e}};e(),this.ad(A.urlChanged.don(e))}const r=()=>{var e,r,s,o,a,c,l,d;t.callUeFunc({f:"update",p:{id:A.id,url:null!==(e=n.value)&&void 0!==e?e:i.ESForestTileset.defaults.url,treeTypes:null!==(r=A.treeTypes)&&void 0!==r?r:i.ESForestTileset.defaults.treeTypes,xiaoBanWidget:null!==(s=A.xiaoBanWidget)&&void 0!==s?s:i.ESForestTileset.defaults.xiaoBanWidgetDefault,youShiSZ:null!==(o=A.youShiSZ)&&void 0!==o?o:i.ESForestTileset.defaults.youShiSZ,diLei:null!==(a=A.diLei)&&void 0!==a?a:i.ESForestTileset.defaults.diLei,senLinLB:null!==(c=A.senLinLB)&&void 0!==c?c:i.ESForestTileset.defaults.senLinLB,labelMaterial:null!==(l=A.labelMaterial)&&void 0!==l?l:i.ESForestTileset.defaults.labelMaterial,heightOffset:null!==(d=A.heightOffset)&&void 0!==d?d:i.ESForestTileset.defaults.heightOffset}})},s=this.dv((0,c.createNextAnimateFrameEvent)(n.changed,A.treeTypesChanged,A.xiaoBanWidgetChanged,A.youShiSZChanged,A.diLeiChanged,A.senLinLBChanged,A.labelMaterialChanged,A.heightOffsetChanged));this.d(s.don(r)),this.d(A.createdEvent.don(r))}}lr=Mr,Mr.type=lr.register("ESUeViewer",i.ESForestTileset.type,lr);var Lr,xr,Pr,Dr,Rr,kr,Kr,Or=r(440),Vr=r.n(Or);class Gr extends i.EngineObject{constructor(A,e){super(A,e),this._imageLabel=this.dv(new i.ESImageLabel(`${this.id}_ESImageLabel`)),this._hasClassDivAndPos={};const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");A.mainClass=this._imageLabel;const n=this._imageLabel;e.add(n),this.d((()=>e.delete(n)));{const r=()=>{var r;if(!t)return;if(!A.instanceClass)throw new Error("!sceneObject.instanceClass");const s=document.createElement("div"),o=this.dv(new A.instanceClass(s,A,e))._container;if(o.style.opacity=null!==(r=A.opacity.toString())&&void 0!==r?r:i.ESGeoDiv.defaults.opacity,o.style.position="fixed",o.style.zIndex="-1",o.style.top="0px",!document.body.contains(o)){document.body.appendChild(o);let A=o?o.querySelectorAll("*[class]"):[];for(let e=0;e<A.length;e++){const t=A[e];var a=t.getBoundingClientRect();this._hasClassDivAndPos[t.className]=[t.offsetLeft,t.offsetTop,t.offsetLeft+a.width,t.offsetTop+a.height]}}Vr()(o,{backgroundColor:null,allowTaint:!0,useCORS:!0,width:o.offsetWidth,height:o.offsetHeight,scale:1}).then((e=>{document.body.contains(o)&&document.body.removeChild(o),n.url=e.toDataURL(),n.show=A.show})).catch((()=>{document.body.contains(o)&&document.body.removeChild(o)}))},s=()=>{try{A.instanceClass?r():(n.url="",n.show=!1)}catch(A){console.error(A)}};s();const o=this.dv((0,c.createNextAnimateFrameEvent)(A.instanceClassChanged,A.opacityChanged));this.d(o.don(s))}{const e=()=>{n.show=A.show};n.show=!1,this.ad(A.showChanged.don(e))}this.d((0,c.track)([n,"anchor"],[A,"anchor"])),this.d((0,c.bind)([n,"editing"],[A,"editing"])),this.d((0,c.bind)([n,"position"],[A,"position"])),this.d((0,c.bind)([n,"rotation"],[A,"rotation"])),this.d((0,c.bind)([n,"flyToParam"],[A,"flyToParam"])),this.d((0,c.bind)([n,"flyInParam"],[A,"flyInParam"])),this.d((0,c.bind)([n,"allowPicking"],[A,"allowPicking"])),this.d((0,c.bind)([n,"scale"],[A,"scale"])),this.d((0,c.track)([n,"minVisibleDistance"],[A,"minVisibleDistance"])),this.d((0,c.track)([n,"maxVisibleDistance"],[A,"maxVisibleDistance"])),this.ad(A.automaticLandingEvent.don((()=>{n.automaticLanding()}))),this.d(n.pickedEvent.don((e=>{var t;null!==(t=A.allowPicking)&&void 0!==t&&t&&A.pickedEvent.emit(e)}))),this.d(e.widgetEvent.don((e=>{if(e.objId!==this._imageLabel.id)return;const{type:t,add:n}=e;if("leftClick"===t){const A=Object.keys(this._hasClassDivAndPos);for(let e=0;e<A.length;e++){const t=A[e];let r=this._hasClassDivAndPos[t];if(n&&n.mouseRelativePos&&n.mouseRelativePos[0]>=r[0]&&n.mouseRelativePos[0]<=r[2]&&n.mouseRelativePos[1]>=r[1]&&n.mouseRelativePos[1]<=r[3]){n.className=t;break}}}A.widgetEvent.emit({type:t,add:n})}))),this.d(A.calcFlyToParamEvent.don((()=>{At(t,n.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))),this.d(A.smoothMoveEvent.don(((A,e)=>{wt(t,n.id,A,e)}))),this.d(A.smoothMoveWithRotationEvent.don(((A,e,r)=>{ct(t,n.id,A,e,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((A,e,r,s)=>{lt(t,n.id,A,e,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((A,e,r,s,i)=>{dt(t,n.id,A,e,r,s,i)}))),this.d(A.flyToEvent.don(((A,e)=>{n.flyTo(A)}))),this.d(A.flyInEvent.don((A=>{n.flyIn(A)})))}}Lr=Gr,Gr.type=Lr.register("ESUeViewer",i.ESGeoDiv.type,Lr);class _r extends bn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.flyToFeatureIndexEvent.don(((e,n)=>{t.callUeFunc({f:"flyToFeatureIndex",p:{id:A.id,index:e,duration:n}})}))),this.d(A.flyToFeatureEvent.don(((e,n,r)=>{t.callUeFunc({f:"flyToFeature",p:{id:A.id,key:e,value:n,duration:r}})})))):console.warn("viewer is undefined!")}}xr=_r,_r.type=xr.register("ESUeViewer",i.ESGeoJson.type,xr);class Nr extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Pr=Nr,Nr.type=Pr.register("ESUeViewer",i.ESGeoLineString.type,Pr);class Wr extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Dr=Wr,Wr.type=Dr.register("ESUeViewer",i.ESGeoRectangle.type,Dr);class Jr extends gr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Rr=Jr,Jr.type=Rr.register("ESUeViewer",i.ESGeoWater.type,Rr);class Xr extends Hn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.setNodePositionEvent.don(((e,n)=>{Ct(t,A.id,e,n)}))),this.d(A.setNodeRotationEvent.don(((e,n)=>{mt(t,A.id,e,n)}))),this.d(A.setNodeScaleEvent.don(((e,n)=>{ft(t,A.id,e,n)})))):console.warn("viewer is undefined!")}}kr=Xr,Xr.forceUeUpdateProps=[...Hn.forceUeUpdateProps,"url"],Xr.propValFuncs=Object.assign(Object.assign({},Hn.propValFuncs),{url:A=>"string"==typeof A?i.ESSceneObject.context.getStrFromEnv((0,i.rpToap)(A)):(A.url=i.ESSceneObject.context.getStrFromEnv((0,i.rpToap)(A.url)),A),czmMaximumScale:null,czmMinimumPixelSize:null,czmNativeScale:null,czmColor:null}),Xr.type=kr.register("ESUeViewer",i.ESGltfModel.type,kr);class zr extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Kr=zr,zr.type=Kr.register("ESUeViewer",i.ESHeightMeasurement.type,Kr);var Yr,jr,$r,Zr,qr,As,es,ts,ns,rs,ss,is,os=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class as extends Hn{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=(A,e,t,n)=>os(this,void 0,void 0,(function*(){const{viewer:r}=A;if(!r)return void console.error("AIMoveTo: ueViewer.viewer is undefined");const s=yield r.callUeFunc({f:"AIMoveTo",p:{id:e,Destination:t,Time:n}});return s.error&&console.error("AIMoveTo:",s.error),s}));this.d(A.aiMoveToEvent.don(((n,r)=>{t(e,A.id,n,r)})));const n=(A,e)=>os(this,void 0,void 0,(function*(){const{viewer:t}=A;if(!t)return void console.error("StopAIMove: ueViewer.viewer is undefined");const n=yield t.callUeFunc({f:"StopAIMove",p:{id:e}});return n.error&&console.error("StopAIMove:",n.error),n}));this.d(A.stopAIMoveEvent.don((()=>{n(e,A.id)})))}}Yr=as,as.type=Yr.register("ESUeViewer",i.ESHuman.type,Yr);class cs extends Mn{constructor(A,e){super(A,e),e.viewer?A.anchor=[.5,1]:console.warn("viewer is undefined!")}}jr=cs,cs.type=jr.register("ESUeViewer",i.ESImageLabel.type,jr),cs.forceUeUpdateProps=[...Mn.forceUeUpdateProps,"url"],cs.propValFuncs=Object.assign(Object.assign({},Mn.propValFuncs),{url:A=>"string"==typeof A?i.ESSceneObject.context.getStrFromEnv((0,i.rpToap)(A)):(A.url=i.ESSceneObject.context.getStrFromEnv((0,i.rpToap)(A.url)),A)});class ls extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}$r=ls,ls.type=$r.register("ESUeViewer",i.ESLevelRuntimeModel.type,$r);class ds extends xn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zr=ds,ds.type=Zr.register("ESUeViewer",i.ESLocalCircle.type,Zr);class us extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}qr=us,us.type=qr.register("ESUeViewer",i.ESLocalPolygonZ.type,qr);class hs extends xn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}As=hs,hs.type=As.register("ESUeViewer",i.ESLocalRectangle.type,As);class gs extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}es=gs,gs.type=es.register("ESUeViewer",i.ESLocalSkyBox.type,es);class Bs extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ts=Bs,Bs.type=ts.register("ESUeViewer",i.ESLocationMeasurement.type,ts);class ws extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ns=ws,ws.type=ns.register("ESUeViewer",i.ESPipeFence.type,ns);class ps extends Nr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}rs=ps,ps.type=rs.register("ESUeViewer",i.ESPipeline.type,rs);class Cs extends kn{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.highlightFeatureEvent.don((e=>{const n="number"==typeof e?e.toString():e;ut(t,A.id,n)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((e,n,r,s)=>{const i="number"==typeof e?e.toString():e;ht(t,A.id,i,null!=s?s:1)}))),this.d(A.setLayerVisibleEvent.don(((e,n)=>{let r="";r="string"!=typeof n?JSON.stringify(n):n,gt(t,A.id,r)}))),this.d(A.setLayerColorEvent.don(((e,n)=>{let r="";r="string"!=typeof n?JSON.stringify(n):n,Bt(t,A.id,r)})))):console.warn("viewer is undefined!")}}ss=Cs,Cs.type=ss.register("ESUeViewer",i.ESPipeserTileset.type,ss);class ms extends gr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}is=ms,ms.type=is.register("ESUeViewer",i.ESPit.type,is);var fs,vs,Fs,Qs,Us,Es,ys,Ss,bs,Is,Hs,Ts,Ms;class Ls extends Mn{constructor(A,e){super(A,e);const t=e.viewer;t?this.ad(A.getInitialStyleEvent.don((()=>function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){try{const e=yield t.callUeFunc({f:"GetInitialStyle",p:{id:A.id}});""!=e.error&&console.error("getInitialStyleEvent:",e.error),A.initialStyle.value=structuredClone(e.re)}catch(e){console.error("getInitialStyleEvent:",e),A.initialStyle.value=void 0}}))))):console.warn("viewer is undefined!")}}fs=Ls,Ls.type=fs.register("ESUeViewer",i.ESPoi2D.type,fs);class xs extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}vs=xs,xs.type=vs.register("ESUeViewer",i.ESPoi3D.type,vs);class Ps extends bn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Fs=Ps,Ps.type=Fs.register("ESUeViewer",i.ESPoiTileset.type,Fs),Ps.forceUeUpdateProps=[...bn.forceUeUpdateProps,"url"],Ps.propValFuncs=Object.assign(Object.assign({},bn.propValFuncs),{url:A=>"string"==typeof A?i.ESSceneObject.context.getStrFromEnv(A):(A.url=i.ESSceneObject.context.getStrFromEnv(A.url),A)});class Ds extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Qs=Ds,Ds.type=Qs.register("ESUeViewer",i.ESPolygonFence.type,Qs);class Rs extends gr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Us=Rs,Rs.type=Us.register("ESUeViewer",i.ESPolygonFlattenedPlane.type,Us);class ks extends gr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Es=ks,ks.type=Es.register("ESUeViewer",i.ESPolygonWithHole.type,Es);class Ks extends Sn{constructor(A,e){if(super(A,e),e.viewer){this.d(A.highlightInner3DtilesetEvent.don((A=>{A.highlight=!0}))),this.d(A.removeHighlightInner3DtilesetEvent.don((A=>{A.highlight=!1})));{const e=A=>{let e=[255,255,255,1];if((A=A.toLocaleLowerCase()).startsWith("#"))4===A.length?e=[parseInt(A[1]+A[1],16),parseInt(A[2]+A[2],16),parseInt(A[3]+A[3],16),1]:7===A.length&&(e=[parseInt(A.substring(1,3),16),parseInt(A.substring(3,5),16),parseInt(A.substring(5,7),16),1]);else if(A.startsWith("rgba")){let t=A.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/);t&&(e=[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])])}else if(A.startsWith("rgb")){let t=A.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);t&&(e=[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),1])}else console.error("color类型只能为#rrggbb、#rgb、rgba(r,g,b,a)、rgb(r,g,b)");return[e[0]/255,e[1]/255,e[2]/255,e[3]]},t=()=>{const t=A.layerConfig;if(!t)return;const n=[];t.forEach((A=>{var t;n.push({condition:[{field:"layer",op:"==",value:A.layer},{field:"dataset",op:"==",value:A.dataset}],color:e(null!==(t=A.value.color)&&void 0!==t?t:"rgb(255,255,255)"),show:A.value.visible})})),A.setFeatureStyle(n)};t();const n=this.dv((0,c.createNextAnimateFrameEvent)(A.layerConfigChanged));this.d(n.don((()=>{t()})))}}else console.warn("viewer is undefined!")}}ys=Ks,Ks.type=ys.register("ESUeViewer",i.ESRtsTileset.type,ys);class Os extends bn{constructor(A,e){super(A,e),e.viewer?(this.d(A.addTreesEvent.don((t=>{(0,i.addTreesCallFunc)(e,A.id,t)}))),this.d(A.removeAllTreesEvent.don((()=>{(0,i.removeAllTreesCallFunc)(e,A.id)}))),this.d(A.updateTreeParamsEvent.don((t=>{(0,i.updateTreeParamsCallFunc)(e,A.id,t)}))),this.d(A.cutDownTreesEvent.don(((t,n)=>{(0,i.cutDownTreesCallFunc)(e,A.id,t,n)}))),this.d(A.growthSimulationEvent.don(((t,n,r)=>{(0,i.growthSimulationCallFunc)(e,A.id,t,n,r)})))):console.warn("viewer is undefined!")}}Ss=Os,Os.type=Ss.register("ESUeViewer",i.ESSeparateFoliage.type,Ss);class Vs extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}bs=Vs,Vs.type=bs.register("ESUeViewer",i.ESSubmergingAnalysis.type,bs);class Gs extends gr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))),this.d(A.stopEvent.don((()=>{t.callUeFunc({f:"Stop",p:{id:A.id}})})))):console.warn("viewer is undefined!")}}Is=Gs,Gs.type=Is.register("ESUeViewer",i.ESSunshineAnalysis.type,Is);class _s extends gr{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))):console.warn("viewer is undefined!")}}Hs=_s,_s.type=Hs.register("ESUeViewer",i.ESSurfaceAreaMeasurement.type,Hs);class Ns extends Mn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ts=Ns,Ns.type=Ts.register("ESUeViewer",i.ESTextLabel.type,Ts);class Ws extends Mn{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.callFunctionEvent.don(((e,n)=>{pt(t,A.id,e,n)}))):console.warn("viewer is undefined!")}}Ms=Ws,Ws.type=Ms.register("ESUeViewer",i.ESUEWidget.type,Ms),Ws.propValFuncs=Object.assign(Object.assign({},Mn.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});const Js=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"未搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是场景原有的,而是新建的,无法绑定";case 4:return"搜索到ActorTag对应的Actor是地形或3DTileset,无法绑定";default:return"未知错误"}};var Xs,zs,Ys,js,$s,Zs,qs,Ai=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class ei extends i.EngineObject{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn(`${A.id} UeESUnrealActor viewer is undefined!`);this.d((()=>{qe(t,A.id)}));const n=()=>Ai(this,void 0,void 0,(function*(){var e,n;l()||(yield t.callUeFunc({f:"update",p:{id:A.id,name:A.name,show:A.show,rotation:A.rotation,flyToParam:null!==(e=A.flyToParam)&&void 0!==e?e:i.ESVisualObject.defaults.flyToParam,flyInParam:null!==(n=A.flyInParam)&&void 0!==n?n:i.ESVisualObject.defaults.flyInParam,editing:A.editing,highlight:A.highlight,collision:A.collision,scale:A.scale,minVisibleDistance:A.minVisibleDistance,maxVisibleDistance:A.maxVisibleDistance}}))})),r=this.dv((0,c.createNextAnimateFrameEvent)(A.showChanged,A.nameChanged,A.rotationChanged,A.editingChanged,A.flyToParamChanged,A.flyInParamChanged,A.highlightChanged,A.collisionChanged,A.scaleChanged,A.minVisibleDistanceChanged,A.maxVisibleDistanceChanged));let s,o;this.d(r.don(n)),this.d(A.flushEvent.don((()=>r.flush())));const a=()=>Ai(this,void 0,void 0,(function*(){var n;l()||(yield t.callUeFunc({f:"update",p:{id:A.id,position:A.position}}),null!==(n=e.debug)&&void 0!==n&&n&&console.log(`updatePostion:${A.position},actorTag:${A.actorTag},actorClass:${A.actorClass}`))})),l=()=>!s&&!o&&(console.warn(`${A.id} 未绑定ActorTag或未创建ActorClass!`),!0),d=()=>Ai(this,void 0,void 0,(function*(){const{id:n}=A,r=yield e.unBindActorByID(n);r&&""!==r.error&&console.warn(`${A.id} UeESUnrealActor UnBindActorByID: ${r.error}`),s=void 0;const i=yield t.callUeFunc({f:"destroy",p:{id:n}});i&&""!==i.error?console.warn(`${A.id} UeESUnrealActor DestroyActorByID: ${i.error}`):o=void 0})),u=this.dv((0,c.react)({type:"ActorClass",actorClass:"default"}));{const e=this.dv((0,c.createNextAnimateFrameEvent)(A.actorClassChanged,A.actorTagChanged)),t=()=>Ai(this,void 0,void 0,(function*(){""!==A.actorTag?u.value={type:"ActorTag",actorTag:A.actorTag}:u.value={type:"ActorClass",actorClass:""===A.actorClass?"default":A.actorClass}}));t(),this.d(e.don(t)),this.d(A.flushEvent.don((()=>e.flush())))}{const t=this.dv((0,c.createProcessingFromAsyncFunc)((t=>Ai(this,void 0,void 0,(function*(){if(yield t.promise(d()),"ActorTag"===u.value.type){const{actorTag:n}=u.value;yield t.promise(d());try{A.lastActorStatus="null";const r=yield t.promise(e.bindActorByTag(A.id,n));if(!r)return;if(""!==r.error)return void console.warn(`${A.id} UeESUnrealActor BindActorByTag:${n},${r.error}`);if(0===r.re.type)A.lastActorStatus="bound",s=n;else{if(1!==r.re.type)return s=void 0,void console.warn(`${A.id} UeESUnrealActor BindActorByTag error:${n}, ${Js(r.re.type)}`);A.lastActorStatus="bound",s=n,console.warn(`${A.id} UeESUnrealActor BindActorByTag:${n},${Js(r.re.type)}`)}}catch(e){return void console.warn(`${A.id} UeESUnrealActor BindActorByTag catch error:${n}, ${e}`)}}else if("ActorClass"===u.value.type){const{actorClass:n}=u.value;try{const r=yield t.promise(e.createActorByClass(A.id,n));if(!r)return;if(""!==r.error)return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error :${n}, ${r.error}`);if(0!==r.re.type)return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error type :${n},${(A=>{switch(A){case 0:return"创建成功";case 1:return"未找到对应的资源,无法创建";case 2:return"Id与场景中现有的ActorTag重复,创建后可能出现问题,创建失败";default:return"未知错误"}})(r.re.type)}`);A.lastActorStatus="created",o=n}catch(e){return void console.warn(`${A.id} UeESUnrealActor CreateActorByClass error catch :${n}, ${JSON.stringify(e)}`)}}yield t.promise(n()),yield t.promise(a())}))))),r=()=>Ai(this,void 0,void 0,(function*(){t.restart()}));r(),this.d(u.changed.don(r))}this.d(A.positionChanged.don(a)),this.d(A.callFunctionEvent.don(((e,n)=>{l()||pt(t,A.id,e,n)}))),this.d(A.smoothMoveEvent.don(((e,n)=>{l()||wt(t,A.id,e,n)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,n,r)=>{l()||ct(t,A.id,e,n,r)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,n,r,s)=>{l()||lt(t,A.id,e,n,s,r)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,n,r,s,i)=>{l()||dt(t,A.id,e,n,r,s,i)}))),this.d(A.automaticLandingEvent.don((t=>{if(l())return;const n=[A.position[0],A.position[1]];e.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((e=>{null!==e&&(A.position=[...n,e],A.collision=t)}))}))),this.d(A.flyToEvent.don(((n,r)=>Ai(this,void 0,void 0,(function*(){if(l())return;const s=yield Ze(t,A.id,n);let i="over";void 0===s?i="error":0===s.endType?i="over":1===s.endType&&(i="cancelled"),A.flyOverEvent.emit(r,i,e)}))))),this.d(A.calcFlyToParamEvent.don((()=>{l()||At(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>Ai(this,void 0,void 0,(function*(){if(!e.actived)return;const t=yield e.getCurrentCameraInfo();if(!t)return;const{position:n,rotation:r}=t;A.flyInParam={position:n,rotation:r,flyDuration:1}}))))),this.d(e.propChanged.don((e=>{l()||e.objId===A.id&&Object.keys(e.props).forEach((t=>{const n=null===e.props[t]?void 0:e.props[t];A[t]=n}))})))}}Xs=ei,ei.type=Xs.register("ESUeViewer",i.ESUnrealActor.type,Xs);class ti extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zs=ti,ti.type=zs.register("ESUeViewer",i.ESVideoFusion.type,zs);class ni extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ys=ni,ni.type=Ys.register("ESUeViewer",i.ESViewShed.type,Ys);class ri extends Tn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}js=ri,ri.type=js.register("ESUeViewer",i.ESVisibilityAnalysis.type,js);class si extends gr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.startEvent.don((()=>{t.callUeFunc({f:"Start",p:{id:A.id}})}))),this.d(A.clearEvent.don((()=>{t.callUeFunc({f:"Clear",p:{id:A.id}})})))):console.warn("viewer is undefined!")}}$s=si,si.type=$s.register("ESUeViewer",i.ESVolumeMeasurement.type,$s);class ii extends Mn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zs=ii,ii.type=Zs.register("ESUeViewer",i.ESWidget.type,Zs),ii.propValFuncs=Object.assign(Object.assign({},Mn.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});class oi extends i.EngineObject{constructor(A,e){super(A,e),e.viewer?(A.poi.actorTag=A.human.id,A.poi.positionOffset=[0,0,A.poiOffsetHeight-.8],this.d(A.poiOffsetHeightChanged.don((()=>{A.poi.positionOffset=[0,0,A.poiOffsetHeight-.8]}))),this.d((()=>{A.poi.actorTag=""}))):console.warn("viewer is undefined!")}}qs=oi,oi.type=qs.register("ESUeViewer",i.ESHumanPoi.type,qs);var ai,ci,li=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};i.ESSceneObject.context.getStrFromEnv(i.ESNavigator.defaults.imgUrl);class di extends i.EngineObject{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=this.disposeVar(new i.ESCustomDiv);e.add(t),this.dispose((()=>e.delete(t))),this.dispose((0,c.track)([t,"show"],[A,"show"])),t.instanceClass=class extends c.Destroyable{constructor(t,n,r){super(),this._subContainer=t;const s=document.createElement("div");this._subContainer.appendChild(s),this.dispose((()=>this._subContainer.removeChild(s)));{const A=()=>li(this,void 0,void 0,(function*(){const A=yield e.getCurrentCameraInfo(),t=null==A?void 0:A.position,n=[...null==A?void 0:A.rotation];n[0]=360,e.flyIn(t,n)}));s.addEventListener("click",A),s.style.cursor="pointer",this.dispose((()=>s.removeEventListener("click",A)))}{const e=()=>{s.style.width=`${A.cssSize?A.cssSize:i.ESNavigator.defaults.cssSize}px`,s.style.height=`${A.cssSize?A.cssSize:i.ESNavigator.defaults.cssSize}px`};e(),A.dispose(A.cssSizeChanged.disposableOn(e))}s.style.position="fixed";{const e=()=>{s.style.top=`${A.cssPosition?A.cssPosition[0]:i.ESNavigator.defaults.cssPosition[0]}px`,s.style.right=`${A.cssPosition?A.cssPosition[1]:i.ESNavigator.defaults.cssPosition[1]}px`};e(),A.dispose(A.cssPositionChanged.disposableOn(e))}s.style.transition=" right 0.4s linear",s.style.cursor="pointer";const o=document.createElement("div");s.appendChild(o),this.dispose((()=>s.removeChild(o))),o.style.width="100%",o.style.height="100%",o.style.position="relative";const a=document.createElement("img");o.appendChild(a),this.dispose((()=>o.removeChild(a))),a.style.width="100%",a.style.height="100%",a.style.border="none";{const e=()=>a.src=A.imgUrl;e(),A.dispose(A.imgUrlChanged.disposableOn(e))}{const t=()=>{const A=-e.getCurrentCameraInfo().rotation[0];a.style.transform=`rotate(${A}deg)`};let n;const r=()=>li(this,void 0,void 0,(function*(){t(),A.show?(s.style.display="block",n=setInterval((()=>{t()}),1e3)):(s.style.display="none",clearInterval(n))}));this.dispose(A.showChanged.disposableOn(r)),r(),this.dispose((()=>clearInterval(n)))}a.style.transformOrigin="50% 50%"}}}}ai=di,di.type=ai.register("ESUeViewer",i.ESNavigator.type,ai);class ui extends Tn{constructor(A,e){super(A,e);const t=e.viewer;if(t){const e=()=>{let e="blue"===A.materialMode?"multipleArrows":"purple"===A.materialMode?"singleArrow":A.materialMode;t.callUeFunc({f:"update",p:{id:A.id,materialMode:e}})};this.dispose(A.materialModeChanged.disposableOn(e)),this.dispose(A.createdEvent.disposableOn(e))}else console.warn("viewer is undefined!")}}ci=ui,ui.type=ci.register("ESUeViewer",i.ESPath.type,ci),ui.forceUeUpdateProps=[...Tn.forceUeUpdateProps],ui.propValFuncs=Object.assign(Object.assign({},Tn.propValFuncs),{materialMode:null});var hi,gi,Bi,wi,pi,Ci,mi,fi=function(A,e,t,n){return new(t||(t=Promise))((function(r,s){function i(A){try{a(n.next(A))}catch(A){s(A)}}function o(A){try{a(n.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((n=n.apply(A,e||[])).next())}))};class vi extends i.EngineObject{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=this.disposeVar(new i.ESCustomDiv);e.add(t),this.dispose((()=>e.delete(t))),t.instanceClass=class extends c.Destroyable{constructor(t,n,r){if(super(),this._subContainer=t,!r)return;if(!(r instanceof yn))return;const s=document.createElement("div");this._subContainer.appendChild(s),this.dispose((()=>this._subContainer.removeChild(s))),s.style.width="100%",s.style.position="absolute",s.style.height=`${i.ESViewerStatusBar.defaults.height}px`,s.style.left="0",s.style.bottom="0",s.style.color="#fff",s.style.padding="0 20px 0 0",s.style.boxSizing="border-box",s.style.lineHeight=`${i.ESViewerStatusBar.defaults.height}px`,s.style.zIndex="100",s.style.alignContent="center",s.style.justifyContent="space-between";const o=document.createElement("span");s.appendChild(o),this.dispose((()=>s.removeChild(o)));const a=document.createElement("span");o.appendChild(a),this.dispose((()=>o.removeChild(a)));const c=document.createElement("span");o.appendChild(c),c.addEventListener("dblclick",(function(){let A=c.innerHTML;A.startsWith("鼠标位置")&&(A=A.slice(5)),function(A){fi(this,void 0,void 0,(function*(){navigator.clipboard.writeText(A).then((function(){console.log("复制成功")}),(function(A){console.log("复制失败")}))}))}(A)})),c.style.cursor="pointer",this.dispose((()=>o.removeChild(c)));const l=document.createElement("span");s.appendChild(l),this.dispose((()=>s.removeChild(l)));{const e=()=>{var e,t;s.style.height=(null!==(e=A.height)&&void 0!==e?e:i.ESViewerStatusBar.defaults.height)+"px",s.style.lineHeight=(null!==(t=A.height)&&void 0!==t?t:i.ESViewerStatusBar.defaults.height)+"px"};this.dispose(A.heightChanged.disposableOn(e)),e()}{const e=()=>{var e;s.style.fontSize=(null!==(e=A.fontSize)&&void 0!==e?e:i.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(A.fontSizeChanged.disposableOn(e)),e()}{const e=()=>{A.bgColor?s.style.background=`rgba(${255*A.bgColor[0]},${255*A.bgColor[1]},${255*A.bgColor[2]},${A.bgColor[3]})`:s.style.background=`rgba(${i.ESViewerStatusBar.defaults.bgColor[0]},${i.ESViewerStatusBar.defaults.bgColor[1]},${i.ESViewerStatusBar.defaults.bgColor[2]},${i.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(A.bgColorChanged.disposableOn(e)),e()}r.getVersion().then((A=>{A&&(l.innerText=`Ue 版本 : ${A[0]} `)})).catch((A=>{console.log(A)}));{const t=()=>{let A="",t="";A+=`帧率:${r.getFPS().toFixed(0)}FPS`,a.innerText=A;const n=e.getCurrentCameraInfo();A+=` 经度: ${n.position[0].toFixed(5)}° 纬度: ${n.position[1].toFixed(5)}° 高度: ${n.position[2].toFixed(2)}米 偏航角: ${n.rotation[0].toFixed(2)}° 俯仰角: ${n.rotation[1].toFixed(2)}° 翻滚角:${n.rotation[2].toFixed(2)}° `,a.innerText=A,e.pick().then((A=>{if(A){const{pickResult:e}=A;if(e&&e.position){const{position:A}=e;t+=`鼠标位置:${A[0].toFixed(5)}° ${A[1].toFixed(5)}° ${A[2].toFixed(2)}m`}else t+="暂时无法获取鼠标位置...";c.innerText=t}})).catch((A=>{console.log(A)}))};let n;const i=()=>fi(this,void 0,void 0,(function*(){t(),A.show?(s.style.display="flex",n=setInterval((()=>{t()}),1e3)):(s.style.display="none",clearInterval(n))}));this.dispose(A.showChanged.disposableOn(i)),i(),this.dispose((()=>clearInterval(n)))}}}}}hi=vi,vi.type=hi.register("ESUeViewer",i.ESViewerStatusBar.type,hi);class Fi extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}gi=Fi,Fi.type=gi.register("ESUeViewer",i.ESGaussianSplatting.type,gi);class Qi extends Sn{get es3DTileset(){return this._es3DTileset}constructor(A,e){if(super(A,e),this._es3DTileset=this.dv(new i.ES3DTileset(`${this.sceneObject.id}_ES3DTileset`)),e.viewer){A.mainClass=this._es3DTileset;{const t=this._es3DTileset;e.add(t),this.dispose((()=>e.delete(t))),this.d((0,c.track)([t,"allowPicking"],[A,"allowPicking"])),this.d((0,c.track)([t,"collision"],[A,"collision"])),this.d((0,c.bind)([t,"flyToParam"],[A,"flyToParam"])),this.d((0,c.bind)([t,"flyToParam"],[A,"flyToParam"])),this.d((0,c.bind)([t,"editing"],[A,"editing"])),this.d((0,c.track)([t,"url"],[A,"url"])),this.d((0,c.track)([t,"actorTag"],[A,"actorTag"])),this.d((0,c.track)([t,"materialMode"],[A,"materialMode"])),this.d((0,c.track)([t,"highlight"],[A,"highlight"])),this.d((0,c.track)([t,"maximumScreenSpaceError"],[A,"maximumScreenSpaceError"])),this.d((0,c.track)([t,"highlightID"],[A,"highlightID"])),this.d((0,c.track)([t,"highlightColor"],[A,"highlightColor"])),this.d((0,c.bind)([t,"offset"],[A,"offset"])),this.d((0,c.bind)([t,"rotation"],[A,"rotation"])),this.d((0,c.track)([t,"czmImageBasedLightingFactor"],[A,"czmImageBasedLightingFactor"])),this.d((0,c.track)([t,"czmLuminanceAtZenith"],[A,"czmLuminanceAtZenith"])),this.d((0,c.track)([t,"czmMaximumMemoryUsage"],[A,"czmMaximumMemoryUsage"])),this.d((0,c.track)([t,"czmClassificationType"],[A,"czmClassificationType"])),this.d((0,c.track)([t,"czmStyleJson"],[A,"czmStyleJson"])),this.d((0,c.track)([t,"czmBackFaceCulling"],[A,"czmBackFaceCulling"])),this.d((0,c.track)([t,"czmDebugShowBoundingVolume"],[A,"czmDebugShowBoundingVolume"])),this.d((0,c.track)([t,"czmDebugShowContentBoundingVolume"],[A,"czmDebugShowContentBoundingVolume"])),this.d((0,c.track)([t,"colorBlendMode"],[A,"colorBlendMode"])),this.d((0,c.track)([t,"cacheBytes"],[A,"cacheBytes"])),this.d((0,c.track)([t,"clippingPlaneEnabled"],[A,"clippingPlaneEnabled"])),this.d((0,c.track)([t,"unionClippingRegions"],[A,"unionClippingRegions"])),this.d((0,c.track)([t,"clippingPlaneEdgeColor"],[A,"clippingPlaneEdgeColor"])),this.d((0,c.track)([t,"clippingPlaneEdgeWidth"],[A,"clippingPlaneEdgeWidth"])),this.d((0,c.track)([t,"materialParams"],[A,"materialParams"])),this.d((0,c.bind)([t,"supportEdit"],[A,"supportEdit"])),this.d((0,c.bind)([t,"clippingPlanesId"],[A,"clippingPlanesId"])),this.d((0,c.bind)([t,"clippingPlaneIds"],[A,"clippingPlaneIds"])),this.d((0,c.bind)([t,"flattenedPlaneId"],[A,"flattenedPlaneId"])),this.d((0,c.bind)([t,"flattenedPlaneEnabled"],[A,"flattenedPlaneEnabled"])),this.d((0,c.bind)([t,"clippingPlaneId"],[A,"clippingPlaneId"])),this.d((0,c.bind)([t,"excavateId"],[A,"excavateId"]))}{const e=this._es3DTileset;this.d(A.refreshTilesetEvent.don((()=>{e.refreshTileset()}))),this.d(A.highlightFeatureEvent.don(((...A)=>{e.highlightFeature(...A)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((...A)=>{e.highlightFeatureAndFlyTo(...A)}))),this.d(A.setFeatureColorEvent.don(((...A)=>{e.setFeatureColor(...A)}))),this.d(A.setFeatureVisableEvent.don(((...A)=>{e.setFeatureVisable(...A)}))),this.d(A.resetFeatureStyleEvent.don(((...A)=>{e.resetFeatureStyle(...A)}))),this.d(A.flyInEvent.don(((...A)=>{e.flyIn(A[0])}))),this.d(A.flyToEvent.don(((...A)=>{e.flyTo(A[0])}))),this.d(A.calcFlyToParamEvent.don(((...A)=>{e.calcFlyToParam(...A)}))),this.d(A.calcFlyInParamEvent.don(((...A)=>{e.calcFlyInParam(...A)})))}{const e=this._es3DTileset;this.d(e.tilesetReady.don((e=>{A.tilesetReady.emit(e)}))),this.d(e.pickedEvent.don((e=>{A.pickedEvent.emit(new i.SceneObjectPickedInfo(A,e.childPickedInfo))})))}{const e=()=>{this.es3DTileset.show=A.show};e(),this.d(A.showChanged.don((()=>{e()})))}}else console.warn("viewer is undefined!")}}Bi=Qi,Qi.type=Bi.register("ESUeViewer",i.ESRtsFeatureEditing.type,Bi);class Ui extends Sn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}wi=Ui,Ui.type=wi.register("ESUeViewer",i.ESMsTileset.type,wi);class Ei extends gr{constructor(A,e){super(A,e);const t=e.viewer;if(!t)return void console.warn("viewer is undefined!");const n=()=>{var e,n,r;t.callUeFunc({f:"update",p:{id:A.id,height:null!==(e=A.height)&&void 0!==e?e:i.ESGeoExtrudedPolygon.defaults.height,extrudedHeight:null!==(n=A.extrudedHeight)&&void 0!==n?n:i.ESGeoExtrudedPolygon.defaults.extrudedHeight,perPositionHeight:null!==(r=A.perPositionHeight)&&void 0!==r?r:i.ESGeoExtrudedPolygon.defaults.perPositionHeight}})},r=this.disposeVar((0,c.createNextAnimateFrameEvent)(A.heightChanged,A.extrudedHeightChanged,A.perPositionHeightChanged));this.dispose(r.disposableOn(n)),this.dispose(A.createdEvent.disposableOn(n))}}pi=Ei,Ei.type=pi.register("ESUeViewer",i.ESGeoExtrudedPolygon.type,pi);class yi extends Hn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}let Si;Ci=yi,yi.type=Ci.register("ESUeViewer",i.ESStaticMesh.type,Ci);try{const A=null!=="earthsdk3-ue"?"earthsdk3-ue":"-",e="3.0.3",t="2025-04-03T12:52:34.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="5ee5bab462b073519be38863519437d08b69447d",i=1743684754e3,o=((Date.now()-i)/36e5).toFixed(1),a=`%c🌏 ${A}%c ${e}.${s.slice(0,8)}.${t} (距今${o}个小时)\n%c${r?r+"\n":""}当前网站正在使用${A},此软件版权归${n}所有\n`;Si=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","5ee5bab462b073519be38863519437d08b69447d")},get info(){return a},get date(){return"2025-04-03T12:52:34.000Z"},get author(){return"suplyang"},get version(){return"3.0.3"},get name(){return"earthsdk3-ue"},get commitId(){return"5ee5bab462b073519be38863519437d08b69447d"},print(A=!1){!A&&window._xe2_no_copy_print||console.info(this.info,"\n font-size: 18px;\n font-weight: 1000;\n line-height: 1;\n color: rgb(0, 120, 215);\n padding-top: 20px;\n padding-bottom: 10px;\n ","\n font-size: 10px;\n font-weight: 1000;\n color: rgb(0, 120, 215);\n ","\n font-size: 10px;\n line-height: 1.5;\n color: rgb(0, 120, 215);\n padding-bottom: 2px;\n padding-left: 35px;\n ")}}),window.g_XE3CopyRights=window.g_XE3CopyRights||{},window.g_XE3CopyRights[A]=Si,window.g_earthsdk_copyright_print=null===(mi=window.g_earthsdk_copyright_print)||void 0===mi||mi,window.g_earthsdk_copyright_print&&Si.print()}catch(A){}var bi=s.ZW,Ii=s.II,Hi=s.LD,Ti=s.Z8,Mi=s.Ci,Li=s.B5,xi=s.iE,Pi=s.sl,Di=s.KT,Ri=s.ix,ki=s.yS,Ki=s.ku,Oi=s.bF,Vi=s.Fr,Gi=s.bI,_i=s.l$,Ni=s.nl,Wi=s.KZ,Ji=s.u5,Xi=s.aQ,zi=s.I$,Yi=s.$A,ji=s.Kt,$i=s.CI,Zi=s.Cq,qi=s._b,Ao=s.sx,eo=s.r4,to=s.N7,no=s.qr,ro=s.X8,so=s.Sj,io=s.vh,oo=s.hj,ao=s.D4,co=s.ZN,lo=s.sJ,uo=s.EP,ho=s.Ij,go=s.Kx,Bo=s.cU,wo=s.f8,po=s.yZ,Co=s.Y0,mo=s.wZ,fo=s.E2,vo=s.RR,Fo=s.Wq,Qo=s.X5,Uo=s.vQ,Eo=s.m4,yo=s.$D,So=s.M$,bo=s.rO,Io=s.SM,Ho=s.YJ,To=s.FU,Mo=s.vP,Lo=s.Y1,xo=s.tP,Po=s.q5,Do=s.HY,Ro=s.Yn,ko=s.cL,Ko=s.D9,Oo=s.W2,Vo=s.iT,Go=s.CB,_o=s.VS,No=s.Mz,Wo=s.C6,Jo=s.EF,Xo=s.jv,zo=s.vx,Yo=s.CT,jo=s.DH,$o=s.h4,Zo=s.QC,qo=s.GK,Aa=s.AP,ea=s.bT,ta=s.mE,na=s.Pk,ra=s.$8,sa=s.Rp,ia=s.CW,oa=s.Gu,aa=s.xp,ca=s.$E,la=s.ZL,da=s.Xw,ua=s.s2,ha=s.Cv,ga=s.lP,Ba=s.vM,wa=s.Vl,pa=s.l1,Ca=s.he,ma=s.jk,fa=s.xG,va=s.eb,Fa=s.XH,Qa=s.d,Ua=s.o,Ea=s.nM,ya=s.hQ,Sa=s.aF,ba=s.kG,Ia=s.mK,Ha=s.vK,Ta=s.Zd,Ma=s.Nk,La=s.NP,xa=s.h0,Pa=s.Hv,Da=s.Ew,Ra=s.Qq,ka=s.rt,Ka=s.mC,Oa=s.gQ,Va=s.Ky,Ga=s.yM,_a=s.QN,Na=s.j3,Wa=s.rg,Ja=s.Cb,Xa=s.$I,za=s.bR,Ya=s.cd,ja=s.qB,$a=s.Y4,Za=s.am,qa=s.PO,Ac=s.Xh,ec=s.nF,tc=s.Nj,nc=s.QF,rc=s.eK,sc=s.hT,ic=s.Kk,oc=s.H0,ac=s.Rk,cc=s.cz;export{bi as ESUeViewer,Ii as HighlightFeatureAndFlyToCallFunc,Hi as HighlightFeatureCallFunc,Ti as SetLayerColorCallFunc,Mi as SetLayerVisibleCallFunc,Li as UeCloudViewerBase,xi as UeES3DTileset,Pi as UeESAlarm,Di as UeESApertureEffect,Ri as UeESAreaMeasurement,ki as UeESBlastParticleSystem,Ki as UeESBoxClipping,Oi as UeESCameraView,Vi as UeESCameraVisibleRange,Gi as UeESCar,_i as UeESClassification,Ni as UeESClippingPlane,Wi as UeESDataMesh,Ji as UeESDatasmithRuntimeModel,Xi as UeESDirectionMeasurement,zi as UeESDistanceMeasurement,Yi as UeESDynamicWater,ji as UeESEntityCluster,$i as UeESExcavate,Zi as UeESFireParticleSystem,qi as UeESForestTileset,Ao as UeESGaussianSplatting,eo as UeESGeoDiv,to as UeESGeoExtrudedPolygon,no as UeESGeoJson,ro as UeESGeoLineString,so as UeESGeoPolygon,io as UeESGeoRectangle,oo as UeESGeoVector,ao as UeESGeoWater,co as UeESGltfModel,lo as UeESHeightMeasurement,uo as UeESHuman,ho as UeESHumanPoi,go as UeESImageLabel,Bo as UeESImageryLayer,wo as UeESLabel,po as UeESLevelRuntimeModel,Co as UeESLocalCircle,mo as UeESLocalPolygon,fo as UeESLocalPolygonZ,vo as UeESLocalRectangle,Fo as UeESLocalSkyBox,Qo as UeESLocalVector,Uo as UeESLocalVector2D,Eo as UeESLocationMeasurement,yo as UeESMsTileset,So as UeESNavigator,bo as UeESObjectWithLocation,Io as UeESPath,Ho as UeESPipeFence,To as UeESPipeline,Mo as UeESPipeserTileset,Lo as UeESPit,xo as UeESPoi2D,Po as UeESPoi3D,Do as UeESPoiTileset,Ro as UeESPolygonFence,ko as UeESPolygonFlattenedPlane,Ko as UeESPolygonWithHole,Oo as UeESRtsFeatureEditing,Vo as UeESRtsTileset,Go as UeESSceneObject,_o as UeESSeparateFoliage,No as UeESStaticMesh,Wo as UeESSubmergingAnalysis,Jo as UeESSunshineAnalysis,Xo as UeESSurfaceAreaMeasurement,zo as UeESTerrainLayer,Yo as UeESTextLabel,jo as UeESUEWidget,$o as UeESUnrealActor,Zo as UeESVideoFusion,qo as UeESViewShed,Aa as UeESViewerStatusBar,ea as UeESVisibilityAnalysis,ta as UeESVisualObject,na as UeESVolumeMeasurement,ra as UeESWidget,sa as UePickedInfo,ia as bind3DTilesetByTagCallFunc,oa as bindActorByTagCallFunc,aa as bindImageryByTagCallFunc,ca as calcFlyToParamCallFunc,la as callFunctionCallFunc,da as captureCallFunc,ua as changeNavigationModeCallFunc,ha as copyright,ga as createActorByClassCallFunc,Ba as destroyCallFunc,wa as flyInCallFunc,pa as flyInDefaultCameraCallFunc,Ca as flyToCallFunc,ma as generateMemReportCallFunc,fa as getAllSocketNamesByActorTagCallFunc,va as getBoundSphereCallFunc,Fa as getBoundSphereWithChildrenCallFunc,Qa as getCameraRelativeHeightCallFunc,Ua as getFillMaterialParamInfoCallFunc,Ea as getGlobalPropertyCallFunc,ya as getHeightByLonLatCallFunc,Sa as getHeightByLonLatsCallFunc,ba as getIdByComponentNameAndHitItemCallFunc,Ia as getLonLatAltToScreenPositionCallFunc,Ha as getObjectByInfoCallFunc,Ta as getStatusCallFunc,Ma as getStrokeMaterialParamInfoCallFunc,La as getVersionCallFunc,xa as highlightActorByTagCallFunc,Pa as mountPakFiles,Da as moveObjectsCallFunc,Ra as pickCallFunc,ka as pickPositionCallFunc,Ka as quitCallFunc,Oa as refreshTilesetCallFunc,Va as resetWithCurrentCameraCallFunc,Ga as restoreOriginalSceneCallFunc,_a as saveStringToFileCallFunc,Na as sendCustomMessageCallFunc,Wa as setGlobalPropertyCallFunc,Ja as setNodePositionCallFunc,Xa as setNodeRotationCallFunc,za as setNodeScaleCallFunc,Ya as smoothMoveCallFunc,ja as smoothMoveOnGroundCallFunc,$a as smoothMoveWithRotationCallFunc,Za as smoothMoveWithRotationOnGroundCallFunc,qa as startEditingCallFunc,Ac as startVoiceCallFunc,ec as stopEditingCallFunc,tc as stopVoiceCallFunc,nc as uePositionToLonLatAltCallFunc,rc as unBind3DTilesetByIdCallFunc,sc as unBind3DTilesetByTagCallFunc,ic as unBindActorByIDCallFunc,oc as unBindActorByTagCallFunc,ac as unBindImageryByIdCallFunc,cc as unBindImageryByTagCallFunc};
|