earthsdk3-ue 3.0.3 → 3.0.4

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.
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see earthsdk3-ue.cjs.LICENSE.txt */
2
- (()=>{var A={440:function(A){A.exports=function(){"use strict";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 r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A},t.apply(this,arguments)};function r(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))}function n(A,e){var t,r,n,s,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[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,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((n=(n=i.trys).length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){i.label=s[1];break}if(6===s[0]&&i.label<n[1]){i.label=n[1],n=s;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(s);break}n[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(A,i)}catch(A){s=[6,A],r=0}finally{t=n=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 r,n=0,s=e.length;n<s;n++)!r&&n in e||(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return A.concat(r||e)}for(var i=function(){function A(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}return A.prototype.add=function(e,t,r,n){return new A(this.left+e,this.top+t,this.width+r,this.height+n)},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 r=Array.from(t).find((function(A){return 0!==A.width}));return r?new A(r.left+e.windowBounds.left,r.top+e.windowBounds.top,r.width,r.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,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}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 r=[],n=-1,s="";++n<t;){var i=A[n];i<=65535?r.push(i):(i-=65536,r.push(55296+(i>>10),i%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.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,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,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,U=15,F=17,y=18,E=19,S=20,b=21,I=22,H=24,T=25,M=26,L=27,x=28,D=30,P=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,r,n=function(A){var e,t,r,n,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)],r=g[A.charCodeAt(e+1)],n=g[A.charCodeAt(e+2)],s=g[A.charCodeAt(e+3)],l[a++]=t<<2|r>>4,l[a++]=(15&r)<<4|n>>2,l[a++]=(3&n)<<6|63&s;return c}(A),s=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(n):new Uint32Array(n),i=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(n):new Uint16Array(n),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,r):new Uint32Array(Array.prototype.slice.call(e,t,r)));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=[D,36],j=[1,2,3,5],$=[v,8],Z=[L,M],q=j.concat($),AA=[V,G,_,k,K],eA=[U,Q],tA=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var s=t;s<=r.length;){if((a=r[++s])===e)return!0;if(a!==v)break}if(n===v)for(s=t;s>0;){var i=r[--s];if(Array.isArray(A)?-1!==A.indexOf(i):A===i)for(var o=t;o<=r.length;){var a;if((a=r[++o])===e)return!0;if(a!==v)break}if(i!==v)break}return!1},rA=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==v)return r;t--}return 0},nA=function(A,e,t,r,n){if(0===t[r])return J;var s=r-1;if(Array.isArray(n)&&!0===n[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===rA(s,e))return X;if(11===z.get(A[s]))return J;if((a===P||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,U].indexOf(a)&&9===l)return J;if(-1!==[F,y,E,H,x].indexOf(l))return J;if(rA(s,e)===I)return J;if(tA(23,I,s,e))return J;if(tA([F,y],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,U,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,P,R].indexOf(l)||-1!==[O,P,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,U].indexOf(l)&&e[o+1]===T)||-1!==[I,U].indexOf(a)&&l===T||a===T&&-1!==[T,x,H].indexOf(l))return J;if(-1!==[T,x,H,F,y].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!==[F,y].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===y)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===P&&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=[],r=[],n=[];return A.forEach((function(A,s){var i=z.get(A);if(i>50?(n.push(!0),i-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(s),t.push(16);if(4===i||11===i){if(0===s)return r.push(s),t.push(D);var o=t[s-1];return-1===q.indexOf(o)?(r.push(r[s-1]),t.push(o)):(r.push(s),t.push(D))}return r.push(s),31===i?t.push("strict"===e?b:O):i===N||29===i?t.push(D):43===i?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(O):t.push(D):void t.push(i)})),[r,t,n]}(A,e.lineBreak),r=t[0],n=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[T,D,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[r,n,i]},iA=function(){function A(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}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 r=[];lA(A[e]);)r.push(A[e++]);var n=r.length?parseInt(c.apply(void 0,r),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*(n+o*Math.pow(10,-i))*Math.pow(10,a*d)},fA={type:2},vA={type:3},QA={type:4},UA={type:13},FA={type:8},yA={type:21},EA={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},DA={type:26},PA={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),r=this.peekCodePoint(2);if(gA(e)||wA(t,r)){var n=pA(e,t,r)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),UA;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 DA;case 59:return PA;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(),FA;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(),EA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),yA;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 r=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===oA&&dA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];dA(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(c.apply(void 0,n),16)}}return{type:30,start:r,end:r}},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 r=this.consumeCodePoint();if(r===cA||41===r)return{type:22,value:c.apply(void 0,A)};if(uA(r))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===r||39===r||40===r||BA(r))return this.consumeBadUrlRemnants(),TA;if(92===r){if(!wA(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),TA;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},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 r=this._value[t];if(r===cA||void 0===r||r===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===r)return this._value.splice(0,t),MA;if(92===r){var n=this._value[t+1];n!==cA&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):wA(r,n)&&(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 r=this.peekCodePoint(1);if(46===t&&lA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((r===aA||r===oA)&&lA(n)||lA(r)))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],r=this.peekCodePoint(0),n=this.peekCodePoint(1),s=this.peekCodePoint(2);return pA(r,n,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===r?(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},re={type:16,number:100,flags:4},ne=function(A,e,t){var r=A[0],n=A[1];return[se(r,e),se(void 0!==n?n:r,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,re];case"to right":case"left":return de(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[re,re];case"to bottom":case"top":return de(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[re,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 r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);return Be(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),1)}if(4===e.value.length){r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);var i=e.value.substring(3,4);return Be(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),parseInt(i+i,16)/255)}if(6===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),Be(parseInt(r,16),parseInt(n,16),parseInt(s,16),1);if(8===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),i=e.value.substring(6,8),Be(parseInt(r,16),parseInt(n,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,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},Be=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r))>>>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 r=t.map(we),n=r[0],s=r[1],i=r[2];return Be(n,s,i,1)}if(4===t.length){var o=t.map(we),a=(n=o[0],s=o[1],i=o[2],o[3]);return Be(n,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),r=t[0],n=t[1],s=t[2],i=t[3],o=(17===r.type?de(r.number):ae(A,r))/(2*Math.PI),a=qA(n)?n.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},Ue={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}))}},Fe={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ye=function(A,e){var t=ue(A,e[0]),r=e[1];return r&&qA(r)?{color:t,stop:r}:{color:t,stop:null}},Ee=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=ee),null===r.stop&&(r.stop=re);for(var n=[],s=0,i=0;i<A.length;i++){var o=A[i].stop;if(null!==o){var a=se(o,e);a>s?n.push(a):n.push(s),s=a}else n.push(null)}var c=null;for(i=0;i<n.length;i++){var l=n[i];if(null===l)null===c&&(c=i);else if(null!==c){for(var d=i-c,u=(l-n[c-1])/(d+1),h=1;h<=d;h++)n[c+h-1]=u*h;c=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,n[t]/e),0)}}))},Se=function(A,e,t){var r="number"==typeof A?A:function(A,e,t){var r=e/2,n=t/2,s=se(A[0],e)-r,i=n-se(A[1],t);return(Math.atan2(i,s)+2*Math.PI)%(2*Math.PI)}(A,e,t),n=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),s=e/2,i=t/2,o=n/2,a=Math.sin(r-Math.PI/2)*o,c=Math.cos(r-Math.PI/2)*o;return[n,s-c,s+c,i-a,i+a]},be=function(A,e){return Math.sqrt(A*A+e*e)},Ie=function(A,e,t,r,n){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var s=e[0],i=e[1],o=be(t-s,r-i);return(n?o<A.optimumDistance:o>A.optimumDistance)?{optimumCorner:e,optimumDistance:o}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},He=function(A,e){var t=de(180),r=[];return jA(e).forEach((function(e,n){if(0===n){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=ye(A,e);r.push(i)})),{angle:t,stops:r,type:1}},Te="closest-side",Me="farthest-side",Le="closest-corner",xe="farthest-corner",De="circle",Pe="ellipse",Re="cover",ke="contain",Ke=function(A,e){var t=0,r=3,n=[],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(re),!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 De:return t=0,!1;case Pe:return t=1,!1;case ke:case Te:return r=0,!1;case Me:return r=1,!1;case Le:return r=2,!1;case Re:case xe:return r=3,!1}else if(ZA(e)||qA(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),o)),o){var a=ye(A,e);n.push(a)}})),{size:r,shape:t,stops:n,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 r=Ge[e.name];if(void 0===r)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(A,e.values)}throw new Error("Unsupported image type "+e.type)};var Ve,Ge={"linear-gradient":function(A,e){var t=de(180),r=[];return jA(e).forEach((function(e,n){if(0===n){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=ye(A,e);r.push(i)})),{angle:t,stops:r,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,r=3,n=[],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(re),A}else(qA(e)||ZA(e))&&s.push(e);else if(WA(e))switch(e.value){case De:return t=0,!1;case Pe:return t=1,!1;case"at":return a=!0,!1;case Te:return r=0,!1;case Re:case Me:return r=1,!1;case ke:case Le:return r=2,!1;case xe:return r=3,!1}else if(ZA(e)||qA(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),o)}if(o){var c=ye(A,e);n.push(c)}})),{size:r,shape:t,stops:n,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),r=[],n=1;return jA(e).forEach((function(e,t){var s=e[0];if(0===t){if(WA(s)&&"linear"===s.value)return void(n=1);if(WA(s)&&"radial"===s.value)return void(n=2)}if(18===s.type)if("from"===s.name){var i=ue(A,s.values[0]);r.push({stop:ee,color:i})}else if("to"===s.name)i=ue(A,s.values[0]),r.push({stop:re,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)&&r.push({stop:{type:16,number:100*a.number,flags:a.flags},color:i})}}})),1===n?{angle:(t+de(180))%de(360),stops:r,type:n}:{size:3,shape:0,stops:r,position:[],type:n}}},_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))}}},rt=tt("top-left"),nt=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 Ut,Ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?ze.STRICT:ze.NORMAL}},yt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=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"),Dt={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}}))}},Pt={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},r=0,n=0;n<e.length;n++){var s=e[n];ZA(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:t.blur=s,r++):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],r=e[1];e[2],e[3];var n=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,r,n,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"}(Ut||(Ut={}));for(var Zt={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"break-all":return Ut.BREAK_ALL;case"keep-all":return Ut.KEEP_ALL;default:return Ut.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")}},Ar={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")}},er={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:1}},tr={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},rr={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}))}},nr={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],r=[];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:r.push(t.join(" ")),t.length=0}})),t.length&&r.push(t.join(" ")),r.map((function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"}))}},sr={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},ir={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}},or={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(WA).map((function(A){return A.value}))}},ar={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"}}},cr=function(A,e){return!!(A&e)},lr={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}},dr={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 r=[],n=e.filter(zA),s=0;s<n.length;s++){var i=n[s],o=n[s+1];if(20===i.type){var a=o&&NA(o)?o.number:1;r.push({counter:i.value,increment:a})}}return r}},ur={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],r=e.filter(zA),n=0;n<r.length;n++){var s=r[n],i=r[n+1];if(WA(s)&&"none"!==s.value){var o=i&&NA(i)?i.number:0;t.push({counter:s.value,reset:o})}}return t}},hr={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map((function(e){return Ar.parse(A,e)}))}},gr={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 r=[],n=e.filter(JA);if(n.length%2!=0)return null;for(var s=0;s<n.length;s+=2){var i=n[s].value,o=n[s+1].value;r.push({open:i,close:o})}return r}},Br=function(A,e,t){if(!A)return"";var r=A[Math.min(e,A.length-1)];return r?t?r.open:r.close:""},wr={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},r=0,n=0;n<e.length;n++){var s=e[n];XA(s,"inset")?t.inset=!0:ZA(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:2===r?t.blur=s:t.spread=s,r++):t.color=ue(A,s)}return t}))}},pr={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}},Cr={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},mr={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}},fr=function(){function A(A,e){var t,r;this.animationDuration=Ur(A,hr,e.animationDuration),this.backgroundClip=Ur(A,Ue,e.backgroundClip),this.backgroundColor=Ur(A,Fe,e.backgroundColor),this.backgroundImage=Ur(A,_e,e.backgroundImage),this.backgroundOrigin=Ur(A,Ne,e.backgroundOrigin),this.backgroundPosition=Ur(A,We,e.backgroundPosition),this.backgroundRepeat=Ur(A,Je,e.backgroundRepeat),this.backgroundSize=Ur(A,Ye,e.backgroundSize),this.borderTopColor=Ur(A,Ze,e.borderTopColor),this.borderRightColor=Ur(A,qe,e.borderRightColor),this.borderBottomColor=Ur(A,At,e.borderBottomColor),this.borderLeftColor=Ur(A,et,e.borderLeftColor),this.borderTopLeftRadius=Ur(A,rt,e.borderTopLeftRadius),this.borderTopRightRadius=Ur(A,nt,e.borderTopRightRadius),this.borderBottomRightRadius=Ur(A,st,e.borderBottomRightRadius),this.borderBottomLeftRadius=Ur(A,it,e.borderBottomLeftRadius),this.borderTopStyle=Ur(A,at,e.borderTopStyle),this.borderRightStyle=Ur(A,ct,e.borderRightStyle),this.borderBottomStyle=Ur(A,lt,e.borderBottomStyle),this.borderLeftStyle=Ur(A,dt,e.borderLeftStyle),this.borderTopWidth=Ur(A,ht,e.borderTopWidth),this.borderRightWidth=Ur(A,gt,e.borderRightWidth),this.borderBottomWidth=Ur(A,Bt,e.borderBottomWidth),this.borderLeftWidth=Ur(A,wt,e.borderLeftWidth),this.boxShadow=Ur(A,wr,e.boxShadow),this.color=Ur(A,pt,e.color),this.direction=Ur(A,Ct,e.direction),this.display=Ur(A,mt,e.display),this.float=Ur(A,vt,e.cssFloat),this.fontFamily=Ur(A,nr,e.fontFamily),this.fontSize=Ur(A,sr,e.fontSize),this.fontStyle=Ur(A,ar,e.fontStyle),this.fontVariant=Ur(A,or,e.fontVariant),this.fontWeight=Ur(A,ir,e.fontWeight),this.letterSpacing=Ur(A,Qt,e.letterSpacing),this.lineBreak=Ur(A,Ft,e.lineBreak),this.lineHeight=Ur(A,yt,e.lineHeight),this.listStyleImage=Ur(A,St,e.listStyleImage),this.listStylePosition=Ur(A,bt,e.listStylePosition),this.listStyleType=Ur(A,It,e.listStyleType),this.marginTop=Ur(A,Tt,e.marginTop),this.marginRight=Ur(A,Mt,e.marginRight),this.marginBottom=Ur(A,Lt,e.marginBottom),this.marginLeft=Ur(A,xt,e.marginLeft),this.opacity=Ur(A,er,e.opacity);var n=Ur(A,Dt,e.overflow);this.overflowX=n[0],this.overflowY=n[n.length>1?1:0],this.overflowWrap=Ur(A,Pt,e.overflowWrap),this.paddingTop=Ur(A,kt,e.paddingTop),this.paddingRight=Ur(A,Kt,e.paddingRight),this.paddingBottom=Ur(A,Ot,e.paddingBottom),this.paddingLeft=Ur(A,Vt,e.paddingLeft),this.paintOrder=Ur(A,pr,e.paintOrder),this.position=Ur(A,_t,e.position),this.textAlign=Ur(A,Gt,e.textAlign),this.textDecorationColor=Ur(A,tr,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=Ur(A,rr,null!==(r=e.textDecorationLine)&&void 0!==r?r:e.textDecoration),this.textShadow=Ur(A,Nt,e.textShadow),this.textTransform=Ur(A,Wt,e.textTransform),this.transform=Ur(A,Jt,e.transform),this.transformOrigin=Ur(A,jt,e.transformOrigin),this.visibility=Ur(A,$t,e.visibility),this.webkitTextStrokeColor=Ur(A,Cr,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=Ur(A,mr,e.webkitTextStrokeWidth),this.wordBreak=Ur(A,Zt,e.wordBreak),this.zIndex=Ur(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 cr(this.display,4)||cr(this.display,33554432)||cr(this.display,268435456)||cr(this.display,536870912)||cr(this.display,67108864)||cr(this.display,134217728)},A}(),vr=function(A,e){this.content=Ur(A,lr,e.content),this.quotes=Ur(A,gr,e.quotes)},Qr=function(A,e){this.counterIncrement=Ur(A,dr,e.counterIncrement),this.counterReset=Ur(A,ur,e.counterReset)},Ur=function(A,e,t){var r=new VA,n=null!=t?t.toString():e.initialValue;r.write(n);var s=new GA(r.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 Ar.parse(A,s.parseComponentValue())}}},Fr=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},yr=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,Fr(e,3),this.styles=new fr(A,window.getComputedStyle(e,null)),Hn(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),Fr(e,4)&&(this.flags|=16)},Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sr="undefined"==typeof Uint8Array?[]:new Uint8Array(256),br=0;br<64;br++)Sr[Er.charCodeAt(br)]=br;for(var Ir=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},Hr=function(){function A(A,e,t,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,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}(),Tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Mr="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Lr=0;Lr<64;Lr++)Mr[Tr.charCodeAt(Lr)]=Lr;var xr,Dr=8,Pr=9,Rr=11,kr=12,Kr=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 r=[],n=-1,s="";++n<t;){var i=A[n];i<=65535?r.push(i):(i-=65536,r.push(55296+(i>>10),i%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},Or=function(A){var e,t,r,n=function(A){var e,t,r,n,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=Sr[A.charCodeAt(e)],r=Sr[A.charCodeAt(e+1)],n=Sr[A.charCodeAt(e+2)],s=Sr[A.charCodeAt(e+3)],l[a++]=t<<2|r>>4,l[a++]=(15&r)<<4|n>>2,l[a++]=(3&n)<<6|63&s;return c}(A),s=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(n):new Uint32Array(n),i=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(n):new Uint16Array(n),o=Ir(i,12,s[4]/2),a=2===s[5]?Ir(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,r):new Uint32Array(Array.prototype.slice.call(e,t,r)));return new Hr(s[0],s[1],s[2],s[3],o,a)}("AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),Vr="×",Gr=function(A){return Or.get(A)},_r=function(A,e,t){var r=t-2,n=e[r],s=e[t-1],i=e[t];if(2===s&&3===i)return Vr;if(2===s||3===s||4===s)return"÷";if(2===i||3===i||4===i)return"÷";if(s===Dr&&-1!==[Dr,Pr,Rr,kr].indexOf(i))return Vr;if(!(s!==Rr&&s!==Pr||i!==Pr&&10!==i))return Vr;if((s===kr||10===s)&&10===i)return Vr;if(13===i||5===i)return Vr;if(7===i)return Vr;if(1===s)return Vr;if(13===s&&14===i){for(;5===n;)n=e[--r];if(14===n)return Vr}if(15===s&&15===i){for(var o=0;15===n;)o++,n=e[--r];if(o%2==0)return Vr}return"÷"},Nr=function(A){var e=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}return e}(A),t=e.length,r=0,n=0,s=e.map(Gr);return{next:function(){if(r>=t)return{done:!0,value:null};for(var A=Vr;r<t&&(A=_r(0,s,++r))===Vr;);if(A!==Vr||r===t){var i=Kr.apply(null,e.slice(n,r));return n=r,{value:i,done:!1}}return{done:!0,value:null}}}},Wr=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},Jr=function(A,e,t,r,n){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",r.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(n),i},Xr=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},zr={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 r=e.getBoundingClientRect(),n=Math.round(r.height);if(A.body.removeChild(t),123===n)return!0}}return!1}(document);return Object.defineProperty(zr,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=zr.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?"&#128104;".repeat(10):"";var r=e.firstChild,n=a(r.data).map((function(A){return c(A)})),s=0,i={},o=n.every((function(A,e){t.setStart(r,s),t.setEnd(r,s+A.length);var n=t.getBoundingClientRect();s+=A.length;var o=n.x>i.x||n.y>i.y;return i=n,0===e||o}));return A.body.removeChild(e),o}(document);return Object.defineProperty(zr,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(zr,"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 r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,s=e.toDataURL();n.src=s;var i=Jr(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),Xr(i).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var i=A.createElement("div");return i.style.backgroundImage="url("+s+")",i.style.height=t+"px",Wr(n)?Xr(Jr(t,t,0,0,i)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),Wr(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(zr,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(zr,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(zr,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(zr,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(zr,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Yr=function(A,e){this.text=A,this.bounds=e},jr=function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var s=o(A,r);return r.firstChild&&n.replaceChild(r.firstChild,r),s}}return i.EMPTY},$r=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},Zr=function(A){if(zr.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=Nr(A),r=[];!(e=t.next()).done;)e.value&&r.push(e.value.slice());return r}(A)},qr=function(A,e){return 0!==e.letterSpacing?Zr(A):function(A,e){if(zr.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 en(A,e)}(A,e)},An=[32,160,4961,65792,65793,4153,4241],en=function(A,e){for(var t,r=function(A,e){var t=a(A),r=sA(t,e),n=r[0],s=r[1],i=r[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=nA(t,s,n,++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}),n=[],s=function(){if(t.value){var A=t.value.slice(),e=a(A),r="";e.forEach((function(A){-1===An.indexOf(A)?r+=c(A):(r.length&&n.push(r),n.push(c(A)),r="")})),r.length&&n.push(r)}};!(t=r.next()).done;)s();return n},tn=function(A,e,t){this.text=rn(e.data,t.textTransform),this.textBounds=function(A,e,t,r){var n=qr(e,t),s=[],o=0;return n.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(zr.SUPPORT_RANGE_BOUNDS){var n=$r(r,o,e.length).getClientRects();if(n.length>1){var a=Zr(e),c=0;a.forEach((function(e){s.push(new Yr(e,i.fromDOMRectList(A,$r(r,c+o,e.length).getClientRects()))),c+=e.length}))}else s.push(new Yr(e,i.fromDOMRectList(A,n)))}else{var l=r.splitText(e.length);s.push(new Yr(e,jr(A,r))),r=l}else zr.SUPPORT_RANGE_BOUNDS||(r=r.splitText(e.length));o+=e.length})),s}(A,this.text,t,e)},rn=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(nn,sn);case 2:return A.toUpperCase();default:return A}},nn=/(^|\s|:|-|\(|\))([a-z])/g,sn=function(A,e,t){return A.length>0?e+t.toUpperCase():A},on=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.src=t.currentSrc||t.src,r.intrinsicWidth=t.naturalWidth,r.intrinsicHeight=t.naturalHeight,r.context.cache.addImage(r.src),r}return e(t,A),t}(yr),an=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.canvas=t,r.intrinsicWidth=t.width,r.intrinsicHeight=t.height,r}return e(t,A),t}(yr),cn=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=new XMLSerializer,s=o(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),r.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),r.intrinsicWidth=t.width.baseVal.value,r.intrinsicHeight=t.height.baseVal.value,r.context.cache.addImage(r.svg),r}return e(t,A),t}(yr),ln=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(yr),dn=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.start=t.start,r.reversed="boolean"==typeof t.reversed&&!0===t.reversed,r}return e(t,A),t}(yr),un=[{type:15,flags:0,unit:"px",number:3}],hn=[{type:16,flags:0,number:50}],gn="checkbox",Bn="radio",wn="password",pn=707406591,Cn=function(A){function t(e,t){var r,n,s,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(s=(n=t).type===wn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":s,o.type!==gn&&o.type!==Bn||(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=(r=o.bounds).width>r.height?new i(r.left+(r.width-r.height)/2,r.top,r.height,r.height):r.width<r.height?new i(r.left,r.top+(r.height-r.width)/2,r.width,r.width):r),o.type){case gn:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=un;break;case Bn:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=hn}return o}return e(t,A),t}(yr),mn=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=t.options[t.selectedIndex||0];return r.value=n&&n.text||"",r}return e(t,A),t}(yr),fn=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(yr),vn=function(A){function t(e,t){var r=A.call(this,e,t)||this;r.src=t.src,r.width=parseInt(t.width,10)||0,r.height=parseInt(t.height,10)||0,r.backgroundColor=r.styles.backgroundColor;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement){r.tree=yn(e,t.contentWindow.document.documentElement);var n=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;r.backgroundColor=he(n)?he(s)?r.styles.backgroundColor:s:n}}catch(A){}return r}return e(t,A),t}(yr),Qn=["OL","UL","MENU"],Un=function(A,e,t,r){for(var n=e.firstChild,s=void 0;n;n=s)if(s=n.nextSibling,bn(n)&&n.data.trim().length>0)t.textNodes.push(new tn(A,n,t.styles));else if(In(n))if(Nn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return Un(A,e,t,r)}));else{var i=Fn(A,n);i.styles.isVisible()&&(En(n,i,r)?i.flags|=4:Sn(i.styles)&&(i.flags|=2),-1!==Qn.indexOf(n.tagName)&&(i.flags|=8),t.elements.push(i),n.slot,n.shadowRoot?Un(A,n.shadowRoot,i,r):Gn(n)||Dn(n)||_n(n)||Un(A,n,i,r))}},Fn=function(A,e){return Kn(e)?new on(A,e):Rn(e)?new an(A,e):Dn(e)?new cn(A,e):Mn(e)?new ln(A,e):Ln(e)?new dn(A,e):xn(e)?new Cn(A,e):_n(e)?new mn(A,e):Gn(e)?new fn(A,e):On(e)?new vn(A,e):new yr(A,e)},yn=function(A,e){var t=Fn(A,e);return t.flags|=4,Un(A,e,t,t),t},En=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Pn(A)&&t.styles.isTransparent()},Sn=function(A){return A.isPositioned()||A.isFloating()},bn=function(A){return A.nodeType===Node.TEXT_NODE},In=function(A){return A.nodeType===Node.ELEMENT_NODE},Hn=function(A){return In(A)&&void 0!==A.style&&!Tn(A)},Tn=function(A){return"object"==typeof A.className},Mn=function(A){return"LI"===A.tagName},Ln=function(A){return"OL"===A.tagName},xn=function(A){return"INPUT"===A.tagName},Dn=function(A){return"svg"===A.tagName},Pn=function(A){return"BODY"===A.tagName},Rn=function(A){return"CANVAS"===A.tagName},kn=function(A){return"VIDEO"===A.tagName},Kn=function(A){return"IMG"===A.tagName},On=function(A){return"IFRAME"===A.tagName},Vn=function(A){return"STYLE"===A.tagName},Gn=function(A){return"TEXTAREA"===A.tagName},_n=function(A){return"SELECT"===A.tagName},Nn=function(A){return"SLOT"===A.tagName},Wn=function(A){return A.tagName.indexOf("-")>0},Jn=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,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return n&&r.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}(),Xn={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"]},zn={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Yn={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},jn={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},$n=function(A,e,t,r,n,s){return A<e||A>t?is(A,n,s.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+s},Zn=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},qn=function(A,e,t,r,n){var s=t-e+1;return(A<0?"-":"")+(Zn(Math.abs(A),s,r,(function(A){return c(Math.floor(A%s)+e)}))+n)},As=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return Zn(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},es=function(A,e,t,r,n,s){if(A<-9999||A>9999)return is(A,4,n.length>0);var i=Math.abs(A),o=n;if(0===i)return e[0]+o;for(var a=0;i>0&&a<=4;a++){var c=i%10;0===c&&cr(s,1)&&""!==o?o=e[c]+o:c>1||1===c&&0===a||1===c&&1===a&&cr(s,2)||1===c&&1===a&&cr(s,4)&&A>100||1===c&&a>1&&cr(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?r:"")+o},ts="十百千萬",rs="拾佰仟萬",ns="マイナス",ss="마이너스",is=function(A,e,t){var r=t?". ":"",n=t?"、":"",s=t?", ":"",i=t?" ":"";switch(e){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:var o=qn(A,48,57,!0,r);return o.length<4?"0"+o:o;case 4:return As(A,"〇一二三四五六七八九",n);case 6:return $n(A,1,3999,Xn,3,r).toLowerCase();case 7:return $n(A,1,3999,Xn,3,r);case 8:return qn(A,945,969,!1,r);case 9:return qn(A,97,122,!1,r);case 10:return qn(A,65,90,!1,r);case 11:return qn(A,1632,1641,!0,r);case 12:case 49:return $n(A,1,9999,zn,3,r);case 35:return $n(A,1,9999,zn,3,r).toLowerCase();case 13:return qn(A,2534,2543,!0,r);case 14:case 30:return qn(A,6112,6121,!0,r);case 15:return As(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return As(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return es(A,"零一二三四五六七八九",ts,"負",n,14);case 47:return es(A,"零壹貳參肆伍陸柒捌玖",rs,"負",n,15);case 42:return es(A,"零一二三四五六七八九",ts,"负",n,14);case 41:return es(A,"零壹贰叁肆伍陆柒捌玖",rs,"负",n,15);case 26:return es(A,"〇一二三四五六七八九","十百千万",ns,n,0);case 25:return es(A,"零壱弐参四伍六七八九","拾百千万",ns,n,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 qn(A,2406,2415,!0,r);case 20:return $n(A,1,19999,jn,3,r);case 21:return qn(A,2790,2799,!0,r);case 22:return qn(A,2662,2671,!0,r);case 22:return $n(A,1,10999,Yn,3,r);case 23:return As(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return As(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return qn(A,3302,3311,!0,r);case 28:return As(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return As(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return qn(A,3792,3801,!0,r);case 37:return qn(A,6160,6169,!0,r);case 38:return qn(A,4160,4169,!0,r);case 39:return qn(A,2918,2927,!0,r);case 40:return qn(A,1776,1785,!0,r);case 43:return qn(A,3046,3055,!0,r);case 44:return qn(A,3174,3183,!0,r);case 45:return qn(A,3664,3673,!0,r);case 46:return qn(A,3872,3881,!0,r);default:return qn(A,48,57,!0,r)}},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 Jn,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 r(t,void 0,void 0,(function(){var A,t;return n(this,(function(r){switch(r.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:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,us(c)]:[3,4];case 3:r.sent(),r.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(Fr(A,2),Rn(A))return this.createCanvasClone(A);if(kn(A))return this.createVideoClone(A);if(Vn(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Kn(e)&&(Kn(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Wn(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}),""),r=A.cloneNode(!1);return r.textContent=t,r}}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 r=A.cloneNode(!1);try{r.width=A.width,r.height=A.height;var n=A.getContext("2d"),s=r.getContext("2d");if(s)if(!this.options.allowTaint&&n)s.putImageData(n.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 r}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return r},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 r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r},A.prototype.appendChildNode=function(A,e,t){In(e)&&("SCRIPT"===e.tagName||e.hasAttribute(os)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&In(e)&&Vn(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var r=this,n=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;n;n=n.nextSibling)if(In(n)&&Nn(n)&&"function"==typeof n.assignedNodes){var s=n.assignedNodes();s.length&&s.forEach((function(A){return r.appendChildNode(e,A,t)}))}else this.appendChildNode(e,n,t)},A.prototype.cloneNode=function(A,e){if(bn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&In(A)&&(Hn(A)||Tn(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var n=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),i=t.getComputedStyle(A,":after");this.referenceElement===A&&Hn(r)&&(this.clonedReferenceElement=r),Pn(r)&&Qs(r);var o=this.counters.parse(new Qr(this.context,n)),a=this.resolvePseudoContent(A,r,s,xr.BEFORE);Wn(A)&&(e=!0),kn(A)||this.cloneChildNodes(A,r,e),a&&r.insertBefore(a,r.firstChild);var c=this.resolvePseudoContent(A,r,i,xr.AFTER);return c&&r.appendChild(c),this.counters.pop(o),(n&&(this.options.copyStyles||Tn(A))&&!On(A)||e)&&Bs(n,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(Gn(A)||_n(A))&&(Gn(r)||_n(r))&&(r.value=A.value),r}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=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 Qr(this.context,t));var o=new vr(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 r=e.values.filter(WA);r.length&&a.appendChild(i.createTextNode(A.getAttribute(r[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=n.counters.getCounterValue(c.value),u=l&&WA(l)?It.parse(n.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=n.counters.getCounterValues(c.value),w=l&&WA(l)?It.parse(n.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(Br(o.quotes,n.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(Br(o.quotes,--n.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(e.value))}})),a.className=ms+" "+fs;var c=r===xr.BEFORE?" "+ms:" "+fs;return Tn(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"}(xr||(xr={}));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 r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=function(){r.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},gs=["all","d","content"],Bs=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);-1===gs.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}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],r=A[2];e.scrollLeft=t,e.scrollTop=r},ms="___html2canvas___pseudoelement_before",fs="___html2canvas___pseudoelement_after",vs='{\n content: "" !important;\n display: none !important;\n}',Qs=function(A){Us(A,"."+ms+":before"+vs+"\n ."+fs+":after"+vs)},Us=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}},Fs=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}(),ys=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 r(this,void 0,void 0,(function(){var e,t,r,s,i=this;return n(this,(function(n){switch(n.label){case 0:return e=Fs.isSameOrigin(A),t=!Hs(A)&&!0===this._options.useCORS&&zr.SUPPORT_CORS_IMAGES&&!e,r=!Hs(A)&&!e&&!Ms(A)&&"string"==typeof this._options.proxy&&zr.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Hs(A)||Ms(A)||r||t?(s=A,r?[4,this.proxy(s)]:[3,2]):[2];case 1:s=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(Ts(s)||t)&&(r.crossOrigin="anonymous"),r.src=s,!0===r.complete&&setTimeout((function(){return A(r)}),500),i._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+i._options.imageTimeout+"ms) loading image")}),i._options.imageTimeout)}))];case 3:return[2,n.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 r=A.substring(0,256);return new Promise((function(n,s){var i=zr.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=function(){if(200===o.status)if("text"===i)n(o.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(o.response)}else s("Failed to proxy resource "+r+" 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 "+r)}}o.send()}))},A}(),Es=/^data:image\/svg\+xml/i,Ss=/^data:image\/.*;base64,/i,bs=/^data:image\/.*/i,Is=function(A){return zr.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()||Es.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}(),Ds=function(A,e,t){return new xs(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ps=function(){function A(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=Ds(this.start,this.startControl,e),n=Ds(this.startControl,this.endControl,e),s=Ds(this.endControl,this.end,e),i=Ds(r,n,e),o=Ds(n,s,e),a=Ds(i,o,e);return t?new A(this.start,r,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,r=ne(e.borderTopLeftRadius,t.width,t.height),n=r[0],s=r[1],i=ne(e.borderTopRightRadius,t.width,t.height),o=i[0],a=i[1],c=ne(e.borderBottomRightRadius,t.width,t.height),l=c[0],d=c[1],u=ne(e.borderBottomLeftRadius,t.width,t.height),h=u[0],g=u[1],B=[];B.push((n+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&&(n/=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,U=e.borderBottomWidth,F=e.borderLeftWidth,y=se(e.paddingTop,A.bounds.width),E=se(e.paddingRight,A.bounds.width),S=se(e.paddingBottom,A.bounds.width),b=se(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||s>0?Ks(t.left+F/3,t.top+v/3,n-F/3,s-v/3,cs.TOP_LEFT):new xs(t.left+F/3,t.top+v/3),this.topRightBorderDoubleOuterBox=n>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-U/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/3,t.top+t.height-U/3),this.bottomLeftBorderDoubleOuterBox=h>0||g>0?Ks(t.left+F/3,t.top+f,h-F/3,g-U/3,cs.BOTTOM_LEFT):new xs(t.left+F/3,t.top+t.height-U/3),this.topLeftBorderDoubleInnerBox=n>0||s>0?Ks(t.left+2*F/3,t.top+2*v/3,n-2*F/3,s-2*v/3,cs.TOP_LEFT):new xs(t.left+2*F/3,t.top+2*v/3),this.topRightBorderDoubleInnerBox=n>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*U/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-2*Q/3,t.top+t.height-2*U/3),this.bottomLeftBorderDoubleInnerBox=h>0||g>0?Ks(t.left+2*F/3,t.top+f,h-2*F/3,g-2*U/3,cs.BOTTOM_LEFT):new xs(t.left+2*F/3,t.top+t.height-2*U/3),this.topLeftBorderStroke=n>0||s>0?Ks(t.left+F/2,t.top+v/2,n-F/2,s-v/2,cs.TOP_LEFT):new xs(t.left+F/2,t.top+v/2),this.topRightBorderStroke=n>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-U/2,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/2,t.top+t.height-U/2),this.bottomLeftBorderStroke=h>0||g>0?Ks(t.left+F/2,t.top+f,h-F/2,g-U/2,cs.BOTTOM_LEFT):new xs(t.left+F/2,t.top+t.height-U/2),this.topLeftBorderBox=n>0||s>0?Ks(t.left,t.top,n,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=n>0||s>0?Ks(t.left+F,t.top+v,Math.max(0,n-F),Math.max(0,s-v),cs.TOP_LEFT):new xs(t.left+F,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-F),t.top+Math.min(C,t.height-U),Math.max(0,l-Q),Math.max(0,d-U),cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q,t.top+t.height-U),this.bottomLeftPaddingBox=h>0||g>0?Ks(t.left+F,t.top+Math.min(f,t.height-U),Math.max(0,h-F),Math.max(0,g-U),cs.BOTTOM_LEFT):new xs(t.left+F,t.top+t.height-U),this.topLeftContentBox=n>0||s>0?Ks(t.left+F+b,t.top+v+y,Math.max(0,n-(F+b)),Math.max(0,s-(v+y)),cs.TOP_LEFT):new xs(t.left+F+b,t.top+v+y),this.topRightContentBox=o>0||a>0?Ks(t.left+Math.min(p,t.width+F+b),t.top+v+y,p>t.width+F+b?0:o-F+b,a-(v+y),cs.TOP_RIGHT):new xs(t.left+t.width-(Q+E),t.top+v+y),this.bottomRightContentBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-(F+b)),t.top+Math.min(C,t.height+v+y),Math.max(0,l-(Q+E)),d-(U+S),cs.BOTTOM_RIGHT):new xs(t.left+t.width-(Q+E),t.top+t.height-(U+S)),this.bottomLeftContentBox=h>0||g>0?Ks(t.left+F+b,t.top+f,Math.max(0,h-(F+b)),g-(U+S),cs.BOTTOM_LEFT):new xs(t.left+F+b,t.top+t.height-(U+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,r,n){var s=(Math.sqrt(2)-1)/3*4,i=t*s,o=r*s,a=A+t,c=e+r;switch(n){case cs.TOP_LEFT:return new Ps(new xs(A,c),new xs(A,c-o),new xs(a-i,e),new xs(a,e));case cs.TOP_RIGHT:return new Ps(new xs(A,e),new xs(A+i,e),new xs(a,c-o),new xs(a,c));case cs.BOTTOM_RIGHT:return new Ps(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 Ps(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,r=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Gs(t,r,n))}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,r=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Ws(A)}));if(e||0!==t.container.styles.position||!t.parent){if(r.unshift.apply(r,n),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)||r.unshift(new _s(i,6))}}else r.unshift.apply(r,n);t=t.parent}return r.filter((function(e){return cr(e.target,A)}))},A}(),Ys=function(A,e,t,r){A.container.elements.forEach((function(n){var s=cr(n.flags,4),i=cr(n.flags,2),o=new zs(n,A);cr(n.styles.display,2048)&&r.push(o);var a=cr(n.flags,8)?[]:r;if(s||i){var c=s||n.styles.isPositioned()?t:e,l=new Xs(o);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.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 n.styles.isFloating()?c.nonPositionedFloats.push(l):c.nonPositionedInlineLevel.push(l);Ys(o,l,s?l:t,a)}else n.styles.isInlineLevel()?e.inlineLevel.push(o):e.nonInlineLevel.push(o),Ys(o,e,t,a);cr(n.flags,8)&&js(n,a)}))},js=function(A,e){for(var t=A instanceof dn?A.start:1,r=A instanceof dn&&A.reversed,n=0;n<e.length;n++){var s=e[n];s.container instanceof ln&&"number"==typeof s.container.value&&0!==s.container.value&&(t=s.container.value),s.listValue=is(t,s.container.styles.listStyleType,!0),t+=r?-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,r){var n=[];return Rs(A)?n.push(A.subdivide(.5,!1)):n.push(A),Rs(t)?n.push(t.subdivide(.5,!0)):n.push(t),Rs(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),Rs(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n},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,r=se(e.paddingLeft,t.width),n=se(e.paddingRight,t.width),s=se(e.paddingTop,t.width),i=se(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,s+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+n),-(e.borderTopWidth+e.borderBottomWidth+s+i))},ti=function(A,e,t){var r=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundOrigin,e),A),n=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,r),i=s[0],o=s[1],a=ne(ii(A.styles.backgroundPosition,e),r.width-i,r.height-o);return[oi(ii(A.styles.backgroundRepeat,e),a,s,r,n),Math.round(r.left+a[0]),Math.round(r.top+a[1]),i,o]},ri=function(A){return WA(A)&&A.value===Ve.AUTO},ni=function(A){return"number"==typeof A},si=function(A,e,t){var r=e[0],n=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=ni(s);if(WA(i)&&(i.value===Ve.CONTAIN||i.value===Ve.COVER))return ni(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=ni(r),l=ni(n),d=c||l;if(ri(i)&&(!o||ri(o)))return c&&l?[r,n]:a||d?d&&a?[c?r:n*s,l?n:r/s]:[c?r:t.width,l?n: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)),ri(i)?u=h*s:o&&!ri(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&&!ri(o)||(B=c&&l?g/r*n:t.height),null!==B&&ri(i)&&(g=c&&l?B/n*r: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,r,n){var s=e[0],i=e[1],o=t[0],a=t[1];switch(A){case 2:return[new xs(Math.round(r.left),Math.round(r.top+i)),new xs(Math.round(r.left+r.width),Math.round(r.top+i)),new xs(Math.round(r.left+r.width),Math.round(a+r.top+i)),new xs(Math.round(r.left),Math.round(a+r.top+i))];case 3:return[new xs(Math.round(r.left+s),Math.round(r.top)),new xs(Math.round(r.left+s+o),Math.round(r.top)),new xs(Math.round(r.left+s+o),Math.round(r.height+r.top)),new xs(Math.round(r.left+s),Math.round(r.height+r.top))];case 1:return[new xs(Math.round(r.left+s),Math.round(r.top+i)),new xs(Math.round(r.left+s+o),Math.round(r.top+i)),new xs(Math.round(r.left+s+o),Math.round(r.top+i+a)),new xs(Math.round(r.left+s),Math.round(r.top+i+a))];default:return[new xs(Math.round(n.left),Math.round(n.top)),new xs(Math.round(n.left+n.width),Math.round(n.top)),new xs(Math.round(n.left+n.width),Math.round(n.height+n.top)),new xs(Math.round(n.left),Math.round(n.height+n.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"),r=this._document.createElement("img"),n=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),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",n.style.fontFamily=A,n.style.fontSize=e,n.style.margin="0",n.style.padding="0",n.appendChild(this._document.createTextNode(ai)),t.appendChild(n),t.appendChild(r);var i=r.offsetTop-n.offsetTop+2;t.removeChild(n),t.appendChild(this._document.createTextNode(ai)),t.style.lineHeight="normal",r.style.verticalAlign="super";var o=r.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 r=A.call(this,e,t)||this;return r._activeEffects=[],r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),t.canvas||(r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px"),r.fontMetrics=new ci(document),r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.ctx.textBaseline="bottom",r._activeEffects=[],r.context.logger.debug("Canvas renderer initialized ("+t.width+"x"+t.height+") with scale "+t.scale),r}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 r(this,void 0,void 0,(function(){return n(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 r(this,void 0,void 0,(function(){return n(this,(function(e){switch(e.label){case 0:return cr(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 r=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):Zr(A.text).reduce((function(e,n){return r.ctx.fillText(n,e,A.bounds.top+t),e+r.ctx.measureText(n).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(", "),r=_A(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},t.prototype.renderTextNode=function(A,e){return r(this,void 0,void 0,(function(){var t,r,s,i,o,a,c,l,d=this;return n(this,(function(n){return t=this.createFontStyle(e),r=t[0],s=t[1],i=t[2],this.ctx.font=r,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 r=e.textShadow;r.length&&A.text.trim().length&&(r.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 r=ei(A),n=Vs(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return r(this,void 0,void 0,(function(){var e,r,s,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,r=A.curves,s=e.styles,o=0,a=e.textNodes,n.label=1;case 1:return o<a.length?(c=a[o],[4,this.renderTextNode(c,s)]):[3,4];case 2:n.sent(),n.label=3;case 3:return o++,[3,1];case 4:if(!(e instanceof on))return[3,8];n.label=5;case 5:return n.trys.push([5,7,,8]),[4,this.context.cache.match(e.src)];case 6:return C=n.sent(),this.renderReplacedElement(e,r,C),[3,8];case 7:return n.sent(),this.context.logger.error("Error loading image "+e.src),[3,8];case 8:if(e instanceof an&&this.renderReplacedElement(e,r,e.canvas),!(e instanceof cn))return[3,12];n.label=9;case 9:return n.trys.push([9,11,,12]),[4,this.context.cache.match(e.svg)];case 10:return C=n.sent(),this.renderReplacedElement(e,r,C),[3,12];case 11:return n.sent(),this.context.logger.error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof vn&&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=n.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),n.label=14;case 14:if(e instanceof Cn&&(d=Math.min(e.bounds.width,e.bounds.height),e.type===gn?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(pn),this.ctx.fill(),this.ctx.restore()):e.type===Bn&&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(pn),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 Yr(e.value,w),s.letterSpacing,g),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!cr(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,n.label=15;case 15:return n.trys.push([15,17,,18]),[4,this.context.cache.match(m)];case 16:return C=n.sent(),this.ctx.drawImage(C,e.bounds.left-(C.width+10),e.bounds.top),[3,18];case 17:return n.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,Et(s.lineHeight,s.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new Yr(A.listValue,v),s.letterSpacing,Et(s.lineHeight,s.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),n.label=20;case 20:return[2]}}))}))},t.prototype.renderStackContent=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,i,o,a,c,l,d,u,h,g,B,w;return n(this,(function(n){switch(n.label){case 0:return cr(A.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:n.sent(),e=0,t=A.negativeZIndex,n.label=2;case 2:return e<t.length?(w=t[e],[4,this.renderStack(w)]):[3,5];case 3:n.sent(),n.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:n.sent(),r=0,s=A.nonInlineLevel,n.label=7;case 7:return r<s.length?(w=s[r],[4,this.renderNode(w)]):[3,10];case 8:n.sent(),n.label=9;case 9:return r++,[3,7];case 10:i=0,o=A.nonPositionedFloats,n.label=11;case 11:return i<o.length?(w=o[i],[4,this.renderStack(w)]):[3,14];case 12:n.sent(),n.label=13;case 13:return i++,[3,11];case 14:a=0,c=A.nonPositionedInlineLevel,n.label=15;case 15:return a<c.length?(w=c[a],[4,this.renderStack(w)]):[3,18];case 16:n.sent(),n.label=17;case 17:return a++,[3,15];case 18:l=0,d=A.inlineLevel,n.label=19;case 19:return l<d.length?(w=d[l],[4,this.renderNode(w)]):[3,22];case 20:n.sent(),n.label=21;case 21:return l++,[3,19];case 22:u=0,h=A.zeroOrAutoZIndexOrTransformedOrOpacity,n.label=23;case 23:return u<h.length?(w=h[u],[4,this.renderStack(w)]):[3,26];case 24:n.sent(),n.label=25;case 25:return u++,[3,23];case 26:g=0,B=A.positiveZIndex,n.label=27;case 27:return g<B.length?(w=B[g],[4,this.renderStack(w)]):[3,30];case 28:n.sent(),n.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 r=Rs(A)?A.start:A;0===t?e.ctx.moveTo(r.x,r.y):e.ctx.lineTo(r.x,r.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,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},t.prototype.resizeImage=function(A,e,t){var r;if(A.width===e&&A.height===t)return A;var n=(null!==(r=this.canvas.ownerDocument)&&void 0!==r?r:document).createElement("canvas");return n.width=Math.max(1,e),n.height=Math.max(1,t),n.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),n},t.prototype.renderBackgroundImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,i,o;return n(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,U,F,y,E,S,b,I,H,T,M,L,x,D;return n(this,(function(n){switch(n.label){case 0:if(0!==t.type)return[3,5];s=void 0,i=t.url,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,r.context.cache.match(i)];case 2:return s=n.sent(),[3,4];case 3:return n.sent(),r.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],E=o[1],S=o[2],U=o[3],F=o[4],C=r.ctx.createPattern(r.resizeImage(s,U,F),"repeat"),r.renderRepeat(f,C,E,S)),[3,6];case 5:1===t.type?(a=ti(A,e,[null,null,null]),f=a[0],E=a[1],S=a[2],U=a[3],F=a[4],c=Se(t.angle,U,F),l=c[0],d=c[1],u=c[2],h=c[3],g=c[4],(B=document.createElement("canvas")).width=U,B.height=F,w=B.getContext("2d"),p=w.createLinearGradient(d,h,u,g),Ee(t.stops,l).forEach((function(A){return p.addColorStop(A.stop,ge(A.color))})),w.fillStyle=p,w.fillRect(0,0,U,F),U>0&&F>0&&(C=r.ctx.createPattern(B,"repeat"),r.renderRepeat(f,C,E,S))):function(A){return 2===A.type}(t)&&(m=ti(A,e,[null,null,null]),f=m[0],v=m[1],Q=m[2],U=m[3],F=m[4],y=0===t.position.length?[te]:t.position,E=se(y[0],U),S=se(y[y.length-1],F),b=function(A,e,t,r,n){var s=0,i=0;switch(A.size){case 0:0===A.shape?s=i=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-r)),i=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)s=i=Math.min(be(e,t),be(e,t-n),be(e-r,t),be(e-r,t-n));else if(1===A.shape){var o=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),a=Ie(r,n,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-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-r)),i=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)s=i=Math.max(be(e,t),be(e,t-n),be(e-r,t),be(e-r,t-n));else if(1===A.shape){o=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var d=Ie(r,n,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],r),i=2===A.size.length?se(A.size[1],n):s),[s,i]}(t,E,S,U,F),I=b[0],H=b[1],I>0&&H>0&&(T=r.ctx.createRadialGradient(v+E,Q+S,0,v+E,Q+S,I),Ee(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,ge(A.color))})),r.path(f),r.ctx.fillStyle=T,I!==H?(M=A.bounds.left+.5*A.bounds.width,L=A.bounds.top+.5*A.bounds.height,D=1/(x=H/I),r.ctx.save(),r.ctx.translate(M,L),r.ctx.transform(1,0,0,x,0,0),r.ctx.translate(-M,-L),r.ctx.fillRect(v,D*(Q-L)+L,U,F*D),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=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 r(this,void 0,void 0,(function(){return n(this,(function(r){return this.path($s(t,e)),this.ctx.fillStyle=ge(A),this.ctx.fill(),[2]}))}))},t.prototype.renderDoubleBorder=function(A,e,t,s){return r(this,void 0,void 0,(function(){var r,i;return n(this,(function(n){switch(n.label){case 0:return e<3?[4,this.renderSolidBorder(A,t,s)]:[3,2];case 1:return n.sent(),[2];case 2:return r=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(r),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 r(this,void 0,void 0,(function(){var e,t,r,s,i,o,a,c,l=this;return n(this,(function(n){switch(n.label){case 0:return this.applyEffects(A.getEffects(2)),e=A.container.styles,t=!he(e.backgroundColor)||e.backgroundImage.length,r=[{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:n.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){l.ctx.save();var t,r,n,s,i,o=Os(A.curves),a=e.inset?0:1e4,c=(t=o,r=-a+(e.inset?1:-1)*e.spread.number,n=(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(r,n);case 1:return A.add(r+s,n);case 2:return A.add(r+s,n+i);case 3:return A.add(r,n+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()})),n.label=2;case 2:i=0,o=0,a=r,n.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 n.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 n.sent(),[3,11];case 7:return 4!==c.style?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,i,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,i,A.curves)];case 10:n.sent(),n.label=11;case 11:i++,n.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,i){return r(this,void 0,void 0,(function(){var r,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return n(this,(function(n){return this.ctx.save(),r=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(r):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 r(this,void 0,void 0,(function(){var e;return n(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)),r=new zs(A,null),n=new Xs(r),Ys(r,n,n,s=[]),js(r.container,s),e=n,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([]),[2,this.canvas]}var r,n,s}))}))},t}(li),ui=function(A){return A instanceof fn||A instanceof mn||A instanceof Cn&&A.type!==Bn&&A.type!==gn},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 r=A.call(this,e,t)||this;return r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),r.options=t,r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px",r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+t.width+"x"+t.height+" at "+t.x+","+t.y+") with scale "+t.scale),r}return e(t,A),t.prototype.render=function(A){return r(this,void 0,void 0,(function(){var e,t;return n(this,(function(r){switch(r.label){case 0:return e=Jr(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=r.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 r=new Image;r.onload=function(){e(r)},r.onerror=t,r.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 r;this.windowBounds=t,this.instanceName="#"+A.instanceCount++,this.logger=new mi({id:this.instanceName,enabled:e.logging}),this.cache=null!==(r=e.cache)&&void 0!==r?r:new ys(this,e)}return A.instanceCount=1,A}();"undefined"!=typeof window&&Fs.setContext(window);var vi=function(A,e){return r(void 0,void 0,void 0,(function(){var r,s,a,c,l,d,u,h,g,B,w,p,C,m,f,v,Q,U,F,y,E,S,b,I,H,T,M,L,x,D,P,R,k,K,O,V,G,_;return n(this,(function(n){switch(n.label){case 0:if(!A||"object"!=typeof A)return[2,Promise.reject("Invalid element provided as first argument")];if(!(r=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(s=r.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!==(D=e.foreignObjectRendering)&&void 0!==D&&D,g={allowTaint:null!==(P=e.allowTaint)&&void 0!==P&&P,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(r,d)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return p=n.sent(),C=Pn(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 r=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=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,r,n)}(w.ownerDocument):o(u,w),m=C.width,f=C.height,v=C.left,Q=C.top,U=Qi(u,w,e.backgroundColor),F={canvas:e.canvas,backgroundColor:U,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,F).render(w)]):[3,3];case 2:return y=n.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"),E=yn(u,w),U===E.styles.backgroundColor&&(E.styles.backgroundColor=Qe.TRANSPARENT),u.logger.debug("Starting renderer for element at "+F.x+","+F.y+" with size "+F.width+"x"+F.height),[4,new di(u,F).render(E)];case 4:y=n.sent(),n.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,y]}}))}))},Qi=function(A,e,t){var r=e.ownerDocument,n=r.documentElement?ve(A,getComputedStyle(r.documentElement).backgroundColor):Qe.TRANSPARENT,s=r.body?ve(A,getComputedStyle(r.body).backgroundColor):Qe.TRANSPARENT,i="string"==typeof t?ve(A,t):null===t?Qe.TRANSPARENT:4294967295;return e===r.documentElement?he(n)?he(s)?i:s:n:i};return function(A,e){return void 0===e&&(e={}),vi(A,e)}}()},880:A=>{"use strict";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 r=A.type;return e.push("typ"),e.push(r),"host"!==r&&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 r=A.substring(A.indexOf(" ")+1).split(";");for(let A=0;A<r.length;A++)t=r[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 r=[];Object.keys(A.parameters).forEach((e=>{void 0!==A.parameters[e]?r.push(e+"="+A.parameters[e]):r.push(e)})),e+="a=fmtp:"+t+" "+r.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)},r=A.indexOf(":",e);return r>-1?(t.attribute=A.substring(e+1,r),t.value=A.substring(r+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 r=e.matchPrefix(A+t,"a=ice-ufrag:")[0],n=e.matchPrefix(A+t,"a=ice-pwd:")[0];return r&&n?{usernameFragment:r.substring(12),password:n.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:[]},r=e.splitLines(A)[0].split(" ");t.profile=r[2];for(let n=3;n<r.length;n++){const s=r[n],i=e.matchPrefix(A,"a=rtpmap:"+s+" ")[0];if(i){const r=e.parseRtpMap(i),n=e.matchPrefix(A,"a=fmtp:"+s+" ");switch(r.parameters=n.length?e.parseFmtp(n[0]):{},r.rtcpFeedback=e.matchPrefix(A,"a=rtcp-fb:"+s+" ").map(e.parseRtcpFb),t.codecs.push(r),r.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(r.name.toUpperCase())}}}e.matchPrefix(A,"a=extmap:").forEach((A=>{t.headerExtensions.push(e.parseExtmap(A))}));const n=e.matchPrefix(A,"a=rtcp-fb:* ").map(e.parseRtcpFb);return t.codecs.forEach((A=>{n.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 r="";r+="m="+A+" ",r+=t.codecs.length>0?"9":"0",r+=" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" ",r+=t.codecs.map((A=>void 0!==A.preferredPayloadType?A.preferredPayloadType:A.payloadType)).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach((A=>{r+=e.writeRtpMap(A),r+=e.writeFmtp(A),r+=e.writeRtcpFb(A)}));let n=0;return t.codecs.forEach((A=>{A.maxptime>n&&(n=A.maxptime)})),n>0&&(r+="a=maxptime:"+n+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach((A=>{r+=e.writeExtmap(A)})),r},e.parseRtpEncodingParameters=function(A){const t=[],r=e.parseRtpParameters(A),n=-1!==r.fecMechanisms.indexOf("RED"),s=-1!==r.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]),r.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),n&&(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={},r=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute))[0];r&&(t.cname=r.value,t.ssrc=r.ssrc);const n=e.matchPrefix(A,"a=rtcp-rsize");t.reducedSize=n.length>0,t.compound=0===n.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 r=e.matchPrefix(A,"a=msid:");if(1===r.length)return t=r[0].substring(7).split(" "),{stream:t[0],track:t[1]};const n=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"msid"===A.attribute));return n.length>0?(t=n[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},e.parseSctpDescription=function(A){const t=e.parseMLine(A),r=e.matchPrefix(A,"a=max-message-size:");let n;r.length>0&&(n=parseInt(r[0].substring(19),10)),isNaN(n)&&(n=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:n};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:n}}},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,r){let n;const s=void 0!==t?t:2;return n=A||e.generateSessionId(),"v=0\r\no="+(r||"thisisadapterortc")+" "+n+" "+s+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},e.getDirection=function(A,t){const r=e.splitLines(A);for(let A=0;A<r.length;A++)switch(r[A]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return r[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}},e={};function t(r){var n=e[r];if(void 0!==n)return n.exports;var s=e[r]={exports:{}};return A[r].call(s.exports,s,s.exports,t),s.exports}t.n=A=>{var e=A&&A.__esModule?()=>A.default:()=>A;return t.d(e,{a:e}),e},t.d=(A,e)=>{for(var r in e)t.o(e,r)&&!t.o(A,r)&&Object.defineProperty(A,r,{enumerable:!0,get:e[r]})},t.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),t.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var r={};(()=>{"use strict";t.r(r),t.d(r,{ESUeViewer:()=>mr,HighlightFeatureAndFlyToCallFunc:()=>ot,HighlightFeatureCallFunc:()=>it,SetLayerColorCallFunc:()=>ct,SetLayerVisibleCallFunc:()=>at,UeCloudViewerBase:()=>qt,UeES3DTileset:()=>Tr,UeESAlarm:()=>sn,UeESApertureEffect:()=>on,UeESAreaMeasurement:()=>cn,UeESBlastParticleSystem:()=>ln,UeESBoxClipping:()=>dn,UeESCameraView:()=>un,UeESCameraVisibleRange:()=>hn,UeESCar:()=>gn,UeESClassification:()=>Bn,UeESClippingPlane:()=>wn,UeESDataMesh:()=>pn,UeESDatasmithRuntimeModel:()=>Cn,UeESDirectionMeasurement:()=>mn,UeESDistanceMeasurement:()=>fn,UeESDynamicWater:()=>Qn,UeESEntityCluster:()=>Un,UeESExcavate:()=>Fn,UeESFireParticleSystem:()=>yn,UeESForestTileset:()=>En,UeESGaussianSplatting:()=>wi,UeESGeoDiv:()=>Pn,UeESGeoExtrudedPolygon:()=>mi,UeESGeoJson:()=>Rn,UeESGeoLineString:()=>kn,UeESGeoPolygon:()=>an,UeESGeoRectangle:()=>Kn,UeESGeoVector:()=>Fr,UeESGeoWater:()=>On,UeESGltfModel:()=>Vn,UeESHeightMeasurement:()=>Gn,UeESHuman:()=>ts,UeESHumanPoi:()=>ei,UeESImageLabel:()=>rs,UeESImageryLayer:()=>Dr,UeESLabel:()=>yr,UeESLevelRuntimeModel:()=>ns,UeESLocalCircle:()=>ss,UeESLocalPolygon:()=>vn,UeESLocalPolygonZ:()=>is,UeESLocalRectangle:()=>os,UeESLocalSkyBox:()=>as,UeESLocalVector:()=>Er,UeESLocalVector2D:()=>Sr,UeESLocationMeasurement:()=>cs,UeESMsTileset:()=>Ci,UeESNavigator:()=>si,UeESObjectWithLocation:()=>Ur,UeESPath:()=>ii,UeESPipeFence:()=>ls,UeESPipeline:()=>ds,UeESPipeserTileset:()=>us,UeESPit:()=>hs,UeESPoi2D:()=>Ss,UeESPoi3D:()=>bs,UeESPoiTileset:()=>Is,UeESPolygonFence:()=>Hs,UeESPolygonFlattenedPlane:()=>Ts,UeESPolygonWithHole:()=>Ms,UeESRtsFeatureEditing:()=>pi,UeESRtsTileset:()=>Ls,UeESSceneObject:()=>fr,UeESSeparateFoliage:()=>xs,UeESStaticMesh:()=>fi,UeESSubmergingAnalysis:()=>Ds,UeESSunshineAnalysis:()=>Ps,UeESSurfaceAreaMeasurement:()=>Rs,UeESTerrainLayer:()=>nn,UeESTextLabel:()=>ks,UeESUEWidget:()=>Ks,UeESUnrealActor:()=>Ys,UeESVideoFusion:()=>js,UeESViewShed:()=>$s,UeESViewerStatusBar:()=>Bi,UeESVisibilityAnalysis:()=>Zs,UeESVisualObject:()=>vr,UeESVolumeMeasurement:()=>qs,UeESWidget:()=>Ai,UePickedInfo:()=>Ar,bind3DTilesetByTagCallFunc:()=>kt,bindActorByTagCallFunc:()=>Lt,bindImageryByTagCallFunc:()=>Vt,calcFlyToParamCallFunc:()=>ze,callFunctionCallFunc:()=>dt,captureCallFunc:()=>Qt,changeNavigationModeCallFunc:()=>Bt,copyright:()=>vi,createActorByClassCallFunc:()=>Rt,destroyCallFunc:()=>Xe,flyInCallFunc:()=>je,flyInDefaultCameraCallFunc:()=>$e,flyToCallFunc:()=>Je,generateMemReportCallFunc:()=>et,getAllSocketNamesByActorTagCallFunc:()=>yt,getBoundSphereCallFunc:()=>St,getBoundSphereWithChildrenCallFunc:()=>bt,getCameraRelativeHeightCallFunc:()=>Wt,getFillMaterialParamInfoCallFunc:()=>Ht,getGlobalPropertyCallFunc:()=>Tt,getHeightByLonLatCallFunc:()=>ft,getHeightByLonLatsCallFunc:()=>vt,getIdByComponentNameAndHitItemCallFunc:()=>Nt,getLonLatAltToScreenPositionCallFunc:()=>Ut,getObjectByInfoCallFunc:()=>Mt,getStatusCallFunc:()=>Yt,getStrokeMaterialParamInfoCallFunc:()=>It,getVersionCallFunc:()=>Et,highlightActorByTagCallFunc:()=>Xt,mountPakFiles:()=>At,moveObjectsCallFunc:()=>Zt,pickCallFunc:()=>Ct,pickPositionCallFunc:()=>mt,quitCallFunc:()=>pt,refreshTilesetCallFunc:()=>Ye,resetWithCurrentCameraCallFunc:()=>tt,restoreOriginalSceneCallFunc:()=>xt,saveStringToFileCallFunc:()=>Jt,sendCustomMessageCallFunc:()=>zt,setGlobalPropertyCallFunc:()=>wt,setNodePositionCallFunc:()=>ut,setNodeRotationCallFunc:()=>ht,setNodeScaleCallFunc:()=>gt,smoothMoveCallFunc:()=>lt,smoothMoveOnGroundCallFunc:()=>nt,smoothMoveWithRotationCallFunc:()=>rt,smoothMoveWithRotationOnGroundCallFunc:()=>st,startEditingCallFunc:()=>jt,startVoiceCallFunc:()=>Ze,stopEditingCallFunc:()=>$t,stopVoiceCallFunc:()=>qe,uePositionToLonLatAltCallFunc:()=>Ft,unBind3DTilesetByIdCallFunc:()=>Ot,unBind3DTilesetByTagCallFunc:()=>Kt,unBindActorByIDCallFunc:()=>Dt,unBindActorByTagCallFunc:()=>Pt,unBindImageryByIdCallFunc:()=>_t,unBindImageryByTagCallFunc:()=>Gt});const A=require("earthsdk3"),e=require("xbsj-base");var n;const s=()=>Object.assign(Object.assign({},A.ESViewer.createCommonProps()),{apiKey:"",apiUrl:"",secretKey:"",speechVoiceMode:"",geoReferenceOrigin:(0,e.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}),i=Object.assign(Object.assign({},A.ESViewer.defaults),{geoReferenceOrigin:void 0,keepWorldOriginNearCamera:!1,useCache:!0,widgetInteractionDistance:200,memReportInterval:10,sceneControlled:!0,brightness:0,emissiveIntensity:1,statusUpdateInterval:.5,baseUrl:null!==(n=window.location.href)&&void 0!==n?n:""});function o(){const A=s(),e=[];return Object.keys(A).forEach((A=>{e.push(A)})),e}function a(A){const{defaults:e}=mr,t=o(),r={};return t.forEach((t=>{var n;r[t]=null!==(n=A[t])&&void 0!==n?n:e[t]})),r}var c,l,d,u=t(880),h={d:(A,e)=>{for(var t in e)h.o(e,t)&&!h.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},g={};h.d(g,{Dz:()=>MA,g$:()=>V,Lt:()=>k,Q9:()=>O,qf:()=>K,hV:()=>VA,z$:()=>xe,J0:()=>RA,De:()=>HA,$C:()=>TA,al:()=>j,_W:()=>$,Gv:()=>uA,m:()=>hA,tz:()=>Y,Nu:()=>PA,zg:()=>ZA,vp:()=>vA,vU:()=>QA,wF:()=>oA,rv:()=>xA,Nh:()=>DA,ss:()=>jA,qW:()=>gA,QL:()=>dA,cf:()=>Ae,eM:()=>iA,Yd:()=>B,Tk:()=>XA,iM:()=>E,qy:()=>w,ce:()=>S,sK:()=>FA,Ok:()=>bA,q5:()=>kA,g:()=>Le,xl:()=>rA,I:()=>nA,bx:()=>sA,dD:()=>mA,Ib:()=>L,Az:()=>x,Iw:()=>D,qY:()=>R,db:()=>P,mR:()=>BA,Tn:()=>b,rV:()=>aA,gh:()=>q,Mi:()=>AA,j:()=>eA,YB:()=>tA,Yt:()=>lA,i5:()=>cA,x_:()=>EA,Am:()=>ye,eR:()=>G,r8:()=>Z,u3:()=>qA,vd:()=>N,iV:()=>J,jZ:()=>W,SW:()=>z,ZH:()=>X,Ni:()=>Se,lh:()=>_,ZP:()=>fA,bq:()=>I,$f:()=>Ie,eu:()=>CA,Ax:()=>pA,Mc:()=>wA});class B{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 r=`Level: Log\nMsg: ${e}\nCaller: ${A}`;console.log(r)}static Info(A,e,t){if(t>this.verboseLogLevel)return;const r=`Level: Info\nMsg: ${e}`;console.info(r)}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)}}B.verboseLogLevel=5,(d=c||(c={})).LIST_STREAMERS="listStreamers",d.SUBSCRIBE="subscribe",d.UNSUBSCRIBE="unsubscribe",d.ICE_CANDIDATE="iceCandidate",d.OFFER="offer",d.ANSWER="answer",d.DATACHANNELREQUEST="dataChannelRequest",d.SFURECVDATACHANNELREADY="peerDataChannelsReady",d.PONG="pong";class w{sendFilter(A,e){return e}payload(){return B.Log(B.GetStackTrace(),"Sending => \n"+JSON.stringify(this,this.sendFilter,4),6),JSON.stringify(this,this.sendFilter)}}class p extends w{constructor(){super(),this.type=c.LIST_STREAMERS}}class C extends w{constructor(A){super(),this.type=c.SUBSCRIBE,this.streamerId=A}}class m extends w{constructor(){super(),this.type=c.UNSUBSCRIBE}}class f extends w{constructor(A){super(),this.type=c.PONG,this.time=A}}class v extends w{constructor(A,e){super(),this.type=c.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 Q extends w{constructor(A,e){super(),this.type=c.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 U extends w{constructor(){super(),this.type=c.DATACHANNELREQUEST}}class F extends w{constructor(){super(),this.type=c.SFURECVDATACHANNELREADY}}class y{constructor(A){this.type=c.ICE_CANDIDATE,this.candidate=A}payload(){return B.Log(B.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"}(l||(l={}));class E{}class S extends E{}class b{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):B.Error(B.GetStackTrace(),`Message type of ${A} does not have a message handler registered on the frontend - ignoring message.`)}static setupDefaultHandlers(A){A.signallingProtocol.addMessageHandler(l.PING,(e=>{const t=new f((new Date).getTime()).payload();B.Log(B.GetStackTrace(),l.PING+": "+e,6),A.webSocket.send(t)})),A.signallingProtocol.addMessageHandler(l.CONFIG,(e=>{B.Log(B.GetStackTrace(),l.CONFIG,6);const t=JSON.parse(e);A.onConfig(t)})),A.signallingProtocol.addMessageHandler(l.STREAMER_LIST,(e=>{B.Log(B.GetStackTrace(),l.STREAMER_LIST,6);const t=JSON.parse(e);A.onStreamerList(t)})),A.signallingProtocol.addMessageHandler(l.STREAMER_ID_CHANGED,(e=>{B.Log(B.GetStackTrace(),l.STREAMER_ID_CHANGED,6);const t=JSON.parse(e);A.onStreamerIDChanged(t)})),A.signallingProtocol.addMessageHandler(l.PLAYER_COUNT,(e=>{B.Log(B.GetStackTrace(),l.PLAYER_COUNT,6);const t=JSON.parse(e);B.Log(B.GetStackTrace(),"Player Count: "+t.count,6),A.onPlayerCount(t)})),A.signallingProtocol.addMessageHandler(l.ANSWER,(e=>{B.Log(B.GetStackTrace(),l.ANSWER,6);const t=JSON.parse(e);A.onWebRtcAnswer(t)})),A.signallingProtocol.addMessageHandler(l.OFFER,(e=>{B.Log(B.GetStackTrace(),l.OFFER,6);const t=JSON.parse(e);A.onWebRtcOffer(t)})),A.signallingProtocol.addMessageHandler(l.ICE_CANDIDATE,(e=>{B.Log(B.GetStackTrace(),l.ICE_CANDIDATE,6);const t=JSON.parse(e);A.onIceCandidate(t.candidate)})),A.signallingProtocol.addMessageHandler(l.WARNING,(A=>{B.Warning(B.GetStackTrace(),`Warning received: ${A}`)})),A.signallingProtocol.addMessageHandler(l.PEER_DATA_CHANNELS,(e=>{B.Log(B.GetStackTrace(),l.PEER_DATA_CHANNELS,6);const t=JSON.parse(e);A.onWebRtcPeerDataChannels(t)}))}}class I{constructor(){this.WS_OPEN_STATE=1,this.onOpen=new EventTarget,this.onClose=new EventTarget,this.signallingProtocol=new b,b.setupDefaultHandlers(this)}connect(A){B.Log(B.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 B.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=>{B.Error(B.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);B.Log(B.GetStackTrace(),"received => \n"+JSON.stringify(JSON.parse(A.data),void 0,4),6),this.signallingProtocol.handleMessage(e.type,A.data)}handleOnOpen(A){B.Log(B.GetStackTrace(),"Connected to the signalling server via WebSocket",6),this.onOpen.dispatchEvent(new Event("open"))}handleOnError(){B.Error(B.GetStackTrace(),"WebSocket error")}handleOnClose(A){B.Log(B.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 p;this.webSocket.send(A.payload())}sendSubscribe(A){const e=new C(A);this.webSocket.send(e.payload())}sendUnsubscribe(){const A=new m;this.webSocket.send(A.payload())}sendWebRtcOffer(A,e){const t=new v(A,e);this.webSocket.send(t.payload())}sendWebRtcAnswer(A,e){const t=new Q(A,e);this.webSocket.send(t.payload())}sendWebRtcDatachannelRequest(){const A=new U;this.webSocket.send(A.payload())}sendSFURecvDataChannelReady(){const A=new F;this.webSocket.send(A.payload())}sendIceCandidate(A){if(B.Log(B.GetStackTrace(),"Sending Ice Candidate"),this.webSocket&&this.webSocket.readyState===this.WS_OPEN_STATE){const e=new y(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 H{constructor(A){this.videoElementProvider=A,this.audioElement=document.createElement("Audio"),this.videoElementProvider.setAudioElement(this.audioElement)}handleOnTrack(A){if(B.Log(B.GetStackTrace(),"handleOnTrack "+JSON.stringify(A.streams),6),"probator"==A.track.id)return;const e=this.videoElementProvider.getVideoElement();if(A.track&&B.Log(B.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 B.Log(B.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,B.Log(B.GetStackTrace(),"Created new audio element to play separate audio stream."))}}class T{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,r=0;const n=this.rootDiv.clientWidth/this.rootDiv.clientHeight,s=this.freezeFrameWidth/this.freezeFrameHeight;n<s?(A=this.rootDiv.clientWidth,e=Math.floor(this.rootDiv.clientWidth/s),t=Math.floor(.5*(this.rootDiv.clientHeight-e)),r=0):(A=Math.floor(this.rootDiv.clientHeight*s),e=this.rootDiv.clientHeight,t=0,r=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=r+"px",this.imageElement.style.top=t+"px"}}}class M{constructor(A){this.receiving=!1,this.size=0,this.jpeg=void 0,this.valid=!1,this.freezeFrameDelay=50,this.freezeFrame=new T(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,B.Log(B.GetStackTrace(),`received first chunk of freeze frame: ${this.jpeg.length}/${this.size}`,6);this.jpeg.length===this.size?(this.receiving=!1,this.valid=!0,B.Log(B.GetStackTrace(),`received complete freeze frame ${this.size}`,6),this.updateFreezeFrameAndShow(this.jpeg,e)):this.jpeg.length>this.size&&(B.Error(B.GetStackTrace(),`received bigger freeze frame than advertised: ${this.jpeg.length}/${this.size}`),this.jpeg=void 0,this.receiving=!1)}}class L{constructor(A,e,t,r,n=()=>{}){this.onChange=n,this.onChangeEmit=()=>{},this.id=A,this.description=t,this.label=e,this.value=r}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 x extends L{constructor(A,e,t,r,n,s=()=>{}){super(A,e,t,r,s);const i=new URLSearchParams(window.location.search);if(n&&i.has(this.id)){const A=this.getUrlParamFlag();this.flag=A}else this.flag=r;this.useUrlParams=n}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 D extends L{constructor(A,e,t,r,n,s,i,o=()=>{}){super(A,e,t,s,o),this._min=r,this._max=n;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 P extends L{constructor(A,e,t,r,n,s=()=>{}){super(A,e,t,r,s);const i=new URLSearchParams(window.location.search);if(n&&i.has(this.id)){const A=this.getUrlParamText();this.text=A}else this.text=r;this.useUrlParams=n}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 R extends L{constructor(A,e,t,r,n,s,i=()=>{}){super(A,e,t,r,i),this.options=n;const o=new URLSearchParams(window.location.search),a=s&&o.has(this.id)?this.getUrlParamText():r;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 k extends Event{constructor(A){super("afkWarningActivate"),this.data=A}}class K extends Event{constructor(A){super("afkWarningUpdate"),this.data=A}}class O extends Event{constructor(){super("afkWarningDeactivate")}}class V extends Event{constructor(){super("afkTimedOut")}}class G extends Event{constructor(A){super("videoEncoderAvgQP"),this.data=A}}class _ extends Event{constructor(){super("webRtcSdp")}}class N extends Event{constructor(){super("webRtcAutoConnect")}}class W extends Event{constructor(){super("webRtcConnecting")}}class J extends Event{constructor(){super("webRtcConnected")}}class X extends Event{constructor(){super("webRtcFailed")}}class z extends Event{constructor(A){super("webRtcDisconnected"),this.data=A}}class Y extends Event{constructor(A){super("dataChannelOpen"),this.data=A}}class j extends Event{constructor(A){super("dataChannelClose"),this.data=A}}class $ extends Event{constructor(A){super("dataChannelError"),this.data=A}}class Z extends Event{constructor(){super("videoInitialized")}}class q extends Event{constructor(){super("streamLoading")}}class AA extends Event{constructor(){super("streamConnect")}}class eA extends Event{constructor(){super("streamDisconnect")}}class tA extends Event{constructor(){super("streamReconnect")}}class rA extends Event{constructor(A){super("playStreamError"),this.data=A}}class nA extends Event{constructor(){super("playStream")}}class sA extends Event{constructor(A){super("playStreamRejected"),this.data=A}}class iA extends Event{constructor(A){super("loadFreezeFrame"),this.data=A}}class oA extends Event{constructor(){super("hideFreezeFrame")}}class aA extends Event{constructor(A){super("statsReceived"),this.data=A}}class cA extends Event{constructor(A){super("streamerListMessage"),this.data=A}}class lA extends Event{constructor(A){super("StreamerIDChangedMessage"),this.data=A}}class dA extends Event{constructor(A){super("latencyTestResult"),this.data=A}}class uA extends Event{constructor(A){super("dataChannelLatencyTestResponse"),this.data=A}}class hA extends Event{constructor(A){super("dataChannelLatencyTestResult"),this.data=A}}class gA extends Event{constructor(A){super("initialSettings"),this.data=A}}class BA extends Event{constructor(A){super("settingsChanged"),this.data=A}}class wA extends Event{constructor(){super("xrSessionStarted")}}class pA extends Event{constructor(){super("xrSessionEnded")}}class CA extends Event{constructor(A){super("xrFrame"),this.data=A}}class mA extends Event{constructor(A){super("playerCount"),this.data=A}}class fA extends Event{constructor(){super("webRtcTCPRelayDetected")}}class vA extends EventTarget{dispatchEvent(A){return super.dispatchEvent(A)}addEventListener(A,e){super.addEventListener(A,e)}removeEventListener(A,e){super.removeEventListener(A,e)}}class QA{}QA.AutoConnect="AutoConnect",QA.AutoPlayVideo="AutoPlayVideo",QA.AFKDetection="TimeoutIfIdle",QA.BrowserSendOffer="OfferToReceive",QA.HoveringMouseMode="HoveringMouse",QA.ForceMonoAudio="ForceMonoAudio",QA.ForceTURN="ForceTURN",QA.FakeMouseWithTouches="FakeMouseWithTouches",QA.IsQualityController="ControlsQuality",QA.MatchViewportResolution="MatchViewportRes",QA.StartVideoMuted="StartVideoMuted",QA.SuppressBrowserKeys="SuppressBrowserKeys",QA.UseMic="UseMic",QA.KeyboardInput="KeyboardInput",QA.MouseInput="MouseInput",QA.TouchInput="TouchInput",QA.GamepadInput="GamepadInput",QA.XRControllerInput="XRControllerInput",QA.WaitForStreamer="WaitForStreamer",QA.HideUI="HideUI";const UA=A=>Object.getOwnPropertyNames(QA).some((e=>QA[e]===A));class FA{}FA.AFKTimeoutSecs="AFKTimeout",FA.AFKCountdownSecs="AFKCountdown",FA.MinQP="MinQP",FA.MaxQP="MaxQP",FA.WebRTCFPS="WebRTCFPS",FA.WebRTCMinBitrate="WebRTCMinBitrate",FA.WebRTCMaxBitrate="WebRTCMaxBitrate",FA.MaxReconnectAttempts="MaxReconnectAttempts",FA.StreamerAutoJoinInterval="StreamerAutoJoinInterval";const yA=A=>Object.getOwnPropertyNames(FA).some((e=>FA[e]===A));class EA{}EA.SignallingServerUrl="ss";const SA=A=>Object.getOwnPropertyNames(EA).some((e=>EA[e]===A));class bA{}bA.PreferredCodec="PreferredCodec",bA.StreamerId="StreamerId";const IA=A=>Object.getOwnPropertyNames(bA).some((e=>bA[e]===A));class HA{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(EA.SignallingServerUrl,new P(EA.SignallingServerUrl,"Signalling url","Url of the signalling server",e&&e.hasOwnProperty(EA.SignallingServerUrl)?e[EA.SignallingServerUrl]:("https:"===location.protocol?"wss://":"ws://")+window.location.hostname+("80"===window.location.port||""===window.location.port?"":`:${window.location.port}`),A)),this.optionParameters.set(bA.StreamerId,new R(bA.StreamerId,"Streamer ID","The ID of the streamer to stream.",e&&e.hasOwnProperty(bA.StreamerId)?e[bA.StreamerId]:"",[],A)),this.optionParameters.set(bA.PreferredCodec,new R(bA.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(bA.PreferredCodec)?[e[bA.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 r=t.mimeType.split("/")[1]+" "+(t.sdpFmtpLine||"");null!==e.exec(r)&&A.push(r)})),A}(),A)),this.flags.set(QA.AutoConnect,new x(QA.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(QA.AutoConnect))&&e[QA.AutoConnect],A)),this.flags.set(QA.AutoPlayVideo,new x(QA.AutoPlayVideo,"Auto play video","When video is ready automatically start playing it as opposed to showing a play button.",!e||!e.hasOwnProperty(QA.AutoPlayVideo)||e[QA.AutoPlayVideo],A)),this.flags.set(QA.BrowserSendOffer,new x(QA.BrowserSendOffer,"Browser send offer","Browser will initiate the WebRTC handshake by sending the offer to the streamer",!(!e||!e.hasOwnProperty(QA.BrowserSendOffer))&&e[QA.BrowserSendOffer],A)),this.flags.set(QA.UseMic,new x(QA.UseMic,"Use microphone","Make browser request microphone access and open an input audio track.",!(!e||!e.hasOwnProperty(QA.UseMic))&&e[QA.UseMic],A)),this.flags.set(QA.StartVideoMuted,new x(QA.StartVideoMuted,"Start video muted","Video will start muted if true.",!(!e||!e.hasOwnProperty(QA.StartVideoMuted))&&e[QA.StartVideoMuted],A)),this.flags.set(QA.SuppressBrowserKeys,new x(QA.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(QA.SuppressBrowserKeys)||e[QA.SuppressBrowserKeys],A)),this.flags.set(QA.IsQualityController,new x(QA.IsQualityController,"Is quality controller?","True if this peer controls stream quality",!e||!e.hasOwnProperty(QA.IsQualityController)||e[QA.IsQualityController],A)),this.flags.set(QA.ForceMonoAudio,new x(QA.ForceMonoAudio,"Force mono audio","Force browser to request mono audio in the SDP",!(!e||!e.hasOwnProperty(QA.ForceMonoAudio))&&e[QA.ForceMonoAudio],A)),this.flags.set(QA.ForceTURN,new x(QA.ForceTURN,"Force TURN","Only generate TURN/Relayed ICE candidates.",!(!e||!e.hasOwnProperty(QA.ForceTURN))&&e[QA.ForceTURN],A)),this.flags.set(QA.AFKDetection,new x(QA.AFKDetection,"AFK if idle","Timeout the experience if user is AFK for a period.",!(!e||!e.hasOwnProperty(QA.AFKDetection))&&e[QA.AFKDetection],A)),this.flags.set(QA.MatchViewportResolution,new x(QA.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(QA.MatchViewportResolution))&&e[QA.MatchViewportResolution],A)),this.flags.set(QA.HoveringMouseMode,new x(QA.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(QA.HoveringMouseMode))&&e[QA.HoveringMouseMode],A,((A,e)=>{e.label=`Control Scheme: ${A?"Hovering":"Locked"} Mouse`}))),this.flags.set(QA.FakeMouseWithTouches,new x(QA.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(QA.FakeMouseWithTouches))&&e[QA.FakeMouseWithTouches],A)),this.flags.set(QA.KeyboardInput,new x(QA.KeyboardInput,"Keyboard input","If enabled, send keyboard events to streamer",!e||!e.hasOwnProperty(QA.KeyboardInput)||e[QA.KeyboardInput],A)),this.flags.set(QA.MouseInput,new x(QA.MouseInput,"Mouse input","If enabled, send mouse events to streamer",!e||!e.hasOwnProperty(QA.MouseInput)||e[QA.MouseInput],A)),this.flags.set(QA.TouchInput,new x(QA.TouchInput,"Touch input","If enabled, send touch events to streamer",!e||!e.hasOwnProperty(QA.TouchInput)||e[QA.TouchInput],A)),this.flags.set(QA.GamepadInput,new x(QA.GamepadInput,"Gamepad input","If enabled, send gamepad events to streamer",!e||!e.hasOwnProperty(QA.GamepadInput)||e[QA.GamepadInput],A)),this.flags.set(QA.XRControllerInput,new x(QA.XRControllerInput,"XR controller input","If enabled, send XR controller events to streamer",!e||!e.hasOwnProperty(QA.XRControllerInput)||e[QA.XRControllerInput],A)),this.flags.set(QA.WaitForStreamer,new x(QA.WaitForStreamer,"Wait for streamer","Will continue trying to connect to the first streamer available.",!e||!e.hasOwnProperty(QA.WaitForStreamer)||e[QA.WaitForStreamer],A)),this.flags.set(QA.HideUI,new x(QA.HideUI,"Hide the UI overlay","Will hide all UI overlay details",!(!e||!e.hasOwnProperty(QA.HideUI))&&e[QA.HideUI],A)),this.numericParameters.set(FA.AFKTimeoutSecs,new D(FA.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(FA.AFKTimeoutSecs)?e[FA.AFKTimeoutSecs]:120,A)),this.numericParameters.set(FA.AFKCountdownSecs,new D(FA.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(FA.MaxReconnectAttempts,new D(FA.MaxReconnectAttempts,"Max Reconnects","Maximum number of reconnects the application will attempt when a streamer disconnects.",0,999,e&&e.hasOwnProperty(FA.MaxReconnectAttempts)?e[FA.MaxReconnectAttempts]:3,A)),this.numericParameters.set(FA.MinQP,new D(FA.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(FA.MinQP)?e[FA.MinQP]:0,A)),this.numericParameters.set(FA.MaxQP,new D(FA.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(FA.MaxQP)?e[FA.MaxQP]:51,A)),this.numericParameters.set(FA.WebRTCFPS,new D(FA.WebRTCFPS,"Max FPS","The maximum FPS that WebRTC will try to transmit frames at.",1,999,e&&e.hasOwnProperty(FA.WebRTCFPS)?e[FA.WebRTCFPS]:60,A)),this.numericParameters.set(FA.WebRTCMinBitrate,new D(FA.WebRTCMinBitrate,"Min Bitrate (kbps)","The minimum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(FA.WebRTCMinBitrate)?e[FA.WebRTCMinBitrate]:0,A)),this.numericParameters.set(FA.WebRTCMaxBitrate,new D(FA.WebRTCMaxBitrate,"Max Bitrate (kbps)","The maximum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(FA.WebRTCMaxBitrate)?e[FA.WebRTCMaxBitrate]:0,A)),this.numericParameters.set(FA.StreamerAutoJoinInterval,new D(FA.StreamerAutoJoinInterval,"Streamer Auto Join Interval (ms)","Delay between retries when waiting for an available streamer.",500,9e5,e&&e.hasOwnProperty(FA.StreamerAutoJoinInterval)?e[FA.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:B.Warning(B.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:B.Warning(B.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:B.Warning(B.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),r=t.options;r.includes(e)||(r.push(e),t.options=r),t.selected=e}else B.Warning(B.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:B.Warning(B.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))UA(e)?this.setFlagEnabled(e,A[e]):yA(e)?this.setNumericSetting(e,A[e]):SA(e)?this.setTextSetting(e,A[e]):IA(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 BA({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 BA({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 BA({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 BA({id:t.id,type:"option",value:e,target:t})))}}}var TA;!function(A){A[A.LockedMouse=0]="LockedMouse",A[A.HoveringMouse=1]="HoveringMouse"}(TA||(TA={}));class MA{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 O))}startAfkWarningTimer(){this.config.getNumericSettingValue(FA.AFKTimeoutSecs)>0&&this.config.isFlagEnabled(QA.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(QA.AFKDetection)&&(clearTimeout(this.warnTimer),this.warnTimer=setTimeout((()=>this.activateAfkEvent()),1e3*this.config.getNumericSettingValue(FA.AFKTimeoutSecs)))}activateAfkEvent(){this.pauseAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new k({countDown:this.countDown,dismissAfk:this.onDismissAfk})),this.countDown=this.config.getNumericSettingValue(FA.AFKCountdownSecs),this.countdownActive=!0,this.pixelStreaming.dispatchEvent(new K({countDown:this.countDown})),this.config.isFlagEnabled(QA.HoveringMouseMode)||document.exitPointerLock&&document.exitPointerLock(),this.countDownTimer=setInterval((()=>{this.countDown--,0==this.countDown?(this.pixelStreaming.dispatchEvent(new V),this.onAFKTimedOutCallback(),B.Log(B.GetStackTrace(),"You have been disconnected due to inactivity"),this.stopAfkWarningTimer()):this.pixelStreaming.dispatchEvent(new K({countDown:this.countDown}))}),1e3)}}class LA{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;B.Log(B.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;B.Log(B.GetStackTrace(),`Data Channel (${this.label}) closed.`,7),this.onClose(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnMessage(A){B.Log(B.GetStackTrace(),`Data Channel (${this.label}) message: ${A}`,8)}handleOnError(A){var e;B.Log(B.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 xA{}class DA{}class PA{}class RA{}class kA{}class KA{}class OA{}class VA{constructor(){this.inboundVideoStats=new DA,this.inboundAudioStats=new xA,this.DataChannelStats=new PA,this.outBoundVideoStats=new kA,this.sessionStats=new KA,this.streamStats=new OA,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:B.Error(B.GetStackTrace(),"unhandled Stat Type"),B.Log(B.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 RA;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 RA;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:B.Log(B.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 r=Date.now()-A;this.sessionStats.runTime=new Date(r).toISOString().substr(11,8).toString();const n=null===e?"Not sent yet":e?"true":"false";this.sessionStats.controlsStreamInput=n,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 GA=(_A={parseRtpParameters:()=>u.parseRtpParameters,splitSections:()=>u.splitSections},NA={},h.d(NA,_A),NA);var _A,NA;class WA{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 JA,XA,zA=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class YA{constructor(A,e,t){this.config=e,this.createPeerConnection(A,t)}createPeerConnection(A,e){this.config.isFlagEnabled(QA.ForceTURN)&&(A.iceTransportPolicy="relay",B.Log(B.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 VA,this.preferredCodec=e,this.updateCodecSelection=!0}createOffer(A,e){return zA(this,void 0,void 0,(function*(){B.Log(B.GetStackTrace(),"Create Offer",6);const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,r="https:"===location.protocol;let n=e.isFlagEnabled(QA.UseMic);!n||t||r||(n=!1,B.Error(B.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),B.Error(B.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.setupTransceiversAsync(n).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,n),null===(e=this.peerConnection)||void 0===e||e.setLocalDescription(A),this.onSendWebRTCOffer(A)})).catch((()=>{this.showTextOverlaySetupFailure()}))}))}))}receiveOffer(A,e){var t;return zA(this,void 0,void 0,(function*(){B.Log(B.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,r="https:"===location.protocol;let n=e.isFlagEnabled(QA.UseMic);!n||t||r||(n=!1,B.Error(B.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),B.Error(B.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(bA.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A)),this.setupTransceiversAsync(n).finally((()=>{var A;null===(A=this.peerConnection)||void 0===A||A.createAnswer().then((A=>{var e;return A.sdp=this.mungeSDP(A.sdp,n),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((()=>{B.Error(B.GetStackTrace(),"createAnswer() failed")}))}))}))}))}receiveAnswer(A){var e;null===(e=this.peerConnection)||void 0===e||e.setRemoteDescription(A),this.config.setOptionSettingOptions(bA.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(bA.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"),r="maxaveragebitrate=510000;";return e&&(r+="sprop-maxcapturerate=48000;"),r+=this.config.isFlagEnabled(QA.ForceMonoAudio)?"stereo=0;":"stereo=1;",r+="useinbandfec=1",t=t.replace("useinbandfec=1",r),t}handleOnIce(A){var e;B.Log(B.GetStackTrace(),"peerconnection handleOnIce",6),this.config.isFlagEnabled(QA.ForceTURN)&&A.candidate.indexOf("relay")<0?B.Info(B.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){B.Log(B.GetStackTrace(),"signaling state change: "+A,6)}handleIceConnectionStateChange(A){B.Log(B.GetStackTrace(),"ice connection state change: "+A,6),this.onIceConnectionStateChange(A)}handleIceGatheringStateChange(A){B.Log(B.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),r=this.config.getSettingOption(bA.PreferredCodec).options;for(const A of t)if(r.includes(A))e.push(A);else{const t=A.split(" ")[0];for(const A of r)if(A.includes(t)){e.push(A);break}}return e}setupTransceiversAsync(A){var e,t,r,n,s,i,o,a,c,l,d,u;return zA(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===(r=this.peerConnection)||void 0===r||r.addTransceiver("video",{direction:"recvonly"}),RTCRtpReceiver.getCapabilities&&""!=this.preferredCodec)for(const A of null!==(s=null===(n=this.peerConnection)||void 0===n?void 0:n.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]:""},r=[t];RTCRtpReceiver.getCapabilities("video").codecs.forEach((A=>{(A.mimeType!=t.mimeType||(null==A?void 0:A.sdpFmtpLine)!=(null==t?void 0:t.sdpFmtpLine))&&r.push(A)}));for(const A of r)void 0!==(null==A?void 0:A.sdpFmtpLine)&&""!==A.sdpFmtpLine||delete A.sdpFmtpLine;A.setCodecPreferences(r)}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(WA.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,GA.splitSections)(A.sdp);return t.shift(),t.forEach((A=>{const{codecs:t}=(0,GA.parseRtpParameters)(A),r=/(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!==r.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 jA{constructor(){this.PixelStreamingSettings=new $A,this.EncoderSettings=new ZA,this.WebRTCSettings=new qA}ueCompatible(){null!=this.WebRTCSettings.MaxFPS&&(this.WebRTCSettings.FPS=this.WebRTCSettings.MaxFPS)}}class $A{}class ZA{}class qA{}class Ae{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||(B.Log(B.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||(B.Log(B.GetStackTrace(),`Setting CaptureToSendMs Ms \n ${this.PostCaptureTimeMs} \n ${this.PreCaptureTimeMs}`,6),this.CaptureToSendMs=this.PostCaptureTimeMs-this.PreCaptureTimeMs)}}class ee{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(),B.Log(B.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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(),B.Log(B.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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),B.Log(B.GetStackTrace(),`Received file chunk: ${e.data.length}/${e.size}`,6),e.data.length===e.size){e.receiving=!1,e.valid=!0,B.Log(B.GetStackTrace(),"Received complete file",6);const A=(new Date).getTime()-e.timestampStart,t=Math.round(16*e.size*1024/A);B.Log(B.GetStackTrace(),`Average transfer bitrate: ${t}kb/s over ${A/1e3} seconds`,6);const r=new Blob(e.data,{type:e.mimetype}),n=document.createElement("a");n.setAttribute("href",URL.createObjectURL(r)),n.setAttribute("download",`transfer.${e.extension}`),document.body.append(n),n.remove()}else e.data.length>e.size&&(e.receiving=!1,B.Error(B.GetStackTrace(),`Received bigger file than advertised: ${e.data.length}/${e.size}`))}}class te{constructor(){this.mimetype="",this.extension="",this.receiving=!1,this.size=0,this.data=[],this.valid=!1}}class re{}re.mainButton=0,re.auxiliaryButton=1,re.secondaryButton=2,re.fourthButton=3,re.fifthButton=4;class ne{}ne.primaryButton=1,ne.secondaryButton=2,ne.auxiliaryButton=4,ne.fourthButton=8,ne.fifthButton=16;class se{constructor(){this.unregisterCallbacks=[]}addUnregisterCallback(A){this.unregisterCallbacks.push(A)}unregisterAll(){for(const A of this.unregisterCallbacks)A();this.unregisterCallbacks=[]}}class ie{constructor(A,e,t){this.touchEventListenerTracker=new se,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t;const r=A=>this.onTouchStart(A),n=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);document.addEventListener("touchstart",r,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),document.addEventListener("touchmove",s,{passive:!1}),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchstart",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchend",n))),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 oe(e.identifier,e.clientX-this.videoElementParentClientRect.left,e.clientY-this.videoElementParentClientRect.top);const t=this.videoElementProvider.getVideoParentElement(),r=new MouseEvent("mouseenter",e);t.dispatchEvent(r);const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(this.fakeTouchFinger.x,this.fakeTouchFinger.y);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([re.mainButton,n.x,n.y])}A.preventDefault()}}onTouchEnd(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.videoElementProvider.getVideoParentElement(),t=this.toStreamerMessagesProvider.toStreamerHandlers;for(let r=0;r<A.changedTouches.length;r++){const n=A.changedTouches[r];if(n.identifier===this.fakeTouchFinger.id){const A=n.clientX-this.videoElementParentClientRect.left,r=n.clientY-this.videoElementParentClientRect.top,s=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,r);t.get("MouseUp")([re.mainButton,s.x,s.y]);const i=new MouseEvent("mouseleave",n);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 r=A.touches[t];if(r.identifier===this.fakeTouchFinger.id){const A=r.clientX-this.videoElementParentClientRect.left,t=r.clientY-this.videoElementParentClientRect.top,n=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,t),s=this.coordinateConverter.normalizeAndQuantizeSigned(A-this.fakeTouchFinger.x,t-this.fakeTouchFinger.y);e.get("MouseMove")([n.x,n.y,s.x,s.y]),this.fakeTouchFinger.x=A,this.fakeTouchFinger.y=t;break}}A.preventDefault()}}class oe{constructor(A,e,t){this.id=A,this.x=e,this.y=t}}class ae{}ae.backSpace=8,ae.shift=16,ae.control=17,ae.alt=18,ae.rightShift=253,ae.rightControl=254,ae.rightAlt=255;class ce{constructor(A,e,t){this.keyboardEventListenerTracker=new se,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),r=A=>this.handleOnKeyPress(A);document.addEventListener("compositionend",A),document.addEventListener("keydown",e),document.addEventListener("keyup",t),document.addEventListener("keypress",r),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",r)))}unregisterKeyBoardEvents(){this.keyboardEventListenerTracker.unregisterAll()}handleOnKeyDown(A){const e=this.getKeycode(A);e&&229!==e&&(B.Log(B.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===ae.backSpace&&document.dispatchEvent(new KeyboardEvent("keypress",{charCode:ae.backSpace})),this.config.isFlagEnabled(QA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyUp(A){const e=this.getKeycode(A);e&&(B.Log(B.GetStackTrace(),`key up ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyUp")([e]),this.config.isFlagEnabled(QA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyPress(A){if(!("charCode"in A))return void B.Warning(B.GetStackTrace(),"KeyboardEvent.charCode is deprecated in this browser, cannot send key press.");const e=A.charCode;B.Log(B.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]:(B.Warning(B.GetStackTrace(),`Keyboard code of ${e.code} is not supported in our mapping, ignoring this key.`),null)}return A.keyCode===ae.shift&&"ShiftRight"===A.code?ae.rightShift:A.keyCode===ae.control&&"ControlRight"===A.code?ae.rightControl:A.keyCode===ae.alt&&"AltRight"===A.code?ae.rightAlt:A.keyCode}isKeyCodeBrowserKey(A){return A>=112&&A<=123||9===A}}class le{constructor(A,e,t){this.x=0,this.y=0,this.updateMouseMovePositionEvent=A=>{this.updateMouseMovePosition(A)},this.mouseEventListenerTracker=new se,this.videoElementProvider=A,this.mouseController=e,this.activeKeysProvider=t;const r=this.videoElementProvider.getVideoParentElement();this.x=r.getBoundingClientRect().width/2,this.y=r.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)B.Log(B.GetStackTrace(),"Pointer locked",6),document.addEventListener("mousemove",this.updateMouseMovePositionEvent,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1)));else{B.Log(B.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),r=[];t.forEach((A=>{r[A]})),r.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,r=this.videoElementProvider.getVideoParentElement().clientHeight;this.x+=A.movementX,this.y+=A.movementY,this.x>t&&(this.x-=t),this.y>r&&(this.y-=r),this.x<0&&(this.x=t+this.x),this.y<0&&(this.y=r-this.y),this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y);const n=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);e.get("MouseMove")([this.coord.x,this.coord.y,n.x,n.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 de{constructor(A){this.mouseController=A}unregisterMouseEvents(){}updateMouseMovePosition(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;B.Log(B.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;B.Log(B.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;B.Log(B.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()&&(B.Log(B.GetStackTrace(),"onMouse press",6),this.mouseController.pressMouseButtons(A.buttons,A.offsetX,A.offsetY))}handleReleaseMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(B.Log(B.GetStackTrace(),"onMouse release",6),this.mouseController.releaseMouseButtons(A.buttons,A.offsetX,A.offsetY))}}class ue{constructor(A,e,t,r){this.mouseEventListenerTracker=new se,this.toStreamerMessagesProvider=A,this.coordinateConverter=t,this.videoElementProvider=e,this.activeKeysProvider=r,this.registerMouseEnterAndLeaveEvents()}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}registerLockedMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new le(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 r=()=>t.lockStateChange();document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("pointerlockchange",r,!1))),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mozpointerlockchange",r,!1)));const n=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleMouseWheel(A),o=A=>t.handleMouseDouble(A);e.addEventListener("mousedown",n),e.addEventListener("mouseup",s),e.addEventListener("wheel",i),e.addEventListener("dblclick",o),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",n))),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 de(A),r=A=>t.updateMouseMovePosition(A),n=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",r),e.addEventListener("mousedown",n),e.addEventListener("mouseup",s),e.addEventListener("contextmenu",i),e.addEventListener("wheel",o),e.addEventListener("dblclick",a),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousemove",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",n))),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()&&(B.Log(B.GetStackTrace(),"Mouse Entered",6),this.sendMouseEnter(),this.pressMouseButtons(A.buttons,A.x,A.y))},t=A=>{this.videoElementProvider.isVideoReady()&&(B.Log(B.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 r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&ne.primaryButton&&this.sendMouseUp(re.mainButton,r.x,r.y),A&ne.secondaryButton&&this.sendMouseUp(re.secondaryButton,r.x,r.y),A&ne.auxiliaryButton&&this.sendMouseUp(re.auxiliaryButton,r.x,r.y),A&ne.fourthButton&&this.sendMouseUp(re.fourthButton,r.x,r.y),A&ne.fifthButton&&this.sendMouseUp(re.fifthButton,r.x,r.y)}pressMouseButtons(A,e,t){if(!this.videoElementProvider.isVideoReady())return;const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&ne.primaryButton&&this.sendMouseDown(re.mainButton,r.x,r.y),A&ne.secondaryButton&&this.sendMouseDown(re.secondaryButton,r.x,r.y),A&ne.auxiliaryButton&&this.sendMouseDown(re.auxiliaryButton,r.x,r.y),A&ne.fourthButton&&this.sendMouseDown(re.fourthButton,r.x,r.y),A&ne.fifthButton&&this.sendMouseDown(re.fifthButton,r.x,r.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()&&(B.Log(B.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;B.Log(B.GetStackTrace(),`mouse button ${A} up at (${e}, ${t})`,6);const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A,r.x,r.y])}}class he{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 se,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t,this.videoElementParent=e.getVideoElement();const r=A=>this.onTouchStart(A),n=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);this.videoElementParent.addEventListener("touchstart",r),this.videoElementParent.addEventListener("touchend",n),this.videoElementParent.addEventListener("touchmove",s),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchstart",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchend",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchmove",s))),B.Log(B.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&&B.Log(B.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]);B.Log(B.GetStackTrace(),"touch start",6),this.emitTouchData("TouchStart",A.changedTouches),A.preventDefault()}}onTouchEnd(A){if(this.videoElementProvider.isVideoReady()){B.Log(B.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()&&(B.Log(B.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(),r=this.toStreamerMessagesProvider.toStreamerHandlers;for(let n=0;n<e.length;n++){const s=1,i=e[n],o=i.clientX-t.left,a=i.clientY-t.top;B.Log(B.GetStackTrace(),`F${this.fingerIds.get(i.identifier)}=(${o}, ${a})`,6);const c=this.coordinateConverter.normalizeAndQuantizeUnsigned(o,a);switch(A){case"TouchStart":r.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":r.get("TouchEnd")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*i.force,c.inRange?1:0]);break;case"TouchMove":r.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 ge{constructor(A){this.gamePadEventListenerTracker=new se,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){B.Log(B.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,B.Log(B.GetStackTrace(),"gamepad: "+e.id+" connected",6),window.requestAnimationFrame((()=>this.updateStatus())),this.onGamepadConnected()}gamePadDisconnectHandler(A){B.Log(B.GetStackTrace(),"Gamepad disconnect handler",6),B.Log(B.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,r=e.currentState;for(let r=0;r<e.currentState.buttons.length;r++){const n=e.currentState.buttons[r],s=e.prevState.buttons[r];n.pressed?r==JA.LeftTrigger?A.get("GamepadAnalog")([t,5,n.value]):r==JA.RightTrigger?A.get("GamepadAnalog")([t,6,n.value]):A.get("GamepadButtonPressed")([t,r,s.pressed?1:0]):!n.pressed&&s.pressed&&(r==JA.LeftTrigger?A.get("GamepadAnalog")([t,5,0]):r==JA.RightTrigger?A.get("GamepadAnalog")([t,6,0]):A.get("GamepadButtonReleased")([t,r,0]))}for(let e=0;e<r.axes.length;e+=2){const n=parseFloat(r.axes[e].toFixed(4)),s=-parseFloat(r.axes[e+1].toFixed(4));A.get("GamepadAnalog")([t,e+1,n]),A.get("GamepadAnalog")([t,e+2,s])}this.controllers[t].prevState=r}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"}(JA||(JA={}));class Be{constructor(A,e,t){this.activeKeys=new we,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t}registerKeyBoard(A){B.Log(B.GetStackTrace(),"Register Keyboard Events",7);const e=new ce(this.toStreamerMessagesProvider,A,this.activeKeys);return e.registerKeyBoardEvents(),e}registerMouse(A){B.Log(B.GetStackTrace(),"Register Mouse Events",7);const e=new ue(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter,this.activeKeys);switch(A){case TA.LockedMouse:e.registerLockedMouseEvents(e);break;case TA.HoveringMouse:e.registerHoveringMouseEvents(e);break;default:B.Info(B.GetStackTrace(),"unknown Control Scheme Type Defaulting to Locked Mouse Events"),e.registerLockedMouseEvents(e)}return e}registerTouch(A,e){if(B.Log(B.GetStackTrace(),"Registering Touch",6),A){const A=new ie(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter);return A.setVideoElementParentClientRect(e),A}return new he(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter)}registerGamePad(){return B.Log(B.GetStackTrace(),"Register Game Pad",7),new ge(this.toStreamerMessagesProvider)}}class we{constructor(){this.activeKeys=[],this.activeKeys=[]}getActiveKeys(){return this.activeKeys}}class pe{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(QA.StartVideoMuted),this.videoElement.autoplay=this.config.isFlagEnabled(QA.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(QA.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 B.Log(B.GetStackTrace(),"Resizing too often - skipping",6),clearTimeout(this.resizeTimeoutHandle),this.resizeTimeoutHandle=window.setTimeout((()=>this.updateVideoStreamSize()),100)}}class Ce{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 XA.ToStreamer:this.toStreamerHandlers.set(e,t);break;case XA.FromStreamer:this.fromStreamerHandlers.set(e,t);break;default:B.Log(B.GetStackTrace(),`Unknown message direction ${A}`)}}}!function(A){A[A.ToStreamer=0]="ToStreamer",A[A.FromStreamer=1]="FromStreamer"}(XA||(XA={}));class me{constructor(){this.responseEventListeners=new Map}addResponseEventListener(A,e){this.responseEventListeners.set(A,e)}removeResponseEventListener(A){this.responseEventListeners.delete(A)}onResponse(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.Response",6);const e=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.GetStackTrace(),e,6),this.responseEventListeners.forEach((A=>{A(e)}))}}class fe{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 B.Error(B.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 B.Error(B.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 r=0;const n=new TextEncoder;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":r+=1;break;case"uint16":case"int16":r+=2;break;case"float":r+=4;break;case"double":r+=8;break;case"string":r+=2,r+=2*n.encode(A).length}}));const s=new DataView(new ArrayBuffer(r+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):B.Info(B.GetStackTrace(),`Data channel cannot send yet, skipping sending message: ${A} - ${new Uint8Array(s.buffer)}`)}}class ve{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 Qe{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),B.Log(B.GetStackTrace(),`Message Sent: ${new Uint8Array(A)}`,6),this.resetAfkWarningTimerOnDataSend()):B.Error(B.GetStackTrace(),`Message Failed: ${new Uint8Array(A)}`)}resetAfkWarningTimerOnDataSend(){}}class Ue{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,r=e/A,n=(this.videoElement.videoHeight||1)/t;r>n?(B.Log(B.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio > videoAspectRatio",6),this.ratio=r/n,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerBigger(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerBigger(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerBigger(A,e)):(B.Log(B.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio <= videoAspectRatio",6),this.ratio=n/r,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,r=this.ratio*(e/this.videoElementParent.clientHeight-.5)+.5;return t<0||t>1||r<0||r>1?new Fe(!1,65535,65535):new Fe(!0,65536*t,65536*r)}denormalizeAndUnquantizeUnsignedPlayerBigger(A,e){const t=A/65536,r=(e/65536-.5)/this.ratio+.5;return new ye(t*this.videoElementParent.clientWidth,r*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerBigger(A,e){const t=A/(.5*this.videoElementParent.clientWidth),r=this.ratio*e/(.5*this.videoElementParent.clientHeight);return new Ee(32767*t,32767*r)}normalizeAndQuantizeUnsignedPlayerSmaller(A,e){const t=this.ratio*(A/this.videoElementParent.clientWidth-.5)+.5,r=e/this.videoElementParent.clientHeight;return t<0||t>1||r<0||r>1?new Fe(!1,65535,65535):new Fe(!0,65536*t,65536*r)}denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e){const t=(A/65536-.5)/this.ratio+.5,r=e/65536;return new ye(t*this.videoElementParent.clientWidth,r*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerSmaller(A,e){const t=this.ratio*A/(.5*this.videoElementParent.clientWidth),r=e/(.5*this.videoElementParent.clientHeight);return new Ee(32767*t,32767*r)}}class Fe{constructor(A,e,t){this.inRange=A,this.x=e,this.y=t}}class ye{constructor(A,e){this.x=A,this.y=e}}class Ee{constructor(A,e){this.x=A,this.y=e}}class Se{constructor(A,e){this.shouldShowPlayOverlay=!0,this.autoJoinTimer=void 0,this.config=A,this.pixelStreaming=e,this.responseController=new me,this.file=new te,this.sdpConstraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},this.afkController=new MA(this.config,this.pixelStreaming,this.onAfkTriggered.bind(this)),this.afkController.onAFKTimedOutCallback=()=>{this.closeSignalingServer("You have been disconnected due to inactivity")},this.freezeFrameController=new M(this.pixelStreaming.videoElementParent),this.videoPlayer=new pe(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 H(this.videoPlayer),this.coordinateConverter=new Ue(this.videoPlayer),this.sendrecvDataChannelController=new LA,this.recvDataChannelController=new LA,this.registerDataChannelEventEmitters(this.sendrecvDataChannelController),this.registerDataChannelEventEmitters(this.recvDataChannelController),this.dataChannelSender=new Qe(this.sendrecvDataChannelController),this.dataChannelSender.resetAfkWarningTimerOnDataSend=()=>this.afkController.resetAfkWarningTimer(),this.streamMessageController=new Ce,this.webSocketController=new I,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(QA.BrowserSendOffer)||this.webSocketController.requestStreamerList()})),this.webSocketController.onClose.addEventListener("close",(A=>{const e=this.shouldReconnect&&1001!=A.detail.code&&this.config.getNumericSettingValue(FA.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 fe(this.dataChannelSender,this.streamMessageController),this.toStreamerMessagesController=new ve(this.sendMessageController),this.registerMessageHandlers(),this.streamMessageController.populateDefaultProtocol(),this.inputClassesFactory=new Be(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(bA.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(EA.SignallingServerUrl);return this.config.isFlagEnabled(QA.BrowserSendOffer)&&(A+="?"+QA.BrowserSendOffer+"=true"),A}}requestUnquantizedAndDenormalizeUnsigned(A,e){return this.coordinateConverter.unquantizeAndDenormalizeUnsigned(A,e)}handleOnMessage(A){const e=new Uint8Array(A.data);B.Log(B.GetStackTrace(),"Message incoming:"+e,6);const t=this.streamMessageController.fromStreamerMessages.get(e[0]);this.streamMessageController.fromStreamerHandlers.get(t)(A.data)}registerMessageHandlers(){this.streamMessageController.registerMessageHandler(XA.FromStreamer,"QualityControlOwnership",(A=>this.onQualityControlOwnership(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Response",(A=>this.responseController.onResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Command",(A=>{this.onCommand(A)})),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FreezeFrame",(A=>this.onFreezeFrameMessage(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"UnfreezeFrame",(()=>this.invalidateFreezeFrameAndEnableVideo())),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"VideoEncoderAvgQP",(A=>this.handleVideoEncoderAvgQP(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"LatencyTest",(A=>this.handleLatencyTestResult(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"DataChannelLatencyTest",(A=>this.handleDataChannelLatencyTestResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"InitialSettings",(A=>this.handleInitialSettings(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileExtension",(A=>this.onFileExtension(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileMimeType",(A=>this.onFileMimeType(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileContents",(A=>this.onFileContents(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"InputControlOwnership",(A=>this.onInputControlOwnership(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"GamepadResponse",(A=>this.onGamepadResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Protocol",(A=>this.onProtocolMessage(A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"IFrameRequest",(()=>this.sendMessageController.sendMessageToStreamer("IFrameRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"RequestQualityControl",(()=>this.sendMessageController.sendMessageToStreamer("RequestQualityControl"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"FpsRequest",(()=>this.sendMessageController.sendMessageToStreamer("FpsRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"AverageBitrateRequest",(()=>this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"StartStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StartStreaming"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"StopStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StopStreaming"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"LatencyTest",(A=>this.sendMessageController.sendMessageToStreamer("LatencyTest",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"RequestInitialSettings",(()=>this.sendMessageController.sendMessageToStreamer("RequestInitialSettings"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"UIInteraction",(A=>this.sendMessageController.sendMessageToStreamer("UIInteraction",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"Command",(A=>this.sendMessageController.sendMessageToStreamer("Command",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TextboxEntry",(A=>this.sendMessageController.sendMessageToStreamer("TextboxEntry",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyDown",(A=>this.sendMessageController.sendMessageToStreamer("KeyDown",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyUp",(A=>this.sendMessageController.sendMessageToStreamer("KeyUp",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyPress",(A=>this.sendMessageController.sendMessageToStreamer("KeyPress",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseEnter",(A=>this.sendMessageController.sendMessageToStreamer("MouseEnter",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseLeave",(A=>this.sendMessageController.sendMessageToStreamer("MouseLeave",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseDown",(A=>this.sendMessageController.sendMessageToStreamer("MouseDown",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseUp",(A=>this.sendMessageController.sendMessageToStreamer("MouseUp",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseMove",(A=>this.sendMessageController.sendMessageToStreamer("MouseMove",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseWheel",(A=>this.sendMessageController.sendMessageToStreamer("MouseWheel",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseDouble",(A=>this.sendMessageController.sendMessageToStreamer("MouseDouble",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchStart",(A=>this.sendMessageController.sendMessageToStreamer("TouchStart",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchEnd",(A=>this.sendMessageController.sendMessageToStreamer("TouchEnd",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchMove",(A=>this.sendMessageController.sendMessageToStreamer("TouchMove",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadConnected",(()=>this.sendMessageController.sendMessageToStreamer("GamepadConnected"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonPressed",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadAnalog",(A=>this.sendMessageController.sendMessageToStreamer("GamepadAnalog",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadDisconnected",(A=>this.sendMessageController.sendMessageToStreamer("GamepadDisconnected",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XREyeViews",(A=>this.sendMessageController.sendMessageToStreamer("XREyeViews",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRHMDTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRHMDTransform",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRControllerTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRControllerTransform",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRSystem",(A=>this.sendMessageController.sendMessageToStreamer("XRSystem",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonTouched",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouched",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonTouchReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouchReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonPressed",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRAnalog",(A=>this.sendMessageController.sendMessageToStreamer("XRAnalog",A)))}onCommand(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.Command",6);const e=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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")||B.Error(B.GetStackTrace(),"Malformed protocol received. Ensure the protocol message contains a direction");const r=t.Direction;delete t.Direction,B.Log(B.GetStackTrace(),`Received new ${r==XA.FromStreamer?"FromStreamer":"ToStreamer"} protocol. Updating existing protocol...`),Object.keys(t).forEach((A=>{const e=t[A];switch(r){case XA.ToStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void B.Error(B.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):B.Error(B.GetStackTrace(),`There was no registered handler for "${A}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${A}", myHandler)`);break;case XA.FromStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void B.Error(B.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):B.Error(B.GetStackTrace(),`There was no registered handler for "${e}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${A}", myHandler)`);break;default:B.Error(B.GetStackTrace(),`Unknown direction: ${r}`)}})),this.toStreamerMessagesController.SendRequestInitialSettings(),this.toStreamerMessagesController.SendRequestQualityControl()}catch(A){B.Log(B.GetStackTrace(),A)}}onInputControlOwnership(A){const e=new Uint8Array(A);B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.InputControlOwnership",6);const t=new Boolean(e[1]).valueOf();B.Log(B.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())):B.Log(B.GetStackTrace(),"The Web Socket Controller does not exist so this will not work right now.")}loadFreezeFrameOrShowPlayOverlay(){this.pixelStreaming.dispatchEvent(new iA({shouldShowPlayOverlay:this.shouldShowPlayOverlay,isValid:this.freezeFrameController.valid,jpegData:this.freezeFrameController.jpeg})),!0===this.shouldShowPlayOverlay?(B.Log(B.GetStackTrace(),"showing play overlay"),this.resizePlayerStyle()):(B.Log(B.GetStackTrace(),"showing freeze frame"),this.freezeFrameController.showFreezeFrame()),setTimeout((()=>{this.videoPlayer.setVideoEnabled(!1)}),this.freezeFrameController.freezeFrameDelay)}onFreezeFrameMessage(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6);const e=new Uint8Array(A);this.freezeFrameController.processFreezeFrameMessage(e,(()=>this.loadFreezeFrameOrShowPlayOverlay()))}invalidateFreezeFrameAndEnableVideo(){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6),setTimeout((()=>{this.pixelStreaming.dispatchEvent(new oA),this.freezeFrameController.hideFreezeFrame()}),this.freezeFrameController.freezeFrameDelay),this.videoPlayer.getVideoElement()&&this.videoPlayer.setVideoEnabled(!0)}onFileExtension(A){const e=new Uint8Array(A);ee.setExtensionFromBytes(e,this.file)}onFileMimeType(A){const e=new Uint8Array(A);ee.setMimeTypeFromBytes(e,this.file)}onFileContents(A){const e=new Uint8Array(A);ee.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 rA({message:A})),B.Error(B.GetStackTrace(),A),void this.closeSignalingServer("Stream not initialized correctly")}if(this.videoPlayer.hasVideoSource()){if(this.setTouchInputEnabled(this.config.isFlagEnabled(QA.TouchInput)),this.pixelStreaming.dispatchEvent(new nA),this.streamController.audioElement.srcObject){const A=this.config.isFlagEnabled(QA.StartVideoMuted);this.streamController.audioElement.muted=A,A?this.playVideo():this.streamController.audioElement.play().then((()=>{this.playVideo()})).catch((A=>{B.Log(B.GetStackTrace(),A),B.Log(B.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 sA({reason:A}))}))}else this.playVideo();this.shouldShowPlayOverlay=!1,this.freezeFrameController.showFreezeFrame()}else B.Warning(B.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(),B.Log(B.GetStackTrace(),A),B.Log(B.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 sA({reason:A}))}))}autoPlayVideoOrSetUpPlayOverlay(){this.config.isFlagEnabled(QA.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(QA.ForceTURN)&&!this.checkTurnServerAvailability(A))return B.Info(B.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 YA(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(QA.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 B.Info(B.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 B.Log(B.GetStackTrace(),`A turn sever was found at ${A}`),!0;return B.Info(B.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){B.Log(B.GetStackTrace(),`Got streamer list ${A.ids}`,6);let e=null;var t=this.config.getSettingOption(bA.StreamerId);t.selected.toString().trim()&&(e=t.selected);const r=[...A.ids];r.unshift(""),this.config.setOptionSettingOptions(bA.StreamerId,r);let n=null;const s=this.config.isFlagEnabled(QA.WaitForStreamer),i=this.config.getNumericSettingValue(FA.MaxReconnectAttempts),o=this.config.getNumericSettingValue(FA.StreamerAutoJoinInterval),a=this.config.useUrlParams,c=new URLSearchParams(window.location.search);a&&c.has(bA.StreamerId)?e=c.get(bA.StreamerId):this.subscribedStream&&(e=this.subscribedStream),e&&A.ids.includes(e)?n=e:e&&s||1!=A.ids.length||(n=A.ids[0]),n?(this.isReconnecting=!1,this.reconnectAttempt=0,this.config.setOptionSettingValue(bA.StreamerId,n)):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 cA({messageStreamerList:A,autoSelectedStreamerId:n,wantedStreamerId:e}))}handleStreamerIDChangedMessage(A){const e=A.newID;var t=this.config.getSettingOption(bA.StreamerId),r=t.onChange;t.onChange=()=>{};for(var n=t.options,s=0;s<n.length;++s)if(n[s]==this.subscribedStream){n[s]=e;break}t.options=n,t.selected=e,t.onChange=r,this.subscribedStream=A.newID,this.pixelStreaming.dispatchEvent(new lA({newID:e}))}handleWebRtcAnswer(A){B.Log(B.GetStackTrace(),`Got answer sdp ${A.sdp}`,6);const e={sdp:A.sdp,type:"answer"};this.peerConnectionController.receiveAnswer(e),this.handlePostWebrtcNegotiation()}handleWebRtcOffer(A){B.Log(B.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(QA.MouseInput)),this.setKeyboardInputEnabled(this.config.isFlagEnabled(QA.KeyboardInput)),this.setGamePadInputEnabled(this.config.isFlagEnabled(QA.GamepadInput))}handleIceCandidate(A){B.Log(B.GetStackTrace(),"Web RTC Controller: onWebRtcIce",6);const e=new RTCIceCandidate(A);this.peerConnectionController.handleOnIce(e)}handleSendIceCandidate(A){B.Log(B.GetStackTrace(),"OnIceCandidate",6),A.candidate&&A.candidate.candidate&&this.webSocketController.sendIceCandidate(A.candidate)}handleDataChannel(A){B.Log(B.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){B.Log(B.GetStackTrace(),"Sending the offer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcOffer(A,e)}handleSendWebRTCAnswer(A){B.Log(B.GetStackTrace(),"Sending the answer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(FA.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){B.Log(B.GetStackTrace(),`MinQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MinQP":A})])}sendEncoderMaxQP(A){B.Log(B.GetStackTrace(),`MaxQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MaxQP":A})])}sendWebRTCMinBitrate(A){B.Log(B.GetStackTrace(),`WebRTC Min Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MinBitrate":A})])}sendWebRTCMaxBitrate(A){B.Log(B.GetStackTrace(),`WebRTC Max Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxBitrate":A})])}sendWebRTCFps(A){B.Log(B.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(){B.Log(B.GetStackTrace(),"---- Sending show stat to UE ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"stat.fps":""})])}sendIframeRequest(){B.Log(B.GetStackTrace(),"---- Sending Request for an IFrame ----",6),this.streamMessageController.toStreamerHandlers.get("IFrameRequest")()}emitUIInteraction(A){B.Log(B.GetStackTrace(),"---- Sending custom UIInteraction message ----",6),this.streamMessageController.toStreamerHandlers.get("UIInteraction")([JSON.stringify(A)])}emitCommand(A){B.Log(B.GetStackTrace(),"---- Sending custom Command message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(A)])}emitConsoleCommand(A){B.Log(B.GetStackTrace(),"---- Sending custom Command:ConsoleCommand message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({ConsoleCommand:A})])}sendRequestQualityControlOwnership(){B.Log(B.GetStackTrace(),"---- Sending Request to Control Quality ----",6),this.toStreamerMessagesController.SendRequestQualityControl()}handleLatencyTestResult(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.latencyTest",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=new Ae;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){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.dataChannelLatencyResponse",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.pixelStreaming._onDataChannelLatencyTestResponse(t)}handleInitialSettings(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.InitialSettings",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e),r=new jA;t.Encoder&&(r.EncoderSettings=t.Encoder),t.WebRTC&&(r.WebRTCSettings=t.WebRTC),t.PixelStreaming&&(r.PixelStreamingSettings=t.PixelStreaming),t.ConfigOptions&&void 0!==t.ConfigOptions.DefaultToHover&&this.config.setFlagEnabled(QA.HoveringMouseMode,!!t.ConfigOptions.DefaultToHover),r.ueCompatible(),B.Log(B.GetStackTrace(),e,6),this.pixelStreaming._onInitialSettings(r)}handleVideoEncoderAvgQP(A){B.Log(B.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);B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.QualityControlOwnership",6),this.isQualityController=new Boolean(e[1]).valueOf(),B.Log(B.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(QA.HoveringMouseMode)?TA.HoveringMouse:TA.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(QA.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 Y({label:A,event:e})),A.onClose=(A,e)=>this.pixelStreaming.dispatchEvent(new j({label:A,event:e})),A.onError=(A,e)=>this.pixelStreaming.dispatchEvent(new $({label:A,event:e}))}registerMessageHandler(A,e,t){e===XA.FromStreamer&&void 0===t&&B.Warning(B.GetStackTrace(),`Unable to register handler for ${A} as no handler was passed`),this.streamMessageController.registerMessageHandler(e,A,(r=>void 0===t&&e===XA.ToStreamer?this.sendMessageController.sendMessageToStreamer(A,r):t(r)))}}class be{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 r=e.getPose(A.gripSpace,t);if(!r)return;let n=0;A.profiles.includes("htc-vive")?n=1:A.profiles.includes("oculus-touch")&&(n=2),this.toStreamerMessagesProvider.toStreamerHandlers.get("XRSystem")([n]);let s=2;switch(A.handedness){case"left":s=0;break;case"right":s=1}const i=r.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=be.deepCopyGamepad(A.gamepad)),this.controllers[s].currentState=be.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 Ie{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 be(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 B.Error(B.GetStackTrace(),"This browser does not support XR.");navigator.xr.requestSession("immersive-vr",{optionalFeatures:[]}).then((A=>{this.onXrSessionStarted(A)}))}}onXrSessionEnded(){B.Log(B.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){B.Log(B.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,r=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],r[0],r[4],r[8],r[12],r[1],r[5],r[9],r[13],r[2],r[6],r[10],r[14],r[3],r[7],r[11],r[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(QA.XRControllerInput)&&this.xrSession.inputSources.forEach(((A,t,r)=>{this.xrGamepadController.updateStatus(A,e,this.xrRefSpace)}),this),this.xrSession.requestAnimationFrame(((A,e)=>this.onXrFrame(A,e))),this.onFrame.dispatchEvent(new CA({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&&B.Info(null,"WebXR requires https, if you want WebXR use https."),navigator.xr?navigator.xr.isSessionSupported(A):new Promise((()=>!1))}}class He{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 Te{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 Me{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 B.Error(B.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),r=new Te(t);this.records.set(r.seq,r),this.sink(t)}createRequest(A,e){return{Seq:this.seq++,FillResponseSize:e,Filler:A?"A".repeat(A):""}}}class Le{constructor(A,e){this.allowConsoleCommands=!1,this.config=A,(null==e?void 0:e.videoElementParent)&&(this._videoElementParent=e.videoElementParent),this._eventEmitter=new vA,this.configureSettings(),this.setWebRtcPlayerController(new Se(this.config,this)),this.onScreenKeyboardHelper=new He(this.videoElementParent),this.onScreenKeyboardHelper.unquantizeAndDenormalizeUnsigned=(A,e)=>this._webRtcController.requestUnquantizedAndDenormalizeUnsigned(A,e),this._activateOnScreenKeyboard=A=>this.onScreenKeyboardHelper.showOnScreenKeyboard(A),this._webXrController=new Ie(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(QA.IsQualityController,(A=>{!0!==A||this._webRtcController.isQualityController||this._webRtcController.sendRequestQualityControlOwnership()})),this.config._addOnSettingChangedListener(QA.AFKDetection,(A=>{this._webRtcController.setAfkEnabled(A)})),this.config._addOnSettingChangedListener(QA.MatchViewportResolution,(()=>{this._webRtcController.videoPlayer.updateVideoStreamSize()})),this.config._addOnSettingChangedListener(QA.HoveringMouseMode,(A=>{this.config.setFlagLabel(QA.HoveringMouseMode,`Control Scheme: ${A?"Hovering":"Locked"} Mouse`),this._webRtcController.setMouseInputEnabled(this.config.isFlagEnabled(QA.MouseInput))})),this.config._addOnSettingChangedListener(QA.KeyboardInput,(A=>{this._webRtcController.setKeyboardInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.MouseInput,(A=>{this._webRtcController.setMouseInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.FakeMouseWithTouches,(A=>{this._webRtcController.setTouchInputEnabled(this.config.isFlagEnabled(QA.TouchInput))})),this.config._addOnSettingChangedListener(QA.TouchInput,(A=>{this._webRtcController.setTouchInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.GamepadInput,(A=>{this._webRtcController.setGamePadInputEnabled(A)})),this.config._addOnNumericSettingChangedListener(FA.MinQP,(A=>{B.Log(B.GetStackTrace(),"-------- Sending MinQP --------",7),this._webRtcController.sendEncoderMinQP(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.MaxQP,(A=>{B.Log(B.GetStackTrace(),"-------- Sending encoder settings --------",7),this._webRtcController.sendEncoderMaxQP(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCMinBitrate,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMinBitrate(1e3*A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCMaxBitrate,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMaxBitrate(1e3*A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCFPS,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCFps(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnOptionSettingChangedListener(bA.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(bA.PreferredCodec).selected),this._webRtcController.resizePlayerStyle(),this.checkForAutoConnect()}connect(){this._eventEmitter.dispatchEvent(new AA),this._webRtcController.connectToSignallingServer()}reconnect(){this._eventEmitter.dispatchEvent(new tA),this._webRtcController.tryReconnect("Reconnecting...")}disconnect(){this._eventEmitter.dispatchEvent(new eA),this._webRtcController.close()}play(){this._onStreamLoading(),this._webRtcController.playStream()}checkForAutoConnect(){this.config.isFlagEnabled(QA.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 B.Warning(B.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):B.Info(B.GetStackTrace(),"Trying to mute mic, but PixelStreaming has no microphone track, so sending sound is already disabled.")}setMicrophoneMuted(A){var e,t,r,n;for(const s of null!==(n=null===(r=null===(t=null===(e=this._webRtcController)||void 0===e?void 0:e.peerConnectionController)||void 0===t?void 0:t.peerConnection)||void 0===r?void 0:r.getTransceivers())&&void 0!==n?n:[])WA.canTransceiverSendAudio(s)&&(s.sender.track.enabled=!A)}_onWebRtcAutoConnect(){this._eventEmitter.dispatchEvent(new N)}_onWebRtcSdp(){this._eventEmitter.dispatchEvent(new _)}_onStreamLoading(){this._eventEmitter.dispatchEvent(new q)}_onDisconnect(A,e){this._eventEmitter.dispatchEvent(new z({eventString:A,allowClickToReconnect:e}))}_onWebRtcConnecting(){this._eventEmitter.dispatchEvent(new W)}_onWebRtcConnected(){this._eventEmitter.dispatchEvent(new J)}_onWebRtcFailed(){this._eventEmitter.dispatchEvent(new X)}_onVideoInitialized(){this._eventEmitter.dispatchEvent(new Z),this._videoStartTime=Date.now()}_onLatencyTestResult(A){this._eventEmitter.dispatchEvent(new dA({latencyTimings:A}))}_onDataChannelLatencyTestResponse(A){this._eventEmitter.dispatchEvent(new uA({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 aA({aggregatedStats:A}))}_onVideoEncoderAvgQP(A){this._eventEmitter.dispatchEvent(new G({avgQP:A}))}_onInitialSettings(A){var e;this._eventEmitter.dispatchEvent(new gA({settings:A})),A.PixelStreamingSettings&&(this.allowConsoleCommands=null!==(e=A.PixelStreamingSettings.AllowPixelStreamingCommands)&&void 0!==e&&e,!1===this.allowConsoleCommands&&B.Info(B.GetStackTrace(),"-AllowPixelStreamingCommands=false, sending arbitrary console commands from browser to UE is disabled."));const t=this.config.useUrlParams,r=new URLSearchParams(window.location.search);B.Info(B.GetStackTrace(),`using URL parameters ${t}`),A.EncoderSettings&&(this.config.setNumericSetting(FA.MinQP,t&&r.has(FA.MinQP)?Number.parseFloat(r.get(FA.MinQP)):A.EncoderSettings.MinQP),this.config.setNumericSetting(FA.MaxQP,t&&r.has(FA.MaxQP)?Number.parseFloat(r.get(FA.MaxQP)):A.EncoderSettings.MaxQP)),A.WebRTCSettings&&(this.config.setNumericSetting(FA.WebRTCMinBitrate,t&&r.has(FA.WebRTCMinBitrate)?Number.parseFloat(r.get(FA.WebRTCMinBitrate)):A.WebRTCSettings.MinBitrate/1e3),this.config.setNumericSetting(FA.WebRTCMaxBitrate,t&&r.has(FA.WebRTCMaxBitrate)?Number.parseFloat(r.get(FA.WebRTCMaxBitrate)):A.WebRTCSettings.MaxBitrate/1e3),this.config.setNumericSetting(FA.WebRTCFPS,t&&r.has(FA.WebRTCFPS)?Number.parseFloat(r.get(FA.WebRTCFPS)):A.WebRTCSettings.FPS))}_onQualityControlOwnership(A){this.config.setFlagEnabled(QA.IsQualityController,A)}_onPlayerCount(A){this._eventEmitter.dispatchEvent(new mA({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 fA),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 Me(this._webRtcController.sendDataChannelLatencyTest.bind(this._webRtcController),(A=>{this._eventEmitter.dispatchEvent(new hA({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!==XA.FromStreamer||void 0!==t?e===XA.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))):B.Warning(B.GetStackTrace(),`Unable to register an undefined handler for ${A}`)}get toStreamerHandlers(){return this._webRtcController.streamMessageController.toStreamerHandlers}isReconnecting(){return this._webRtcController.isReconnecting}}class xe{}var De=g.De,Pe=g.vU,Re=g.Yd,ke=g.sK,Ke=g.g,Oe=g.x_;class Ve extends e.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),r=0;if(1===t[0]){r+=4;let A=t[r/4];r+=4;for(let n=0;n<A;n++){let A=t[r/4];r+=4;let n=new TextDecoder("utf-8").decode(e.slice(r,r+A));r+=A,this._processResponseFn(n)}}},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),r=new DataView(new ArrayBuffer(3+t.length)),n=0;r.setUint8(n,A),n++,r.setUint16(n,t.length,!0),n+=2;for(let A=0;A<t.length;A++)r.setUint8(n,t[A]),n+=1;try{this.sendInputData(r.buffer)}catch(A){console.error(`data.buffer.size: ${r.buffer.byteLength} 独立通道 sendInputData error: ${A}`,A)}}destroyImpl(){this._inner&&this._inner.close()}}window.g_emitDescriptor_maxBytes=3e4;let Ge=-1;Re.SetLoggerVerbosity(1);class _e extends e.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 De({initialSettings:{AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,[Oe.SignallingServerUrl]:this._url}});A.setFlagEnabled(Pe.BrowserSendOffer,!1),A.setFlagEnabled(Pe.HoveringMouseMode,!0),A.setFlagEnabled(Pe.MatchViewportResolution,!0),A.setNumericSetting(ke.MaxReconnectAttempts,0);const e=new Ke(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 Ve(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 r=this.uiInteractionCallbacks.get(t);return"function"==typeof r&&(r(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,t){"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t)),this.pixelStream.emitUIInteraction(A)}get webRtcController(){return this.pixelStream._webRtcController}_pixelStreamEmitUIInteractionAsString(A){this.webRtcController.streamMessageController.toStreamerHandlers.get("UIInteraction")([A])}emitUIInteractionForBigData(A,t){"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t));const r=JSON.stringify(A),n=window.g_emitDescriptor_maxBytes,s=r.length,i=++Ge;if(this.esMsgWsWrapper){if(s<n)return void this.esMsgWsWrapper.emitDescriptorWithString(50,`${i}-0/1-`+r);const A=0|Math.ceil(s/n),e=[...new Array(A).keys()].map((A=>r.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 Ne extends e.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,t,r){super(),this._container=A,this._wsuri=t,this._esmsgWsUri=r,this._instance=this.disposeVar(new _e(this._container,{url:this._wsuri,esmsgWsUri:this._esmsgWsUri})),this._event=this.disposeVar(new e.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,r)=>{const n=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,n)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),r(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}var We=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const Je=(A,e,t,r,n)=>We(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyTo",p:{id:e,duration:t,flyToParam:r,position:n}});if(!s.error)return s.re;console.error(s.error)})),Xe=(A,e)=>We(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})),ze=(A,e)=>{A.callUeFunc({f:"calcFlyToParam",p:{id:e}}).then((A=>{A.error&&console.error("calcFlyToParam:",A.error)})).catch((A=>{console.error("calcFlyToParam:",A)}))},Ye=(A,e)=>{A.callUeFunc({f:"refreshTileset",p:{id:e}}).then((A=>{A.error&&console.error("refreshTileset:",A.error)})).catch((A=>{console.error("refreshTileset:",A)}))},je=(A,e,t,r,n)=>We(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyIn",p:{id:e,position:t,rotation:r,duration:n}});if(!s.error)return s.re;console.error(s.error)})),$e=(A,e)=>We(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)})),Ze=A=>We(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)})),qe=A=>We(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)})),At=(A,e)=>We(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)})),et=A=>We(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)})),tt=(A,e)=>We(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})),rt=(A,e,t,r,n)=>{A.callUeFunc({f:"smoothMoveWithRotation",p:{id:e,Destination:t,NewRotation:r,Time:n}}).then((A=>{A.error&&console.error("smoothMoveWithRotation:",A.error)})).catch((A=>{console.error("smoothMoveWithRotation:",A)}))},nt=(A,e,t,r,n,s)=>{A.callUeFunc({f:"smoothMoveOnGround",p:{id:e,Lon:t,Lat:r,Ground:n,Time:s}}).then((A=>{A.error&&console.error("smoothMoveOnGround:",A.error)})).catch((A=>{console.error("smoothMoveOnGround:",A)}))},st=(A,e,t,r,n,s,i)=>{A.callUeFunc({f:"smoothMoveWithRotationOnGround",p:{id:e,NewRotation:t,Lon:r,Lat:n,Time:s,Ground:i}}).then((A=>{A.error&&console.error("smoothMoveWithRotationOnGround:",A.error)})).catch((A=>{console.error("smoothMoveWithRotationOnGround:",A)}))},it=(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)}))},ot=(A,e,t,r)=>{A.callUeFunc({f:"HighlightFeatureAndFlyTo",p:{id:e,HlId:t,Duration:r}}).then((A=>{A.error&&console.error("HighlightFeatureAndFlyTo:",A.error)})).catch((A=>{console.error("HighlightFeatureAndFlyTo:",A)}))},at=(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)}))},ct=(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)}))},lt=(A,e,t,r)=>{A.callUeFunc({f:"smoothMove",p:{id:e,Destination:t,Time:r}}).then((A=>{A.error&&console.error("smoothMove:",A.error)})).catch((A=>{console.error("smoothMove:",A)}))},dt=(A,e,t,r)=>{A.callUeFunc({f:"callFunction",p:{id:e,fn:t,p:r}}).then((A=>{A.error&&(console.error("callFunction:",A.error),console.error(`id: ${e} fn: ${t} param: ${r}`))})).catch((A=>{console.error("callFunction:",A),console.error(`id: ${e} fn: ${t} param: ${r}`)}))},ut=(A,e,t,r)=>{A.callUeFunc({f:"SetNodePosition",p:{id:e,NodeName:t,NodePosition:r}}).then((A=>{A.error&&console.error("SetNodePosition:",A.error)})).catch((A=>{console.error("SetNodePosition:",A)}))},ht=(A,e,t,r)=>{A.callUeFunc({f:"SetNodeRotation",p:{id:e,NodeName:t,NodeRotation:r}}).then((A=>{A.error&&console.error("SetNodeRotation:",A.error)})).catch((A=>{console.error("SetNodeRotation:",A)}))},gt=(A,e,t,r)=>{A.callUeFunc({f:"SetNodeScale",p:{id:e,NodeName:t,NodeScale:r}}).then((A=>{A.error&&console.error("SetNodeScale:",A.error)})).catch((A=>{console.error("SetNodeScale:",A)}))},Bt=(A,e)=>We(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)})),wt=(A,e)=>We(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)})),pt=A=>We(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)})),Ct=(e,t,r,n)=>We(void 0,void 0,void 0,(function*(){var s;console.log("pickCallFunc",t,r,n);const i=yield e.callUeFunc({f:"pick",p:{screenPosition:t,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?A.ESSceneObject.getSceneObjectById(o):void 0;return a&&Reflect.has(a,"allowPicking")&&Reflect.has(a,"pickedEvent")&&null!==(s=a.allowPicking)&&void 0!==s&&s&&a.pickedEvent.emit({attachedInfo:r}),a&&Reflect.has(a,"allowPicking")&&!a.allowPicking?new A.PickedResult:new A.PickedResult(i.re,a,i.re.features,i.re.add,r)})),mt=(A,e)=>We(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:r}=t.re;return r})),ft=(A,e,t,r="ECC_Visibility")=>We(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"GetHeightByLonLat",p:{Lon:e,Lat:t,Channel:r}});if(!n.error)return n.re;console.warn(`GetHeightByLonLat:${n.error}`)})),vt=(A,e,t="ECC_Visibility")=>We(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"GetHeightsByLonLats",p:{LonLats:e,Channel:t}});if(r.error)console.warn(`GetHeightsByLonLats:${r.error}`);else{r.re.heights.includes(null)&&console.warn("注意! GetHeightsByLonLats: 存在高度为null的点. there are points with a height of null");try{return r.re.heights}catch(A){return}}})),Qt=(A,e=64,t=64)=>We(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"capture",p:{resx:e,resy:t}});if(!r.error)return r.re.image;console.warn(r.error)})),Ut=(A,e)=>We(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})),Ft=(A,e)=>We(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)})),yt=(A,e)=>We(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)})),Et=A=>We(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)})),St=(A,e)=>We(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)})),bt=(A,e)=>We(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}`)})),It=(A,e)=>We(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}`)})),Ht=(A,e)=>We(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}`)})),Tt=(A,e)=>We(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}`)})),Mt=(A,e)=>We(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}`)})),Lt=(A,e,t)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindActorByTag",p:{ID:e,ActorTag:t}})})),xt=A=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"RestoreOriginalScene",p:void 0})})),Dt=(A,e)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByID",p:{ID:e}})})),Pt=(A,e)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByTag",p:{ActorTag:e}})})),Rt=(A,e,t)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"CreateActorByClass",p:{ID:e,ActorClass:t}})})),kt=function(A,e,t){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"Bind3DTilesetByTag",p:{ID:e,ActorTag:t}})}))},Kt=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetByTag",p:{ActorTag:e}})}))},Ot=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetById",p:{ID:e}})}))},Vt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindImageryByTag",p:{ID:e,ActorTag:t,ComponentTag:r}})}))},Gt=function(A,e,t){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryByTag",p:{ActorTag:e,ComponentTag:t}})}))},_t=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryById",p:{ID:e}})}))},Nt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetIdByComponentNameAndHitItem",p:{id:e,ComponentName:t,HitItem:r}})}))},Wt=function(A,e="ECC_Visibility"){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetCameraRelativeHeight",p:{Channel:e}})}))},Jt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"SaveStringToFile",p:{String:e,Path:null!=t?t:"undefine",File:null!=r?r:"data.txt"}});return""!==n.error&&console.warn("SaveStringToFile: ",n.error),n}))},Xt=function(A,e,t=!0){return We(this,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"HighlightActorByTag",p:{ActorTag:e,Highlight:t}});return""!==r.error&&console.warn("HighlightActorByTag: ",r.error),r}))},zt=function(A,e){return We(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}))},Yt=function(A){return We(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}`)}))},jt=(A,e,t,r=!0)=>We(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"startEditing",p:{sceneObjectID:e,modes:t,useKeyToSwitch:r}});if(!n.error)return n;console.error("startEditing:",n.error)})),$t=A=>We(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)})),Zt=(A,e)=>We(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 qt extends e.Destroyable{}class Ar extends A.PickedInfo{constructor(A,e,t){super(e),this.uePickResult=A,this.tilesetPickInfo=t}}class er extends qt{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,t,r,n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event),this._errorEvent=this.dv(new e.Event),this._readyEvent=this.dv(new e.Event),this._esmsgwsopen=this.dv((0,e.react)(!1)),this._videoinited=this.dv((0,e.react)(!1)),this._webRtcConnected=this.dv((0,e.react)(!1)),console.log("CSTMPSViewer init ! 以官方像素流 + 独立通信的模式启动!");const s=this._ueViewer;this._esueViewerWrapper=this.dv(new Ne(A,t,r));const i=this._esueViewerWrapper;{const A=()=>{var A;return i.debug=null!==(A=s.debug)&&void 0!==A&&A};A(),this.d(s.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 t,r;this.dv((0,e.createAnimateFrame)()).start((()=>{t===A.offsetWidth&&r===A.offsetHeight||(t=A.offsetWidth,r=A.offsetHeight,void 0===t||void 0===r||!Number.isFinite(t)||!Number.isFinite(r)||t<0||r<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${t} ${r}`):(i.resize(t,r),console.log(`resize: ${t} ${r}`)))}))}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),s.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,e.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 r=t.length,n=0,i=0,o=[];do{do{const{f:A,s:r}=t[n];if(o.push(A),++n,i+r>e||o.length>=20)break}while(n<r);o.length>0&&(s.debug&&console.log(`传送${o.length}条消息...`),c([...o]),o.length=0,i=0)}while(n<r)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:t}])}))}disposableOnUeEvent(A,t){var r;null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`disposableOnUeEvent from UeCloudViewer, type:${A}`);const n=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:n}});const s=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:n}})},i=this._ueEvent.don((e=>{e.et===A&&e.eid===n&&t(e)}));return()=>{i(),s()}}}function tr(A){let e="";const t=new Uint8Array(A),r=t.length;for(let A=0;A<r;A++)e+=String.fromCharCode(t[A]);return btoa(e)}window.g_emitDescriptor_maxBytes=3e4,console.log("全局可设置消息体最大字节, window.g_emitDescriptor_maxBytes 默认 30000 。");let rr=-1;Re.SetLoggerVerbosity(1);class nr extends e.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,t){var r;"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t));const n=JSON.stringify(A),s=null!==(r=window.g_emitDescriptor_maxBytes)&&void 0!==r?r:3e4,i=n.length,o=++rr;if(i<s){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/s),c=[...new Array(a).keys()].map((A=>n.slice(A*s,(A+1)*s)));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,t){super(),this._container=A,this._option=t,this.debug=!1,this._error=this.dv(new e.Event),this._connected=this.dv(new e.Event),this._ueevent=this.dv(new e.Event),this.uiInteractionCallbacks=new Map;const r=new De({initialSettings:{HoveringMouse:!0,AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,ss:this._option.ws},useUrlParams:!0});r.setFlagEnabled(Pe.BrowserSendOffer,!1),r.setFlagEnabled(Pe.HoveringMouseMode,!0),r.setFlagEnabled(Pe.MatchViewportResolution,!0),r.setNumericSetting(ke.MaxReconnectAttempts,0),this._pixelStream=new Ke(r,{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:tr(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),r=e.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp");r&&r([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 r=this.uiInteractionCallbacks.get(t);return"function"==typeof r&&(r(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 sr extends e.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,t,r){super(),this._container=A,this._wsuri=t,this._esmsgWsUri=r,this._event=this.dv(new e.Event),this._instance=this.dv(new nr(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,r)=>{const n=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,n)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),r(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}class ir extends qt{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,t,r,n){super(),this._ueViewer=n,this._videoInitialized=this.dv((0,e.react)(!1)),this._webRtcConnected=this.dv((0,e.react)(!1)),this._webSocketOpen=this.dv((0,e.react)(!1)),this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event),this._errorEvent=this.dv(new e.Event),this._readyEvent=this.dv(new e.Event),console.log("INNPSViewer init ! 以内置信令服务器模式启动!");const s=this._ueViewer,i=this.dv(new sr(A,t,r));this._ue5ViewerWrapper=i;{const A=()=>{var A;return i.debug=null!==(A=s.debug)&&void 0!==A&&A};A(),this.d(s.debugChanged.don(A))}{let A=!1;const t=this.dv((0,e.createNextAnimateFrameEvent)(this._videoInitialized.changed,this._webRtcConnected.changed,this._webSocketOpen.changed));this.d(t.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 t,r,n;this.dv((0,e.createAnimateFrame)()).start((()=>{t===A.offsetWidth&&r===A.offsetHeight&&n===s.resolutionScale||(t=A.offsetWidth,r=A.offsetHeight,void 0===t||void 0===r||!Number.isFinite(t)||!Number.isFinite(r)||t<0||r<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${t} ${r}`):(n=s.resolutionScale,i.resize(t/n,r/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),s.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,e.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 r=t.length,n=0,i=0,o=[];do{do{const{f:A,s:r}=t[n];if(o.push(A),++n,i+r>e||o.length>=20)break}while(n<r);o.length>0&&(s.debug&&console.log(`传送${o.length}条消息...`),a([...o]),o.length=0,i=0)}while(n<r)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:t}])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.don((e=>{e.et===A&&e.eid===r&&t(e)}));return()=>{s(),n()}}}class or extends e.Destroyable{get onRuntimeInitialized(){return this._onRuntimeInitialized}get vIframe(){return this._vIframe}constructor(t,r,n,s){super(),this._ueViewer=s,this._onRuntimeInitialized=this.dv(new e.Event),this._vIframe=null;const i=this._ueViewer;{const e=document.createElement("iframe");this._vIframe=e,e.style.cssText="width: 100%; height: 100%; margin: 0; padding: 0; border: none; outline: none;",t.appendChild(e),this.d((()=>{e&&t.removeChild(e)}));const s=A.ESSceneObject.getStrFromEnv(n+`/web/${r}.html`);e.src=s,e.onload=()=>{const A=e.contentWindow;A?(console.log("iwindow.Module",A.Module),A.Module.onRuntimeInitialized=()=>{this._onRuntimeInitialized.emit(),i.setStatus("Created"),i.setStatusLog("创建成功"),A.Module.UE4_resizeCanvas(),A.console.log("创建成功__________________________________________")}):console.error("iframeWindow is null")}}}}const ar="undefined"!=typeof TextDecoder?new TextDecoder:void 0;class cr extends e.Destroyable{constructor(t,r,n){super();{const A=()=>{const A=a(r);r.setGlobalProperty(A)};A();const t=o(),n=[];t.forEach((A=>{const e=r[A+"Changed"];n.push(e)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(A))}this.d(r.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((e=>{const t=null===A.props[e]?void 0:A.props[e];r[e]=t}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),r.useCustomInteraction=!1,this.dv(new A.ViewerCustomInteraction(r,t)),this.dv(new e.ObjResettingWithEvent(r.statusUpdateIntervalChanged,(A=>{var t;if(0===(null!==(t=r.statusUpdateInterval)&&void 0!==t?t:.5))return;const s=new e.Destroyable;return s.d(n.disposableOnUeEvent("statusUpdate",(A=>{r.statusUpdateEvent.emit(A)}))),s}))),this.dv(new e.ObjResettingWithEvent(r.propChangedListeningChanged,(()=>{var A;if(null!==(A=r.propChangedListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("propChanged",(A=>{r.propChanged.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.objectEventListeningChanged,(()=>{var A;if(null!==(A=r.objectEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("objectEvent",(A=>{r.objectEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.widgetEventListeningChanged,(()=>{var A;if(null!==(A=r.widgetEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("widgetEvent",(A=>{r.widgetEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=r.speechRecognitionListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("speechRecognition",(A=>{r.speechRecognition.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.customMessageListeningChanged,(()=>{var A;if(null!==(A=r.customMessageListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("customMessage",(A=>{r.customMessage.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.editingEventListeningChanged,(()=>{var A;if(null!==(A=r.editingEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("editingEvent",(A=>{r.editingEvent.emit(A)}))),t})))}}let lr=-1;class dr extends qt{constructor(A,t,r="${earthsdk3-ue-h5-assets-script-dir}",n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Map,this._ueEvent=this.dv(new e.Event);const s=this._ueViewer,i=this.dv(new or(A,t,r,s));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 cr(A,s,this)):console.error("h5Container is null")}a.UE_JSHTML5Communication?a.UE_JSHTML5Communication.UESendMessageToJS=A=>{try{const e=((A,e=0,t=NaN)=>{const r=e+t;let n=e;for(;A[n]&&!(n>=r);)++n;if(n-e>16&&A.buffer&&ar)return ar.decode(A.subarray(e,n));let s="";for(;e<n;){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(s.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,e.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 t=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),r={n:c++,tt:Date.now(),t:"c",fs:t,callid:(0,e.createGuid)()};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.set(r.callid,r),s.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(r,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=JSON.stringify(r),i=null!==(A=window.g_emitDescriptor_maxBytes)&&void 0!==A?A:3e4,l=n.length,d=++lr;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((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,t])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.disposableOn((e=>{var n;e.et===A&&e.eid===r&&(null!==(n=this._ueViewer.debug)&&void 0!==n&&n&&console.log(`callback, type:${A} eid:${r} ueEvent:${JSON.stringify(e)}`),t(e))}));return()=>{s(),n()}}}let ur=-1;class hr extends qt{constructor(A,t){super(),this._ueViewer=t,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event);const r=this._ueViewer;let n=!1;window.ue.es.oncommand(JSON.stringify({eventType:"init",params:{}})),n=!0,window.calljs=(A,e)=>{if(r.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 s=0;this.dv((0,e.createInterval)()).start((()=>{if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),e={n:s++,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),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());const t=++ur;window.ue.es.oncommand(`${t}-0/1-`+JSON.stringify(e)).then((()=>{this._waitingUeCalls.delete(e)}))}),50)}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,t])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.disposableOn((e=>{var n;e.et===A&&e.eid===r&&(null!==(n=this._ueViewer.debug)&&void 0!==n&&n&&console.log(`callback, type:${A} eid:${r} ueEvent:${JSON.stringify(e)}`),t(e))}));return()=>{s(),n()}}}class gr extends e.Destroyable{constructor(A,t){super();{const t=()=>{const e=a(A);A.setGlobalProperty(e)};t();const r=o(),n=[];r.forEach((e=>{const t=A[e+"Changed"];n.push(t)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(t))}this.d(A.propChanged.don((e=>{if(""===e.objId)try{Object.keys(e.props).forEach((t=>{const r=null===e.props[t]?void 0:e.props[t];A[t]=r}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),this.dv(new e.ObjResettingWithEvent(A.statusUpdateIntervalChanged,(r=>{var n;if(0===(null!==(n=A.statusUpdateInterval)&&void 0!==n?n:.5))return;const s=new e.Destroyable;return s.d(t.disposableOnUeEvent("statusUpdate",(e=>{A.statusUpdateEvent.emit(e)}))),s}))),this.dv(new e.ObjResettingWithEvent(A.propChangedListeningChanged,(()=>{var r;if(null!==(r=A.propChangedListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(e=>{A.propChanged.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.objectEventListeningChanged,(()=>{var r;if(null!==(r=A.objectEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(e=>{A.objectEvent.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.widgetEventListeningChanged,(()=>{var r;if(null!==(r=A.widgetEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(e=>{A.widgetEvent.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.speechRecognitionListeningChanged,(()=>{var r;if(null!==(r=A.speechRecognitionListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(e=>{A.speechRecognition.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.customMessageListeningChanged,(()=>{var r;if(null!==(r=A.customMessageListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(e=>{A.customMessage.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.editingEventListeningChanged,(()=>{var r;if(null!==(r=A.editingEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(e=>{A.editingEvent.emit(e)}))),n})))}}class Br extends e.Destroyable{constructor(t,r,n){super();{const A=()=>{const A=a(r);r.setGlobalProperty(A)};A();const t=o(),n=[];t.forEach((A=>{const e=r[A+"Changed"];n.push(e)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(A))}this.d(r.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((e=>{const t=null===A.props[e]?void 0:A.props[e];r[e]=t}))}catch(A){console.error("ueViewer propChanged:"+A)}})));const s=document.createElement("div");s.style.width="100%",s.style.height="100%",s.style.position="absolute",s.style.overflow="hidden",s.style.top="0",s.style.left="0",s.style.zIndex="0",s.style.backgroundColor="rgba(255,0,0,0)",s.setAttribute("masker","大屏顶层div,用于模拟鼠标事件和控制UE鼠标事件是否生效"),t.appendChild(s),this.d((()=>{s&&t&&t.removeChild(s)}));{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)};s.addEventListener("mouseenter",e),s.addEventListener("mouseleave",t),s.addEventListener("mousemove",r),this.d((()=>{s.removeEventListener("mouseenter",e),s.removeEventListener("mouseleave",t),s.removeEventListener("mousemove",r)}))}r.useCustomInteraction=!1,this.dv(new A.ViewerCustomInteraction(r,s)),this.dv(new e.ObjResettingWithEvent(r.statusUpdateIntervalChanged,(A=>{var t;if(0===(null!==(t=r.statusUpdateInterval)&&void 0!==t?t:.5))return;const s=new e.Destroyable;return s.d(n.disposableOnUeEvent("statusUpdate",(A=>{r.statusUpdateEvent.emit(A)}))),s}))),this.dv(new e.ObjResettingWithEvent(r.propChangedListeningChanged,(()=>{var A;if(null!==(A=r.propChangedListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("propChanged",(A=>{r.propChanged.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.objectEventListeningChanged,(()=>{var A;if(null!==(A=r.objectEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("objectEvent",(A=>{r.objectEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.widgetEventListeningChanged,(()=>{var A;if(null!==(A=r.widgetEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("widgetEvent",(A=>{r.widgetEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=r.speechRecognitionListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("speechRecognition",(A=>{r.speechRecognition.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.customMessageListeningChanged,(()=>{var A;if(null!==(A=r.customMessageListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("customMessage",(A=>{r.customMessage.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.editingEventListeningChanged,(()=>{var A;if(null!==(A=r.editingEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("editingEvent",(A=>{r.editingEvent.emit(A)}))),t})))}}class wr extends e.Destroyable{constructor(A,t,r){super(),this._reconnectEvent=this.dv(new e.Event);const n=(A,e)=>A.hasOwnProperty(e);let s,i=0;if(this.d((()=>{s&&clearTimeout(s)})),window.ue&&window.ue.es)if(window.ue.esinput){r.setStatus("Creating"),console.log("存在(window.ue && window.ue.es && window.ue.esinput 需要适配新版ESWebView 鼠标穿透), 开始创建UeFalseCloudViewer..."),r.setStatusLog("开始创建本地视口...");const e=this.dv(new hr(A,r));this.d((()=>r.viewer=void 0)),r.viewer=e,r.setStatus("Created"),r.setStatusLog("本地视口创建成功!"),this.dv(new Br(A,r,e))}else r.setStatus("Error"),r.setStatusLog("请升级 ESWebView !");else if(n(t.options,"ws")||n(t.options,"uri")&&n(t.options,"app")){let o;r.setStatus("Creating"),r.setStatusLog("开始创建云渲染视口..."),this.d((()=>{r.setStatus("Raw"),r.setStatusLog(""),A&&o&&A.removeChild(o)&&(o=void 0)}));const a=this.dv((0,e.createProcessingFromAsyncFunc)((a=>function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){let c,l,d;if(r.viewer&&!r.viewer.isDestroyed()&&r.viewer.destroy(),r.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(t.options,"ws")){const{ws:A,esmsg:e,uselnternalSignallingServer:r}=t.options;c=A,l=e,d=null!=r&&r}if(n(t.options,"uri")&&n(t.options,"app")){const{offsetWidth:A,offsetHeight:n}=o;let{uri:s,app:i,token:u}=t.options;s.endsWith("/")||(s+="/");const h=`/${i}/${null!=A?A:1920}/${null!=n?n:1080}`+(u?`?essstoken=${u}`:"");console.log(`请求信令服务器: ${s}instance${h}`);const g=yield a.promise(fetch(`${s}instance${h}`,{method:"GET"})),B=yield a.promise(g.json());if(B&&"ok"!==B.status)return r.setStatus("Error"),r.setStatusLog(`信令服务器请求失败 ${B.status}`),void this._reconnectEvent.emit(void 0);{console.log(`信令服务器请求成功! ${JSON.stringify(B,void 0," ")}`),yield(0,e.sleep)(5e3);const{server:A,esmsg:t,instanceId:n,useInternalSignallingServer:s}=B;if(!n)return r.setStatus("Error"),r.setStatusLog("检查信令服务器版本,返回数据错误! "),console.log("信令服务器返回数据错误!不包含instanceId!请升级到 ESSS V3.0+ 版本!"),void this._reconnectEvent.emit(void 0);c=A,l=t,d=null!=s&&s,r.esssResponse=B}}const u=this.dv(d?new ir(o,c,l,r):new er(o,c,l,r));this.d((()=>r.viewer=void 0)),this.d(u.errorEvent.don((A=>{const e=`[${A}]:像素流连接错误!`;r.setStatus("Error"),r.setStatusLog(e),this._reconnectEvent.emit(u)}))),yield a.promise(new Promise((A=>this.d(u.readyEvent.donce(A))))),r.setStatus("Created"),r.setStatusLog("云渲染视口创建成功!"),i=0,s&&clearTimeout(s),s=void 0;const{offsetWidth:h,offsetHeight:g}=o;u.resize(h*window.devicePixelRatio,g*window.devicePixelRatio),r.viewer=u,this.d((()=>r.viewer=void 0)),this.dv(new gr(r,u))})))));a.start(),this.d(this._reconnectEvent.don((A=>{void 0===s&&(A&&!A.isDestroyed()&&A.destroy(),r.viewer&&!r.viewer.isDestroyed()&&r.viewer.destroy(),r.viewer=void 0,r.autoReconnect&&(r.setStatus("Reconnecting"),r.setStatusLog("正在尝试重新连接..."),i=i+5e3>3e4?3e4:i+5e3,console.warn(`间隔:${i/1e3}s,正在尝试重新连接...`),s=window.setTimeout((()=>{a.restart()}),i)))}))),this.d(a.errorEvent.don((A=>{r.setStatus("Error"),r.setStatusLog("云渲染视口创建失败!"),console.warn("云渲染视口创建失败!",A),this._reconnectEvent.emit(void 0)})))}else if(n(t.options,"project")){const e=t,n=e.options.project,s=e.options.baseUrl;r.setStatus("Creating"),r.setStatusLog("下载编译中...");const i=this.dv(new dr(A,n,s,r));r.viewer=i,this.d((()=>r.viewer=void 0))}else r.setStatus("Error"),r.setStatusLog("视口创建失败!"),console.warn("视口创建失败: 参数错误!")}}var pr,Cr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class mr extends A.ESViewer{get defaultProps(){return mr.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 Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ft(this.viewer,A);console.warn("UEPositionToLonLatAlt: viewer is undefined")}))}changeNavigationMode(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return void console.warn("ChangeNavigationMode: viewer is undefined");const e=yield Bt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}resetWithCurrentCamera(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield tt(this.viewer,A);console.warn("resetWithCurrentCamera: viewer is undefined")}))}getAllSocketNamesByActorTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield yt(this.viewer,A);console.warn("GetAllSocketNamesByActorTag: viewer is undefined")}))}getBoundSphere(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield St(this.viewer,A);console.warn("getBoundSphere: viewer is undefined")}))}getBoundSphereWithChildren(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield bt(this.viewer,A);console.warn("getBoundSphereWithChildren: viewer is undefined")}))}getStrokeMaterialParamInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield It(this.viewer,A);console.warn("GetStrokeMaterialParamInfo: viewer is undefined")}))}getFillMaterialParamInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ht(this.viewer,A);console.warn("getFillMaterialParamInfo: viewer is undefined")}))}getGlobalProperty(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Tt(this.viewer,A);console.warn("getGlobalProperty: viewer is undefined")}))}getObjectByInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Mt(this.viewer,A);console.warn("GetObjectByInfo: viewer is undefined")}))}defaultCameraFlyIn(A=1){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield $e(this.viewer,A);console.warn("DefaultCameraFlyIn: viewer is undefined")}))}startVoice(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ze(this.viewer);console.warn("startVoice:viewer is undefined")}))}stopVoice(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield qe(this.viewer);console.warn("startVoice:viewer is undefined")}))}mountPakFiles(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield At(this.viewer,A);console.warn("mountPakFiles:viewer is undefined")}))}generateMemReport(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield et(this.viewer);console.warn("generateMemReport:viewer is undefined")}))}quit(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield pt(this.viewer);console.warn("Quit: viewer is undefined")}))}bindActorByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Lt(this.viewer,A,e);console.warn("BindActorByTag: viewer is undefined")}))}restoreOriginalScene(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield xt(this.viewer);console.warn("RestoreOriginalScene: viewer is undefined")}))}unBindActorByID(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Dt(this.viewer,A);console.warn("UnBindActorByID: viewer is undefined")}))}unBindActorByTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Pt(this.viewer,A);console.warn("UnBindActorByTag: viewer is undefined")}))}createActorByClass(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Rt(this.viewer,A,e);console.warn("CreateActorByClass: viewer is undefined")}))}bind3DTilesetByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield kt(this.viewer,A,e);console.warn("Bind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetByTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Kt(this.viewer,A);console.warn("UnBind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetById(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ot(this.viewer,A);console.warn("UnBind3DTilesetById: viewer is undefined")}))}bindImageryByTag(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Vt(this.viewer,A,e,t);console.warn("BindImageryByTag: viewer is undefined")}))}unBindImageryByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Gt(this.viewer,A,e);console.warn("UnBindImageryByTag: viewer is undefined")}))}unBindImageryById(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield _t(this.viewer,A);console.warn("UnBindImageryById: viewer is undefined")}))}getIdByComponentNameAndHitItem(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Nt(this.viewer,A,e,t);console.warn("GetIdByComponentNameAndHitItem: viewer is undefined")}))}getCameraRelativeHeight(A="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Wt(this.viewer,A);console.warn("GetCameraRelativeHeight: viewer is undefined")}))}saveStringToFile(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Jt(this.viewer,A,e,t);console.warn("SaveStringToFile: viewer is undefined")}))}highlightActorByTag(A,e=!0){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Xt(this.viewer,A,e);console.warn("HighlightActorByTag: viewer is undefined")}))}sendCustomMessage(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield zt(this.viewer,A);console.warn("SendCustomMessage: viewer is undefined")}))}getStatus(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Yt(this.viewer);console.warn("GetStatus:viewer is undefined")}))}pick(A,e,t){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;let r=A;if(A&&window.ue&&this.container){const[e,t]=A,{left:n,top:s}=this.container.getBoundingClientRect();r=[n+e,s+t]}return yield Ct(this.viewer,r,e,t)}))}pickPosition(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;let e=A;if(A&&window.ue&&this.container){const[t,r]=A,{left:n,top:s}=this.container.getBoundingClientRect();e=[n+t,s+r]}return yield mt(this.viewer,e)}))}flyIn(A,e=[0,0,0],t=1){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const r=yield je(this.viewer,void 0,A,e,t);return r?(0===r.endType&&console.warn(`flyTo:flyTo is end! endType:${r.endType}`),1===r.endType&&console.warn(`flyTo:飞行中断! endType:${r.endType}`),r):void 0}))}flyTo(A,e){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const t=yield Je(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(e,t,r=1){const n=[[e[0],e[1],0],[e[0],e[3],0],[e[2],e[3],0],[e[2],e[1],0]],s=(0,A.getGeoBoundingSphereFromPositions)(n);if(!s)return;const{center:i,radius:o}=s,a={distance:null!=t?t:o,heading:0,pitch:-90,flyDuration:r,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 Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const t={mode:"Walk",position:A,jumpZVelocity:e},r=yield Bt(this.viewer,t);return r&&!r.error&&(this._navigationMode.value=t.mode),r}))}changeToMap(){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const A={mode:"Map"},e=yield Bt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}changeToRotateGlobe(A=38,e=1e7,t=60){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const r={mode:"RotateGlobe",latitude:A,height:e,cycleTime:t},n=yield Bt(this.viewer,r);return n&&!n.error&&(this._navigationMode.value=r.mode),n}))}changeToLine(A,e=10,t=10,r=!0,n=10,s="auto"){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const i={mode:"Line",geoLineStringId:A,speed:e,heightOffset:t,loop:r,turnRateDPS:n,lineMode:s},o=yield Bt(this.viewer,i);return o&&!o.error&&(this._navigationMode.value=i.mode),o}))}changeToUserDefined(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e={mode:"UserDefined",userDefinedPawn:A},t=yield Bt(this.viewer,e);return t&&!t.error&&(this._navigationMode.value=e.mode),t}))}changeToRotatePoint(A,e=5e4,t=60,r=0,n=-30){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"RotatePoint",position:A,distance:e,orbitPeriod:t,heading:r,pitch:n},i=yield Bt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}changeToFollow(A,e=0,t=0,r=-30,n=!0){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"Follow",objectId:A,distance:e,heading:t,pitch:r,relativeRotation:n},i=yield Bt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}getFPS(){return this._statusInfo.fps}getVersion(){var A;return Cr(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 Et(this.viewer);return e.esforue=t,e}))}getHeightByLonLat(A,e,t="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return null;const r=yield ft(this.viewer,A,e,t);return r&&void 0!==r.height?r.height:null}))}getHeightsByLonLats(A,e="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield vt(this.viewer,A,e)}))}capture(A=64,e=64){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Qt(this.viewer,A,e)}))}lonLatAltToScreenPosition(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=yield Ut(this.viewer,A);return e&&[e.Y,e.Y]}))}setGlobalProperty(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield wt(this.viewer,A)}))}startEditing(A,e,t=!0){return Cr(this,void 0,void 0,(function*(){const r=A.combinationClass?A.getMainClass():A;if(r&&this.viewer)return yield jt(this.viewer,r.id,e,t)}))}stopEditing(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield $t(this.viewer)}))}moveObjects(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=[];for(let t=0;t<A.length;t++){const r=A[t],n=r.combinationClass?r.getMainClass():r;n&&e.push(n.id)}return 0!==e.length?yield Zt(this.viewer,e):void 0}))}constructor(A){if(super(A),this._viewer=this.dv((0,e.react)(void 0)),this._speechRecognition=this.dv(new e.Event),this._propChanged=this.dv(new e.Event),this._objectEvent=this.dv(new e.Event),this._widgetEvent=this.dv(new e.Event),this._customMessage=this.dv(new e.Event),this._statusUpdateEvent=this.dv(new e.Event),this._statusUpdateEventdon=(()=>{this.d(this.statusUpdateEvent.don((A=>{var e,t,r,n;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!==(r=A.position)&&void 0!==r?r:[0,0,0],this._statusInfo.rotation=null!==(n=A.rotation)&&void 0!==n?n:[0,0,0]})))})(),"ESUeViewer"!==A.type)throw new Error("option.type must be ESUeViewer");const t=A;this.d(this._viewer.changed.don((()=>{this.viewerChanged.emit(this.viewer)}))),this.dv(new e.ObjResettingWithEvent(this.subContainerChanged,(()=>{if(this.setStatus("Raw"),this.setStatusLog(""),this.subContainer)return new wr(this.subContainer,t,this)})))}getProperties(){return[...super.getProperties()]}}pr=mr,mr.type=pr.register("ESUeViewer",pr),mr.defaults=Object.assign({},i),function(e){e.createDefaultProps=()=>Object.assign(Object.assign(Object.assign({},A.ESViewer.createDefaultProps()),s()),{resolutionScale:1,autoReconnect:!1,propChangedListening:void 0,objectEventListening:void 0,widgetEventListening:void 0,speechRecognitionListening:void 0,customMessageListening:void 0})}(mr||(mr={})),(0,e.extendClassProps)(mr.prototype,mr.createDefaultProps);class fr extends A.EngineObject{constructor(A,t){super(A,t);const r=t.viewer;if(r&&(A.combinationClass||this.d(this.createdEvent.don((()=>{const n=this.constructor.propValFuncs,s=A.defaultProps,i=Object.keys(s).filter((A=>null!==n[A]));i.push(...this.constructor.forceUeUpdateProps);const o=A.constructor.defaults,a={val:{}},c=[];for(let e of i){const r=A[e+"Changed"];c.push(r);const s=n[e];if(null===s)throw console.error("vf === null error"),new Error("vf === null error");const i=()=>{var r;const n=null!==(r=A[e])&&void 0!==r?r:o[e];let i=s?s(n,this,t,A):n;void 0!==i?a.val[e]=i:console.warn(`UE自动更新的属性,不应该为undefined! 属性名:${e} 对象名:${A.name} 对象id: ${A.id}`)};i(),this.d(r.don(i))}const l=()=>{r.callUeFunc({f:"update",p:Object.assign({id:A.id},a.val)}),a.val={}},d=this.dv((0,e.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&&Xe(r,A.id)})),r.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}).then((()=>{e=!0,A.createdEvent.emit()})).catch((A=>console.error(A)))}}}fr.propValFuncs={ref:null,devTags:null,extras:null,execOnceFuncStr:null,updateFuncStr:null,toDestroyFuncStr:null},fr.forceUeUpdateProps=[];class vr extends fr{constructor(A,e){super(A,e);const t=e.viewer;t&&(this.d(A.flyToEvent.don((e=>{Je(t,A.id,e)}))),this.d(A.flyInEvent.don((e=>{var r,n;je(t,A.id,null===(r=A.flyInParam)||void 0===r?void 0:r.position,null===(n=A.flyInParam)||void 0===n?void 0:n.rotation,null!=e?e:1)}))),this.d(A.calcFlyToParamEvent.don((()=>{ze(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:r,rotation:n}=t;A.flyInParam={position:r,rotation:n,flyDuration:1}}))),this.d(e.propChanged.don((e=>{e.objId===A.id&&Object.keys(e.props).forEach((t=>{const r=null===e.props[t]?void 0:e.props[t];A[t]=r}))}))))}}var Qr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Ur extends vr{constructor(A,t){super(A,t);const r=t.viewer;if(!r)return;const n=()=>{A.editing||r.callUeFunc({f:"update",p:{id:A.id,position:A.position,rotation:A.rotation}})},s=this.dv((0,e.createNextAnimateFrameEvent)(A.positionChanged,A.rotationChanged,A.editingChanged));this.d(s.don((()=>{setTimeout(n,0)}))),this.d(A.smoothMoveEvent.don(((e,t)=>{lt(r,A.id,e,t)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,t,n)=>{rt(r,A.id,e,t,n)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,t,n,s)=>{nt(r,A.id,e,t,s,n)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,t,n,s,i)=>{st(r,A.id,e,t,n,s,i)}))),this.d(A.smoothMoveKeepPitchEvent.don(((e,t)=>Qr(this,void 0,void 0,(function*(){const n=yield r.callUeFunc({f:"SmoothMoveKeepPitch",p:{id:A.id,Destination:e,Time:t}});n.error&&console.error("SmoothMoveKeepPitch:",n.error)}))))),this.d(A.automaticLandingEvent.don((e=>{const r=[A.position[0],A.position[1]];t.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((t=>{null!==t&&(A.position=[...r,t],A.collision=e)}))})));const i=(A,e,t,r)=>Qr(this,void 0,void 0,(function*(){const{viewer:n}=A;if(!n)return void console.error("SmoothMoveRelatively: ueViewer.viewer is undefined");const s=yield n.callUeFunc({f:"SmoothMoveRelatively",p:{id:e,RelativePosition:t,Time:r}});return s.error&&console.error("SmoothMoveRelatively:",s.error),s}));this.d(A.smoothMoveRelativelyEvent.don(((e,r)=>{i(t,A.id,e,r)})));const o=(A,e,t,r,n)=>Qr(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:r,Time:n}});return i.error&&console.error("SmoothMoveRelativelyWithRotation:",i.error),i}));this.d(A.smoothMoveRelativelyWithRotationEvent.don(((e,r,n)=>{o(t,A.id,e,r,n)})))}}Ur.forceUeUpdateProps=[...vr.forceUeUpdateProps,"editing"],Ur.propValFuncs=Object.assign({},vr.propValFuncs);class Fr extends vr{constructor(A,t){super(A,t);const r=t.viewer;if(!r)return;const n=()=>{A.editing||r.callUeFunc({f:"update",p:{id:A.id,points:A.points}})},s=this.dv((0,e.createNextAnimateFrameEvent)(A.pointsChanged,A.editingChanged));this.d(s.don((()=>{setTimeout(n,0)})))}}Fr.forceUeUpdateProps=[...vr.forceUeUpdateProps,"editing"],Fr.propValFuncs=Object.assign(Object.assign({},vr.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 yr extends Ur{constructor(A,e){super(A,e),e.viewer&&this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,add:r}=e;A.widgetEvent.emit({type:t,add:r})})))}}class Er extends Ur{constructor(A,e){super(A,e),e.viewer}}Er.propValFuncs=Object.assign(Object.assign({},Ur.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 Sr extends Er{constructor(A,e){super(A,e),e.viewer}}var br,Ir=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const Hr=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是3dTileset,无法绑定";default:return"未知错误"}};class Tr extends A.EngineObject{constructor(t,r){super(t,r),this._styleColor=this.dv((0,e.react)([])),this._styleVisable=this.dv((0,e.react)([]));const n=r.viewer;if(!n)return void console.warn("UeES3DTileset: viewer is undefined!");let s,i;const o=()=>Ir(this,void 0,void 0,(function*(){var e,r;(s||i)&&(yield n.callUeFunc({f:"update",p:{id:t.id,url:t.url,show:t.show,collision:t.collision,allowPicking:t.allowPicking,flyToParam:null!==(e=t.flyToParam)&&void 0!==e?e:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(r=t.flyInParam)&&void 0!==r?r:A.ESVisualObject.defaults.flyInParam,highlightID:t.highlightID,highlightColor:t.highlightColor,highlight:t.highlight,materialMode:t.materialMode,maximumScreenSpaceError:t.maximumScreenSpaceError,colorMode:Reflect.has(t,"colorMode")?t.colorMode:void 0,offset:t.offset,editing:t.editing,rotation:t.rotation,cacheBytes:t.cacheBytes,colorBlendMode:t.colorBlendMode}}))})),a=this.dv((0,e.createNextAnimateFrameEvent)(t.urlChanged,t.showChanged,t.flyToParamChanged,t.flyInParamChanged,t.collisionChanged,t.allowPickingChanged,t.highlightIDChanged,t.highlightColorChanged,t.highlightChanged,t.materialModeChanged,t.maximumScreenSpaceErrorChanged,t.offsetChanged,t.editingChanged,t.rotationChanged,t.cacheBytesChanged,t.colorBlendModeChanged));o(),this.d(a.don(o)),Reflect.has(t,"colorMode")&&this.d(t.colorModeChanged.don((()=>o())));const c=this.dv((0,e.react)(void 0));{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorTagChanged,t.urlChanged)),r=()=>{t.actorTag?c.value={type:"ActorTag",actorTag:t.actorTag}:t.url?c.value={type:"CreatedUrl",url:t.url}:c.value=void 0,t.editing=!1};r(),this.d(A.don(r))}const l=()=>Ir(this,void 0,void 0,(function*(){const{id:A}=t;if(void 0!==s){s=void 0;try{const e=yield r.unBind3DTilesetById(A);if(!e)return;if(""!==e.error)return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${e.error}`)}catch(A){return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A}`)}}if(void 0!==i){i=void 0;try{const e=yield n.callUeFunc({f:"destroy",p:{id:A}});if(!e)return;if(""!==e.error)return void console.warn(`UeES3DTileset Destroy: ${e.error}`)}catch(A){return void console.warn(`UeES3DTileset Destroy: ${A}`)}}}));this.d((()=>{l()}));{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>Ir(this,void 0,void 0,(function*(){if(void 0!==c.value){if("ActorTag"===c.value.type){const{actorTag:e}=c.value;if(s!==e&&(yield A.promise(l())),void 0!==s)return;if(void 0===e)return;try{s=e;const n=yield A.promise(r.bind3DTilesetByTag(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${n.error}`);if(0===n.re.type);else{if(1!==n.re.type)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Hr(n.re.type)}`);console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Hr(n.re.type)}`)}}catch(A){return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${A}`)}}else if("CreatedUrl"===c.value.type){const{url:e}=c.value;if(e!==i&&(yield l()),void 0!==i)return;if(void 0===e)return;try{i=e;const r=yield A.promise(n.callUeFunc({f:"create",p:{type:t.typeName,id:t.id}}));if(!r)return;if(""!==r.error)return void console.warn(`UeES3DTileset create: ${r.error}`)}catch(A){return void console.warn(`UeES3DTileset create: ${A}`)}}yield A.promise(o())}else yield A.promise(l())}))))),a=()=>Ir(this,void 0,void 0,(function*(){A.restart()}));a(),this.d(c.changed.don(a))}this.d(t.refreshTilesetEvent.don((()=>{Ye(n,t.id)}))),this.d(t.flyToEvent.don(((A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const o=yield Je(n,t.id,A);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),t.flyOverEvent.emit(e,a,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{(s||i)&&ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{(s||i)&&A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))}))),this.d(r.objectEvent.don((A=>{(s||i)&&A.id===t.id&&"3DTilesetReady"===A.type&&t.tilesetReady.emit(A.p)})));{const A=(A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const r=yield n.callUeFunc({f:"SetFeatureColor",p:{id:t.id,featureName:A,json:e}});r&&(""===r.error||console.warn(`UeES3DTileset SetFeatureColor: ${r.error}`))})),e=(A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const r=yield n.callUeFunc({f:"SetFeatureVisable",p:{id:t.id,featureName:A,json:e}});r&&(""===r.error||console.warn(`UeES3DTileset SetFeatureVisable: ${r.error}`))})),r=()=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const A=yield n.callUeFunc({f:"ResetFeatureStyle",p:{id:t.id}});A&&(""===A.error||console.warn(`UeES3DTileset ResetFeatureStyle: ${A.error}`))})),o=A=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const e=yield n.callUeFunc({f:"SetFeatureStyle",p:{id:t.id,json:A}});e&&(""===e.error||console.warn(`UeES3DTileset SetFeatureStyle: ${e.error}`))}));this.d(t.setFeatureColorEvent.don(((e,t)=>{const r=[...this.styleColor,...t];this.styleColor=[...r],A(e,r)}))),this.d(t.setFeatureVisableEvent.don(((A,t)=>{const r=[...this.styleVisable,...t];this.styleVisable=[...r],e(A,r)}))),this.d(t.resetFeatureStyleEvent.don((()=>{r(),this.styleColor=[],this.styleVisable=[]}))),this.d(t.setFeatureStyleEvent.don((A=>{o(A)})))}{const A=()=>Ir(this,void 0,void 0,(function*(){if(s||i)try{const A=yield n.callUeFunc({f:"GetFeatureTable",p:{id:t.id}});""!==A.error&&console.warn(`UeES3DTileset GetFeatureTable: ${A.error}`),t._featureTableResultEvent.emit(A.re.table)}catch(A){console.warn(`UeES3DTileset GetFeatureTable: ${A}`),t._featureTableResultEvent.emit(void 0)}else t._featureTableResultEvent.emit(void 0)}));this.d(t.getFeatureTableEvent.don((()=>{A()})))}}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}}br=Tr,Tr.type=br.register("ESUeViewer",A.ES3DTileset.type,br);var Mr,Lr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const xr=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 Dr extends A.EngineObject{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");let s,i;const o=this.dv((0,e.react)(void 0)),a=this.ad((0,e.reactJson)(""));{const e=()=>{if("string"==typeof t.url)a.value=A.ESSceneObject.context.getStrFromEnv(t.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(e.url),a.value=e}};e(),this.ad(t.urlChanged.don(e))}const c=()=>Lr(this,void 0,void 0,(function*(){var e,r,o,c,l,d,u,h,g,B,w,p,C;(s||i)&&(yield n.callUeFunc({f:"update",p:{id:t.id,show:null===(e=t.show)||void 0===e||e,rectangle:null!==(r=t.rectangle)&&void 0!==r?r:[-180,-90,180,90],collision:null===(o=t.collision)||void 0===o||o,allowPicking:null!==(c=t.allowPicking)&&void 0!==c&&c,flyToParam:null!==(l=t.flyToParam)&&void 0!==l?l:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(d=t.flyInParam)&&void 0!==d?d:A.ESVisualObject.defaults.flyInParam,url:null!==(u=a.value)&&void 0!==u?u:"",zIndex:null!==(h=t.zIndex)&&void 0!==h?h:0,maximumLevel:null!==(g=t.maximumLevel)&&void 0!==g?g:A.ESImageryLayer.defaults.maximumLevel,minimumLevel:null!==(B=t.minimumLevel)&&void 0!==B?B:A.ESImageryLayer.defaults.minimumLevel,options:null!==(w=t.options)&&void 0!==w?w:A.ESImageryLayer.defaults.options,targetID:null!==(p=t.targetID)&&void 0!==p?p:A.ESImageryLayer.defaults.targetID,opacity:null!==(C=t.opacity)&&void 0!==C?C:A.ESImageryLayer.defaults.opacity}}))})),l=this.dv((0,e.createNextAnimateFrameEvent)(t.showChanged,a.changed,t.flyToParamChanged,t.flyInParamChanged,t.zIndexChanged,t.collisionChanged,t.allowPickingChanged,t.maximumLevelChanged,t.minimumLevelChanged,t.rectangleChanged,t.optionsChanged,t.targetIDChanged,t.opacityChanged));this.d(l.don(c));const d=()=>Lr(this,void 0,void 0,(function*(){const{id:A}=t;if(void 0!==s){s=void 0;try{const e=yield r.unBindImageryById(A);if(!e)return;if(""!==e.error)return void console.warn(`UeESImageryLayer UnImageryByID: ${e.error}`)}catch(A){return void console.warn(`UeESImageryLayer UnImageryByID promise: ${A}`)}}if(void 0!==i){i=void 0;try{const e=yield n.callUeFunc({f:"destroy",p:{id:A,test:"UeESImageryLayer"}});if(!e)return;if(""!==e.error)return void console.warn(`UeESImageryLayer Destroy: ${e.error}`)}catch(A){return void console.warn(`UeESImageryLayer Destroy promise: ${A}`)}}}));this.d((()=>{d()}));{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>Lr(this,void 0,void 0,(function*(){if(void 0!==o.value){if("ActorTag"===o.value.type){const{actorTag:e,componentTag:n}=o.value;if(s!==e&&(yield A.promise(d())),void 0!==s)return;if(void 0===e)return;try{s=e;const i=yield A.promise(r.bindImageryByTag(t.id,e,n));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: ${xr(i.re.type)}`);console.warn(`ESImageryLayer BindImageryByTag: ${xr(i.re.type)}`)}}catch(A){return void console.warn(`ESImageryLayer BindImageryByTag promise: ${A}`)}}else if("CreatedUrl"===o.value.type){const{url:e}=o.value;if(e!==i&&(yield A.promise(d())),void 0!==i)return;if(void 0===e)return;try{i=e;const r=yield A.promise(n.callUeFunc({f:"create",p:{type:"ESImageryLayer",id:t.id}}));if(!r)return;if(""!==r.error)return void console.warn(`ESImageryLayer create: ${r.error}`)}catch(A){return void console.warn("ESImageryLayer create: create promise error")}}yield A.promise(c())}else yield A.promise(d())}))))),a=()=>Lr(this,void 0,void 0,(function*(){A.restart()}));a(),this.d(o.changed.don(a))}{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorTagChanged,a.changed,t.componentTagChanged)),r=()=>{t.actorTag&&t.componentTag?o.value={type:"ActorTag",actorTag:t.actorTag,componentTag:t.componentTag}:a.value?o.value={type:"CreatedUrl",url:a.value}:o.value=void 0};r(),this.d(A.don(r))}this.d(t.flyToEvent.don(((A,e)=>Lr(this,void 0,void 0,(function*(){if(!s&&!i)return;const o=yield Je(n,t.id,A);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),t.flyOverEvent.emit(e,a,r)}))))),this.d(t.flyInEvent.don(((A,e)=>Lr(this,void 0,void 0,(function*(){var o,a;if(!s&&!i)return;const c=yield je(n,t.id,null===(o=t.flyInParam)||void 0===o?void 0:o.position,null===(a=t.flyInParam)||void 0===a?void 0:a.rotation,null!=A?A:1);let l="over";void 0===c?l="error":0===c.endType?l="over":1===c.endType&&(l="cancelled"),t.flyOverEvent.emit(e,l,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{(s||i)&&ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>Lr(this,void 0,void 0,(function*(){if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{(s||i)&&A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))})))}}var Pr,Rr,kr,Kr,Or,Vr,Gr,_r,Nr,Wr,Jr,Xr,zr,Yr,jr,$r,Zr,qr,An,en,tn,rn;Mr=Dr,Dr.type=Mr.register("ESUeViewer",A.ESImageryLayer.type,Mr);class nn extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Pr=nn,nn.type=Pr.register("ESUeViewer",A.ESTerrainLayer.type,Pr),nn.forceUeUpdateProps=[...vr.forceUeUpdateProps,"url"],nn.propValFuncs=Object.assign(Object.assign({},vr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv(e):(e.url=A.ESSceneObject.context.getStrFromEnv(e.url),e),czmMaxzoom:null,czmMinzoom:null});class sn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Rr=sn,sn.type=Rr.register("ESUeViewer",A.ESAlarm.type,Rr);class on extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}kr=on,on.type=kr.register("ESUeViewer",A.ESApertureEffect.type,kr);class an extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Kr=an,an.type=Kr.register("ESUeViewer",A.ESGeoPolygon.type,Kr);class cn extends an{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r,s;let i=A.ESAreaMeasurement.defaults.fillStyle;try{i=Object.assign({},null!==(e=t.fillStyle)&&void 0!==e?e:A.ESAreaMeasurement.defaults.fillStyle)}catch(e){console.error("ESAreaMeasurement fillStyle 属性类型错误!",e),i=Object.assign({},A.ESAreaMeasurement.defaults.fillStyle)}i.materialParams=JSON.stringify(i.materialParams),n.callUeFunc({f:"update",p:{id:t.id,stroked:null!==(r=t.stroked)&&void 0!==r?r:A.ESAreaMeasurement.defaults.stroked,fillStyle:i,filled:null!==(s=t.filled)&&void 0!==s?s:A.ESAreaMeasurement.defaults.filled}}),console.log(i)},i=this.dv((0,e.createNextAnimateFrameEvent)(t.fillStyleChanged,t.strokedChanged,t.filledChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}Or=cn,cn.type=Or.register("ESUeViewer",A.ESAreaMeasurement.type,Or);class ln extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Vr=ln,ln.type=Vr.register("ESUeViewer",A.ESBlastParticleSystem.type,Vr);class dn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Gr=dn,dn.type=Gr.register("ESUeViewer",A.ESBoxClipping.type,Gr);class un extends Ur{constructor(A,e){super(A,e);const t=e.viewer;t?(this.dispose(A.flyInEvent.don((e=>{je(t,A.id,A.position,A.rotation,e)}))),this.dispose(A.resetWithCurrentCameraEvent.don((()=>{tt(t,A.id)}))),this.dispose(A.captureEvent.don(((t,r)=>{e.capture(t,r).then((e=>{e&&(A.thumbnail=e)}))})))):console.warn("viewer is undefined!")}}_r=un,un.type=_r.register("ESUeViewer",A.ESCameraView.type,_r);class hn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Nr=hn,hn.type=Nr.register("ESUeViewer",A.ESCameraVisibleRange.type,Nr);class gn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wr=gn,gn.type=Wr.register("ESUeViewer",A.ESCar.type,Wr);class Bn extends Fr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r;let s=A.ESClassification.defaults.fillStyle;try{s=Object.assign({},null!==(e=t.fillStyle)&&void 0!==e?e:A.ESClassification.defaults.fillStyle)}catch(e){console.error("ESClassification fillStyle 属性类型错误!",e),s=Object.assign({},A.ESClassification.defaults.fillStyle)}s.materialParams=JSON.stringify(s.materialParams),n.callUeFunc({f:"update",p:{id:t.id,filled:null!==(r=t.filled)&&void 0!==r?r:A.ESClassification.defaults.filled,fillStyle:s}})},i=this.dv((0,e.createNextAnimateFrameEvent)(t.fillStyleChanged,t.filledChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}Jr=Bn,Bn.type=Jr.register("ESUeViewer",A.ESClassification.type,Jr);class wn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Xr=wn,wn.type=Xr.register("ESUeViewer",A.ESClippingPlane.type,Xr);class pn extends Ur{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=this.ad((0,e.reactJson)(""));{const e=()=>{var e,r;if("string"==typeof t.url)s.value=A.ESSceneObject.context.getStrFromEnv(null!==(e=t.url)&&void 0!==e?e:A.ESDataMesh.defaults.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(null!==(r=e.url)&&void 0!==r?r:A.ESDataMesh.defaults.url),s.value=e}};e(),this.ad(t.urlChanged.don(e))}const i=()=>{var e,r,i,o,a;const c=null!==(e=t.colorStops)&&void 0!==e?e:A.ESDataMesh.defaults.colorStops;n.callUeFunc({f:"update",p:{id:t.id,url:null!==(r=s.value)&&void 0!==r?r:A.ESDataMesh.defaults.url,currentTime:null!==(i=t.currentTime)&&void 0!==i?i:A.ESDataMesh.defaults.currentTime,minPropValue:null!==(o=t.minPropValue)&&void 0!==o?o:A.ESDataMesh.defaults.minPropValue,maxPropValue:null!==(a=t.maxPropValue)&&void 0!==a?a:A.ESDataMesh.defaults.maxPropValue,colorStops:JSON.stringify(c)}})},o=this.dv((0,e.createNextAnimateFrameEvent)(s.changed,t.currentTimeChanged,t.minPropValueChanged,t.maxPropValueChanged,t.colorStopsChanged));this.d(o.don(i)),this.d(t.createdEvent.don(i))}}zr=pn,pn.type=zr.register("ESUeViewer",A.ESDataMesh.type,zr);class Cn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yr=Cn,Cn.type=Yr.register("ESUeViewer",A.ESDatasmithRuntimeModel.type,Yr);class mn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}jr=mn,mn.type=jr.register("ESUeViewer",A.ESDirectionMeasurement.type,jr);class fn extends Fr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e;let r;try{r=Object.assign({},null!==(e=t.strokeStyle)&&void 0!==e?e:A.ESDistanceMeasurement.defaults.strokeStyle)}catch(e){console.error("ESDistanceMeasurement strokeStyle 属性类型错误!",e),r=Object.assign({},A.ESDistanceMeasurement.defaults.strokeStyle)}n.callUeFunc({f:"update",p:{id:t.id,strokeStyle:r}})},i=this.dv((0,e.createNextAnimateFrameEvent)(t.strokeStyleChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}$r=fn,fn.type=$r.register("ESUeViewer",A.ESDistanceMeasurement.type,$r);class vn extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zr=vn,vn.type=Zr.register("ESUeViewer",A.ESLocalPolygon.type,Zr);class Qn extends vn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}qr=Qn,Qn.type=qr.register("ESUeViewer",A.ESDynamicWater.type,qr);class Un extends vr{constructor(A,e){super(A,e),e.viewer?this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,properties:r}=e;A.widgetEvent.emit({type:t,properties:r})}))):console.warn("viewer is undefined!")}}An=Un,Un.type=An.register("ESUeViewer",A.ESEntityCluster.type,An);class Fn extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}en=Fn,Fn.type=en.register("ESUeViewer",A.ESExcavate.type,en);class yn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}tn=yn,yn.type=tn.register("ESUeViewer",A.ESFireParticleSystem.type,tn);class En extends vr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=this.ad((0,e.reactJson)(""));{const e=()=>{if("string"==typeof t.url)s.value=A.ESSceneObject.context.getStrFromEnv(t.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(e.url),s.value=e}};e(),this.ad(t.urlChanged.don(e))}const i=()=>{var e,r,i,o,a,c,l,d;n.callUeFunc({f:"update",p:{id:t.id,url:null!==(e=s.value)&&void 0!==e?e:A.ESForestTileset.defaults.url,treeTypes:null!==(r=t.treeTypes)&&void 0!==r?r:A.ESForestTileset.defaults.treeTypes,xiaoBanWidget:null!==(i=t.xiaoBanWidget)&&void 0!==i?i:A.ESForestTileset.defaults.xiaoBanWidgetDefault,youShiSZ:null!==(o=t.youShiSZ)&&void 0!==o?o:A.ESForestTileset.defaults.youShiSZ,diLei:null!==(a=t.diLei)&&void 0!==a?a:A.ESForestTileset.defaults.diLei,senLinLB:null!==(c=t.senLinLB)&&void 0!==c?c:A.ESForestTileset.defaults.senLinLB,labelMaterial:null!==(l=t.labelMaterial)&&void 0!==l?l:A.ESForestTileset.defaults.labelMaterial,heightOffset:null!==(d=t.heightOffset)&&void 0!==d?d:A.ESForestTileset.defaults.heightOffset}})},o=this.dv((0,e.createNextAnimateFrameEvent)(s.changed,t.treeTypesChanged,t.xiaoBanWidgetChanged,t.youShiSZChanged,t.diLeiChanged,t.senLinLBChanged,t.labelMaterialChanged,t.heightOffsetChanged));this.d(o.don(i)),this.d(t.createdEvent.don(i))}}rn=En,En.type=rn.register("ESUeViewer",A.ESForestTileset.type,rn);var Sn,bn,In,Hn,Tn,Mn,Ln,xn=t(440),Dn=t.n(xn);class Pn extends A.EngineObject{constructor(t,r){super(t,r),this._imageLabel=this.dv(new A.ESImageLabel(`${this.id}_ESImageLabel`)),this._hasClassDivAndPos={};const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");t.mainClass=this._imageLabel;const s=this._imageLabel;r.add(s),this.d((()=>r.delete(s)));{const i=()=>{var e;if(!n)return;if(!t.instanceClass)throw new Error("!sceneObject.instanceClass");const i=document.createElement("div"),o=this.dv(new t.instanceClass(i,t,r))._container;if(o.style.opacity=null!==(e=t.opacity.toString())&&void 0!==e?e:A.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]}}Dn()(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),s.url=A.toDataURL(),s.show=t.show})).catch((()=>{document.body.contains(o)&&document.body.removeChild(o)}))},o=()=>{try{t.instanceClass?i():(s.url="",s.show=!1)}catch(A){console.error(A)}};o();const a=this.dv((0,e.createNextAnimateFrameEvent)(t.instanceClassChanged,t.opacityChanged));this.d(a.don(o))}{const A=()=>{s.show=t.show};s.show=!1,this.ad(t.showChanged.don(A))}this.d((0,e.track)([s,"anchor"],[t,"anchor"])),this.d((0,e.bind)([s,"editing"],[t,"editing"])),this.d((0,e.bind)([s,"position"],[t,"position"])),this.d((0,e.bind)([s,"rotation"],[t,"rotation"])),this.d((0,e.bind)([s,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([s,"flyInParam"],[t,"flyInParam"])),this.d((0,e.bind)([s,"allowPicking"],[t,"allowPicking"])),this.d((0,e.bind)([s,"scale"],[t,"scale"])),this.d((0,e.track)([s,"minVisibleDistance"],[t,"minVisibleDistance"])),this.d((0,e.track)([s,"maxVisibleDistance"],[t,"maxVisibleDistance"])),this.ad(t.automaticLandingEvent.don((()=>{s.automaticLanding()}))),this.d(s.pickedEvent.don((A=>{var e;null!==(e=t.allowPicking)&&void 0!==e&&e&&t.pickedEvent.emit(A)}))),this.d(r.widgetEvent.don((A=>{if(A.objId!==this._imageLabel.id)return;const{type:e,add:r}=A;if("leftClick"===e){const A=Object.keys(this._hasClassDivAndPos);for(let e=0;e<A.length;e++){const t=A[e];let n=this._hasClassDivAndPos[t];if(r&&r.mouseRelativePos&&r.mouseRelativePos[0]>=n[0]&&r.mouseRelativePos[0]<=n[2]&&r.mouseRelativePos[1]>=n[1]&&r.mouseRelativePos[1]<=n[3]){r.className=t;break}}}t.widgetEvent.emit({type:e,add:r})}))),this.d(t.calcFlyToParamEvent.don((()=>{ze(n,s.id)}))),this.d(t.calcFlyInParamEvent.don((()=>{const A=r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))),this.d(t.smoothMoveEvent.don(((A,e)=>{lt(n,s.id,A,e)}))),this.d(t.smoothMoveWithRotationEvent.don(((A,e,t)=>{rt(n,s.id,A,e,t)}))),this.d(t.smoothMoveOnGroundEvent.don(((A,e,t,r)=>{nt(n,s.id,A,e,r,t)}))),this.d(t.smoothMoveWithRotationOnGroundEvent.don(((A,e,t,r,i)=>{st(n,s.id,A,e,t,r,i)}))),this.d(t.flyToEvent.don(((A,e)=>{s.flyTo(A)}))),this.d(t.flyInEvent.don((A=>{s.flyIn(A)})))}}Sn=Pn,Pn.type=Sn.register("ESUeViewer",A.ESGeoDiv.type,Sn);class Rn extends vr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.flyToFeatureIndexEvent.don(((e,r)=>{t.callUeFunc({f:"flyToFeatureIndex",p:{id:A.id,index:e,duration:r}})}))),this.d(A.flyToFeatureEvent.don(((e,r,n)=>{t.callUeFunc({f:"flyToFeature",p:{id:A.id,key:e,value:r,duration:n}})})))):console.warn("viewer is undefined!")}}bn=Rn,Rn.type=bn.register("ESUeViewer",A.ESGeoJson.type,bn);class kn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}In=kn,kn.type=In.register("ESUeViewer",A.ESGeoLineString.type,In);class Kn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Hn=Kn,Kn.type=Hn.register("ESUeViewer",A.ESGeoRectangle.type,Hn);class On extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Tn=On,On.type=Tn.register("ESUeViewer",A.ESGeoWater.type,Tn);class Vn extends Ur{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.setNodePositionEvent.don(((e,r)=>{ut(t,A.id,e,r)}))),this.d(A.setNodeRotationEvent.don(((e,r)=>{ht(t,A.id,e,r)}))),this.d(A.setNodeScaleEvent.don(((e,r)=>{gt(t,A.id,e,r)})))):console.warn("viewer is undefined!")}}Mn=Vn,Vn.forceUeUpdateProps=[...Ur.forceUeUpdateProps,"url"],Vn.propValFuncs=Object.assign(Object.assign({},Ur.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e)):(e.url=A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e.url)),e),czmMaximumScale:null,czmMinimumPixelSize:null,czmNativeScale:null,czmColor:null}),Vn.type=Mn.register("ESUeViewer",A.ESGltfModel.type,Mn);class Gn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ln=Gn,Gn.type=Ln.register("ESUeViewer",A.ESHeightMeasurement.type,Ln);var _n,Nn,Wn,Jn,Xn,zn,Yn,jn,$n,Zn,qn,As,es=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class ts extends Ur{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=(A,e,t,r)=>es(this,void 0,void 0,(function*(){const{viewer:n}=A;if(!n)return void console.error("AIMoveTo: ueViewer.viewer is undefined");const s=yield n.callUeFunc({f:"AIMoveTo",p:{id:e,Destination:t,Time:r}});return s.error&&console.error("AIMoveTo:",s.error),s}));this.d(A.aiMoveToEvent.don(((r,n)=>{t(e,A.id,r,n)})));const r=(A,e)=>es(this,void 0,void 0,(function*(){const{viewer:t}=A;if(!t)return void console.error("StopAIMove: ueViewer.viewer is undefined");const r=yield t.callUeFunc({f:"StopAIMove",p:{id:e}});return r.error&&console.error("StopAIMove:",r.error),r}));this.d(A.stopAIMoveEvent.don((()=>{r(e,A.id)})))}}_n=ts,ts.type=_n.register("ESUeViewer",A.ESHuman.type,_n);class rs extends yr{constructor(A,e){super(A,e),e.viewer?A.anchor=[.5,1]:console.warn("viewer is undefined!")}}Nn=rs,rs.type=Nn.register("ESUeViewer",A.ESImageLabel.type,Nn),rs.forceUeUpdateProps=[...yr.forceUeUpdateProps,"url"],rs.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e)):(e.url=A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e.url)),e)});class ns extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wn=ns,ns.type=Wn.register("ESUeViewer",A.ESLevelRuntimeModel.type,Wn);class ss extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Jn=ss,ss.type=Jn.register("ESUeViewer",A.ESLocalCircle.type,Jn);class is extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Xn=is,is.type=Xn.register("ESUeViewer",A.ESLocalPolygonZ.type,Xn);class os extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zn=os,os.type=zn.register("ESUeViewer",A.ESLocalRectangle.type,zn);class as extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yn=as,as.type=Yn.register("ESUeViewer",A.ESLocalSkyBox.type,Yn);class cs extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}jn=cs,cs.type=jn.register("ESUeViewer",A.ESLocationMeasurement.type,jn);class ls extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}$n=ls,ls.type=$n.register("ESUeViewer",A.ESPipeFence.type,$n);class ds extends kn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zn=ds,ds.type=Zn.register("ESUeViewer",A.ESPipeline.type,Zn);class us extends Tr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.highlightFeatureEvent.don((e=>{const r="number"==typeof e?e.toString():e;it(t,A.id,r)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((e,r,n,s)=>{const i="number"==typeof e?e.toString():e;ot(t,A.id,i,null!=s?s:1)}))),this.d(A.setLayerVisibleEvent.don(((e,r)=>{let n="";n="string"!=typeof r?JSON.stringify(r):r,at(t,A.id,n)}))),this.d(A.setLayerColorEvent.don(((e,r)=>{let n="";n="string"!=typeof r?JSON.stringify(r):r,ct(t,A.id,n)})))):console.warn("viewer is undefined!")}}qn=us,us.type=qn.register("ESUeViewer",A.ESPipeserTileset.type,qn);class hs extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}As=hs,hs.type=As.register("ESUeViewer",A.ESPit.type,As);var gs,Bs,ws,ps,Cs,ms,fs,vs,Qs,Us,Fs,ys,Es;class Ss extends yr{constructor(A,e){super(A,e);const t=e.viewer;t?this.ad(A.getInitialStyleEvent.don((()=>function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.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!")}}gs=Ss,Ss.type=gs.register("ESUeViewer",A.ESPoi2D.type,gs);class bs extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Bs=bs,bs.type=Bs.register("ESUeViewer",A.ESPoi3D.type,Bs);class Is extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ws=Is,Is.type=ws.register("ESUeViewer",A.ESPoiTileset.type,ws),Is.forceUeUpdateProps=[...vr.forceUeUpdateProps,"url"],Is.propValFuncs=Object.assign(Object.assign({},vr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv(e):(e.url=A.ESSceneObject.context.getStrFromEnv(e.url),e)});class Hs extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ps=Hs,Hs.type=ps.register("ESUeViewer",A.ESPolygonFence.type,ps);class Ts extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Cs=Ts,Ts.type=Cs.register("ESUeViewer",A.ESPolygonFlattenedPlane.type,Cs);class Ms extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ms=Ms,Ms.type=ms.register("ESUeViewer",A.ESPolygonWithHole.type,ms);class Ls extends fr{constructor(A,t){if(super(A,t),t.viewer){this.d(A.highlightInner3DtilesetEvent.don((A=>{A.highlight=!0}))),this.d(A.removeHighlightInner3DtilesetEvent.don((A=>{A.highlight=!1})));{const t=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]]},r=()=>{const e=A.layerConfig;if(!e)return;const r=[];e.forEach((A=>{var e;r.push({condition:[{field:"layer",op:"==",value:A.layer},{field:"dataset",op:"==",value:A.dataset}],color:t(null!==(e=A.value.color)&&void 0!==e?e:"rgb(255,255,255)"),show:A.value.visible})})),A.setFeatureStyle(r)};r();const n=this.dv((0,e.createNextAnimateFrameEvent)(A.layerConfigChanged));this.d(n.don((()=>{r()})))}}else console.warn("viewer is undefined!")}}fs=Ls,Ls.type=fs.register("ESUeViewer",A.ESRtsTileset.type,fs);class xs extends vr{constructor(e,t){super(e,t),t.viewer?(this.d(e.addTreesEvent.don((r=>{(0,A.addTreesCallFunc)(t,e.id,r)}))),this.d(e.removeAllTreesEvent.don((()=>{(0,A.removeAllTreesCallFunc)(t,e.id)}))),this.d(e.updateTreeParamsEvent.don((r=>{(0,A.updateTreeParamsCallFunc)(t,e.id,r)}))),this.d(e.cutDownTreesEvent.don(((r,n)=>{(0,A.cutDownTreesCallFunc)(t,e.id,r,n)}))),this.d(e.growthSimulationEvent.don(((r,n,s)=>{(0,A.growthSimulationCallFunc)(t,e.id,r,n,s)})))):console.warn("viewer is undefined!")}}vs=xs,xs.type=vs.register("ESUeViewer",A.ESSeparateFoliage.type,vs);class Ds extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Qs=Ds,Ds.type=Qs.register("ESUeViewer",A.ESSubmergingAnalysis.type,Qs);class Ps extends an{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!")}}Us=Ps,Ps.type=Us.register("ESUeViewer",A.ESSunshineAnalysis.type,Us);class Rs extends an{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!")}}Fs=Rs,Rs.type=Fs.register("ESUeViewer",A.ESSurfaceAreaMeasurement.type,Fs);class ks extends yr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ys=ks,ks.type=ys.register("ESUeViewer",A.ESTextLabel.type,ys);class Ks extends yr{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.callFunctionEvent.don(((e,r)=>{dt(t,A.id,e,r)}))):console.warn("viewer is undefined!")}}Es=Ks,Ks.type=Es.register("ESUeViewer",A.ESUEWidget.type,Es),Ks.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});const Os=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 Vs,Gs,_s,Ns,Ws,Js,Xs,zs=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Ys extends A.EngineObject{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn(`${t.id} UeESUnrealActor viewer is undefined!`);this.d((()=>{Xe(n,t.id)}));const s=()=>zs(this,void 0,void 0,(function*(){var e,r;l()||(yield n.callUeFunc({f:"update",p:{id:t.id,name:t.name,show:t.show,rotation:t.rotation,flyToParam:null!==(e=t.flyToParam)&&void 0!==e?e:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(r=t.flyInParam)&&void 0!==r?r:A.ESVisualObject.defaults.flyInParam,editing:t.editing,highlight:t.highlight,collision:t.collision,scale:t.scale,minVisibleDistance:t.minVisibleDistance,maxVisibleDistance:t.maxVisibleDistance}}))})),i=this.dv((0,e.createNextAnimateFrameEvent)(t.showChanged,t.nameChanged,t.rotationChanged,t.editingChanged,t.flyToParamChanged,t.flyInParamChanged,t.highlightChanged,t.collisionChanged,t.scaleChanged,t.minVisibleDistanceChanged,t.maxVisibleDistanceChanged));let o,a;this.d(i.don(s)),this.d(t.flushEvent.don((()=>i.flush())));const c=()=>zs(this,void 0,void 0,(function*(){var A;l()||(yield n.callUeFunc({f:"update",p:{id:t.id,position:t.position}}),null!==(A=r.debug)&&void 0!==A&&A&&console.log(`updatePostion:${t.position},actorTag:${t.actorTag},actorClass:${t.actorClass}`))})),l=()=>!o&&!a&&(console.warn(`${t.id} 未绑定ActorTag或未创建ActorClass!`),!0),d=()=>zs(this,void 0,void 0,(function*(){const{id:A}=t,e=yield r.unBindActorByID(A);e&&""!==e.error&&console.warn(`${t.id} UeESUnrealActor UnBindActorByID: ${e.error}`),o=void 0;const s=yield n.callUeFunc({f:"destroy",p:{id:A}});s&&""!==s.error?console.warn(`${t.id} UeESUnrealActor DestroyActorByID: ${s.error}`):a=void 0})),u=this.dv((0,e.react)({type:"ActorClass",actorClass:"default"}));{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorClassChanged,t.actorTagChanged)),r=()=>zs(this,void 0,void 0,(function*(){""!==t.actorTag?u.value={type:"ActorTag",actorTag:t.actorTag}:u.value={type:"ActorClass",actorClass:""===t.actorClass?"default":t.actorClass}}));r(),this.d(A.don(r)),this.d(t.flushEvent.don((()=>A.flush())))}{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>zs(this,void 0,void 0,(function*(){if(yield A.promise(d()),"ActorTag"===u.value.type){const{actorTag:e}=u.value;yield A.promise(d());try{t.lastActorStatus="null";const n=yield A.promise(r.bindActorByTag(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`${t.id} UeESUnrealActor BindActorByTag:${e},${n.error}`);if(0===n.re.type)t.lastActorStatus="bound",o=e;else{if(1!==n.re.type)return o=void 0,void console.warn(`${t.id} UeESUnrealActor BindActorByTag error:${e}, ${Os(n.re.type)}`);t.lastActorStatus="bound",o=e,console.warn(`${t.id} UeESUnrealActor BindActorByTag:${e},${Os(n.re.type)}`)}}catch(A){return void console.warn(`${t.id} UeESUnrealActor BindActorByTag catch error:${e}, ${A}`)}}else if("ActorClass"===u.value.type){const{actorClass:e}=u.value;try{const n=yield A.promise(r.createActorByClass(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error :${e}, ${n.error}`);if(0!==n.re.type)return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error type :${e},${(A=>{switch(A){case 0:return"创建成功";case 1:return"未找到对应的资源,无法创建";case 2:return"Id与场景中现有的ActorTag重复,创建后可能出现问题,创建失败";default:return"未知错误"}})(n.re.type)}`);t.lastActorStatus="created",a=e}catch(A){return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error catch :${e}, ${JSON.stringify(A)}`)}}yield A.promise(s()),yield A.promise(c())}))))),n=()=>zs(this,void 0,void 0,(function*(){A.restart()}));n(),this.d(u.changed.don(n))}this.d(t.positionChanged.don(c)),this.d(t.callFunctionEvent.don(((A,e)=>{l()||dt(n,t.id,A,e)}))),this.d(t.smoothMoveEvent.don(((A,e)=>{l()||lt(n,t.id,A,e)}))),this.d(t.smoothMoveWithRotationEvent.don(((A,e,r)=>{l()||rt(n,t.id,A,e,r)}))),this.d(t.smoothMoveOnGroundEvent.don(((A,e,r,s)=>{l()||nt(n,t.id,A,e,s,r)}))),this.d(t.smoothMoveWithRotationOnGroundEvent.don(((A,e,r,s,i)=>{l()||st(n,t.id,A,e,r,s,i)}))),this.d(t.automaticLandingEvent.don((A=>{if(l())return;const e=[t.position[0],t.position[1]];r.getHeightByLonLat(t.position[0],t.position[1],"Visibility").then((r=>{null!==r&&(t.position=[...e,r],t.collision=A)}))}))),this.d(t.flyToEvent.don(((A,e)=>zs(this,void 0,void 0,(function*(){if(l())return;const s=yield Je(n,t.id,A);let i="over";void 0===s?i="error":0===s.endType?i="over":1===s.endType&&(i="cancelled"),t.flyOverEvent.emit(e,i,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{l()||ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>zs(this,void 0,void 0,(function*(){if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{l()||A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))})))}}Vs=Ys,Ys.type=Vs.register("ESUeViewer",A.ESUnrealActor.type,Vs);class js extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Gs=js,js.type=Gs.register("ESUeViewer",A.ESVideoFusion.type,Gs);class $s extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}_s=$s,$s.type=_s.register("ESUeViewer",A.ESViewShed.type,_s);class Zs extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Ns=Zs,Zs.type=Ns.register("ESUeViewer",A.ESVisibilityAnalysis.type,Ns);class qs extends an{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!")}}Ws=qs,qs.type=Ws.register("ESUeViewer",A.ESVolumeMeasurement.type,Ws);class Ai extends yr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Js=Ai,Ai.type=Js.register("ESUeViewer",A.ESWidget.type,Js),Ai.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});class ei extends A.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!")}}Xs=ei,ei.type=Xs.register("ESUeViewer",A.ESHumanPoi.type,Xs);var ti,ri,ni=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};A.ESSceneObject.context.getStrFromEnv(A.ESNavigator.defaults.imgUrl);class si extends A.EngineObject{constructor(t,r){if(super(t,r),!r.viewer)return void console.warn("viewer is undefined!");const n=this.disposeVar(new A.ESCustomDiv);r.add(n),this.dispose((()=>r.delete(n))),this.dispose((0,e.track)([n,"show"],[t,"show"])),n.instanceClass=class extends e.Destroyable{constructor(e,n,s){super(),this._subContainer=e;const i=document.createElement("div");this._subContainer.appendChild(i),this.dispose((()=>this._subContainer.removeChild(i)));{const A=()=>ni(this,void 0,void 0,(function*(){const A=yield r.getCurrentCameraInfo(),e=null==A?void 0:A.position,t=[...null==A?void 0:A.rotation];t[0]=360,r.flyIn(e,t)}));i.addEventListener("click",A),i.style.cursor="pointer",this.dispose((()=>i.removeEventListener("click",A)))}{const e=()=>{i.style.width=`${t.cssSize?t.cssSize:A.ESNavigator.defaults.cssSize}px`,i.style.height=`${t.cssSize?t.cssSize:A.ESNavigator.defaults.cssSize}px`};e(),t.dispose(t.cssSizeChanged.disposableOn(e))}i.style.position="fixed";{const e=()=>{i.style.top=`${t.cssPosition?t.cssPosition[0]:A.ESNavigator.defaults.cssPosition[0]}px`,i.style.right=`${t.cssPosition?t.cssPosition[1]:A.ESNavigator.defaults.cssPosition[1]}px`};e(),t.dispose(t.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 A=()=>a.src=t.imgUrl;A(),t.dispose(t.imgUrlChanged.disposableOn(A))}{const A=()=>{const A=-r.getCurrentCameraInfo().rotation[0];a.style.transform=`rotate(${A}deg)`};let e;const n=()=>ni(this,void 0,void 0,(function*(){A(),t.show?(i.style.display="block",e=setInterval((()=>{A()}),1e3)):(i.style.display="none",clearInterval(e))}));this.dispose(t.showChanged.disposableOn(n)),n(),this.dispose((()=>clearInterval(e)))}a.style.transformOrigin="50% 50%"}}}}ti=si,si.type=ti.register("ESUeViewer",A.ESNavigator.type,ti);class ii extends Fr{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!")}}ri=ii,ii.type=ri.register("ESUeViewer",A.ESPath.type,ri),ii.forceUeUpdateProps=[...Fr.forceUeUpdateProps],ii.propValFuncs=Object.assign(Object.assign({},Fr.propValFuncs),{materialMode:null});var oi,ai,ci,li,di,ui,hi,gi=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Bi extends A.EngineObject{constructor(t,r){if(super(t,r),!r.viewer)return void console.warn("viewer is undefined!");const n=this.disposeVar(new A.ESCustomDiv);r.add(n),this.dispose((()=>r.delete(n))),n.instanceClass=class extends e.Destroyable{constructor(e,n,s){if(super(),this._subContainer=e,!s)return;if(!(s instanceof mr))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=`${A.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=`${A.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){gi(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,r;i.style.height=(null!==(e=t.height)&&void 0!==e?e:A.ESViewerStatusBar.defaults.height)+"px",i.style.lineHeight=(null!==(r=t.height)&&void 0!==r?r:A.ESViewerStatusBar.defaults.height)+"px"};this.dispose(t.heightChanged.disposableOn(e)),e()}{const e=()=>{var e;i.style.fontSize=(null!==(e=t.fontSize)&&void 0!==e?e:A.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(t.fontSizeChanged.disposableOn(e)),e()}{const e=()=>{t.bgColor?i.style.background=`rgba(${255*t.bgColor[0]},${255*t.bgColor[1]},${255*t.bgColor[2]},${t.bgColor[3]})`:i.style.background=`rgba(${A.ESViewerStatusBar.defaults.bgColor[0]},${A.ESViewerStatusBar.defaults.bgColor[1]},${A.ESViewerStatusBar.defaults.bgColor[2]},${A.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(t.bgColorChanged.disposableOn(e)),e()}s.getVersion().then((A=>{A&&(l.innerText=`Ue 版本 : ${A[0]} `)})).catch((A=>{console.log(A)}));{const A=()=>{let A="",e="";A+=`帧率:${s.getFPS().toFixed(0)}FPS`,a.innerText=A;const t=r.getCurrentCameraInfo();A+=` 经度: ${t.position[0].toFixed(5)}° 纬度: ${t.position[1].toFixed(5)}° 高度: ${t.position[2].toFixed(2)}米 偏航角: ${t.rotation[0].toFixed(2)}° 俯仰角: ${t.rotation[1].toFixed(2)}° 翻滚角:${t.rotation[2].toFixed(2)}° `,a.innerText=A,r.pick().then((A=>{if(A){const{pickResult:t}=A;if(t&&t.position){const{position:A}=t;e+=`鼠标位置:${A[0].toFixed(5)}° ${A[1].toFixed(5)}° ${A[2].toFixed(2)}m`}else e+="暂时无法获取鼠标位置...";c.innerText=e}})).catch((A=>{console.log(A)}))};let e;const n=()=>gi(this,void 0,void 0,(function*(){A(),t.show?(i.style.display="flex",e=setInterval((()=>{A()}),1e3)):(i.style.display="none",clearInterval(e))}));this.dispose(t.showChanged.disposableOn(n)),n(),this.dispose((()=>clearInterval(e)))}}}}}oi=Bi,Bi.type=oi.register("ESUeViewer",A.ESViewerStatusBar.type,oi);class wi extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ai=wi,wi.type=ai.register("ESUeViewer",A.ESGaussianSplatting.type,ai);class pi extends fr{get es3DTileset(){return this._es3DTileset}constructor(t,r){if(super(t,r),this._es3DTileset=this.dv(new A.ES3DTileset(`${this.sceneObject.id}_ES3DTileset`)),r.viewer){t.mainClass=this._es3DTileset;{const A=this._es3DTileset;r.add(A),this.dispose((()=>r.delete(A))),this.d((0,e.track)([A,"allowPicking"],[t,"allowPicking"])),this.d((0,e.track)([A,"collision"],[t,"collision"])),this.d((0,e.bind)([A,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([A,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([A,"editing"],[t,"editing"])),this.d((0,e.track)([A,"url"],[t,"url"])),this.d((0,e.track)([A,"actorTag"],[t,"actorTag"])),this.d((0,e.track)([A,"materialMode"],[t,"materialMode"])),this.d((0,e.track)([A,"highlight"],[t,"highlight"])),this.d((0,e.track)([A,"maximumScreenSpaceError"],[t,"maximumScreenSpaceError"])),this.d((0,e.track)([A,"highlightID"],[t,"highlightID"])),this.d((0,e.track)([A,"highlightColor"],[t,"highlightColor"])),this.d((0,e.bind)([A,"offset"],[t,"offset"])),this.d((0,e.bind)([A,"rotation"],[t,"rotation"])),this.d((0,e.track)([A,"czmImageBasedLightingFactor"],[t,"czmImageBasedLightingFactor"])),this.d((0,e.track)([A,"czmLuminanceAtZenith"],[t,"czmLuminanceAtZenith"])),this.d((0,e.track)([A,"czmMaximumMemoryUsage"],[t,"czmMaximumMemoryUsage"])),this.d((0,e.track)([A,"czmClassificationType"],[t,"czmClassificationType"])),this.d((0,e.track)([A,"czmStyleJson"],[t,"czmStyleJson"])),this.d((0,e.track)([A,"czmBackFaceCulling"],[t,"czmBackFaceCulling"])),this.d((0,e.track)([A,"czmDebugShowBoundingVolume"],[t,"czmDebugShowBoundingVolume"])),this.d((0,e.track)([A,"czmDebugShowContentBoundingVolume"],[t,"czmDebugShowContentBoundingVolume"])),this.d((0,e.track)([A,"colorBlendMode"],[t,"colorBlendMode"])),this.d((0,e.track)([A,"cacheBytes"],[t,"cacheBytes"])),this.d((0,e.track)([A,"clippingPlaneEnabled"],[t,"clippingPlaneEnabled"])),this.d((0,e.track)([A,"unionClippingRegions"],[t,"unionClippingRegions"])),this.d((0,e.track)([A,"clippingPlaneEdgeColor"],[t,"clippingPlaneEdgeColor"])),this.d((0,e.track)([A,"clippingPlaneEdgeWidth"],[t,"clippingPlaneEdgeWidth"])),this.d((0,e.track)([A,"materialParams"],[t,"materialParams"])),this.d((0,e.bind)([A,"supportEdit"],[t,"supportEdit"])),this.d((0,e.bind)([A,"clippingPlanesId"],[t,"clippingPlanesId"])),this.d((0,e.bind)([A,"clippingPlaneIds"],[t,"clippingPlaneIds"])),this.d((0,e.bind)([A,"flattenedPlaneId"],[t,"flattenedPlaneId"])),this.d((0,e.bind)([A,"flattenedPlaneEnabled"],[t,"flattenedPlaneEnabled"])),this.d((0,e.bind)([A,"clippingPlaneId"],[t,"clippingPlaneId"])),this.d((0,e.bind)([A,"excavateId"],[t,"excavateId"]))}{const A=this._es3DTileset;this.d(t.refreshTilesetEvent.don((()=>{A.refreshTileset()}))),this.d(t.highlightFeatureEvent.don(((...e)=>{A.highlightFeature(...e)}))),this.d(t.highlightFeatureAndFlyToEvent.don(((...e)=>{A.highlightFeatureAndFlyTo(...e)}))),this.d(t.setFeatureColorEvent.don(((...e)=>{A.setFeatureColor(...e)}))),this.d(t.setFeatureVisableEvent.don(((...e)=>{A.setFeatureVisable(...e)}))),this.d(t.resetFeatureStyleEvent.don(((...e)=>{A.resetFeatureStyle(...e)}))),this.d(t.flyInEvent.don(((...e)=>{A.flyIn(e[0])}))),this.d(t.flyToEvent.don(((...e)=>{A.flyTo(e[0])}))),this.d(t.calcFlyToParamEvent.don(((...e)=>{A.calcFlyToParam(...e)}))),this.d(t.calcFlyInParamEvent.don(((...e)=>{A.calcFlyInParam(...e)})))}{const e=this._es3DTileset;this.d(e.tilesetReady.don((A=>{t.tilesetReady.emit(A)}))),this.d(e.pickedEvent.don((e=>{t.pickedEvent.emit(new A.SceneObjectPickedInfo(t,e.childPickedInfo))})))}{const A=()=>{this.es3DTileset.show=t.show};A(),this.d(t.showChanged.don((()=>{A()})))}}else console.warn("viewer is undefined!")}}ci=pi,pi.type=ci.register("ESUeViewer",A.ESRtsFeatureEditing.type,ci);class Ci extends fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}li=Ci,Ci.type=li.register("ESUeViewer",A.ESMsTileset.type,li);class mi extends an{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r,s;n.callUeFunc({f:"update",p:{id:t.id,height:null!==(e=t.height)&&void 0!==e?e:A.ESGeoExtrudedPolygon.defaults.height,extrudedHeight:null!==(r=t.extrudedHeight)&&void 0!==r?r:A.ESGeoExtrudedPolygon.defaults.extrudedHeight,perPositionHeight:null!==(s=t.perPositionHeight)&&void 0!==s?s:A.ESGeoExtrudedPolygon.defaults.perPositionHeight}})},i=this.disposeVar((0,e.createNextAnimateFrameEvent)(t.heightChanged,t.extrudedHeightChanged,t.perPositionHeightChanged));this.dispose(i.disposableOn(s)),this.dispose(t.createdEvent.disposableOn(s))}}di=mi,mi.type=di.register("ESUeViewer",A.ESGeoExtrudedPolygon.type,di);class fi extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}let vi;ui=fi,fi.type=ui.register("ESUeViewer",A.ESStaticMesh.type,ui);try{const A=null!=="earthsdk3-ue"?"earthsdk3-ue":"-",e="3.0.3",t="2025-04-03T12:52:34.000Z",r="北京西部世界科技有限公司",n="地球可视化实验室 (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${n?n+"\n":""}当前网站正在使用${A},此软件版权归${r}所有\n`;vi=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]=vi,window.g_earthsdk_copyright_print=null===(hi=window.g_earthsdk_copyright_print)||void 0===hi||hi,window.g_earthsdk_copyright_print&&vi.print()}catch(A){}})(),module.exports=r})();
2
+ (()=>{var A={440:function(A){A.exports=function(){"use strict";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 r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A},t.apply(this,arguments)};function r(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))}function n(A,e){var t,r,n,s,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[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,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((n=(n=i.trys).length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){i.label=s[1];break}if(6===s[0]&&i.label<n[1]){i.label=n[1],n=s;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(s);break}n[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(A,i)}catch(A){s=[6,A],r=0}finally{t=n=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 r,n=0,s=e.length;n<s;n++)!r&&n in e||(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return A.concat(r||e)}for(var i=function(){function A(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}return A.prototype.add=function(e,t,r,n){return new A(this.left+e,this.top+t,this.width+r,this.height+n)},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 r=Array.from(t).find((function(A){return 0!==A.width}));return r?new A(r.left+e.windowBounds.left,r.top+e.windowBounds.top,r.width,r.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,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}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 r=[],n=-1,s="";++n<t;){var i=A[n];i<=65535?r.push(i):(i-=65536,r.push(55296+(i>>10),i%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.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,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,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,U=15,F=17,y=18,E=19,S=20,b=21,I=22,H=24,T=25,M=26,L=27,x=28,D=30,P=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,r,n=function(A){var e,t,r,n,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)],r=g[A.charCodeAt(e+1)],n=g[A.charCodeAt(e+2)],s=g[A.charCodeAt(e+3)],l[a++]=t<<2|r>>4,l[a++]=(15&r)<<4|n>>2,l[a++]=(3&n)<<6|63&s;return c}(A),s=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(n):new Uint32Array(n),i=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(n):new Uint16Array(n),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,r):new Uint32Array(Array.prototype.slice.call(e,t,r)));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=[D,36],j=[1,2,3,5],$=[v,8],Z=[L,M],q=j.concat($),AA=[V,G,_,k,K],eA=[U,Q],tA=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var s=t;s<=r.length;){if((a=r[++s])===e)return!0;if(a!==v)break}if(n===v)for(s=t;s>0;){var i=r[--s];if(Array.isArray(A)?-1!==A.indexOf(i):A===i)for(var o=t;o<=r.length;){var a;if((a=r[++o])===e)return!0;if(a!==v)break}if(i!==v)break}return!1},rA=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==v)return r;t--}return 0},nA=function(A,e,t,r,n){if(0===t[r])return J;var s=r-1;if(Array.isArray(n)&&!0===n[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===rA(s,e))return X;if(11===z.get(A[s]))return J;if((a===P||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,U].indexOf(a)&&9===l)return J;if(-1!==[F,y,E,H,x].indexOf(l))return J;if(rA(s,e)===I)return J;if(tA(23,I,s,e))return J;if(tA([F,y],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,U,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,P,R].indexOf(l)||-1!==[O,P,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,U].indexOf(l)&&e[o+1]===T)||-1!==[I,U].indexOf(a)&&l===T||a===T&&-1!==[T,x,H].indexOf(l))return J;if(-1!==[T,x,H,F,y].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!==[F,y].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===y)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===P&&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=[],r=[],n=[];return A.forEach((function(A,s){var i=z.get(A);if(i>50?(n.push(!0),i-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(s),t.push(16);if(4===i||11===i){if(0===s)return r.push(s),t.push(D);var o=t[s-1];return-1===q.indexOf(o)?(r.push(r[s-1]),t.push(o)):(r.push(s),t.push(D))}return r.push(s),31===i?t.push("strict"===e?b:O):i===N||29===i?t.push(D):43===i?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(O):t.push(D):void t.push(i)})),[r,t,n]}(A,e.lineBreak),r=t[0],n=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[T,D,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[r,n,i]},iA=function(){function A(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}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 r=[];lA(A[e]);)r.push(A[e++]);var n=r.length?parseInt(c.apply(void 0,r),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*(n+o*Math.pow(10,-i))*Math.pow(10,a*d)},fA={type:2},vA={type:3},QA={type:4},UA={type:13},FA={type:8},yA={type:21},EA={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},DA={type:26},PA={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),r=this.peekCodePoint(2);if(gA(e)||wA(t,r)){var n=pA(e,t,r)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),UA;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 DA;case 59:return PA;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(),FA;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(),EA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),yA;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 r=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===oA&&dA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];dA(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(c.apply(void 0,n),16)}}return{type:30,start:r,end:r}},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 r=this.consumeCodePoint();if(r===cA||41===r)return{type:22,value:c.apply(void 0,A)};if(uA(r))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===r||39===r||40===r||BA(r))return this.consumeBadUrlRemnants(),TA;if(92===r){if(!wA(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),TA;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},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 r=this._value[t];if(r===cA||void 0===r||r===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===r)return this._value.splice(0,t),MA;if(92===r){var n=this._value[t+1];n!==cA&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):wA(r,n)&&(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 r=this.peekCodePoint(1);if(46===t&&lA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;lA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((r===aA||r===oA)&&lA(n)||lA(r)))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],r=this.peekCodePoint(0),n=this.peekCodePoint(1),s=this.peekCodePoint(2);return pA(r,n,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===r?(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},re={type:16,number:100,flags:4},ne=function(A,e,t){var r=A[0],n=A[1];return[se(r,e),se(void 0!==n?n:r,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,re];case"to right":case"left":return de(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[re,re];case"to bottom":case"top":return de(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[re,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 r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);return Be(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),1)}if(4===e.value.length){r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);var i=e.value.substring(3,4);return Be(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),parseInt(i+i,16)/255)}if(6===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),Be(parseInt(r,16),parseInt(n,16),parseInt(s,16),1);if(8===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),i=e.value.substring(6,8),Be(parseInt(r,16),parseInt(n,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,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},Be=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r))>>>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 r=t.map(we),n=r[0],s=r[1],i=r[2];return Be(n,s,i,1)}if(4===t.length){var o=t.map(we),a=(n=o[0],s=o[1],i=o[2],o[3]);return Be(n,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),r=t[0],n=t[1],s=t[2],i=t[3],o=(17===r.type?de(r.number):ae(A,r))/(2*Math.PI),a=qA(n)?n.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},Ue={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}))}},Fe={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ye=function(A,e){var t=ue(A,e[0]),r=e[1];return r&&qA(r)?{color:t,stop:r}:{color:t,stop:null}},Ee=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=ee),null===r.stop&&(r.stop=re);for(var n=[],s=0,i=0;i<A.length;i++){var o=A[i].stop;if(null!==o){var a=se(o,e);a>s?n.push(a):n.push(s),s=a}else n.push(null)}var c=null;for(i=0;i<n.length;i++){var l=n[i];if(null===l)null===c&&(c=i);else if(null!==c){for(var d=i-c,u=(l-n[c-1])/(d+1),h=1;h<=d;h++)n[c+h-1]=u*h;c=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,n[t]/e),0)}}))},Se=function(A,e,t){var r="number"==typeof A?A:function(A,e,t){var r=e/2,n=t/2,s=se(A[0],e)-r,i=n-se(A[1],t);return(Math.atan2(i,s)+2*Math.PI)%(2*Math.PI)}(A,e,t),n=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),s=e/2,i=t/2,o=n/2,a=Math.sin(r-Math.PI/2)*o,c=Math.cos(r-Math.PI/2)*o;return[n,s-c,s+c,i-a,i+a]},be=function(A,e){return Math.sqrt(A*A+e*e)},Ie=function(A,e,t,r,n){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var s=e[0],i=e[1],o=be(t-s,r-i);return(n?o<A.optimumDistance:o>A.optimumDistance)?{optimumCorner:e,optimumDistance:o}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},He=function(A,e){var t=de(180),r=[];return jA(e).forEach((function(e,n){if(0===n){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=ye(A,e);r.push(i)})),{angle:t,stops:r,type:1}},Te="closest-side",Me="farthest-side",Le="closest-corner",xe="farthest-corner",De="circle",Pe="ellipse",Re="cover",ke="contain",Ke=function(A,e){var t=0,r=3,n=[],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(re),!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 De:return t=0,!1;case Pe:return t=1,!1;case ke:case Te:return r=0,!1;case Me:return r=1,!1;case Le:return r=2,!1;case Re:case xe:return r=3,!1}else if(ZA(e)||qA(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),o)),o){var a=ye(A,e);n.push(a)}})),{size:r,shape:t,stops:n,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 r=Ge[e.name];if(void 0===r)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(A,e.values)}throw new Error("Unsupported image type "+e.type)};var Ve,Ge={"linear-gradient":function(A,e){var t=de(180),r=[];return jA(e).forEach((function(e,n){if(0===n){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=ye(A,e);r.push(i)})),{angle:t,stops:r,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,r=3,n=[],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(re),A}else(qA(e)||ZA(e))&&s.push(e);else if(WA(e))switch(e.value){case De:return t=0,!1;case Pe:return t=1,!1;case"at":return a=!0,!1;case Te:return r=0,!1;case Re:case Me:return r=1,!1;case ke:case Le:return r=2,!1;case xe:return r=3,!1}else if(ZA(e)||qA(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),o)}if(o){var c=ye(A,e);n.push(c)}})),{size:r,shape:t,stops:n,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),r=[],n=1;return jA(e).forEach((function(e,t){var s=e[0];if(0===t){if(WA(s)&&"linear"===s.value)return void(n=1);if(WA(s)&&"radial"===s.value)return void(n=2)}if(18===s.type)if("from"===s.name){var i=ue(A,s.values[0]);r.push({stop:ee,color:i})}else if("to"===s.name)i=ue(A,s.values[0]),r.push({stop:re,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)&&r.push({stop:{type:16,number:100*a.number,flags:a.flags},color:i})}}})),1===n?{angle:(t+de(180))%de(360),stops:r,type:n}:{size:3,shape:0,stops:r,position:[],type:n}}},_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))}}},rt=tt("top-left"),nt=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 Ut,Ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?ze.STRICT:ze.NORMAL}},yt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=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"),Dt={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}}))}},Pt={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},r=0,n=0;n<e.length;n++){var s=e[n];ZA(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:t.blur=s,r++):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],r=e[1];e[2],e[3];var n=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,r,n,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"}(Ut||(Ut={}));for(var Zt={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"break-all":return Ut.BREAK_ALL;case"keep-all":return Ut.KEEP_ALL;default:return Ut.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")}},Ar={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")}},er={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return NA(e)?e.number:1}},tr={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},rr={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}))}},nr={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],r=[];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:r.push(t.join(" ")),t.length=0}})),t.length&&r.push(t.join(" ")),r.map((function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"}))}},sr={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},ir={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}},or={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(WA).map((function(A){return A.value}))}},ar={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"}}},cr=function(A,e){return!!(A&e)},lr={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}},dr={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 r=[],n=e.filter(zA),s=0;s<n.length;s++){var i=n[s],o=n[s+1];if(20===i.type){var a=o&&NA(o)?o.number:1;r.push({counter:i.value,increment:a})}}return r}},ur={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],r=e.filter(zA),n=0;n<r.length;n++){var s=r[n],i=r[n+1];if(WA(s)&&"none"!==s.value){var o=i&&NA(i)?i.number:0;t.push({counter:s.value,reset:o})}}return t}},hr={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map((function(e){return Ar.parse(A,e)}))}},gr={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 r=[],n=e.filter(JA);if(n.length%2!=0)return null;for(var s=0;s<n.length;s+=2){var i=n[s].value,o=n[s+1].value;r.push({open:i,close:o})}return r}},Br=function(A,e,t){if(!A)return"";var r=A[Math.min(e,A.length-1)];return r?t?r.open:r.close:""},wr={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},r=0,n=0;n<e.length;n++){var s=e[n];XA(s,"inset")?t.inset=!0:ZA(s)?(0===r?t.offsetX=s:1===r?t.offsetY=s:2===r?t.blur=s:t.spread=s,r++):t.color=ue(A,s)}return t}))}},pr={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}},Cr={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},mr={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return _A(e)?e.number:0}},fr=function(){function A(A,e){var t,r;this.animationDuration=Ur(A,hr,e.animationDuration),this.backgroundClip=Ur(A,Ue,e.backgroundClip),this.backgroundColor=Ur(A,Fe,e.backgroundColor),this.backgroundImage=Ur(A,_e,e.backgroundImage),this.backgroundOrigin=Ur(A,Ne,e.backgroundOrigin),this.backgroundPosition=Ur(A,We,e.backgroundPosition),this.backgroundRepeat=Ur(A,Je,e.backgroundRepeat),this.backgroundSize=Ur(A,Ye,e.backgroundSize),this.borderTopColor=Ur(A,Ze,e.borderTopColor),this.borderRightColor=Ur(A,qe,e.borderRightColor),this.borderBottomColor=Ur(A,At,e.borderBottomColor),this.borderLeftColor=Ur(A,et,e.borderLeftColor),this.borderTopLeftRadius=Ur(A,rt,e.borderTopLeftRadius),this.borderTopRightRadius=Ur(A,nt,e.borderTopRightRadius),this.borderBottomRightRadius=Ur(A,st,e.borderBottomRightRadius),this.borderBottomLeftRadius=Ur(A,it,e.borderBottomLeftRadius),this.borderTopStyle=Ur(A,at,e.borderTopStyle),this.borderRightStyle=Ur(A,ct,e.borderRightStyle),this.borderBottomStyle=Ur(A,lt,e.borderBottomStyle),this.borderLeftStyle=Ur(A,dt,e.borderLeftStyle),this.borderTopWidth=Ur(A,ht,e.borderTopWidth),this.borderRightWidth=Ur(A,gt,e.borderRightWidth),this.borderBottomWidth=Ur(A,Bt,e.borderBottomWidth),this.borderLeftWidth=Ur(A,wt,e.borderLeftWidth),this.boxShadow=Ur(A,wr,e.boxShadow),this.color=Ur(A,pt,e.color),this.direction=Ur(A,Ct,e.direction),this.display=Ur(A,mt,e.display),this.float=Ur(A,vt,e.cssFloat),this.fontFamily=Ur(A,nr,e.fontFamily),this.fontSize=Ur(A,sr,e.fontSize),this.fontStyle=Ur(A,ar,e.fontStyle),this.fontVariant=Ur(A,or,e.fontVariant),this.fontWeight=Ur(A,ir,e.fontWeight),this.letterSpacing=Ur(A,Qt,e.letterSpacing),this.lineBreak=Ur(A,Ft,e.lineBreak),this.lineHeight=Ur(A,yt,e.lineHeight),this.listStyleImage=Ur(A,St,e.listStyleImage),this.listStylePosition=Ur(A,bt,e.listStylePosition),this.listStyleType=Ur(A,It,e.listStyleType),this.marginTop=Ur(A,Tt,e.marginTop),this.marginRight=Ur(A,Mt,e.marginRight),this.marginBottom=Ur(A,Lt,e.marginBottom),this.marginLeft=Ur(A,xt,e.marginLeft),this.opacity=Ur(A,er,e.opacity);var n=Ur(A,Dt,e.overflow);this.overflowX=n[0],this.overflowY=n[n.length>1?1:0],this.overflowWrap=Ur(A,Pt,e.overflowWrap),this.paddingTop=Ur(A,kt,e.paddingTop),this.paddingRight=Ur(A,Kt,e.paddingRight),this.paddingBottom=Ur(A,Ot,e.paddingBottom),this.paddingLeft=Ur(A,Vt,e.paddingLeft),this.paintOrder=Ur(A,pr,e.paintOrder),this.position=Ur(A,_t,e.position),this.textAlign=Ur(A,Gt,e.textAlign),this.textDecorationColor=Ur(A,tr,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=Ur(A,rr,null!==(r=e.textDecorationLine)&&void 0!==r?r:e.textDecoration),this.textShadow=Ur(A,Nt,e.textShadow),this.textTransform=Ur(A,Wt,e.textTransform),this.transform=Ur(A,Jt,e.transform),this.transformOrigin=Ur(A,jt,e.transformOrigin),this.visibility=Ur(A,$t,e.visibility),this.webkitTextStrokeColor=Ur(A,Cr,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=Ur(A,mr,e.webkitTextStrokeWidth),this.wordBreak=Ur(A,Zt,e.wordBreak),this.zIndex=Ur(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 cr(this.display,4)||cr(this.display,33554432)||cr(this.display,268435456)||cr(this.display,536870912)||cr(this.display,67108864)||cr(this.display,134217728)},A}(),vr=function(A,e){this.content=Ur(A,lr,e.content),this.quotes=Ur(A,gr,e.quotes)},Qr=function(A,e){this.counterIncrement=Ur(A,dr,e.counterIncrement),this.counterReset=Ur(A,ur,e.counterReset)},Ur=function(A,e,t){var r=new VA,n=null!=t?t.toString():e.initialValue;r.write(n);var s=new GA(r.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 Ar.parse(A,s.parseComponentValue())}}},Fr=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},yr=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,Fr(e,3),this.styles=new fr(A,window.getComputedStyle(e,null)),Hn(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),Fr(e,4)&&(this.flags|=16)},Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sr="undefined"==typeof Uint8Array?[]:new Uint8Array(256),br=0;br<64;br++)Sr[Er.charCodeAt(br)]=br;for(var Ir=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},Hr=function(){function A(A,e,t,r,n,s){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,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}(),Tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Mr="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Lr=0;Lr<64;Lr++)Mr[Tr.charCodeAt(Lr)]=Lr;var xr,Dr=8,Pr=9,Rr=11,kr=12,Kr=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 r=[],n=-1,s="";++n<t;){var i=A[n];i<=65535?r.push(i):(i-=65536,r.push(55296+(i>>10),i%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},Or=function(A){var e,t,r,n=function(A){var e,t,r,n,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=Sr[A.charCodeAt(e)],r=Sr[A.charCodeAt(e+1)],n=Sr[A.charCodeAt(e+2)],s=Sr[A.charCodeAt(e+3)],l[a++]=t<<2|r>>4,l[a++]=(15&r)<<4|n>>2,l[a++]=(3&n)<<6|63&s;return c}(A),s=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(n):new Uint32Array(n),i=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(n):new Uint16Array(n),o=Ir(i,12,s[4]/2),a=2===s[5]?Ir(i,(24+s[4])/2):(e=s,t=Math.ceil((24+s[4])/4),e.slice?e.slice(t,r):new Uint32Array(Array.prototype.slice.call(e,t,r)));return new Hr(s[0],s[1],s[2],s[3],o,a)}("AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),Vr="×",Gr=function(A){return Or.get(A)},_r=function(A,e,t){var r=t-2,n=e[r],s=e[t-1],i=e[t];if(2===s&&3===i)return Vr;if(2===s||3===s||4===s)return"÷";if(2===i||3===i||4===i)return"÷";if(s===Dr&&-1!==[Dr,Pr,Rr,kr].indexOf(i))return Vr;if(!(s!==Rr&&s!==Pr||i!==Pr&&10!==i))return Vr;if((s===kr||10===s)&&10===i)return Vr;if(13===i||5===i)return Vr;if(7===i)return Vr;if(1===s)return Vr;if(13===s&&14===i){for(;5===n;)n=e[--r];if(14===n)return Vr}if(15===s&&15===i){for(var o=0;15===n;)o++,n=e[--r];if(o%2==0)return Vr}return"÷"},Nr=function(A){var e=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var s=A.charCodeAt(t++);56320==(64512&s)?e.push(((1023&n)<<10)+(1023&s)+65536):(e.push(n),t--)}else e.push(n)}return e}(A),t=e.length,r=0,n=0,s=e.map(Gr);return{next:function(){if(r>=t)return{done:!0,value:null};for(var A=Vr;r<t&&(A=_r(0,s,++r))===Vr;);if(A!==Vr||r===t){var i=Kr.apply(null,e.slice(n,r));return n=r,{value:i,done:!1}}return{done:!0,value:null}}}},Wr=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},Jr=function(A,e,t,r,n){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",r.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),i.appendChild(o),o.appendChild(n),i},Xr=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},zr={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 r=e.getBoundingClientRect(),n=Math.round(r.height);if(A.body.removeChild(t),123===n)return!0}}return!1}(document);return Object.defineProperty(zr,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=zr.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?"&#128104;".repeat(10):"";var r=e.firstChild,n=a(r.data).map((function(A){return c(A)})),s=0,i={},o=n.every((function(A,e){t.setStart(r,s),t.setEnd(r,s+A.length);var n=t.getBoundingClientRect();s+=A.length;var o=n.x>i.x||n.y>i.y;return i=n,0===e||o}));return A.body.removeChild(e),o}(document);return Object.defineProperty(zr,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(zr,"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 r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,s=e.toDataURL();n.src=s;var i=Jr(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),Xr(i).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var i=A.createElement("div");return i.style.backgroundImage="url("+s+")",i.style.height=t+"px",Wr(n)?Xr(Jr(t,t,0,0,i)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),Wr(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(zr,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(zr,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(zr,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(zr,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(zr,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Yr=function(A,e){this.text=A,this.bounds=e},jr=function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var s=o(A,r);return r.firstChild&&n.replaceChild(r.firstChild,r),s}}return i.EMPTY},$r=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},Zr=function(A){if(zr.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=Nr(A),r=[];!(e=t.next()).done;)e.value&&r.push(e.value.slice());return r}(A)},qr=function(A,e){return 0!==e.letterSpacing?Zr(A):function(A,e){if(zr.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 en(A,e)}(A,e)},An=[32,160,4961,65792,65793,4153,4241],en=function(A,e){for(var t,r=function(A,e){var t=a(A),r=sA(t,e),n=r[0],s=r[1],i=r[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=nA(t,s,n,++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}),n=[],s=function(){if(t.value){var A=t.value.slice(),e=a(A),r="";e.forEach((function(A){-1===An.indexOf(A)?r+=c(A):(r.length&&n.push(r),n.push(c(A)),r="")})),r.length&&n.push(r)}};!(t=r.next()).done;)s();return n},tn=function(A,e,t){this.text=rn(e.data,t.textTransform),this.textBounds=function(A,e,t,r){var n=qr(e,t),s=[],o=0;return n.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(zr.SUPPORT_RANGE_BOUNDS){var n=$r(r,o,e.length).getClientRects();if(n.length>1){var a=Zr(e),c=0;a.forEach((function(e){s.push(new Yr(e,i.fromDOMRectList(A,$r(r,c+o,e.length).getClientRects()))),c+=e.length}))}else s.push(new Yr(e,i.fromDOMRectList(A,n)))}else{var l=r.splitText(e.length);s.push(new Yr(e,jr(A,r))),r=l}else zr.SUPPORT_RANGE_BOUNDS||(r=r.splitText(e.length));o+=e.length})),s}(A,this.text,t,e)},rn=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(nn,sn);case 2:return A.toUpperCase();default:return A}},nn=/(^|\s|:|-|\(|\))([a-z])/g,sn=function(A,e,t){return A.length>0?e+t.toUpperCase():A},on=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.src=t.currentSrc||t.src,r.intrinsicWidth=t.naturalWidth,r.intrinsicHeight=t.naturalHeight,r.context.cache.addImage(r.src),r}return e(t,A),t}(yr),an=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.canvas=t,r.intrinsicWidth=t.width,r.intrinsicHeight=t.height,r}return e(t,A),t}(yr),cn=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=new XMLSerializer,s=o(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),r.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),r.intrinsicWidth=t.width.baseVal.value,r.intrinsicHeight=t.height.baseVal.value,r.context.cache.addImage(r.svg),r}return e(t,A),t}(yr),ln=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(yr),dn=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.start=t.start,r.reversed="boolean"==typeof t.reversed&&!0===t.reversed,r}return e(t,A),t}(yr),un=[{type:15,flags:0,unit:"px",number:3}],hn=[{type:16,flags:0,number:50}],gn="checkbox",Bn="radio",wn="password",pn=707406591,Cn=function(A){function t(e,t){var r,n,s,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(s=(n=t).type===wn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":s,o.type!==gn&&o.type!==Bn||(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=(r=o.bounds).width>r.height?new i(r.left+(r.width-r.height)/2,r.top,r.height,r.height):r.width<r.height?new i(r.left,r.top+(r.height-r.width)/2,r.width,r.width):r),o.type){case gn:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=un;break;case Bn:o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=hn}return o}return e(t,A),t}(yr),mn=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=t.options[t.selectedIndex||0];return r.value=n&&n.text||"",r}return e(t,A),t}(yr),fn=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(yr),vn=function(A){function t(e,t){var r=A.call(this,e,t)||this;r.src=t.src,r.width=parseInt(t.width,10)||0,r.height=parseInt(t.height,10)||0,r.backgroundColor=r.styles.backgroundColor;try{if(t.contentWindow&&t.contentWindow.document&&t.contentWindow.document.documentElement){r.tree=yn(e,t.contentWindow.document.documentElement);var n=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;r.backgroundColor=he(n)?he(s)?r.styles.backgroundColor:s:n}}catch(A){}return r}return e(t,A),t}(yr),Qn=["OL","UL","MENU"],Un=function(A,e,t,r){for(var n=e.firstChild,s=void 0;n;n=s)if(s=n.nextSibling,bn(n)&&n.data.trim().length>0)t.textNodes.push(new tn(A,n,t.styles));else if(In(n))if(Nn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return Un(A,e,t,r)}));else{var i=Fn(A,n);i.styles.isVisible()&&(En(n,i,r)?i.flags|=4:Sn(i.styles)&&(i.flags|=2),-1!==Qn.indexOf(n.tagName)&&(i.flags|=8),t.elements.push(i),n.slot,n.shadowRoot?Un(A,n.shadowRoot,i,r):Gn(n)||Dn(n)||_n(n)||Un(A,n,i,r))}},Fn=function(A,e){return Kn(e)?new on(A,e):Rn(e)?new an(A,e):Dn(e)?new cn(A,e):Mn(e)?new ln(A,e):Ln(e)?new dn(A,e):xn(e)?new Cn(A,e):_n(e)?new mn(A,e):Gn(e)?new fn(A,e):On(e)?new vn(A,e):new yr(A,e)},yn=function(A,e){var t=Fn(A,e);return t.flags|=4,Un(A,e,t,t),t},En=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Pn(A)&&t.styles.isTransparent()},Sn=function(A){return A.isPositioned()||A.isFloating()},bn=function(A){return A.nodeType===Node.TEXT_NODE},In=function(A){return A.nodeType===Node.ELEMENT_NODE},Hn=function(A){return In(A)&&void 0!==A.style&&!Tn(A)},Tn=function(A){return"object"==typeof A.className},Mn=function(A){return"LI"===A.tagName},Ln=function(A){return"OL"===A.tagName},xn=function(A){return"INPUT"===A.tagName},Dn=function(A){return"svg"===A.tagName},Pn=function(A){return"BODY"===A.tagName},Rn=function(A){return"CANVAS"===A.tagName},kn=function(A){return"VIDEO"===A.tagName},Kn=function(A){return"IMG"===A.tagName},On=function(A){return"IFRAME"===A.tagName},Vn=function(A){return"STYLE"===A.tagName},Gn=function(A){return"TEXTAREA"===A.tagName},_n=function(A){return"SELECT"===A.tagName},Nn=function(A){return"SLOT"===A.tagName},Wn=function(A){return A.tagName.indexOf("-")>0},Jn=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,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return n&&r.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}(),Xn={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"]},zn={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Yn={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},jn={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},$n=function(A,e,t,r,n,s){return A<e||A>t?is(A,n,s.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+s},Zn=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},qn=function(A,e,t,r,n){var s=t-e+1;return(A<0?"-":"")+(Zn(Math.abs(A),s,r,(function(A){return c(Math.floor(A%s)+e)}))+n)},As=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return Zn(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},es=function(A,e,t,r,n,s){if(A<-9999||A>9999)return is(A,4,n.length>0);var i=Math.abs(A),o=n;if(0===i)return e[0]+o;for(var a=0;i>0&&a<=4;a++){var c=i%10;0===c&&cr(s,1)&&""!==o?o=e[c]+o:c>1||1===c&&0===a||1===c&&1===a&&cr(s,2)||1===c&&1===a&&cr(s,4)&&A>100||1===c&&a>1&&cr(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?r:"")+o},ts="十百千萬",rs="拾佰仟萬",ns="マイナス",ss="마이너스",is=function(A,e,t){var r=t?". ":"",n=t?"、":"",s=t?", ":"",i=t?" ":"";switch(e){case 0:return"•"+i;case 1:return"◦"+i;case 2:return"◾"+i;case 5:var o=qn(A,48,57,!0,r);return o.length<4?"0"+o:o;case 4:return As(A,"〇一二三四五六七八九",n);case 6:return $n(A,1,3999,Xn,3,r).toLowerCase();case 7:return $n(A,1,3999,Xn,3,r);case 8:return qn(A,945,969,!1,r);case 9:return qn(A,97,122,!1,r);case 10:return qn(A,65,90,!1,r);case 11:return qn(A,1632,1641,!0,r);case 12:case 49:return $n(A,1,9999,zn,3,r);case 35:return $n(A,1,9999,zn,3,r).toLowerCase();case 13:return qn(A,2534,2543,!0,r);case 14:case 30:return qn(A,6112,6121,!0,r);case 15:return As(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return As(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return es(A,"零一二三四五六七八九",ts,"負",n,14);case 47:return es(A,"零壹貳參肆伍陸柒捌玖",rs,"負",n,15);case 42:return es(A,"零一二三四五六七八九",ts,"负",n,14);case 41:return es(A,"零壹贰叁肆伍陆柒捌玖",rs,"负",n,15);case 26:return es(A,"〇一二三四五六七八九","十百千万",ns,n,0);case 25:return es(A,"零壱弐参四伍六七八九","拾百千万",ns,n,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 qn(A,2406,2415,!0,r);case 20:return $n(A,1,19999,jn,3,r);case 21:return qn(A,2790,2799,!0,r);case 22:return qn(A,2662,2671,!0,r);case 22:return $n(A,1,10999,Yn,3,r);case 23:return As(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return As(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return qn(A,3302,3311,!0,r);case 28:return As(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return As(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return qn(A,3792,3801,!0,r);case 37:return qn(A,6160,6169,!0,r);case 38:return qn(A,4160,4169,!0,r);case 39:return qn(A,2918,2927,!0,r);case 40:return qn(A,1776,1785,!0,r);case 43:return qn(A,3046,3055,!0,r);case 44:return qn(A,3174,3183,!0,r);case 45:return qn(A,3664,3673,!0,r);case 46:return qn(A,3872,3881,!0,r);default:return qn(A,48,57,!0,r)}},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 Jn,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 r(t,void 0,void 0,(function(){var A,t;return n(this,(function(r){switch(r.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:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,us(c)]:[3,4];case 3:r.sent(),r.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(Fr(A,2),Rn(A))return this.createCanvasClone(A);if(kn(A))return this.createVideoClone(A);if(Vn(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Kn(e)&&(Kn(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Wn(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}),""),r=A.cloneNode(!1);return r.textContent=t,r}}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 r=A.cloneNode(!1);try{r.width=A.width,r.height=A.height;var n=A.getContext("2d"),s=r.getContext("2d");if(s)if(!this.options.allowTaint&&n)s.putImageData(n.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 r}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return r},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 r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r},A.prototype.appendChildNode=function(A,e,t){In(e)&&("SCRIPT"===e.tagName||e.hasAttribute(os)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&In(e)&&Vn(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var r=this,n=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;n;n=n.nextSibling)if(In(n)&&Nn(n)&&"function"==typeof n.assignedNodes){var s=n.assignedNodes();s.length&&s.forEach((function(A){return r.appendChildNode(e,A,t)}))}else this.appendChildNode(e,n,t)},A.prototype.cloneNode=function(A,e){if(bn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&In(A)&&(Hn(A)||Tn(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var n=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),i=t.getComputedStyle(A,":after");this.referenceElement===A&&Hn(r)&&(this.clonedReferenceElement=r),Pn(r)&&Qs(r);var o=this.counters.parse(new Qr(this.context,n)),a=this.resolvePseudoContent(A,r,s,xr.BEFORE);Wn(A)&&(e=!0),kn(A)||this.cloneChildNodes(A,r,e),a&&r.insertBefore(a,r.firstChild);var c=this.resolvePseudoContent(A,r,i,xr.AFTER);return c&&r.appendChild(c),this.counters.pop(o),(n&&(this.options.copyStyles||Tn(A))&&!On(A)||e)&&Bs(n,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(Gn(A)||_n(A))&&(Gn(r)||_n(r))&&(r.value=A.value),r}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=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 Qr(this.context,t));var o=new vr(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 r=e.values.filter(WA);r.length&&a.appendChild(i.createTextNode(A.getAttribute(r[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=n.counters.getCounterValue(c.value),u=l&&WA(l)?It.parse(n.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=n.counters.getCounterValues(c.value),w=l&&WA(l)?It.parse(n.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(Br(o.quotes,n.quoteDepth++,!0)));break;case"close-quote":a.appendChild(i.createTextNode(Br(o.quotes,--n.quoteDepth,!1)));break;default:a.appendChild(i.createTextNode(e.value))}})),a.className=ms+" "+fs;var c=r===xr.BEFORE?" "+ms:" "+fs;return Tn(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"}(xr||(xr={}));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 r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=function(){r.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},gs=["all","d","content"],Bs=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);-1===gs.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}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],r=A[2];e.scrollLeft=t,e.scrollTop=r},ms="___html2canvas___pseudoelement_before",fs="___html2canvas___pseudoelement_after",vs='{\n content: "" !important;\n display: none !important;\n}',Qs=function(A){Us(A,"."+ms+":before"+vs+"\n ."+fs+":after"+vs)},Us=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}},Fs=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}(),ys=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 r(this,void 0,void 0,(function(){var e,t,r,s,i=this;return n(this,(function(n){switch(n.label){case 0:return e=Fs.isSameOrigin(A),t=!Hs(A)&&!0===this._options.useCORS&&zr.SUPPORT_CORS_IMAGES&&!e,r=!Hs(A)&&!e&&!Ms(A)&&"string"==typeof this._options.proxy&&zr.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Hs(A)||Ms(A)||r||t?(s=A,r?[4,this.proxy(s)]:[3,2]):[2];case 1:s=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(Ts(s)||t)&&(r.crossOrigin="anonymous"),r.src=s,!0===r.complete&&setTimeout((function(){return A(r)}),500),i._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+i._options.imageTimeout+"ms) loading image")}),i._options.imageTimeout)}))];case 3:return[2,n.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 r=A.substring(0,256);return new Promise((function(n,s){var i=zr.SUPPORT_RESPONSE_TYPE?"blob":"text",o=new XMLHttpRequest;o.onload=function(){if(200===o.status)if("text"===i)n(o.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(o.response)}else s("Failed to proxy resource "+r+" 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 "+r)}}o.send()}))},A}(),Es=/^data:image\/svg\+xml/i,Ss=/^data:image\/.*;base64,/i,bs=/^data:image\/.*/i,Is=function(A){return zr.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()||Es.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}(),Ds=function(A,e,t){return new xs(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ps=function(){function A(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=Ds(this.start,this.startControl,e),n=Ds(this.startControl,this.endControl,e),s=Ds(this.endControl,this.end,e),i=Ds(r,n,e),o=Ds(n,s,e),a=Ds(i,o,e);return t?new A(this.start,r,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,r=ne(e.borderTopLeftRadius,t.width,t.height),n=r[0],s=r[1],i=ne(e.borderTopRightRadius,t.width,t.height),o=i[0],a=i[1],c=ne(e.borderBottomRightRadius,t.width,t.height),l=c[0],d=c[1],u=ne(e.borderBottomLeftRadius,t.width,t.height),h=u[0],g=u[1],B=[];B.push((n+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&&(n/=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,U=e.borderBottomWidth,F=e.borderLeftWidth,y=se(e.paddingTop,A.bounds.width),E=se(e.paddingRight,A.bounds.width),S=se(e.paddingBottom,A.bounds.width),b=se(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||s>0?Ks(t.left+F/3,t.top+v/3,n-F/3,s-v/3,cs.TOP_LEFT):new xs(t.left+F/3,t.top+v/3),this.topRightBorderDoubleOuterBox=n>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-U/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/3,t.top+t.height-U/3),this.bottomLeftBorderDoubleOuterBox=h>0||g>0?Ks(t.left+F/3,t.top+f,h-F/3,g-U/3,cs.BOTTOM_LEFT):new xs(t.left+F/3,t.top+t.height-U/3),this.topLeftBorderDoubleInnerBox=n>0||s>0?Ks(t.left+2*F/3,t.top+2*v/3,n-2*F/3,s-2*v/3,cs.TOP_LEFT):new xs(t.left+2*F/3,t.top+2*v/3),this.topRightBorderDoubleInnerBox=n>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*U/3,cs.BOTTOM_RIGHT):new xs(t.left+t.width-2*Q/3,t.top+t.height-2*U/3),this.bottomLeftBorderDoubleInnerBox=h>0||g>0?Ks(t.left+2*F/3,t.top+f,h-2*F/3,g-2*U/3,cs.BOTTOM_LEFT):new xs(t.left+2*F/3,t.top+t.height-2*U/3),this.topLeftBorderStroke=n>0||s>0?Ks(t.left+F/2,t.top+v/2,n-F/2,s-v/2,cs.TOP_LEFT):new xs(t.left+F/2,t.top+v/2),this.topRightBorderStroke=n>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-U/2,cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q/2,t.top+t.height-U/2),this.bottomLeftBorderStroke=h>0||g>0?Ks(t.left+F/2,t.top+f,h-F/2,g-U/2,cs.BOTTOM_LEFT):new xs(t.left+F/2,t.top+t.height-U/2),this.topLeftBorderBox=n>0||s>0?Ks(t.left,t.top,n,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=n>0||s>0?Ks(t.left+F,t.top+v,Math.max(0,n-F),Math.max(0,s-v),cs.TOP_LEFT):new xs(t.left+F,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-F),t.top+Math.min(C,t.height-U),Math.max(0,l-Q),Math.max(0,d-U),cs.BOTTOM_RIGHT):new xs(t.left+t.width-Q,t.top+t.height-U),this.bottomLeftPaddingBox=h>0||g>0?Ks(t.left+F,t.top+Math.min(f,t.height-U),Math.max(0,h-F),Math.max(0,g-U),cs.BOTTOM_LEFT):new xs(t.left+F,t.top+t.height-U),this.topLeftContentBox=n>0||s>0?Ks(t.left+F+b,t.top+v+y,Math.max(0,n-(F+b)),Math.max(0,s-(v+y)),cs.TOP_LEFT):new xs(t.left+F+b,t.top+v+y),this.topRightContentBox=o>0||a>0?Ks(t.left+Math.min(p,t.width+F+b),t.top+v+y,p>t.width+F+b?0:o-F+b,a-(v+y),cs.TOP_RIGHT):new xs(t.left+t.width-(Q+E),t.top+v+y),this.bottomRightContentBox=l>0||d>0?Ks(t.left+Math.min(m,t.width-(F+b)),t.top+Math.min(C,t.height+v+y),Math.max(0,l-(Q+E)),d-(U+S),cs.BOTTOM_RIGHT):new xs(t.left+t.width-(Q+E),t.top+t.height-(U+S)),this.bottomLeftContentBox=h>0||g>0?Ks(t.left+F+b,t.top+f,Math.max(0,h-(F+b)),g-(U+S),cs.BOTTOM_LEFT):new xs(t.left+F+b,t.top+t.height-(U+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,r,n){var s=(Math.sqrt(2)-1)/3*4,i=t*s,o=r*s,a=A+t,c=e+r;switch(n){case cs.TOP_LEFT:return new Ps(new xs(A,c),new xs(A,c-o),new xs(a-i,e),new xs(a,e));case cs.TOP_RIGHT:return new Ps(new xs(A,e),new xs(A+i,e),new xs(a,c-o),new xs(a,c));case cs.BOTTOM_RIGHT:return new Ps(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 Ps(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,r=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Gs(t,r,n))}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,r=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Ws(A)}));if(e||0!==t.container.styles.position||!t.parent){if(r.unshift.apply(r,n),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)||r.unshift(new _s(i,6))}}else r.unshift.apply(r,n);t=t.parent}return r.filter((function(e){return cr(e.target,A)}))},A}(),Ys=function(A,e,t,r){A.container.elements.forEach((function(n){var s=cr(n.flags,4),i=cr(n.flags,2),o=new zs(n,A);cr(n.styles.display,2048)&&r.push(o);var a=cr(n.flags,8)?[]:r;if(s||i){var c=s||n.styles.isPositioned()?t:e,l=new Xs(o);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.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 n.styles.isFloating()?c.nonPositionedFloats.push(l):c.nonPositionedInlineLevel.push(l);Ys(o,l,s?l:t,a)}else n.styles.isInlineLevel()?e.inlineLevel.push(o):e.nonInlineLevel.push(o),Ys(o,e,t,a);cr(n.flags,8)&&js(n,a)}))},js=function(A,e){for(var t=A instanceof dn?A.start:1,r=A instanceof dn&&A.reversed,n=0;n<e.length;n++){var s=e[n];s.container instanceof ln&&"number"==typeof s.container.value&&0!==s.container.value&&(t=s.container.value),s.listValue=is(t,s.container.styles.listStyleType,!0),t+=r?-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,r){var n=[];return Rs(A)?n.push(A.subdivide(.5,!1)):n.push(A),Rs(t)?n.push(t.subdivide(.5,!0)):n.push(t),Rs(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),Rs(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n},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,r=se(e.paddingLeft,t.width),n=se(e.paddingRight,t.width),s=se(e.paddingTop,t.width),i=se(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,s+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+n),-(e.borderTopWidth+e.borderBottomWidth+s+i))},ti=function(A,e,t){var r=function(A,e){return 0===A?e.bounds:2===A?ei(e):Ai(e)}(ii(A.styles.backgroundOrigin,e),A),n=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,r),i=s[0],o=s[1],a=ne(ii(A.styles.backgroundPosition,e),r.width-i,r.height-o);return[oi(ii(A.styles.backgroundRepeat,e),a,s,r,n),Math.round(r.left+a[0]),Math.round(r.top+a[1]),i,o]},ri=function(A){return WA(A)&&A.value===Ve.AUTO},ni=function(A){return"number"==typeof A},si=function(A,e,t){var r=e[0],n=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=ni(s);if(WA(i)&&(i.value===Ve.CONTAIN||i.value===Ve.COVER))return ni(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=ni(r),l=ni(n),d=c||l;if(ri(i)&&(!o||ri(o)))return c&&l?[r,n]:a||d?d&&a?[c?r:n*s,l?n:r/s]:[c?r:t.width,l?n: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)),ri(i)?u=h*s:o&&!ri(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&&!ri(o)||(B=c&&l?g/r*n:t.height),null!==B&&ri(i)&&(g=c&&l?B/n*r: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,r,n){var s=e[0],i=e[1],o=t[0],a=t[1];switch(A){case 2:return[new xs(Math.round(r.left),Math.round(r.top+i)),new xs(Math.round(r.left+r.width),Math.round(r.top+i)),new xs(Math.round(r.left+r.width),Math.round(a+r.top+i)),new xs(Math.round(r.left),Math.round(a+r.top+i))];case 3:return[new xs(Math.round(r.left+s),Math.round(r.top)),new xs(Math.round(r.left+s+o),Math.round(r.top)),new xs(Math.round(r.left+s+o),Math.round(r.height+r.top)),new xs(Math.round(r.left+s),Math.round(r.height+r.top))];case 1:return[new xs(Math.round(r.left+s),Math.round(r.top+i)),new xs(Math.round(r.left+s+o),Math.round(r.top+i)),new xs(Math.round(r.left+s+o),Math.round(r.top+i+a)),new xs(Math.round(r.left+s),Math.round(r.top+i+a))];default:return[new xs(Math.round(n.left),Math.round(n.top)),new xs(Math.round(n.left+n.width),Math.round(n.top)),new xs(Math.round(n.left+n.width),Math.round(n.height+n.top)),new xs(Math.round(n.left),Math.round(n.height+n.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"),r=this._document.createElement("img"),n=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),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",n.style.fontFamily=A,n.style.fontSize=e,n.style.margin="0",n.style.padding="0",n.appendChild(this._document.createTextNode(ai)),t.appendChild(n),t.appendChild(r);var i=r.offsetTop-n.offsetTop+2;t.removeChild(n),t.appendChild(this._document.createTextNode(ai)),t.style.lineHeight="normal",r.style.verticalAlign="super";var o=r.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 r=A.call(this,e,t)||this;return r._activeEffects=[],r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),t.canvas||(r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px"),r.fontMetrics=new ci(document),r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.ctx.textBaseline="bottom",r._activeEffects=[],r.context.logger.debug("Canvas renderer initialized ("+t.width+"x"+t.height+") with scale "+t.scale),r}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 r(this,void 0,void 0,(function(){return n(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 r(this,void 0,void 0,(function(){return n(this,(function(e){switch(e.label){case 0:return cr(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 r=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+t):Zr(A.text).reduce((function(e,n){return r.ctx.fillText(n,e,A.bounds.top+t),e+r.ctx.measureText(n).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(", "),r=_A(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},t.prototype.renderTextNode=function(A,e){return r(this,void 0,void 0,(function(){var t,r,s,i,o,a,c,l,d=this;return n(this,(function(n){return t=this.createFontStyle(e),r=t[0],s=t[1],i=t[2],this.ctx.font=r,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 r=e.textShadow;r.length&&A.text.trim().length&&(r.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 r=ei(A),n=Vs(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return r(this,void 0,void 0,(function(){var e,r,s,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,r=A.curves,s=e.styles,o=0,a=e.textNodes,n.label=1;case 1:return o<a.length?(c=a[o],[4,this.renderTextNode(c,s)]):[3,4];case 2:n.sent(),n.label=3;case 3:return o++,[3,1];case 4:if(!(e instanceof on))return[3,8];n.label=5;case 5:return n.trys.push([5,7,,8]),[4,this.context.cache.match(e.src)];case 6:return C=n.sent(),this.renderReplacedElement(e,r,C),[3,8];case 7:return n.sent(),this.context.logger.error("Error loading image "+e.src),[3,8];case 8:if(e instanceof an&&this.renderReplacedElement(e,r,e.canvas),!(e instanceof cn))return[3,12];n.label=9;case 9:return n.trys.push([9,11,,12]),[4,this.context.cache.match(e.svg)];case 10:return C=n.sent(),this.renderReplacedElement(e,r,C),[3,12];case 11:return n.sent(),this.context.logger.error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof vn&&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=n.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),n.label=14;case 14:if(e instanceof Cn&&(d=Math.min(e.bounds.width,e.bounds.height),e.type===gn?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(pn),this.ctx.fill(),this.ctx.restore()):e.type===Bn&&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(pn),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 Yr(e.value,w),s.letterSpacing,g),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!cr(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,n.label=15;case 15:return n.trys.push([15,17,,18]),[4,this.context.cache.match(m)];case 16:return C=n.sent(),this.ctx.drawImage(C,e.bounds.left-(C.width+10),e.bounds.top),[3,18];case 17:return n.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,Et(s.lineHeight,s.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new Yr(A.listValue,v),s.letterSpacing,Et(s.lineHeight,s.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),n.label=20;case 20:return[2]}}))}))},t.prototype.renderStackContent=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,i,o,a,c,l,d,u,h,g,B,w;return n(this,(function(n){switch(n.label){case 0:return cr(A.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:n.sent(),e=0,t=A.negativeZIndex,n.label=2;case 2:return e<t.length?(w=t[e],[4,this.renderStack(w)]):[3,5];case 3:n.sent(),n.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:n.sent(),r=0,s=A.nonInlineLevel,n.label=7;case 7:return r<s.length?(w=s[r],[4,this.renderNode(w)]):[3,10];case 8:n.sent(),n.label=9;case 9:return r++,[3,7];case 10:i=0,o=A.nonPositionedFloats,n.label=11;case 11:return i<o.length?(w=o[i],[4,this.renderStack(w)]):[3,14];case 12:n.sent(),n.label=13;case 13:return i++,[3,11];case 14:a=0,c=A.nonPositionedInlineLevel,n.label=15;case 15:return a<c.length?(w=c[a],[4,this.renderStack(w)]):[3,18];case 16:n.sent(),n.label=17;case 17:return a++,[3,15];case 18:l=0,d=A.inlineLevel,n.label=19;case 19:return l<d.length?(w=d[l],[4,this.renderNode(w)]):[3,22];case 20:n.sent(),n.label=21;case 21:return l++,[3,19];case 22:u=0,h=A.zeroOrAutoZIndexOrTransformedOrOpacity,n.label=23;case 23:return u<h.length?(w=h[u],[4,this.renderStack(w)]):[3,26];case 24:n.sent(),n.label=25;case 25:return u++,[3,23];case 26:g=0,B=A.positiveZIndex,n.label=27;case 27:return g<B.length?(w=B[g],[4,this.renderStack(w)]):[3,30];case 28:n.sent(),n.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 r=Rs(A)?A.start:A;0===t?e.ctx.moveTo(r.x,r.y):e.ctx.lineTo(r.x,r.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,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},t.prototype.resizeImage=function(A,e,t){var r;if(A.width===e&&A.height===t)return A;var n=(null!==(r=this.canvas.ownerDocument)&&void 0!==r?r:document).createElement("canvas");return n.width=Math.max(1,e),n.height=Math.max(1,t),n.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),n},t.prototype.renderBackgroundImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,i,o;return n(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,U,F,y,E,S,b,I,H,T,M,L,x,D;return n(this,(function(n){switch(n.label){case 0:if(0!==t.type)return[3,5];s=void 0,i=t.url,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,r.context.cache.match(i)];case 2:return s=n.sent(),[3,4];case 3:return n.sent(),r.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],E=o[1],S=o[2],U=o[3],F=o[4],C=r.ctx.createPattern(r.resizeImage(s,U,F),"repeat"),r.renderRepeat(f,C,E,S)),[3,6];case 5:1===t.type?(a=ti(A,e,[null,null,null]),f=a[0],E=a[1],S=a[2],U=a[3],F=a[4],c=Se(t.angle,U,F),l=c[0],d=c[1],u=c[2],h=c[3],g=c[4],(B=document.createElement("canvas")).width=U,B.height=F,w=B.getContext("2d"),p=w.createLinearGradient(d,h,u,g),Ee(t.stops,l).forEach((function(A){return p.addColorStop(A.stop,ge(A.color))})),w.fillStyle=p,w.fillRect(0,0,U,F),U>0&&F>0&&(C=r.ctx.createPattern(B,"repeat"),r.renderRepeat(f,C,E,S))):function(A){return 2===A.type}(t)&&(m=ti(A,e,[null,null,null]),f=m[0],v=m[1],Q=m[2],U=m[3],F=m[4],y=0===t.position.length?[te]:t.position,E=se(y[0],U),S=se(y[y.length-1],F),b=function(A,e,t,r,n){var s=0,i=0;switch(A.size){case 0:0===A.shape?s=i=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-r)),i=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)s=i=Math.min(be(e,t),be(e,t-n),be(e-r,t),be(e-r,t-n));else if(1===A.shape){var o=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),a=Ie(r,n,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-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-r)),i=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)s=i=Math.max(be(e,t),be(e,t-n),be(e-r,t),be(e-r,t-n));else if(1===A.shape){o=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var d=Ie(r,n,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],r),i=2===A.size.length?se(A.size[1],n):s),[s,i]}(t,E,S,U,F),I=b[0],H=b[1],I>0&&H>0&&(T=r.ctx.createRadialGradient(v+E,Q+S,0,v+E,Q+S,I),Ee(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,ge(A.color))})),r.path(f),r.ctx.fillStyle=T,I!==H?(M=A.bounds.left+.5*A.bounds.width,L=A.bounds.top+.5*A.bounds.height,D=1/(x=H/I),r.ctx.save(),r.ctx.translate(M,L),r.ctx.transform(1,0,0,x,0,0),r.ctx.translate(-M,-L),r.ctx.fillRect(v,D*(Q-L)+L,U,F*D),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=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 r(this,void 0,void 0,(function(){return n(this,(function(r){return this.path($s(t,e)),this.ctx.fillStyle=ge(A),this.ctx.fill(),[2]}))}))},t.prototype.renderDoubleBorder=function(A,e,t,s){return r(this,void 0,void 0,(function(){var r,i;return n(this,(function(n){switch(n.label){case 0:return e<3?[4,this.renderSolidBorder(A,t,s)]:[3,2];case 1:return n.sent(),[2];case 2:return r=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(r),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 r(this,void 0,void 0,(function(){var e,t,r,s,i,o,a,c,l=this;return n(this,(function(n){switch(n.label){case 0:return this.applyEffects(A.getEffects(2)),e=A.container.styles,t=!he(e.backgroundColor)||e.backgroundImage.length,r=[{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:n.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){l.ctx.save();var t,r,n,s,i,o=Os(A.curves),a=e.inset?0:1e4,c=(t=o,r=-a+(e.inset?1:-1)*e.spread.number,n=(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(r,n);case 1:return A.add(r+s,n);case 2:return A.add(r+s,n+i);case 3:return A.add(r,n+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()})),n.label=2;case 2:i=0,o=0,a=r,n.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 n.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 n.sent(),[3,11];case 7:return 4!==c.style?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,i,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,i,A.curves)];case 10:n.sent(),n.label=11;case 11:i++,n.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,i){return r(this,void 0,void 0,(function(){var r,o,a,c,l,d,u,h,g,B,w,p,C,m,f,v;return n(this,(function(n){return this.ctx.save(),r=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(r):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 r(this,void 0,void 0,(function(){var e;return n(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)),r=new zs(A,null),n=new Xs(r),Ys(r,n,n,s=[]),js(r.container,s),e=n,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([]),[2,this.canvas]}var r,n,s}))}))},t}(li),ui=function(A){return A instanceof fn||A instanceof mn||A instanceof Cn&&A.type!==Bn&&A.type!==gn},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 r=A.call(this,e,t)||this;return r.canvas=t.canvas?t.canvas:document.createElement("canvas"),r.ctx=r.canvas.getContext("2d"),r.options=t,r.canvas.width=Math.floor(t.width*t.scale),r.canvas.height=Math.floor(t.height*t.scale),r.canvas.style.width=t.width+"px",r.canvas.style.height=t.height+"px",r.ctx.scale(r.options.scale,r.options.scale),r.ctx.translate(-t.x,-t.y),r.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+t.width+"x"+t.height+" at "+t.x+","+t.y+") with scale "+t.scale),r}return e(t,A),t.prototype.render=function(A){return r(this,void 0,void 0,(function(){var e,t;return n(this,(function(r){switch(r.label){case 0:return e=Jr(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=r.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 r=new Image;r.onload=function(){e(r)},r.onerror=t,r.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 r;this.windowBounds=t,this.instanceName="#"+A.instanceCount++,this.logger=new mi({id:this.instanceName,enabled:e.logging}),this.cache=null!==(r=e.cache)&&void 0!==r?r:new ys(this,e)}return A.instanceCount=1,A}();"undefined"!=typeof window&&Fs.setContext(window);var vi=function(A,e){return r(void 0,void 0,void 0,(function(){var r,s,a,c,l,d,u,h,g,B,w,p,C,m,f,v,Q,U,F,y,E,S,b,I,H,T,M,L,x,D,P,R,k,K,O,V,G,_;return n(this,(function(n){switch(n.label){case 0:if(!A||"object"!=typeof A)return[2,Promise.reject("Invalid element provided as first argument")];if(!(r=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(s=r.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!==(D=e.foreignObjectRendering)&&void 0!==D&&D,g={allowTaint:null!==(P=e.allowTaint)&&void 0!==P&&P,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(r,d)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return p=n.sent(),C=Pn(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 r=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=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,r,n)}(w.ownerDocument):o(u,w),m=C.width,f=C.height,v=C.left,Q=C.top,U=Qi(u,w,e.backgroundColor),F={canvas:e.canvas,backgroundColor:U,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,F).render(w)]):[3,3];case 2:return y=n.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"),E=yn(u,w),U===E.styles.backgroundColor&&(E.styles.backgroundColor=Qe.TRANSPARENT),u.logger.debug("Starting renderer for element at "+F.x+","+F.y+" with size "+F.width+"x"+F.height),[4,new di(u,F).render(E)];case 4:y=n.sent(),n.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,y]}}))}))},Qi=function(A,e,t){var r=e.ownerDocument,n=r.documentElement?ve(A,getComputedStyle(r.documentElement).backgroundColor):Qe.TRANSPARENT,s=r.body?ve(A,getComputedStyle(r.body).backgroundColor):Qe.TRANSPARENT,i="string"==typeof t?ve(A,t):null===t?Qe.TRANSPARENT:4294967295;return e===r.documentElement?he(n)?he(s)?i:s:n:i};return function(A,e){return void 0===e&&(e={}),vi(A,e)}}()},880:A=>{"use strict";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 r=A.type;return e.push("typ"),e.push(r),"host"!==r&&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 r=A.substring(A.indexOf(" ")+1).split(";");for(let A=0;A<r.length;A++)t=r[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 r=[];Object.keys(A.parameters).forEach((e=>{void 0!==A.parameters[e]?r.push(e+"="+A.parameters[e]):r.push(e)})),e+="a=fmtp:"+t+" "+r.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)},r=A.indexOf(":",e);return r>-1?(t.attribute=A.substring(e+1,r),t.value=A.substring(r+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 r=e.matchPrefix(A+t,"a=ice-ufrag:")[0],n=e.matchPrefix(A+t,"a=ice-pwd:")[0];return r&&n?{usernameFragment:r.substring(12),password:n.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:[]},r=e.splitLines(A)[0].split(" ");t.profile=r[2];for(let n=3;n<r.length;n++){const s=r[n],i=e.matchPrefix(A,"a=rtpmap:"+s+" ")[0];if(i){const r=e.parseRtpMap(i),n=e.matchPrefix(A,"a=fmtp:"+s+" ");switch(r.parameters=n.length?e.parseFmtp(n[0]):{},r.rtcpFeedback=e.matchPrefix(A,"a=rtcp-fb:"+s+" ").map(e.parseRtcpFb),t.codecs.push(r),r.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(r.name.toUpperCase())}}}e.matchPrefix(A,"a=extmap:").forEach((A=>{t.headerExtensions.push(e.parseExtmap(A))}));const n=e.matchPrefix(A,"a=rtcp-fb:* ").map(e.parseRtcpFb);return t.codecs.forEach((A=>{n.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 r="";r+="m="+A+" ",r+=t.codecs.length>0?"9":"0",r+=" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" ",r+=t.codecs.map((A=>void 0!==A.preferredPayloadType?A.preferredPayloadType:A.payloadType)).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach((A=>{r+=e.writeRtpMap(A),r+=e.writeFmtp(A),r+=e.writeRtcpFb(A)}));let n=0;return t.codecs.forEach((A=>{A.maxptime>n&&(n=A.maxptime)})),n>0&&(r+="a=maxptime:"+n+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach((A=>{r+=e.writeExtmap(A)})),r},e.parseRtpEncodingParameters=function(A){const t=[],r=e.parseRtpParameters(A),n=-1!==r.fecMechanisms.indexOf("RED"),s=-1!==r.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]),r.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),n&&(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={},r=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"cname"===A.attribute))[0];r&&(t.cname=r.value,t.ssrc=r.ssrc);const n=e.matchPrefix(A,"a=rtcp-rsize");t.reducedSize=n.length>0,t.compound=0===n.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 r=e.matchPrefix(A,"a=msid:");if(1===r.length)return t=r[0].substring(7).split(" "),{stream:t[0],track:t[1]};const n=e.matchPrefix(A,"a=ssrc:").map((A=>e.parseSsrcMedia(A))).filter((A=>"msid"===A.attribute));return n.length>0?(t=n[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},e.parseSctpDescription=function(A){const t=e.parseMLine(A),r=e.matchPrefix(A,"a=max-message-size:");let n;r.length>0&&(n=parseInt(r[0].substring(19),10)),isNaN(n)&&(n=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:n};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:n}}},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,r){let n;const s=void 0!==t?t:2;return n=A||e.generateSessionId(),"v=0\r\no="+(r||"thisisadapterortc")+" "+n+" "+s+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},e.getDirection=function(A,t){const r=e.splitLines(A);for(let A=0;A<r.length;A++)switch(r[A]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return r[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}},e={};function t(r){var n=e[r];if(void 0!==n)return n.exports;var s=e[r]={exports:{}};return A[r].call(s.exports,s,s.exports,t),s.exports}t.n=A=>{var e=A&&A.__esModule?()=>A.default:()=>A;return t.d(e,{a:e}),e},t.d=(A,e)=>{for(var r in e)t.o(e,r)&&!t.o(A,r)&&Object.defineProperty(A,r,{enumerable:!0,get:e[r]})},t.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),t.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var r={};(()=>{"use strict";t.r(r),t.d(r,{ESUeViewer:()=>mr,HighlightFeatureAndFlyToCallFunc:()=>ot,HighlightFeatureCallFunc:()=>it,SetLayerColorCallFunc:()=>ct,SetLayerVisibleCallFunc:()=>at,UeCloudViewerBase:()=>qt,UeES3DTileset:()=>Tr,UeESAlarm:()=>sn,UeESApertureEffect:()=>on,UeESAreaMeasurement:()=>cn,UeESBlastParticleSystem:()=>ln,UeESBoxClipping:()=>dn,UeESCameraView:()=>un,UeESCameraVisibleRange:()=>hn,UeESCar:()=>gn,UeESClassification:()=>Bn,UeESClippingPlane:()=>wn,UeESDataMesh:()=>pn,UeESDatasmithRuntimeModel:()=>Cn,UeESDirectionMeasurement:()=>mn,UeESDistanceMeasurement:()=>fn,UeESDynamicWater:()=>Qn,UeESEntityCluster:()=>Un,UeESExcavate:()=>Fn,UeESFireParticleSystem:()=>yn,UeESForestTileset:()=>En,UeESGaussianSplatting:()=>wi,UeESGeoDiv:()=>Pn,UeESGeoExtrudedPolygon:()=>mi,UeESGeoJson:()=>Rn,UeESGeoLineString:()=>kn,UeESGeoPolygon:()=>an,UeESGeoRectangle:()=>Kn,UeESGeoVector:()=>Fr,UeESGeoWater:()=>On,UeESGltfModel:()=>Vn,UeESHeightMeasurement:()=>Gn,UeESHuman:()=>ts,UeESHumanPoi:()=>ei,UeESImageLabel:()=>rs,UeESImageryLayer:()=>Dr,UeESLabel:()=>yr,UeESLevelRuntimeModel:()=>ns,UeESLocalCircle:()=>ss,UeESLocalPolygon:()=>vn,UeESLocalPolygonZ:()=>is,UeESLocalRectangle:()=>os,UeESLocalSkyBox:()=>as,UeESLocalVector:()=>Er,UeESLocalVector2D:()=>Sr,UeESLocationMeasurement:()=>cs,UeESMsTileset:()=>Ci,UeESNavigator:()=>si,UeESObjectWithLocation:()=>Ur,UeESPath:()=>ii,UeESPipeFence:()=>ls,UeESPipeline:()=>ds,UeESPipeserTileset:()=>us,UeESPit:()=>hs,UeESPoi2D:()=>Ss,UeESPoi3D:()=>bs,UeESPoiTileset:()=>Is,UeESPolygonFence:()=>Hs,UeESPolygonFlattenedPlane:()=>Ts,UeESPolygonWithHole:()=>Ms,UeESRtsFeatureEditing:()=>pi,UeESRtsTileset:()=>Ls,UeESSceneObject:()=>fr,UeESSeparateFoliage:()=>xs,UeESStaticMesh:()=>fi,UeESSubmergingAnalysis:()=>Ds,UeESSunshineAnalysis:()=>Ps,UeESSurfaceAreaMeasurement:()=>Rs,UeESTerrainLayer:()=>nn,UeESTextLabel:()=>ks,UeESUEWidget:()=>Ks,UeESUnrealActor:()=>Ys,UeESVideoFusion:()=>js,UeESViewShed:()=>$s,UeESViewerStatusBar:()=>Bi,UeESVisibilityAnalysis:()=>Zs,UeESVisualObject:()=>vr,UeESVolumeMeasurement:()=>qs,UeESWidget:()=>Ai,UePickedInfo:()=>Ar,bind3DTilesetByTagCallFunc:()=>kt,bindActorByTagCallFunc:()=>Lt,bindImageryByTagCallFunc:()=>Vt,calcFlyToParamCallFunc:()=>ze,callFunctionCallFunc:()=>dt,captureCallFunc:()=>Qt,changeNavigationModeCallFunc:()=>Bt,copyright:()=>vi,createActorByClassCallFunc:()=>Rt,destroyCallFunc:()=>Xe,flyInCallFunc:()=>je,flyInDefaultCameraCallFunc:()=>$e,flyToCallFunc:()=>Je,generateMemReportCallFunc:()=>et,getAllSocketNamesByActorTagCallFunc:()=>yt,getBoundSphereCallFunc:()=>St,getBoundSphereWithChildrenCallFunc:()=>bt,getCameraRelativeHeightCallFunc:()=>Wt,getFillMaterialParamInfoCallFunc:()=>Ht,getGlobalPropertyCallFunc:()=>Tt,getHeightByLonLatCallFunc:()=>ft,getHeightByLonLatsCallFunc:()=>vt,getIdByComponentNameAndHitItemCallFunc:()=>Nt,getLonLatAltToScreenPositionCallFunc:()=>Ut,getObjectByInfoCallFunc:()=>Mt,getStatusCallFunc:()=>Yt,getStrokeMaterialParamInfoCallFunc:()=>It,getVersionCallFunc:()=>Et,highlightActorByTagCallFunc:()=>Xt,mountPakFiles:()=>At,moveObjectsCallFunc:()=>Zt,pickCallFunc:()=>Ct,pickPositionCallFunc:()=>mt,quitCallFunc:()=>pt,refreshTilesetCallFunc:()=>Ye,resetWithCurrentCameraCallFunc:()=>tt,restoreOriginalSceneCallFunc:()=>xt,saveStringToFileCallFunc:()=>Jt,sendCustomMessageCallFunc:()=>zt,setGlobalPropertyCallFunc:()=>wt,setNodePositionCallFunc:()=>ut,setNodeRotationCallFunc:()=>ht,setNodeScaleCallFunc:()=>gt,smoothMoveCallFunc:()=>lt,smoothMoveOnGroundCallFunc:()=>nt,smoothMoveWithRotationCallFunc:()=>rt,smoothMoveWithRotationOnGroundCallFunc:()=>st,startEditingCallFunc:()=>jt,startVoiceCallFunc:()=>Ze,stopEditingCallFunc:()=>$t,stopVoiceCallFunc:()=>qe,uePositionToLonLatAltCallFunc:()=>Ft,unBind3DTilesetByIdCallFunc:()=>Ot,unBind3DTilesetByTagCallFunc:()=>Kt,unBindActorByIDCallFunc:()=>Dt,unBindActorByTagCallFunc:()=>Pt,unBindImageryByIdCallFunc:()=>_t,unBindImageryByTagCallFunc:()=>Gt});const A=require("earthsdk3"),e=require("xbsj-base");var n;const s=Object.assign(Object.assign({},A.ESViewer.defaults),{geoReferenceOrigin:void 0,keepWorldOriginNearCamera:!1,useCache:!0,widgetInteractionDistance:200,memReportInterval:10,sceneControlled:!0,brightness:0,emissiveIntensity:1,statusUpdateInterval:.5,baseUrl:null!==(n=window.location.href)&&void 0!==n?n:""}),i=()=>Object.assign(Object.assign({},A.ESViewer.createCommonProps()),{apiKey:"",apiUrl:"",secretKey:"",speechVoiceMode:"",geoReferenceOrigin:(0,e.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});function o(){const A=i(),e=[];return Object.keys(A).forEach((A=>{e.push(A)})),e}function a(A){const{defaults:e}=mr,t=o(),r={};return t.forEach((t=>{var n;r[t]=null!==(n=A[t])&&void 0!==n?n:e[t]})),r}var c,l,d,u=t(880),h={d:(A,e)=>{for(var t in e)h.o(e,t)&&!h.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},g={};h.d(g,{Dz:()=>MA,g$:()=>V,Lt:()=>k,Q9:()=>O,qf:()=>K,hV:()=>VA,z$:()=>xe,J0:()=>RA,De:()=>HA,$C:()=>TA,al:()=>j,_W:()=>$,Gv:()=>uA,m:()=>hA,tz:()=>Y,Nu:()=>PA,zg:()=>ZA,vp:()=>vA,vU:()=>QA,wF:()=>oA,rv:()=>xA,Nh:()=>DA,ss:()=>jA,qW:()=>gA,QL:()=>dA,cf:()=>Ae,eM:()=>iA,Yd:()=>B,Tk:()=>XA,iM:()=>E,qy:()=>w,ce:()=>S,sK:()=>FA,Ok:()=>bA,q5:()=>kA,g:()=>Le,xl:()=>rA,I:()=>nA,bx:()=>sA,dD:()=>mA,Ib:()=>L,Az:()=>x,Iw:()=>D,qY:()=>R,db:()=>P,mR:()=>BA,Tn:()=>b,rV:()=>aA,gh:()=>q,Mi:()=>AA,j:()=>eA,YB:()=>tA,Yt:()=>lA,i5:()=>cA,x_:()=>EA,Am:()=>ye,eR:()=>G,r8:()=>Z,u3:()=>qA,vd:()=>N,iV:()=>J,jZ:()=>W,SW:()=>z,ZH:()=>X,Ni:()=>Se,lh:()=>_,ZP:()=>fA,bq:()=>I,$f:()=>Ie,eu:()=>CA,Ax:()=>pA,Mc:()=>wA});class B{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 r=`Level: Log\nMsg: ${e}\nCaller: ${A}`;console.log(r)}static Info(A,e,t){if(t>this.verboseLogLevel)return;const r=`Level: Info\nMsg: ${e}`;console.info(r)}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)}}B.verboseLogLevel=5,(d=c||(c={})).LIST_STREAMERS="listStreamers",d.SUBSCRIBE="subscribe",d.UNSUBSCRIBE="unsubscribe",d.ICE_CANDIDATE="iceCandidate",d.OFFER="offer",d.ANSWER="answer",d.DATACHANNELREQUEST="dataChannelRequest",d.SFURECVDATACHANNELREADY="peerDataChannelsReady",d.PONG="pong";class w{sendFilter(A,e){return e}payload(){return B.Log(B.GetStackTrace(),"Sending => \n"+JSON.stringify(this,this.sendFilter,4),6),JSON.stringify(this,this.sendFilter)}}class p extends w{constructor(){super(),this.type=c.LIST_STREAMERS}}class C extends w{constructor(A){super(),this.type=c.SUBSCRIBE,this.streamerId=A}}class m extends w{constructor(){super(),this.type=c.UNSUBSCRIBE}}class f extends w{constructor(A){super(),this.type=c.PONG,this.time=A}}class v extends w{constructor(A,e){super(),this.type=c.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 Q extends w{constructor(A,e){super(),this.type=c.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 U extends w{constructor(){super(),this.type=c.DATACHANNELREQUEST}}class F extends w{constructor(){super(),this.type=c.SFURECVDATACHANNELREADY}}class y{constructor(A){this.type=c.ICE_CANDIDATE,this.candidate=A}payload(){return B.Log(B.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"}(l||(l={}));class E{}class S extends E{}class b{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):B.Error(B.GetStackTrace(),`Message type of ${A} does not have a message handler registered on the frontend - ignoring message.`)}static setupDefaultHandlers(A){A.signallingProtocol.addMessageHandler(l.PING,(e=>{const t=new f((new Date).getTime()).payload();B.Log(B.GetStackTrace(),l.PING+": "+e,6),A.webSocket.send(t)})),A.signallingProtocol.addMessageHandler(l.CONFIG,(e=>{B.Log(B.GetStackTrace(),l.CONFIG,6);const t=JSON.parse(e);A.onConfig(t)})),A.signallingProtocol.addMessageHandler(l.STREAMER_LIST,(e=>{B.Log(B.GetStackTrace(),l.STREAMER_LIST,6);const t=JSON.parse(e);A.onStreamerList(t)})),A.signallingProtocol.addMessageHandler(l.STREAMER_ID_CHANGED,(e=>{B.Log(B.GetStackTrace(),l.STREAMER_ID_CHANGED,6);const t=JSON.parse(e);A.onStreamerIDChanged(t)})),A.signallingProtocol.addMessageHandler(l.PLAYER_COUNT,(e=>{B.Log(B.GetStackTrace(),l.PLAYER_COUNT,6);const t=JSON.parse(e);B.Log(B.GetStackTrace(),"Player Count: "+t.count,6),A.onPlayerCount(t)})),A.signallingProtocol.addMessageHandler(l.ANSWER,(e=>{B.Log(B.GetStackTrace(),l.ANSWER,6);const t=JSON.parse(e);A.onWebRtcAnswer(t)})),A.signallingProtocol.addMessageHandler(l.OFFER,(e=>{B.Log(B.GetStackTrace(),l.OFFER,6);const t=JSON.parse(e);A.onWebRtcOffer(t)})),A.signallingProtocol.addMessageHandler(l.ICE_CANDIDATE,(e=>{B.Log(B.GetStackTrace(),l.ICE_CANDIDATE,6);const t=JSON.parse(e);A.onIceCandidate(t.candidate)})),A.signallingProtocol.addMessageHandler(l.WARNING,(A=>{B.Warning(B.GetStackTrace(),`Warning received: ${A}`)})),A.signallingProtocol.addMessageHandler(l.PEER_DATA_CHANNELS,(e=>{B.Log(B.GetStackTrace(),l.PEER_DATA_CHANNELS,6);const t=JSON.parse(e);A.onWebRtcPeerDataChannels(t)}))}}class I{constructor(){this.WS_OPEN_STATE=1,this.onOpen=new EventTarget,this.onClose=new EventTarget,this.signallingProtocol=new b,b.setupDefaultHandlers(this)}connect(A){B.Log(B.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 B.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=>{B.Error(B.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);B.Log(B.GetStackTrace(),"received => \n"+JSON.stringify(JSON.parse(A.data),void 0,4),6),this.signallingProtocol.handleMessage(e.type,A.data)}handleOnOpen(A){B.Log(B.GetStackTrace(),"Connected to the signalling server via WebSocket",6),this.onOpen.dispatchEvent(new Event("open"))}handleOnError(){B.Error(B.GetStackTrace(),"WebSocket error")}handleOnClose(A){B.Log(B.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 p;this.webSocket.send(A.payload())}sendSubscribe(A){const e=new C(A);this.webSocket.send(e.payload())}sendUnsubscribe(){const A=new m;this.webSocket.send(A.payload())}sendWebRtcOffer(A,e){const t=new v(A,e);this.webSocket.send(t.payload())}sendWebRtcAnswer(A,e){const t=new Q(A,e);this.webSocket.send(t.payload())}sendWebRtcDatachannelRequest(){const A=new U;this.webSocket.send(A.payload())}sendSFURecvDataChannelReady(){const A=new F;this.webSocket.send(A.payload())}sendIceCandidate(A){if(B.Log(B.GetStackTrace(),"Sending Ice Candidate"),this.webSocket&&this.webSocket.readyState===this.WS_OPEN_STATE){const e=new y(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 H{constructor(A){this.videoElementProvider=A,this.audioElement=document.createElement("Audio"),this.videoElementProvider.setAudioElement(this.audioElement)}handleOnTrack(A){if(B.Log(B.GetStackTrace(),"handleOnTrack "+JSON.stringify(A.streams),6),"probator"==A.track.id)return;const e=this.videoElementProvider.getVideoElement();if(A.track&&B.Log(B.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 B.Log(B.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,B.Log(B.GetStackTrace(),"Created new audio element to play separate audio stream."))}}class T{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,r=0;const n=this.rootDiv.clientWidth/this.rootDiv.clientHeight,s=this.freezeFrameWidth/this.freezeFrameHeight;n<s?(A=this.rootDiv.clientWidth,e=Math.floor(this.rootDiv.clientWidth/s),t=Math.floor(.5*(this.rootDiv.clientHeight-e)),r=0):(A=Math.floor(this.rootDiv.clientHeight*s),e=this.rootDiv.clientHeight,t=0,r=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=r+"px",this.imageElement.style.top=t+"px"}}}class M{constructor(A){this.receiving=!1,this.size=0,this.jpeg=void 0,this.valid=!1,this.freezeFrameDelay=50,this.freezeFrame=new T(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,B.Log(B.GetStackTrace(),`received first chunk of freeze frame: ${this.jpeg.length}/${this.size}`,6);this.jpeg.length===this.size?(this.receiving=!1,this.valid=!0,B.Log(B.GetStackTrace(),`received complete freeze frame ${this.size}`,6),this.updateFreezeFrameAndShow(this.jpeg,e)):this.jpeg.length>this.size&&(B.Error(B.GetStackTrace(),`received bigger freeze frame than advertised: ${this.jpeg.length}/${this.size}`),this.jpeg=void 0,this.receiving=!1)}}class L{constructor(A,e,t,r,n=()=>{}){this.onChange=n,this.onChangeEmit=()=>{},this.id=A,this.description=t,this.label=e,this.value=r}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 x extends L{constructor(A,e,t,r,n,s=()=>{}){super(A,e,t,r,s);const i=new URLSearchParams(window.location.search);if(n&&i.has(this.id)){const A=this.getUrlParamFlag();this.flag=A}else this.flag=r;this.useUrlParams=n}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 D extends L{constructor(A,e,t,r,n,s,i,o=()=>{}){super(A,e,t,s,o),this._min=r,this._max=n;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 P extends L{constructor(A,e,t,r,n,s=()=>{}){super(A,e,t,r,s);const i=new URLSearchParams(window.location.search);if(n&&i.has(this.id)){const A=this.getUrlParamText();this.text=A}else this.text=r;this.useUrlParams=n}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 R extends L{constructor(A,e,t,r,n,s,i=()=>{}){super(A,e,t,r,i),this.options=n;const o=new URLSearchParams(window.location.search),a=s&&o.has(this.id)?this.getUrlParamText():r;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 k extends Event{constructor(A){super("afkWarningActivate"),this.data=A}}class K extends Event{constructor(A){super("afkWarningUpdate"),this.data=A}}class O extends Event{constructor(){super("afkWarningDeactivate")}}class V extends Event{constructor(){super("afkTimedOut")}}class G extends Event{constructor(A){super("videoEncoderAvgQP"),this.data=A}}class _ extends Event{constructor(){super("webRtcSdp")}}class N extends Event{constructor(){super("webRtcAutoConnect")}}class W extends Event{constructor(){super("webRtcConnecting")}}class J extends Event{constructor(){super("webRtcConnected")}}class X extends Event{constructor(){super("webRtcFailed")}}class z extends Event{constructor(A){super("webRtcDisconnected"),this.data=A}}class Y extends Event{constructor(A){super("dataChannelOpen"),this.data=A}}class j extends Event{constructor(A){super("dataChannelClose"),this.data=A}}class $ extends Event{constructor(A){super("dataChannelError"),this.data=A}}class Z extends Event{constructor(){super("videoInitialized")}}class q extends Event{constructor(){super("streamLoading")}}class AA extends Event{constructor(){super("streamConnect")}}class eA extends Event{constructor(){super("streamDisconnect")}}class tA extends Event{constructor(){super("streamReconnect")}}class rA extends Event{constructor(A){super("playStreamError"),this.data=A}}class nA extends Event{constructor(){super("playStream")}}class sA extends Event{constructor(A){super("playStreamRejected"),this.data=A}}class iA extends Event{constructor(A){super("loadFreezeFrame"),this.data=A}}class oA extends Event{constructor(){super("hideFreezeFrame")}}class aA extends Event{constructor(A){super("statsReceived"),this.data=A}}class cA extends Event{constructor(A){super("streamerListMessage"),this.data=A}}class lA extends Event{constructor(A){super("StreamerIDChangedMessage"),this.data=A}}class dA extends Event{constructor(A){super("latencyTestResult"),this.data=A}}class uA extends Event{constructor(A){super("dataChannelLatencyTestResponse"),this.data=A}}class hA extends Event{constructor(A){super("dataChannelLatencyTestResult"),this.data=A}}class gA extends Event{constructor(A){super("initialSettings"),this.data=A}}class BA extends Event{constructor(A){super("settingsChanged"),this.data=A}}class wA extends Event{constructor(){super("xrSessionStarted")}}class pA extends Event{constructor(){super("xrSessionEnded")}}class CA extends Event{constructor(A){super("xrFrame"),this.data=A}}class mA extends Event{constructor(A){super("playerCount"),this.data=A}}class fA extends Event{constructor(){super("webRtcTCPRelayDetected")}}class vA extends EventTarget{dispatchEvent(A){return super.dispatchEvent(A)}addEventListener(A,e){super.addEventListener(A,e)}removeEventListener(A,e){super.removeEventListener(A,e)}}class QA{}QA.AutoConnect="AutoConnect",QA.AutoPlayVideo="AutoPlayVideo",QA.AFKDetection="TimeoutIfIdle",QA.BrowserSendOffer="OfferToReceive",QA.HoveringMouseMode="HoveringMouse",QA.ForceMonoAudio="ForceMonoAudio",QA.ForceTURN="ForceTURN",QA.FakeMouseWithTouches="FakeMouseWithTouches",QA.IsQualityController="ControlsQuality",QA.MatchViewportResolution="MatchViewportRes",QA.StartVideoMuted="StartVideoMuted",QA.SuppressBrowserKeys="SuppressBrowserKeys",QA.UseMic="UseMic",QA.KeyboardInput="KeyboardInput",QA.MouseInput="MouseInput",QA.TouchInput="TouchInput",QA.GamepadInput="GamepadInput",QA.XRControllerInput="XRControllerInput",QA.WaitForStreamer="WaitForStreamer",QA.HideUI="HideUI";const UA=A=>Object.getOwnPropertyNames(QA).some((e=>QA[e]===A));class FA{}FA.AFKTimeoutSecs="AFKTimeout",FA.AFKCountdownSecs="AFKCountdown",FA.MinQP="MinQP",FA.MaxQP="MaxQP",FA.WebRTCFPS="WebRTCFPS",FA.WebRTCMinBitrate="WebRTCMinBitrate",FA.WebRTCMaxBitrate="WebRTCMaxBitrate",FA.MaxReconnectAttempts="MaxReconnectAttempts",FA.StreamerAutoJoinInterval="StreamerAutoJoinInterval";const yA=A=>Object.getOwnPropertyNames(FA).some((e=>FA[e]===A));class EA{}EA.SignallingServerUrl="ss";const SA=A=>Object.getOwnPropertyNames(EA).some((e=>EA[e]===A));class bA{}bA.PreferredCodec="PreferredCodec",bA.StreamerId="StreamerId";const IA=A=>Object.getOwnPropertyNames(bA).some((e=>bA[e]===A));class HA{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(EA.SignallingServerUrl,new P(EA.SignallingServerUrl,"Signalling url","Url of the signalling server",e&&e.hasOwnProperty(EA.SignallingServerUrl)?e[EA.SignallingServerUrl]:("https:"===location.protocol?"wss://":"ws://")+window.location.hostname+("80"===window.location.port||""===window.location.port?"":`:${window.location.port}`),A)),this.optionParameters.set(bA.StreamerId,new R(bA.StreamerId,"Streamer ID","The ID of the streamer to stream.",e&&e.hasOwnProperty(bA.StreamerId)?e[bA.StreamerId]:"",[],A)),this.optionParameters.set(bA.PreferredCodec,new R(bA.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(bA.PreferredCodec)?[e[bA.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 r=t.mimeType.split("/")[1]+" "+(t.sdpFmtpLine||"");null!==e.exec(r)&&A.push(r)})),A}(),A)),this.flags.set(QA.AutoConnect,new x(QA.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(QA.AutoConnect))&&e[QA.AutoConnect],A)),this.flags.set(QA.AutoPlayVideo,new x(QA.AutoPlayVideo,"Auto play video","When video is ready automatically start playing it as opposed to showing a play button.",!e||!e.hasOwnProperty(QA.AutoPlayVideo)||e[QA.AutoPlayVideo],A)),this.flags.set(QA.BrowserSendOffer,new x(QA.BrowserSendOffer,"Browser send offer","Browser will initiate the WebRTC handshake by sending the offer to the streamer",!(!e||!e.hasOwnProperty(QA.BrowserSendOffer))&&e[QA.BrowserSendOffer],A)),this.flags.set(QA.UseMic,new x(QA.UseMic,"Use microphone","Make browser request microphone access and open an input audio track.",!(!e||!e.hasOwnProperty(QA.UseMic))&&e[QA.UseMic],A)),this.flags.set(QA.StartVideoMuted,new x(QA.StartVideoMuted,"Start video muted","Video will start muted if true.",!(!e||!e.hasOwnProperty(QA.StartVideoMuted))&&e[QA.StartVideoMuted],A)),this.flags.set(QA.SuppressBrowserKeys,new x(QA.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(QA.SuppressBrowserKeys)||e[QA.SuppressBrowserKeys],A)),this.flags.set(QA.IsQualityController,new x(QA.IsQualityController,"Is quality controller?","True if this peer controls stream quality",!e||!e.hasOwnProperty(QA.IsQualityController)||e[QA.IsQualityController],A)),this.flags.set(QA.ForceMonoAudio,new x(QA.ForceMonoAudio,"Force mono audio","Force browser to request mono audio in the SDP",!(!e||!e.hasOwnProperty(QA.ForceMonoAudio))&&e[QA.ForceMonoAudio],A)),this.flags.set(QA.ForceTURN,new x(QA.ForceTURN,"Force TURN","Only generate TURN/Relayed ICE candidates.",!(!e||!e.hasOwnProperty(QA.ForceTURN))&&e[QA.ForceTURN],A)),this.flags.set(QA.AFKDetection,new x(QA.AFKDetection,"AFK if idle","Timeout the experience if user is AFK for a period.",!(!e||!e.hasOwnProperty(QA.AFKDetection))&&e[QA.AFKDetection],A)),this.flags.set(QA.MatchViewportResolution,new x(QA.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(QA.MatchViewportResolution))&&e[QA.MatchViewportResolution],A)),this.flags.set(QA.HoveringMouseMode,new x(QA.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(QA.HoveringMouseMode))&&e[QA.HoveringMouseMode],A,((A,e)=>{e.label=`Control Scheme: ${A?"Hovering":"Locked"} Mouse`}))),this.flags.set(QA.FakeMouseWithTouches,new x(QA.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(QA.FakeMouseWithTouches))&&e[QA.FakeMouseWithTouches],A)),this.flags.set(QA.KeyboardInput,new x(QA.KeyboardInput,"Keyboard input","If enabled, send keyboard events to streamer",!e||!e.hasOwnProperty(QA.KeyboardInput)||e[QA.KeyboardInput],A)),this.flags.set(QA.MouseInput,new x(QA.MouseInput,"Mouse input","If enabled, send mouse events to streamer",!e||!e.hasOwnProperty(QA.MouseInput)||e[QA.MouseInput],A)),this.flags.set(QA.TouchInput,new x(QA.TouchInput,"Touch input","If enabled, send touch events to streamer",!e||!e.hasOwnProperty(QA.TouchInput)||e[QA.TouchInput],A)),this.flags.set(QA.GamepadInput,new x(QA.GamepadInput,"Gamepad input","If enabled, send gamepad events to streamer",!e||!e.hasOwnProperty(QA.GamepadInput)||e[QA.GamepadInput],A)),this.flags.set(QA.XRControllerInput,new x(QA.XRControllerInput,"XR controller input","If enabled, send XR controller events to streamer",!e||!e.hasOwnProperty(QA.XRControllerInput)||e[QA.XRControllerInput],A)),this.flags.set(QA.WaitForStreamer,new x(QA.WaitForStreamer,"Wait for streamer","Will continue trying to connect to the first streamer available.",!e||!e.hasOwnProperty(QA.WaitForStreamer)||e[QA.WaitForStreamer],A)),this.flags.set(QA.HideUI,new x(QA.HideUI,"Hide the UI overlay","Will hide all UI overlay details",!(!e||!e.hasOwnProperty(QA.HideUI))&&e[QA.HideUI],A)),this.numericParameters.set(FA.AFKTimeoutSecs,new D(FA.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(FA.AFKTimeoutSecs)?e[FA.AFKTimeoutSecs]:120,A)),this.numericParameters.set(FA.AFKCountdownSecs,new D(FA.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(FA.MaxReconnectAttempts,new D(FA.MaxReconnectAttempts,"Max Reconnects","Maximum number of reconnects the application will attempt when a streamer disconnects.",0,999,e&&e.hasOwnProperty(FA.MaxReconnectAttempts)?e[FA.MaxReconnectAttempts]:3,A)),this.numericParameters.set(FA.MinQP,new D(FA.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(FA.MinQP)?e[FA.MinQP]:0,A)),this.numericParameters.set(FA.MaxQP,new D(FA.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(FA.MaxQP)?e[FA.MaxQP]:51,A)),this.numericParameters.set(FA.WebRTCFPS,new D(FA.WebRTCFPS,"Max FPS","The maximum FPS that WebRTC will try to transmit frames at.",1,999,e&&e.hasOwnProperty(FA.WebRTCFPS)?e[FA.WebRTCFPS]:60,A)),this.numericParameters.set(FA.WebRTCMinBitrate,new D(FA.WebRTCMinBitrate,"Min Bitrate (kbps)","The minimum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(FA.WebRTCMinBitrate)?e[FA.WebRTCMinBitrate]:0,A)),this.numericParameters.set(FA.WebRTCMaxBitrate,new D(FA.WebRTCMaxBitrate,"Max Bitrate (kbps)","The maximum bitrate that WebRTC should use.",0,5e5,e&&e.hasOwnProperty(FA.WebRTCMaxBitrate)?e[FA.WebRTCMaxBitrate]:0,A)),this.numericParameters.set(FA.StreamerAutoJoinInterval,new D(FA.StreamerAutoJoinInterval,"Streamer Auto Join Interval (ms)","Delay between retries when waiting for an available streamer.",500,9e5,e&&e.hasOwnProperty(FA.StreamerAutoJoinInterval)?e[FA.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:B.Warning(B.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:B.Warning(B.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:B.Warning(B.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),r=t.options;r.includes(e)||(r.push(e),t.options=r),t.selected=e}else B.Warning(B.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:B.Warning(B.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))UA(e)?this.setFlagEnabled(e,A[e]):yA(e)?this.setNumericSetting(e,A[e]):SA(e)?this.setTextSetting(e,A[e]):IA(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 BA({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 BA({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 BA({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 BA({id:t.id,type:"option",value:e,target:t})))}}}var TA;!function(A){A[A.LockedMouse=0]="LockedMouse",A[A.HoveringMouse=1]="HoveringMouse"}(TA||(TA={}));class MA{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 O))}startAfkWarningTimer(){this.config.getNumericSettingValue(FA.AFKTimeoutSecs)>0&&this.config.isFlagEnabled(QA.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(QA.AFKDetection)&&(clearTimeout(this.warnTimer),this.warnTimer=setTimeout((()=>this.activateAfkEvent()),1e3*this.config.getNumericSettingValue(FA.AFKTimeoutSecs)))}activateAfkEvent(){this.pauseAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new k({countDown:this.countDown,dismissAfk:this.onDismissAfk})),this.countDown=this.config.getNumericSettingValue(FA.AFKCountdownSecs),this.countdownActive=!0,this.pixelStreaming.dispatchEvent(new K({countDown:this.countDown})),this.config.isFlagEnabled(QA.HoveringMouseMode)||document.exitPointerLock&&document.exitPointerLock(),this.countDownTimer=setInterval((()=>{this.countDown--,0==this.countDown?(this.pixelStreaming.dispatchEvent(new V),this.onAFKTimedOutCallback(),B.Log(B.GetStackTrace(),"You have been disconnected due to inactivity"),this.stopAfkWarningTimer()):this.pixelStreaming.dispatchEvent(new K({countDown:this.countDown}))}),1e3)}}class LA{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;B.Log(B.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;B.Log(B.GetStackTrace(),`Data Channel (${this.label}) closed.`,7),this.onClose(null===(e=this.dataChannel)||void 0===e?void 0:e.label,A)}handleOnMessage(A){B.Log(B.GetStackTrace(),`Data Channel (${this.label}) message: ${A}`,8)}handleOnError(A){var e;B.Log(B.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 xA{}class DA{}class PA{}class RA{}class kA{}class KA{}class OA{}class VA{constructor(){this.inboundVideoStats=new DA,this.inboundAudioStats=new xA,this.DataChannelStats=new PA,this.outBoundVideoStats=new kA,this.sessionStats=new KA,this.streamStats=new OA,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:B.Error(B.GetStackTrace(),"unhandled Stat Type"),B.Log(B.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 RA;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 RA;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:B.Log(B.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 r=Date.now()-A;this.sessionStats.runTime=new Date(r).toISOString().substr(11,8).toString();const n=null===e?"Not sent yet":e?"true":"false";this.sessionStats.controlsStreamInput=n,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 GA=(_A={parseRtpParameters:()=>u.parseRtpParameters,splitSections:()=>u.splitSections},NA={},h.d(NA,_A),NA);var _A,NA;class WA{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 JA,XA,zA=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class YA{constructor(A,e,t){this.config=e,this.createPeerConnection(A,t)}createPeerConnection(A,e){this.config.isFlagEnabled(QA.ForceTURN)&&(A.iceTransportPolicy="relay",B.Log(B.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 VA,this.preferredCodec=e,this.updateCodecSelection=!0}createOffer(A,e){return zA(this,void 0,void 0,(function*(){B.Log(B.GetStackTrace(),"Create Offer",6);const t="localhost"===location.hostname||"127.0.0.1"===location.hostname,r="https:"===location.protocol;let n=e.isFlagEnabled(QA.UseMic);!n||t||r||(n=!1,B.Error(B.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),B.Error(B.GetStackTrace(),"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'")),this.setupTransceiversAsync(n).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,n),null===(e=this.peerConnection)||void 0===e||e.setLocalDescription(A),this.onSendWebRTCOffer(A)})).catch((()=>{this.showTextOverlaySetupFailure()}))}))}))}receiveOffer(A,e){var t;return zA(this,void 0,void 0,(function*(){B.Log(B.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,r="https:"===location.protocol;let n=e.isFlagEnabled(QA.UseMic);!n||t||r||(n=!1,B.Error(B.GetStackTrace(),"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access."),B.Error(B.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(bA.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(A)),this.setupTransceiversAsync(n).finally((()=>{var A;null===(A=this.peerConnection)||void 0===A||A.createAnswer().then((A=>{var e;return A.sdp=this.mungeSDP(A.sdp,n),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((()=>{B.Error(B.GetStackTrace(),"createAnswer() failed")}))}))}))}))}receiveAnswer(A){var e;null===(e=this.peerConnection)||void 0===e||e.setRemoteDescription(A),this.config.setOptionSettingOptions(bA.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(bA.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"),r="maxaveragebitrate=510000;";return e&&(r+="sprop-maxcapturerate=48000;"),r+=this.config.isFlagEnabled(QA.ForceMonoAudio)?"stereo=0;":"stereo=1;",r+="useinbandfec=1",t=t.replace("useinbandfec=1",r),t}handleOnIce(A){var e;B.Log(B.GetStackTrace(),"peerconnection handleOnIce",6),this.config.isFlagEnabled(QA.ForceTURN)&&A.candidate.indexOf("relay")<0?B.Info(B.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){B.Log(B.GetStackTrace(),"signaling state change: "+A,6)}handleIceConnectionStateChange(A){B.Log(B.GetStackTrace(),"ice connection state change: "+A,6),this.onIceConnectionStateChange(A)}handleIceGatheringStateChange(A){B.Log(B.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),r=this.config.getSettingOption(bA.PreferredCodec).options;for(const A of t)if(r.includes(A))e.push(A);else{const t=A.split(" ")[0];for(const A of r)if(A.includes(t)){e.push(A);break}}return e}setupTransceiversAsync(A){var e,t,r,n,s,i,o,a,c,l,d,u;return zA(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===(r=this.peerConnection)||void 0===r||r.addTransceiver("video",{direction:"recvonly"}),RTCRtpReceiver.getCapabilities&&""!=this.preferredCodec)for(const A of null!==(s=null===(n=this.peerConnection)||void 0===n?void 0:n.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]:""},r=[t];RTCRtpReceiver.getCapabilities("video").codecs.forEach((A=>{(A.mimeType!=t.mimeType||(null==A?void 0:A.sdpFmtpLine)!=(null==t?void 0:t.sdpFmtpLine))&&r.push(A)}));for(const A of r)void 0!==(null==A?void 0:A.sdpFmtpLine)&&""!==A.sdpFmtpLine||delete A.sdpFmtpLine;A.setCodecPreferences(r)}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(WA.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,GA.splitSections)(A.sdp);return t.shift(),t.forEach((A=>{const{codecs:t}=(0,GA.parseRtpParameters)(A),r=/(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!==r.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 jA{constructor(){this.PixelStreamingSettings=new $A,this.EncoderSettings=new ZA,this.WebRTCSettings=new qA}ueCompatible(){null!=this.WebRTCSettings.MaxFPS&&(this.WebRTCSettings.FPS=this.WebRTCSettings.MaxFPS)}}class $A{}class ZA{}class qA{}class Ae{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||(B.Log(B.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||(B.Log(B.GetStackTrace(),`Setting CaptureToSendMs Ms \n ${this.PostCaptureTimeMs} \n ${this.PreCaptureTimeMs}`,6),this.CaptureToSendMs=this.PostCaptureTimeMs-this.PreCaptureTimeMs)}}class ee{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(),B.Log(B.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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(),B.Log(B.GetStackTrace(),"Received first chunk of file",6));const t=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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),B.Log(B.GetStackTrace(),`Received file chunk: ${e.data.length}/${e.size}`,6),e.data.length===e.size){e.receiving=!1,e.valid=!0,B.Log(B.GetStackTrace(),"Received complete file",6);const A=(new Date).getTime()-e.timestampStart,t=Math.round(16*e.size*1024/A);B.Log(B.GetStackTrace(),`Average transfer bitrate: ${t}kb/s over ${A/1e3} seconds`,6);const r=new Blob(e.data,{type:e.mimetype}),n=document.createElement("a");n.setAttribute("href",URL.createObjectURL(r)),n.setAttribute("download",`transfer.${e.extension}`),document.body.append(n),n.remove()}else e.data.length>e.size&&(e.receiving=!1,B.Error(B.GetStackTrace(),`Received bigger file than advertised: ${e.data.length}/${e.size}`))}}class te{constructor(){this.mimetype="",this.extension="",this.receiving=!1,this.size=0,this.data=[],this.valid=!1}}class re{}re.mainButton=0,re.auxiliaryButton=1,re.secondaryButton=2,re.fourthButton=3,re.fifthButton=4;class ne{}ne.primaryButton=1,ne.secondaryButton=2,ne.auxiliaryButton=4,ne.fourthButton=8,ne.fifthButton=16;class se{constructor(){this.unregisterCallbacks=[]}addUnregisterCallback(A){this.unregisterCallbacks.push(A)}unregisterAll(){for(const A of this.unregisterCallbacks)A();this.unregisterCallbacks=[]}}class ie{constructor(A,e,t){this.touchEventListenerTracker=new se,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t;const r=A=>this.onTouchStart(A),n=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);document.addEventListener("touchstart",r,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),document.addEventListener("touchmove",s,{passive:!1}),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchstart",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("touchend",n))),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 oe(e.identifier,e.clientX-this.videoElementParentClientRect.left,e.clientY-this.videoElementParentClientRect.top);const t=this.videoElementProvider.getVideoParentElement(),r=new MouseEvent("mouseenter",e);t.dispatchEvent(r);const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(this.fakeTouchFinger.x,this.fakeTouchFinger.y);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseDown")([re.mainButton,n.x,n.y])}A.preventDefault()}}onTouchEnd(A){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const e=this.videoElementProvider.getVideoParentElement(),t=this.toStreamerMessagesProvider.toStreamerHandlers;for(let r=0;r<A.changedTouches.length;r++){const n=A.changedTouches[r];if(n.identifier===this.fakeTouchFinger.id){const A=n.clientX-this.videoElementParentClientRect.left,r=n.clientY-this.videoElementParentClientRect.top,s=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,r);t.get("MouseUp")([re.mainButton,s.x,s.y]);const i=new MouseEvent("mouseleave",n);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 r=A.touches[t];if(r.identifier===this.fakeTouchFinger.id){const A=r.clientX-this.videoElementParentClientRect.left,t=r.clientY-this.videoElementParentClientRect.top,n=this.coordinateConverter.normalizeAndQuantizeUnsigned(A,t),s=this.coordinateConverter.normalizeAndQuantizeSigned(A-this.fakeTouchFinger.x,t-this.fakeTouchFinger.y);e.get("MouseMove")([n.x,n.y,s.x,s.y]),this.fakeTouchFinger.x=A,this.fakeTouchFinger.y=t;break}}A.preventDefault()}}class oe{constructor(A,e,t){this.id=A,this.x=e,this.y=t}}class ae{}ae.backSpace=8,ae.shift=16,ae.control=17,ae.alt=18,ae.rightShift=253,ae.rightControl=254,ae.rightAlt=255;class ce{constructor(A,e,t){this.keyboardEventListenerTracker=new se,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),r=A=>this.handleOnKeyPress(A);document.addEventListener("compositionend",A),document.addEventListener("keydown",e),document.addEventListener("keyup",t),document.addEventListener("keypress",r),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",r)))}unregisterKeyBoardEvents(){this.keyboardEventListenerTracker.unregisterAll()}handleOnKeyDown(A){const e=this.getKeycode(A);e&&229!==e&&(B.Log(B.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===ae.backSpace&&document.dispatchEvent(new KeyboardEvent("keypress",{charCode:ae.backSpace})),this.config.isFlagEnabled(QA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyUp(A){const e=this.getKeycode(A);e&&(B.Log(B.GetStackTrace(),`key up ${e}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get("KeyUp")([e]),this.config.isFlagEnabled(QA.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(e)&&A.preventDefault())}handleOnKeyPress(A){if(!("charCode"in A))return void B.Warning(B.GetStackTrace(),"KeyboardEvent.charCode is deprecated in this browser, cannot send key press.");const e=A.charCode;B.Log(B.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]:(B.Warning(B.GetStackTrace(),`Keyboard code of ${e.code} is not supported in our mapping, ignoring this key.`),null)}return A.keyCode===ae.shift&&"ShiftRight"===A.code?ae.rightShift:A.keyCode===ae.control&&"ControlRight"===A.code?ae.rightControl:A.keyCode===ae.alt&&"AltRight"===A.code?ae.rightAlt:A.keyCode}isKeyCodeBrowserKey(A){return A>=112&&A<=123||9===A}}class le{constructor(A,e,t){this.x=0,this.y=0,this.updateMouseMovePositionEvent=A=>{this.updateMouseMovePosition(A)},this.mouseEventListenerTracker=new se,this.videoElementProvider=A,this.mouseController=e,this.activeKeysProvider=t;const r=this.videoElementProvider.getVideoParentElement();this.x=r.getBoundingClientRect().width/2,this.y=r.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)B.Log(B.GetStackTrace(),"Pointer locked",6),document.addEventListener("mousemove",this.updateMouseMovePositionEvent,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mousemove",this.updateMouseMovePositionEvent,!1)));else{B.Log(B.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),r=[];t.forEach((A=>{r[A]})),r.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,r=this.videoElementProvider.getVideoParentElement().clientHeight;this.x+=A.movementX,this.y+=A.movementY,this.x>t&&(this.x-=t),this.y>r&&(this.y-=r),this.x<0&&(this.x=t+this.x),this.y<0&&(this.y=r-this.y),this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y);const n=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(A.movementX,A.movementY);e.get("MouseMove")([this.coord.x,this.coord.y,n.x,n.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 de{constructor(A){this.mouseController=A}unregisterMouseEvents(){}updateMouseMovePosition(A){if(!this.mouseController.videoElementProvider.isVideoReady())return;B.Log(B.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;B.Log(B.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;B.Log(B.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()&&(B.Log(B.GetStackTrace(),"onMouse press",6),this.mouseController.pressMouseButtons(A.buttons,A.offsetX,A.offsetY))}handleReleaseMouseButtons(A){this.mouseController.videoElementProvider.isVideoReady()&&(B.Log(B.GetStackTrace(),"onMouse release",6),this.mouseController.releaseMouseButtons(A.buttons,A.offsetX,A.offsetY))}}class ue{constructor(A,e,t,r){this.mouseEventListenerTracker=new se,this.toStreamerMessagesProvider=A,this.coordinateConverter=t,this.videoElementProvider=e,this.activeKeysProvider=r,this.registerMouseEnterAndLeaveEvents()}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}registerLockedMouseEvents(A){const e=this.videoElementProvider.getVideoParentElement(),t=new le(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 r=()=>t.lockStateChange();document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("pointerlockchange",r,!1))),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener("mozpointerlockchange",r,!1)));const n=A=>t.handleMouseDown(A),s=A=>t.handleMouseUp(A),i=A=>t.handleMouseWheel(A),o=A=>t.handleMouseDouble(A);e.addEventListener("mousedown",n),e.addEventListener("mouseup",s),e.addEventListener("wheel",i),e.addEventListener("dblclick",o),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",n))),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 de(A),r=A=>t.updateMouseMovePosition(A),n=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",r),e.addEventListener("mousedown",n),e.addEventListener("mouseup",s),e.addEventListener("contextmenu",i),e.addEventListener("wheel",o),e.addEventListener("dblclick",a),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousemove",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener("mousedown",n))),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()&&(B.Log(B.GetStackTrace(),"Mouse Entered",6),this.sendMouseEnter(),this.pressMouseButtons(A.buttons,A.x,A.y))},t=A=>{this.videoElementProvider.isVideoReady()&&(B.Log(B.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 r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&ne.primaryButton&&this.sendMouseUp(re.mainButton,r.x,r.y),A&ne.secondaryButton&&this.sendMouseUp(re.secondaryButton,r.x,r.y),A&ne.auxiliaryButton&&this.sendMouseUp(re.auxiliaryButton,r.x,r.y),A&ne.fourthButton&&this.sendMouseUp(re.fourthButton,r.x,r.y),A&ne.fifthButton&&this.sendMouseUp(re.fifthButton,r.x,r.y)}pressMouseButtons(A,e,t){if(!this.videoElementProvider.isVideoReady())return;const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);A&ne.primaryButton&&this.sendMouseDown(re.mainButton,r.x,r.y),A&ne.secondaryButton&&this.sendMouseDown(re.secondaryButton,r.x,r.y),A&ne.auxiliaryButton&&this.sendMouseDown(re.auxiliaryButton,r.x,r.y),A&ne.fourthButton&&this.sendMouseDown(re.fourthButton,r.x,r.y),A&ne.fifthButton&&this.sendMouseDown(re.fifthButton,r.x,r.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()&&(B.Log(B.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;B.Log(B.GetStackTrace(),`mouse button ${A} up at (${e}, ${t})`,6);const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,t);this.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp")([A,r.x,r.y])}}class he{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 se,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t,this.videoElementParent=e.getVideoElement();const r=A=>this.onTouchStart(A),n=A=>this.onTouchEnd(A),s=A=>this.onTouchMove(A);this.videoElementParent.addEventListener("touchstart",r),this.videoElementParent.addEventListener("touchend",n),this.videoElementParent.addEventListener("touchmove",s),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchstart",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchend",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener("touchmove",s))),B.Log(B.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&&B.Log(B.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]);B.Log(B.GetStackTrace(),"touch start",6),this.emitTouchData("TouchStart",A.changedTouches),A.preventDefault()}}onTouchEnd(A){if(this.videoElementProvider.isVideoReady()){B.Log(B.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()&&(B.Log(B.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(),r=this.toStreamerMessagesProvider.toStreamerHandlers;for(let n=0;n<e.length;n++){const s=1,i=e[n],o=i.clientX-t.left,a=i.clientY-t.top;B.Log(B.GetStackTrace(),`F${this.fingerIds.get(i.identifier)}=(${o}, ${a})`,6);const c=this.coordinateConverter.normalizeAndQuantizeUnsigned(o,a);switch(A){case"TouchStart":r.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":r.get("TouchEnd")([s,c.x,c.y,this.fingerIds.get(i.identifier),this.maxByteValue*i.force,c.inRange?1:0]);break;case"TouchMove":r.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 ge{constructor(A){this.gamePadEventListenerTracker=new se,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){B.Log(B.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,B.Log(B.GetStackTrace(),"gamepad: "+e.id+" connected",6),window.requestAnimationFrame((()=>this.updateStatus())),this.onGamepadConnected()}gamePadDisconnectHandler(A){B.Log(B.GetStackTrace(),"Gamepad disconnect handler",6),B.Log(B.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,r=e.currentState;for(let r=0;r<e.currentState.buttons.length;r++){const n=e.currentState.buttons[r],s=e.prevState.buttons[r];n.pressed?r==JA.LeftTrigger?A.get("GamepadAnalog")([t,5,n.value]):r==JA.RightTrigger?A.get("GamepadAnalog")([t,6,n.value]):A.get("GamepadButtonPressed")([t,r,s.pressed?1:0]):!n.pressed&&s.pressed&&(r==JA.LeftTrigger?A.get("GamepadAnalog")([t,5,0]):r==JA.RightTrigger?A.get("GamepadAnalog")([t,6,0]):A.get("GamepadButtonReleased")([t,r,0]))}for(let e=0;e<r.axes.length;e+=2){const n=parseFloat(r.axes[e].toFixed(4)),s=-parseFloat(r.axes[e+1].toFixed(4));A.get("GamepadAnalog")([t,e+1,n]),A.get("GamepadAnalog")([t,e+2,s])}this.controllers[t].prevState=r}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"}(JA||(JA={}));class Be{constructor(A,e,t){this.activeKeys=new we,this.toStreamerMessagesProvider=A,this.videoElementProvider=e,this.coordinateConverter=t}registerKeyBoard(A){B.Log(B.GetStackTrace(),"Register Keyboard Events",7);const e=new ce(this.toStreamerMessagesProvider,A,this.activeKeys);return e.registerKeyBoardEvents(),e}registerMouse(A){B.Log(B.GetStackTrace(),"Register Mouse Events",7);const e=new ue(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter,this.activeKeys);switch(A){case TA.LockedMouse:e.registerLockedMouseEvents(e);break;case TA.HoveringMouse:e.registerHoveringMouseEvents(e);break;default:B.Info(B.GetStackTrace(),"unknown Control Scheme Type Defaulting to Locked Mouse Events"),e.registerLockedMouseEvents(e)}return e}registerTouch(A,e){if(B.Log(B.GetStackTrace(),"Registering Touch",6),A){const A=new ie(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter);return A.setVideoElementParentClientRect(e),A}return new he(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter)}registerGamePad(){return B.Log(B.GetStackTrace(),"Register Game Pad",7),new ge(this.toStreamerMessagesProvider)}}class we{constructor(){this.activeKeys=[],this.activeKeys=[]}getActiveKeys(){return this.activeKeys}}class pe{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(QA.StartVideoMuted),this.videoElement.autoplay=this.config.isFlagEnabled(QA.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(QA.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 B.Log(B.GetStackTrace(),"Resizing too often - skipping",6),clearTimeout(this.resizeTimeoutHandle),this.resizeTimeoutHandle=window.setTimeout((()=>this.updateVideoStreamSize()),100)}}class Ce{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 XA.ToStreamer:this.toStreamerHandlers.set(e,t);break;case XA.FromStreamer:this.fromStreamerHandlers.set(e,t);break;default:B.Log(B.GetStackTrace(),`Unknown message direction ${A}`)}}}!function(A){A[A.ToStreamer=0]="ToStreamer",A[A.FromStreamer=1]="FromStreamer"}(XA||(XA={}));class me{constructor(){this.responseEventListeners=new Map}addResponseEventListener(A,e){this.responseEventListeners.set(A,e)}removeResponseEventListener(A){this.responseEventListeners.delete(A)}onResponse(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.Response",6);const e=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.GetStackTrace(),e,6),this.responseEventListeners.forEach((A=>{A(e)}))}}class fe{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 B.Error(B.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 B.Error(B.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 r=0;const n=new TextEncoder;e.forEach(((A,e)=>{switch(t.structure[e]){case"uint8":r+=1;break;case"uint16":case"int16":r+=2;break;case"float":r+=4;break;case"double":r+=8;break;case"string":r+=2,r+=2*n.encode(A).length}}));const s=new DataView(new ArrayBuffer(r+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):B.Info(B.GetStackTrace(),`Data channel cannot send yet, skipping sending message: ${A} - ${new Uint8Array(s.buffer)}`)}}class ve{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 Qe{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),B.Log(B.GetStackTrace(),`Message Sent: ${new Uint8Array(A)}`,6),this.resetAfkWarningTimerOnDataSend()):B.Error(B.GetStackTrace(),`Message Failed: ${new Uint8Array(A)}`)}resetAfkWarningTimerOnDataSend(){}}class Ue{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,r=e/A,n=(this.videoElement.videoHeight||1)/t;r>n?(B.Log(B.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio > videoAspectRatio",6),this.ratio=r/n,this.normalizeAndQuantizeUnsignedFunc=(A,e)=>this.normalizeAndQuantizeUnsignedPlayerBigger(A,e),this.normalizeAndQuantizeSignedFunc=(A,e)=>this.normalizeAndQuantizeSignedPlayerBigger(A,e),this.denormalizeAndUnquantizeUnsignedFunc=(A,e)=>this.denormalizeAndUnquantizeUnsignedPlayerBigger(A,e)):(B.Log(B.GetStackTrace(),"Setup Normalize and Quantize for playerAspectRatio <= videoAspectRatio",6),this.ratio=n/r,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,r=this.ratio*(e/this.videoElementParent.clientHeight-.5)+.5;return t<0||t>1||r<0||r>1?new Fe(!1,65535,65535):new Fe(!0,65536*t,65536*r)}denormalizeAndUnquantizeUnsignedPlayerBigger(A,e){const t=A/65536,r=(e/65536-.5)/this.ratio+.5;return new ye(t*this.videoElementParent.clientWidth,r*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerBigger(A,e){const t=A/(.5*this.videoElementParent.clientWidth),r=this.ratio*e/(.5*this.videoElementParent.clientHeight);return new Ee(32767*t,32767*r)}normalizeAndQuantizeUnsignedPlayerSmaller(A,e){const t=this.ratio*(A/this.videoElementParent.clientWidth-.5)+.5,r=e/this.videoElementParent.clientHeight;return t<0||t>1||r<0||r>1?new Fe(!1,65535,65535):new Fe(!0,65536*t,65536*r)}denormalizeAndUnquantizeUnsignedPlayerSmaller(A,e){const t=(A/65536-.5)/this.ratio+.5,r=e/65536;return new ye(t*this.videoElementParent.clientWidth,r*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerSmaller(A,e){const t=this.ratio*A/(.5*this.videoElementParent.clientWidth),r=e/(.5*this.videoElementParent.clientHeight);return new Ee(32767*t,32767*r)}}class Fe{constructor(A,e,t){this.inRange=A,this.x=e,this.y=t}}class ye{constructor(A,e){this.x=A,this.y=e}}class Ee{constructor(A,e){this.x=A,this.y=e}}class Se{constructor(A,e){this.shouldShowPlayOverlay=!0,this.autoJoinTimer=void 0,this.config=A,this.pixelStreaming=e,this.responseController=new me,this.file=new te,this.sdpConstraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},this.afkController=new MA(this.config,this.pixelStreaming,this.onAfkTriggered.bind(this)),this.afkController.onAFKTimedOutCallback=()=>{this.closeSignalingServer("You have been disconnected due to inactivity")},this.freezeFrameController=new M(this.pixelStreaming.videoElementParent),this.videoPlayer=new pe(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 H(this.videoPlayer),this.coordinateConverter=new Ue(this.videoPlayer),this.sendrecvDataChannelController=new LA,this.recvDataChannelController=new LA,this.registerDataChannelEventEmitters(this.sendrecvDataChannelController),this.registerDataChannelEventEmitters(this.recvDataChannelController),this.dataChannelSender=new Qe(this.sendrecvDataChannelController),this.dataChannelSender.resetAfkWarningTimerOnDataSend=()=>this.afkController.resetAfkWarningTimer(),this.streamMessageController=new Ce,this.webSocketController=new I,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(QA.BrowserSendOffer)||this.webSocketController.requestStreamerList()})),this.webSocketController.onClose.addEventListener("close",(A=>{const e=this.shouldReconnect&&1001!=A.detail.code&&this.config.getNumericSettingValue(FA.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 fe(this.dataChannelSender,this.streamMessageController),this.toStreamerMessagesController=new ve(this.sendMessageController),this.registerMessageHandlers(),this.streamMessageController.populateDefaultProtocol(),this.inputClassesFactory=new Be(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(bA.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(EA.SignallingServerUrl);return this.config.isFlagEnabled(QA.BrowserSendOffer)&&(A+="?"+QA.BrowserSendOffer+"=true"),A}}requestUnquantizedAndDenormalizeUnsigned(A,e){return this.coordinateConverter.unquantizeAndDenormalizeUnsigned(A,e)}handleOnMessage(A){const e=new Uint8Array(A.data);B.Log(B.GetStackTrace(),"Message incoming:"+e,6);const t=this.streamMessageController.fromStreamerMessages.get(e[0]);this.streamMessageController.fromStreamerHandlers.get(t)(A.data)}registerMessageHandlers(){this.streamMessageController.registerMessageHandler(XA.FromStreamer,"QualityControlOwnership",(A=>this.onQualityControlOwnership(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Response",(A=>this.responseController.onResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Command",(A=>{this.onCommand(A)})),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FreezeFrame",(A=>this.onFreezeFrameMessage(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"UnfreezeFrame",(()=>this.invalidateFreezeFrameAndEnableVideo())),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"VideoEncoderAvgQP",(A=>this.handleVideoEncoderAvgQP(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"LatencyTest",(A=>this.handleLatencyTestResult(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"DataChannelLatencyTest",(A=>this.handleDataChannelLatencyTestResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"InitialSettings",(A=>this.handleInitialSettings(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileExtension",(A=>this.onFileExtension(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileMimeType",(A=>this.onFileMimeType(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"FileContents",(A=>this.onFileContents(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"InputControlOwnership",(A=>this.onInputControlOwnership(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"GamepadResponse",(A=>this.onGamepadResponse(A))),this.streamMessageController.registerMessageHandler(XA.FromStreamer,"Protocol",(A=>this.onProtocolMessage(A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"IFrameRequest",(()=>this.sendMessageController.sendMessageToStreamer("IFrameRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"RequestQualityControl",(()=>this.sendMessageController.sendMessageToStreamer("RequestQualityControl"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"FpsRequest",(()=>this.sendMessageController.sendMessageToStreamer("FpsRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"AverageBitrateRequest",(()=>this.sendMessageController.sendMessageToStreamer("AverageBitrateRequest"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"StartStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StartStreaming"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"StopStreaming",(()=>this.sendMessageController.sendMessageToStreamer("StopStreaming"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"LatencyTest",(A=>this.sendMessageController.sendMessageToStreamer("LatencyTest",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"RequestInitialSettings",(()=>this.sendMessageController.sendMessageToStreamer("RequestInitialSettings"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TestEcho",(()=>{})),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"UIInteraction",(A=>this.sendMessageController.sendMessageToStreamer("UIInteraction",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"Command",(A=>this.sendMessageController.sendMessageToStreamer("Command",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TextboxEntry",(A=>this.sendMessageController.sendMessageToStreamer("TextboxEntry",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyDown",(A=>this.sendMessageController.sendMessageToStreamer("KeyDown",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyUp",(A=>this.sendMessageController.sendMessageToStreamer("KeyUp",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"KeyPress",(A=>this.sendMessageController.sendMessageToStreamer("KeyPress",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseEnter",(A=>this.sendMessageController.sendMessageToStreamer("MouseEnter",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseLeave",(A=>this.sendMessageController.sendMessageToStreamer("MouseLeave",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseDown",(A=>this.sendMessageController.sendMessageToStreamer("MouseDown",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseUp",(A=>this.sendMessageController.sendMessageToStreamer("MouseUp",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseMove",(A=>this.sendMessageController.sendMessageToStreamer("MouseMove",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseWheel",(A=>this.sendMessageController.sendMessageToStreamer("MouseWheel",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"MouseDouble",(A=>this.sendMessageController.sendMessageToStreamer("MouseDouble",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchStart",(A=>this.sendMessageController.sendMessageToStreamer("TouchStart",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchEnd",(A=>this.sendMessageController.sendMessageToStreamer("TouchEnd",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"TouchMove",(A=>this.sendMessageController.sendMessageToStreamer("TouchMove",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadConnected",(()=>this.sendMessageController.sendMessageToStreamer("GamepadConnected"))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonPressed",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("GamepadButtonReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadAnalog",(A=>this.sendMessageController.sendMessageToStreamer("GamepadAnalog",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"GamepadDisconnected",(A=>this.sendMessageController.sendMessageToStreamer("GamepadDisconnected",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XREyeViews",(A=>this.sendMessageController.sendMessageToStreamer("XREyeViews",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRHMDTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRHMDTransform",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRControllerTransform",(A=>this.sendMessageController.sendMessageToStreamer("XRControllerTransform",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRSystem",(A=>this.sendMessageController.sendMessageToStreamer("XRSystem",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonTouched",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouched",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonTouchReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonTouchReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonPressed",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonPressed",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRButtonReleased",(A=>this.sendMessageController.sendMessageToStreamer("XRButtonReleased",A))),this.streamMessageController.registerMessageHandler(XA.ToStreamer,"XRAnalog",(A=>this.sendMessageController.sendMessageToStreamer("XRAnalog",A)))}onCommand(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.Command",6);const e=new TextDecoder("utf-16").decode(A.slice(1));B.Log(B.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")||B.Error(B.GetStackTrace(),"Malformed protocol received. Ensure the protocol message contains a direction");const r=t.Direction;delete t.Direction,B.Log(B.GetStackTrace(),`Received new ${r==XA.FromStreamer?"FromStreamer":"ToStreamer"} protocol. Updating existing protocol...`),Object.keys(t).forEach((A=>{const e=t[A];switch(r){case XA.ToStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void B.Error(B.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):B.Error(B.GetStackTrace(),`There was no registered handler for "${A}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${A}", myHandler)`);break;case XA.FromStreamer:if(!Object.prototype.hasOwnProperty.call(e,"id"))return void B.Error(B.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):B.Error(B.GetStackTrace(),`There was no registered handler for "${e}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${A}", myHandler)`);break;default:B.Error(B.GetStackTrace(),`Unknown direction: ${r}`)}})),this.toStreamerMessagesController.SendRequestInitialSettings(),this.toStreamerMessagesController.SendRequestQualityControl()}catch(A){B.Log(B.GetStackTrace(),A)}}onInputControlOwnership(A){const e=new Uint8Array(A);B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.InputControlOwnership",6);const t=new Boolean(e[1]).valueOf();B.Log(B.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())):B.Log(B.GetStackTrace(),"The Web Socket Controller does not exist so this will not work right now.")}loadFreezeFrameOrShowPlayOverlay(){this.pixelStreaming.dispatchEvent(new iA({shouldShowPlayOverlay:this.shouldShowPlayOverlay,isValid:this.freezeFrameController.valid,jpegData:this.freezeFrameController.jpeg})),!0===this.shouldShowPlayOverlay?(B.Log(B.GetStackTrace(),"showing play overlay"),this.resizePlayerStyle()):(B.Log(B.GetStackTrace(),"showing freeze frame"),this.freezeFrameController.showFreezeFrame()),setTimeout((()=>{this.videoPlayer.setVideoEnabled(!1)}),this.freezeFrameController.freezeFrameDelay)}onFreezeFrameMessage(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6);const e=new Uint8Array(A);this.freezeFrameController.processFreezeFrameMessage(e,(()=>this.loadFreezeFrameOrShowPlayOverlay()))}invalidateFreezeFrameAndEnableVideo(){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.FreezeFrame",6),setTimeout((()=>{this.pixelStreaming.dispatchEvent(new oA),this.freezeFrameController.hideFreezeFrame()}),this.freezeFrameController.freezeFrameDelay),this.videoPlayer.getVideoElement()&&this.videoPlayer.setVideoEnabled(!0)}onFileExtension(A){const e=new Uint8Array(A);ee.setExtensionFromBytes(e,this.file)}onFileMimeType(A){const e=new Uint8Array(A);ee.setMimeTypeFromBytes(e,this.file)}onFileContents(A){const e=new Uint8Array(A);ee.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 rA({message:A})),B.Error(B.GetStackTrace(),A),void this.closeSignalingServer("Stream not initialized correctly")}if(this.videoPlayer.hasVideoSource()){if(this.setTouchInputEnabled(this.config.isFlagEnabled(QA.TouchInput)),this.pixelStreaming.dispatchEvent(new nA),this.streamController.audioElement.srcObject){const A=this.config.isFlagEnabled(QA.StartVideoMuted);this.streamController.audioElement.muted=A,A?this.playVideo():this.streamController.audioElement.play().then((()=>{this.playVideo()})).catch((A=>{B.Log(B.GetStackTrace(),A),B.Log(B.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 sA({reason:A}))}))}else this.playVideo();this.shouldShowPlayOverlay=!1,this.freezeFrameController.showFreezeFrame()}else B.Warning(B.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(),B.Log(B.GetStackTrace(),A),B.Log(B.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 sA({reason:A}))}))}autoPlayVideoOrSetUpPlayOverlay(){this.config.isFlagEnabled(QA.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(QA.ForceTURN)&&!this.checkTurnServerAvailability(A))return B.Info(B.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 YA(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(QA.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 B.Info(B.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 B.Log(B.GetStackTrace(),`A turn sever was found at ${A}`),!0;return B.Info(B.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){B.Log(B.GetStackTrace(),`Got streamer list ${A.ids}`,6);let e=null;var t=this.config.getSettingOption(bA.StreamerId);t.selected.toString().trim()&&(e=t.selected);const r=[...A.ids];r.unshift(""),this.config.setOptionSettingOptions(bA.StreamerId,r);let n=null;const s=this.config.isFlagEnabled(QA.WaitForStreamer),i=this.config.getNumericSettingValue(FA.MaxReconnectAttempts),o=this.config.getNumericSettingValue(FA.StreamerAutoJoinInterval),a=this.config.useUrlParams,c=new URLSearchParams(window.location.search);a&&c.has(bA.StreamerId)?e=c.get(bA.StreamerId):this.subscribedStream&&(e=this.subscribedStream),e&&A.ids.includes(e)?n=e:e&&s||1!=A.ids.length||(n=A.ids[0]),n?(this.isReconnecting=!1,this.reconnectAttempt=0,this.config.setOptionSettingValue(bA.StreamerId,n)):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 cA({messageStreamerList:A,autoSelectedStreamerId:n,wantedStreamerId:e}))}handleStreamerIDChangedMessage(A){const e=A.newID;var t=this.config.getSettingOption(bA.StreamerId),r=t.onChange;t.onChange=()=>{};for(var n=t.options,s=0;s<n.length;++s)if(n[s]==this.subscribedStream){n[s]=e;break}t.options=n,t.selected=e,t.onChange=r,this.subscribedStream=A.newID,this.pixelStreaming.dispatchEvent(new lA({newID:e}))}handleWebRtcAnswer(A){B.Log(B.GetStackTrace(),`Got answer sdp ${A.sdp}`,6);const e={sdp:A.sdp,type:"answer"};this.peerConnectionController.receiveAnswer(e),this.handlePostWebrtcNegotiation()}handleWebRtcOffer(A){B.Log(B.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(QA.MouseInput)),this.setKeyboardInputEnabled(this.config.isFlagEnabled(QA.KeyboardInput)),this.setGamePadInputEnabled(this.config.isFlagEnabled(QA.GamepadInput))}handleIceCandidate(A){B.Log(B.GetStackTrace(),"Web RTC Controller: onWebRtcIce",6);const e=new RTCIceCandidate(A);this.peerConnectionController.handleOnIce(e)}handleSendIceCandidate(A){B.Log(B.GetStackTrace(),"OnIceCandidate",6),A.candidate&&A.candidate.candidate&&this.webSocketController.sendIceCandidate(A.candidate)}handleDataChannel(A){B.Log(B.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){B.Log(B.GetStackTrace(),"Sending the offer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcOffer(A,e)}handleSendWebRTCAnswer(A){B.Log(B.GetStackTrace(),"Sending the answer to the Server",6);const e={minBitrateBps:1e3*this.config.getNumericSettingValue(FA.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(FA.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){B.Log(B.GetStackTrace(),`MinQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MinQP":A})])}sendEncoderMaxQP(A){B.Log(B.GetStackTrace(),`MaxQP=${A}\n`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"Encoder.MaxQP":A})])}sendWebRTCMinBitrate(A){B.Log(B.GetStackTrace(),`WebRTC Min Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MinBitrate":A})])}sendWebRTCMaxBitrate(A){B.Log(B.GetStackTrace(),`WebRTC Max Bitrate=${A}`,6),null!=A&&this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"WebRTC.MaxBitrate":A})])}sendWebRTCFps(A){B.Log(B.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(){B.Log(B.GetStackTrace(),"---- Sending show stat to UE ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({"stat.fps":""})])}sendIframeRequest(){B.Log(B.GetStackTrace(),"---- Sending Request for an IFrame ----",6),this.streamMessageController.toStreamerHandlers.get("IFrameRequest")()}emitUIInteraction(A){B.Log(B.GetStackTrace(),"---- Sending custom UIInteraction message ----",6),this.streamMessageController.toStreamerHandlers.get("UIInteraction")([JSON.stringify(A)])}emitCommand(A){B.Log(B.GetStackTrace(),"---- Sending custom Command message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify(A)])}emitConsoleCommand(A){B.Log(B.GetStackTrace(),"---- Sending custom Command:ConsoleCommand message ----",6),this.streamMessageController.toStreamerHandlers.get("Command")([JSON.stringify({ConsoleCommand:A})])}sendRequestQualityControlOwnership(){B.Log(B.GetStackTrace(),"---- Sending Request to Control Quality ----",6),this.toStreamerMessagesController.SendRequestQualityControl()}handleLatencyTestResult(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.latencyTest",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=new Ae;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){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.dataChannelLatencyResponse",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e);this.pixelStreaming._onDataChannelLatencyTestResponse(t)}handleInitialSettings(A){B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.InitialSettings",6);const e=new TextDecoder("utf-16").decode(A.slice(1)),t=JSON.parse(e),r=new jA;t.Encoder&&(r.EncoderSettings=t.Encoder),t.WebRTC&&(r.WebRTCSettings=t.WebRTC),t.PixelStreaming&&(r.PixelStreamingSettings=t.PixelStreaming),t.ConfigOptions&&void 0!==t.ConfigOptions.DefaultToHover&&this.config.setFlagEnabled(QA.HoveringMouseMode,!!t.ConfigOptions.DefaultToHover),r.ueCompatible(),B.Log(B.GetStackTrace(),e,6),this.pixelStreaming._onInitialSettings(r)}handleVideoEncoderAvgQP(A){B.Log(B.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);B.Log(B.GetStackTrace(),"DataChannelReceiveMessageType.QualityControlOwnership",6),this.isQualityController=new Boolean(e[1]).valueOf(),B.Log(B.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(QA.HoveringMouseMode)?TA.HoveringMouse:TA.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(QA.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 Y({label:A,event:e})),A.onClose=(A,e)=>this.pixelStreaming.dispatchEvent(new j({label:A,event:e})),A.onError=(A,e)=>this.pixelStreaming.dispatchEvent(new $({label:A,event:e}))}registerMessageHandler(A,e,t){e===XA.FromStreamer&&void 0===t&&B.Warning(B.GetStackTrace(),`Unable to register handler for ${A} as no handler was passed`),this.streamMessageController.registerMessageHandler(e,A,(r=>void 0===t&&e===XA.ToStreamer?this.sendMessageController.sendMessageToStreamer(A,r):t(r)))}}class be{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 r=e.getPose(A.gripSpace,t);if(!r)return;let n=0;A.profiles.includes("htc-vive")?n=1:A.profiles.includes("oculus-touch")&&(n=2),this.toStreamerMessagesProvider.toStreamerHandlers.get("XRSystem")([n]);let s=2;switch(A.handedness){case"left":s=0;break;case"right":s=1}const i=r.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=be.deepCopyGamepad(A.gamepad)),this.controllers[s].currentState=be.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 Ie{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 be(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 B.Error(B.GetStackTrace(),"This browser does not support XR.");navigator.xr.requestSession("immersive-vr",{optionalFeatures:[]}).then((A=>{this.onXrSessionStarted(A)}))}}onXrSessionEnded(){B.Log(B.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){B.Log(B.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,r=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],r[0],r[4],r[8],r[12],r[1],r[5],r[9],r[13],r[2],r[6],r[10],r[14],r[3],r[7],r[11],r[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(QA.XRControllerInput)&&this.xrSession.inputSources.forEach(((A,t,r)=>{this.xrGamepadController.updateStatus(A,e,this.xrRefSpace)}),this),this.xrSession.requestAnimationFrame(((A,e)=>this.onXrFrame(A,e))),this.onFrame.dispatchEvent(new CA({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&&B.Info(null,"WebXR requires https, if you want WebXR use https."),navigator.xr?navigator.xr.isSessionSupported(A):new Promise((()=>!1))}}class He{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 Te{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 Me{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 B.Error(B.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),r=new Te(t);this.records.set(r.seq,r),this.sink(t)}createRequest(A,e){return{Seq:this.seq++,FillResponseSize:e,Filler:A?"A".repeat(A):""}}}class Le{constructor(A,e){this.allowConsoleCommands=!1,this.config=A,(null==e?void 0:e.videoElementParent)&&(this._videoElementParent=e.videoElementParent),this._eventEmitter=new vA,this.configureSettings(),this.setWebRtcPlayerController(new Se(this.config,this)),this.onScreenKeyboardHelper=new He(this.videoElementParent),this.onScreenKeyboardHelper.unquantizeAndDenormalizeUnsigned=(A,e)=>this._webRtcController.requestUnquantizedAndDenormalizeUnsigned(A,e),this._activateOnScreenKeyboard=A=>this.onScreenKeyboardHelper.showOnScreenKeyboard(A),this._webXrController=new Ie(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(QA.IsQualityController,(A=>{!0!==A||this._webRtcController.isQualityController||this._webRtcController.sendRequestQualityControlOwnership()})),this.config._addOnSettingChangedListener(QA.AFKDetection,(A=>{this._webRtcController.setAfkEnabled(A)})),this.config._addOnSettingChangedListener(QA.MatchViewportResolution,(()=>{this._webRtcController.videoPlayer.updateVideoStreamSize()})),this.config._addOnSettingChangedListener(QA.HoveringMouseMode,(A=>{this.config.setFlagLabel(QA.HoveringMouseMode,`Control Scheme: ${A?"Hovering":"Locked"} Mouse`),this._webRtcController.setMouseInputEnabled(this.config.isFlagEnabled(QA.MouseInput))})),this.config._addOnSettingChangedListener(QA.KeyboardInput,(A=>{this._webRtcController.setKeyboardInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.MouseInput,(A=>{this._webRtcController.setMouseInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.FakeMouseWithTouches,(A=>{this._webRtcController.setTouchInputEnabled(this.config.isFlagEnabled(QA.TouchInput))})),this.config._addOnSettingChangedListener(QA.TouchInput,(A=>{this._webRtcController.setTouchInputEnabled(A)})),this.config._addOnSettingChangedListener(QA.GamepadInput,(A=>{this._webRtcController.setGamePadInputEnabled(A)})),this.config._addOnNumericSettingChangedListener(FA.MinQP,(A=>{B.Log(B.GetStackTrace(),"-------- Sending MinQP --------",7),this._webRtcController.sendEncoderMinQP(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.MaxQP,(A=>{B.Log(B.GetStackTrace(),"-------- Sending encoder settings --------",7),this._webRtcController.sendEncoderMaxQP(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCMinBitrate,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMinBitrate(1e3*A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCMaxBitrate,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCMaxBitrate(1e3*A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnNumericSettingChangedListener(FA.WebRTCFPS,(A=>{B.Log(B.GetStackTrace(),"-------- Sending web rtc settings --------",7),this._webRtcController.sendWebRTCFps(A),B.Log(B.GetStackTrace(),"-------------------------------------------",7)})),this.config._addOnOptionSettingChangedListener(bA.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(bA.PreferredCodec).selected),this._webRtcController.resizePlayerStyle(),this.checkForAutoConnect()}connect(){this._eventEmitter.dispatchEvent(new AA),this._webRtcController.connectToSignallingServer()}reconnect(){this._eventEmitter.dispatchEvent(new tA),this._webRtcController.tryReconnect("Reconnecting...")}disconnect(){this._eventEmitter.dispatchEvent(new eA),this._webRtcController.close()}play(){this._onStreamLoading(),this._webRtcController.playStream()}checkForAutoConnect(){this.config.isFlagEnabled(QA.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 B.Warning(B.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):B.Info(B.GetStackTrace(),"Trying to mute mic, but PixelStreaming has no microphone track, so sending sound is already disabled.")}setMicrophoneMuted(A){var e,t,r,n;for(const s of null!==(n=null===(r=null===(t=null===(e=this._webRtcController)||void 0===e?void 0:e.peerConnectionController)||void 0===t?void 0:t.peerConnection)||void 0===r?void 0:r.getTransceivers())&&void 0!==n?n:[])WA.canTransceiverSendAudio(s)&&(s.sender.track.enabled=!A)}_onWebRtcAutoConnect(){this._eventEmitter.dispatchEvent(new N)}_onWebRtcSdp(){this._eventEmitter.dispatchEvent(new _)}_onStreamLoading(){this._eventEmitter.dispatchEvent(new q)}_onDisconnect(A,e){this._eventEmitter.dispatchEvent(new z({eventString:A,allowClickToReconnect:e}))}_onWebRtcConnecting(){this._eventEmitter.dispatchEvent(new W)}_onWebRtcConnected(){this._eventEmitter.dispatchEvent(new J)}_onWebRtcFailed(){this._eventEmitter.dispatchEvent(new X)}_onVideoInitialized(){this._eventEmitter.dispatchEvent(new Z),this._videoStartTime=Date.now()}_onLatencyTestResult(A){this._eventEmitter.dispatchEvent(new dA({latencyTimings:A}))}_onDataChannelLatencyTestResponse(A){this._eventEmitter.dispatchEvent(new uA({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 aA({aggregatedStats:A}))}_onVideoEncoderAvgQP(A){this._eventEmitter.dispatchEvent(new G({avgQP:A}))}_onInitialSettings(A){var e;this._eventEmitter.dispatchEvent(new gA({settings:A})),A.PixelStreamingSettings&&(this.allowConsoleCommands=null!==(e=A.PixelStreamingSettings.AllowPixelStreamingCommands)&&void 0!==e&&e,!1===this.allowConsoleCommands&&B.Info(B.GetStackTrace(),"-AllowPixelStreamingCommands=false, sending arbitrary console commands from browser to UE is disabled."));const t=this.config.useUrlParams,r=new URLSearchParams(window.location.search);B.Info(B.GetStackTrace(),`using URL parameters ${t}`),A.EncoderSettings&&(this.config.setNumericSetting(FA.MinQP,t&&r.has(FA.MinQP)?Number.parseFloat(r.get(FA.MinQP)):A.EncoderSettings.MinQP),this.config.setNumericSetting(FA.MaxQP,t&&r.has(FA.MaxQP)?Number.parseFloat(r.get(FA.MaxQP)):A.EncoderSettings.MaxQP)),A.WebRTCSettings&&(this.config.setNumericSetting(FA.WebRTCMinBitrate,t&&r.has(FA.WebRTCMinBitrate)?Number.parseFloat(r.get(FA.WebRTCMinBitrate)):A.WebRTCSettings.MinBitrate/1e3),this.config.setNumericSetting(FA.WebRTCMaxBitrate,t&&r.has(FA.WebRTCMaxBitrate)?Number.parseFloat(r.get(FA.WebRTCMaxBitrate)):A.WebRTCSettings.MaxBitrate/1e3),this.config.setNumericSetting(FA.WebRTCFPS,t&&r.has(FA.WebRTCFPS)?Number.parseFloat(r.get(FA.WebRTCFPS)):A.WebRTCSettings.FPS))}_onQualityControlOwnership(A){this.config.setFlagEnabled(QA.IsQualityController,A)}_onPlayerCount(A){this._eventEmitter.dispatchEvent(new mA({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 fA),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 Me(this._webRtcController.sendDataChannelLatencyTest.bind(this._webRtcController),(A=>{this._eventEmitter.dispatchEvent(new hA({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!==XA.FromStreamer||void 0!==t?e===XA.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))):B.Warning(B.GetStackTrace(),`Unable to register an undefined handler for ${A}`)}get toStreamerHandlers(){return this._webRtcController.streamMessageController.toStreamerHandlers}isReconnecting(){return this._webRtcController.isReconnecting}}class xe{}var De=g.De,Pe=g.vU,Re=g.Yd,ke=g.sK,Ke=g.g,Oe=g.x_;class Ve extends e.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),r=0;if(1===t[0]){r+=4;let A=t[r/4];r+=4;for(let n=0;n<A;n++){let A=t[r/4];r+=4;let n=new TextDecoder("utf-8").decode(e.slice(r,r+A));r+=A,this._processResponseFn(n)}}},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),r=new DataView(new ArrayBuffer(3+t.length)),n=0;r.setUint8(n,A),n++,r.setUint16(n,t.length,!0),n+=2;for(let A=0;A<t.length;A++)r.setUint8(n,t[A]),n+=1;try{this.sendInputData(r.buffer)}catch(A){console.error(`data.buffer.size: ${r.buffer.byteLength} 独立通道 sendInputData error: ${A}`,A)}}destroyImpl(){this._inner&&this._inner.close()}}window.g_emitDescriptor_maxBytes=3e4;let Ge=-1;Re.SetLoggerVerbosity(1);class _e extends e.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 De({initialSettings:{AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,[Oe.SignallingServerUrl]:this._url}});A.setFlagEnabled(Pe.BrowserSendOffer,!1),A.setFlagEnabled(Pe.HoveringMouseMode,!0),A.setFlagEnabled(Pe.MatchViewportResolution,!0),A.setNumericSetting(ke.MaxReconnectAttempts,0);const e=new Ke(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 Ve(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 r=this.uiInteractionCallbacks.get(t);return"function"==typeof r&&(r(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,t){"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t)),this.pixelStream.emitUIInteraction(A)}get webRtcController(){return this.pixelStream._webRtcController}_pixelStreamEmitUIInteractionAsString(A){this.webRtcController.streamMessageController.toStreamerHandlers.get("UIInteraction")([A])}emitUIInteractionForBigData(A,t){"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t));const r=JSON.stringify(A),n=window.g_emitDescriptor_maxBytes,s=r.length,i=++Ge;if(this.esMsgWsWrapper){if(s<n)return void this.esMsgWsWrapper.emitDescriptorWithString(50,`${i}-0/1-`+r);const A=0|Math.ceil(s/n),e=[...new Array(A).keys()].map((A=>r.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 Ne extends e.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,t,r){super(),this._container=A,this._wsuri=t,this._esmsgWsUri=r,this._instance=this.disposeVar(new _e(this._container,{url:this._wsuri,esmsgWsUri:this._esmsgWsUri})),this._event=this.disposeVar(new e.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,r)=>{const n=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,n)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),r(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}var We=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const Je=(A,e,t,r,n)=>We(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyTo",p:{id:e,duration:t,flyToParam:r,position:n}});if(!s.error)return s.re;console.error(s.error)})),Xe=(A,e)=>We(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})),ze=(A,e)=>{A.callUeFunc({f:"calcFlyToParam",p:{id:e}}).then((A=>{A.error&&console.error("calcFlyToParam:",A.error)})).catch((A=>{console.error("calcFlyToParam:",A)}))},Ye=(A,e)=>{A.callUeFunc({f:"refreshTileset",p:{id:e}}).then((A=>{A.error&&console.error("refreshTileset:",A.error)})).catch((A=>{console.error("refreshTileset:",A)}))},je=(A,e,t,r,n)=>We(void 0,void 0,void 0,(function*(){const s=yield A.callUeFunc({f:"flyIn",p:{id:e,position:t,rotation:r,duration:n}});if(!s.error)return s.re;console.error(s.error)})),$e=(A,e)=>We(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)})),Ze=A=>We(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)})),qe=A=>We(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)})),At=(A,e)=>We(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)})),et=A=>We(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)})),tt=(A,e)=>We(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})),rt=(A,e,t,r,n)=>{A.callUeFunc({f:"smoothMoveWithRotation",p:{id:e,Destination:t,NewRotation:r,Time:n}}).then((A=>{A.error&&console.error("smoothMoveWithRotation:",A.error)})).catch((A=>{console.error("smoothMoveWithRotation:",A)}))},nt=(A,e,t,r,n,s)=>{A.callUeFunc({f:"smoothMoveOnGround",p:{id:e,Lon:t,Lat:r,Ground:n,Time:s}}).then((A=>{A.error&&console.error("smoothMoveOnGround:",A.error)})).catch((A=>{console.error("smoothMoveOnGround:",A)}))},st=(A,e,t,r,n,s,i)=>{A.callUeFunc({f:"smoothMoveWithRotationOnGround",p:{id:e,NewRotation:t,Lon:r,Lat:n,Time:s,Ground:i}}).then((A=>{A.error&&console.error("smoothMoveWithRotationOnGround:",A.error)})).catch((A=>{console.error("smoothMoveWithRotationOnGround:",A)}))},it=(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)}))},ot=(A,e,t,r)=>{A.callUeFunc({f:"HighlightFeatureAndFlyTo",p:{id:e,HlId:t,Duration:r}}).then((A=>{A.error&&console.error("HighlightFeatureAndFlyTo:",A.error)})).catch((A=>{console.error("HighlightFeatureAndFlyTo:",A)}))},at=(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)}))},ct=(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)}))},lt=(A,e,t,r)=>{A.callUeFunc({f:"smoothMove",p:{id:e,Destination:t,Time:r}}).then((A=>{A.error&&console.error("smoothMove:",A.error)})).catch((A=>{console.error("smoothMove:",A)}))},dt=(A,e,t,r)=>{A.callUeFunc({f:"callFunction",p:{id:e,fn:t,p:r}}).then((A=>{A.error&&(console.error("callFunction:",A.error),console.error(`id: ${e} fn: ${t} param: ${r}`))})).catch((A=>{console.error("callFunction:",A),console.error(`id: ${e} fn: ${t} param: ${r}`)}))},ut=(A,e,t,r)=>{A.callUeFunc({f:"SetNodePosition",p:{id:e,NodeName:t,NodePosition:r}}).then((A=>{A.error&&console.error("SetNodePosition:",A.error)})).catch((A=>{console.error("SetNodePosition:",A)}))},ht=(A,e,t,r)=>{A.callUeFunc({f:"SetNodeRotation",p:{id:e,NodeName:t,NodeRotation:r}}).then((A=>{A.error&&console.error("SetNodeRotation:",A.error)})).catch((A=>{console.error("SetNodeRotation:",A)}))},gt=(A,e,t,r)=>{A.callUeFunc({f:"SetNodeScale",p:{id:e,NodeName:t,NodeScale:r}}).then((A=>{A.error&&console.error("SetNodeScale:",A.error)})).catch((A=>{console.error("SetNodeScale:",A)}))},Bt=(A,e)=>We(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)})),wt=(A,e)=>We(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)})),pt=A=>We(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)})),Ct=(e,t,r,n)=>We(void 0,void 0,void 0,(function*(){var s;console.log("pickCallFunc",t,r,n);const i=yield e.callUeFunc({f:"pick",p:{screenPosition:t,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?A.ESSceneObject.getSceneObjectById(o):void 0;return a&&Reflect.has(a,"allowPicking")&&Reflect.has(a,"pickedEvent")&&null!==(s=a.allowPicking)&&void 0!==s&&s&&a.pickedEvent.emit({attachedInfo:r}),a&&Reflect.has(a,"allowPicking")&&!a.allowPicking?new A.PickedResult:new A.PickedResult(i.re,a,i.re.features,i.re.add,r)})),mt=(A,e)=>We(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:r}=t.re;return r})),ft=(A,e,t,r="ECC_Visibility")=>We(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"GetHeightByLonLat",p:{Lon:e,Lat:t,Channel:r}});if(!n.error)return n.re;console.warn(`GetHeightByLonLat:${n.error}`)})),vt=(A,e,t="ECC_Visibility")=>We(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"GetHeightsByLonLats",p:{LonLats:e,Channel:t}});if(r.error)console.warn(`GetHeightsByLonLats:${r.error}`);else{r.re.heights.includes(null)&&console.warn("注意! GetHeightsByLonLats: 存在高度为null的点. there are points with a height of null");try{return r.re.heights}catch(A){return}}})),Qt=(A,e=64,t=64)=>We(void 0,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"capture",p:{resx:e,resy:t}});if(!r.error)return r.re.image;console.warn(r.error)})),Ut=(A,e)=>We(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})),Ft=(A,e)=>We(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)})),yt=(A,e)=>We(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)})),Et=A=>We(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)})),St=(A,e)=>We(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)})),bt=(A,e)=>We(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}`)})),It=(A,e)=>We(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}`)})),Ht=(A,e)=>We(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}`)})),Tt=(A,e)=>We(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}`)})),Mt=(A,e)=>We(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}`)})),Lt=(A,e,t)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindActorByTag",p:{ID:e,ActorTag:t}})})),xt=A=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"RestoreOriginalScene",p:void 0})})),Dt=(A,e)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByID",p:{ID:e}})})),Pt=(A,e)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindActorByTag",p:{ActorTag:e}})})),Rt=(A,e,t)=>We(void 0,void 0,void 0,(function*(){return yield A.callUeFunc({f:"CreateActorByClass",p:{ID:e,ActorClass:t}})})),kt=function(A,e,t){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"Bind3DTilesetByTag",p:{ID:e,ActorTag:t}})}))},Kt=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetByTag",p:{ActorTag:e}})}))},Ot=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBind3DTilesetById",p:{ID:e}})}))},Vt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"BindImageryByTag",p:{ID:e,ActorTag:t,ComponentTag:r}})}))},Gt=function(A,e,t){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryByTag",p:{ActorTag:e,ComponentTag:t}})}))},_t=function(A,e){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"UnBindImageryById",p:{ID:e}})}))},Nt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetIdByComponentNameAndHitItem",p:{id:e,ComponentName:t,HitItem:r}})}))},Wt=function(A,e="ECC_Visibility"){return We(this,void 0,void 0,(function*(){return yield A.callUeFunc({f:"GetCameraRelativeHeight",p:{Channel:e}})}))},Jt=function(A,e,t,r){return We(this,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"SaveStringToFile",p:{String:e,Path:null!=t?t:"undefine",File:null!=r?r:"data.txt"}});return""!==n.error&&console.warn("SaveStringToFile: ",n.error),n}))},Xt=function(A,e,t=!0){return We(this,void 0,void 0,(function*(){const r=yield A.callUeFunc({f:"HighlightActorByTag",p:{ActorTag:e,Highlight:t}});return""!==r.error&&console.warn("HighlightActorByTag: ",r.error),r}))},zt=function(A,e){return We(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}))},Yt=function(A){return We(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}`)}))},jt=(A,e,t,r=!0)=>We(void 0,void 0,void 0,(function*(){const n=yield A.callUeFunc({f:"startEditing",p:{sceneObjectID:e,modes:t,useKeyToSwitch:r}});if(!n.error)return n;console.error("startEditing:",n.error)})),$t=A=>We(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)})),Zt=(A,e)=>We(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 qt extends e.Destroyable{}class Ar extends A.PickedInfo{constructor(A,e,t){super(e),this.uePickResult=A,this.tilesetPickInfo=t}}class er extends qt{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,t,r,n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event),this._errorEvent=this.dv(new e.Event),this._readyEvent=this.dv(new e.Event),this._esmsgwsopen=this.dv((0,e.react)(!1)),this._videoinited=this.dv((0,e.react)(!1)),this._webRtcConnected=this.dv((0,e.react)(!1)),console.log("CSTMPSViewer init ! 以官方像素流 + 独立通信的模式启动!");const s=this._ueViewer;this._esueViewerWrapper=this.dv(new Ne(A,t,r));const i=this._esueViewerWrapper;{const A=()=>{var A;return i.debug=null!==(A=s.debug)&&void 0!==A&&A};A(),this.d(s.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 t,r;this.dv((0,e.createAnimateFrame)()).start((()=>{t===A.offsetWidth&&r===A.offsetHeight||(t=A.offsetWidth,r=A.offsetHeight,void 0===t||void 0===r||!Number.isFinite(t)||!Number.isFinite(r)||t<0||r<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${t} ${r}`):(i.resize(t,r),console.log(`resize: ${t} ${r}`)))}))}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),s.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,e.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 r=t.length,n=0,i=0,o=[];do{do{const{f:A,s:r}=t[n];if(o.push(A),++n,i+r>e||o.length>=20)break}while(n<r);o.length>0&&(s.debug&&console.log(`传送${o.length}条消息...`),c([...o]),o.length=0,i=0)}while(n<r)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:t}])}))}disposableOnUeEvent(A,t){var r;null!==(r=this._ueViewer.debug)&&void 0!==r&&r&&console.log(`disposableOnUeEvent from UeCloudViewer, type:${A}`);const n=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:n}});const s=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:n}})},i=this._ueEvent.don((e=>{e.et===A&&e.eid===n&&t(e)}));return()=>{i(),s()}}}function tr(A){let e="";const t=new Uint8Array(A),r=t.length;for(let A=0;A<r;A++)e+=String.fromCharCode(t[A]);return btoa(e)}window.g_emitDescriptor_maxBytes=3e4,console.log("全局可设置消息体最大字节, window.g_emitDescriptor_maxBytes 默认 30000 。");let rr=-1;Re.SetLoggerVerbosity(1);class nr extends e.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,t){var r;"function"==typeof t&&(A.callid=(0,e.createGuid)(),this.uiInteractionCallbacks.set(A.callid,t));const n=JSON.stringify(A),s=null!==(r=window.g_emitDescriptor_maxBytes)&&void 0!==r?r:3e4,i=n.length,o=++rr;if(i<s){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/s),c=[...new Array(a).keys()].map((A=>n.slice(A*s,(A+1)*s)));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,t){super(),this._container=A,this._option=t,this.debug=!1,this._error=this.dv(new e.Event),this._connected=this.dv(new e.Event),this._ueevent=this.dv(new e.Event),this.uiInteractionCallbacks=new Map;const r=new De({initialSettings:{HoveringMouse:!0,AutoPlayVideo:!0,AutoConnect:!0,StartVideoMuted:!0,WaitForStreamer:!0,SuppressBrowserKeys:!1,ss:this._option.ws},useUrlParams:!0});r.setFlagEnabled(Pe.BrowserSendOffer,!1),r.setFlagEnabled(Pe.HoveringMouseMode,!0),r.setFlagEnabled(Pe.MatchViewportResolution,!0),r.setNumericSetting(ke.MaxReconnectAttempts,0),this._pixelStream=new Ke(r,{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:tr(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),r=e.toStreamerMessagesProvider.toStreamerHandlers.get("MouseUp");r&&r([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 r=this.uiInteractionCallbacks.get(t);return"function"==typeof r&&(r(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 sr extends e.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,t,r){super(),this._container=A,this._wsuri=t,this._esmsgWsUri=r,this._event=this.dv(new e.Event),this._instance=this.dv(new nr(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,r)=>{const n=(...A)=>{t(A),e&&e(...A)};try{this._instance.emitUIInteractionForBigData(A,n)}catch(A){console.warn(`emitUIInteraction发生错误:${A}`),r(A)}}))}getVideoSize(){return this._instance.getVideoSize()}resize(A,e){this._instance.resizeUEVideo(A,e)}}class ir extends qt{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,t,r,n){super(),this._ueViewer=n,this._videoInitialized=this.dv((0,e.react)(!1)),this._webRtcConnected=this.dv((0,e.react)(!1)),this._webSocketOpen=this.dv((0,e.react)(!1)),this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event),this._errorEvent=this.dv(new e.Event),this._readyEvent=this.dv(new e.Event),console.log("INNPSViewer init ! 以内置信令服务器模式启动!");const s=this._ueViewer,i=this.dv(new sr(A,t,r));this._ue5ViewerWrapper=i;{const A=()=>{var A;return i.debug=null!==(A=s.debug)&&void 0!==A&&A};A(),this.d(s.debugChanged.don(A))}{let A=!1;const t=this.dv((0,e.createNextAnimateFrameEvent)(this._videoInitialized.changed,this._webRtcConnected.changed,this._webSocketOpen.changed));this.d(t.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 t,r,n;this.dv((0,e.createAnimateFrame)()).start((()=>{t===A.offsetWidth&&r===A.offsetHeight&&n===s.resolutionScale||(t=A.offsetWidth,r=A.offsetHeight,void 0===t||void 0===r||!Number.isFinite(t)||!Number.isFinite(r)||t<0||r<0?console.warn(`lastWidth === undefined || lastHeight === undefined || !Number.isFinite(lastWidth) || !Number.isFinite(lastHeight) || lastWidth < 0 || lastHeight < 0 ${t} ${r}`):(n=s.resolutionScale,i.resize(t/n,r/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),s.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,e.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 r=t.length,n=0,i=0,o=[];do{do{const{f:A,s:r}=t[n];if(o.push(A),++n,i+r>e||o.length>=20)break}while(n<r);o.length>0&&(s.debug&&console.log(`传送${o.length}条消息...`),a([...o]),o.length=0,i=0)}while(n<r)}}),50),this.d((()=>console.log("UeCloudViewer正在销毁...")))}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,{timeStamp:Date.now(),ueFunc:A,resultCallback:t}])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.don((e=>{e.et===A&&e.eid===r&&t(e)}));return()=>{s(),n()}}}class or extends e.Destroyable{get onRuntimeInitialized(){return this._onRuntimeInitialized}get vIframe(){return this._vIframe}constructor(t,r,n,s){super(),this._ueViewer=s,this._onRuntimeInitialized=this.dv(new e.Event),this._vIframe=null;const i=this._ueViewer;{const e=document.createElement("iframe");this._vIframe=e,e.style.cssText="width: 100%; height: 100%; margin: 0; padding: 0; border: none; outline: none;",t.appendChild(e),this.d((()=>{e&&t.removeChild(e)}));const s=A.ESSceneObject.getStrFromEnv(n+`/web/${r}.html`);e.src=s,e.onload=()=>{const A=e.contentWindow;A?(console.log("iwindow.Module",A.Module),A.Module.onRuntimeInitialized=()=>{this._onRuntimeInitialized.emit(),i.setStatus("Created"),i.setStatusLog("创建成功"),A.Module.UE4_resizeCanvas(),A.console.log("创建成功__________________________________________")}):console.error("iframeWindow is null")}}}}const ar="undefined"!=typeof TextDecoder?new TextDecoder:void 0;class cr extends e.Destroyable{constructor(t,r,n){super();{const A=()=>{const A=a(r);r.setGlobalProperty(A)};A();const t=o(),n=[];t.forEach((A=>{const e=r[A+"Changed"];n.push(e)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(A))}this.d(r.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((e=>{const t=null===A.props[e]?void 0:A.props[e];r[e]=t}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),r.useCustomInteraction=!1,this.dv(new A.ViewerCustomInteraction(r,t)),this.dv(new e.ObjResettingWithEvent(r.statusUpdateIntervalChanged,(A=>{var t;if(0===(null!==(t=r.statusUpdateInterval)&&void 0!==t?t:.5))return;const s=new e.Destroyable;return s.d(n.disposableOnUeEvent("statusUpdate",(A=>{r.statusUpdateEvent.emit(A)}))),s}))),this.dv(new e.ObjResettingWithEvent(r.propChangedListeningChanged,(()=>{var A;if(null!==(A=r.propChangedListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("propChanged",(A=>{r.propChanged.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.objectEventListeningChanged,(()=>{var A;if(null!==(A=r.objectEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("objectEvent",(A=>{r.objectEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.widgetEventListeningChanged,(()=>{var A;if(null!==(A=r.widgetEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("widgetEvent",(A=>{r.widgetEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=r.speechRecognitionListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("speechRecognition",(A=>{r.speechRecognition.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.customMessageListeningChanged,(()=>{var A;if(null!==(A=r.customMessageListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("customMessage",(A=>{r.customMessage.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.editingEventListeningChanged,(()=>{var A;if(null!==(A=r.editingEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("editingEvent",(A=>{r.editingEvent.emit(A)}))),t})))}}let lr=-1;class dr extends qt{constructor(A,t,r="${earthsdk3-ue-h5-assets-script-dir}",n){super(),this._ueViewer=n,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Map,this._ueEvent=this.dv(new e.Event);const s=this._ueViewer,i=this.dv(new or(A,t,r,s));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 cr(A,s,this)):console.error("h5Container is null")}a.UE_JSHTML5Communication?a.UE_JSHTML5Communication.UESendMessageToJS=A=>{try{const e=((A,e=0,t=NaN)=>{const r=e+t;let n=e;for(;A[n]&&!(n>=r);)++n;if(n-e>16&&A.buffer&&ar)return ar.decode(A.subarray(e,n));let s="";for(;e<n;){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(s.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,e.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 t=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),r={n:c++,tt:Date.now(),t:"c",fs:t,callid:(0,e.createGuid)()};for(const[A,e]of this._ueFuncWithIdAndResultCallbacks)this._waitingUeFuncIdAndResultCallbacks.set(A.fid,e);this._ueFuncWithIdAndResultCallbacks.length=0,this._waitingUeCalls.set(r.callid,r),s.debug&&(console.group("%cxe2 => ue"," background-color:green;color:#ffffff;font-weight:bold;padding:4px;border-radius:5px;"),console.log(`%c${JSON.stringify(r,void 0,"")}`," border:1px dashed green;border-radius:5px;padding:10px;line-height:25px;color:green;"),console.groupEnd());const n=JSON.stringify(r),i=null!==(A=window.g_emitDescriptor_maxBytes)&&void 0!==A?A:3e4,l=n.length,d=++lr;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((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,t])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.disposableOn((e=>{var n;e.et===A&&e.eid===r&&(null!==(n=this._ueViewer.debug)&&void 0!==n&&n&&console.log(`callback, type:${A} eid:${r} ueEvent:${JSON.stringify(e)}`),t(e))}));return()=>{s(),n()}}}let ur=-1;class hr extends qt{constructor(A,t){super(),this._ueViewer=t,this._ueFuncResultWithIdsEvent=this.dv(new e.Event),this._ueFuncWithIdAndResultCallbacks=[],this._waitingUeFuncIdAndResultCallbacks=new Map,this._waitingUeCalls=new Set,this._ueEvent=this.dv(new e.Event);const r=this._ueViewer;let n=!1;window.ue.es.oncommand(JSON.stringify({eventType:"init",params:{}})),n=!0,window.calljs=(A,e)=>{if(r.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 s=0;this.dv((0,e.createInterval)()).start((()=>{if(0===this._ueFuncWithIdAndResultCallbacks.length)return;const A=this._ueFuncWithIdAndResultCallbacks.map((([A])=>A)),e={n:s++,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),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());const t=++ur;window.ue.es.oncommand(`${t}-0/1-`+JSON.stringify(e)).then((()=>{this._waitingUeCalls.delete(e)}))}),50)}callUeFunc(A){return new Promise((t=>{const r=(0,e.createGuid)(),n=Object.assign({fid:r},A);this._ueFuncWithIdAndResultCallbacks.push([n,t])}))}disposableOnUeEvent(A,t){const r=(0,e.createGuid)();this.callUeFunc({f:"addEventListener",p:{et:A,eid:r}});const n=()=>{this.callUeFunc({f:"removeEventListener",p:{eid:r}})},s=this._ueEvent.disposableOn((e=>{var n;e.et===A&&e.eid===r&&(null!==(n=this._ueViewer.debug)&&void 0!==n&&n&&console.log(`callback, type:${A} eid:${r} ueEvent:${JSON.stringify(e)}`),t(e))}));return()=>{s(),n()}}}class gr extends e.Destroyable{constructor(A,t){super();{const t=()=>{const e=a(A);A.setGlobalProperty(e)};t();const r=o(),n=[];r.forEach((e=>{const t=A[e+"Changed"];n.push(t)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(t))}this.d(A.propChanged.don((e=>{if(""===e.objId)try{Object.keys(e.props).forEach((t=>{const r=null===e.props[t]?void 0:e.props[t];A[t]=r}))}catch(A){console.error("ueViewer propChanged:"+A)}}))),this.dv(new e.ObjResettingWithEvent(A.statusUpdateIntervalChanged,(r=>{var n;if(0===(null!==(n=A.statusUpdateInterval)&&void 0!==n?n:.5))return;const s=new e.Destroyable;return s.d(t.disposableOnUeEvent("statusUpdate",(e=>{A.statusUpdateEvent.emit(e)}))),s}))),this.dv(new e.ObjResettingWithEvent(A.propChangedListeningChanged,(()=>{var r;if(null!==(r=A.propChangedListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("propChanged",(e=>{A.propChanged.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.objectEventListeningChanged,(()=>{var r;if(null!==(r=A.objectEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("objectEvent",(e=>{A.objectEvent.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.widgetEventListeningChanged,(()=>{var r;if(null!==(r=A.widgetEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("widgetEvent",(e=>{A.widgetEvent.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.speechRecognitionListeningChanged,(()=>{var r;if(null!==(r=A.speechRecognitionListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("speechRecognition",(e=>{A.speechRecognition.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.customMessageListeningChanged,(()=>{var r;if(null!==(r=A.customMessageListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("customMessage",(e=>{A.customMessage.emit(e)}))),n}))),this.dv(new e.ObjResettingWithEvent(A.editingEventListeningChanged,(()=>{var r;if(null!==(r=A.editingEventListening)&&void 0!==r&&!r)return;const n=new e.Destroyable;return n.d(t.disposableOnUeEvent("editingEvent",(e=>{A.editingEvent.emit(e)}))),n})))}}class Br extends e.Destroyable{constructor(t,r,n){super();{const A=()=>{const A=a(r);r.setGlobalProperty(A)};A();const t=o(),n=[];t.forEach((A=>{const e=r[A+"Changed"];n.push(e)}));const s=this.dv((0,e.createNextAnimateFrameEvent)(...n));this.d(s.don(A))}this.d(r.propChanged.don((A=>{if(""===A.objId)try{Object.keys(A.props).forEach((e=>{const t=null===A.props[e]?void 0:A.props[e];r[e]=t}))}catch(A){console.error("ueViewer propChanged:"+A)}})));const s=document.createElement("div");s.style.width="100%",s.style.height="100%",s.style.position="absolute",s.style.overflow="hidden",s.style.top="0",s.style.left="0",s.style.zIndex="0",s.style.backgroundColor="rgba(255,0,0,0)",s.setAttribute("masker","大屏顶层div,用于模拟鼠标事件和控制UE鼠标事件是否生效"),t.appendChild(s),this.d((()=>{s&&t&&t.removeChild(s)}));{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)};s.addEventListener("mouseenter",e),s.addEventListener("mouseleave",t),s.addEventListener("mousemove",r),this.d((()=>{s.removeEventListener("mouseenter",e),s.removeEventListener("mouseleave",t),s.removeEventListener("mousemove",r)}))}r.useCustomInteraction=!1,this.dv(new A.ViewerCustomInteraction(r,s)),this.dv(new e.ObjResettingWithEvent(r.statusUpdateIntervalChanged,(A=>{var t;if(0===(null!==(t=r.statusUpdateInterval)&&void 0!==t?t:.5))return;const s=new e.Destroyable;return s.d(n.disposableOnUeEvent("statusUpdate",(A=>{r.statusUpdateEvent.emit(A)}))),s}))),this.dv(new e.ObjResettingWithEvent(r.propChangedListeningChanged,(()=>{var A;if(null!==(A=r.propChangedListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("propChanged",(A=>{r.propChanged.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.objectEventListeningChanged,(()=>{var A;if(null!==(A=r.objectEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("objectEvent",(A=>{r.objectEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.widgetEventListeningChanged,(()=>{var A;if(null!==(A=r.widgetEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("widgetEvent",(A=>{r.widgetEvent.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.speechRecognitionListeningChanged,(()=>{var A;if(null!==(A=r.speechRecognitionListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("speechRecognition",(A=>{r.speechRecognition.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.customMessageListeningChanged,(()=>{var A;if(null!==(A=r.customMessageListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("customMessage",(A=>{r.customMessage.emit(A)}))),t}))),this.dv(new e.ObjResettingWithEvent(r.editingEventListeningChanged,(()=>{var A;if(null!==(A=r.editingEventListening)&&void 0!==A&&!A)return;const t=new e.Destroyable;return t.d(n.disposableOnUeEvent("editingEvent",(A=>{r.editingEvent.emit(A)}))),t})))}}class wr extends e.Destroyable{constructor(A,t,r){super(),this._reconnectEvent=this.dv(new e.Event);const n=(A,e)=>A.hasOwnProperty(e);let s,i=0;if(this.d((()=>{s&&clearTimeout(s)})),window.ue&&window.ue.es)if(window.ue.esinput){r.setStatus("Creating"),console.log("存在(window.ue && window.ue.es && window.ue.esinput 需要适配新版ESWebView 鼠标穿透), 开始创建UeFalseCloudViewer..."),r.setStatusLog("开始创建本地视口...");const e=this.dv(new hr(A,r));this.d((()=>r.viewer=void 0)),r.viewer=e,r.setStatus("Created"),r.setStatusLog("本地视口创建成功!"),this.dv(new Br(A,r,e))}else r.setStatus("Error"),r.setStatusLog("请升级 ESWebView !");else if(n(t.options,"ws")||n(t.options,"uri")&&n(t.options,"app")){let o;r.setStatus("Creating"),r.setStatusLog("开始创建云渲染视口..."),this.d((()=>{r.setStatus("Raw"),r.setStatusLog(""),A&&o&&A.removeChild(o)&&(o=void 0)}));const a=this.dv((0,e.createProcessingFromAsyncFunc)((a=>function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))}(this,void 0,void 0,(function*(){let c,l,d;if(r.viewer&&!r.viewer.isDestroyed()&&r.viewer.destroy(),r.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(t.options,"ws")){const{ws:A,esmsg:e,uselnternalSignallingServer:r}=t.options;c=A,l=e,d=null!=r&&r}if(n(t.options,"uri")&&n(t.options,"app")){const{offsetWidth:A,offsetHeight:n}=o;let{uri:s,app:i,token:u}=t.options;s.endsWith("/")||(s+="/");const h=`/${i}/${null!=A?A:1920}/${null!=n?n:1080}`+(u?`?essstoken=${u}`:"");console.log(`请求信令服务器: ${s}instance${h}`);const g=yield a.promise(fetch(`${s}instance${h}`,{method:"GET"})),B=yield a.promise(g.json());if(B&&"ok"!==B.status)return r.setStatus("Error"),r.setStatusLog(`信令服务器请求失败 ${B.status}`),void this._reconnectEvent.emit(void 0);{console.log(`信令服务器请求成功! ${JSON.stringify(B,void 0," ")}`),yield(0,e.sleep)(5e3);const{server:A,esmsg:t,instanceId:n,useInternalSignallingServer:s}=B;if(!n)return r.setStatus("Error"),r.setStatusLog("检查信令服务器版本,返回数据错误! "),console.log("信令服务器返回数据错误!不包含instanceId!请升级到 ESSS V3.0+ 版本!"),void this._reconnectEvent.emit(void 0);c=A,l=t,d=null!=s&&s,r.esssResponse=B}}const u=this.dv(d?new ir(o,c,l,r):new er(o,c,l,r));this.d((()=>r.viewer=void 0)),this.d(u.errorEvent.don((A=>{const e=`[${A}]:像素流连接错误!`;r.setStatus("Error"),r.setStatusLog(e),this._reconnectEvent.emit(u)}))),yield a.promise(new Promise((A=>this.d(u.readyEvent.donce(A))))),r.setStatus("Created"),r.setStatusLog("云渲染视口创建成功!"),i=0,s&&clearTimeout(s),s=void 0;const{offsetWidth:h,offsetHeight:g}=o;u.resize(h*window.devicePixelRatio,g*window.devicePixelRatio),r.viewer=u,this.d((()=>r.viewer=void 0)),this.dv(new gr(r,u))})))));a.start(),this.d(this._reconnectEvent.don((A=>{void 0===s&&(A&&!A.isDestroyed()&&A.destroy(),r.viewer&&!r.viewer.isDestroyed()&&r.viewer.destroy(),r.viewer=void 0,r.autoReconnect&&(r.setStatus("Reconnecting"),r.setStatusLog("正在尝试重新连接..."),i=i+5e3>3e4?3e4:i+5e3,console.warn(`间隔:${i/1e3}s,正在尝试重新连接...`),s=window.setTimeout((()=>{a.restart()}),i)))}))),this.d(a.errorEvent.don((A=>{r.setStatus("Error"),r.setStatusLog("云渲染视口创建失败!"),console.warn("云渲染视口创建失败!",A),this._reconnectEvent.emit(void 0)})))}else if(n(t.options,"project")){const e=t,n=e.options.project,s=e.options.baseUrl;r.setStatus("Creating"),r.setStatusLog("下载编译中...");const i=this.dv(new dr(A,n,s,r));r.viewer=i,this.d((()=>r.viewer=void 0))}else r.setStatus("Error"),r.setStatusLog("视口创建失败!"),console.warn("视口创建失败: 参数错误!")}}var pr,Cr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class mr extends A.ESViewer{get defaultProps(){return mr.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 Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ft(this.viewer,A);console.warn("UEPositionToLonLatAlt: viewer is undefined")}))}changeNavigationMode(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return void console.warn("ChangeNavigationMode: viewer is undefined");const e=yield Bt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}resetWithCurrentCamera(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield tt(this.viewer,A);console.warn("resetWithCurrentCamera: viewer is undefined")}))}getAllSocketNamesByActorTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield yt(this.viewer,A);console.warn("GetAllSocketNamesByActorTag: viewer is undefined")}))}getBoundSphere(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield St(this.viewer,A);console.warn("getBoundSphere: viewer is undefined")}))}getBoundSphereWithChildren(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield bt(this.viewer,A);console.warn("getBoundSphereWithChildren: viewer is undefined")}))}getStrokeMaterialParamInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield It(this.viewer,A);console.warn("GetStrokeMaterialParamInfo: viewer is undefined")}))}getFillMaterialParamInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ht(this.viewer,A);console.warn("getFillMaterialParamInfo: viewer is undefined")}))}getGlobalProperty(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Tt(this.viewer,A);console.warn("getGlobalProperty: viewer is undefined")}))}getObjectByInfo(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Mt(this.viewer,A);console.warn("GetObjectByInfo: viewer is undefined")}))}defaultCameraFlyIn(A=1){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield $e(this.viewer,A);console.warn("DefaultCameraFlyIn: viewer is undefined")}))}startVoice(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ze(this.viewer);console.warn("startVoice:viewer is undefined")}))}stopVoice(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield qe(this.viewer);console.warn("startVoice:viewer is undefined")}))}mountPakFiles(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield At(this.viewer,A);console.warn("mountPakFiles:viewer is undefined")}))}generateMemReport(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield et(this.viewer);console.warn("generateMemReport:viewer is undefined")}))}quit(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield pt(this.viewer);console.warn("Quit: viewer is undefined")}))}bindActorByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Lt(this.viewer,A,e);console.warn("BindActorByTag: viewer is undefined")}))}restoreOriginalScene(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield xt(this.viewer);console.warn("RestoreOriginalScene: viewer is undefined")}))}unBindActorByID(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Dt(this.viewer,A);console.warn("UnBindActorByID: viewer is undefined")}))}unBindActorByTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Pt(this.viewer,A);console.warn("UnBindActorByTag: viewer is undefined")}))}createActorByClass(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Rt(this.viewer,A,e);console.warn("CreateActorByClass: viewer is undefined")}))}bind3DTilesetByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield kt(this.viewer,A,e);console.warn("Bind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetByTag(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Kt(this.viewer,A);console.warn("UnBind3DTilesetByTag: viewer is undefined")}))}unBind3DTilesetById(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Ot(this.viewer,A);console.warn("UnBind3DTilesetById: viewer is undefined")}))}bindImageryByTag(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Vt(this.viewer,A,e,t);console.warn("BindImageryByTag: viewer is undefined")}))}unBindImageryByTag(A,e){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Gt(this.viewer,A,e);console.warn("UnBindImageryByTag: viewer is undefined")}))}unBindImageryById(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield _t(this.viewer,A);console.warn("UnBindImageryById: viewer is undefined")}))}getIdByComponentNameAndHitItem(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Nt(this.viewer,A,e,t);console.warn("GetIdByComponentNameAndHitItem: viewer is undefined")}))}getCameraRelativeHeight(A="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Wt(this.viewer,A);console.warn("GetCameraRelativeHeight: viewer is undefined")}))}saveStringToFile(A,e,t){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Jt(this.viewer,A,e,t);console.warn("SaveStringToFile: viewer is undefined")}))}highlightActorByTag(A,e=!0){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Xt(this.viewer,A,e);console.warn("HighlightActorByTag: viewer is undefined")}))}sendCustomMessage(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield zt(this.viewer,A);console.warn("SendCustomMessage: viewer is undefined")}))}getStatus(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Yt(this.viewer);console.warn("GetStatus:viewer is undefined")}))}pick(A,e,t){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;let r=A;if(A&&window.ue&&this.container){const[e,t]=A,{left:n,top:s}=this.container.getBoundingClientRect();r=[n+e,s+t]}return yield Ct(this.viewer,r,e,t)}))}pickPosition(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;let e=A;if(A&&window.ue&&this.container){const[t,r]=A,{left:n,top:s}=this.container.getBoundingClientRect();e=[n+t,s+r]}return yield mt(this.viewer,e)}))}flyIn(A,e=[0,0,0],t=1){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const r=yield je(this.viewer,void 0,A,e,t);return r?(0===r.endType&&console.warn(`flyTo:flyTo is end! endType:${r.endType}`),1===r.endType&&console.warn(`flyTo:飞行中断! endType:${r.endType}`),r):void 0}))}flyTo(A,e){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const t=yield Je(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(e,t,r=1){const n=[[e[0],e[1],0],[e[0],e[3],0],[e[2],e[3],0],[e[2],e[1],0]],s=(0,A.getGeoBoundingSphereFromPositions)(n);if(!s)return;const{center:i,radius:o}=s,a={distance:null!=t?t:o,heading:0,pitch:-90,flyDuration:r,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 Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const t={mode:"Walk",position:A,jumpZVelocity:e},r=yield Bt(this.viewer,t);return r&&!r.error&&(this._navigationMode.value=t.mode),r}))}changeToMap(){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const A={mode:"Map"},e=yield Bt(this.viewer,A);return e&&!e.error&&(this._navigationMode.value=A.mode),e}))}changeToRotateGlobe(A=38,e=1e7,t=60){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const r={mode:"RotateGlobe",latitude:A,height:e,cycleTime:t},n=yield Bt(this.viewer,r);return n&&!n.error&&(this._navigationMode.value=r.mode),n}))}changeToLine(A,e=10,t=10,r=!0,n=10,s="auto"){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const i={mode:"Line",geoLineStringId:A,speed:e,heightOffset:t,loop:r,turnRateDPS:n,lineMode:s},o=yield Bt(this.viewer,i);return o&&!o.error&&(this._navigationMode.value=i.mode),o}))}changeToUserDefined(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e={mode:"UserDefined",userDefinedPawn:A},t=yield Bt(this.viewer,e);return t&&!t.error&&(this._navigationMode.value=e.mode),t}))}changeToRotatePoint(A,e=5e4,t=60,r=0,n=-30){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"RotatePoint",position:A,distance:e,orbitPeriod:t,heading:r,pitch:n},i=yield Bt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}changeToFollow(A,e=0,t=0,r=-30,n=!0){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const s={mode:"Follow",objectId:A,distance:e,heading:t,pitch:r,relativeRotation:n},i=yield Bt(this.viewer,s);return i&&!i.error&&(this._navigationMode.value=s.mode),i}))}getFPS(){return this._statusInfo.fps}getVersion(){var A;return Cr(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 Et(this.viewer);return e.esforue=t,e}))}getHeightByLonLat(A,e,t="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return null;const r=yield ft(this.viewer,A,e,t);return r&&void 0!==r.height?r.height:null}))}getHeightsByLonLats(A,e="ECC_Visibility"){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield vt(this.viewer,A,e)}))}capture(A=64,e=64){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield Qt(this.viewer,A,e)}))}lonLatAltToScreenPosition(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=yield Ut(this.viewer,A);return e&&[e.Y,e.Y]}))}setGlobalProperty(A){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield wt(this.viewer,A)}))}startEditing(A,e,t=!0){return Cr(this,void 0,void 0,(function*(){const r=A.combinationClass?A.getMainClass():A;if(!r)return;if(!this.viewer)return;const n=Array.isArray(e)?[...e]:[e];return yield jt(this.viewer,r.id,n,t)}))}stopEditing(){return Cr(this,void 0,void 0,(function*(){if(this.viewer)return yield $t(this.viewer)}))}moveObjects(A){return Cr(this,void 0,void 0,(function*(){if(!this.viewer)return;const e=[];for(let t=0;t<A.length;t++){const r=A[t],n=r.combinationClass?r.getMainClass():r;n&&e.push(n.id)}return 0!==e.length?yield Zt(this.viewer,e):void 0}))}constructor(A){if(super(A),this._viewer=this.dv((0,e.react)(void 0)),this._speechRecognition=this.dv(new e.Event),this._propChanged=this.dv(new e.Event),this._objectEvent=this.dv(new e.Event),this._widgetEvent=this.dv(new e.Event),this._customMessage=this.dv(new e.Event),this._statusUpdateEvent=this.dv(new e.Event),this._statusUpdateEventdon=(()=>{this.d(this.statusUpdateEvent.don((A=>{var e,t,r,n;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!==(r=A.position)&&void 0!==r?r:[0,0,0],this._statusInfo.rotation=null!==(n=A.rotation)&&void 0!==n?n:[0,0,0]})))})(),"ESUeViewer"!==A.type)throw new Error("option.type must be ESUeViewer");const t=A;this.d(this._viewer.changed.don((()=>{this.viewerChanged.emit(this.viewer)}))),this.dv(new e.ObjResettingWithEvent(this.subContainerChanged,(()=>{if(this.setStatus("Raw"),this.setStatusLog(""),this.subContainer)return new wr(this.subContainer,t,this)})))}getProperties(){return[...super.getProperties()]}}pr=mr,mr.type=pr.register("ESUeViewer",pr),mr.defaults=Object.assign({},s),function(e){e.createDefaultProps=()=>Object.assign(Object.assign(Object.assign({},A.ESViewer.createDefaultProps()),i()),{resolutionScale:1,autoReconnect:!1,propChangedListening:void 0,objectEventListening:void 0,widgetEventListening:void 0,speechRecognitionListening:void 0,customMessageListening:void 0})}(mr||(mr={})),(0,e.extendClassProps)(mr.prototype,mr.createDefaultProps);class fr extends A.EngineObject{constructor(A,t){super(A,t);const r=t.viewer;if(r&&(A.combinationClass||this.d(this.createdEvent.don((()=>{const n=this.constructor.propValFuncs,s=A.defaultProps,i=Object.keys(s).filter((A=>null!==n[A]));i.push(...this.constructor.forceUeUpdateProps);const o=A.constructor.defaults,a={val:{}},c=[];for(let e of i){const r=A[e+"Changed"];c.push(r);const s=n[e];if(null===s)throw console.error("vf === null error"),new Error("vf === null error");const i=()=>{var r;const n=null!==(r=A[e])&&void 0!==r?r:o[e];let i=s?s(n,this,t,A):n;void 0!==i?a.val[e]=i:console.warn(`UE自动更新的属性,不应该为undefined! 属性名:${e} 对象名:${A.name} 对象id: ${A.id}`)};i(),this.d(r.don(i))}const l=()=>{r.callUeFunc({f:"update",p:Object.assign({id:A.id},a.val)}),a.val={}},d=this.dv((0,e.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&&Xe(r,A.id)})),r.callUeFunc({f:"create",p:{type:A.typeName,id:A.id}}).then((()=>{e=!0,A.createdEvent.emit()})).catch((A=>console.error(A)))}}}fr.propValFuncs={ref:null,devTags:null,extras:null,execOnceFuncStr:null,updateFuncStr:null,toDestroyFuncStr:null},fr.forceUeUpdateProps=[];class vr extends fr{constructor(A,e){super(A,e);const t=e.viewer;t&&(this.d(A.flyToEvent.don((e=>{Je(t,A.id,e)}))),this.d(A.flyInEvent.don((e=>{var r,n;je(t,A.id,null===(r=A.flyInParam)||void 0===r?void 0:r.position,null===(n=A.flyInParam)||void 0===n?void 0:n.rotation,null!=e?e:1)}))),this.d(A.calcFlyToParamEvent.don((()=>{ze(t,A.id)}))),this.d(A.calcFlyInParamEvent.don((()=>{const t=e.getCurrentCameraInfo();if(!t)return;const{position:r,rotation:n}=t;A.flyInParam={position:r,rotation:n,flyDuration:1}}))),this.d(e.propChanged.don((e=>{e.objId===A.id&&Object.keys(e.props).forEach((t=>{const r=null===e.props[t]?void 0:e.props[t];A[t]=r}))}))))}}var Qr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Ur extends vr{constructor(A,t){super(A,t);const r=t.viewer;if(!r)return;const n=()=>{A.editing||r.callUeFunc({f:"update",p:{id:A.id,position:A.position,rotation:A.rotation}})},s=this.dv((0,e.createNextAnimateFrameEvent)(A.positionChanged,A.rotationChanged,A.editingChanged));this.d(s.don((()=>{setTimeout(n,0)}))),this.d(A.smoothMoveEvent.don(((e,t)=>{lt(r,A.id,e,t)}))),this.d(A.smoothMoveWithRotationEvent.don(((e,t,n)=>{rt(r,A.id,e,t,n)}))),this.d(A.smoothMoveOnGroundEvent.don(((e,t,n,s)=>{nt(r,A.id,e,t,s,n)}))),this.d(A.smoothMoveWithRotationOnGroundEvent.don(((e,t,n,s,i)=>{st(r,A.id,e,t,n,s,i)}))),this.d(A.smoothMoveKeepPitchEvent.don(((e,t)=>Qr(this,void 0,void 0,(function*(){const n=yield r.callUeFunc({f:"SmoothMoveKeepPitch",p:{id:A.id,Destination:e,Time:t}});n.error&&console.error("SmoothMoveKeepPitch:",n.error)}))))),this.d(A.automaticLandingEvent.don((e=>{const r=[A.position[0],A.position[1]];t.getHeightByLonLat(A.position[0],A.position[1],"Visibility").then((t=>{null!==t&&(A.position=[...r,t],A.collision=e)}))})));const i=(A,e,t,r)=>Qr(this,void 0,void 0,(function*(){const{viewer:n}=A;if(!n)return void console.error("SmoothMoveRelatively: ueViewer.viewer is undefined");const s=yield n.callUeFunc({f:"SmoothMoveRelatively",p:{id:e,RelativePosition:t,Time:r}});return s.error&&console.error("SmoothMoveRelatively:",s.error),s}));this.d(A.smoothMoveRelativelyEvent.don(((e,r)=>{i(t,A.id,e,r)})));const o=(A,e,t,r,n)=>Qr(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:r,Time:n}});return i.error&&console.error("SmoothMoveRelativelyWithRotation:",i.error),i}));this.d(A.smoothMoveRelativelyWithRotationEvent.don(((e,r,n)=>{o(t,A.id,e,r,n)})))}}Ur.forceUeUpdateProps=[...vr.forceUeUpdateProps,"editing"],Ur.propValFuncs=Object.assign({},vr.propValFuncs);class Fr extends vr{constructor(A,t){super(A,t);const r=t.viewer;if(!r)return;const n=()=>{A.editing||r.callUeFunc({f:"update",p:{id:A.id,points:A.points}})},s=this.dv((0,e.createNextAnimateFrameEvent)(A.pointsChanged,A.editingChanged));this.d(s.don((()=>{setTimeout(n,0)})))}}Fr.forceUeUpdateProps=[...vr.forceUeUpdateProps,"editing"],Fr.propValFuncs=Object.assign(Object.assign({},vr.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 yr extends Ur{constructor(A,e){super(A,e),e.viewer&&this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,add:r}=e;A.widgetEvent.emit({type:t,add:r})})))}}class Er extends Ur{constructor(A,e){super(A,e),e.viewer}}Er.propValFuncs=Object.assign(Object.assign({},Ur.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 Sr extends Er{constructor(A,e){super(A,e),e.viewer}}var br,Ir=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const Hr=A=>{switch(A){case 0:return"成功绑定";case 1:return"解绑之前的内容,成功绑定";case 2:return"没搜索到ActorTag,无法绑定";case 3:return"搜索到ActorTag但对应的Actor不是3dTileset,无法绑定";default:return"未知错误"}};class Tr extends A.EngineObject{constructor(t,r){super(t,r),this._styleColor=this.dv((0,e.react)([])),this._styleVisable=this.dv((0,e.react)([]));const n=r.viewer;if(!n)return void console.warn("UeES3DTileset: viewer is undefined!");let s,i;const o=()=>Ir(this,void 0,void 0,(function*(){var e,r;(s||i)&&(yield n.callUeFunc({f:"update",p:{id:t.id,url:t.url,show:t.show,collision:t.collision,allowPicking:t.allowPicking,flyToParam:null!==(e=t.flyToParam)&&void 0!==e?e:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(r=t.flyInParam)&&void 0!==r?r:A.ESVisualObject.defaults.flyInParam,highlightID:t.highlightID,highlightColor:t.highlightColor,highlight:t.highlight,materialMode:t.materialMode,maximumScreenSpaceError:t.maximumScreenSpaceError,colorMode:Reflect.has(t,"colorMode")?t.colorMode:void 0,offset:t.offset,editing:t.editing,rotation:t.rotation,cacheBytes:t.cacheBytes,colorBlendMode:t.colorBlendMode}}))})),a=this.dv((0,e.createNextAnimateFrameEvent)(t.urlChanged,t.showChanged,t.flyToParamChanged,t.flyInParamChanged,t.collisionChanged,t.allowPickingChanged,t.highlightIDChanged,t.highlightColorChanged,t.highlightChanged,t.materialModeChanged,t.maximumScreenSpaceErrorChanged,t.offsetChanged,t.editingChanged,t.rotationChanged,t.cacheBytesChanged,t.colorBlendModeChanged));o(),this.d(a.don(o)),Reflect.has(t,"colorMode")&&this.d(t.colorModeChanged.don((()=>o())));const c=this.dv((0,e.react)(void 0));{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorTagChanged,t.urlChanged)),r=()=>{t.actorTag?c.value={type:"ActorTag",actorTag:t.actorTag}:t.url?c.value={type:"CreatedUrl",url:t.url}:c.value=void 0,t.editing=!1};r(),this.d(A.don(r))}const l=()=>Ir(this,void 0,void 0,(function*(){const{id:A}=t;if(void 0!==s){s=void 0;try{const e=yield r.unBind3DTilesetById(A);if(!e)return;if(""!==e.error)return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${e.error}`)}catch(A){return void console.warn(`UeES3DTileset UnBind3DTilesetById: ${A}`)}}if(void 0!==i){i=void 0;try{const e=yield n.callUeFunc({f:"destroy",p:{id:A}});if(!e)return;if(""!==e.error)return void console.warn(`UeES3DTileset Destroy: ${e.error}`)}catch(A){return void console.warn(`UeES3DTileset Destroy: ${A}`)}}}));this.d((()=>{l()}));{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>Ir(this,void 0,void 0,(function*(){if(void 0!==c.value){if("ActorTag"===c.value.type){const{actorTag:e}=c.value;if(s!==e&&(yield A.promise(l())),void 0!==s)return;if(void 0===e)return;try{s=e;const n=yield A.promise(r.bind3DTilesetByTag(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${n.error}`);if(0===n.re.type);else{if(1!==n.re.type)return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Hr(n.re.type)}`);console.warn(`UeES3DTileset Bind3DTilesetByTag: ${Hr(n.re.type)}`)}}catch(A){return void console.warn(`UeES3DTileset Bind3DTilesetByTag: ${A}`)}}else if("CreatedUrl"===c.value.type){const{url:e}=c.value;if(e!==i&&(yield l()),void 0!==i)return;if(void 0===e)return;try{i=e;const r=yield A.promise(n.callUeFunc({f:"create",p:{type:t.typeName,id:t.id}}));if(!r)return;if(""!==r.error)return void console.warn(`UeES3DTileset create: ${r.error}`)}catch(A){return void console.warn(`UeES3DTileset create: ${A}`)}}yield A.promise(o())}else yield A.promise(l())}))))),a=()=>Ir(this,void 0,void 0,(function*(){A.restart()}));a(),this.d(c.changed.don(a))}this.d(t.refreshTilesetEvent.don((()=>{Ye(n,t.id)}))),this.d(t.flyToEvent.don(((A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const o=yield Je(n,t.id,A);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),t.flyOverEvent.emit(e,a,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{(s||i)&&ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{(s||i)&&A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))}))),this.d(r.objectEvent.don((A=>{(s||i)&&A.id===t.id&&"3DTilesetReady"===A.type&&t.tilesetReady.emit(A.p)})));{const A=(A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const r=yield n.callUeFunc({f:"SetFeatureColor",p:{id:t.id,featureName:A,json:e}});r&&(""===r.error||console.warn(`UeES3DTileset SetFeatureColor: ${r.error}`))})),e=(A,e)=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const r=yield n.callUeFunc({f:"SetFeatureVisable",p:{id:t.id,featureName:A,json:e}});r&&(""===r.error||console.warn(`UeES3DTileset SetFeatureVisable: ${r.error}`))})),r=()=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const A=yield n.callUeFunc({f:"ResetFeatureStyle",p:{id:t.id}});A&&(""===A.error||console.warn(`UeES3DTileset ResetFeatureStyle: ${A.error}`))})),o=A=>Ir(this,void 0,void 0,(function*(){if(!s&&!i)return;const e=yield n.callUeFunc({f:"SetFeatureStyle",p:{id:t.id,json:A}});e&&(""===e.error||console.warn(`UeES3DTileset SetFeatureStyle: ${e.error}`))}));this.d(t.setFeatureColorEvent.don(((e,t)=>{const r=[...this.styleColor,...t];this.styleColor=[...r],A(e,r)}))),this.d(t.setFeatureVisableEvent.don(((A,t)=>{const r=[...this.styleVisable,...t];this.styleVisable=[...r],e(A,r)}))),this.d(t.resetFeatureStyleEvent.don((()=>{r(),this.styleColor=[],this.styleVisable=[]}))),this.d(t.setFeatureStyleEvent.don((A=>{o(A)})))}{const A=()=>Ir(this,void 0,void 0,(function*(){if(s||i)try{const A=yield n.callUeFunc({f:"GetFeatureTable",p:{id:t.id}});""!==A.error&&console.warn(`UeES3DTileset GetFeatureTable: ${A.error}`),t._featureTableResultEvent.emit(A.re.table)}catch(A){console.warn(`UeES3DTileset GetFeatureTable: ${A}`),t._featureTableResultEvent.emit(void 0)}else t._featureTableResultEvent.emit(void 0)}));this.d(t.getFeatureTableEvent.don((()=>{A()})))}}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}}br=Tr,Tr.type=br.register("ESUeViewer",A.ES3DTileset.type,br);var Mr,Lr=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};const xr=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 Dr extends A.EngineObject{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");let s,i;const o=this.dv((0,e.react)(void 0)),a=this.ad((0,e.reactJson)(""));{const e=()=>{if("string"==typeof t.url)a.value=A.ESSceneObject.context.getStrFromEnv(t.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(e.url),a.value=e}};e(),this.ad(t.urlChanged.don(e))}const c=()=>Lr(this,void 0,void 0,(function*(){var e,r,o,c,l,d,u,h,g,B,w,p,C;(s||i)&&(yield n.callUeFunc({f:"update",p:{id:t.id,show:null===(e=t.show)||void 0===e||e,rectangle:null!==(r=t.rectangle)&&void 0!==r?r:[-180,-90,180,90],collision:null===(o=t.collision)||void 0===o||o,allowPicking:null!==(c=t.allowPicking)&&void 0!==c&&c,flyToParam:null!==(l=t.flyToParam)&&void 0!==l?l:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(d=t.flyInParam)&&void 0!==d?d:A.ESVisualObject.defaults.flyInParam,url:null!==(u=a.value)&&void 0!==u?u:"",zIndex:null!==(h=t.zIndex)&&void 0!==h?h:0,maximumLevel:null!==(g=t.maximumLevel)&&void 0!==g?g:A.ESImageryLayer.defaults.maximumLevel,minimumLevel:null!==(B=t.minimumLevel)&&void 0!==B?B:A.ESImageryLayer.defaults.minimumLevel,options:null!==(w=t.options)&&void 0!==w?w:A.ESImageryLayer.defaults.options,targetID:null!==(p=t.targetID)&&void 0!==p?p:A.ESImageryLayer.defaults.targetID,opacity:null!==(C=t.opacity)&&void 0!==C?C:A.ESImageryLayer.defaults.opacity}}))})),l=this.dv((0,e.createNextAnimateFrameEvent)(t.showChanged,a.changed,t.flyToParamChanged,t.flyInParamChanged,t.zIndexChanged,t.collisionChanged,t.allowPickingChanged,t.maximumLevelChanged,t.minimumLevelChanged,t.rectangleChanged,t.optionsChanged,t.targetIDChanged,t.opacityChanged));this.d(l.don(c));const d=()=>Lr(this,void 0,void 0,(function*(){const{id:A}=t;if(void 0!==s){s=void 0;try{const e=yield r.unBindImageryById(A);if(!e)return;if(""!==e.error)return void console.warn(`UeESImageryLayer UnImageryByID: ${e.error}`)}catch(A){return void console.warn(`UeESImageryLayer UnImageryByID promise: ${A}`)}}if(void 0!==i){i=void 0;try{const e=yield n.callUeFunc({f:"destroy",p:{id:A,test:"UeESImageryLayer"}});if(!e)return;if(""!==e.error)return void console.warn(`UeESImageryLayer Destroy: ${e.error}`)}catch(A){return void console.warn(`UeESImageryLayer Destroy promise: ${A}`)}}}));this.d((()=>{d()}));{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>Lr(this,void 0,void 0,(function*(){if(void 0!==o.value){if("ActorTag"===o.value.type){const{actorTag:e,componentTag:n}=o.value;if(s!==e&&(yield A.promise(d())),void 0!==s)return;if(void 0===e)return;try{s=e;const i=yield A.promise(r.bindImageryByTag(t.id,e,n));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: ${xr(i.re.type)}`);console.warn(`ESImageryLayer BindImageryByTag: ${xr(i.re.type)}`)}}catch(A){return void console.warn(`ESImageryLayer BindImageryByTag promise: ${A}`)}}else if("CreatedUrl"===o.value.type){const{url:e}=o.value;if(e!==i&&(yield A.promise(d())),void 0!==i)return;if(void 0===e)return;try{i=e;const r=yield A.promise(n.callUeFunc({f:"create",p:{type:"ESImageryLayer",id:t.id}}));if(!r)return;if(""!==r.error)return void console.warn(`ESImageryLayer create: ${r.error}`)}catch(A){return void console.warn("ESImageryLayer create: create promise error")}}yield A.promise(c())}else yield A.promise(d())}))))),a=()=>Lr(this,void 0,void 0,(function*(){A.restart()}));a(),this.d(o.changed.don(a))}{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorTagChanged,a.changed,t.componentTagChanged)),r=()=>{t.actorTag&&t.componentTag?o.value={type:"ActorTag",actorTag:t.actorTag,componentTag:t.componentTag}:a.value?o.value={type:"CreatedUrl",url:a.value}:o.value=void 0};r(),this.d(A.don(r))}this.d(t.flyToEvent.don(((A,e)=>Lr(this,void 0,void 0,(function*(){if(!s&&!i)return;const o=yield Je(n,t.id,A);let a="over";void 0===o?a="error":0===o.endType?a="over":1===o.endType&&(a="cancelled"),t.flyOverEvent.emit(e,a,r)}))))),this.d(t.flyInEvent.don(((A,e)=>Lr(this,void 0,void 0,(function*(){var o,a;if(!s&&!i)return;const c=yield je(n,t.id,null===(o=t.flyInParam)||void 0===o?void 0:o.position,null===(a=t.flyInParam)||void 0===a?void 0:a.rotation,null!=A?A:1);let l="over";void 0===c?l="error":0===c.endType?l="over":1===c.endType&&(l="cancelled"),t.flyOverEvent.emit(e,l,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{(s||i)&&ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>Lr(this,void 0,void 0,(function*(){if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{(s||i)&&A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))})))}}var Pr,Rr,kr,Kr,Or,Vr,Gr,_r,Nr,Wr,Jr,Xr,zr,Yr,jr,$r,Zr,qr,An,en,tn,rn;Mr=Dr,Dr.type=Mr.register("ESUeViewer",A.ESImageryLayer.type,Mr);class nn extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Pr=nn,nn.type=Pr.register("ESUeViewer",A.ESTerrainLayer.type,Pr),nn.forceUeUpdateProps=[...vr.forceUeUpdateProps,"url"],nn.propValFuncs=Object.assign(Object.assign({},vr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv(e):(e.url=A.ESSceneObject.context.getStrFromEnv(e.url),e),czmMaxzoom:null,czmMinzoom:null});class sn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Rr=sn,sn.type=Rr.register("ESUeViewer",A.ESAlarm.type,Rr);class on extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}kr=on,on.type=kr.register("ESUeViewer",A.ESApertureEffect.type,kr);class an extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Kr=an,an.type=Kr.register("ESUeViewer",A.ESGeoPolygon.type,Kr);class cn extends an{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r,s;let i=A.ESAreaMeasurement.defaults.fillStyle;try{i=Object.assign({},null!==(e=t.fillStyle)&&void 0!==e?e:A.ESAreaMeasurement.defaults.fillStyle)}catch(e){console.error("ESAreaMeasurement fillStyle 属性类型错误!",e),i=Object.assign({},A.ESAreaMeasurement.defaults.fillStyle)}i.materialParams=JSON.stringify(i.materialParams),n.callUeFunc({f:"update",p:{id:t.id,stroked:null!==(r=t.stroked)&&void 0!==r?r:A.ESAreaMeasurement.defaults.stroked,fillStyle:i,filled:null!==(s=t.filled)&&void 0!==s?s:A.ESAreaMeasurement.defaults.filled}}),console.log(i)},i=this.dv((0,e.createNextAnimateFrameEvent)(t.fillStyleChanged,t.strokedChanged,t.filledChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}Or=cn,cn.type=Or.register("ESUeViewer",A.ESAreaMeasurement.type,Or);class ln extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Vr=ln,ln.type=Vr.register("ESUeViewer",A.ESBlastParticleSystem.type,Vr);class dn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Gr=dn,dn.type=Gr.register("ESUeViewer",A.ESBoxClipping.type,Gr);class un extends Ur{constructor(A,e){super(A,e);const t=e.viewer;t?(this.dispose(A.flyInEvent.don((e=>{je(t,A.id,A.position,A.rotation,e)}))),this.dispose(A.resetWithCurrentCameraEvent.don((()=>{tt(t,A.id)}))),this.dispose(A.captureEvent.don(((t,r)=>{e.capture(t,r).then((e=>{e&&(A.thumbnail=e)}))})))):console.warn("viewer is undefined!")}}_r=un,un.type=_r.register("ESUeViewer",A.ESCameraView.type,_r);class hn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Nr=hn,hn.type=Nr.register("ESUeViewer",A.ESCameraVisibleRange.type,Nr);class gn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wr=gn,gn.type=Wr.register("ESUeViewer",A.ESCar.type,Wr);class Bn extends Fr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r;let s=A.ESClassification.defaults.fillStyle;try{s=Object.assign({},null!==(e=t.fillStyle)&&void 0!==e?e:A.ESClassification.defaults.fillStyle)}catch(e){console.error("ESClassification fillStyle 属性类型错误!",e),s=Object.assign({},A.ESClassification.defaults.fillStyle)}s.materialParams=JSON.stringify(s.materialParams),n.callUeFunc({f:"update",p:{id:t.id,filled:null!==(r=t.filled)&&void 0!==r?r:A.ESClassification.defaults.filled,fillStyle:s}})},i=this.dv((0,e.createNextAnimateFrameEvent)(t.fillStyleChanged,t.filledChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}Jr=Bn,Bn.type=Jr.register("ESUeViewer",A.ESClassification.type,Jr);class wn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Xr=wn,wn.type=Xr.register("ESUeViewer",A.ESClippingPlane.type,Xr);class pn extends Ur{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=this.ad((0,e.reactJson)(""));{const e=()=>{var e,r;if("string"==typeof t.url)s.value=A.ESSceneObject.context.getStrFromEnv(null!==(e=t.url)&&void 0!==e?e:A.ESDataMesh.defaults.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(null!==(r=e.url)&&void 0!==r?r:A.ESDataMesh.defaults.url),s.value=e}};e(),this.ad(t.urlChanged.don(e))}const i=()=>{var e,r,i,o,a;const c=null!==(e=t.colorStops)&&void 0!==e?e:A.ESDataMesh.defaults.colorStops;n.callUeFunc({f:"update",p:{id:t.id,url:null!==(r=s.value)&&void 0!==r?r:A.ESDataMesh.defaults.url,currentTime:null!==(i=t.currentTime)&&void 0!==i?i:A.ESDataMesh.defaults.currentTime,minPropValue:null!==(o=t.minPropValue)&&void 0!==o?o:A.ESDataMesh.defaults.minPropValue,maxPropValue:null!==(a=t.maxPropValue)&&void 0!==a?a:A.ESDataMesh.defaults.maxPropValue,colorStops:JSON.stringify(c)}})},o=this.dv((0,e.createNextAnimateFrameEvent)(s.changed,t.currentTimeChanged,t.minPropValueChanged,t.maxPropValueChanged,t.colorStopsChanged));this.d(o.don(i)),this.d(t.createdEvent.don(i))}}zr=pn,pn.type=zr.register("ESUeViewer",A.ESDataMesh.type,zr);class Cn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yr=Cn,Cn.type=Yr.register("ESUeViewer",A.ESDatasmithRuntimeModel.type,Yr);class mn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}jr=mn,mn.type=jr.register("ESUeViewer",A.ESDirectionMeasurement.type,jr);class fn extends Fr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e;let r;try{r=Object.assign({},null!==(e=t.strokeStyle)&&void 0!==e?e:A.ESDistanceMeasurement.defaults.strokeStyle)}catch(e){console.error("ESDistanceMeasurement strokeStyle 属性类型错误!",e),r=Object.assign({},A.ESDistanceMeasurement.defaults.strokeStyle)}n.callUeFunc({f:"update",p:{id:t.id,strokeStyle:r}})},i=this.dv((0,e.createNextAnimateFrameEvent)(t.strokeStyleChanged));this.d(i.don(s)),this.d(t.createdEvent.don(s))}}$r=fn,fn.type=$r.register("ESUeViewer",A.ESDistanceMeasurement.type,$r);class vn extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zr=vn,vn.type=Zr.register("ESUeViewer",A.ESLocalPolygon.type,Zr);class Qn extends vn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}qr=Qn,Qn.type=qr.register("ESUeViewer",A.ESDynamicWater.type,qr);class Un extends vr{constructor(A,e){super(A,e),e.viewer?this.d(e.widgetEvent.don((e=>{if(e.objId!==A.id)return;const{type:t,properties:r}=e;A.widgetEvent.emit({type:t,properties:r})}))):console.warn("viewer is undefined!")}}An=Un,Un.type=An.register("ESUeViewer",A.ESEntityCluster.type,An);class Fn extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}en=Fn,Fn.type=en.register("ESUeViewer",A.ESExcavate.type,en);class yn extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}tn=yn,yn.type=tn.register("ESUeViewer",A.ESFireParticleSystem.type,tn);class En extends vr{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=this.ad((0,e.reactJson)(""));{const e=()=>{if("string"==typeof t.url)s.value=A.ESSceneObject.context.getStrFromEnv(t.url);else{const e=t.url;e.url=A.ESSceneObject.context.getStrFromEnv(e.url),s.value=e}};e(),this.ad(t.urlChanged.don(e))}const i=()=>{var e,r,i,o,a,c,l,d;n.callUeFunc({f:"update",p:{id:t.id,url:null!==(e=s.value)&&void 0!==e?e:A.ESForestTileset.defaults.url,treeTypes:null!==(r=t.treeTypes)&&void 0!==r?r:A.ESForestTileset.defaults.treeTypes,xiaoBanWidget:null!==(i=t.xiaoBanWidget)&&void 0!==i?i:A.ESForestTileset.defaults.xiaoBanWidgetDefault,youShiSZ:null!==(o=t.youShiSZ)&&void 0!==o?o:A.ESForestTileset.defaults.youShiSZ,diLei:null!==(a=t.diLei)&&void 0!==a?a:A.ESForestTileset.defaults.diLei,senLinLB:null!==(c=t.senLinLB)&&void 0!==c?c:A.ESForestTileset.defaults.senLinLB,labelMaterial:null!==(l=t.labelMaterial)&&void 0!==l?l:A.ESForestTileset.defaults.labelMaterial,heightOffset:null!==(d=t.heightOffset)&&void 0!==d?d:A.ESForestTileset.defaults.heightOffset}})},o=this.dv((0,e.createNextAnimateFrameEvent)(s.changed,t.treeTypesChanged,t.xiaoBanWidgetChanged,t.youShiSZChanged,t.diLeiChanged,t.senLinLBChanged,t.labelMaterialChanged,t.heightOffsetChanged));this.d(o.don(i)),this.d(t.createdEvent.don(i))}}rn=En,En.type=rn.register("ESUeViewer",A.ESForestTileset.type,rn);var Sn,bn,In,Hn,Tn,Mn,Ln,xn=t(440),Dn=t.n(xn);class Pn extends A.EngineObject{constructor(t,r){super(t,r),this._imageLabel=this.dv(new A.ESImageLabel(`${this.id}_ESImageLabel`)),this._hasClassDivAndPos={};const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");t.mainClass=this._imageLabel;const s=this._imageLabel;r.add(s),this.d((()=>r.delete(s)));{const i=()=>{var e;if(!n)return;if(!t.instanceClass)throw new Error("!sceneObject.instanceClass");const i=document.createElement("div"),o=this.dv(new t.instanceClass(i,t,r))._container;if(o.style.opacity=null!==(e=t.opacity.toString())&&void 0!==e?e:A.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]}}Dn()(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),s.url=A.toDataURL(),s.show=t.show})).catch((()=>{document.body.contains(o)&&document.body.removeChild(o)}))},o=()=>{try{t.instanceClass?i():(s.url="",s.show=!1)}catch(A){console.error(A)}};o();const a=this.dv((0,e.createNextAnimateFrameEvent)(t.instanceClassChanged,t.opacityChanged));this.d(a.don(o))}{const A=()=>{s.show=t.show};s.show=!1,this.ad(t.showChanged.don(A))}this.d((0,e.track)([s,"anchor"],[t,"anchor"])),this.d((0,e.bind)([s,"editing"],[t,"editing"])),this.d((0,e.bind)([s,"position"],[t,"position"])),this.d((0,e.bind)([s,"rotation"],[t,"rotation"])),this.d((0,e.bind)([s,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([s,"flyInParam"],[t,"flyInParam"])),this.d((0,e.bind)([s,"allowPicking"],[t,"allowPicking"])),this.d((0,e.bind)([s,"scale"],[t,"scale"])),this.d((0,e.track)([s,"minVisibleDistance"],[t,"minVisibleDistance"])),this.d((0,e.track)([s,"maxVisibleDistance"],[t,"maxVisibleDistance"])),this.ad(t.automaticLandingEvent.don((()=>{s.automaticLanding()}))),this.d(s.pickedEvent.don((A=>{var e;null!==(e=t.allowPicking)&&void 0!==e&&e&&t.pickedEvent.emit(A)}))),this.d(r.widgetEvent.don((A=>{if(A.objId!==this._imageLabel.id)return;const{type:e,add:r}=A;if("leftClick"===e){const A=Object.keys(this._hasClassDivAndPos);for(let e=0;e<A.length;e++){const t=A[e];let n=this._hasClassDivAndPos[t];if(r&&r.mouseRelativePos&&r.mouseRelativePos[0]>=n[0]&&r.mouseRelativePos[0]<=n[2]&&r.mouseRelativePos[1]>=n[1]&&r.mouseRelativePos[1]<=n[3]){r.className=t;break}}}t.widgetEvent.emit({type:e,add:r})}))),this.d(t.calcFlyToParamEvent.don((()=>{ze(n,s.id)}))),this.d(t.calcFlyInParamEvent.don((()=>{const A=r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))),this.d(t.smoothMoveEvent.don(((A,e)=>{lt(n,s.id,A,e)}))),this.d(t.smoothMoveWithRotationEvent.don(((A,e,t)=>{rt(n,s.id,A,e,t)}))),this.d(t.smoothMoveOnGroundEvent.don(((A,e,t,r)=>{nt(n,s.id,A,e,r,t)}))),this.d(t.smoothMoveWithRotationOnGroundEvent.don(((A,e,t,r,i)=>{st(n,s.id,A,e,t,r,i)}))),this.d(t.flyToEvent.don(((A,e)=>{s.flyTo(A)}))),this.d(t.flyInEvent.don((A=>{s.flyIn(A)})))}}Sn=Pn,Pn.type=Sn.register("ESUeViewer",A.ESGeoDiv.type,Sn);class Rn extends vr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.flyToFeatureIndexEvent.don(((e,r)=>{t.callUeFunc({f:"flyToFeatureIndex",p:{id:A.id,index:e,duration:r}})}))),this.d(A.flyToFeatureEvent.don(((e,r,n)=>{t.callUeFunc({f:"flyToFeature",p:{id:A.id,key:e,value:r,duration:n}})})))):console.warn("viewer is undefined!")}}bn=Rn,Rn.type=bn.register("ESUeViewer",A.ESGeoJson.type,bn);class kn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}In=kn,kn.type=In.register("ESUeViewer",A.ESGeoLineString.type,In);class Kn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Hn=Kn,Kn.type=Hn.register("ESUeViewer",A.ESGeoRectangle.type,Hn);class On extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Tn=On,On.type=Tn.register("ESUeViewer",A.ESGeoWater.type,Tn);class Vn extends Ur{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.setNodePositionEvent.don(((e,r)=>{ut(t,A.id,e,r)}))),this.d(A.setNodeRotationEvent.don(((e,r)=>{ht(t,A.id,e,r)}))),this.d(A.setNodeScaleEvent.don(((e,r)=>{gt(t,A.id,e,r)})))):console.warn("viewer is undefined!")}}Mn=Vn,Vn.forceUeUpdateProps=[...Ur.forceUeUpdateProps,"url"],Vn.propValFuncs=Object.assign(Object.assign({},Ur.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e)):(e.url=A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e.url)),e),czmMaximumScale:null,czmMinimumPixelSize:null,czmNativeScale:null,czmColor:null}),Vn.type=Mn.register("ESUeViewer",A.ESGltfModel.type,Mn);class Gn extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Ln=Gn,Gn.type=Ln.register("ESUeViewer",A.ESHeightMeasurement.type,Ln);var _n,Nn,Wn,Jn,Xn,zn,Yn,jn,$n,Zn,qn,As,es=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class ts extends Ur{constructor(A,e){if(super(A,e),!e.viewer)return void console.warn("viewer is undefined!");const t=(A,e,t,r)=>es(this,void 0,void 0,(function*(){const{viewer:n}=A;if(!n)return void console.error("AIMoveTo: ueViewer.viewer is undefined");const s=yield n.callUeFunc({f:"AIMoveTo",p:{id:e,Destination:t,Time:r}});return s.error&&console.error("AIMoveTo:",s.error),s}));this.d(A.aiMoveToEvent.don(((r,n)=>{t(e,A.id,r,n)})));const r=(A,e)=>es(this,void 0,void 0,(function*(){const{viewer:t}=A;if(!t)return void console.error("StopAIMove: ueViewer.viewer is undefined");const r=yield t.callUeFunc({f:"StopAIMove",p:{id:e}});return r.error&&console.error("StopAIMove:",r.error),r}));this.d(A.stopAIMoveEvent.don((()=>{r(e,A.id)})))}}_n=ts,ts.type=_n.register("ESUeViewer",A.ESHuman.type,_n);class rs extends yr{constructor(A,e){super(A,e),e.viewer?A.anchor=[.5,1]:console.warn("viewer is undefined!")}}Nn=rs,rs.type=Nn.register("ESUeViewer",A.ESImageLabel.type,Nn),rs.forceUeUpdateProps=[...yr.forceUeUpdateProps,"url"],rs.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e)):(e.url=A.ESSceneObject.context.getStrFromEnv((0,A.rpToap)(e.url)),e)});class ns extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Wn=ns,ns.type=Wn.register("ESUeViewer",A.ESLevelRuntimeModel.type,Wn);class ss extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Jn=ss,ss.type=Jn.register("ESUeViewer",A.ESLocalCircle.type,Jn);class is extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Xn=is,is.type=Xn.register("ESUeViewer",A.ESLocalPolygonZ.type,Xn);class os extends Sr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}zn=os,os.type=zn.register("ESUeViewer",A.ESLocalRectangle.type,zn);class as extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Yn=as,as.type=Yn.register("ESUeViewer",A.ESLocalSkyBox.type,Yn);class cs extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}jn=cs,cs.type=jn.register("ESUeViewer",A.ESLocationMeasurement.type,jn);class ls extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}$n=ls,ls.type=$n.register("ESUeViewer",A.ESPipeFence.type,$n);class ds extends kn{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Zn=ds,ds.type=Zn.register("ESUeViewer",A.ESPipeline.type,Zn);class us extends Tr{constructor(A,e){super(A,e);const t=e.viewer;t?(this.d(A.highlightFeatureEvent.don((e=>{const r="number"==typeof e?e.toString():e;it(t,A.id,r)}))),this.d(A.highlightFeatureAndFlyToEvent.don(((e,r,n,s)=>{const i="number"==typeof e?e.toString():e;ot(t,A.id,i,null!=s?s:1)}))),this.d(A.setLayerVisibleEvent.don(((e,r)=>{let n="";n="string"!=typeof r?JSON.stringify(r):r,at(t,A.id,n)}))),this.d(A.setLayerColorEvent.don(((e,r)=>{let n="";n="string"!=typeof r?JSON.stringify(r):r,ct(t,A.id,n)})))):console.warn("viewer is undefined!")}}qn=us,us.type=qn.register("ESUeViewer",A.ESPipeserTileset.type,qn);class hs extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}As=hs,hs.type=As.register("ESUeViewer",A.ESPit.type,As);var gs,Bs,ws,ps,Cs,ms,fs,vs,Qs,Us,Fs,ys,Es;class Ss extends yr{constructor(A,e){super(A,e);const t=e.viewer;t?this.ad(A.getInitialStyleEvent.don((()=>function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.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!")}}gs=Ss,Ss.type=gs.register("ESUeViewer",A.ESPoi2D.type,gs);class bs extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Bs=bs,bs.type=Bs.register("ESUeViewer",A.ESPoi3D.type,Bs);class Is extends vr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ws=Is,Is.type=ws.register("ESUeViewer",A.ESPoiTileset.type,ws),Is.forceUeUpdateProps=[...vr.forceUeUpdateProps,"url"],Is.propValFuncs=Object.assign(Object.assign({},vr.propValFuncs),{url:e=>"string"==typeof e?A.ESSceneObject.context.getStrFromEnv(e):(e.url=A.ESSceneObject.context.getStrFromEnv(e.url),e)});class Hs extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ps=Hs,Hs.type=ps.register("ESUeViewer",A.ESPolygonFence.type,ps);class Ts extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Cs=Ts,Ts.type=Cs.register("ESUeViewer",A.ESPolygonFlattenedPlane.type,Cs);class Ms extends an{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ms=Ms,Ms.type=ms.register("ESUeViewer",A.ESPolygonWithHole.type,ms);class Ls extends fr{constructor(A,t){if(super(A,t),t.viewer){this.d(A.highlightInner3DtilesetEvent.don((A=>{A.highlight=!0}))),this.d(A.removeHighlightInner3DtilesetEvent.don((A=>{A.highlight=!1})));{const t=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]]},r=()=>{const e=A.layerConfig;if(!e)return;const r=[];e.forEach((A=>{var e;r.push({condition:[{field:"layer",op:"==",value:A.layer},{field:"dataset",op:"==",value:A.dataset}],color:t(null!==(e=A.value.color)&&void 0!==e?e:"rgb(255,255,255)"),show:A.value.visible})})),A.setFeatureStyle(r)};r();const n=this.dv((0,e.createNextAnimateFrameEvent)(A.layerConfigChanged));this.d(n.don((()=>{r()})))}}else console.warn("viewer is undefined!")}}fs=Ls,Ls.type=fs.register("ESUeViewer",A.ESRtsTileset.type,fs);class xs extends vr{constructor(e,t){super(e,t),t.viewer?(this.d(e.addTreesEvent.don((r=>{(0,A.addTreesCallFunc)(t,e.id,r)}))),this.d(e.removeAllTreesEvent.don((()=>{(0,A.removeAllTreesCallFunc)(t,e.id)}))),this.d(e.updateTreeParamsEvent.don((r=>{(0,A.updateTreeParamsCallFunc)(t,e.id,r)}))),this.d(e.cutDownTreesEvent.don(((r,n)=>{(0,A.cutDownTreesCallFunc)(t,e.id,r,n)}))),this.d(e.growthSimulationEvent.don(((r,n,s)=>{(0,A.growthSimulationCallFunc)(t,e.id,r,n,s)})))):console.warn("viewer is undefined!")}}vs=xs,xs.type=vs.register("ESUeViewer",A.ESSeparateFoliage.type,vs);class Ds extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Qs=Ds,Ds.type=Qs.register("ESUeViewer",A.ESSubmergingAnalysis.type,Qs);class Ps extends an{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!")}}Us=Ps,Ps.type=Us.register("ESUeViewer",A.ESSunshineAnalysis.type,Us);class Rs extends an{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!")}}Fs=Rs,Rs.type=Fs.register("ESUeViewer",A.ESSurfaceAreaMeasurement.type,Fs);class ks extends yr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ys=ks,ks.type=ys.register("ESUeViewer",A.ESTextLabel.type,ys);class Ks extends yr{constructor(A,e){super(A,e);const t=e.viewer;t?this.d(A.callFunctionEvent.don(((e,r)=>{dt(t,A.id,e,r)}))):console.warn("viewer is undefined!")}}Es=Ks,Ks.type=Es.register("ESUeViewer",A.ESUEWidget.type,Es),Ks.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});const Os=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 Vs,Gs,_s,Ns,Ws,Js,Xs,zs=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Ys extends A.EngineObject{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn(`${t.id} UeESUnrealActor viewer is undefined!`);this.d((()=>{Xe(n,t.id)}));const s=()=>zs(this,void 0,void 0,(function*(){var e,r;l()||(yield n.callUeFunc({f:"update",p:{id:t.id,name:t.name,show:t.show,rotation:t.rotation,flyToParam:null!==(e=t.flyToParam)&&void 0!==e?e:A.ESVisualObject.defaults.flyToParam,flyInParam:null!==(r=t.flyInParam)&&void 0!==r?r:A.ESVisualObject.defaults.flyInParam,editing:t.editing,highlight:t.highlight,collision:t.collision,scale:t.scale,minVisibleDistance:t.minVisibleDistance,maxVisibleDistance:t.maxVisibleDistance}}))})),i=this.dv((0,e.createNextAnimateFrameEvent)(t.showChanged,t.nameChanged,t.rotationChanged,t.editingChanged,t.flyToParamChanged,t.flyInParamChanged,t.highlightChanged,t.collisionChanged,t.scaleChanged,t.minVisibleDistanceChanged,t.maxVisibleDistanceChanged));let o,a;this.d(i.don(s)),this.d(t.flushEvent.don((()=>i.flush())));const c=()=>zs(this,void 0,void 0,(function*(){var A;l()||(yield n.callUeFunc({f:"update",p:{id:t.id,position:t.position}}),null!==(A=r.debug)&&void 0!==A&&A&&console.log(`updatePostion:${t.position},actorTag:${t.actorTag},actorClass:${t.actorClass}`))})),l=()=>!o&&!a&&(console.warn(`${t.id} 未绑定ActorTag或未创建ActorClass!`),!0),d=()=>zs(this,void 0,void 0,(function*(){const{id:A}=t,e=yield r.unBindActorByID(A);e&&""!==e.error&&console.warn(`${t.id} UeESUnrealActor UnBindActorByID: ${e.error}`),o=void 0;const s=yield n.callUeFunc({f:"destroy",p:{id:A}});s&&""!==s.error?console.warn(`${t.id} UeESUnrealActor DestroyActorByID: ${s.error}`):a=void 0})),u=this.dv((0,e.react)({type:"ActorClass",actorClass:"default"}));{const A=this.dv((0,e.createNextAnimateFrameEvent)(t.actorClassChanged,t.actorTagChanged)),r=()=>zs(this,void 0,void 0,(function*(){""!==t.actorTag?u.value={type:"ActorTag",actorTag:t.actorTag}:u.value={type:"ActorClass",actorClass:""===t.actorClass?"default":t.actorClass}}));r(),this.d(A.don(r)),this.d(t.flushEvent.don((()=>A.flush())))}{const A=this.dv((0,e.createProcessingFromAsyncFunc)((A=>zs(this,void 0,void 0,(function*(){if(yield A.promise(d()),"ActorTag"===u.value.type){const{actorTag:e}=u.value;yield A.promise(d());try{t.lastActorStatus="null";const n=yield A.promise(r.bindActorByTag(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`${t.id} UeESUnrealActor BindActorByTag:${e},${n.error}`);if(0===n.re.type)t.lastActorStatus="bound",o=e;else{if(1!==n.re.type)return o=void 0,void console.warn(`${t.id} UeESUnrealActor BindActorByTag error:${e}, ${Os(n.re.type)}`);t.lastActorStatus="bound",o=e,console.warn(`${t.id} UeESUnrealActor BindActorByTag:${e},${Os(n.re.type)}`)}}catch(A){return void console.warn(`${t.id} UeESUnrealActor BindActorByTag catch error:${e}, ${A}`)}}else if("ActorClass"===u.value.type){const{actorClass:e}=u.value;try{const n=yield A.promise(r.createActorByClass(t.id,e));if(!n)return;if(""!==n.error)return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error :${e}, ${n.error}`);if(0!==n.re.type)return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error type :${e},${(A=>{switch(A){case 0:return"创建成功";case 1:return"未找到对应的资源,无法创建";case 2:return"Id与场景中现有的ActorTag重复,创建后可能出现问题,创建失败";default:return"未知错误"}})(n.re.type)}`);t.lastActorStatus="created",a=e}catch(A){return void console.warn(`${t.id} UeESUnrealActor CreateActorByClass error catch :${e}, ${JSON.stringify(A)}`)}}yield A.promise(s()),yield A.promise(c())}))))),n=()=>zs(this,void 0,void 0,(function*(){A.restart()}));n(),this.d(u.changed.don(n))}this.d(t.positionChanged.don(c)),this.d(t.callFunctionEvent.don(((A,e)=>{l()||dt(n,t.id,A,e)}))),this.d(t.smoothMoveEvent.don(((A,e)=>{l()||lt(n,t.id,A,e)}))),this.d(t.smoothMoveWithRotationEvent.don(((A,e,r)=>{l()||rt(n,t.id,A,e,r)}))),this.d(t.smoothMoveOnGroundEvent.don(((A,e,r,s)=>{l()||nt(n,t.id,A,e,s,r)}))),this.d(t.smoothMoveWithRotationOnGroundEvent.don(((A,e,r,s,i)=>{l()||st(n,t.id,A,e,r,s,i)}))),this.d(t.automaticLandingEvent.don((A=>{if(l())return;const e=[t.position[0],t.position[1]];r.getHeightByLonLat(t.position[0],t.position[1],"Visibility").then((r=>{null!==r&&(t.position=[...e,r],t.collision=A)}))}))),this.d(t.flyToEvent.don(((A,e)=>zs(this,void 0,void 0,(function*(){if(l())return;const s=yield Je(n,t.id,A);let i="over";void 0===s?i="error":0===s.endType?i="over":1===s.endType&&(i="cancelled"),t.flyOverEvent.emit(e,i,r)}))))),this.d(t.calcFlyToParamEvent.don((()=>{l()||ze(n,t.id)}))),this.d(t.calcFlyInParamEvent.don((()=>zs(this,void 0,void 0,(function*(){if(!r.actived)return;const A=yield r.getCurrentCameraInfo();if(!A)return;const{position:e,rotation:n}=A;t.flyInParam={position:e,rotation:n,flyDuration:1}}))))),this.d(r.propChanged.don((A=>{l()||A.objId===t.id&&Object.keys(A.props).forEach((e=>{const r=null===A.props[e]?void 0:A.props[e];t[e]=r}))})))}}Vs=Ys,Ys.type=Vs.register("ESUeViewer",A.ESUnrealActor.type,Vs);class js extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Gs=js,js.type=Gs.register("ESUeViewer",A.ESVideoFusion.type,Gs);class $s extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}_s=$s,$s.type=_s.register("ESUeViewer",A.ESViewShed.type,_s);class Zs extends Fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is underfined!")}}Ns=Zs,Zs.type=Ns.register("ESUeViewer",A.ESVisibilityAnalysis.type,Ns);class qs extends an{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!")}}Ws=qs,qs.type=Ws.register("ESUeViewer",A.ESVolumeMeasurement.type,Ws);class Ai extends yr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}Js=Ai,Ai.type=Js.register("ESUeViewer",A.ESWidget.type,Js),Ai.propValFuncs=Object.assign(Object.assign({},yr.propValFuncs),{info:A=>JSON.stringify(null!=A?A:{})});class ei extends A.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!")}}Xs=ei,ei.type=Xs.register("ESUeViewer",A.ESHumanPoi.type,Xs);var ti,ri,ni=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};A.ESSceneObject.context.getStrFromEnv(A.ESNavigator.defaults.imgUrl);class si extends A.EngineObject{constructor(t,r){if(super(t,r),!r.viewer)return void console.warn("viewer is undefined!");const n=this.disposeVar(new A.ESCustomDiv);r.add(n),this.dispose((()=>r.delete(n))),this.dispose((0,e.track)([n,"show"],[t,"show"])),n.instanceClass=class extends e.Destroyable{constructor(e,n,s){super(),this._subContainer=e;const i=document.createElement("div");this._subContainer.appendChild(i),this.dispose((()=>this._subContainer.removeChild(i)));{const A=()=>ni(this,void 0,void 0,(function*(){const A=yield r.getCurrentCameraInfo(),e=null==A?void 0:A.position,t=[...null==A?void 0:A.rotation];t[0]=360,r.flyIn(e,t)}));i.addEventListener("click",A),i.style.cursor="pointer",this.dispose((()=>i.removeEventListener("click",A)))}{const e=()=>{i.style.width=`${t.cssSize?t.cssSize:A.ESNavigator.defaults.cssSize}px`,i.style.height=`${t.cssSize?t.cssSize:A.ESNavigator.defaults.cssSize}px`};e(),t.dispose(t.cssSizeChanged.disposableOn(e))}i.style.position="fixed";{const e=()=>{i.style.top=`${t.cssPosition?t.cssPosition[0]:A.ESNavigator.defaults.cssPosition[0]}px`,i.style.right=`${t.cssPosition?t.cssPosition[1]:A.ESNavigator.defaults.cssPosition[1]}px`};e(),t.dispose(t.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 A=()=>a.src=t.imgUrl;A(),t.dispose(t.imgUrlChanged.disposableOn(A))}{const A=()=>{const A=-r.getCurrentCameraInfo().rotation[0];a.style.transform=`rotate(${A}deg)`};let e;const n=()=>ni(this,void 0,void 0,(function*(){A(),t.show?(i.style.display="block",e=setInterval((()=>{A()}),1e3)):(i.style.display="none",clearInterval(e))}));this.dispose(t.showChanged.disposableOn(n)),n(),this.dispose((()=>clearInterval(e)))}a.style.transformOrigin="50% 50%"}}}}ti=si,si.type=ti.register("ESUeViewer",A.ESNavigator.type,ti);class ii extends Fr{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!")}}ri=ii,ii.type=ri.register("ESUeViewer",A.ESPath.type,ri),ii.forceUeUpdateProps=[...Fr.forceUeUpdateProps],ii.propValFuncs=Object.assign(Object.assign({},Fr.propValFuncs),{materialMode:null});var oi,ai,ci,li,di,ui,hi,gi=function(A,e,t,r){return new(t||(t=Promise))((function(n,s){function i(A){try{a(r.next(A))}catch(A){s(A)}}function o(A){try{a(r.throw(A))}catch(A){s(A)}}function a(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(i,o)}a((r=r.apply(A,e||[])).next())}))};class Bi extends A.EngineObject{constructor(t,r){if(super(t,r),!r.viewer)return void console.warn("viewer is undefined!");const n=this.disposeVar(new A.ESCustomDiv);r.add(n),this.dispose((()=>r.delete(n))),n.instanceClass=class extends e.Destroyable{constructor(e,n,s){if(super(),this._subContainer=e,!s)return;if(!(s instanceof mr))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=`${A.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=`${A.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){gi(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,r;i.style.height=(null!==(e=t.height)&&void 0!==e?e:A.ESViewerStatusBar.defaults.height)+"px",i.style.lineHeight=(null!==(r=t.height)&&void 0!==r?r:A.ESViewerStatusBar.defaults.height)+"px"};this.dispose(t.heightChanged.disposableOn(e)),e()}{const e=()=>{var e;i.style.fontSize=(null!==(e=t.fontSize)&&void 0!==e?e:A.ESViewerStatusBar.defaults.fontSize)+"px"};this.dispose(t.fontSizeChanged.disposableOn(e)),e()}{const e=()=>{t.bgColor?i.style.background=`rgba(${255*t.bgColor[0]},${255*t.bgColor[1]},${255*t.bgColor[2]},${t.bgColor[3]})`:i.style.background=`rgba(${A.ESViewerStatusBar.defaults.bgColor[0]},${A.ESViewerStatusBar.defaults.bgColor[1]},${A.ESViewerStatusBar.defaults.bgColor[2]},${A.ESViewerStatusBar.defaults.bgColor[3]})`};this.dispose(t.bgColorChanged.disposableOn(e)),e()}s.getVersion().then((A=>{A&&(l.innerText=`Ue 版本 : ${A[0]} `)})).catch((A=>{console.log(A)}));{const A=()=>{let A="",e="";A+=`帧率:${s.getFPS().toFixed(0)}FPS`,a.innerText=A;const t=r.getCurrentCameraInfo();A+=` 经度: ${t.position[0].toFixed(5)}° 纬度: ${t.position[1].toFixed(5)}° 高度: ${t.position[2].toFixed(2)}米 偏航角: ${t.rotation[0].toFixed(2)}° 俯仰角: ${t.rotation[1].toFixed(2)}° 翻滚角:${t.rotation[2].toFixed(2)}° `,a.innerText=A,r.pick().then((A=>{if(A){const{pickResult:t}=A;if(t&&t.position){const{position:A}=t;e+=`鼠标位置:${A[0].toFixed(5)}° ${A[1].toFixed(5)}° ${A[2].toFixed(2)}m`}else e+="暂时无法获取鼠标位置...";c.innerText=e}})).catch((A=>{console.log(A)}))};let e;const n=()=>gi(this,void 0,void 0,(function*(){A(),t.show?(i.style.display="flex",e=setInterval((()=>{A()}),1e3)):(i.style.display="none",clearInterval(e))}));this.dispose(t.showChanged.disposableOn(n)),n(),this.dispose((()=>clearInterval(e)))}}}}}oi=Bi,Bi.type=oi.register("ESUeViewer",A.ESViewerStatusBar.type,oi);class wi extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}ai=wi,wi.type=ai.register("ESUeViewer",A.ESGaussianSplatting.type,ai);class pi extends fr{get es3DTileset(){return this._es3DTileset}constructor(t,r){if(super(t,r),this._es3DTileset=this.dv(new A.ES3DTileset(`${this.sceneObject.id}_ES3DTileset`)),r.viewer){t.mainClass=this._es3DTileset;{const A=this._es3DTileset;r.add(A),this.dispose((()=>r.delete(A))),this.d((0,e.track)([A,"allowPicking"],[t,"allowPicking"])),this.d((0,e.track)([A,"collision"],[t,"collision"])),this.d((0,e.bind)([A,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([A,"flyToParam"],[t,"flyToParam"])),this.d((0,e.bind)([A,"editing"],[t,"editing"])),this.d((0,e.track)([A,"url"],[t,"url"])),this.d((0,e.track)([A,"actorTag"],[t,"actorTag"])),this.d((0,e.track)([A,"materialMode"],[t,"materialMode"])),this.d((0,e.track)([A,"highlight"],[t,"highlight"])),this.d((0,e.track)([A,"maximumScreenSpaceError"],[t,"maximumScreenSpaceError"])),this.d((0,e.track)([A,"highlightID"],[t,"highlightID"])),this.d((0,e.track)([A,"highlightColor"],[t,"highlightColor"])),this.d((0,e.bind)([A,"offset"],[t,"offset"])),this.d((0,e.bind)([A,"rotation"],[t,"rotation"])),this.d((0,e.track)([A,"czmImageBasedLightingFactor"],[t,"czmImageBasedLightingFactor"])),this.d((0,e.track)([A,"czmLuminanceAtZenith"],[t,"czmLuminanceAtZenith"])),this.d((0,e.track)([A,"czmMaximumMemoryUsage"],[t,"czmMaximumMemoryUsage"])),this.d((0,e.track)([A,"czmClassificationType"],[t,"czmClassificationType"])),this.d((0,e.track)([A,"czmStyleJson"],[t,"czmStyleJson"])),this.d((0,e.track)([A,"czmBackFaceCulling"],[t,"czmBackFaceCulling"])),this.d((0,e.track)([A,"czmDebugShowBoundingVolume"],[t,"czmDebugShowBoundingVolume"])),this.d((0,e.track)([A,"czmDebugShowContentBoundingVolume"],[t,"czmDebugShowContentBoundingVolume"])),this.d((0,e.track)([A,"colorBlendMode"],[t,"colorBlendMode"])),this.d((0,e.track)([A,"cacheBytes"],[t,"cacheBytes"])),this.d((0,e.track)([A,"clippingPlaneEnabled"],[t,"clippingPlaneEnabled"])),this.d((0,e.track)([A,"unionClippingRegions"],[t,"unionClippingRegions"])),this.d((0,e.track)([A,"clippingPlaneEdgeColor"],[t,"clippingPlaneEdgeColor"])),this.d((0,e.track)([A,"clippingPlaneEdgeWidth"],[t,"clippingPlaneEdgeWidth"])),this.d((0,e.track)([A,"materialParams"],[t,"materialParams"])),this.d((0,e.bind)([A,"supportEdit"],[t,"supportEdit"])),this.d((0,e.bind)([A,"clippingPlanesId"],[t,"clippingPlanesId"])),this.d((0,e.bind)([A,"clippingPlaneIds"],[t,"clippingPlaneIds"])),this.d((0,e.bind)([A,"flattenedPlaneId"],[t,"flattenedPlaneId"])),this.d((0,e.bind)([A,"flattenedPlaneEnabled"],[t,"flattenedPlaneEnabled"])),this.d((0,e.bind)([A,"clippingPlaneId"],[t,"clippingPlaneId"])),this.d((0,e.bind)([A,"excavateId"],[t,"excavateId"]))}{const A=this._es3DTileset;this.d(t.refreshTilesetEvent.don((()=>{A.refreshTileset()}))),this.d(t.highlightFeatureEvent.don(((...e)=>{A.highlightFeature(...e)}))),this.d(t.highlightFeatureAndFlyToEvent.don(((...e)=>{A.highlightFeatureAndFlyTo(...e)}))),this.d(t.setFeatureColorEvent.don(((...e)=>{A.setFeatureColor(...e)}))),this.d(t.setFeatureVisableEvent.don(((...e)=>{A.setFeatureVisable(...e)}))),this.d(t.resetFeatureStyleEvent.don(((...e)=>{A.resetFeatureStyle(...e)}))),this.d(t.flyInEvent.don(((...e)=>{A.flyIn(e[0])}))),this.d(t.flyToEvent.don(((...e)=>{A.flyTo(e[0])}))),this.d(t.calcFlyToParamEvent.don(((...e)=>{A.calcFlyToParam(...e)}))),this.d(t.calcFlyInParamEvent.don(((...e)=>{A.calcFlyInParam(...e)})))}{const e=this._es3DTileset;this.d(e.tilesetReady.don((A=>{t.tilesetReady.emit(A)}))),this.d(e.pickedEvent.don((e=>{t.pickedEvent.emit(new A.SceneObjectPickedInfo(t,e.childPickedInfo))})))}{const A=()=>{this.es3DTileset.show=t.show};A(),this.d(t.showChanged.don((()=>{A()})))}}else console.warn("viewer is undefined!")}}ci=pi,pi.type=ci.register("ESUeViewer",A.ESRtsFeatureEditing.type,ci);class Ci extends fr{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}li=Ci,Ci.type=li.register("ESUeViewer",A.ESMsTileset.type,li);class mi extends an{constructor(t,r){super(t,r);const n=r.viewer;if(!n)return void console.warn("viewer is undefined!");const s=()=>{var e,r,s;n.callUeFunc({f:"update",p:{id:t.id,height:null!==(e=t.height)&&void 0!==e?e:A.ESGeoExtrudedPolygon.defaults.height,extrudedHeight:null!==(r=t.extrudedHeight)&&void 0!==r?r:A.ESGeoExtrudedPolygon.defaults.extrudedHeight,perPositionHeight:null!==(s=t.perPositionHeight)&&void 0!==s?s:A.ESGeoExtrudedPolygon.defaults.perPositionHeight}})},i=this.disposeVar((0,e.createNextAnimateFrameEvent)(t.heightChanged,t.extrudedHeightChanged,t.perPositionHeightChanged));this.dispose(i.disposableOn(s)),this.dispose(t.createdEvent.disposableOn(s))}}di=mi,mi.type=di.register("ESUeViewer",A.ESGeoExtrudedPolygon.type,di);class fi extends Ur{constructor(A,e){super(A,e),e.viewer||console.warn("viewer is undefined!")}}let vi;ui=fi,fi.type=ui.register("ESUeViewer",A.ESStaticMesh.type,ui);try{const A=null!=="earthsdk3-ue"?"earthsdk3-ue":"-",e="3.0.4",t="2025-04-09T03:14:17.000Z",r="北京西部世界科技有限公司",n="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="c9ac6436c2583c772225016468d9ce408075ffa6",i=1744168457e3,o=((Date.now()-i)/36e5).toFixed(1),a=`%c🌏 ${A}%c ${e}.${s.slice(0,8)}.${t} (距今${o}个小时)\n%c${n?n+"\n":""}当前网站正在使用${A},此软件版权归${r}所有\n`;vi=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","c9ac6436c2583c772225016468d9ce408075ffa6")},get info(){return a},get date(){return"2025-04-09T03:14:17.000Z"},get author(){return"suplyang"},get version(){return"3.0.4"},get name(){return"earthsdk3-ue"},get commitId(){return"c9ac6436c2583c772225016468d9ce408075ffa6"},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]=vi,window.g_earthsdk_copyright_print=null===(hi=window.g_earthsdk_copyright_print)||void 0===hi||hi,window.g_earthsdk_copyright_print&&vi.print()}catch(A){}})(),module.exports=r})();