@vonage/ml-transformers 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/assets/highlight.css +14 -0
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/MediapipeHelper.html +1 -1
- package/dist/docs/classes/VonageMediaProcessor.html +106 -0
- package/dist/docs/enums/BlurRadius.html +2 -2
- package/dist/docs/index.html +1 -1
- package/dist/docs/interfaces/FaceDetectionOptions.html +1 -1
- package/dist/docs/interfaces/FaceDetectionResults.html +1 -1
- package/dist/docs/interfaces/FaceMeshOptions.html +1 -1
- package/dist/docs/interfaces/FaceMeshResults.html +1 -1
- package/dist/docs/interfaces/HandsOptions.html +1 -1
- package/dist/docs/interfaces/HandsResults.html +1 -1
- package/dist/docs/interfaces/HolisticOptions.html +1 -1
- package/dist/docs/interfaces/HolisticResults.html +1 -1
- package/dist/docs/interfaces/ObjectronOptions.html +1 -1
- package/dist/docs/interfaces/ObjectronResults.html +1 -1
- package/dist/docs/interfaces/PoseOptions.html +1 -1
- package/dist/docs/interfaces/PoseResults.html +1 -1
- package/dist/docs/interfaces/SelfieSegmentationOptions.html +1 -1
- package/dist/docs/interfaces/SelfieSegmentationResults.html +1 -1
- package/dist/docs/modules.html +11 -7
- package/dist/ml-transformers.es.js +675 -656
- package/dist/ml-transformers.umd.js +29 -29
- package/dist/types/main.d.ts +41 -35
- package/dist/types/src/transformers/BackgroundTransformer.d.ts +4 -11
- package/dist/types/src/transformers/BlurPostProcess.d.ts +0 -2
- package/dist/types/src/transformers/SilueteBlurPostProcess.d.ts +0 -2
- package/dist/types/src/types.d.ts +1 -1
- package/dist/types/src/vonage/VonageMediaProcessor.d.ts +59 -0
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
`),function(C){if(A=C.indexOf(":"),L=Hr.trim(C.substr(0,A)).toLowerCase(),F=Hr.trim(C.substr(A+1)),L){if(W[L]&&fo.indexOf(L)>=0)return;L==="set-cookie"?W[L]=(W[L]?W[L]:[]).concat([F]):W[L]=W[L]?W[L]+", "+F:F}}),W},li=Nn,po=li.isStandardBrowserEnv()?function(){var v=/(msie|trident)/i.test(navigator.userAgent),W=document.createElement("a"),L;function F(A){var Q=A;return v&&(W.setAttribute("href",Q),Q=W.href),W.setAttribute("href",Q),{href:W.href,protocol:W.protocol?W.protocol.replace(/:$/,""):"",host:W.host,search:W.search?W.search.replace(/^\?/,""):"",hash:W.hash?W.hash.replace(/^#/,""):"",hostname:W.hostname,port:W.port,pathname:W.pathname.charAt(0)==="/"?W.pathname:"/"+W.pathname}}return L=F(window.location.href),function(Q){var C=li.isString(Q)?F(Q):Q;return C.protocol===L.protocol&&C.host===L.host}}():function(){return function(){return!0}}();function Jr(V){this.message=V}Jr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Jr.prototype.__CANCEL__=!0;var dr=Jr,pr=Nn,go=io,mo=oo,yo=oi,vo=ao,bo=ho,Zo=po,Cr=si,Go=mr,Xo=dr,ci=function(v){return new Promise(function(L,F){var A=v.data,Q=v.headers,C=v.responseType,dt;function _e(){v.cancelToken&&v.cancelToken.unsubscribe(dt),v.signal&&v.signal.removeEventListener("abort",dt)}pr.isFormData(A)&&delete Q["Content-Type"];var ct=new XMLHttpRequest;if(v.auth){var Ht=v.auth.username||"",qe=v.auth.password?unescape(encodeURIComponent(v.auth.password)):"";Q.Authorization="Basic "+btoa(Ht+":"+qe)}var fe=vo(v.baseURL,v.url);ct.open(v.method.toUpperCase(),yo(fe,v.params,v.paramsSerializer),!0),ct.timeout=v.timeout;function je(){if(!!ct){var ue="getAllResponseHeaders"in ct?bo(ct.getAllResponseHeaders()):null,de=!C||C==="text"||C==="json"?ct.responseText:ct.response,he={data:de,status:ct.status,statusText:ct.statusText,headers:ue,config:v,request:ct};go(function(In){L(In),_e()},function(In){F(In),_e()},he),ct=null}}if("onloadend"in ct?ct.onloadend=je:ct.onreadystatechange=function(){!ct||ct.readyState!==4||ct.status===0&&!(ct.responseURL&&ct.responseURL.indexOf("file:")===0)||setTimeout(je)},ct.onabort=function(){!ct||(F(Cr("Request aborted",v,"ECONNABORTED",ct)),ct=null)},ct.onerror=function(){F(Cr("Network Error",v,null,ct)),ct=null},ct.ontimeout=function(){var de=v.timeout?"timeout of "+v.timeout+"ms exceeded":"timeout exceeded",he=v.transitional||Go.transitional;v.timeoutErrorMessage&&(de=v.timeoutErrorMessage),F(Cr(de,v,he.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",ct)),ct=null},pr.isStandardBrowserEnv()){var xt=(v.withCredentials||Zo(fe))&&v.xsrfCookieName?mo.read(v.xsrfCookieName):void 0;xt&&(Q[v.xsrfHeaderName]=xt)}"setRequestHeader"in ct&&pr.forEach(Q,function(de,he){typeof A=="undefined"&&he.toLowerCase()==="content-type"?delete Q[he]:ct.setRequestHeader(he,de)}),pr.isUndefined(v.withCredentials)||(ct.withCredentials=!!v.withCredentials),C&&C!=="json"&&(ct.responseType=v.responseType),typeof v.onDownloadProgress=="function"&&ct.addEventListener("progress",v.onDownloadProgress),typeof v.onUploadProgress=="function"&&ct.upload&&ct.upload.addEventListener("progress",v.onUploadProgress),(v.cancelToken||v.signal)&&(dt=function(ue){!ct||(F(!ue||ue&&ue.type?new Xo("canceled"):ue),ct.abort(),ct=null)},v.cancelToken&&v.cancelToken.subscribe(dt),v.signal&&(v.signal.aborted?dt():v.signal.addEventListener("abort",dt))),A||(A=null),ct.send(A)})},Tn=Nn,ai=eo,Ro=ui,wo={"Content-Type":"application/x-www-form-urlencoded"};function fi(V,v){!Tn.isUndefined(V)&&Tn.isUndefined(V["Content-Type"])&&(V["Content-Type"]=v)}function Wo(){var V;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(V=ci),V}function Vo(V,v,W){if(Tn.isString(V))try{return(v||JSON.parse)(V),Tn.trim(V)}catch(L){if(L.name!=="SyntaxError")throw L}return(W||JSON.stringify)(V)}var gr={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Wo(),transformRequest:[function(v,W){return ai(W,"Accept"),ai(W,"Content-Type"),Tn.isFormData(v)||Tn.isArrayBuffer(v)||Tn.isBuffer(v)||Tn.isStream(v)||Tn.isFile(v)||Tn.isBlob(v)?v:Tn.isArrayBufferView(v)?v.buffer:Tn.isURLSearchParams(v)?(fi(W,"application/x-www-form-urlencoded;charset=utf-8"),v.toString()):Tn.isObject(v)||W&&W["Content-Type"]==="application/json"?(fi(W,"application/json"),Vo(v)):v}],transformResponse:[function(v){var W=this.transitional||gr.transitional,L=W&&W.silentJSONParsing,F=W&&W.forcedJSONParsing,A=!L&&this.responseType==="json";if(A||F&&Tn.isString(v)&&v.length)try{return JSON.parse(v)}catch(Q){if(A)throw Q.name==="SyntaxError"?Ro(Q,this,"E_JSON_PARSE"):Q}return v}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(v){return v>=200&&v<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Tn.forEach(["delete","get","head"],function(v){gr.headers[v]={}}),Tn.forEach(["post","put","patch"],function(v){gr.headers[v]=Tn.merge(wo)});var mr=gr,So=Nn,To=mr,Io=function(v,W,L){var F=this||To;return So.forEach(L,function(Q){v=Q.call(F,v,W)}),v},hi=function(v){return!!(v&&v.__CANCEL__)},di=Nn,Ar=Io,Fo=hi,xo=mr,Lo=dr;function Kr(V){if(V.cancelToken&&V.cancelToken.throwIfRequested(),V.signal&&V.signal.aborted)throw new Lo("canceled")}var Eo=function(v){Kr(v),v.headers=v.headers||{},v.data=Ar.call(v,v.data,v.headers,v.transformRequest),v.headers=di.merge(v.headers.common||{},v.headers[v.method]||{},v.headers),di.forEach(["delete","get","head","post","put","patch","common"],function(F){delete v.headers[F]});var W=v.adapter||xo.adapter;return W(v).then(function(F){return Kr(v),F.data=Ar.call(v,F.data,F.headers,v.transformResponse),F},function(F){return Fo(F)||(Kr(v),F&&F.response&&(F.response.data=Ar.call(v,F.response.data,F.response.headers,v.transformResponse))),Promise.reject(F)})},kn=Nn,pi=function(v,W){W=W||{};var L={};function F(ct,Ht){return kn.isPlainObject(ct)&&kn.isPlainObject(Ht)?kn.merge(ct,Ht):kn.isPlainObject(Ht)?kn.merge({},Ht):kn.isArray(Ht)?Ht.slice():Ht}function A(ct){if(kn.isUndefined(W[ct])){if(!kn.isUndefined(v[ct]))return F(void 0,v[ct])}else return F(v[ct],W[ct])}function Q(ct){if(!kn.isUndefined(W[ct]))return F(void 0,W[ct])}function C(ct){if(kn.isUndefined(W[ct])){if(!kn.isUndefined(v[ct]))return F(void 0,v[ct])}else return F(void 0,W[ct])}function dt(ct){if(ct in W)return F(v[ct],W[ct]);if(ct in v)return F(void 0,v[ct])}var _e={url:Q,method:Q,data:Q,baseURL:C,transformRequest:C,transformResponse:C,paramsSerializer:C,timeout:C,timeoutMessage:C,withCredentials:C,adapter:C,responseType:C,xsrfCookieName:C,xsrfHeaderName:C,onUploadProgress:C,onDownloadProgress:C,decompress:C,maxContentLength:C,maxBodyLength:C,transport:C,httpAgent:C,httpsAgent:C,cancelToken:C,socketPath:C,responseEncoding:C,validateStatus:dt};return kn.forEach(Object.keys(v).concat(Object.keys(W)),function(Ht){var qe=_e[Ht]||A,fe=qe(Ht);kn.isUndefined(fe)&&qe!==dt||(L[Ht]=fe)}),L},gi={version:"0.25.0"},No=gi.version,Or={};["object","boolean","number","function","string","symbol"].forEach(function(V,v){Or[V]=function(L){return typeof L===V||"a"+(v<1?"n ":" ")+V}});var mi={};Or.transitional=function(v,W,L){function F(A,Q){return"[Axios v"+No+"] Transitional option '"+A+"'"+Q+(L?". "+L:"")}return function(A,Q,C){if(v===!1)throw new Error(F(Q," has been removed"+(W?" in "+W:"")));return W&&!mi[Q]&&(mi[Q]=!0,console.warn(F(Q," has been deprecated since v"+W+" and will be removed in the near future"))),v?v(A,Q,C):!0}};function Uo(V,v,W){if(typeof V!="object")throw new TypeError("options must be an object");for(var L=Object.keys(V),F=L.length;F-- >0;){var A=L[F],Q=v[A];if(Q){var C=V[A],dt=C===void 0||Q(C,A,V);if(dt!==!0)throw new TypeError("option "+A+" must be "+dt);continue}if(W!==!0)throw Error("Unknown option "+A)}}var Yo={assertOptions:Uo,validators:Or},yi=Nn,ko=oi,vi=qi,bi=Eo,yr=pi,Zi=Yo,Dn=Zi.validators;function or(V){this.defaults=V,this.interceptors={request:new vi,response:new vi}}or.prototype.request=function(v,W){if(typeof v=="string"?(W=W||{},W.url=v):W=v||{},!W.url)throw new Error("Provided config url is not valid");W=yr(this.defaults,W),W.method?W.method=W.method.toLowerCase():this.defaults.method?W.method=this.defaults.method.toLowerCase():W.method="get";var L=W.transitional;L!==void 0&&Zi.assertOptions(L,{silentJSONParsing:Dn.transitional(Dn.boolean),forcedJSONParsing:Dn.transitional(Dn.boolean),clarifyTimeoutError:Dn.transitional(Dn.boolean)},!1);var F=[],A=!0;this.interceptors.request.forEach(function(fe){typeof fe.runWhen=="function"&&fe.runWhen(W)===!1||(A=A&&fe.synchronous,F.unshift(fe.fulfilled,fe.rejected))});var Q=[];this.interceptors.response.forEach(function(fe){Q.push(fe.fulfilled,fe.rejected)});var C;if(!A){var dt=[bi,void 0];for(Array.prototype.unshift.apply(dt,F),dt=dt.concat(Q),C=Promise.resolve(W);dt.length;)C=C.then(dt.shift(),dt.shift());return C}for(var _e=W;F.length;){var ct=F.shift(),Ht=F.shift();try{_e=ct(_e)}catch(qe){Ht(qe);break}}try{C=bi(_e)}catch(qe){return Promise.reject(qe)}for(;Q.length;)C=C.then(Q.shift(),Q.shift());return C},or.prototype.getUri=function(v){if(!v.url)throw new Error("Provided config url is not valid");return v=yr(this.defaults,v),ko(v.url,v.params,v.paramsSerializer).replace(/^\?/,"")},yi.forEach(["delete","get","head","options"],function(v){or.prototype[v]=function(W,L){return this.request(yr(L||{},{method:v,url:W,data:(L||{}).data}))}}),yi.forEach(["post","put","patch"],function(v){or.prototype[v]=function(W,L,F){return this.request(yr(F||{},{method:v,url:W,data:L}))}});var jo=or,Ho=dr;function $n(V){if(typeof V!="function")throw new TypeError("executor must be a function.");var v;this.promise=new Promise(function(F){v=F});var W=this;this.promise.then(function(L){if(!!W._listeners){var F,A=W._listeners.length;for(F=0;F<A;F++)W._listeners[F](L);W._listeners=null}}),this.promise.then=function(L){var F,A=new Promise(function(Q){W.subscribe(Q),F=Q}).then(L);return A.cancel=function(){W.unsubscribe(F)},A},V(function(F){W.reason||(W.reason=new Ho(F),v(W.reason))})}$n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},$n.prototype.subscribe=function(v){if(this.reason){v(this.reason);return}this._listeners?this._listeners.push(v):this._listeners=[v]},$n.prototype.unsubscribe=function(v){if(!!this._listeners){var W=this._listeners.indexOf(v);W!==-1&&this._listeners.splice(W,1)}},$n.source=function(){var v,W=new $n(function(F){v=F});return{token:W,cancel:v}};var Jo=$n,Co=function(v){return function(L){return v.apply(null,L)}},Ao=Nn,Ko=function(v){return Ao.isObject(v)&&v.isAxiosError===!0},Gi=Nn,Oo=ti,vr=jo,_o=pi,Po=mr;function Xi(V){var v=new vr(V),W=Oo(vr.prototype.request,v);return Gi.extend(W,vr.prototype,v),Gi.extend(W,v),W.create=function(F){return Xi(_o(V,F))},W}var An=Xi(Po);An.Axios=vr,An.Cancel=dr,An.CancelToken=Jo,An.isCancel=hi,An.VERSION=gi.version,An.all=function(v){return Promise.all(v)},An.spread=Co,An.isAxiosError=Ko,qr.exports=An,qr.exports.default=An;function Bo(){return globalThis._vonageMediaProcessorMetadata}for(var Mo=[],_r=0;_r<256;++_r)Mo.push((_r+256).toString(16).substr(1));const _n=new WeakMap,br=new WeakMap,ur=new WeakMap,Pr=Symbol("anyProducer"),Ri=Promise.resolve(),Zr=Symbol("listenerAdded"),Gr=Symbol("listenerRemoved");let Br=!1;function qn(V){if(typeof V!="string"&&typeof V!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Xr(V){if(typeof V!="function")throw new TypeError("listener must be a function")}function tr(V,v){const W=br.get(V);return W.has(v)||W.set(v,new Set),W.get(v)}function sr(V,v){const W=typeof v=="string"||typeof v=="symbol"?v:Pr,L=ur.get(V);return L.has(W)||L.set(W,new Set),L.get(W)}function zo(V,v,W){const L=ur.get(V);if(L.has(v))for(const F of L.get(v))F.enqueue(W);if(L.has(Pr)){const F=Promise.all([v,W]);for(const A of L.get(Pr))A.enqueue(F)}}function wi(V,v){v=Array.isArray(v)?v:[v];let W=!1,L=()=>{},F=[];const A={enqueue(Q){F.push(Q),L()},finish(){W=!0,L()}};for(const Q of v)sr(V,Q).add(A);return{async next(){return F?F.length===0?W?(F=void 0,this.next()):(await new Promise(Q=>{L=Q}),this.next()):{done:!1,value:await F.shift()}:{done:!0}},async return(Q){F=void 0;for(const C of v)sr(V,C).delete(A);return L(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Wi(V){if(V===void 0)return Vi;if(!Array.isArray(V))throw new TypeError("`methodNames` must be an array of strings");for(const v of V)if(!Vi.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return V}const Mr=V=>V===Zr||V===Gr;class er{static mixin(v,W){return W=Wi(W),L=>{if(typeof L!="function")throw new TypeError("`target` must be function");for(const Q of W)if(L.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function F(){return Object.defineProperty(this,v,{enumerable:!1,value:new er}),this[v]}Object.defineProperty(L.prototype,v,{enumerable:!1,get:F});const A=Q=>function(...C){return this[v][Q](...C)};for(const Q of W)Object.defineProperty(L.prototype,Q,{enumerable:!1,value:A(Q)});return L}}static get isDebugEnabled(){if(typeof process!="object")return Br;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Br}static set isDebugEnabled(v){Br=v}constructor(v={}){_n.set(this,new Set),br.set(this,new Map),ur.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(W,L,F,A)=>{A=JSON.stringify(A),typeof F=="symbol"&&(F=F.toString());const Q=new Date,C=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${C}][emittery:${W}][${L}] Event Name: ${F}
|
|
3
|
-
data: ${A}`)})}logIfDebugEnabled(v,W,L){(er.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,W,L)}on(v,W){Xr(W),v=Array.isArray(v)?v:[v];for(const L of v)qn(L),tr(this,L).add(W),this.logIfDebugEnabled("subscribe",L,void 0),Mr(L)||this.emit(Zr,{eventName:L,listener:W});return this.off.bind(this,v,W)}off(v,W){Xr(W),v=Array.isArray(v)?v:[v];for(const L of v)qn(L),tr(this,L).delete(W),this.logIfDebugEnabled("unsubscribe",L,void 0),Mr(L)||this.emit(Gr,{eventName:L,listener:W})}once(v){return new Promise(W=>{const L=this.on(v,F=>{L(),W(F)})})}events(v){v=Array.isArray(v)?v:[v];for(const W of v)qn(W);return wi(this,v)}async emit(v,W){qn(v),this.logIfDebugEnabled("emit",v,W),zo(this,v,W);const L=tr(this,v),F=_n.get(this),A=[...L],Q=Mr(v)?[]:[...F];await Ri,await Promise.all([...A.map(async C=>{if(L.has(C))return C(W)}),...Q.map(async C=>{if(F.has(C))return C(v,W)})])}async emitSerial(v,W){qn(v),this.logIfDebugEnabled("emitSerial",v,W);const L=tr(this,v),F=_n.get(this),A=[...L],Q=[...F];await Ri;for(const C of A)L.has(C)&&await C(W);for(const C of Q)F.has(C)&&await C(v,W)}onAny(v){return Xr(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),_n.get(this).add(v),this.emit(Zr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return wi(this)}offAny(v){Xr(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Gr,{listener:v}),_n.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const W of v)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"){tr(this,W).clear();const L=sr(this,W);for(const F of L)F.finish();L.clear()}else{_n.get(this).clear();for(const L of br.get(this).values())L.clear();for(const L of ur.get(this).values()){for(const F of L)F.finish();L.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let W=0;for(const L of v){if(typeof L=="string"){W+=_n.get(this).size+tr(this,L).size+sr(this,L).size+sr(this).size;continue}typeof L!="undefined"&&qn(L),W+=_n.get(this).size;for(const F of br.get(this).values())W+=F.size;for(const F of ur.get(this).values())W+=F.size}return W}bindMethods(v,W){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");W=Wi(W);for(const L of W){if(v[L]!==void 0)throw new Error(`The property \`${L}\` already exists on \`target\``);Object.defineProperty(v,L,{enumerable:!1,value:this[L].bind(this)})}}}const Vi=Object.getOwnPropertyNames(er.prototype).filter(V=>V!=="constructor");Object.defineProperty(er,"listenerAdded",{value:Zr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(er,"listenerRemoved",{value:Gr,writable:!1,enumerable:!0,configurable:!1});var Si;(function(V){V.FPS_DROP="fps_drop"})(Si||(Si={}));class Qo{constructor(){this.processor_=null,this.generator_=null}init(v){return new Promise((W,L)=>{try{this.processor_=new MediaStreamTrackProcessor(v)}catch(F){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${F}`),L(F)}try{v.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):v.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):L("kind not supported")}catch(F){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${F}`),L(F)}W()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class Do{constructor(v){this.insertableStreamHelper_=new Qo,this.mediaProcessor_=v}setTrack(v){return new Promise((W,L)=>{this.insertableStreamHelper_.init(v).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{W(this.insertableStreamHelper_.getProccesorTrack())}).catch(F=>{L(F)})}).catch(F=>{L(F)})})}destroy(){return new Promise((v,W)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{v()}).catch(L=>{W(L)}):W("no processor")})}}const Ti="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIFR7fVQudXBkYXRlcz17dHJhbnNmb3JtZXJfbmV3OiJOZXcgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX251bGw6Ik51bGwgdHJhbnNmb3JtZXIifSxULmVycm9ycz17dHJhbnNmb3JtZXJfbm9uZToiTm8gdHJhbnNmb3JtZXJzIHByb3ZpZGVkIix0cmFuc2Zvcm1lcl9zdGFydDoiQ2Fubm90IHN0YXJ0IHRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lcl90cmFuc2Zvcm06IkNhbm5vdCB0cmFuc2Zvcm0gZnJhbWUiLHRyYW5zZm9ybWVyX2ZsdXNoOiJDYW5ub3QgZmx1c2ggdHJhbnNmb3JtZXIiLHJlYWRhYmxlX251bGw6IlJlYWRhYmxlIGlzIG51bGwiLHdyaXRhYmxlX251bGw6IldyaXRhYmxlIGlzIG51bGwifTt2YXIgdGU9e2V4cG9ydHM6e319LEVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxvPTA7bzxuLmxlbmd0aDtvKyspbltvXT1hcmd1bWVudHNbb107cmV0dXJuIGUuYXBwbHkodCxuKX19LHJ0PUVlLFI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiByZShyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKX1mdW5jdGlvbiBzZShyKXtyZXR1cm4gdHlwZW9mIHI9PSJ1bmRlZmluZWQifWZ1bmN0aW9uIHN0KHIpe3JldHVybiByIT09bnVsbCYmIXNlKHIpJiZyLmNvbnN0cnVjdG9yIT09bnVsbCYmIXNlKHIuY29uc3RydWN0b3IpJiZ0eXBlb2Ygci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcj09ImZ1bmN0aW9uIiYmci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihyKX1mdW5jdGlvbiBQZShyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIn1mdW5jdGlvbiBudChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgRm9ybURhdGFdIn1mdW5jdGlvbiBpdChyKXt2YXIgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyIT0idW5kZWZpbmVkIiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KHIpOmU9ciYmci5idWZmZXImJlBlKHIuYnVmZmVyKSxlfWZ1bmN0aW9uIG90KHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ9ZnVuY3Rpb24gYXQocil7cmV0dXJuIHR5cGVvZiByPT0ibnVtYmVyIn1mdW5jdGlvbiBUZShyKXtyZXR1cm4gciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0In1mdW5jdGlvbiBIKHIpe2lmKFIuY2FsbChyKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihyKTtyZXR1cm4gZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIHV0KHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBEYXRlXSJ9ZnVuY3Rpb24gbHQocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEZpbGVdIn1mdW5jdGlvbiBjdChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQmxvYl0ifWZ1bmN0aW9uIFJlKHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBGdW5jdGlvbl0ifWZ1bmN0aW9uIGZ0KHIpe3JldHVybiBUZShyKSYmUmUoci5waXBlKX1mdW5jdGlvbiBodChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgVVJMU2VhcmNoUGFyYW1zXSJ9ZnVuY3Rpb24gZHQocil7cmV0dXJuIHIudHJpbT9yLnRyaW0oKTpyLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX1mdW5jdGlvbiBwdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmKG5hdmlnYXRvci5wcm9kdWN0PT09IlJlYWN0TmF0aXZlInx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTmF0aXZlU2NyaXB0Inx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTlMiKT8hMTp0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmdHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIn1mdW5jdGlvbiBuZShyLGUpe2lmKCEocj09PW51bGx8fHR5cGVvZiByPT0idW5kZWZpbmVkIikpaWYodHlwZW9mIHIhPSJvYmplY3QiJiYocj1bcl0pLHJlKHIpKWZvcih2YXIgdD0wLHM9ci5sZW5ndGg7dDxzO3QrKyllLmNhbGwobnVsbCxyW3RdLHQscik7ZWxzZSBmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmZS5jYWxsKG51bGwscltuXSxuLHIpfWZ1bmN0aW9uIGllKCl7dmFyIHI9e307ZnVuY3Rpb24gZShuLG8pe0gocltvXSkmJkgobik/cltvXT1pZShyW29dLG4pOkgobik/cltvXT1pZSh7fSxuKTpyZShuKT9yW29dPW4uc2xpY2UoKTpyW29dPW59Zm9yKHZhciB0PTAscz1hcmd1bWVudHMubGVuZ3RoO3Q8czt0KyspbmUoYXJndW1lbnRzW3RdLGUpO3JldHVybiByfWZ1bmN0aW9uIG10KHIsZSx0KXtyZXR1cm4gbmUoZSxmdW5jdGlvbihuLG8pe3QmJnR5cGVvZiBuPT0iZnVuY3Rpb24iP3Jbb109cnQobix0KTpyW29dPW59KSxyfWZ1bmN0aW9uIGd0KHIpe3JldHVybiByLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHI9ci5zbGljZSgxKSkscn12YXIgcD17aXNBcnJheTpyZSxpc0FycmF5QnVmZmVyOlBlLGlzQnVmZmVyOnN0LGlzRm9ybURhdGE6bnQsaXNBcnJheUJ1ZmZlclZpZXc6aXQsaXNTdHJpbmc6b3QsaXNOdW1iZXI6YXQsaXNPYmplY3Q6VGUsaXNQbGFpbk9iamVjdDpILGlzVW5kZWZpbmVkOnNlLGlzRGF0ZTp1dCxpc0ZpbGU6bHQsaXNCbG9iOmN0LGlzRnVuY3Rpb246UmUsaXNTdHJlYW06ZnQsaXNVUkxTZWFyY2hQYXJhbXM6aHQsaXNTdGFuZGFyZEJyb3dzZXJFbnY6cHQsZm9yRWFjaDpuZSxtZXJnZTppZSxleHRlbmQ6bXQsdHJpbTpkdCxzdHJpcEJPTTpndH0sTT1wO2Z1bmN0aW9uIFNlKHIpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQocikucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfXZhciBDZT1mdW5jdGlvbihlLHQscyl7aWYoIXQpcmV0dXJuIGU7dmFyIG47aWYocyluPXModCk7ZWxzZSBpZihNLmlzVVJMU2VhcmNoUGFyYW1zKHQpKW49dC50b1N0cmluZygpO2Vsc2V7dmFyIG89W107TS5mb3JFYWNoKHQsZnVuY3Rpb24obCxnKXtsPT09bnVsbHx8dHlwZW9mIGw9PSJ1bmRlZmluZWQifHwoTS5pc0FycmF5KGwpP2c9ZysiW10iOmw9W2xdLE0uZm9yRWFjaChsLGZ1bmN0aW9uKGYpe00uaXNEYXRlKGYpP2Y9Zi50b0lTT1N0cmluZygpOk0uaXNPYmplY3QoZikmJihmPUpTT04uc3RyaW5naWZ5KGYpKSxvLnB1c2goU2UoZykrIj0iK1NlKGYpKX0pKX0pLG49by5qb2luKCImIil9aWYobil7dmFyIGk9ZS5pbmRleE9mKCIjIik7aSE9PS0xJiYoZT1lLnNsaWNlKDAsaSkpLGUrPShlLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK259cmV0dXJuIGV9LF90PXA7ZnVuY3Rpb24gcSgpe3RoaXMuaGFuZGxlcnM9W119cS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnM/cy5zeW5jaHJvbm91czohMSxydW5XaGVuOnM/cy5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxxLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0scS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXtfdC5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocyl7cyE9PW51bGwmJmUocyl9KX07dmFyIHl0PXEsYnQ9cCx3dD1mdW5jdGlvbihlLHQpe2J0LmZvckVhY2goZSxmdW5jdGlvbihuLG8pe28hPT10JiZvLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbb10pfSl9LE9lPWZ1bmN0aW9uKGUsdCxzLG4sbyl7cmV0dXJuIGUuY29uZmlnPXQscyYmKGUuY29kZT1zKSxlLnJlcXVlc3Q9bixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfSx2dD1PZSxJZT1mdW5jdGlvbihlLHQscyxuLG8pe3ZhciBpPW5ldyBFcnJvcihlKTtyZXR1cm4gdnQoaSx0LHMsbixvKX0sRXQ9SWUsUHQ9ZnVuY3Rpb24oZSx0LHMpe3ZhciBuPXMuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFzLnN0YXR1c3x8IW58fG4ocy5zdGF0dXMpP2Uocyk6dChFdCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Muc3RhdHVzLHMuY29uZmlnLG51bGwscy5yZXF1ZXN0LHMpKX0saj1wLFR0PWouaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbih0LHMsbixvLGksYSl7dmFyIGw9W107bC5wdXNoKHQrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKSksai5pc051bWJlcihuKSYmbC5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksai5pc1N0cmluZyhvKSYmbC5wdXNoKCJwYXRoPSIrbyksai5pc1N0cmluZyhpKSYmbC5wdXNoKCJkb21haW49IitpKSxhPT09ITAmJmwucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWwuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbih0KXt2YXIgcz1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrdCsiKT0oW147XSopIikpO3JldHVybiBzP2RlY29kZVVSSUNvbXBvbmVudChzWzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24odCl7dGhpcy53cml0ZSh0LCIiLERhdGUubm93KCktODY0ZTUpfX19KCk6ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19KCksUnQ9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChlKX0sU3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX0sQ3Q9UnQsT3Q9U3QsSXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIUN0KHQpP090KGUsdCk6dH0sb2U9cCxNdD1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdLHh0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9LHMsbixvO3JldHVybiBlJiZvZS5mb3JFYWNoKGUuc3BsaXQoYApgKSxmdW5jdGlvbihhKXtpZihvPWEuaW5kZXhPZigiOiIpLHM9b2UudHJpbShhLnN1YnN0cigwLG8pKS50b0xvd2VyQ2FzZSgpLG49b2UudHJpbShhLnN1YnN0cihvKzEpKSxzKXtpZih0W3NdJiZNdC5pbmRleE9mKHMpPj0wKXJldHVybjtzPT09InNldC1jb29raWUiP3Rbc109KHRbc10/dFtzXTpbXSkuY29uY2F0KFtuXSk6dFtzXT10W3NdP3Rbc10rIiwgIituOm59fSksdH0sTWU9cCxBdD1NZS5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGU9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzO2Z1bmN0aW9uIG4obyl7dmFyIGk9bztyZXR1cm4gZSYmKHQuc2V0QXR0cmlidXRlKCJocmVmIixpKSxpPXQuaHJlZiksdC5zZXRBdHRyaWJ1dGUoImhyZWYiLGkpLHtocmVmOnQuaHJlZixwcm90b2NvbDp0LnByb3RvY29sP3QucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OnQuaG9zdCxzZWFyY2g6dC5zZWFyY2g/dC5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDp0Lmhhc2g/dC5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6dC5ob3N0bmFtZSxwb3J0OnQucG9ydCxwYXRobmFtZTp0LnBhdGhuYW1lLmNoYXJBdCgwKT09PSIvIj90LnBhdGhuYW1lOiIvIit0LnBhdGhuYW1lfX1yZXR1cm4gcz1uKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbihpKXt2YXIgYT1NZS5pc1N0cmluZyhpKT9uKGkpOmk7cmV0dXJuIGEucHJvdG9jb2w9PT1zLnByb3RvY29sJiZhLmhvc3Q9PT1zLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITB9fSgpO2Z1bmN0aW9uIGFlKHIpe3RoaXMubWVzc2FnZT1yfWFlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJDYW5jZWwiKyh0aGlzLm1lc3NhZ2U/IjogIit0aGlzLm1lc3NhZ2U6IiIpfSxhZS5wcm90b3R5cGUuX19DQU5DRUxfXz0hMDt2YXIgRz1hZSxKPXAsa3Q9UHQsTnQ9VHQsVXQ9Q2UsQnQ9SXQsTHQ9eHQsRHQ9QXQsdWU9SWUsJHQ9VyxGdD1HLHhlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe3ZhciBvPWUuZGF0YSxpPWUuaGVhZGVycyxhPWUucmVzcG9uc2VUeXBlLGw7ZnVuY3Rpb24gZygpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixsKX1KLmlzRm9ybURhdGEobykmJmRlbGV0ZSBpWyJDb250ZW50LVR5cGUiXTt2YXIgdT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgZj1lLmF1dGgudXNlcm5hbWV8fCIiLFA9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjtpLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShmKyI6IitQKX12YXIgXz1CdChlLmJhc2VVUkwsZS51cmwpO3Uub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFV0KF8sZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksdS50aW1lb3V0PWUudGltZW91dDtmdW5jdGlvbiBldCgpe2lmKCEhdSl7dmFyIHY9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiB1P0x0KHUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsQj0hYXx8YT09PSJ0ZXh0Inx8YT09PSJqc29uIj91LnJlc3BvbnNlVGV4dDp1LnJlc3BvbnNlLEk9e2RhdGE6QixzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczp2LGNvbmZpZzplLHJlcXVlc3Q6dX07a3QoZnVuY3Rpb24odmUpe3ModmUpLGcoKX0sZnVuY3Rpb24odmUpe24odmUpLGcoKX0sSSksdT1udWxsfX1pZigib25sb2FkZW5kImluIHU/dS5vbmxvYWRlbmQ9ZXQ6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGV0KX0sdS5vbmFib3J0PWZ1bmN0aW9uKCl7IXV8fChuKHVlKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsdSkpLHU9bnVsbCl9LHUub25lcnJvcj1mdW5jdGlvbigpe24odWUoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCx1KSksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe3ZhciBCPWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixJPWUudHJhbnNpdGlvbmFsfHwkdC50cmFuc2l0aW9uYWw7ZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYoQj1lLnRpbWVvdXRFcnJvck1lc3NhZ2UpLG4odWUoQixlLEkuY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIix1KSksdT1udWxsfSxKLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciB0dD0oZS53aXRoQ3JlZGVudGlhbHN8fER0KF8pKSYmZS54c3JmQ29va2llTmFtZT9OdC5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDt0dCYmKGlbZS54c3JmSGVhZGVyTmFtZV09dHQpfSJzZXRSZXF1ZXN0SGVhZGVyImluIHUmJkouZm9yRWFjaChpLGZ1bmN0aW9uKEIsSSl7dHlwZW9mIG89PSJ1bmRlZmluZWQiJiZJLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIj9kZWxldGUgaVtJXTp1LnNldFJlcXVlc3RIZWFkZXIoSSxCKX0pLEouaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwodS53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksYSYmYSE9PSJqc29uIiYmKHUucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSx0eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3M9PSJmdW5jdGlvbiImJnUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSx0eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZ1LnVwbG9hZCYmdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGw9ZnVuY3Rpb24odil7IXV8fChuKCF2fHx2JiZ2LnR5cGU/bmV3IEZ0KCJjYW5jZWxlZCIpOnYpLHUuYWJvcnQoKSx1PW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShsKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ/bCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixsKSkpLG98fChvPW51bGwpLHUuc2VuZChvKX0pfSxoPXAsQWU9d3QsSHQ9T2UscXQ9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBrZShyLGUpeyFoLmlzVW5kZWZpbmVkKHIpJiZoLmlzVW5kZWZpbmVkKHJbIkNvbnRlbnQtVHlwZSJdKSYmKHJbIkNvbnRlbnQtVHlwZSJdPWUpfWZ1bmN0aW9uIGp0KCl7dmFyIHI7cmV0dXJuKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCE9InVuZGVmaW5lZCJ8fHR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpPT09IltvYmplY3QgcHJvY2Vzc10iKSYmKHI9eGUpLHJ9ZnVuY3Rpb24gR3QocixlLHQpe2lmKGguaXNTdHJpbmcocikpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShyKSxoLnRyaW0ocil9Y2F0Y2gocyl7aWYocy5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBzfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkocil9dmFyIFY9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjpqdCgpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuIEFlKHQsIkFjY2VwdCIpLEFlKHQsIkNvbnRlbnQtVHlwZSIpLGguaXNGb3JtRGF0YShlKXx8aC5pc0FycmF5QnVmZmVyKGUpfHxoLmlzQnVmZmVyKGUpfHxoLmlzU3RyZWFtKGUpfHxoLmlzRmlsZShlKXx8aC5pc0Jsb2IoZSk/ZTpoLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOmguaXNVUkxTZWFyY2hQYXJhbXMoZSk/KGtlKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpKTpoLmlzT2JqZWN0KGUpfHx0JiZ0WyJDb250ZW50LVR5cGUiXT09PSJhcHBsaWNhdGlvbi9qc29uIj8oa2UodCwiYXBwbGljYXRpb24vanNvbiIpLEd0KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxWLnRyYW5zaXRpb25hbCxzPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcsbj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89IXMmJnRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKG98fG4mJmguaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChpKXtpZihvKXRocm93IGkubmFtZT09PSJTeW50YXhFcnJvciI/SHQoaSx0aGlzLCJFX0pTT05fUEFSU0UiKTppfXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O2guZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09e319KSxoLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09aC5tZXJnZShxdCl9KTt2YXIgVz1WLEp0PXAsVnQ9VyxXdD1mdW5jdGlvbihlLHQscyl7dmFyIG49dGhpc3x8VnQ7cmV0dXJuIEp0LmZvckVhY2gocyxmdW5jdGlvbihpKXtlPWkuY2FsbChuLGUsdCl9KSxlfSxOZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfSxVZT1wLGxlPVd0LHp0PU5lLFF0PVcsWHQ9RztmdW5jdGlvbiBjZShyKXtpZihyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxyLnNpZ25hbCYmci5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgWHQoImNhbmNlbGVkIil9dmFyIEt0PWZ1bmN0aW9uKGUpe2NlKGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT1sZS5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1VZS5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLFVlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZnVuY3Rpb24obil7ZGVsZXRlIGUuaGVhZGVyc1tuXX0pO3ZhciB0PWUuYWRhcHRlcnx8UXQuYWRhcHRlcjtyZXR1cm4gdChlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBjZShlKSxuLmRhdGE9bGUuY2FsbChlLG4uZGF0YSxuLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksbn0sZnVuY3Rpb24obil7cmV0dXJuIHp0KG4pfHwoY2UoZSksbiYmbi5yZXNwb25zZSYmKG4ucmVzcG9uc2UuZGF0YT1sZS5jYWxsKGUsbi5yZXNwb25zZS5kYXRhLG4ucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KG4pfSl9LHk9cCxCZT1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHM9e307ZnVuY3Rpb24gbih1LGYpe3JldHVybiB5LmlzUGxhaW5PYmplY3QodSkmJnkuaXNQbGFpbk9iamVjdChmKT95Lm1lcmdlKHUsZik6eS5pc1BsYWluT2JqZWN0KGYpP3kubWVyZ2Uoe30sZik6eS5pc0FycmF5KGYpP2Yuc2xpY2UoKTpmfWZ1bmN0aW9uIG8odSl7aWYoeS5pc1VuZGVmaW5lZCh0W3VdKSl7aWYoIXkuaXNVbmRlZmluZWQoZVt1XSkpcmV0dXJuIG4odm9pZCAwLGVbdV0pfWVsc2UgcmV0dXJuIG4oZVt1XSx0W3VdKX1mdW5jdGlvbiBpKHUpe2lmKCF5LmlzVW5kZWZpbmVkKHRbdV0pKXJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBhKHUpe2lmKHkuaXNVbmRlZmluZWQodFt1XSkpe2lmKCF5LmlzVW5kZWZpbmVkKGVbdV0pKXJldHVybiBuKHZvaWQgMCxlW3VdKX1lbHNlIHJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBsKHUpe2lmKHUgaW4gdClyZXR1cm4gbihlW3VdLHRbdV0pO2lmKHUgaW4gZSlyZXR1cm4gbih2b2lkIDAsZVt1XSl9dmFyIGc9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6bH07cmV0dXJuIHkuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLGZ1bmN0aW9uKGYpe3ZhciBQPWdbZl18fG8sXz1QKGYpO3kuaXNVbmRlZmluZWQoXykmJlAhPT1sfHwoc1tmXT1fKX0pLHN9LExlPXt2ZXJzaW9uOiIwLjI1LjAifSxZdD1MZS52ZXJzaW9uLGZlPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaChmdW5jdGlvbihyLGUpe2ZlW3JdPWZ1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygcz09PXJ8fCJhIisoZTwxPyJuICI6IiAiKStyfX0pO3ZhciBEZT17fTtmZS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHMpe2Z1bmN0aW9uIG4obyxpKXtyZXR1cm4iW0F4aW9zIHYiK1l0KyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrbysiJyIraSsocz8iLiAiK3M6IiIpfXJldHVybiBmdW5jdGlvbihvLGksYSl7aWYoZT09PSExKXRocm93IG5ldyBFcnJvcihuKGksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpKTtyZXR1cm4gdCYmIURlW2ldJiYoRGVbaV09ITAsY29uc29sZS53YXJuKG4oaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UobyxpLGEpOiEwfX07ZnVuY3Rpb24gWnQocixlLHQpe2lmKHR5cGVvZiByIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciBzPU9iamVjdC5rZXlzKHIpLG49cy5sZW5ndGg7bi0tID4wOyl7dmFyIG89c1tuXSxpPWVbb107aWYoaSl7dmFyIGE9cltvXSxsPWE9PT12b2lkIDB8fGkoYSxvLHIpO2lmKGwhPT0hMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK2wpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBFcnJvcigiVW5rbm93biBvcHRpb24gIitvKX19dmFyIGVyPXthc3NlcnRPcHRpb25zOlp0LHZhbGlkYXRvcnM6ZmV9LCRlPXAsdHI9Q2UsRmU9eXQsSGU9S3Qsej1CZSxxZT1lcix4PXFlLnZhbGlkYXRvcnM7ZnVuY3Rpb24gTChyKXt0aGlzLmRlZmF1bHRzPXIsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IEZlLHJlc3BvbnNlOm5ldyBGZX19TC5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LCF0LnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7dD16KHRoaXMuZGVmYXVsdHMsdCksdC5tZXRob2Q/dC5tZXRob2Q9dC5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90Lm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnQubWV0aG9kPSJnZXQiO3ZhciBzPXQudHJhbnNpdGlvbmFsO3MhPT12b2lkIDAmJnFlLmFzc2VydE9wdGlvbnMocyx7c2lsZW50SlNPTlBhcnNpbmc6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzp4LnRyYW5zaXRpb25hbCh4LmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKX0sITEpO3ZhciBuPVtdLG89ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKF8pe3R5cGVvZiBfLnJ1bldoZW49PSJmdW5jdGlvbiImJl8ucnVuV2hlbih0KT09PSExfHwobz1vJiZfLnN5bmNocm9ub3VzLG4udW5zaGlmdChfLmZ1bGZpbGxlZCxfLnJlamVjdGVkKSl9KTt2YXIgaT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKF8pe2kucHVzaChfLmZ1bGZpbGxlZCxfLnJlamVjdGVkKX0pO3ZhciBhO2lmKCFvKXt2YXIgbD1bSGUsdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkobCxuKSxsPWwuY29uY2F0KGkpLGE9UHJvbWlzZS5yZXNvbHZlKHQpO2wubGVuZ3RoOylhPWEudGhlbihsLnNoaWZ0KCksbC5zaGlmdCgpKTtyZXR1cm4gYX1mb3IodmFyIGc9dDtuLmxlbmd0aDspe3ZhciB1PW4uc2hpZnQoKSxmPW4uc2hpZnQoKTt0cnl7Zz11KGcpfWNhdGNoKFApe2YoUCk7YnJlYWt9fXRyeXthPUhlKGcpfWNhdGNoKFApe3JldHVybiBQcm9taXNlLnJlamVjdChQKX1mb3IoO2kubGVuZ3RoOylhPWEudGhlbihpLnNoaWZ0KCksaS5zaGlmdCgpKTtyZXR1cm4gYX0sTC5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKGUpe2lmKCFlLnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7cmV0dXJuIGU9eih0aGlzLmRlZmF1bHRzLGUpLHRyKGUudXJsLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcikucmVwbGFjZSgvXlw/LywiIil9LCRlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe0wucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscyl7cmV0dXJuIHRoaXMucmVxdWVzdCh6KHN8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihzfHx7fSkuZGF0YX0pKX19KSwkZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7TC5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxzLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoeihufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpzfSkpfX0pO3ZhciBycj1MLHNyPUc7ZnVuY3Rpb24gQShyKXtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe2U9bn0pO3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oZnVuY3Rpb24ocyl7aWYoISF0Ll9saXN0ZW5lcnMpe3ZhciBuLG89dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3Iobj0wO248bztuKyspdC5fbGlzdGVuZXJzW25dKHMpO3QuX2xpc3RlbmVycz1udWxsfX0pLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKHMpe3ZhciBuLG89bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7dC5zdWJzY3JpYmUoaSksbj1pfSkudGhlbihzKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXt0LnVuc3Vic2NyaWJlKG4pfSxvfSxyKGZ1bmN0aW9uKG4pe3QucmVhc29ufHwodC5yZWFzb249bmV3IHNyKG4pLGUodC5yZWFzb24pKX0pfUEucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sQS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LEEucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKCEhdGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LEEuc291cmNlPWZ1bmN0aW9uKCl7dmFyIGUsdD1uZXcgQShmdW5jdGlvbihuKXtlPW59KTtyZXR1cm57dG9rZW46dCxjYW5jZWw6ZX19O3ZhciBucj1BLGlyPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gZS5hcHBseShudWxsLHMpfX0sb3I9cCxhcj1mdW5jdGlvbihlKXtyZXR1cm4gb3IuaXNPYmplY3QoZSkmJmUuaXNBeGlvc0Vycm9yPT09ITB9LGplPXAsdXI9RWUsUT1ycixscj1CZSxjcj1XO2Z1bmN0aW9uIEdlKHIpe3ZhciBlPW5ldyBRKHIpLHQ9dXIoUS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gamUuZXh0ZW5kKHQsUS5wcm90b3R5cGUsZSksamUuZXh0ZW5kKHQsZSksdC5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIEdlKGxyKHIsbikpfSx0fXZhciBFPUdlKGNyKTtFLkF4aW9zPVEsRS5DYW5jZWw9RyxFLkNhbmNlbFRva2VuPW5yLEUuaXNDYW5jZWw9TmUsRS5WRVJTSU9OPUxlLnZlcnNpb24sRS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxFLnNwcmVhZD1pcixFLmlzQXhpb3NFcnJvcj1hcix0ZS5leHBvcnRzPUUsdGUuZXhwb3J0cy5kZWZhdWx0PUU7dmFyIGZyPXRlLmV4cG9ydHM7Y2xhc3MgY3tpc0VtcHR5KCl7cmV0dXJuIXRoaXMuaXNQcmVzZW50KCl9c3RhdGljIG9mKGUpe2lmKGUhPW51bGwpcmV0dXJuIG5ldyBKZShlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBudWxsIG9yIHVuZGVmaW5lZC4iKX1zdGF0aWMgb2ZOb25OdWxsKGUpe3JldHVybiBjLm9mKGUpfXN0YXRpYyBvZk51bGxhYmxlKGUpe3JldHVybiBlIT1udWxsP25ldyBKZShlKTpuZXcgVmV9c3RhdGljIGVtcHR5KCl7cmV0dXJuIG5ldyBWZX1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5raW5kKXtjYXNlInByZXNlbnQiOnJldHVybiBjLm9mKGUudmFsdWUpO2Nhc2UiZW1wdHkiOnJldHVybiBjLmVtcHR5KCk7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBub3QgYW4gT3B0aW9uIHR5cGUuIil9fX1jbGFzcyBKZSBleHRlbmRzIGN7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnBheWxvYWQ9ZX1pc1ByZXNlbnQoKXtyZXR1cm4hMH1nZXQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfWlmUHJlc2VudChlKXtlKHRoaXMucGF5bG9hZCl9aWZQcmVzZW50T3JFbHNlKGUsdCl7ZSh0aGlzLnBheWxvYWQpfWZpbHRlcihlKXtyZXR1cm4gZSh0aGlzLnBheWxvYWQpP3RoaXM6Yy5lbXB0eSgpfW1hcChlKXtjb25zdCB0PWUodGhpcy5wYXlsb2FkKTtyZXR1cm4gYy5vZk51bGxhYmxlKHQpfWZsYXRNYXAoZSl7cmV0dXJuIGUodGhpcy5wYXlsb2FkKX1vcihlKXtyZXR1cm4gdGhpc31vckVsc2UoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VHZXQoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VUaHJvdyhlKXtyZXR1cm4gdGhpcy5wYXlsb2FkfW9yTnVsbCgpe3JldHVybiB0aGlzLnBheWxvYWR9b3JVbmRlZmluZWQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfXRvT3B0aW9uKCl7cmV0dXJue2tpbmQ6InByZXNlbnQiLHZhbHVlOnRoaXMucGF5bG9hZH19bWF0Y2hlcyhlKXtyZXR1cm4gZS5wcmVzZW50KHRoaXMucGF5bG9hZCl9dG9KU09OKGUpe3JldHVybiB0aGlzLnBheWxvYWR9fWNsYXNzIFZlIGV4dGVuZHMgY3tpc1ByZXNlbnQoKXtyZXR1cm4hMX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9Z2V0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIG9wdGlvbmFsIGlzIG5vdCBwcmVzZW50LiIpfWlmUHJlc2VudChlKXt9aWZQcmVzZW50T3JFbHNlKGUsdCl7dCgpfWZpbHRlcihlKXtyZXR1cm4gdGhpc31tYXAoZSl7cmV0dXJuIGMuZW1wdHkoKX1mbGF0TWFwKGUpe3JldHVybiBjLmVtcHR5KCl9b3IoZSl7cmV0dXJuIGUoKX1vckVsc2UoZSl7cmV0dXJuIGV9b3JFbHNlR2V0KGUpe3JldHVybiB0aGlzLm9yRWxzZShlKCkpfW9yRWxzZVRocm93KGUpe3Rocm93IGUoKX1vck51bGwoKXtyZXR1cm4gbnVsbH1vclVuZGVmaW5lZCgpe310b09wdGlvbigpe3JldHVybntraW5kOiJlbXB0eSJ9fW1hdGNoZXMoZSl7cmV0dXJuIGUuZW1wdHkoKX10b0pTT04oZSl7cmV0dXJuIG51bGx9fWNvbnN0IGhyPSIxLjIuNyI7ZnVuY3Rpb24gZHIocil7Z2xvYmFsVGhpcy5fdm9uYWdlTWVkaWFQcm9jZXNzb3JNZXRhZGF0YT1yfWZ1bmN0aW9uIHByKCl7cmV0dXJuIGdsb2JhbFRoaXMuX3ZvbmFnZU1lZGlhUHJvY2Vzc29yTWV0YWRhdGF9Y2xhc3MgYntjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9cHIoKTt0aGlzLl9yZXBvcnQ9e2FjdGlvbjpjLmVtcHR5KCksYXBwbGljYXRpb25JZDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLmFwcElkOm51bGwpLHRpbWVzdGFtcDpEYXRlLm5vdygpLGZwczpjLmVtcHR5KCksZnJhbWVzVHJhbnNmb3JtZWQ6Yy5lbXB0eSgpLGd1aWQ6Yy5lbXB0eSgpLGhpZ2hlc3RGcmFtZVRyYW5zZm9ybUNwdTpjLmVtcHR5KCksbWVzc2FnZTpjLmVtcHR5KCksc291cmNlOmMub2ZOdWxsYWJsZShlIT09dm9pZCAwJiZlIT1udWxsP2Uuc291cmNlVHlwZTpudWxsKSx0cmFuc2Zvcm1lZEZwczpjLmVtcHR5KCksdHJhbnNmb3JtZXJUeXBlOmMuZW1wdHkoKSx2YXJpYXRpb246Yy5lbXB0eSgpLHZpZGVvSGVpZ2h0OmMuZW1wdHkoKSx2aWRlb1dpZHRoOmMuZW1wdHkoKSx2ZXJzaW9uOmhyLGVycm9yOmMuZW1wdHkoKSxwcm94eVVybDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLnByb3h5VXJsOm51bGwpfX1hY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5hY3Rpb249Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZnJhbWVzVHJhbnNmb3JtZWQoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcmFtZXNUcmFuc2Zvcm1lZD1jLm9mTnVsbGFibGUoZSksdGhpc31mcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcHM9Yy5vZk51bGxhYmxlKGUpLHRoaXN9Z3VpZChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lmd1aWQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9bWVzc2FnZShlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lm1lc3NhZ2U9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dHJhbnNmb3JtZWRGcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lZEZwcz1jLm9mTnVsbGFibGUoZSksdGhpc310cmFuc2Zvcm1lclR5cGUoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lclR5cGU9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmFyaWF0aW9uKGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmFyaWF0aW9uPWMub2ZOdWxsYWJsZShlKSx0aGlzfXZpZGVvSGVpZ2h0KGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmlkZW9IZWlnaHQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmlkZW9XaWR0aChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0LnZpZGVvV2lkdGg9Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZXJyb3IoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5lcnJvcj1jLm9mTnVsbGFibGUoZSksdGhpc31idWlsZCgpe3JldHVybiB0aGlzLl9yZXBvcnR9fWNvbnN0IG1yPXI9PkpTT04uc3RyaW5naWZ5KHIsKGUsdCk9PntpZih0IT09bnVsbClyZXR1cm4gdH0pO2NsYXNzIHd7c3RhdGljIHJlcG9ydChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscyk9PntpZihlLmFwcGxpY2F0aW9uSWQuaXNFbXB0eSgpfHxlLnNvdXJjZS5pc0VtcHR5KCkpe3QoInN1Y2Nlc3MiKTtyZXR1cm59bGV0IG49ZnIuY3JlYXRlKCksbz17dGltZW91dDoxZTQsdGltZW91dEVycm9yTWVzc2FnZToiUmVxdWVzdCB0aW1lb3V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSxpPSJobGcudG9rYm94LmNvbS9wcm9kL2xvZ2dpbmcvdmNwX3dlYnJ0YyI7aWYoZS5wcm94eVVybC5pc0VtcHR5KCkpaT0iaHR0cHM6Ly8iK2k7ZWxzZXtsZXQgYTtlLnByb3h5VXJsLmdldCgpLnNsaWNlKGUucHJveHlVcmwuZ2V0KCkubGVuZ3RoLTEpIT09Ii8iP2E9ZS5wcm94eVVybC5nZXQoKSsiLyI6YT1lLnByb3h5VXJsLmdldCgpLGk9YStpfW4ucG9zdChpLG1yKGUpLG8pLnRoZW4oYT0+e2NvbnNvbGUubG9nKGEpLHQoInN1Y2Nlc3MiKX0pLmNhdGNoKGE9Pntjb25zb2xlLmxvZyhhKSxzKGEpfSl9KX19dmFyIFgsZ3I9bmV3IFVpbnQ4QXJyYXkoMTYpO2Z1bmN0aW9uIF9yKCl7aWYoIVgmJihYPXR5cGVvZiBjcnlwdG8hPSJ1bmRlZmluZWQiJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKXx8dHlwZW9mIG1zQ3J5cHRvIT0idW5kZWZpbmVkIiYmdHlwZW9mIG1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz09ImZ1bmN0aW9uIiYmbXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQobXNDcnlwdG8pLCFYKSl0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkIik7cmV0dXJuIFgoZ3IpfXZhciB5cj0vXig/OlswLTlhLWZdezh9LVswLTlhLWZdezR9LVsxLTVdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9fDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCkkL2k7ZnVuY3Rpb24gYnIocil7cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIiYmeXIudGVzdChyKX1mb3IodmFyIGQ9W10saGU9MDtoZTwyNTY7KytoZSlkLnB1c2goKGhlKzI1NikudG9TdHJpbmcoMTYpLnN1YnN0cigxKSk7ZnVuY3Rpb24gd3Iocil7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsdD0oZFtyW2UrMF1dK2RbcltlKzFdXStkW3JbZSsyXV0rZFtyW2UrM11dKyItIitkW3JbZSs0XV0rZFtyW2UrNV1dKyItIitkW3JbZSs2XV0rZFtyW2UrN11dKyItIitkW3JbZSs4XV0rZFtyW2UrOV1dKyItIitkW3JbZSsxMF1dK2RbcltlKzExXV0rZFtyW2UrMTJdXStkW3JbZSsxM11dK2RbcltlKzE0XV0rZFtyW2UrMTVdXSkudG9Mb3dlckNhc2UoKTtpZighYnIodCkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmdpZmllZCBVVUlEIGlzIGludmFsaWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBXZShyLGUsdCl7cj1yfHx7fTt2YXIgcz1yLnJhbmRvbXx8KHIucm5nfHxfcikoKTtpZihzWzZdPXNbNl0mMTV8NjQsc1s4XT1zWzhdJjYzfDEyOCxlKXt0PXR8fDA7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVt0K25dPXNbbl07cmV0dXJuIGV9cmV0dXJuIHdyKHMpfWNvbnN0IFM9bmV3IFdlYWtNYXAsSz1uZXcgV2Vha01hcCxEPW5ldyBXZWFrTWFwLGRlPVN5bWJvbCgiYW55UHJvZHVjZXIiKSx6ZT1Qcm9taXNlLnJlc29sdmUoKSxZPVN5bWJvbCgibGlzdGVuZXJBZGRlZCIpLFo9U3ltYm9sKCJsaXN0ZW5lclJlbW92ZWQiKTtsZXQgcGU9ITE7ZnVuY3Rpb24gayhyKXtpZih0eXBlb2YgciE9InN0cmluZyImJnR5cGVvZiByIT0ic3ltYm9sIil0aHJvdyBuZXcgVHlwZUVycm9yKCJldmVudE5hbWUgbXVzdCBiZSBhIHN0cmluZyBvciBhIHN5bWJvbCIpfWZ1bmN0aW9uIGVlKHIpe2lmKHR5cGVvZiByIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE4ocixlKXtjb25zdCB0PUsuZ2V0KHIpO3JldHVybiB0LmhhcyhlKXx8dC5zZXQoZSxuZXcgU2V0KSx0LmdldChlKX1mdW5jdGlvbiAkKHIsZSl7Y29uc3QgdD10eXBlb2YgZT09InN0cmluZyJ8fHR5cGVvZiBlPT0ic3ltYm9sIj9lOmRlLHM9RC5nZXQocik7cmV0dXJuIHMuaGFzKHQpfHxzLnNldCh0LG5ldyBTZXQpLHMuZ2V0KHQpfWZ1bmN0aW9uIHZyKHIsZSx0KXtjb25zdCBzPUQuZ2V0KHIpO2lmKHMuaGFzKGUpKWZvcihjb25zdCBuIG9mIHMuZ2V0KGUpKW4uZW5xdWV1ZSh0KTtpZihzLmhhcyhkZSkpe2NvbnN0IG49UHJvbWlzZS5hbGwoW2UsdF0pO2Zvcihjb25zdCBvIG9mIHMuZ2V0KGRlKSlvLmVucXVldWUobil9fWZ1bmN0aW9uIFFlKHIsZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2xldCB0PSExLHM9KCk9Pnt9LG49W107Y29uc3Qgbz17ZW5xdWV1ZShpKXtuLnB1c2goaSkscygpfSxmaW5pc2goKXt0PSEwLHMoKX19O2Zvcihjb25zdCBpIG9mIGUpJChyLGkpLmFkZChvKTtyZXR1cm57YXN5bmMgbmV4dCgpe3JldHVybiBuP24ubGVuZ3RoPT09MD90PyhuPXZvaWQgMCx0aGlzLm5leHQoKSk6KGF3YWl0IG5ldyBQcm9taXNlKGk9PntzPWl9KSx0aGlzLm5leHQoKSk6e2RvbmU6ITEsdmFsdWU6YXdhaXQgbi5zaGlmdCgpfTp7ZG9uZTohMH19LGFzeW5jIHJldHVybihpKXtuPXZvaWQgMDtmb3IoY29uc3QgYSBvZiBlKSQocixhKS5kZWxldGUobyk7cmV0dXJuIHMoKSxhcmd1bWVudHMubGVuZ3RoPjA/e2RvbmU6ITAsdmFsdWU6YXdhaXQgaX06e2RvbmU6ITB9fSxbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7cmV0dXJuIHRoaXN9fX1mdW5jdGlvbiBYZShyKXtpZihyPT09dm9pZCAwKXJldHVybiBLZTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBlIG9mIHIpaWYoIUtlLmluY2x1ZGVzKGUpKXRocm93IHR5cGVvZiBlIT0ic3RyaW5nIj9uZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOm5ldyBFcnJvcihgJHtlfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCk7cmV0dXJuIHJ9Y29uc3QgbWU9cj0+cj09PVl8fHI9PT1aO2NsYXNzIE97c3RhdGljIG1peGluKGUsdCl7cmV0dXJuIHQ9WGUodCkscz0+e2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgaSBvZiB0KWlmKHMucHJvdG90eXBlW2ldIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtpfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtmdW5jdGlvbiBuKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGUse2VudW1lcmFibGU6ITEsdmFsdWU6bmV3IE99KSx0aGlzW2VdfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLGdldDpufSk7Y29uc3Qgbz1pPT5mdW5jdGlvbiguLi5hKXtyZXR1cm4gdGhpc1tlXVtpXSguLi5hKX07Zm9yKGNvbnN0IGkgb2YgdClPYmplY3QuZGVmaW5lUHJvcGVydHkocy5wcm90b3R5cGUsaSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpvKGkpfSk7cmV0dXJuIHN9fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXtpZih0eXBlb2YgcHJvY2VzcyE9Im9iamVjdCIpcmV0dXJuIHBlO2NvbnN0e2VudjplfT1wcm9jZXNzfHx7ZW52Ont9fTtyZXR1cm4gZS5ERUJVRz09PSJlbWl0dGVyeSJ8fGUuREVCVUc9PT0iKiJ8fHBlfXN0YXRpYyBzZXQgaXNEZWJ1Z0VuYWJsZWQoZSl7cGU9ZX1jb25zdHJ1Y3RvcihlPXt9KXtTLnNldCh0aGlzLG5ldyBTZXQpLEsuc2V0KHRoaXMsbmV3IE1hcCksRC5zZXQodGhpcyxuZXcgTWFwKSx0aGlzLmRlYnVnPWUuZGVidWd8fHt9LHRoaXMuZGVidWcuZW5hYmxlZD09PXZvaWQgMCYmKHRoaXMuZGVidWcuZW5hYmxlZD0hMSksdGhpcy5kZWJ1Zy5sb2dnZXJ8fCh0aGlzLmRlYnVnLmxvZ2dlcj0odCxzLG4sbyk9PntvPUpTT04uc3RyaW5naWZ5KG8pLHR5cGVvZiBuPT0ic3ltYm9sIiYmKG49bi50b1N0cmluZygpKTtjb25zdCBpPW5ldyBEYXRlLGE9YCR7aS5nZXRIb3VycygpfToke2kuZ2V0TWludXRlcygpfToke2kuZ2V0U2Vjb25kcygpfS4ke2kuZ2V0TWlsbGlzZWNvbmRzKCl9YDtjb25zb2xlLmxvZyhgWyR7YX1dW2VtaXR0ZXJ5OiR7dH1dWyR7c31dIEV2ZW50IE5hbWU6ICR7bn0KCWRhdGE6ICR7b31gKX0pfWxvZ0lmRGVidWdFbmFibGVkKGUsdCxzKXsoTy5pc0RlYnVnRW5hYmxlZHx8dGhpcy5kZWJ1Zy5lbmFibGVkKSYmdGhpcy5kZWJ1Zy5sb2dnZXIoZSx0aGlzLmRlYnVnLm5hbWUsdCxzKX1vbihlLHQpe2VlKHQpLGU9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgcyBvZiBlKWsocyksTih0aGlzLHMpLmFkZCh0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmUiLHMsdm9pZCAwKSxtZShzKXx8dGhpcy5lbWl0KFkse2V2ZW50TmFtZTpzLGxpc3RlbmVyOnR9KTtyZXR1cm4gdGhpcy5vZmYuYmluZCh0aGlzLGUsdCl9b2ZmKGUsdCl7ZWUodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBzIG9mIGUpayhzKSxOKHRoaXMscykuZGVsZXRlKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlIixzLHZvaWQgMCksbWUocyl8fHRoaXMuZW1pdChaLHtldmVudE5hbWU6cyxsaXN0ZW5lcjp0fSl9b25jZShlKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2NvbnN0IHM9dGhpcy5vbihlLG49PntzKCksdChuKX0pfSl9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKWsodCk7cmV0dXJuIFFlKHRoaXMsZSl9YXN5bmMgZW1pdChlLHQpe2soZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdCIsZSx0KSx2cih0aGlzLGUsdCk7Y29uc3Qgcz1OKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPW1lKGUpP1tdOlsuLi5uXTthd2FpdCB6ZSxhd2FpdCBQcm9taXNlLmFsbChbLi4uby5tYXAoYXN5bmMgYT0+e2lmKHMuaGFzKGEpKXJldHVybiBhKHQpfSksLi4uaS5tYXAoYXN5bmMgYT0+e2lmKG4uaGFzKGEpKXJldHVybiBhKGUsdCl9KV0pfWFzeW5jIGVtaXRTZXJpYWwoZSx0KXtrKGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImVtaXRTZXJpYWwiLGUsdCk7Y29uc3Qgcz1OKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPVsuLi5uXTthd2FpdCB6ZTtmb3IoY29uc3QgYSBvZiBvKXMuaGFzKGEpJiZhd2FpdCBhKHQpO2Zvcihjb25zdCBhIG9mIGkpbi5oYXMoYSkmJmF3YWl0IGEoZSx0KX1vbkFueShlKXtyZXR1cm4gZWUoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSxTLmdldCh0aGlzKS5hZGQoZSksdGhpcy5lbWl0KFkse2xpc3RlbmVyOmV9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsZSl9YW55RXZlbnQoKXtyZXR1cm4gUWUodGhpcyl9b2ZmQW55KGUpe2VlKGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSx0aGlzLmVtaXQoWix7bGlzdGVuZXI6ZX0pLFMuZ2V0KHRoaXMpLmRlbGV0ZShlKX1jbGVhckxpc3RlbmVycyhlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IHQgb2YgZSlpZih0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJjbGVhciIsdCx2b2lkIDApLHR5cGVvZiB0PT0ic3RyaW5nInx8dHlwZW9mIHQ9PSJzeW1ib2wiKXtOKHRoaXMsdCkuY2xlYXIoKTtjb25zdCBzPSQodGhpcyx0KTtmb3IoY29uc3QgbiBvZiBzKW4uZmluaXNoKCk7cy5jbGVhcigpfWVsc2V7Uy5nZXQodGhpcykuY2xlYXIoKTtmb3IoY29uc3QgcyBvZiBLLmdldCh0aGlzKS52YWx1ZXMoKSlzLmNsZWFyKCk7Zm9yKGNvbnN0IHMgb2YgRC5nZXQodGhpcykudmFsdWVzKCkpe2Zvcihjb25zdCBuIG9mIHMpbi5maW5pc2goKTtzLmNsZWFyKCl9fX1saXN0ZW5lckNvdW50KGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtsZXQgdD0wO2Zvcihjb25zdCBzIG9mIGUpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIil7dCs9Uy5nZXQodGhpcykuc2l6ZStOKHRoaXMscykuc2l6ZSskKHRoaXMscykuc2l6ZSskKHRoaXMpLnNpemU7Y29udGludWV9dHlwZW9mIHMhPSJ1bmRlZmluZWQiJiZrKHMpLHQrPVMuZ2V0KHRoaXMpLnNpemU7Zm9yKGNvbnN0IG4gb2YgSy5nZXQodGhpcykudmFsdWVzKCkpdCs9bi5zaXplO2Zvcihjb25zdCBuIG9mIEQuZ2V0KHRoaXMpLnZhbHVlcygpKXQrPW4uc2l6ZX1yZXR1cm4gdH1iaW5kTWV0aG9kcyhlLHQpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBhbiBvYmplY3QiKTt0PVhlKHQpO2Zvcihjb25zdCBzIG9mIHQpe2lmKGVbc10hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke3N9XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHMse2VudW1lcmFibGU6ITEsdmFsdWU6dGhpc1tzXS5iaW5kKHRoaXMpfSl9fX1jb25zdCBLZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPLnByb3RvdHlwZSkuZmlsdGVyKHI9PnIhPT0iY29uc3RydWN0b3IiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywibGlzdGVuZXJBZGRlZCIse3ZhbHVlOlksd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywibGlzdGVuZXJSZW1vdmVkIix7dmFsdWU6Wix3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pO3ZhciBnZT1PO2Z1bmN0aW9uIEVyKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsJiYibWVzc2FnZSJpbiByJiZ0eXBlb2Ygci5tZXNzYWdlPT0ic3RyaW5nIn1mdW5jdGlvbiBQcihyKXtpZihFcihyKSlyZXR1cm4gcjt0cnl7cmV0dXJuIG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShyKSl9Y2F0Y2h7cmV0dXJuIG5ldyBFcnJvcihTdHJpbmcocikpfX1mdW5jdGlvbiBfZShyKXtyZXR1cm4gUHIocikubWVzc2FnZX12YXIgeWU7KGZ1bmN0aW9uKHIpe3IuRlBTX0RST1A9ImZwc19kcm9wIn0pKHllfHwoeWU9e30pKTtjb25zdCBUcj01MDAsUnI9Ljg7Y2xhc3MgU3IgZXh0ZW5kcyBnZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5pbmRleF89dCx0aGlzLnV1aWRfPVdlKCksdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF89MCx0aGlzLnRyYW5zZm9ybWVyXz1lLHRoaXMuc2hvdWxkU3RvcF89ITEsdGhpcy5pc0ZsYXNoZWRfPSExLHRoaXMuZnJhbWVzRnJvbVNvdXJjZV89MCx0aGlzLmZwc189MCx0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89MCx0aGlzLnZpZGVvSGVpZ2h0Xz0wLHRoaXMudmlkZW9XaWR0aF89MCx0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz0tMSx0aGlzLnRyYW5zZm9ybWVyVHlwZV89IkN1c3RvbSIsImdldFRyYW5zZm9ybWVyVHlwZSJpbiBlJiYodGhpcy50cmFuc2Zvcm1lclR5cGVfPWUuZ2V0VHJhbnNmb3JtZXJUeXBlKCkpO2NvbnN0IHM9bmV3IGIoKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5ndWlkKHRoaXMudXVpZF8pLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiQ3JlYXRlIikuYnVpbGQoKTt3LnJlcG9ydChzKX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lfWFzeW5jIHN0YXJ0KGUpe2lmKHRoaXMuY29udHJvbGxlcl89ZSx0aGlzLnRyYW5zZm9ybWVyXyYmdHlwZW9mIHRoaXMudHJhbnNmb3JtZXJfLnN0YXJ0PT0iZnVuY3Rpb24iKXRyeXthd2FpdCB0aGlzLnRyYW5zZm9ybWVyXy5zdGFydChlKX1jYXRjaCh0KXtjb25zdCBzPW5ldyBiKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFQuZXJyb3JzLnRyYW5zZm9ybWVyX3N0YXJ0KS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkVycm9yIikuZXJyb3IoX2UodCkpLmJ1aWxkKCk7dy5yZXBvcnQocyk7Y29uc3Qgbj17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6dCxmdW5jdGlvbjoic3RhcnQifTt0aGlzLmVtaXQoImVycm9yIixuKX19YXN5bmMgdHJhbnNmb3JtKGUsdCl7dmFyIHMsbixvLGk7aWYodGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPT09MCYmKHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz1EYXRlLm5vdygpKSxlIGluc3RhbmNlb2YgVmlkZW9GcmFtZSYmKHRoaXMudmlkZW9IZWlnaHRfPShzPWU9PW51bGw/dm9pZCAwOmUuZGlzcGxheUhlaWdodCkhPW51bGw/czowLHRoaXMudmlkZW9XaWR0aF89KG49ZT09bnVsbD92b2lkIDA6ZS5kaXNwbGF5V2lkdGgpIT1udWxsP246MCksKyt0aGlzLmZyYW1lc0Zyb21Tb3VyY2VfLHRoaXMudHJhbnNmb3JtZXJfKWlmKHRoaXMuc2hvdWxkU3RvcF8pY29uc29sZS53YXJuKCJbUGlwZWxpbmVdIGZsdXNoIGZyb20gdHJhbnNmb3JtIiksZS5jbG9zZSgpLHRoaXMuZmx1c2godCksdC50ZXJtaW5hdGUoKTtlbHNlIHRyeXthd2FpdCgoaT0obz10aGlzLnRyYW5zZm9ybWVyXykudHJhbnNmb3JtKT09bnVsbD92b2lkIDA6aS5jYWxsKG8sZSx0KSksKyt0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXyx0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXz09PVRyJiZ0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnQoKX1jYXRjaChhKXtjb25zdCBsPW5ldyBiKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFQuZXJyb3JzLnRyYW5zZm9ybWVyX3RyYW5zZm9ybSkudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJFcnJvciIpLmVycm9yKF9lKGEpKS5idWlsZCgpO3cucmVwb3J0KGwpO2NvbnN0IGc9e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LGVycm9yOmEsZnVuY3Rpb246InRyYW5zZm9ybSJ9O3RoaXMuZW1pdCgiZXJyb3IiLGcpfX1hc3luYyBmbHVzaChlKXtpZih0aGlzLnRyYW5zZm9ybWVyXyYmdHlwZW9mIHRoaXMudHJhbnNmb3JtZXJfLmZsdXNoPT0iZnVuY3Rpb24iJiYhdGhpcy5pc0ZsYXNoZWRfKXt0aGlzLmlzRmxhc2hlZF89ITA7dHJ5e2F3YWl0IHRoaXMudHJhbnNmb3JtZXJfLmZsdXNoKGUpfWNhdGNoKHMpe2NvbnN0IG49bmV3IGIoKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMudHJhbnNmb3JtZXJfZmx1c2gpLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiRXJyb3IiKS5lcnJvcihfZShzKSkuYnVpbGQoKTt3LnJlcG9ydChuKTtjb25zdCBvPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjpzLGZ1bmN0aW9uOiJmbHVzaCJ9O3RoaXMuZW1pdCgiZXJyb3IiLG8pfX10aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnQoKTtjb25zdCB0PW5ldyBiKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkRlbGV0ZSIpLmJ1aWxkKCk7dy5yZXBvcnQodCl9c3RvcCgpe2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFN0b3Agc3RyZWFtLiIpLHRoaXMuY29udHJvbGxlcl8mJih0aGlzLmZsdXNoKHRoaXMuY29udHJvbGxlcl8pLHRoaXMuY29udHJvbGxlcl8udGVybWluYXRlKCkpLHRoaXMuc2hvdWxkU3RvcF89ITB9bWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydCgpe2xldCBlPShEYXRlLm5vdygpLXRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXykvMWUzLHQ9dGhpcy5mcmFtZXNGcm9tU291cmNlXy9lLHM9dGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF8vZTtpZih0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyE9LTEmJnRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKlJyPnQpe2NvbnN0IG89e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LHdhcm5pbmdUeXBlOnllLkZQU19EUk9QLGRyb3BJbmZvOntyZXF1ZXN0ZWQ6dGhpcy50cmFja0V4cGVjdGVkUmF0ZV8sY3VycmVudDp0fX07dGhpcy5lbWl0KCJ3YXJuIixvKX1jb25zdCBuPW5ldyBiKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZnBzKHQpLnRyYW5zZm9ybWVkRnBzKHMpLmZyYW1lc1RyYW5zZm9ybWVkKHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfKS5ndWlkKHRoaXMudXVpZF8pLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZpZGVvSGVpZ2h0KHRoaXMudmlkZW9IZWlnaHRfKS52aWRlb1dpZHRoKHRoaXMudmlkZW9XaWR0aF8pLnZhcmlhdGlvbigiUW9TIikuYnVpbGQoKTt3LnJlcG9ydChuKSx0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89MCx0aGlzLmZyYW1lc0Zyb21Tb3VyY2VfPTAsdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF89MH19Y2xhc3MgQ3IgZXh0ZW5kcyBnZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMudHJhbnNmb3JtZXJzXz1bXSx0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz0tMTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHM9bmV3IFNyKGVbdF0sdCk7cy5vbigiZXJyb3IiLG49Pnt0aGlzLmVtaXQoImVycm9yIixuKX0pLHMub24oIndhcm4iLG49Pnt0aGlzLmVtaXQoIndhcm4iLG4pfSksdGhpcy50cmFuc2Zvcm1lcnNfLnB1c2gocyl9fXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWU7Zm9yKGxldCB0IG9mIHRoaXMudHJhbnNmb3JtZXJzXyl0LnNldFRyYWNrRXhwZWN0ZWRSYXRlKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKX1hc3luYyBzdGFydChlLHQpe2lmKCF0aGlzLnRyYW5zZm9ybWVyc198fHRoaXMudHJhbnNmb3JtZXJzXy5sZW5ndGg9PT0wKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBObyB0cmFuc2Zvcm1lcnMuIik7cmV0dXJufXRyeXtsZXQgcz1lO2ZvcihsZXQgbiBvZiB0aGlzLnRyYW5zZm9ybWVyc18pZT1lLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0obikpO2UucGlwZVRvKHQpLnRoZW4oYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFNldHVwLiIpLGF3YWl0IHQuYWJvcnQoKSxhd2FpdCBzLmNhbmNlbCgpLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIix7bWVzc2FnZToicGlwZWxpbmVfZW5kZWQifSl9KS5jYXRjaChhc3luYyBuPT57ZS5jYW5jZWwoKS50aGVuKCgpPT57Y29uc29sZS5sb2coIltQaXBlbGluZV0gU2h1dHRpbmcgZG93biBzdHJlYW1zIGFmdGVyIGFib3J0LiIpfSkuY2F0Y2gobz0+e2NvbnNvbGUuZXJyb3IoIltQaXBlbGluZV0gRXJyb3IgZnJvbSBzdHJlYW0gdHJhbnNmb3JtOiIsbyl9KSxhd2FpdCB0LmFib3J0KG4pLGF3YWl0IHMuY2FuY2VsKG4pLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIix7bWVzc2FnZToicGlwZWxpbmVfZW5kZWRfd2l0aF9lcnJvciJ9KX0pfWNhdGNoe3RoaXMuZW1pdCgicGlwZWxpbmVJbmZvIix7bWVzc2FnZToicGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIn0pLHRoaXMuZGVzdHJveSgpO3JldHVybn10aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX3N0YXJ0ZWQifSksY29uc29sZS5sb2coIltQaXBlbGluZV0gUGlwZWxpbmUgc3RhcnRlZC4iKX1hc3luYyBkZXN0cm95KCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gRGVzdHJveWluZyBQaXBlbGluZS4iKTtmb3IobGV0IGUgb2YgdGhpcy50cmFuc2Zvcm1lcnNfKWUuc3RvcCgpfX1jbGFzcyBPciBleHRlbmRzIGdle2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnV1aWRfPVdlKCksdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTE7Y29uc3QgZT1uZXcgYigpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLnZhcmlhdGlvbigiQ3JlYXRlIikuYnVpbGQoKTt3LnJlcG9ydChlKX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lLHRoaXMucGlwZWxpbmVfJiZ0aGlzLnBpcGVsaW5lXy5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyl9dHJhbnNmb3JtKGUsdCl7cmV0dXJuIHRoaXMucmVhZGFibGVfPWUsdGhpcy53cml0YWJsZV89dCx0aGlzLnRyYW5zZm9ybUludGVybmFsKCl9dHJhbnNmb3JtSW50ZXJuYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9PntpZighdGhpcy50cmFuc2Zvcm1lcnNffHx0aGlzLnRyYW5zZm9ybWVyc18ubGVuZ3RoPT09MCl7Y29uc3Qgbj1uZXcgYigpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMudHJhbnNmb3JtZXJfbm9uZSkudmFyaWF0aW9uKCJFcnJvciIpLmJ1aWxkKCk7dy5yZXBvcnQobiksdCgiW01lZGlhUHJvY2Vzc29yXSBOZWVkIHRvIHNldCB0cmFuc2Zvcm1lcnMuIik7cmV0dXJufWlmKCF0aGlzLnJlYWRhYmxlXyl7Y29uc3Qgbj1uZXcgYigpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMucmVhZGFibGVfbnVsbCkudmFyaWF0aW9uKCJFcnJvciIpLmJ1aWxkKCk7dy5yZXBvcnQobiksdCgiW01lZGlhUHJvY2Vzc29yXSBSZWFkYWJsZSBpcyBudWxsLiIpO3JldHVybn1pZighdGhpcy53cml0YWJsZV8pe2NvbnN0IG49bmV3IGIoKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFQuZXJyb3JzLndyaXRhYmxlX251bGwpLnZhcmlhdGlvbigiRXJyb3IiKS5idWlsZCgpO3cucmVwb3J0KG4pLHQoIltNZWRpYVByb2Nlc3Nvcl0gV3JpdGFibGUgaXMgbnVsbC4iKTtyZXR1cm59bGV0IHM9ITE7dGhpcy5waXBlbGluZV8mJihzPSEwLHRoaXMucGlwZWxpbmVfLmNsZWFyTGlzdGVuZXJzKCksdGhpcy5waXBlbGluZV8uZGVzdHJveSgpKSx0aGlzLnBpcGVsaW5lXz1uZXcgQ3IodGhpcy50cmFuc2Zvcm1lcnNfKSx0aGlzLnBpcGVsaW5lXy5vbigid2FybiIsbj0+e3RoaXMuZW1pdCgid2FybiIsbil9KSx0aGlzLnBpcGVsaW5lXy5vbigiZXJyb3IiLG49Pnt0aGlzLmVtaXQoImVycm9yIixuKX0pLHRoaXMucGlwZWxpbmVfLm9uKCJwaXBlbGluZUluZm8iLG49PntzJiYobi5tZXNzYWdlPT09InBpcGVsaW5lX3N0YXJ0ZWQiP24ubWVzc2FnZT0icGlwZWxpbmVfcmVzdGFydGVkIjpuLm1lc3NhZ2U9PT0icGlwZWxpbmVfc3RhcnRlZF93aXRoX2Vycm9yIiYmKG4ubWVzc2FnZT0icGlwZWxpbmVfcmVzdGFydGVkX3dpdGhfZXJyb3IiKSksdGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLG4pfSksdGhpcy50cmFja0V4cGVjdGVkUmF0ZV8hPS0xJiZ0aGlzLnBpcGVsaW5lXy5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyksdGhpcy5waXBlbGluZV8uc3RhcnQodGhpcy5yZWFkYWJsZV8sdGhpcy53cml0YWJsZV8pLnRoZW4oKCk9PntlKCl9KS5jYXRjaChuPT57dChuKX0pfSl9c2V0VHJhbnNmb3JtZXJzKGUpe2NvbnN0IHQ9bmV3IGIoKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFQudXBkYXRlcy50cmFuc2Zvcm1lcl9uZXcpLnZhcmlhdGlvbigiVXBkYXRlIikuYnVpbGQoKTtyZXR1cm4gdy5yZXBvcnQodCksdGhpcy50cmFuc2Zvcm1lcnNfPWUsdGhpcy5yZWFkYWJsZV8mJnRoaXMud3JpdGFibGVfP3RoaXMudHJhbnNmb3JtSW50ZXJuYWwoKTpQcm9taXNlLnJlc29sdmUoKX1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9Pnt0aGlzLnBpcGVsaW5lXyYmdGhpcy5waXBlbGluZV8uZGVzdHJveSgpO2NvbnN0IHQ9bmV3IGIoKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS52YXJpYXRpb24oIkRlbGV0ZSIpLmJ1aWxkKCk7dy5yZXBvcnQodCksZSgpfSl9fXZhciBGPShyPT4oci5Mb3c9IkxvdyIsci5IaWdoPSJIaWdoIixyKSkoRnx8e30pO2NsYXNzIFlle2NvbnN0cnVjdG9yKGUpe3R5cGVvZiBlPT0ibnVtYmVyIj8odGhpcy5ibHVyRmlsdGVyXz0iYmx1cigiK2UrInB4KSIsdGhpcy5ibHVyXz1lKToodGhpcy5ibHVyRmlsdGVyXz1lPT09Ri5IaWdoPyJibHVyKDE1cHgpIjoiYmx1cig1cHgpIix0aGlzLmJsdXJfPWU9PT1GLkhpZ2g/MTU6NSl9aXNIaWdoQmx1cigpe3JldHVybiB0aGlzLmJsdXJfPjV9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57ZSgpfSl9cnVuUG9zdFByb2Nlc3NpbmcoZSx0KXt0cnl7ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLW92ZXIiLGUuZmlsdGVyPXRoaXMuYmx1ckZpbHRlcl8sZS5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9Y2F0Y2gocyl7Y29uc29sZS5sb2coIltCbHVyUG9zdFByb2Nlc3NdIEZhaWxlZCB0byBkcmF3IGNhbnZhcyIscyl9fX1jbGFzcyBaZXtjb25zdHJ1Y3Rvcigpe31kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9Pnt0aGlzLmJnSW1hZ2VfJiZ0aGlzLmJnSW1hZ2VfLmNsb3NlKCksZSgpfSl9c2V0VmlydHVhbEJHSW1hZ2UoZSl7dGhpcy5iZ0ltYWdlXyYmdGhpcy5iZ0ltYWdlXy5jbG9zZSgpLHRoaXMuYmdJbWFnZV89ZX1hc3luYyBydW5Qb3N0UHJvY2Vzc2luZyhlLHQpe2lmKHRoaXMuYmdJbWFnZV8pe2lmKHRoaXMuYmdJbWFnZV8ud2lkdGghPXQud2lkdGh8fHRoaXMuYmdJbWFnZV8uaGVpZ2h0IT10LmhlaWdodCl7Y29uc3Qgcz0iaGlnaCIsbj17cmVzaXplV2lkdGg6dC53aWR0aCxyZXNpemVIZWlnaHQ6dC5oZWlnaHQscmVzaXplUXVhbGl0eTpzfTt0cnl7dGhpcy5iZ0ltYWdlXz1hd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh0aGlzLmJnSW1hZ2VfLG4pfWNhdGNoKG8pe3Rocm93IG99fWUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmRyYXdJbWFnZSh0aGlzLmJnSW1hZ2VfLDAsMCx0aGlzLmJnSW1hZ2VfLndpZHRoLHRoaXMuYmdJbWFnZV8uaGVpZ2h0KX19fWNsYXNzIElye2NvbnN0cnVjdG9yKGU9MS8wKXt0aGlzLmNhcGFjaXR5PWUsdGhpcy5zdG9yYWdlPVtdfWVucXVldWUoZSl7aWYodGhpcy5zaXplKCk9PT10aGlzLmNhcGFjaXR5KXRocm93IEVycm9yKCJRdWV1ZSBoYXMgcmVhY2hlZCBtYXggY2FwYWNpdHksIHlvdSBjYW5ub3QgYWRkIG1vcmUgaXRlbXMiKTt0aGlzLnN0b3JhZ2UucHVzaChlKX1kZXF1ZXVlKCl7cmV0dXJuIHRoaXMuc3RvcmFnZS5zaGlmdCgpfXNpemUoKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmxlbmd0aH19Y29uc3QgYmU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnF1ZXVlXz1uZXcgSXJ9Y2xlYXJRdWV1ZShyKXtmb3IoO3RoaXMucXVldWVfLnNpemUoKT4wOyl0aGlzLnF1ZXVlXy5kZXF1ZXVlKCkuY2xvc2UoKX1zZXRWaWRlb1JlYWRhYmxlKHIpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMuZnJhbWVSZWFkZXJfPXIuZ2V0UmVhZGVyKCksdGhpcy5mcmFtZVJlYWRlcl8ucmVhZCgpLnRoZW4ocz0+e3RoaXMucHJvY2Vzc0ZyYW1lKHMpfSkuY2F0Y2gocz0+e3Qocyl9KSxlKCl9KX1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKHIsZSk9Pnt2YXIgdDt0aGlzLmNsZWFyUXVldWUoITApLHRoaXMuZnJhbWVSZWFkZXJfPyh0PXRoaXMuZnJhbWVSZWFkZXJfKT09bnVsbHx8dC5jYW5jZWwoKS50aGVuKCgpPT57cigpfSkuY2F0Y2gocz0+e2Uocyl9KTpyKCl9KX1wcm9jZXNzRnJhbWUocil7aWYoIXIuZG9uZSl7aWYoIXRoaXMuZnJhbWVSZWFkZXJfKXtyLnZhbHVlLmNsb3NlKCk7cmV0dXJufWZvcig7dGhpcy5xdWV1ZV8uc2l6ZSgpPj1iZS5OVU1CRVJfT0ZfRlJBTUVTX1RPX0NMRUFSOyl7bGV0IGU9dGhpcy5xdWV1ZV8uZGVxdWV1ZSgpO2UmJmUuY2xvc2UoKX10aGlzLnF1ZXVlXy5lbnF1ZXVlKHIudmFsdWUpLHRoaXMuZnJhbWVSZWFkZXJfLnJlYWQoKS50aGVuKGU9Pnt0aGlzLnByb2Nlc3NGcmFtZShlKX0pLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGUpfSl9fXJ1blBvc3RQcm9jZXNzaW5nKHIsZSl7dHJ5e2lmKHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIix0aGlzLnF1ZXVlXy5zaXplKCk+YmUuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUiYmdGhpcy5jbGVhclF1ZXVlKCExKSx0aGlzLnF1ZXVlXy5zaXplKCk+MCl7Y29uc3QgdD10aGlzLnF1ZXVlXy5kZXF1ZXVlKCk7ci5kcmF3SW1hZ2UodCwwLDAsZS53aWR0aCxlLmhlaWdodCksdC5jbG9zZSgpfX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJbVmlkZW9Qb3N0UHJvY2Vzc10gRmFpbGVkIHRvIGRyYXcgY2FudmFzIix0KX19fTtsZXQgd2U9YmU7d2UuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUj01O2NsYXNzIE1ye2NvbnN0cnVjdG9yKGUpe3R5cGVvZiBlPT0ibnVtYmVyIj8odGhpcy5ibHVyRmlsdGVyXz0iYmx1cigiK2UrInB4KSIsdGhpcy5ibHVyXz1lKToodGhpcy5ibHVyRmlsdGVyXz1lPT09Ri5IaWdoPyJibHVyKDE1cHgpIjoiYmx1cig1cHgpIix0aGlzLmJsdXJfPWU9PT1GLkhpZ2g/MTU6NSl9aXNIaWdoQmx1cigpe3JldHVybiB0aGlzLmJsdXJfPjV9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57ZSgpfSl9cnVuUG9zdFByb2Nlc3NpbmcoZSx0KXt0cnl7ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsZS5maWx0ZXI9dGhpcy5ibHVyRmlsdGVyXyxlLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsZS5maWx0ZXI9ImJsdXIoMHB4KSIsZS5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9Y2F0Y2gocyl7Y29uc29sZS5sb2coIltCbHVyUG9zdFByb2Nlc3NdIEZhaWxlZCB0byBkcmF3IGNhbnZhcyIscyl9fX1jb25zdCBtPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5sYXN0UHJvY2Vzc2VkVGltZXN0YW1wXz0wLHRoaXMubmV3SW5wdXRDb3VudGVyPTAsdGhpcy50aW1lckdhcF89bS5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORF9MT1csdGhpcy5yZXN1bHRDYW52YXNfPW5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKSx0aGlzLnJlc3VsdEN0eF89dGhpcy5yZXN1bHRDYW52YXNfLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITEsZGVzeW5jaHJvbml6ZWQ6ITB9KSwhdGhpcy5yZXN1bHRDdHhfKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGNyZWF0ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiKTtpZih0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfPW5ldyBPZmZzY3JlZW5DYW52YXMobS5TRUxGSUVfV0lEVEgsbS5TRUxGSUVfSElHSFQpLHRoaXMuc2VnbWVudGF0aW9uTWFza0N0eF89dGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXy5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExLGRlc3luY2hyb25pemVkOiEwfSksIXRoaXMuc2VnbWVudGF0aW9uTWFza0N0eF8pdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gY3JlYXRlIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIpfWluaXQocil7dGhpcy5wcm9jZXNzRnJhbWVDYj1yfWFzeW5jIHNldEJhY2tncm91bmRPcHRpb25zKHIpe2lmKHR5cGVvZiB0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyE9InVuZGVmaW5lZCIpdHJ5e2F3YWl0IHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmRlc3Ryb3koKX1jYXRjaChlKXt0aHJvdyBlfWlmKHIudHJhbnNmb3JtZXJUeXBlPT09IlZpcnR1YWxCYWNrZ3JvdW5kIil0aGlzLnRpbWVyR2FwXz1tLlZJUlRVQUxfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyBaZTtlbHNlIGlmKHIudHJhbnNmb3JtZXJUeXBlPT09IkJhY2tncm91bmRCbHVyIil7bGV0IGU9cjt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWWUoZS5yYWRpdXMpLHRoaXMudGltZXJHYXBfPXRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmlzSGlnaEJsdXIoKT9tLkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EX0hJR0g6bS5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORF9MT1d9ZWxzZSBpZihyLnRyYW5zZm9ybWVyVHlwZT09PSJWaWRlb0JhY2tncm91bmQiKXRoaXMudGltZXJHYXBfPW0uVklERU9fUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyB3ZTtlbHNlIGlmKHIudHJhbnNmb3JtZXJUeXBlPT09IlNpbHVldGVCbHVyIil7bGV0IGU9cjt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgTXIoZS5yYWRpdXMpLHRoaXMudGltZXJHYXBfPXRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmlzSGlnaEJsdXIoKT9tLkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EX0hJR0g6bS5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORF9MT1d9ZWxzZSB0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWWUsdGhpcy50aW1lckdhcF89dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8uaXNIaWdoQmx1cigpP20uQkxVUl9QUk9DRVNTX0dBUF9NSUNST19TRUNPTkRfSElHSDptLkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EX0xPV31jbG9zZSgpe3JldHVybiBuZXcgUHJvbWlzZSgocixlKT0+e3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmRlc3Ryb3koKS50aGVuKCgpPT57cigpfSkuY2F0Y2godD0+e2UodCl9KTpyKCl9KX1zdGFydCgpe31hc3luYyB0cmFuc2Zvcm0ocixlKXsodGhpcy5yZXN1bHRDYW52YXNfLndpZHRoIT1yLmRpc3BsYXlXaWR0aHx8dGhpcy5yZXN1bHRDYW52YXNfLmhlaWdodCE9ci5kaXNwbGF5SGVpZ2h0KSYmKHRoaXMucmVzdWx0Q2FudmFzXy53aWR0aD1yLmRpc3BsYXlXaWR0aCx0aGlzLnJlc3VsdENhbnZhc18uaGVpZ2h0PXIuZGlzcGxheUhlaWdodCk7Y29uc3QgdD1yLnRpbWVzdGFtcDtjcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKHM9PntyLmNsb3NlKCksdGhpcy5wcm9jZXNzRnJhbWUoZSxzLHQpfSkuY2F0Y2gocz0+e2UuZW5xdWV1ZShyKX0pfXByb2Nlc3NGcmFtZShyLGUsdCl7KHRoaXMubmV3SW5wdXRDb3VudGVyPG0uTkVXX0lOUFVUX05VTUJFUl9PRl9SVU5TfHx0LXRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF8+PXRoaXMudGltZXJHYXBfKSYmKHRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF89dCx0aGlzLnByb2Nlc3NTb3VyY2UoZSksdGhpcy5uZXdJbnB1dENvdW50ZXI8bS5ORVdfSU5QVVRfTlVNQkVSX09GX1JVTlMmJnRoaXMubmV3SW5wdXRDb3VudGVyKyspLHRoaXMucmVzdWx0Q3R4Xy5zYXZlKCksdGhpcy5yZXN1bHRDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpLHRoaXMuc2VnbWVudGF0aW9uTWFza0ltYWdlXyYmKHRoaXMucmVzdWx0Q3R4Xy5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLHRoaXMucmVzdWx0Q3R4Xy5kcmF3SW1hZ2UodGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8ud2lkdGgsdGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLmhlaWdodCwwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpKSx0aGlzLnJlc3VsdEN0eF8uZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtYXRvcCIsdGhpcy5yZXN1bHRDdHhfLmZpbHRlcj0ibm9uZSIsdGhpcy5yZXN1bHRDdHhfLmRyYXdJbWFnZShlLDAsMCxlLndpZHRoLGUuaGVpZ2h0KSx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyYmdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8ucnVuUG9zdFByb2Nlc3NpbmcodGhpcy5yZXN1bHRDdHhfLGUpLHRoaXMucmVzdWx0Q3R4Xy5yZXN0b3JlKCksci5lbnF1ZXVlKG5ldyBWaWRlb0ZyYW1lKHRoaXMucmVzdWx0Q2FudmFzXyx7dGltZXN0YW1wOnQsYWxwaGE6ImRpc2NhcmQifSkpLGUuY2xvc2UoKX1wcm9jZXNzU291cmNlKHIpe2lmKHRoaXMuc2VnbWVudGF0aW9uTWFza0N0eF8uY2xlYXJSZWN0KDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfLmRyYXdJbWFnZShyLDAsMCxyLndpZHRoLHIuaGVpZ2h0LDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnByb2Nlc3NGcmFtZUNiKXtsZXQgZT10aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpO3RoaXMucHJvY2Vzc0ZyYW1lQ2IoZSl9fWZsdXNoKCl7fWdldFRyYW5zZm9ybWVyVHlwZSgpe3JldHVybiJCYWNrZ3JvdW5kVHJhbnNmb3JtZXIifXJlc2V0TmV3SW5wdXRDb3VuZXIoKXt0aGlzLm5ld0lucHV0Q291bnRlcj0wfXNldFZpZGVvQkdSZWFkYWJsZShyKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyBpbnN0YW5jZW9mIHdlP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLnNldFZpZGVvUmVhZGFibGUocikudGhlbigoKT0+e2UoKX0pLmNhdGNoKHM9Pnt0KHMpfSk6dCgicG9zdCBwcm9jZXNzIGlzIG5vdCB2aWRlbyIpfSl9c2V0VmlydHVhbEJHSW1hZ2Uocil7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8gaW5zdGFuY2VvZiBaZT8odGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8uc2V0VmlydHVhbEJHSW1hZ2UociksZSgpKTp0KCJwb3N0IHByb2Nlc3MgaXMgbm90IHZpZGVvIil9KX1zZXRTZWdtZW50YXRpb25NYXNrSW1hZ2Uocil7dGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfJiZ0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8uY2xvc2UoKSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV89cn19O2xldCBDPW07Qy5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORF9MT1c9MTVlNCxDLkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EX0hJR0g9NGU0LEMuVklERU9fUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EPTJlNSxDLlZJUlRVQUxfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05EPTE1ZTQsQy5ORVdfSU5QVVRfTlVNQkVSX09GX1JVTlM9MzAsQy5TRUxGSUVfV0lEVEg9MjU2LEMuU0VMRklFX0hJR0hUPTE0NDtmdW5jdGlvbiB4cihyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbCYmIm1lc3NhZ2UiaW4gciYmdHlwZW9mIHIubWVzc2FnZT09InN0cmluZyJ9ZnVuY3Rpb24gQXIocil7aWYoeHIocikpcmV0dXJuIHI7dHJ5e3JldHVybiBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocikpfWNhdGNoe3JldHVybiBuZXcgRXJyb3IoU3RyaW5nKHIpKX19ZnVuY3Rpb24gVShyKXtyZXR1cm4gdHlwZW9mIHI9PSJ1bmRlZmluZWQiPyIiOkFyKHIpLm1lc3NhZ2V9aWYodHlwZW9mIGltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIpe2xldCByPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKChzLG4pPT57ZT1uZXcgT3IsZS5vbigiZXJyb3IiLGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6Im1lZGlhX3Byb2Nlc3Nvcl9lcnJvcl9ldmVudCIsbWVzc2FnZTppfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KSxlLm9uKCJ3YXJuIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3Jfd2Fybl9ldmVudCIsbWVzc2FnZTppfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KSxlLm9uKCJwaXBlbGluZUluZm8iLGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6Im1lZGlhX3Byb2Nlc3Nvcl9waXBlbGluZV9ldmVudCIsbWVzc2FnZTppfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KSx0PW5ldyBDLHQuaW5pdChpPT57cG9zdE1lc3NhZ2UoaSxbaV0pfSk7bGV0IG89W107by5wdXNoKHQpLGUuc2V0VHJhbnNmb3JtZXJzKG8pLnRoZW4oKCk9PntzKCl9KS5jYXRjaChpPT57bihpKX0pfSl9LGUsdDtvbm1lc3NhZ2U9YXN5bmMgcz0+e2lmKHMuZGF0YSBpbnN0YW5jZW9mIEltYWdlQml0bWFwKXt0JiZ0LnNldFNlZ21lbnRhdGlvbk1hc2tJbWFnZShzLmRhdGEpO3JldHVybn1jb25zdHtvcGVyYXRpb246bn09cy5kYXRhO2lmKG49PT0iaW5pdCIpe2NvbnN0e21ldGFEYXRhOm99PXMuZGF0YTt0eXBlb2Ygbz09InN0cmluZyImJmRyKEpTT04ucGFyc2UobykpLHIoKS50aGVuKCgpPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pLmNhdGNoKGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6VShpKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSl9ZWxzZSBpZihuPT09InRyYW5zZm9ybSIpe2NvbnN0e3JlYWRhYmxlOm8sd3JpdGFibGU6aX09cy5kYXRhO3QucmVzZXROZXdJbnB1dENvdW5lcigpLGUudHJhbnNmb3JtKG8saSkudGhlbigoKT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KS5jYXRjaChhPT57Y29uc3QgbD17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOlUoYSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGwpKX0pfWVsc2UgaWYobj09PSJkZXN0cm95Iil0LmNsb3NlKCkuZmluYWxseSgoKT0+e2UuZGVzdHJveSgpLnRoZW4oKCk9Pntjb25zdCBvPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkobykpfSkuY2F0Y2gobz0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKG8pfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KX0pO2Vsc2UgaWYobj09PSJzZXRUcmFja0V4cGVjdGVkUmF0ZSIpe2Uuc2V0VHJhY2tFeHBlY3RlZFJhdGUocy5kYXRhLnJhdGUpO2NvbnN0IG89e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShvKSl9ZWxzZSBpZihuPT09InNldEJhY2tncm91bmRPcHRpb25zIil7Y29uc3R7YmFja2dyb3VuZE9wdGlvbnM6b309cy5kYXRhO3Quc2V0QmFja2dyb3VuZE9wdGlvbnMoSlNPTi5wYXJzZShvKSkudGhlbigoKT0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KS5jYXRjaChpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOlUoaSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pfWVsc2UgaWYobj09PSJzZXRWaWRlb0JHUmVhZGFibGUiKXtjb25zdHtyZWFkYWJsZTpvfT1zLmRhdGE7dC5zZXRWaWRlb0JHUmVhZGFibGUobykudGhlbigoKT0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KS5jYXRjaChpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOlUoaSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pfWVsc2UgaWYobj09PSJzZXRWaXJ0dWFsQkdJbWFnZSIpe2NvbnN0e2ltYWdlOm99PXMuZGF0YTt0LnNldFZpcnR1YWxCR0ltYWdlKG8pLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX19fX0pKCk7Cg==",Ii=typeof window!="undefined"&&window.Blob&&new Blob([atob(Ti)],{type:"text/javascript;charset=utf-8"});function $o(){const V=Ii&&(window.URL||window.webkitURL).createObjectURL(Ii);try{return V?new Worker(V,{}):new Worker("data:application/javascript;base64,"+Ti,{type:"module"})}finally{V&&(window.URL||window.webkitURL).revokeObjectURL(V)}}const Pn=new WeakMap,Rr=new WeakMap,lr=new WeakMap,zr=Symbol("anyProducer"),Fi=Promise.resolve(),wr=Symbol("listenerAdded"),Wr=Symbol("listenerRemoved");let Qr=!1;function nr(V){if(typeof V!="string"&&typeof V!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Vr(V){if(typeof V!="function")throw new TypeError("listener must be a function")}function rr(V,v){const W=Rr.get(V);return W.has(v)||W.set(v,new Set),W.get(v)}function cr(V,v){const W=typeof v=="string"||typeof v=="symbol"?v:zr,L=lr.get(V);return L.has(W)||L.set(W,new Set),L.get(W)}function qo(V,v,W){const L=lr.get(V);if(L.has(v))for(const F of L.get(v))F.enqueue(W);if(L.has(zr)){const F=Promise.all([v,W]);for(const A of L.get(zr))A.enqueue(F)}}function xi(V,v){v=Array.isArray(v)?v:[v];let W=!1,L=()=>{},F=[];const A={enqueue(Q){F.push(Q),L()},finish(){W=!0,L()}};for(const Q of v)cr(V,Q).add(A);return{async next(){return F?F.length===0?W?(F=void 0,this.next()):(await new Promise(Q=>{L=Q}),this.next()):{done:!1,value:await F.shift()}:{done:!0}},async return(Q){F=void 0;for(const C of v)cr(V,C).delete(A);return L(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Li(V){if(V===void 0)return Ei;if(!Array.isArray(V))throw new TypeError("`methodNames` must be an array of strings");for(const v of V)if(!Ei.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return V}const Dr=V=>V===wr||V===Wr;class zn{static mixin(v,W){return W=Li(W),L=>{if(typeof L!="function")throw new TypeError("`target` must be function");for(const Q of W)if(L.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function F(){return Object.defineProperty(this,v,{enumerable:!1,value:new zn}),this[v]}Object.defineProperty(L.prototype,v,{enumerable:!1,get:F});const A=Q=>function(...C){return this[v][Q](...C)};for(const Q of W)Object.defineProperty(L.prototype,Q,{enumerable:!1,value:A(Q)});return L}}static get isDebugEnabled(){if(typeof process!="object")return Qr;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Qr}static set isDebugEnabled(v){Qr=v}constructor(v={}){Pn.set(this,new Set),Rr.set(this,new Map),lr.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(W,L,F,A)=>{try{A=JSON.stringify(A)}catch{A=`Object with the following keys failed to stringify: ${Object.keys(A).join(",")}`}typeof F=="symbol"&&(F=F.toString());const Q=new Date,C=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${C}][emittery:${W}][${L}] Event Name: ${F}
|
|
4
|
-
data: ${A}`)})}logIfDebugEnabled(v,W,L){(zn.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,W,L)}on(v,W){Vr(W),v=Array.isArray(v)?v:[v];for(const L of v)nr(L),rr(this,L).add(W),this.logIfDebugEnabled("subscribe",L,void 0),Dr(L)||this.emit(wr,{eventName:L,listener:W});return this.off.bind(this,v,W)}off(v,W){Vr(W),v=Array.isArray(v)?v:[v];for(const L of v)nr(L),rr(this,L).delete(W),this.logIfDebugEnabled("unsubscribe",L,void 0),Dr(L)||this.emit(Wr,{eventName:L,listener:W})}once(v){return new Promise(W=>{const L=this.on(v,F=>{L(),W(F)})})}events(v){v=Array.isArray(v)?v:[v];for(const W of v)nr(W);return xi(this,v)}async emit(v,W){nr(v),this.logIfDebugEnabled("emit",v,W),qo(this,v,W);const L=rr(this,v),F=Pn.get(this),A=[...L],Q=Dr(v)?[]:[...F];await Fi,await Promise.all([...A.map(async C=>{if(L.has(C))return C(W)}),...Q.map(async C=>{if(F.has(C))return C(v,W)})])}async emitSerial(v,W){nr(v),this.logIfDebugEnabled("emitSerial",v,W);const L=rr(this,v),F=Pn.get(this),A=[...L],Q=[...F];await Fi;for(const C of A)L.has(C)&&await C(W);for(const C of Q)F.has(C)&&await C(v,W)}onAny(v){return Vr(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Pn.get(this).add(v),this.emit(wr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return xi(this)}offAny(v){Vr(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Wr,{listener:v}),Pn.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const W of v)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"){rr(this,W).clear();const L=cr(this,W);for(const F of L)F.finish();L.clear()}else{Pn.get(this).clear();for(const L of Rr.get(this).values())L.clear();for(const L of lr.get(this).values()){for(const F of L)F.finish();L.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let W=0;for(const L of v){if(typeof L=="string"){W+=Pn.get(this).size+rr(this,L).size+cr(this,L).size+cr(this).size;continue}typeof L!="undefined"&&nr(L),W+=Pn.get(this).size;for(const F of Rr.get(this).values())W+=F.size;for(const F of lr.get(this).values())W+=F.size}return W}bindMethods(v,W){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");W=Li(W);for(const L of W){if(v[L]!==void 0)throw new Error(`The property \`${L}\` already exists on \`target\``);Object.defineProperty(v,L,{enumerable:!1,value:this[L].bind(this)})}}}const Ei=Object.getOwnPropertyNames(zn.prototype).filter(V=>V!=="constructor");Object.defineProperty(zn,"listenerAdded",{value:wr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(zn,"listenerRemoved",{value:Wr,writable:!1,enumerable:!0,configurable:!1});var Ni=zn;const Sr={};(function(){var V;function v(f){var b=0;return function(){return b<f.length?{done:!1,value:f[b++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(f,b,Z){return f==Array.prototype||f==Object.prototype||(f[b]=Z.value),f};function L(f){f=[typeof globalThis=="object"&&globalThis,f,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var b=0;b<f.length;++b){var Z=f[b];if(Z&&Z.Math==Math)return Z}throw Error("Cannot find global object")}var F=L(this);function A(f,b){if(b)t:{var Z=F;f=f.split(".");for(var U=0;U<f.length-1;U++){var _=f[U];if(!(_ in Z))break t;Z=Z[_]}f=f[f.length-1],U=Z[f],b=b(U),b!=U&&b!=null&&W(Z,f,{configurable:!0,writable:!0,value:b})}}A("Symbol",function(f){function b(et){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new Z(U+(et||"")+"_"+_++,et)}function Z(et,O){this.g=et,W(this,"description",{configurable:!0,writable:!0,value:O})}if(f)return f;Z.prototype.toString=function(){return this.g};var U="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",_=0;return b}),A("Symbol.iterator",function(f){if(f)return f;f=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Z=0;Z<b.length;Z++){var U=F[b[Z]];typeof U=="function"&&typeof U.prototype[f]!="function"&&W(U.prototype,f,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return f});function Q(f){return f={next:f},f[Symbol.iterator]=function(){return this},f}function C(f){var b=typeof Symbol!="undefined"&&Symbol.iterator&&f[Symbol.iterator];return b?b.call(f):{next:v(f)}}function dt(f){if(!(f instanceof Array)){f=C(f);for(var b,Z=[];!(b=f.next()).done;)Z.push(b.value);f=Z}return f}var _e=typeof Object.create=="function"?Object.create:function(f){function b(){}return b.prototype=f,new b},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(f,b){if(f.__proto__=b,f.__proto__!==b)throw new TypeError(f+" is not extensible");return f}:null}var je=ct;function xt(f,b){if(f.prototype=_e(b.prototype),f.prototype.constructor=f,je)je(f,b);else for(var Z in b)if(Z!="prototype")if(Object.defineProperties){var U=Object.getOwnPropertyDescriptor(b,Z);U&&Object.defineProperty(f,Z,U)}else f[Z]=b[Z];f.ea=b.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(f){if(f.l)throw new TypeError("Generator is already running");f.l=!0}ue.prototype.o=function(f){this.h=f};function he(f,b){f.j={U:b,V:!0},f.g=f.m||f.s}ue.prototype.return=function(f){this.j={return:f},this.g=this.s};function $(f,b,Z){return f.g=Z,{value:b}}function In(f){this.g=new ue,this.h=f}function jn(f,b){de(f.g);var Z=f.g.i;return Z?He(f,"return"in Z?Z.return:function(U){return{value:U,done:!0}},b,f.g.return):(f.g.return(b),ee(f))}function He(f,b,Z,U){try{var _=b.call(f.g.i,Z);if(!(_ instanceof Object))throw new TypeError("Iterator result "+_+" is not an object");if(!_.done)return f.g.l=!1,_;var et=_.value}catch(O){return f.g.i=null,he(f.g,O),ee(f)}return f.g.i=null,U.call(f.g,et),ee(f)}function ee(f){for(;f.g.g;)try{var b=f.h(f.g);if(b)return f.g.l=!1,{value:b.value,done:!1}}catch(Z){f.g.h=void 0,he(f.g,Z)}if(f.g.l=!1,f.g.j){if(b=f.g.j,f.g.j=null,b.V)throw b.U;return{value:b.return,done:!0}}return{value:void 0,done:!0}}function Hn(f){this.next=function(b){return de(f.g),f.g.i?b=He(f,f.g.i.next,b,f.g.o):(f.g.o(b),b=ee(f)),b},this.throw=function(b){return de(f.g),f.g.i?b=He(f,f.g.i.throw,b,f.g.o):(he(f.g,b),b=ee(f)),b},this.return=function(b){return jn(f,b)},this[Symbol.iterator]=function(){return this}}function te(f,b){return b=new Hn(new In(b)),je&&f.prototype&&je(b,f.prototype),b}function ht(f,b){f instanceof String&&(f+="");var Z=0,U=!1,_={next:function(){if(!U&&Z<f.length){var et=Z++;return{value:b(et,f[et]),done:!1}}return U=!0,{done:!0,value:void 0}}};return _[Symbol.iterator]=function(){return _},_}var Jn=typeof Object.assign=="function"?Object.assign:function(f,b){for(var Z=1;Z<arguments.length;Z++){var U=arguments[Z];if(U)for(var _ in U)Object.prototype.hasOwnProperty.call(U,_)&&(f[_]=U[_])}return f};A("Object.assign",function(f){return f||Jn}),A("Promise",function(f){function b(O){this.h=0,this.i=void 0,this.g=[],this.o=!1;var tt=this.j();try{O(tt.resolve,tt.reject)}catch(st){tt.reject(st)}}function Z(){this.g=null}function U(O){return O instanceof b?O:new b(function(tt){tt(O)})}if(f)return f;Z.prototype.h=function(O){if(this.g==null){this.g=[];var tt=this;this.i(function(){tt.l()})}this.g.push(O)};var _=F.setTimeout;Z.prototype.i=function(O){_(O,0)},Z.prototype.l=function(){for(;this.g&&this.g.length;){var O=this.g;this.g=[];for(var tt=0;tt<O.length;++tt){var st=O[tt];O[tt]=null;try{st()}catch(mt){this.j(mt)}}}this.g=null},Z.prototype.j=function(O){this.i(function(){throw O})},b.prototype.j=function(){function O(mt){return function(It){st||(st=!0,mt.call(tt,It))}}var tt=this,st=!1;return{resolve:O(this.C),reject:O(this.l)}},b.prototype.C=function(O){if(O===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(O instanceof b)this.F(O);else{t:switch(typeof O){case"object":var tt=O!=null;break t;case"function":tt=!0;break t;default:tt=!1}tt?this.u(O):this.m(O)}},b.prototype.u=function(O){var tt=void 0;try{tt=O.then}catch(st){this.l(st);return}typeof tt=="function"?this.G(tt,O):this.m(O)},b.prototype.l=function(O){this.s(2,O)},b.prototype.m=function(O){this.s(1,O)},b.prototype.s=function(O,tt){if(this.h!=0)throw Error("Cannot settle("+O+", "+tt+"): Promise already settled in state"+this.h);this.h=O,this.i=tt,this.h===2&&this.D(),this.A()},b.prototype.D=function(){var O=this;_(function(){if(O.B()){var tt=F.console;typeof tt!="undefined"&&tt.error(O.i)}},1)},b.prototype.B=function(){if(this.o)return!1;var O=F.CustomEvent,tt=F.Event,st=F.dispatchEvent;return typeof st=="undefined"?!0:(typeof O=="function"?O=new O("unhandledrejection",{cancelable:!0}):typeof tt=="function"?O=new tt("unhandledrejection",{cancelable:!0}):(O=F.document.createEvent("CustomEvent"),O.initCustomEvent("unhandledrejection",!1,!0,O)),O.promise=this,O.reason=this.i,st(O))},b.prototype.A=function(){if(this.g!=null){for(var O=0;O<this.g.length;++O)et.h(this.g[O]);this.g=null}};var et=new Z;return b.prototype.F=function(O){var tt=this.j();O.J(tt.resolve,tt.reject)},b.prototype.G=function(O,tt){var st=this.j();try{O.call(tt,st.resolve,st.reject)}catch(mt){st.reject(mt)}},b.prototype.then=function(O,tt){function st(jt,Wt){return typeof jt=="function"?function(Zt){try{mt(jt(Zt))}catch(Tt){It(Tt)}}:Wt}var mt,It,wt=new b(function(jt,Wt){mt=jt,It=Wt});return this.J(st(O,mt),st(tt,It)),wt},b.prototype.catch=function(O){return this.then(void 0,O)},b.prototype.J=function(O,tt){function st(){switch(mt.h){case 1:O(mt.i);break;case 2:tt(mt.i);break;default:throw Error("Unexpected state: "+mt.h)}}var mt=this;this.g==null?et.h(st):this.g.push(st),this.o=!0},b.resolve=U,b.reject=function(O){return new b(function(tt,st){st(O)})},b.race=function(O){return new b(function(tt,st){for(var mt=C(O),It=mt.next();!It.done;It=mt.next())U(It.value).J(tt,st)})},b.all=function(O){var tt=C(O),st=tt.next();return st.done?U([]):new b(function(mt,It){function wt(Zt){return function(Tt){jt[Zt]=Tt,Wt--,Wt==0&&mt(jt)}}var jt=[],Wt=0;do jt.push(void 0),Wt++,U(st.value).J(wt(jt.length-1),It),st=tt.next();while(!st.done)})},b}),A("Object.is",function(f){return f||function(b,Z){return b===Z?b!==0||1/b===1/Z:b!==b&&Z!==Z}}),A("Array.prototype.includes",function(f){return f||function(b,Z){var U=this;U instanceof String&&(U=String(U));var _=U.length;for(Z=Z||0,0>Z&&(Z=Math.max(Z+_,0));Z<_;Z++){var et=U[Z];if(et===b||Object.is(et,b))return!0}return!1}}),A("String.prototype.includes",function(f){return f||function(b,Z){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(b,Z||0)!==-1}}),A("Array.prototype.keys",function(f){return f||function(){return ht(this,function(b){return b})}});var Cn=this||self;function ye(f,b){f=f.split(".");var Z=Cn;f[0]in Z||typeof Z.execScript=="undefined"||Z.execScript("var "+f[0]);for(var U;f.length&&(U=f.shift());)f.length||b===void 0?Z[U]&&Z[U]!==Object.prototype[U]?Z=Z[U]:Z=Z[U]={}:Z[U]=b}function St(f,b){return b=String.fromCharCode.apply(null,b),f==null?b:f+b}var We,tn=typeof TextDecoder!="undefined",hn,Wn=typeof TextEncoder!="undefined";function bn(f){if(Wn)f=(hn||(hn=new TextEncoder)).encode(f);else{var b=void 0;b=b===void 0?!1:b;for(var Z=0,U=new Uint8Array(3*f.length),_=0;_<f.length;_++){var et=f.charCodeAt(_);if(128>et)U[Z++]=et;else{if(2048>et)U[Z++]=et>>6|192;else{if(55296<=et&&57343>=et){if(56319>=et&&_<f.length){var O=f.charCodeAt(++_);if(56320<=O&&57343>=O){et=1024*(et-55296)+O-56320+65536,U[Z++]=et>>18|240,U[Z++]=et>>12&63|128,U[Z++]=et>>6&63|128,U[Z++]=et&63|128;continue}else _--}if(b)throw Error("Found an unpaired surrogate");et=65533}U[Z++]=et>>12|224,U[Z++]=et>>6&63|128}U[Z++]=et&63|128}}f=U.subarray(0,Z)}return f}var Fn={},en=null;function un(f,b){b===void 0&&(b=0),dn(),b=Fn[b];for(var Z=Array(Math.floor(f.length/3)),U=b[64]||"",_=0,et=0;_<f.length-2;_+=3){var O=f[_],tt=f[_+1],st=f[_+2],mt=b[O>>2];O=b[(O&3)<<4|tt>>4],tt=b[(tt&15)<<2|st>>6],st=b[st&63],Z[et++]=mt+O+tt+st}switch(mt=0,st=U,f.length-_){case 2:mt=f[_+1],st=b[(mt&15)<<2]||U;case 1:f=f[_],Z[et]=b[f>>2]+b[(f&3)<<4|mt>>4]+st+U}return Z.join("")}function Ln(f){var b=f.length,Z=3*b/4;Z%3?Z=Math.floor(Z):"=.".indexOf(f[b-1])!=-1&&(Z="=.".indexOf(f[b-2])!=-1?Z-2:Z-1);var U=new Uint8Array(Z),_=0;return Vn(f,function(et){U[_++]=et}),U.subarray(0,_)}function Vn(f,b){function Z(st){for(;U<f.length;){var mt=f.charAt(U++),It=en[mt];if(It!=null)return It;if(!/^[\s\xa0]*$/.test(mt))throw Error("Unknown base64 encoding at char: "+mt)}return st}dn();for(var U=0;;){var _=Z(-1),et=Z(0),O=Z(64),tt=Z(64);if(tt===64&&_===-1)break;b(_<<2|et>>4),O!=64&&(b(et<<4&240|O>>2),tt!=64&&b(O<<6&192|tt))}}function dn(){if(!en){en={};for(var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],Z=0;5>Z;Z++){var U=f.concat(b[Z].split(""));Fn[Z]=U;for(var _=0;_<U.length;_++){var et=U[_];en[et]===void 0&&(en[et]=_)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Zn;function pn(f,b,Z){return b===Z?Zn||(Zn=new Uint8Array(0)):nn?f.slice(b,Z):new Uint8Array(f.subarray(b,Z))}var ce=0,ve=0;function Pe(f,b){b=b===void 0?{}:b,b=b.v===void 0?!1:b.v,this.h=null,this.g=this.i=this.j=0,this.l=!1,this.v=b,f&&le(this,f)}function le(f,b){b=b.constructor===Uint8Array?b:b.constructor===ArrayBuffer?new Uint8Array(b):b.constructor===Array?new Uint8Array(b):b.constructor===String?Ln(b):b instanceof Uint8Array?new Uint8Array(b.buffer,b.byteOffset,b.byteLength):new Uint8Array(0),f.h=b,f.j=0,f.i=f.h.length,f.g=f.j}Pe.prototype.reset=function(){this.g=this.j};function ae(f){var b=f.h,Z=b[f.g],U=Z&127;return 128>Z?(f.g+=1,U):(Z=b[f.g+1],U|=(Z&127)<<7,128>Z?(f.g+=2,U):(Z=b[f.g+2],U|=(Z&127)<<14,128>Z?(f.g+=3,U):(Z=b[f.g+3],U|=(Z&127)<<21,128>Z?(f.g+=4,U):(Z=b[f.g+4],U|=(Z&15)<<28,128>Z?(f.g+=5,U>>>0):(f.g+=5,128<=b[f.g++]&&128<=b[f.g++]&&128<=b[f.g++]&&128<=b[f.g++]&&f.g++,U)))))}function ze(f){var b=f.h[f.g],Z=f.h[f.g+1],U=f.h[f.g+2],_=f.h[f.g+3];return f.g+=4,Z=(b<<0|Z<<8|U<<16|_<<24)>>>0,f=2*(Z>>31)+1,b=Z>>>23&255,Z&=8388607,b==255?Z?NaN:1/0*f:b==0?f*Math.pow(2,-149)*Z:f*Math.pow(2,b-150)*(Z+Math.pow(2,23))}var Fe=[];function Ct(){this.g=new Uint8Array(64),this.h=0}Ct.prototype.push=function(f){if(!(this.h+1<this.g.length)){var b=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(b)}this.g[this.h++]=f},Ct.prototype.length=function(){return this.h},Ct.prototype.end=function(){var f=this.g,b=this.h;return this.h=0,pn(f,0,b)};function re(f,b){for(;127<b;)f.push(b&127|128),b>>>=7;f.push(b)}function Ve(f){var b={},Z=b.N===void 0?!1:b.N;this.o={v:b.v===void 0?!1:b.v},this.N=Z,b=this.o,Fe.length?(Z=Fe.pop(),b&&(Z.v=b.v),f&&le(Z,f),f=Z):f=new Pe(f,b),this.g=f,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}Ve.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function Lt(f){var b=f.g;if((b=b.g==b.i)||(b=f.j)||(b=f.g,b=b.l||0>b.g||b.g>b.i),b)return!1;f.m=f.g.g,b=ae(f.g);var Z=b&7;return Z!=0&&Z!=5&&Z!=1&&Z!=2&&Z!=3&&Z!=4?(f.j=!0,!1):(f.i=b,f.l=b>>>3,f.h=Z,!0)}function pe(f){switch(f.h){case 0:if(f.h!=0)pe(f);else{for(f=f.g;f.h[f.g]&128;)f.g++;f.g++}break;case 1:f.h!=1?pe(f):(f=f.g,f.g+=8);break;case 2:if(f.h!=2)pe(f);else{var b=ae(f.g);f=f.g,f.g+=b}break;case 5:f.h!=5?pe(f):(f=f.g,f.g+=4);break;case 3:b=f.l;do{if(!Lt(f)){f.j=!0;break}if(f.h==4){f.l!=b&&(f.j=!0);break}pe(f)}while(1);break;default:f.j=!0}}function At(f,b,Z){var U=f.g.i,_=ae(f.g);return _=f.g.g+_,f.g.i=_,Z(b,f),f.g.g=_,f.g.i=U,b}function ne(f){var b=ae(f.g);f=f.g;var Z=f.g;f.g+=b,f=f.h;var U;if(tn)(U=We)||(U=We=new TextDecoder("utf-8",{fatal:!1})),U=U.decode(f.subarray(Z,Z+b));else{b=Z+b;for(var _=[],et=null,O,tt,st;Z<b;)O=f[Z++],128>O?_.push(O):224>O?Z>=b?_.push(65533):(tt=f[Z++],194>O||(tt&192)!==128?(Z--,_.push(65533)):_.push((O&31)<<6|tt&63)):240>O?Z>=b-1?_.push(65533):(tt=f[Z++],(tt&192)!==128||O===224&&160>tt||O===237&&160<=tt||((U=f[Z++])&192)!==128?(Z--,_.push(65533)):_.push((O&15)<<12|(tt&63)<<6|U&63)):244>=O?Z>=b-2?_.push(65533):(tt=f[Z++],(tt&192)!==128||(O<<28)+(tt-144)>>30!==0||((U=f[Z++])&192)!==128||((st=f[Z++])&192)!==128?(Z--,_.push(65533)):(O=(O&7)<<18|(tt&63)<<12|(U&63)<<6|st&63,O-=65536,_.push((O>>10&1023)+55296,(O&1023)+56320))):_.push(65533),8192<=_.length&&(et=St(et,_),_.length=0);U=St(et,_)}return U}function Ge(){this.h=[],this.i=0,this.g=new Ct}function Be(f,b){b.length!==0&&(f.h.push(b),f.i+=b.length)}function se(f){var b=f.i+f.g.length();if(b===0)return new Uint8Array(0);b=new Uint8Array(b);for(var Z=f.h,U=Z.length,_=0,et=0;et<U;et++){var O=Z[et];O.length!==0&&(b.set(O,_),_+=O.length)}return Z=f.g,U=Z.h,U!==0&&(b.set(Z.g.subarray(0,U),_),Z.h=0),f.h=[b],b}function Ut(f,b,Z){if(Z!=null){re(f.g,8*b+5),f=f.g;var U=Z;U=(Z=0>U?1:0)?-U:U,U===0?0<1/U?ce=ve=0:(ve=0,ce=2147483648):isNaN(U)?(ve=0,ce=2147483647):34028234663852886e22<U?(ve=0,ce=(Z<<31|2139095040)>>>0):11754943508222875e-54>U?(U=Math.round(U/Math.pow(2,-149)),ve=0,ce=(Z<<31|U)>>>0):(b=Math.floor(Math.log(U)/Math.LN2),U*=Math.pow(2,-b),U=Math.round(8388608*U)&8388607,ve=0,ce=(Z<<31|b+127<<23|U)>>>0),Z=ce,f.push(Z>>>0&255),f.push(Z>>>8&255),f.push(Z>>>16&255),f.push(Z>>>24&255)}}var Le=typeof Uint8Array=="function";function Je(f,b,Z){if(f!=null)return typeof f=="object"?Le&&f instanceof Uint8Array?Z(f):ge(f,b,Z):b(f)}function ge(f,b,Z){if(Array.isArray(f)){for(var U=Array(f.length),_=0;_<f.length;_++)U[_]=Je(f[_],b,Z);return Array.isArray(f)&&f.W&&sn(U),U}U={};for(_ in f)U[_]=Je(f[_],b,Z);return U}function Rn(f){return typeof f=="number"?isFinite(f)?f:String(f):f}var Qe={W:{value:!0,configurable:!0}};function sn(f){return Array.isArray(f)&&!Object.isFrozen(f)&&Object.defineProperties(f,Qe),f}var cn;function ie(f,b,Z){var U=cn;cn=null,f||(f=U),U=this.constructor.ca,f||(f=U?[U]:[]),this.j=U?0:-1,this.i=null,this.g=f;t:{if(U=this.g.length,f=U-1,U&&(U=this.g[f],U!==null&&typeof U=="object"&&U.constructor===Object)){this.l=f-this.j,this.h=U;break t}b!==void 0&&-1<b?(this.l=Math.max(b,f+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(Z)for(b=0;b<Z.length;b++)f=Z[b],f<this.l?(f+=this.j,(U=this.g[f])?sn(U):this.g[f]=Xe):(oe(this),(U=this.h[f])?sn(U):this.h[f]=Xe)}var Xe=Object.freeze(sn([]));function oe(f){var b=f.l+f.j;f.g[b]||(f.h=f.g[b]={})}function Mt(f,b,Z){return b===-1?null:(Z===void 0?0:Z)||b>=f.l?f.h?f.h[b]:void 0:f.g[b+f.j]}function Ce(f){var b=b===void 0?!1:b,Z=Mt(f,1,b);return Z==null&&(Z=Xe),Z===Xe&&(Z=sn([]),Yt(f,1,Z,b)),Z}function Kt(f,b,Z){return f=Mt(f,b),f=f==null?f:+f,f==null?Z===void 0?0:Z:f}function Yt(f,b,Z,U){(U===void 0?0:U)||b>=f.l?(oe(f),f.h[b]=Z):f.g[b+f.j]=Z}function gn(f,b){f.i||(f.i={});var Z=f.i[1];if(!Z){var U=Ce(f);Z=[];for(var _=0;_<U.length;_++)Z[_]=new b(U[_]);f.i[1]=Z}return Z}function $t(f,b,Z,U){var _=gn(f,Z);b=b||new Z,f=Ce(f),U!=null?(_.splice(U,0,b),f.splice(U,0,Vt(b))):(_.push(b),f.push(Vt(b)))}ie.prototype.toJSON=function(){var f=Vt(this);return ge(f,Rn,un)};function Vt(f,b){if(f.i)for(var Z in f.i){var U=f.i[Z];if(Array.isArray(U))for(var _=0;_<U.length;_++)U[_]&&Vt(U[_]);else U&&Vt(U)}return f.g}ie.prototype.toString=function(){return Vt(this).toString()};function bt(f,b){return f=Mt(f,b),f==null?0:f}function zt(f,b){return f=Mt(f,b),f==null?"":f}function Ie(f,b){if(f=f.m){Be(b,b.g.end());for(var Z=0;Z<f.length;Z++)Be(b,f[Z])}}function Ot(f,b){if(b.h==4)return!1;var Z=b.m;return pe(b),b.N||(b=pn(b.g.h,Z,b.g.g),(Z=f.m)?Z.push(b):f.m=[b]),!0}function Qt(f,b){var Z=void 0;return new(Z||(Z=Promise))(function(U,_){function et(st){try{tt(b.next(st))}catch(mt){_(mt)}}function O(st){try{tt(b.throw(st))}catch(mt){_(mt)}}function tt(st){st.done?U(st.value):new Z(function(mt){mt(st.value)}).then(et,O)}tt((b=b.apply(f,void 0)).next())})}function xe(f){ie.call(this,f)}xt(xe,ie);function kt(f,b){for(;Lt(b);)switch(b.i){case 8:var Z=ae(b.g);Yt(f,1,Z);break;case 21:Z=ze(b.g),Yt(f,2,Z);break;case 26:Z=ne(b),Yt(f,3,Z);break;case 34:Z=ne(b),Yt(f,4,Z);break;default:if(!Ot(f,b))return f}return f}function Xt(f){ie.call(this,f,-1,Ae)}xt(Xt,ie),Xt.prototype.addClassification=function(f,b){$t(this,f,xe,b)};var Ae=[1];function Ke(f){ie.call(this,f)}xt(Ke,ie);function Se(f,b){for(;Lt(b);)switch(b.i){case 13:var Z=ze(b.g);Yt(f,1,Z);break;case 21:Z=ze(b.g),Yt(f,2,Z);break;case 29:Z=ze(b.g),Yt(f,3,Z);break;case 37:Z=ze(b.g),Yt(f,4,Z);break;case 45:Z=ze(b.g),Yt(f,5,Z);break;default:if(!Ot(f,b))return f}return f}function Jt(f){ie.call(this,f,-1,Ee)}xt(Jt,ie);var Ee=[1];function an(f){ie.call(this,f)}xt(an,ie);function De(f,b,Z){if(Z=f.createShader(Z===0?f.VERTEX_SHADER:f.FRAGMENT_SHADER),f.shaderSource(Z,b),f.compileShader(Z),!f.getShaderParameter(Z,f.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
1
|
+
(function(fn,Mn){typeof exports=="object"&&typeof module!="undefined"?Mn(exports):typeof define=="function"&&define.amd?define(["exports"],Mn):(fn=typeof globalThis!="undefined"?globalThis:fn||self,Mn(fn["ml-transformers"]={}))})(this,function(fn){"use strict";var Mn=(S=>(S.Low="Low",S.High="High",S))(Mn||{});const ki=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function Ji(){return new Promise((S,v)=>{typeof MediaStreamTrackProcessor=="undefined"||typeof MediaStreamTrackGenerator=="undefined"?v("Your browser does not support the MediaStreamTrack API for Insertable Streams of Media."):S()})}var ti={exports:{}},ei=function(v,G){return function(){for(var I=new Array(arguments.length),A=0;A<I.length;A++)I[A]=arguments[A];return v.apply(G,I)}},ji=ei,On=Object.prototype.toString;function Nr(S){return Array.isArray(S)}function Yr(S){return typeof S=="undefined"}function Ci(S){return S!==null&&!Yr(S)&&S.constructor!==null&&!Yr(S.constructor)&&typeof S.constructor.isBuffer=="function"&&S.constructor.isBuffer(S)}function ni(S){return On.call(S)==="[object ArrayBuffer]"}function Hi(S){return On.call(S)==="[object FormData]"}function Ui(S){var v;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?v=ArrayBuffer.isView(S):v=S&&S.buffer&&ni(S.buffer),v}function Ai(S){return typeof S=="string"}function Oi(S){return typeof S=="number"}function ri(S){return S!==null&&typeof S=="object"}function ar(S){if(On.call(S)!=="[object Object]")return!1;var v=Object.getPrototypeOf(S);return v===null||v===Object.prototype}function Ki(S){return On.call(S)==="[object Date]"}function _i(S){return On.call(S)==="[object File]"}function Bi(S){return On.call(S)==="[object Blob]"}function ii(S){return On.call(S)==="[object Function]"}function Pi(S){return ri(S)&&ii(S.pipe)}function zi(S){return On.call(S)==="[object URLSearchParams]"}function Mi(S){return S.trim?S.trim():S.replace(/^\s+|\s+$/g,"")}function Qi(){return typeof navigator!="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window!="undefined"&&typeof document!="undefined"}function kr(S,v){if(!(S===null||typeof S=="undefined"))if(typeof S!="object"&&(S=[S]),Nr(S))for(var G=0,L=S.length;G<L;G++)v.call(null,S[G],G,S);else for(var I in S)Object.prototype.hasOwnProperty.call(S,I)&&v.call(null,S[I],I,S)}function Jr(){var S={};function v(I,A){ar(S[A])&&ar(I)?S[A]=Jr(S[A],I):ar(I)?S[A]=Jr({},I):Nr(I)?S[A]=I.slice():S[A]=I}for(var G=0,L=arguments.length;G<L;G++)kr(arguments[G],v);return S}function Di(S,v,G){return kr(v,function(I,A){G&&typeof I=="function"?S[A]=ji(I,G):S[A]=I}),S}function $i(S){return S.charCodeAt(0)===65279&&(S=S.slice(1)),S}var Nn={isArray:Nr,isArrayBuffer:ni,isBuffer:Ci,isFormData:Hi,isArrayBufferView:Ui,isString:Ai,isNumber:Oi,isObject:ri,isPlainObject:ar,isUndefined:Yr,isDate:Ki,isFile:_i,isBlob:Bi,isFunction:ii,isStream:Pi,isURLSearchParams:zi,isStandardBrowserEnv:Qi,forEach:kr,merge:Jr,extend:Di,trim:Mi,stripBOM:$i},Qn=Nn;function oi(S){return encodeURIComponent(S).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var ui=function(v,G,L){if(!G)return v;var I;if(L)I=L(G);else if(Qn.isURLSearchParams(G))I=G.toString();else{var A=[];Qn.forEach(G,function(dt,_e){dt===null||typeof dt=="undefined"||(Qn.isArray(dt)?_e=_e+"[]":dt=[dt],Qn.forEach(dt,function(Ct){Qn.isDate(Ct)?Ct=Ct.toISOString():Qn.isObject(Ct)&&(Ct=JSON.stringify(Ct)),A.push(oi(_e)+"="+oi(Ct))}))}),I=A.join("&")}if(I){var Q=v.indexOf("#");Q!==-1&&(v=v.slice(0,Q)),v+=(v.indexOf("?")===-1?"?":"&")+I}return v},qi=Nn;function hr(){this.handlers=[]}hr.prototype.use=function(v,G,L){return this.handlers.push({fulfilled:v,rejected:G,synchronous:L?L.synchronous:!1,runWhen:L?L.runWhen:null}),this.handlers.length-1},hr.prototype.eject=function(v){this.handlers[v]&&(this.handlers[v]=null)},hr.prototype.forEach=function(v){qi.forEach(this.handlers,function(L){L!==null&&v(L)})};var to=hr,eo=Nn,no=function(v,G){eo.forEach(v,function(I,A){A!==G&&A.toUpperCase()===G.toUpperCase()&&(v[G]=I,delete v[A])})},si=function(v,G,L,I,A){return v.config=G,L&&(v.code=L),v.request=I,v.response=A,v.isAxiosError=!0,v.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},v},ro=si,li=function(v,G,L,I,A){var Q=new Error(v);return ro(Q,G,L,I,A)},io=li,oo=function(v,G,L){var I=L.config.validateStatus;!L.status||!I||I(L.status)?v(L):G(io("Request failed with status code "+L.status,L.config,null,L.request,L))},fr=Nn,uo=fr.isStandardBrowserEnv()?function(){return{write:function(G,L,I,A,Q,U){var dt=[];dt.push(G+"="+encodeURIComponent(L)),fr.isNumber(I)&&dt.push("expires="+new Date(I).toGMTString()),fr.isString(A)&&dt.push("path="+A),fr.isString(Q)&&dt.push("domain="+Q),U===!0&&dt.push("secure"),document.cookie=dt.join("; ")},read:function(G){var L=document.cookie.match(new RegExp("(^|;\\s*)("+G+")=([^;]*)"));return L?decodeURIComponent(L[3]):null},remove:function(G){this.write(G,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),so=function(v){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(v)},lo=function(v,G){return G?v.replace(/\/+$/,"")+"/"+G.replace(/^\/+/,""):v},co=so,ao=lo,ho=function(v,G){return v&&!co(G)?ao(v,G):G},jr=Nn,fo=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],po=function(v){var G={},L,I,A;return v&&jr.forEach(v.split(`
|
|
2
|
+
`),function(U){if(A=U.indexOf(":"),L=jr.trim(U.substr(0,A)).toLowerCase(),I=jr.trim(U.substr(A+1)),L){if(G[L]&&fo.indexOf(L)>=0)return;L==="set-cookie"?G[L]=(G[L]?G[L]:[]).concat([I]):G[L]=G[L]?G[L]+", "+I:I}}),G},ci=Nn,go=ci.isStandardBrowserEnv()?function(){var v=/(msie|trident)/i.test(navigator.userAgent),G=document.createElement("a"),L;function I(A){var Q=A;return v&&(G.setAttribute("href",Q),Q=G.href),G.setAttribute("href",Q),{href:G.href,protocol:G.protocol?G.protocol.replace(/:$/,""):"",host:G.host,search:G.search?G.search.replace(/^\?/,""):"",hash:G.hash?G.hash.replace(/^#/,""):"",hostname:G.hostname,port:G.port,pathname:G.pathname.charAt(0)==="/"?G.pathname:"/"+G.pathname}}return L=I(window.location.href),function(Q){var U=ci.isString(Q)?I(Q):Q;return U.protocol===L.protocol&&U.host===L.host}}():function(){return function(){return!0}}();function Cr(S){this.message=S}Cr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Cr.prototype.__CANCEL__=!0;var dr=Cr,pr=Nn,mo=oo,yo=uo,vo=ui,bo=ho,Zo=po,Xo=go,Hr=li,Ro=mr,wo=dr,ai=function(v){return new Promise(function(L,I){var A=v.data,Q=v.headers,U=v.responseType,dt;function _e(){v.cancelToken&&v.cancelToken.unsubscribe(dt),v.signal&&v.signal.removeEventListener("abort",dt)}pr.isFormData(A)&&delete Q["Content-Type"];var ct=new XMLHttpRequest;if(v.auth){var Ct=v.auth.username||"",qe=v.auth.password?unescape(encodeURIComponent(v.auth.password)):"";Q.Authorization="Basic "+btoa(Ct+":"+qe)}var he=bo(v.baseURL,v.url);ct.open(v.method.toUpperCase(),vo(he,v.params,v.paramsSerializer),!0),ct.timeout=v.timeout;function je(){if(!!ct){var ue="getAllResponseHeaders"in ct?Zo(ct.getAllResponseHeaders()):null,de=!U||U==="text"||U==="json"?ct.responseText:ct.response,fe={data:de,status:ct.status,statusText:ct.statusText,headers:ue,config:v,request:ct};mo(function(In){L(In),_e()},function(In){I(In),_e()},fe),ct=null}}if("onloadend"in ct?ct.onloadend=je:ct.onreadystatechange=function(){!ct||ct.readyState!==4||ct.status===0&&!(ct.responseURL&&ct.responseURL.indexOf("file:")===0)||setTimeout(je)},ct.onabort=function(){!ct||(I(Hr("Request aborted",v,"ECONNABORTED",ct)),ct=null)},ct.onerror=function(){I(Hr("Network Error",v,null,ct)),ct=null},ct.ontimeout=function(){var de=v.timeout?"timeout of "+v.timeout+"ms exceeded":"timeout exceeded",fe=v.transitional||Ro.transitional;v.timeoutErrorMessage&&(de=v.timeoutErrorMessage),I(Hr(de,v,fe.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",ct)),ct=null},pr.isStandardBrowserEnv()){var Ft=(v.withCredentials||Xo(he))&&v.xsrfCookieName?yo.read(v.xsrfCookieName):void 0;Ft&&(Q[v.xsrfHeaderName]=Ft)}"setRequestHeader"in ct&&pr.forEach(Q,function(de,fe){typeof A=="undefined"&&fe.toLowerCase()==="content-type"?delete Q[fe]:ct.setRequestHeader(fe,de)}),pr.isUndefined(v.withCredentials)||(ct.withCredentials=!!v.withCredentials),U&&U!=="json"&&(ct.responseType=v.responseType),typeof v.onDownloadProgress=="function"&&ct.addEventListener("progress",v.onDownloadProgress),typeof v.onUploadProgress=="function"&&ct.upload&&ct.upload.addEventListener("progress",v.onUploadProgress),(v.cancelToken||v.signal)&&(dt=function(ue){!ct||(I(!ue||ue&&ue.type?new wo("canceled"):ue),ct.abort(),ct=null)},v.cancelToken&&v.cancelToken.subscribe(dt),v.signal&&(v.signal.aborted?dt():v.signal.addEventListener("abort",dt))),A||(A=null),ct.send(A)})},Tn=Nn,hi=no,Go=si,Wo={"Content-Type":"application/x-www-form-urlencoded"};function fi(S,v){!Tn.isUndefined(S)&&Tn.isUndefined(S["Content-Type"])&&(S["Content-Type"]=v)}function So(){var S;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(S=ai),S}function Vo(S,v,G){if(Tn.isString(S))try{return(v||JSON.parse)(S),Tn.trim(S)}catch(L){if(L.name!=="SyntaxError")throw L}return(G||JSON.stringify)(S)}var gr={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:So(),transformRequest:[function(v,G){return hi(G,"Accept"),hi(G,"Content-Type"),Tn.isFormData(v)||Tn.isArrayBuffer(v)||Tn.isBuffer(v)||Tn.isStream(v)||Tn.isFile(v)||Tn.isBlob(v)?v:Tn.isArrayBufferView(v)?v.buffer:Tn.isURLSearchParams(v)?(fi(G,"application/x-www-form-urlencoded;charset=utf-8"),v.toString()):Tn.isObject(v)||G&&G["Content-Type"]==="application/json"?(fi(G,"application/json"),Vo(v)):v}],transformResponse:[function(v){var G=this.transitional||gr.transitional,L=G&&G.silentJSONParsing,I=G&&G.forcedJSONParsing,A=!L&&this.responseType==="json";if(A||I&&Tn.isString(v)&&v.length)try{return JSON.parse(v)}catch(Q){if(A)throw Q.name==="SyntaxError"?Go(Q,this,"E_JSON_PARSE"):Q}return v}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(v){return v>=200&&v<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Tn.forEach(["delete","get","head"],function(v){gr.headers[v]={}}),Tn.forEach(["post","put","patch"],function(v){gr.headers[v]=Tn.merge(Wo)});var mr=gr,To=Nn,Io=mr,xo=function(v,G,L){var I=this||Io;return To.forEach(L,function(Q){v=Q.call(I,v,G)}),v},di=function(v){return!!(v&&v.__CANCEL__)},pi=Nn,Ur=xo,Fo=di,Lo=mr,Eo=dr;function Ar(S){if(S.cancelToken&&S.cancelToken.throwIfRequested(),S.signal&&S.signal.aborted)throw new Eo("canceled")}var No=function(v){Ar(v),v.headers=v.headers||{},v.data=Ur.call(v,v.data,v.headers,v.transformRequest),v.headers=pi.merge(v.headers.common||{},v.headers[v.method]||{},v.headers),pi.forEach(["delete","get","head","post","put","patch","common"],function(I){delete v.headers[I]});var G=v.adapter||Lo.adapter;return G(v).then(function(I){return Ar(v),I.data=Ur.call(v,I.data,I.headers,v.transformResponse),I},function(I){return Fo(I)||(Ar(v),I&&I.response&&(I.response.data=Ur.call(v,I.response.data,I.response.headers,v.transformResponse))),Promise.reject(I)})},Jn=Nn,gi=function(v,G){G=G||{};var L={};function I(ct,Ct){return Jn.isPlainObject(ct)&&Jn.isPlainObject(Ct)?Jn.merge(ct,Ct):Jn.isPlainObject(Ct)?Jn.merge({},Ct):Jn.isArray(Ct)?Ct.slice():Ct}function A(ct){if(Jn.isUndefined(G[ct])){if(!Jn.isUndefined(v[ct]))return I(void 0,v[ct])}else return I(v[ct],G[ct])}function Q(ct){if(!Jn.isUndefined(G[ct]))return I(void 0,G[ct])}function U(ct){if(Jn.isUndefined(G[ct])){if(!Jn.isUndefined(v[ct]))return I(void 0,v[ct])}else return I(void 0,G[ct])}function dt(ct){if(ct in G)return I(v[ct],G[ct]);if(ct in v)return I(void 0,v[ct])}var _e={url:Q,method:Q,data:Q,baseURL:U,transformRequest:U,transformResponse:U,paramsSerializer:U,timeout:U,timeoutMessage:U,withCredentials:U,adapter:U,responseType:U,xsrfCookieName:U,xsrfHeaderName:U,onUploadProgress:U,onDownloadProgress:U,decompress:U,maxContentLength:U,maxBodyLength:U,transport:U,httpAgent:U,httpsAgent:U,cancelToken:U,socketPath:U,responseEncoding:U,validateStatus:dt};return Jn.forEach(Object.keys(v).concat(Object.keys(G)),function(Ct){var qe=_e[Ct]||A,he=qe(Ct);Jn.isUndefined(he)&&qe!==dt||(L[Ct]=he)}),L},mi={version:"0.25.0"},Yo=mi.version,Or={};["object","boolean","number","function","string","symbol"].forEach(function(S,v){Or[S]=function(L){return typeof L===S||"a"+(v<1?"n ":" ")+S}});var yi={};Or.transitional=function(v,G,L){function I(A,Q){return"[Axios v"+Yo+"] Transitional option '"+A+"'"+Q+(L?". "+L:"")}return function(A,Q,U){if(v===!1)throw new Error(I(Q," has been removed"+(G?" in "+G:"")));return G&&!yi[Q]&&(yi[Q]=!0,console.warn(I(Q," has been deprecated since v"+G+" and will be removed in the near future"))),v?v(A,Q,U):!0}};function ko(S,v,G){if(typeof S!="object")throw new TypeError("options must be an object");for(var L=Object.keys(S),I=L.length;I-- >0;){var A=L[I],Q=v[A];if(Q){var U=S[A],dt=U===void 0||Q(U,A,S);if(dt!==!0)throw new TypeError("option "+A+" must be "+dt);continue}if(G!==!0)throw Error("Unknown option "+A)}}var Jo={assertOptions:ko,validators:Or},vi=Nn,jo=ui,bi=to,Zi=No,yr=gi,Xi=Jo,Dn=Xi.validators;function or(S){this.defaults=S,this.interceptors={request:new bi,response:new bi}}or.prototype.request=function(v,G){if(typeof v=="string"?(G=G||{},G.url=v):G=v||{},!G.url)throw new Error("Provided config url is not valid");G=yr(this.defaults,G),G.method?G.method=G.method.toLowerCase():this.defaults.method?G.method=this.defaults.method.toLowerCase():G.method="get";var L=G.transitional;L!==void 0&&Xi.assertOptions(L,{silentJSONParsing:Dn.transitional(Dn.boolean),forcedJSONParsing:Dn.transitional(Dn.boolean),clarifyTimeoutError:Dn.transitional(Dn.boolean)},!1);var I=[],A=!0;this.interceptors.request.forEach(function(he){typeof he.runWhen=="function"&&he.runWhen(G)===!1||(A=A&&he.synchronous,I.unshift(he.fulfilled,he.rejected))});var Q=[];this.interceptors.response.forEach(function(he){Q.push(he.fulfilled,he.rejected)});var U;if(!A){var dt=[Zi,void 0];for(Array.prototype.unshift.apply(dt,I),dt=dt.concat(Q),U=Promise.resolve(G);dt.length;)U=U.then(dt.shift(),dt.shift());return U}for(var _e=G;I.length;){var ct=I.shift(),Ct=I.shift();try{_e=ct(_e)}catch(qe){Ct(qe);break}}try{U=Zi(_e)}catch(qe){return Promise.reject(qe)}for(;Q.length;)U=U.then(Q.shift(),Q.shift());return U},or.prototype.getUri=function(v){if(!v.url)throw new Error("Provided config url is not valid");return v=yr(this.defaults,v),jo(v.url,v.params,v.paramsSerializer).replace(/^\?/,"")},vi.forEach(["delete","get","head","options"],function(v){or.prototype[v]=function(G,L){return this.request(yr(L||{},{method:v,url:G,data:(L||{}).data}))}}),vi.forEach(["post","put","patch"],function(v){or.prototype[v]=function(G,L,I){return this.request(yr(I||{},{method:v,url:G,data:L}))}});var Co=or,Ho=dr;function $n(S){if(typeof S!="function")throw new TypeError("executor must be a function.");var v;this.promise=new Promise(function(I){v=I});var G=this;this.promise.then(function(L){if(!!G._listeners){var I,A=G._listeners.length;for(I=0;I<A;I++)G._listeners[I](L);G._listeners=null}}),this.promise.then=function(L){var I,A=new Promise(function(Q){G.subscribe(Q),I=Q}).then(L);return A.cancel=function(){G.unsubscribe(I)},A},S(function(I){G.reason||(G.reason=new Ho(I),v(G.reason))})}$n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},$n.prototype.subscribe=function(v){if(this.reason){v(this.reason);return}this._listeners?this._listeners.push(v):this._listeners=[v]},$n.prototype.unsubscribe=function(v){if(!!this._listeners){var G=this._listeners.indexOf(v);G!==-1&&this._listeners.splice(G,1)}},$n.source=function(){var v,G=new $n(function(I){v=I});return{token:G,cancel:v}};var Uo=$n,Ao=function(v){return function(L){return v.apply(null,L)}},Oo=Nn,Ko=function(v){return Oo.isObject(v)&&v.isAxiosError===!0},Ri=Nn,_o=ei,vr=Co,Bo=gi,Po=mr;function wi(S){var v=new vr(S),G=_o(vr.prototype.request,v);return Ri.extend(G,vr.prototype,v),Ri.extend(G,v),G.create=function(I){return wi(Bo(S,I))},G}var An=wi(Po);An.Axios=vr,An.Cancel=dr,An.CancelToken=Uo,An.isCancel=di,An.VERSION=mi.version,An.all=function(v){return Promise.all(v)},An.spread=Ao,An.isAxiosError=Ko,ti.exports=An,ti.exports.default=An;function zo(){return globalThis._vonageMediaProcessorMetadata}for(var Mo=[],Kr=0;Kr<256;++Kr)Mo.push((Kr+256).toString(16).substr(1));const Kn=new WeakMap,br=new WeakMap,ur=new WeakMap,_r=Symbol("anyProducer"),Gi=Promise.resolve(),Zr=Symbol("listenerAdded"),Xr=Symbol("listenerRemoved");let Br=!1;function qn(S){if(typeof S!="string"&&typeof S!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Rr(S){if(typeof S!="function")throw new TypeError("listener must be a function")}function tr(S,v){const G=br.get(S);return G.has(v)||G.set(v,new Set),G.get(v)}function sr(S,v){const G=typeof v=="string"||typeof v=="symbol"?v:_r,L=ur.get(S);return L.has(G)||L.set(G,new Set),L.get(G)}function Qo(S,v,G){const L=ur.get(S);if(L.has(v))for(const I of L.get(v))I.enqueue(G);if(L.has(_r)){const I=Promise.all([v,G]);for(const A of L.get(_r))A.enqueue(I)}}function Wi(S,v){v=Array.isArray(v)?v:[v];let G=!1,L=()=>{},I=[];const A={enqueue(Q){I.push(Q),L()},finish(){G=!0,L()}};for(const Q of v)sr(S,Q).add(A);return{async next(){return I?I.length===0?G?(I=void 0,this.next()):(await new Promise(Q=>{L=Q}),this.next()):{done:!1,value:await I.shift()}:{done:!0}},async return(Q){I=void 0;for(const U of v)sr(S,U).delete(A);return L(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Si(S){if(S===void 0)return Vi;if(!Array.isArray(S))throw new TypeError("`methodNames` must be an array of strings");for(const v of S)if(!Vi.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return S}const Pr=S=>S===Zr||S===Xr;class er{static mixin(v,G){return G=Si(G),L=>{if(typeof L!="function")throw new TypeError("`target` must be function");for(const Q of G)if(L.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function I(){return Object.defineProperty(this,v,{enumerable:!1,value:new er}),this[v]}Object.defineProperty(L.prototype,v,{enumerable:!1,get:I});const A=Q=>function(...U){return this[v][Q](...U)};for(const Q of G)Object.defineProperty(L.prototype,Q,{enumerable:!1,value:A(Q)});return L}}static get isDebugEnabled(){if(typeof process!="object")return Br;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Br}static set isDebugEnabled(v){Br=v}constructor(v={}){Kn.set(this,new Set),br.set(this,new Map),ur.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(G,L,I,A)=>{A=JSON.stringify(A),typeof I=="symbol"&&(I=I.toString());const Q=new Date,U=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${U}][emittery:${G}][${L}] Event Name: ${I}
|
|
3
|
+
data: ${A}`)})}logIfDebugEnabled(v,G,L){(er.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,G,L)}on(v,G){Rr(G),v=Array.isArray(v)?v:[v];for(const L of v)qn(L),tr(this,L).add(G),this.logIfDebugEnabled("subscribe",L,void 0),Pr(L)||this.emit(Zr,{eventName:L,listener:G});return this.off.bind(this,v,G)}off(v,G){Rr(G),v=Array.isArray(v)?v:[v];for(const L of v)qn(L),tr(this,L).delete(G),this.logIfDebugEnabled("unsubscribe",L,void 0),Pr(L)||this.emit(Xr,{eventName:L,listener:G})}once(v){return new Promise(G=>{const L=this.on(v,I=>{L(),G(I)})})}events(v){v=Array.isArray(v)?v:[v];for(const G of v)qn(G);return Wi(this,v)}async emit(v,G){qn(v),this.logIfDebugEnabled("emit",v,G),Qo(this,v,G);const L=tr(this,v),I=Kn.get(this),A=[...L],Q=Pr(v)?[]:[...I];await Gi,await Promise.all([...A.map(async U=>{if(L.has(U))return U(G)}),...Q.map(async U=>{if(I.has(U))return U(v,G)})])}async emitSerial(v,G){qn(v),this.logIfDebugEnabled("emitSerial",v,G);const L=tr(this,v),I=Kn.get(this),A=[...L],Q=[...I];await Gi;for(const U of A)L.has(U)&&await U(G);for(const U of Q)I.has(U)&&await U(v,G)}onAny(v){return Rr(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Kn.get(this).add(v),this.emit(Zr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return Wi(this)}offAny(v){Rr(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Xr,{listener:v}),Kn.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const G of v)if(this.logIfDebugEnabled("clear",G,void 0),typeof G=="string"||typeof G=="symbol"){tr(this,G).clear();const L=sr(this,G);for(const I of L)I.finish();L.clear()}else{Kn.get(this).clear();for(const L of br.get(this).values())L.clear();for(const L of ur.get(this).values()){for(const I of L)I.finish();L.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let G=0;for(const L of v){if(typeof L=="string"){G+=Kn.get(this).size+tr(this,L).size+sr(this,L).size+sr(this).size;continue}typeof L!="undefined"&&qn(L),G+=Kn.get(this).size;for(const I of br.get(this).values())G+=I.size;for(const I of ur.get(this).values())G+=I.size}return G}bindMethods(v,G){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");G=Si(G);for(const L of G){if(v[L]!==void 0)throw new Error(`The property \`${L}\` already exists on \`target\``);Object.defineProperty(v,L,{enumerable:!1,value:this[L].bind(this)})}}}const Vi=Object.getOwnPropertyNames(er.prototype).filter(S=>S!=="constructor");Object.defineProperty(er,"listenerAdded",{value:Zr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(er,"listenerRemoved",{value:Xr,writable:!1,enumerable:!0,configurable:!1});var Ti;(function(S){S.FPS_DROP="fps_drop"})(Ti||(Ti={}));class Do{constructor(){this.processor_=null,this.generator_=null}init(v){return new Promise((G,L)=>{try{this.processor_=new MediaStreamTrackProcessor(v)}catch(I){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${I}`),L(I)}try{v.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):v.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):L("kind not supported")}catch(I){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${I}`),L(I)}G()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class $o{constructor(v){this.insertableStreamHelper_=new Do,this.mediaProcessor_=v}setTrack(v){return new Promise((G,L)=>{this.insertableStreamHelper_.init(v).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{G(this.insertableStreamHelper_.getProccesorTrack())}).catch(I=>{L(I)})}).catch(I=>{L(I)})})}destroy(){return new Promise((v,G)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{v()}).catch(L=>{G(L)}):G("no processor")})}}function qo(){return new Promise(async(S,v)=>{try{await Ji()}catch(G){v(G);return}ki().then(G=>{if(G===!1){v("Your browser does not support WebAssembly features.");return}S()}).catch(G=>{v(G)})})}const wr={};(function(){var S;function v(h){var b=0;return function(){return b<h.length?{done:!1,value:h[b++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(h,b,Z){return h==Array.prototype||h==Object.prototype||(h[b]=Z.value),h};function L(h){h=[typeof globalThis=="object"&&globalThis,h,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var b=0;b<h.length;++b){var Z=h[b];if(Z&&Z.Math==Math)return Z}throw Error("Cannot find global object")}var I=L(this);function A(h,b){if(b)t:{var Z=I;h=h.split(".");for(var Y=0;Y<h.length-1;Y++){var _=h[Y];if(!(_ in Z))break t;Z=Z[_]}h=h[h.length-1],Y=Z[h],b=b(Y),b!=Y&&b!=null&&G(Z,h,{configurable:!0,writable:!0,value:b})}}A("Symbol",function(h){function b(et){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new Z(Y+(et||"")+"_"+_++,et)}function Z(et,K){this.g=et,G(this,"description",{configurable:!0,writable:!0,value:K})}if(h)return h;Z.prototype.toString=function(){return this.g};var Y="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",_=0;return b}),A("Symbol.iterator",function(h){if(h)return h;h=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Z=0;Z<b.length;Z++){var Y=I[b[Z]];typeof Y=="function"&&typeof Y.prototype[h]!="function"&&G(Y.prototype,h,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return h});function Q(h){return h={next:h},h[Symbol.iterator]=function(){return this},h}function U(h){var b=typeof Symbol!="undefined"&&Symbol.iterator&&h[Symbol.iterator];return b?b.call(h):{next:v(h)}}function dt(h){if(!(h instanceof Array)){h=U(h);for(var b,Z=[];!(b=h.next()).done;)Z.push(b.value);h=Z}return h}var _e=typeof Object.create=="function"?Object.create:function(h){function b(){}return b.prototype=h,new b},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(h,b){if(h.__proto__=b,h.__proto__!==b)throw new TypeError(h+" is not extensible");return h}:null}var je=ct;function Ft(h,b){if(h.prototype=_e(b.prototype),h.prototype.constructor=h,je)je(h,b);else for(var Z in b)if(Z!="prototype")if(Object.defineProperties){var Y=Object.getOwnPropertyDescriptor(b,Z);Y&&Object.defineProperty(h,Z,Y)}else h[Z]=b[Z];h.ea=b.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(h){if(h.l)throw new TypeError("Generator is already running");h.l=!0}ue.prototype.o=function(h){this.h=h};function fe(h,b){h.j={U:b,V:!0},h.g=h.m||h.s}ue.prototype.return=function(h){this.j={return:h},this.g=this.s};function $(h,b,Z){return h.g=Z,{value:b}}function In(h){this.g=new ue,this.h=h}function jn(h,b){de(h.g);var Z=h.g.i;return Z?Ce(h,"return"in Z?Z.return:function(Y){return{value:Y,done:!0}},b,h.g.return):(h.g.return(b),ee(h))}function Ce(h,b,Z,Y){try{var _=b.call(h.g.i,Z);if(!(_ instanceof Object))throw new TypeError("Iterator result "+_+" is not an object");if(!_.done)return h.g.l=!1,_;var et=_.value}catch(K){return h.g.i=null,fe(h.g,K),ee(h)}return h.g.i=null,Y.call(h.g,et),ee(h)}function ee(h){for(;h.g.g;)try{var b=h.h(h.g);if(b)return h.g.l=!1,{value:b.value,done:!1}}catch(Z){h.g.h=void 0,fe(h.g,Z)}if(h.g.l=!1,h.g.j){if(b=h.g.j,h.g.j=null,b.V)throw b.U;return{value:b.return,done:!0}}return{value:void 0,done:!0}}function Cn(h){this.next=function(b){return de(h.g),h.g.i?b=Ce(h,h.g.i.next,b,h.g.o):(h.g.o(b),b=ee(h)),b},this.throw=function(b){return de(h.g),h.g.i?b=Ce(h,h.g.i.throw,b,h.g.o):(fe(h.g,b),b=ee(h)),b},this.return=function(b){return jn(h,b)},this[Symbol.iterator]=function(){return this}}function te(h,b){return b=new Cn(new In(b)),je&&h.prototype&&je(b,h.prototype),b}function ft(h,b){h instanceof String&&(h+="");var Z=0,Y=!1,_={next:function(){if(!Y&&Z<h.length){var et=Z++;return{value:b(et,h[et]),done:!1}}return Y=!0,{done:!0,value:void 0}}};return _[Symbol.iterator]=function(){return _},_}var Hn=typeof Object.assign=="function"?Object.assign:function(h,b){for(var Z=1;Z<arguments.length;Z++){var Y=arguments[Z];if(Y)for(var _ in Y)Object.prototype.hasOwnProperty.call(Y,_)&&(h[_]=Y[_])}return h};A("Object.assign",function(h){return h||Hn}),A("Promise",function(h){function b(K){this.h=0,this.i=void 0,this.g=[],this.o=!1;var tt=this.j();try{K(tt.resolve,tt.reject)}catch(st){tt.reject(st)}}function Z(){this.g=null}function Y(K){return K instanceof b?K:new b(function(tt){tt(K)})}if(h)return h;Z.prototype.h=function(K){if(this.g==null){this.g=[];var tt=this;this.i(function(){tt.l()})}this.g.push(K)};var _=I.setTimeout;Z.prototype.i=function(K){_(K,0)},Z.prototype.l=function(){for(;this.g&&this.g.length;){var K=this.g;this.g=[];for(var tt=0;tt<K.length;++tt){var st=K[tt];K[tt]=null;try{st()}catch(mt){this.j(mt)}}}this.g=null},Z.prototype.j=function(K){this.i(function(){throw K})},b.prototype.j=function(){function K(mt){return function(It){st||(st=!0,mt.call(tt,It))}}var tt=this,st=!1;return{resolve:K(this.C),reject:K(this.l)}},b.prototype.C=function(K){if(K===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(K instanceof b)this.F(K);else{t:switch(typeof K){case"object":var tt=K!=null;break t;case"function":tt=!0;break t;default:tt=!1}tt?this.u(K):this.m(K)}},b.prototype.u=function(K){var tt=void 0;try{tt=K.then}catch(st){this.l(st);return}typeof tt=="function"?this.G(tt,K):this.m(K)},b.prototype.l=function(K){this.s(2,K)},b.prototype.m=function(K){this.s(1,K)},b.prototype.s=function(K,tt){if(this.h!=0)throw Error("Cannot settle("+K+", "+tt+"): Promise already settled in state"+this.h);this.h=K,this.i=tt,this.h===2&&this.D(),this.A()},b.prototype.D=function(){var K=this;_(function(){if(K.B()){var tt=I.console;typeof tt!="undefined"&&tt.error(K.i)}},1)},b.prototype.B=function(){if(this.o)return!1;var K=I.CustomEvent,tt=I.Event,st=I.dispatchEvent;return typeof st=="undefined"?!0:(typeof K=="function"?K=new K("unhandledrejection",{cancelable:!0}):typeof tt=="function"?K=new tt("unhandledrejection",{cancelable:!0}):(K=I.document.createEvent("CustomEvent"),K.initCustomEvent("unhandledrejection",!1,!0,K)),K.promise=this,K.reason=this.i,st(K))},b.prototype.A=function(){if(this.g!=null){for(var K=0;K<this.g.length;++K)et.h(this.g[K]);this.g=null}};var et=new Z;return b.prototype.F=function(K){var tt=this.j();K.J(tt.resolve,tt.reject)},b.prototype.G=function(K,tt){var st=this.j();try{K.call(tt,st.resolve,st.reject)}catch(mt){st.reject(mt)}},b.prototype.then=function(K,tt){function st(jt,Wt){return typeof jt=="function"?function(Zt){try{mt(jt(Zt))}catch(Tt){It(Tt)}}:Wt}var mt,It,Gt=new b(function(jt,Wt){mt=jt,It=Wt});return this.J(st(K,mt),st(tt,It)),Gt},b.prototype.catch=function(K){return this.then(void 0,K)},b.prototype.J=function(K,tt){function st(){switch(mt.h){case 1:K(mt.i);break;case 2:tt(mt.i);break;default:throw Error("Unexpected state: "+mt.h)}}var mt=this;this.g==null?et.h(st):this.g.push(st),this.o=!0},b.resolve=Y,b.reject=function(K){return new b(function(tt,st){st(K)})},b.race=function(K){return new b(function(tt,st){for(var mt=U(K),It=mt.next();!It.done;It=mt.next())Y(It.value).J(tt,st)})},b.all=function(K){var tt=U(K),st=tt.next();return st.done?Y([]):new b(function(mt,It){function Gt(Zt){return function(Tt){jt[Zt]=Tt,Wt--,Wt==0&&mt(jt)}}var jt=[],Wt=0;do jt.push(void 0),Wt++,Y(st.value).J(Gt(jt.length-1),It),st=tt.next();while(!st.done)})},b}),A("Object.is",function(h){return h||function(b,Z){return b===Z?b!==0||1/b===1/Z:b!==b&&Z!==Z}}),A("Array.prototype.includes",function(h){return h||function(b,Z){var Y=this;Y instanceof String&&(Y=String(Y));var _=Y.length;for(Z=Z||0,0>Z&&(Z=Math.max(Z+_,0));Z<_;Z++){var et=Y[Z];if(et===b||Object.is(et,b))return!0}return!1}}),A("String.prototype.includes",function(h){return h||function(b,Z){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(b,Z||0)!==-1}}),A("Array.prototype.keys",function(h){return h||function(){return ft(this,function(b){return b})}});var Un=this||self;function ye(h,b){h=h.split(".");var Z=Un;h[0]in Z||typeof Z.execScript=="undefined"||Z.execScript("var "+h[0]);for(var Y;h.length&&(Y=h.shift());)h.length||b===void 0?Z[Y]&&Z[Y]!==Object.prototype[Y]?Z=Z[Y]:Z=Z[Y]={}:Z[Y]=b}function Vt(h,b){return b=String.fromCharCode.apply(null,b),h==null?b:h+b}var We,tn=typeof TextDecoder!="undefined",dn,Wn=typeof TextEncoder!="undefined";function Zn(h){if(Wn)h=(dn||(dn=new TextEncoder)).encode(h);else{var b=void 0;b=b===void 0?!1:b;for(var Z=0,Y=new Uint8Array(3*h.length),_=0;_<h.length;_++){var et=h.charCodeAt(_);if(128>et)Y[Z++]=et;else{if(2048>et)Y[Z++]=et>>6|192;else{if(55296<=et&&57343>=et){if(56319>=et&&_<h.length){var K=h.charCodeAt(++_);if(56320<=K&&57343>=K){et=1024*(et-55296)+K-56320+65536,Y[Z++]=et>>18|240,Y[Z++]=et>>12&63|128,Y[Z++]=et>>6&63|128,Y[Z++]=et&63|128;continue}else _--}if(b)throw Error("Found an unpaired surrogate");et=65533}Y[Z++]=et>>12|224,Y[Z++]=et>>6&63|128}Y[Z++]=et&63|128}}h=Y.subarray(0,Z)}return h}var xn={},en=null;function un(h,b){b===void 0&&(b=0),pn(),b=xn[b];for(var Z=Array(Math.floor(h.length/3)),Y=b[64]||"",_=0,et=0;_<h.length-2;_+=3){var K=h[_],tt=h[_+1],st=h[_+2],mt=b[K>>2];K=b[(K&3)<<4|tt>>4],tt=b[(tt&15)<<2|st>>6],st=b[st&63],Z[et++]=mt+K+tt+st}switch(mt=0,st=Y,h.length-_){case 2:mt=h[_+1],st=b[(mt&15)<<2]||Y;case 1:h=h[_],Z[et]=b[h>>2]+b[(h&3)<<4|mt>>4]+st+Y}return Z.join("")}function Ln(h){var b=h.length,Z=3*b/4;Z%3?Z=Math.floor(Z):"=.".indexOf(h[b-1])!=-1&&(Z="=.".indexOf(h[b-2])!=-1?Z-2:Z-1);var Y=new Uint8Array(Z),_=0;return Sn(h,function(et){Y[_++]=et}),Y.subarray(0,_)}function Sn(h,b){function Z(st){for(;Y<h.length;){var mt=h.charAt(Y++),It=en[mt];if(It!=null)return It;if(!/^[\s\xa0]*$/.test(mt))throw Error("Unknown base64 encoding at char: "+mt)}return st}pn();for(var Y=0;;){var _=Z(-1),et=Z(0),K=Z(64),tt=Z(64);if(tt===64&&_===-1)break;b(_<<2|et>>4),K!=64&&(b(et<<4&240|K>>2),tt!=64&&b(K<<6&192|tt))}}function pn(){if(!en){en={};for(var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],Z=0;5>Z;Z++){var Y=h.concat(b[Z].split(""));xn[Z]=Y;for(var _=0;_<Y.length;_++){var et=Y[_];en[et]===void 0&&(en[et]=_)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Xn;function gn(h,b,Z){return b===Z?Xn||(Xn=new Uint8Array(0)):nn?h.slice(b,Z):new Uint8Array(h.subarray(b,Z))}var ce=0,ve=0;function Be(h,b){b=b===void 0?{}:b,b=b.v===void 0?!1:b.v,this.h=null,this.g=this.i=this.j=0,this.l=!1,this.v=b,h&&le(this,h)}function le(h,b){b=b.constructor===Uint8Array?b:b.constructor===ArrayBuffer?new Uint8Array(b):b.constructor===Array?new Uint8Array(b):b.constructor===String?Ln(b):b instanceof Uint8Array?new Uint8Array(b.buffer,b.byteOffset,b.byteLength):new Uint8Array(0),h.h=b,h.j=0,h.i=h.h.length,h.g=h.j}Be.prototype.reset=function(){this.g=this.j};function ae(h){var b=h.h,Z=b[h.g],Y=Z&127;return 128>Z?(h.g+=1,Y):(Z=b[h.g+1],Y|=(Z&127)<<7,128>Z?(h.g+=2,Y):(Z=b[h.g+2],Y|=(Z&127)<<14,128>Z?(h.g+=3,Y):(Z=b[h.g+3],Y|=(Z&127)<<21,128>Z?(h.g+=4,Y):(Z=b[h.g+4],Y|=(Z&15)<<28,128>Z?(h.g+=5,Y>>>0):(h.g+=5,128<=b[h.g++]&&128<=b[h.g++]&&128<=b[h.g++]&&128<=b[h.g++]&&h.g++,Y)))))}function Me(h){var b=h.h[h.g],Z=h.h[h.g+1],Y=h.h[h.g+2],_=h.h[h.g+3];return h.g+=4,Z=(b<<0|Z<<8|Y<<16|_<<24)>>>0,h=2*(Z>>31)+1,b=Z>>>23&255,Z&=8388607,b==255?Z?NaN:1/0*h:b==0?h*Math.pow(2,-149)*Z:h*Math.pow(2,b-150)*(Z+Math.pow(2,23))}var xe=[];function Ut(){this.g=new Uint8Array(64),this.h=0}Ut.prototype.push=function(h){if(!(this.h+1<this.g.length)){var b=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(b)}this.g[this.h++]=h},Ut.prototype.length=function(){return this.h},Ut.prototype.end=function(){var h=this.g,b=this.h;return this.h=0,gn(h,0,b)};function re(h,b){for(;127<b;)h.push(b&127|128),b>>>=7;h.push(b)}function Se(h){var b={},Z=b.N===void 0?!1:b.N;this.o={v:b.v===void 0?!1:b.v},this.N=Z,b=this.o,xe.length?(Z=xe.pop(),b&&(Z.v=b.v),h&&le(Z,h),h=Z):h=new Be(h,b),this.g=h,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}Se.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function Lt(h){var b=h.g;if((b=b.g==b.i)||(b=h.j)||(b=h.g,b=b.l||0>b.g||b.g>b.i),b)return!1;h.m=h.g.g,b=ae(h.g);var Z=b&7;return Z!=0&&Z!=5&&Z!=1&&Z!=2&&Z!=3&&Z!=4?(h.j=!0,!1):(h.i=b,h.l=b>>>3,h.h=Z,!0)}function pe(h){switch(h.h){case 0:if(h.h!=0)pe(h);else{for(h=h.g;h.h[h.g]&128;)h.g++;h.g++}break;case 1:h.h!=1?pe(h):(h=h.g,h.g+=8);break;case 2:if(h.h!=2)pe(h);else{var b=ae(h.g);h=h.g,h.g+=b}break;case 5:h.h!=5?pe(h):(h=h.g,h.g+=4);break;case 3:b=h.l;do{if(!Lt(h)){h.j=!0;break}if(h.h==4){h.l!=b&&(h.j=!0);break}pe(h)}while(1);break;default:h.j=!0}}function At(h,b,Z){var Y=h.g.i,_=ae(h.g);return _=h.g.g+_,h.g.i=_,Z(b,h),h.g.g=_,h.g.i=Y,b}function ne(h){var b=ae(h.g);h=h.g;var Z=h.g;h.g+=b,h=h.h;var Y;if(tn)(Y=We)||(Y=We=new TextDecoder("utf-8",{fatal:!1})),Y=Y.decode(h.subarray(Z,Z+b));else{b=Z+b;for(var _=[],et=null,K,tt,st;Z<b;)K=h[Z++],128>K?_.push(K):224>K?Z>=b?_.push(65533):(tt=h[Z++],194>K||(tt&192)!==128?(Z--,_.push(65533)):_.push((K&31)<<6|tt&63)):240>K?Z>=b-1?_.push(65533):(tt=h[Z++],(tt&192)!==128||K===224&&160>tt||K===237&&160<=tt||((Y=h[Z++])&192)!==128?(Z--,_.push(65533)):_.push((K&15)<<12|(tt&63)<<6|Y&63)):244>=K?Z>=b-2?_.push(65533):(tt=h[Z++],(tt&192)!==128||(K<<28)+(tt-144)>>30!==0||((Y=h[Z++])&192)!==128||((st=h[Z++])&192)!==128?(Z--,_.push(65533)):(K=(K&7)<<18|(tt&63)<<12|(Y&63)<<6|st&63,K-=65536,_.push((K>>10&1023)+55296,(K&1023)+56320))):_.push(65533),8192<=_.length&&(et=Vt(et,_),_.length=0);Y=Vt(et,_)}return Y}function Xe(){this.h=[],this.i=0,this.g=new Ut}function Pe(h,b){b.length!==0&&(h.h.push(b),h.i+=b.length)}function se(h){var b=h.i+h.g.length();if(b===0)return new Uint8Array(0);b=new Uint8Array(b);for(var Z=h.h,Y=Z.length,_=0,et=0;et<Y;et++){var K=Z[et];K.length!==0&&(b.set(K,_),_+=K.length)}return Z=h.g,Y=Z.h,Y!==0&&(b.set(Z.g.subarray(0,Y),_),Z.h=0),h.h=[b],b}function Yt(h,b,Z){if(Z!=null){re(h.g,8*b+5),h=h.g;var Y=Z;Y=(Z=0>Y?1:0)?-Y:Y,Y===0?0<1/Y?ce=ve=0:(ve=0,ce=2147483648):isNaN(Y)?(ve=0,ce=2147483647):34028234663852886e22<Y?(ve=0,ce=(Z<<31|2139095040)>>>0):11754943508222875e-54>Y?(Y=Math.round(Y/Math.pow(2,-149)),ve=0,ce=(Z<<31|Y)>>>0):(b=Math.floor(Math.log(Y)/Math.LN2),Y*=Math.pow(2,-b),Y=Math.round(8388608*Y)&8388607,ve=0,ce=(Z<<31|b+127<<23|Y)>>>0),Z=ce,h.push(Z>>>0&255),h.push(Z>>>8&255),h.push(Z>>>16&255),h.push(Z>>>24&255)}}var Le=typeof Uint8Array=="function";function He(h,b,Z){if(h!=null)return typeof h=="object"?Le&&h instanceof Uint8Array?Z(h):ge(h,b,Z):b(h)}function ge(h,b,Z){if(Array.isArray(h)){for(var Y=Array(h.length),_=0;_<h.length;_++)Y[_]=He(h[_],b,Z);return Array.isArray(h)&&h.W&&sn(Y),Y}Y={};for(_ in h)Y[_]=He(h[_],b,Z);return Y}function wn(h){return typeof h=="number"?isFinite(h)?h:String(h):h}var Qe={W:{value:!0,configurable:!0}};function sn(h){return Array.isArray(h)&&!Object.isFrozen(h)&&Object.defineProperties(h,Qe),h}var cn;function ie(h,b,Z){var Y=cn;cn=null,h||(h=Y),Y=this.constructor.ca,h||(h=Y?[Y]:[]),this.j=Y?0:-1,this.i=null,this.g=h;t:{if(Y=this.g.length,h=Y-1,Y&&(Y=this.g[h],Y!==null&&typeof Y=="object"&&Y.constructor===Object)){this.l=h-this.j,this.h=Y;break t}b!==void 0&&-1<b?(this.l=Math.max(b,h+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(Z)for(b=0;b<Z.length;b++)h=Z[b],h<this.l?(h+=this.j,(Y=this.g[h])?sn(Y):this.g[h]=Re):(oe(this),(Y=this.h[h])?sn(Y):this.h[h]=Re)}var Re=Object.freeze(sn([]));function oe(h){var b=h.l+h.j;h.g[b]||(h.h=h.g[b]={})}function zt(h,b,Z){return b===-1?null:(Z===void 0?0:Z)||b>=h.l?h.h?h.h[b]:void 0:h.g[b+h.j]}function Ue(h){var b=b===void 0?!1:b,Z=zt(h,1,b);return Z==null&&(Z=Re),Z===Re&&(Z=sn([]),kt(h,1,Z,b)),Z}function Ot(h,b,Z){return h=zt(h,b),h=h==null?h:+h,h==null?Z===void 0?0:Z:h}function kt(h,b,Z,Y){(Y===void 0?0:Y)||b>=h.l?(oe(h),h.h[b]=Z):h.g[b+h.j]=Z}function mn(h,b){h.i||(h.i={});var Z=h.i[1];if(!Z){var Y=Ue(h);Z=[];for(var _=0;_<Y.length;_++)Z[_]=new b(Y[_]);h.i[1]=Z}return Z}function $t(h,b,Z,Y){var _=mn(h,Z);b=b||new Z,h=Ue(h),Y!=null?(_.splice(Y,0,b),h.splice(Y,0,St(b))):(_.push(b),h.push(St(b)))}ie.prototype.toJSON=function(){var h=St(this);return ge(h,wn,un)};function St(h,b){if(h.i)for(var Z in h.i){var Y=h.i[Z];if(Array.isArray(Y))for(var _=0;_<Y.length;_++)Y[_]&&St(Y[_]);else Y&&St(Y)}return h.g}ie.prototype.toString=function(){return St(this).toString()};function bt(h,b){return h=zt(h,b),h==null?0:h}function Mt(h,b){return h=zt(h,b),h==null?"":h}function Ie(h,b){if(h=h.m){Pe(b,b.g.end());for(var Z=0;Z<h.length;Z++)Pe(b,h[Z])}}function Kt(h,b){if(b.h==4)return!1;var Z=b.m;return pe(b),b.N||(b=gn(b.g.h,Z,b.g.g),(Z=h.m)?Z.push(b):h.m=[b]),!0}function Qt(h,b){var Z=void 0;return new(Z||(Z=Promise))(function(Y,_){function et(st){try{tt(b.next(st))}catch(mt){_(mt)}}function K(st){try{tt(b.throw(st))}catch(mt){_(mt)}}function tt(st){st.done?Y(st.value):new Z(function(mt){mt(st.value)}).then(et,K)}tt((b=b.apply(h,void 0)).next())})}function Fe(h){ie.call(this,h)}Ft(Fe,ie);function Jt(h,b){for(;Lt(b);)switch(b.i){case 8:var Z=ae(b.g);kt(h,1,Z);break;case 21:Z=Me(b.g),kt(h,2,Z);break;case 26:Z=ne(b),kt(h,3,Z);break;case 34:Z=ne(b),kt(h,4,Z);break;default:if(!Kt(h,b))return h}return h}function Rt(h){ie.call(this,h,-1,Ae)}Ft(Rt,ie),Rt.prototype.addClassification=function(h,b){$t(this,h,Fe,b)};var Ae=[1];function Oe(h){ie.call(this,h)}Ft(Oe,ie);function Ve(h,b){for(;Lt(b);)switch(b.i){case 13:var Z=Me(b.g);kt(h,1,Z);break;case 21:Z=Me(b.g),kt(h,2,Z);break;case 29:Z=Me(b.g),kt(h,3,Z);break;case 37:Z=Me(b.g),kt(h,4,Z);break;case 45:Z=Me(b.g),kt(h,5,Z);break;default:if(!Kt(h,b))return h}return h}function Ht(h){ie.call(this,h,-1,Ee)}Ft(Ht,ie);var Ee=[1];function an(h){ie.call(this,h)}Ft(an,ie);function De(h,b,Z){if(Z=h.createShader(Z===0?h.VERTEX_SHADER:h.FRAGMENT_SHADER),h.shaderSource(Z,b),h.compileShader(Z),!h.getShaderParameter(Z,h.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
5
4
|
|
|
6
|
-
`+
|
|
5
|
+
`+h.getShaderInfoLog(Z));return Z}function Ne(h){return mn(h,Fe).map(function(b){return{index:bt(b,1),Y:Ot(b,2),label:zt(b,3)!=null?Mt(b,3):void 0,displayName:zt(b,4)!=null?Mt(b,4):void 0}})}function ze(h){return{x:Ot(h,1),y:Ot(h,2),z:Ot(h,3),visibility:zt(h,4)!=null?Ot(h,4):void 0}}function $e(h,b){this.h=h,this.g=b,this.l=0}function me(h,b,Z){return Ye(h,b),typeof h.g.canvas.transferToImageBitmap=="function"?Promise.resolve(h.g.canvas.transferToImageBitmap()):Z?Promise.resolve(h.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(h.g.canvas):(h.i===void 0&&(h.i=document.createElement("canvas")),new Promise(function(Y){h.i.height=h.g.canvas.height,h.i.width=h.g.canvas.width,h.i.getContext("2d",{}).drawImage(h.g.canvas,0,0,h.g.canvas.width,h.g.canvas.height),Y(h.i)}))}function Ye(h,b){var Z=h.g;if(h.m===void 0){var Y=De(Z,`
|
|
7
6
|
attribute vec2 aVertex;
|
|
8
7
|
attribute vec2 aTex;
|
|
9
8
|
varying vec2 vTex;
|
|
@@ -16,35 +15,35 @@
|
|
|
16
15
|
uniform sampler2D sampler0;
|
|
17
16
|
void main(){
|
|
18
17
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
19
|
-
}`,1),et=Z.createProgram();if(Z.attachShader(et,
|
|
18
|
+
}`,1),et=Z.createProgram();if(Z.attachShader(et,Y),Z.attachShader(et,_),Z.linkProgram(et),!Z.getProgramParameter(et,Z.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
20
19
|
|
|
21
|
-
`+Z.getProgramInfoLog(et));U=f.m=et,Z.useProgram(U),_=Z.getUniformLocation(U,"sampler0"),f.j={I:Z.getAttribLocation(U,"aVertex"),H:Z.getAttribLocation(U,"aTex"),da:_},f.s=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,f.s),Z.enableVertexAttribArray(f.j.I),Z.vertexAttribPointer(f.j.I,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),f.o=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,f.o),Z.enableVertexAttribArray(f.j.H),Z.vertexAttribPointer(f.j.H,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),Z.uniform1i(_,0)}U=f.j,Z.useProgram(f.m),Z.canvas.width=b.width,Z.canvas.height=b.height,Z.viewport(0,0,b.width,b.height),Z.activeTexture(Z.TEXTURE0),f.h.bindTexture2d(b.glName),Z.enableVertexAttribArray(U.I),Z.bindBuffer(Z.ARRAY_BUFFER,f.s),Z.vertexAttribPointer(U.I,2,Z.FLOAT,!1,0,0),Z.enableVertexAttribArray(U.H),Z.bindBuffer(Z.ARRAY_BUFFER,f.o),Z.vertexAttribPointer(U.H,2,Z.FLOAT,!1,0,0),Z.bindFramebuffer(Z.DRAW_FRAMEBUFFER?Z.DRAW_FRAMEBUFFER:Z.FRAMEBUFFER,null),Z.clearColor(0,0,0,0),Z.clear(Z.COLOR_BUFFER_BIT),Z.colorMask(!0,!0,!0,!0),Z.drawArrays(Z.TRIANGLE_FAN,0,4),Z.disableVertexAttribArray(U.I),Z.disableVertexAttribArray(U.H),Z.bindBuffer(Z.ARRAY_BUFFER,null),f.h.bindTexture2d(0)}function En(f){this.g=f}var Ye=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function be(f,b){return b+f}function rn(f,b){window[f]=b}function fn(f){var b=document.createElement("script");return b.setAttribute("src",f),b.setAttribute("crossorigin","anonymous"),new Promise(function(Z){b.addEventListener("load",function(){Z()},!1),b.addEventListener("error",function(){Z()},!1),document.body.appendChild(b)})}function Te(){return Qt(this,function f(){return te(f,function(b){switch(b.g){case 1:return b.m=2,$(b,WebAssembly.instantiate(Ye),4);case 4:b.g=3,b.m=0;break;case 2:return b.m=0,b.j=null,b.return(!1);case 3:return b.return(!0)}})})}function Sn(f){if(this.g=f,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=f&&f.locateFile||be,typeof window=="object")var b=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")b=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=b,f.options){b=C(Object.keys(f.options));for(var Z=b.next();!Z.done;Z=b.next()){Z=Z.value;var U=f.options[Z].default;U!==void 0&&(this.j[Z]=typeof U=="function"?U():U)}}}V=Sn.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function ke(f,b){return f.g.files===void 0?[]:typeof f.g.files=="function"?f.g.files(b):f.g.files}function on(f){return Qt(f,function b(){var Z=this,U,_,et,O,tt,st,mt,It,wt,jt,Wt;return te(b,function(Zt){switch(Zt.g){case 1:return U=Z,Z.R?(_=ke(Z,Z.j),$(Zt,Te(),2)):Zt.return();case 2:if(et=Zt.h,typeof window=="object")return rn("createMediapipeSolutionsWasm",{locateFile:Z.locateFile}),rn("createMediapipeSolutionsPackedAssets",{locateFile:Z.locateFile}),st=_.filter(function(Tt){return Tt.data!==void 0}),mt=_.filter(function(Tt){return Tt.data===void 0}),It=Promise.all(st.map(function(Tt){var Nt=Oe(U,Tt.url);if(Tt.path!==void 0){var Bt=Tt.path;Nt=Nt.then(function(Dt){return U.overrideFile(Bt,Dt),Promise.resolve(Dt)})}return Nt})),wt=Promise.all(mt.map(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et?fn(U.locateFile(Tt.url,U.S)):Promise.resolve()})).then(function(){return Qt(U,function Tt(){var Nt,Bt,Dt=this;return te(Tt,function(qt){if(qt.g==1)return Nt=window.createMediapipeSolutionsWasm,Bt=window.createMediapipeSolutionsPackedAssets,$(qt,Nt(Bt),2);Dt.h=qt.h,qt.g=0})})}),jt=function(){return Qt(U,function Tt(){var Nt=this;return te(Tt,function(Bt){return Nt.g.graph&&Nt.g.graph.url?Bt=$(Bt,Oe(Nt,Nt.g.graph.url),0):(Bt.g=0,Bt=void 0),Bt})})}(),$(Zt,Promise.all([wt,It,jt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return O=_.filter(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et}).map(function(Tt){return U.locateFile(Tt.url,U.S)}),importScripts.apply(null,dt(O)),$(Zt,createMediapipeSolutionsWasm(Module),6);case 6:Z.h=Zt.h,Z.l=new OffscreenCanvas(1,1),Z.h.canvas=Z.l,tt=Z.h.GL.createContext(Z.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),Z.h.GL.makeContextCurrent(tt),Zt.g=4;break;case 7:if(Z.l=document.createElement("canvas"),Wt=Z.l.getContext("webgl2",{}),!Wt&&(Wt=Z.l.getContext("webgl",{}),!Wt))return alert("Failed to create WebGL canvas context when passing video frame."),Zt.return();Z.D=Wt,Z.h.canvas=Z.l,Z.h.createContext(Z.l,!0,!0,{});case 4:Z.i=new Z.h.SolutionWasm,Z.R=!1,Zt.g=0}})})}function mn(f){return Qt(f,function b(){var Z=this,U,_,et,O,tt,st,mt,It;return te(b,function(wt){if(wt.g==1){if(Z.g.graph&&Z.g.graph.url&&Z.P===Z.g.graph.url)return wt.return();if(Z.o=!0,!Z.g.graph||!Z.g.graph.url){wt.g=2;return}return Z.P=Z.g.graph.url,$(wt,Oe(Z,Z.g.graph.url),3)}for(wt.g!=2&&(U=wt.h,Z.i.loadGraph(U)),_=C(Object.keys(Z.B)),et=_.next();!et.done;et=_.next())O=et.value,Z.i.overrideFile(O,Z.B[O]);if(Z.B={},Z.g.listeners)for(tt=C(Z.g.listeners),st=tt.next();!st.done;st=tt.next())mt=st.value,Yn(Z,mt);It=Z.j,Z.j={},Z.setOptions(It),wt.g=0})})}V.reset=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){b.i&&(b.i.reset(),b.m={},b.s={}),Z.g=0})})},V.setOptions=function(f,b){var Z=this;if(b=b||this.g.options){for(var U=[],_=[],et={},O=C(Object.keys(f)),tt=O.next();!tt.done;et={K:et.K,L:et.L},tt=O.next()){var st=tt.value;st in this.j&&this.j[st]===f[st]||(this.j[st]=f[st],tt=b[st],tt!==void 0&&(tt.onChange&&(et.K=tt.onChange,et.L=f[st],U.push(function(mt){return function(){return Qt(Z,function It(){var wt,jt=this;return te(It,function(Wt){if(Wt.g==1)return $(Wt,mt.K(mt.L),2);wt=Wt.h,wt===!0&&(jt.o=!0),Wt.g=0})})}}(et))),tt.graphOptionXref&&(st={valueNumber:tt.type===1?f[st]:0,valueBoolean:tt.type===0?f[st]:!1,valueString:tt.type===2?f[st]:""},tt=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),tt.graphOptionXref),st),_.push(tt))))}(U.length!==0||_.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(_),this.u=(this.u===void 0?[]:this.u).concat(U))}};function xn(f){return Qt(f,function b(){var Z=this,U,_,et,O,tt,st,mt;return te(b,function(It){switch(It.g){case 1:if(!Z.o)return It.return();if(!Z.u){It.g=2;break}U=C(Z.u),_=U.next();case 3:if(_.done){It.g=5;break}return et=_.value,$(It,et(),4);case 4:_=U.next(),It.g=3;break;case 5:Z.u=void 0;case 2:if(Z.A){for(O=new Z.h.GraphOptionChangeRequestList,tt=C(Z.A),st=tt.next();!st.done;st=tt.next())mt=st.value,O.push_back(mt);Z.i.changeOptions(O),O.delete(),Z.A=void 0}Z.o=!1,It.g=0}})})}V.initialize=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){return Z.g==1?$(Z,on(b),2):Z.g!=3?$(Z,mn(b),3):$(Z,xn(b),0)})})};function Oe(f,b){return Qt(f,function Z(){var U=this,_,et;return te(Z,function(O){return b in U.F?O.return(U.F[b]):(_=U.locateFile(b,""),et=fetch(_).then(function(tt){return tt.arrayBuffer()}),U.F[b]=et,O.return(et))})})}V.overrideFile=function(f,b){this.i?this.i.overrideFile(f,b):this.B[f]=b},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(f,b){return Qt(this,function Z(){var U=this,_,et,O,tt,st,mt,It,wt,jt;return te(Z,function(Wt){switch(Wt.g){case 1:return U.g.inputs?(_=1e3*(b==null?performance.now():b),$(Wt,U.C,2)):Wt.return();case 2:return $(Wt,U.initialize(),3);case 3:for(et=new U.h.PacketDataList,O=C(Object.keys(f)),tt=O.next();!tt.done;tt=O.next())if(st=tt.value,mt=U.g.inputs[st]){t:{var Zt=U,Tt=f[st];switch(mt.type){case"video":var Nt=Zt.m[mt.stream];if(Nt||(Nt=new $e(Zt.h,Zt.D),Zt.m[mt.stream]=Nt),Zt=Nt,Zt.l===0&&(Zt.l=Zt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&Tt instanceof HTMLVideoElement){var Bt=Tt.videoWidth;Nt=Tt.videoHeight}else typeof HTMLImageElement!="undefined"&&Tt instanceof HTMLImageElement?(Bt=Tt.naturalWidth,Nt=Tt.naturalHeight):(Bt=Tt.width,Nt=Tt.height);Nt={glName:Zt.l,width:Bt,height:Nt},Bt=Zt.g,Bt.canvas.width=Nt.width,Bt.canvas.height=Nt.height,Bt.activeTexture(Bt.TEXTURE0),Zt.h.bindTexture2d(Zt.l),Bt.texImage2D(Bt.TEXTURE_2D,0,Bt.RGBA,Bt.RGBA,Bt.UNSIGNED_BYTE,Tt),Zt.h.bindTexture2d(0),Zt=Nt;break t;case"detections":for(Nt=Zt.m[mt.stream],Nt||(Nt=new En(Zt.h),Zt.m[mt.stream]=Nt),Zt=Nt,Zt.data||(Zt.data=new Zt.g.DetectionListData),Zt.data.reset(Tt.length),Nt=0;Nt<Tt.length;++Nt){Bt=Tt[Nt];var Dt=Zt.data,qt=Dt.setBoundingBox,Ze=Nt,c=Bt.T,d=new an;Yt(d,1,c.Z),Yt(d,2,c.$),Yt(d,3,c.height),Yt(d,4,c.width),Yt(d,5,c.rotation),Yt(d,6,c.X);var m=c=new Ge;Ut(m,1,Mt(d,1)),Ut(m,2,Mt(d,2)),Ut(m,3,Mt(d,3)),Ut(m,4,Mt(d,4)),Ut(m,5,Mt(d,5));var x=Mt(d,6);if(x!=null&&x!=null){re(m.g,48);var j=m.g,P=x;x=0>P,P=Math.abs(P);var H=P>>>0;for(P=Math.floor((P-H)/4294967296),P>>>=0,x&&(P=~P>>>0,H=(~H>>>0)+1,4294967295<H&&(H=0,P++,4294967295<P&&(P=0))),ce=H,ve=P,x=ce,H=ve;0<H||127<x;)j.push(x&127|128),x=(x>>>7|H<<25)>>>0,H>>>=7;j.push(x)}if(Ie(d,m),c=se(c),qt.call(Dt,Ze,c),Bt.O)for(Dt=0;Dt<Bt.O.length;++Dt)d=Bt.O[Dt],m=!!d.visibility,qt=Zt.data,Ze=qt.addNormalizedLandmark,c=Nt,d=Object.assign(Object.assign({},d),{visibility:m?d.visibility:0}),m=new Ke,Yt(m,1,d.x),Yt(m,2,d.y),Yt(m,3,d.z),d.visibility&&Yt(m,4,d.visibility),j=d=new Ge,Ut(j,1,Mt(m,1)),Ut(j,2,Mt(m,2)),Ut(j,3,Mt(m,3)),Ut(j,4,Mt(m,4)),Ut(j,5,Mt(m,5)),Ie(m,j),d=se(d),Ze.call(qt,c,d);if(Bt.M)for(Dt=0;Dt<Bt.M.length;++Dt){if(qt=Zt.data,Ze=qt.addClassification,c=Nt,d=Bt.M[Dt],m=new xe,Yt(m,2,d.Y),d.index&&Yt(m,1,d.index),d.label&&Yt(m,3,d.label),d.displayName&&Yt(m,4,d.displayName),j=d=new Ge,H=Mt(m,1),H!=null&&H!=null)if(re(j.g,8),x=j.g,0<=H)re(x,H);else{for(P=0;9>P;P++)x.push(H&127|128),H>>=7;x.push(1)}Ut(j,2,Mt(m,2)),x=Mt(m,3),x!=null&&(x=bn(x),re(j.g,26),re(j.g,x.length),Be(j,j.g.end()),Be(j,x)),x=Mt(m,4),x!=null&&(x=bn(x),re(j.g,34),re(j.g,x.length),Be(j,j.g.end()),Be(j,x)),Ie(m,j),d=se(d),Ze.call(qt,c,d)}}Zt=Zt.data;break t;default:Zt={}}}switch(It=Zt,wt=mt.stream,mt.type){case"video":et.pushTexture2d(Object.assign(Object.assign({},It),{stream:wt,timestamp:_}));break;case"detections":jt=It,jt.stream=wt,jt.timestamp=_,et.pushDetectionList(jt);break;default:throw Error("Unknown input config type: '"+mt.type+"'")}}return U.i.send(et),$(Wt,U.C,4);case 4:et.delete(),Wt.g=0}})})};function yn(f,b,Z){return Qt(f,function U(){var _,et,O,tt,st,mt,It=this,wt,jt,Wt,Zt,Tt,Nt,Bt,Dt;return te(U,function(qt){switch(qt.g){case 1:if(!Z)return qt.return(b);for(_={},et=0,O=C(Object.keys(Z)),tt=O.next();!tt.done;tt=O.next())st=tt.value,mt=Z[st],typeof mt!="string"&&mt.type==="texture"&&b[mt.stream]!==void 0&&++et;1<et&&(It.G=!1),wt=C(Object.keys(Z)),tt=wt.next();case 2:if(tt.done){qt.g=4;break}if(jt=tt.value,Wt=Z[jt],typeof Wt=="string")return Bt=_,Dt=jt,$(qt,Un(It,jt,b[Wt]),14);if(Zt=b[Wt.stream],Wt.type==="detection_list"){if(Zt){for(var Ze=Zt.getRectList(),c=Zt.getLandmarksList(),d=Zt.getClassificationsList(),m=[],x=0;x<Ze.size();++x){var j=Ze.get(x);t:{var P=new an;for(j=new Ve(j);Lt(j);)switch(j.i){case 13:var H=ze(j.g);Yt(P,1,H);break;case 21:H=ze(j.g),Yt(P,2,H);break;case 29:H=ze(j.g),Yt(P,3,H);break;case 37:H=ze(j.g),Yt(P,4,H);break;case 45:H=ze(j.g),Yt(P,5,H);break;case 48:for(var D=j.g,rt=128,r=0,y=H=0;4>y&&128<=rt;y++)rt=D.h[D.g++],r|=(rt&127)<<7*y;if(128<=rt&&(rt=D.h[D.g++],r|=(rt&127)<<28,H|=(rt&127)>>4),128<=rt)for(y=0;5>y&&128<=rt;y++)rt=D.h[D.g++],H|=(rt&127)<<7*y+3;128>rt?(D=r>>>0,rt=H>>>0,(H=rt&2147483648)&&(D=~D+1>>>0,rt=~rt>>>0,D==0&&(rt=rt+1>>>0)),D=4294967296*rt+(D>>>0),H=H?-D:D):(D.l=!0,H=void 0),Yt(P,6,H);break;default:if(!Ot(P,j))break t}}P={Z:Kt(P,1),$:Kt(P,2),height:Kt(P,3),width:Kt(P,4),rotation:Kt(P,5,0),X:bt(P,6)},H=c.get(x);t:for(j=new Jt,H=new Ve(H);Lt(H);)switch(H.i){case 10:D=At(H,new Ke,Se),$t(j,D,Ke,void 0);break;default:if(!Ot(j,H))break t}j=gn(j,Ke).map(Me),D=d.get(x);t:for(H=new Xt,D=new Ve(D);Lt(D);)switch(D.i){case 10:H.addClassification(At(D,new xe,kt));break;default:if(!Ot(H,D))break t}P={T:P,O:j,M:Ne(H)},m.push(P)}Ze=m}else Ze=[];_[jt]=Ze,qt.g=7;break}if(Wt.type==="proto_list"){if(Zt){for(Ze=Array(Zt.size()),c=0;c<Zt.size();c++)Ze[c]=Zt.get(c);Zt.delete()}else Ze=[];_[jt]=Ze,qt.g=7;break}if(Zt===void 0){qt.g=3;break}if(Wt.type==="float_list"){_[jt]=Zt,qt.g=7;break}if(Wt.type==="proto"){_[jt]=Zt,qt.g=7;break}if(Wt.type!=="texture")throw Error("Unknown output config type: '"+Wt.type+"'");return Tt=It.s[jt],Tt||(Tt=new $e(It.h,It.D),It.s[jt]=Tt),$(qt,me(Tt,Zt,It.G),13);case 13:Nt=qt.h,_[jt]=Nt;case 7:Wt.transform&&_[jt]&&(_[jt]=Wt.transform(_[jt])),qt.g=3;break;case 14:Bt[Dt]=qt.h;case 3:tt=wt.next(),qt.g=2;break;case 4:return qt.return(_)}})})}function Un(f,b,Z){return Qt(f,function U(){var _=this,et;return te(U,function(O){return typeof Z=="number"||Z instanceof Uint8Array||Z instanceof _.h.Uint8BlobList?O.return(Z):Z instanceof _.h.Texture2dDataOut?(et=_.s[b],et||(et=new $e(_.h,_.D),_.s[b]=et),O.return(me(et,Z,_.G))):O.return(void 0)})})}function Yn(f,b){for(var Z=b.name||"$",U=[].concat(dt(b.wants)),_=new f.h.StringList,et=C(b.wants),O=et.next();!O.done;O=et.next())_.push_back(O.value);et=f.h.PacketListener.implement({onResults:function(tt){for(var st={},mt=0;mt<b.wants.length;++mt)st[U[mt]]=tt.get(mt);var It=f.listeners[Z];It&&(f.C=yn(f,st,b.outs).then(function(wt){wt=It(wt);for(var jt=0;jt<b.wants.length;++jt){var Wt=st[U[jt]];typeof Wt=="object"&&Wt.hasOwnProperty&&Wt.hasOwnProperty("delete")&&Wt.delete()}wt&&(f.C=wt)}))}}),f.i.attachMultiListener(_,et),_.delete()}V.onResults=function(f,b){this.listeners[b||"$"]=f},ye("Solution",Sn),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function vn(f){switch(f===void 0&&(f=0),f){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}function Gn(f){var b=this;f=f||{},this.g=new Sn({locateFile:f.locateFile,files:function(Z){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:vn(Z.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(Z){return Qt(b,function U(){var _,et,O=this,tt;return te(U,function(st){return st.g==1?(_=vn(Z),et="third_party/mediapipe/modules/selfie_segmentation/"+_,$(st,Oe(O.g,_),2)):(tt=st.h,O.g.overrideFile(et,tt),st.return(!0))})})}}}})}V=Gn.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(f){this.g.onResults(f)},V.initialize=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){return $(Z,b.g.initialize(),0)})})},V.reset=function(){this.g.reset()},V.send=function(f){return Qt(this,function b(){var Z=this;return te(b,function(U){return $(U,Z.g.send(f),0)})})},V.setOptions=function(f){this.g.setOptions(f)},ye("SelfieSegmentation",Gn),ye("VERSION","0.1.1632777926")}).call(Sr);const Tr={};(function(){var V;function v(i){var g=0;return function(){return g<i.length?{done:!1,value:i[g++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(i,g,X){return i==Array.prototype||i==Object.prototype||(i[g]=X.value),i};function L(i){i=[typeof globalThis=="object"&&globalThis,i,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var g=0;g<i.length;++g){var X=i[g];if(X&&X.Math==Math)return X}throw Error("Cannot find global object")}var F=L(this);function A(i,g){if(g)t:{var X=F;i=i.split(".");for(var w=0;w<i.length-1;w++){var N=i[w];if(!(N in X))break t;X=X[N]}i=i[i.length-1],w=X[i],g=g(w),g!=w&&g!=null&&W(X,i,{configurable:!0,writable:!0,value:g})}}A("Symbol",function(i){function g(n){if(this instanceof g)throw new TypeError("Symbol is not a constructor");return new X(w+(n||"")+"_"+N++,n)}function X(n,l){this.g=n,W(this,"description",{configurable:!0,writable:!0,value:l})}if(i)return i;X.prototype.toString=function(){return this.g};var w="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",N=0;return g}),A("Symbol.iterator",function(i){if(i)return i;i=Symbol("Symbol.iterator");for(var g="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),X=0;X<g.length;X++){var w=F[g[X]];typeof w=="function"&&typeof w.prototype[i]!="function"&&W(w.prototype,i,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return i});function Q(i){return i={next:i},i[Symbol.iterator]=function(){return this},i}function C(i){var g=typeof Symbol!="undefined"&&Symbol.iterator&&i[Symbol.iterator];return g?g.call(i):{next:v(i)}}function dt(i){if(!(i instanceof Array)){i=C(i);for(var g,X=[];!(g=i.next()).done;)X.push(g.value);i=X}return i}var _e=typeof Object.create=="function"?Object.create:function(i){function g(){}return g.prototype=i,new g},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(i,g){if(i.__proto__=g,i.__proto__!==g)throw new TypeError(i+" is not extensible");return i}:null}var je=ct;function xt(i,g){if(i.prototype=_e(g.prototype),i.prototype.constructor=i,je)je(i,g);else for(var X in g)if(X!="prototype")if(Object.defineProperties){var w=Object.getOwnPropertyDescriptor(g,X);w&&Object.defineProperty(i,X,w)}else i[X]=g[X];i.ra=g.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function de(i){if(i.l)throw new TypeError("Generator is already running");i.l=!0}ue.prototype.s=function(i){this.h=i};function he(i,g){i.j={fa:g,ga:!0},i.g=i.o||i.u}ue.prototype.return=function(i){this.j={return:i},this.g=this.u};function $(i,g,X){return i.g=X,{value:g}}function In(i){this.g=new ue,this.h=i}function jn(i,g){de(i.g);var X=i.g.i;return X?He(i,"return"in X?X.return:function(w){return{value:w,done:!0}},g,i.g.return):(i.g.return(g),ee(i))}function He(i,g,X,w){try{var N=g.call(i.g.i,X);if(!(N instanceof Object))throw new TypeError("Iterator result "+N+" is not an object");if(!N.done)return i.g.l=!1,N;var n=N.value}catch(l){return i.g.i=null,he(i.g,l),ee(i)}return i.g.i=null,w.call(i.g,n),ee(i)}function ee(i){for(;i.g.g;)try{var g=i.h(i.g);if(g)return i.g.l=!1,{value:g.value,done:!1}}catch(X){i.g.h=void 0,he(i.g,X)}if(i.g.l=!1,i.g.j){if(g=i.g.j,i.g.j=null,g.ga)throw g.fa;return{value:g.return,done:!0}}return{value:void 0,done:!0}}function Hn(i){this.next=function(g){return de(i.g),i.g.i?g=He(i,i.g.i.next,g,i.g.s):(i.g.s(g),g=ee(i)),g},this.throw=function(g){return de(i.g),i.g.i?g=He(i,i.g.i.throw,g,i.g.s):(he(i.g,g),g=ee(i)),g},this.return=function(g){return jn(i,g)},this[Symbol.iterator]=function(){return this}}function te(i){function g(w){return i.next(w)}function X(w){return i.throw(w)}return new Promise(function(w,N){function n(l){l.done?w(l.value):Promise.resolve(l.value).then(g,X).then(n,N)}n(i.next())})}function ht(i){return te(new Hn(new In(i)))}A("Promise",function(i){function g(l){this.h=0,this.i=void 0,this.g=[],this.s=!1;var p=this.j();try{l(p.resolve,p.reject)}catch(e){p.reject(e)}}function X(){this.g=null}function w(l){return l instanceof g?l:new g(function(p){p(l)})}if(i)return i;X.prototype.h=function(l){if(this.g==null){this.g=[];var p=this;this.i(function(){p.l()})}this.g.push(l)};var N=F.setTimeout;X.prototype.i=function(l){N(l,0)},X.prototype.l=function(){for(;this.g&&this.g.length;){var l=this.g;this.g=[];for(var p=0;p<l.length;++p){var e=l[p];l[p]=null;try{e()}catch(u){this.j(u)}}}this.g=null},X.prototype.j=function(l){this.i(function(){throw l})},g.prototype.j=function(){function l(u){return function(a){e||(e=!0,u.call(p,a))}}var p=this,e=!1;return{resolve:l(this.D),reject:l(this.l)}},g.prototype.D=function(l){if(l===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(l instanceof g)this.H(l);else{t:switch(typeof l){case"object":var p=l!=null;break t;case"function":p=!0;break t;default:p=!1}p?this.A(l):this.o(l)}},g.prototype.A=function(l){var p=void 0;try{p=l.then}catch(e){this.l(e);return}typeof p=="function"?this.I(p,l):this.o(l)},g.prototype.l=function(l){this.u(2,l)},g.prototype.o=function(l){this.u(1,l)},g.prototype.u=function(l,p){if(this.h!=0)throw Error("Cannot settle("+l+", "+p+"): Promise already settled in state"+this.h);this.h=l,this.i=p,this.h===2&&this.G(),this.B()},g.prototype.G=function(){var l=this;N(function(){if(l.C()){var p=F.console;typeof p!="undefined"&&p.error(l.i)}},1)},g.prototype.C=function(){if(this.s)return!1;var l=F.CustomEvent,p=F.Event,e=F.dispatchEvent;return typeof e=="undefined"?!0:(typeof l=="function"?l=new l("unhandledrejection",{cancelable:!0}):typeof p=="function"?l=new p("unhandledrejection",{cancelable:!0}):(l=F.document.createEvent("CustomEvent"),l.initCustomEvent("unhandledrejection",!1,!0,l)),l.promise=this,l.reason=this.i,e(l))},g.prototype.B=function(){if(this.g!=null){for(var l=0;l<this.g.length;++l)n.h(this.g[l]);this.g=null}};var n=new X;return g.prototype.H=function(l){var p=this.j();l.M(p.resolve,p.reject)},g.prototype.I=function(l,p){var e=this.j();try{l.call(p,e.resolve,e.reject)}catch(u){e.reject(u)}},g.prototype.then=function(l,p){function e(o,s){return typeof o=="function"?function(h){try{u(o(h))}catch(R){a(R)}}:s}var u,a,t=new g(function(o,s){u=o,a=s});return this.M(e(l,u),e(p,a)),t},g.prototype.catch=function(l){return this.then(void 0,l)},g.prototype.M=function(l,p){function e(){switch(u.h){case 1:l(u.i);break;case 2:p(u.i);break;default:throw Error("Unexpected state: "+u.h)}}var u=this;this.g==null?n.h(e):this.g.push(e),this.s=!0},g.resolve=w,g.reject=function(l){return new g(function(p,e){e(l)})},g.race=function(l){return new g(function(p,e){for(var u=C(l),a=u.next();!a.done;a=u.next())w(a.value).M(p,e)})},g.all=function(l){var p=C(l),e=p.next();return e.done?w([]):new g(function(u,a){function t(h){return function(R){o[h]=R,s--,s==0&&u(o)}}var o=[],s=0;do o.push(void 0),s++,w(e.value).M(t(o.length-1),a),e=p.next();while(!e.done)})},g});function Jn(i,g){i instanceof String&&(i+="");var X=0,w=!1,N={next:function(){if(!w&&X<i.length){var n=X++;return{value:g(n,i[n]),done:!1}}return w=!0,{done:!0,value:void 0}}};return N[Symbol.iterator]=function(){return N},N}var Cn=typeof Object.assign=="function"?Object.assign:function(i,g){for(var X=1;X<arguments.length;X++){var w=arguments[X];if(w)for(var N in w)Object.prototype.hasOwnProperty.call(w,N)&&(i[N]=w[N])}return i};A("Object.assign",function(i){return i||Cn}),A("Object.is",function(i){return i||function(g,X){return g===X?g!==0||1/g===1/X:g!==g&&X!==X}}),A("Array.prototype.includes",function(i){return i||function(g,X){var w=this;w instanceof String&&(w=String(w));var N=w.length;for(X=X||0,0>X&&(X=Math.max(X+N,0));X<N;X++){var n=w[X];if(n===g||Object.is(n,g))return!0}return!1}}),A("String.prototype.includes",function(i){return i||function(g,X){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(g instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(g,X||0)!==-1}}),A("Array.prototype.keys",function(i){return i||function(){return Jn(this,function(g){return g})}});var ye=this||self;function St(i,g){i=i.split(".");var X=ye;i[0]in X||typeof X.execScript=="undefined"||X.execScript("var "+i[0]);for(var w;i.length&&(w=i.shift());)i.length||g===void 0?X[w]&&X[w]!==Object.prototype[w]?X=X[w]:X=X[w]={}:X[w]=g}function We(){throw Error("Invalid UTF8")}function tn(i,g){return g=String.fromCharCode.apply(null,g),i==null?g:i+g}var hn,Wn=typeof TextDecoder!="undefined",bn,Fn=typeof TextEncoder!="undefined",en={},un=null;function Ln(i){var g;g===void 0&&(g=0),nn(),g=en[g];for(var X=Array(Math.floor(i.length/3)),w=g[64]||"",N=0,n=0;N<i.length-2;N+=3){var l=i[N],p=i[N+1],e=i[N+2],u=g[l>>2];l=g[(l&3)<<4|p>>4],p=g[(p&15)<<2|e>>6],e=g[e&63],X[n++]=u+l+p+e}switch(u=0,e=w,i.length-N){case 2:u=i[N+1],e=g[(u&15)<<2]||w;case 1:i=i[N],X[n]=g[i>>2]+g[(i&3)<<4|u>>4]+e+w}return X.join("")}function Vn(i){var g=i.length,X=3*g/4;X%3?X=Math.floor(X):"=.".indexOf(i[g-1])!=-1&&(X="=.".indexOf(i[g-2])!=-1?X-2:X-1);var w=new Uint8Array(X),N=0;return dn(i,function(n){w[N++]=n}),N!==X?w.subarray(0,N):w}function dn(i,g){function X(e){for(;w<i.length;){var u=i.charAt(w++),a=un[u];if(a!=null)return a;if(!/^[\s\xa0]*$/.test(u))throw Error("Unknown base64 encoding at char: "+u)}return e}nn();for(var w=0;;){var N=X(-1),n=X(0),l=X(64),p=X(64);if(p===64&&N===-1)break;g(N<<2|n>>4),l!=64&&(g(n<<4&240|l>>2),p!=64&&g(l<<6&192|p))}}function nn(){if(!un){un={};for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),g=["+/=","+/","-_=","-_.","-_"],X=0;5>X;X++){var w=i.concat(g[X].split(""));en[X]=w;for(var N=0;N<w.length;N++){var n=w[N];un[n]===void 0&&(un[n]=N)}}}}var Zn=typeof Uint8Array=="function";function pn(i){return Zn&&i!=null&&i instanceof Uint8Array}var ce;function ve(i){if(this.L=i,i!==null&&i.length===0)throw Error("ByteString should be constructed with non-empty values")}var Pe=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function ze(i,g){if(i.constructor===Uint8Array)return i;if(i.constructor===ArrayBuffer)return new Uint8Array(i);if(i.constructor===Array)return new Uint8Array(i);if(i.constructor===String)return Vn(i);if(i.constructor===ve)return!g&&(g=i.L)&&g.constructor===Uint8Array?g:(g=i.L,g=g==null||pn(g)?g:typeof g=="string"?Vn(g):null,(i=i.L=g)?new Uint8Array(i):ce||(ce=new Uint8Array(0)));if(i instanceof Uint8Array)return new Uint8Array(i.buffer,i.byteOffset,i.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Fe(i,g){return Error("Invalid wire type: "+i+" (at position "+g+")")}function Ct(){return Error("Failed to read varint, encoding is invalid.")}function re(i,g){g=g===void 0?{}:g,g=g.v===void 0?!1:g.v,this.h=null,this.g=this.i=this.j=0,this.v=g,i&&Ve(this,i)}function Ve(i,g){i.h=ze(g,i.v),i.j=0,i.i=i.h.length,i.g=i.j}re.prototype.reset=function(){this.g=this.j};function Lt(i){if(i.g>i.i)throw Error("Tried to read past the end of the data "+i.g+" > "+i.i)}function pe(i){var g=i.h,X=g[i.g],w=X&127;if(128>X)return i.g+=1,Lt(i),w;if(X=g[i.g+1],w|=(X&127)<<7,128>X)return i.g+=2,Lt(i),w;if(X=g[i.g+2],w|=(X&127)<<14,128>X)return i.g+=3,Lt(i),w;if(X=g[i.g+3],w|=(X&127)<<21,128>X)return i.g+=4,Lt(i),w;if(X=g[i.g+4],i.g+=5,w|=(X&15)<<28,128>X)return Lt(i),w;if(128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++])throw Ct();return Lt(i),w}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var i=this.g;return this.g=[],i};function Ge(i,g){for(;127<g;)i.g.push(g&127|128),g>>>=7;i.g.push(g)}function Be(i){var g={},X=g.W===void 0?!1:g.W;this.l={v:g.v===void 0?!1:g.v},this.W=X,g=this.l,At.length?(X=At.pop(),g&&(X.v=g.v),i&&Ve(X,i),i=X):i=new re(i,g),this.g=i,this.j=this.g.g,this.h=this.i=-1}Be.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(i){var g=i.g;if(g.g==g.i)return!1;i.j=i.g.g;var X=pe(i.g)>>>0;if(g=X>>>3,X&=7,!(0<=X&&5>=X))throw Fe(X,i.j);if(1>g)throw Error("Invalid field number: "+g+" (at position "+i.j+")");return i.i=g,i.h=X,!0}function Ut(i){switch(i.h){case 0:if(i.h!=0)Ut(i);else t:{i=i.g;for(var g=i.g,X=g+10;g<X;)if((i.h[g++]&128)===0){i.g=g,Lt(i);break t}throw Ct()}break;case 1:i=i.g,i.g+=8,Lt(i);break;case 2:i.h!=2?Ut(i):(g=pe(i.g)>>>0,i=i.g,i.g+=g,Lt(i));break;case 5:i=i.g,i.g+=4,Lt(i);break;case 3:g=i.i;do{if(!se(i))throw Error("Unmatched start-group tag: stream EOF");if(i.h==4){if(i.i!=g)throw Error("Unmatched end-group tag");break}Ut(i)}while(1);break;default:throw Fe(i.h,i.j)}}var Le=[];function Je(){this.i=[],this.h=0,this.g=new ne}function ge(i,g){g.length!==0&&(i.i.push(g),i.h+=g.length)}function Rn(i,g){if(g=g.ca){ge(i,i.g.end());for(var X=0;X<g.length;X++)ge(i,g[X])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(i,g){Object.isFrozen(i)||(Qe?i[Qe]|=g:i.N!==void 0?i.N|=g:Object.defineProperties(i,{N:{value:g,configurable:!0,writable:!0,enumerable:!1}}))}function cn(i){var g;return Qe?g=i[Qe]:g=i.N,g==null?0:g}function ie(i){return sn(i,1),i}function Xe(i){return Array.isArray(i)?!!(cn(i)&2):!1}function oe(i){if(!Array.isArray(i))throw Error("cannot mark non-array as immutable");sn(i,2)}function Mt(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)&&i.constructor===Object}var Ce=Object.freeze(ie([]));function Kt(i){if(Xe(i.m))throw Error("Cannot mutate an immutable Message")}var Yt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function gn(i){return{value:i,configurable:!1,writable:!1,enumerable:!1}}function $t(i,g,X){return g===-1?null:g>=i.i?i.g?i.g[g]:void 0:(X===void 0?0:X)&&i.g&&(X=i.g[g],X!=null)?X:i.m[g+i.h]}function Vt(i,g,X,w){w=w===void 0?!1:w,Kt(i),g<i.i&&!w?i.m[g+i.h]=X:(i.g||(i.g=i.m[i.i+i.h]={}))[g]=X}function bt(i,g,X,w){X=X===void 0?!0:X,w=w===void 0?!1:w;var N=$t(i,g,w);return N==null&&(N=Ce),Xe(i.m)?X&&(oe(N),Object.freeze(N)):(N===Ce||Xe(N))&&(N=ie(N.slice()),Vt(i,g,N,w)),N}function zt(i,g,X){return i=$t(i,g),i=i==null?i:+i,i==null?X===void 0?0:X:i}function Ie(i,g,X,w){i.j||(i.j={});var N=Xe(i.m),n=i.j[X];if(!n){w=bt(i,X,!0,w===void 0?!1:w),n=[],N=N||Xe(w);for(var l=0;l<w.length;l++)n[l]=new g(w[l]),N&&oe(n[l].m);N&&(oe(n),Object.freeze(n)),i.j[X]=n}return n}function Ot(i,g,X,w,N){var n=n===void 0?!1:n;return Kt(i),n=Ie(i,X,g,n),X=w||new X,i=bt(i,g),N!=null?(n.splice(N,0,X),i.splice(N,0,X.m)):(n.push(X),i.push(X.m)),X}function Qt(i,g){return i=$t(i,g),i==null?0:i}function xe(i,g){return i=$t(i,g),i==null?"":i}function kt(i){switch(typeof i){case"number":return isFinite(i)?i:String(i);case"object":if(i&&!Array.isArray(i)){if(pn(i))return Ln(i);if(i instanceof ve){var g=i.L;return g=g==null||typeof g=="string"?g:Zn&&g instanceof Uint8Array?Ln(g):null,(i.L=g)||""}}}return i}function Xt(i){var g=Se;return g=g===void 0?Jt:g,Ke(i,g)}function Ae(i,g){if(i!=null){if(Array.isArray(i))i=Ke(i,g);else if(Mt(i)){var X={},w;for(w in i)X[w]=Ae(i[w],g);i=X}else i=g(i);return i}}function Ke(i,g){for(var X=i.slice(),w=0;w<X.length;w++)X[w]=Ae(X[w],g);return Array.isArray(i)&&cn(i)&1&&ie(X),X}function Se(i){return i&&typeof i=="object"&&i.toJSON?i.toJSON():(i=kt(i),Array.isArray(i)?Xt(i):i)}function Jt(i){return pn(i)?new Uint8Array(i):i}function Ee(i,g,X){i||(i=an),an=null;var w=this.constructor.h;i||(i=w?[w]:[]),this.h=(w?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=i;t:{if(w=this.m.length,i=w-1,w&&(w=this.m[i],Mt(w))){this.i=i-this.h,this.g=w;break t}g!==void 0&&-1<g?(this.i=Math.max(g,i+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(X)for(g=0;g<X.length;g++)if(i=X[g],i<this.i)i+=this.h,(w=this.m[i])?Array.isArray(w)&&ie(w):this.m[i]=Ce;else{w=this.g||(this.g=this.m[this.i+this.h]={});var N=w[i];N?Array.isArray(N)&&ie(N):w[i]=Ce}}Ee.prototype.toJSON=function(){return Xt(this.m)},Ee.prototype.toString=function(){return this.m.toString()};var an;function De(){Ee.apply(this,arguments)}if(xt(De,Ee),Yt){var Ne={};Object.defineProperties(De,(Ne[Symbol.hasInstance]=gn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ne))}function Me(i,g,X){if(X){var w={},N;for(N in X){var n=X[N],l=n.ja;l||(w.F=n.pa||n.ha.P,n.ba?(w.U=fn(n.ba),l=function(p){return function(e,u,a){return p.F(e,u,a,p.U)}}(w)):n.da?(w.T=Te(n.X.g,n.da),l=function(p){return function(e,u,a){return p.F(e,u,a,p.T)}}(w)):l=w.F,n.ja=l),l(g,i,n.X),w={F:w.F,U:w.U,T:w.T}}}Rn(g,i)}var $e=Symbol();function me(i,g,X){return i[$e]||(i[$e]=function(w,N){return g(w,N,X)})}function Ue(i){var g=i[$e];if(!g){var X=f(i);g=function(w,N){return b(w,N,X)},i[$e]=g}return g}function En(i){var g=i.ba;if(g)return Ue(g);if(g=i.oa)return me(i.X.g,g,i.da)}function Ye(i){var g=En(i),X=i.X,w=i.ha.O;return g?function(N,n){return w(N,n,X,g)}:function(N,n){return w(N,n,X)}}function be(i,g,X,w,N,n){i=i();var l=0;for(i.length&&typeof i[0]!="number"&&(X(g,i[0]),l++);l<i.length;){X=i[l++];for(var p=l+1;p<i.length&&typeof i[p]!="number";)p++;var e=i[l++];switch(p-=l,p){case 0:w(g,X,e);break;case 1:w(g,X,e,i[l++]);break;case 2:N(g,X,e,i[l++],i[l++]);break;case 3:p=i[l++];var u=i[l++],a=i[l++];Array.isArray(a)?N(g,X,e,p,u,a):n(g,X,e,p,u,a);break;case 4:n(g,X,e,i[l++],i[l++],i[l++],i[l++]);break;default:throw Error("unexpected number of binary field arguments: "+p)}}return g}var rn=Symbol();function fn(i){var g=i[rn];if(!g){var X=Oe(i);g=function(w,N){return U(w,N,X)},i[rn]=g}return g}function Te(i,g){var X=i[rn];return X||(X=function(w,N){return Me(w,N,g)},i[rn]=X),X}var Sn=Symbol();function ke(i,g){i.push(g)}function on(i,g,X){i.push(g,X.P)}function mn(i,g,X,w,N){var n=fn(N),l=X.P;i.push(g,function(p,e,u){return l(p,e,u,w,n)})}function xn(i,g,X,w,N,n){var l=Te(w,n),p=X.P;i.push(g,function(e,u,a){return p(e,u,a,w,l)})}function Oe(i){var g=i[Sn];return g||be(i,i[Sn]=[],ke,on,mn,xn)}var yn=Symbol();function Un(i,g){i[0]=g}function Yn(i,g,X,w){var N=X.O;i[g]=w?function(n,l,p){return N(n,l,p,w)}:N}function vn(i,g,X,w,N,n){var l=X.O,p=Ue(N);i[g]=function(e,u,a){return l(e,u,a,w,p,n)}}function Gn(i,g,X,w,N,n,l){var p=X.O,e=me(w,N,n);i[g]=function(u,a,t){return p(u,a,t,w,e,l)}}function f(i){var g=i[yn];return g||be(i,i[yn]={},Un,Yn,vn,Gn)}function b(i,g,X){for(;se(g)&&g.h!=4;){var w=g.i,N=X[w];if(!N){var n=X[0];n&&(n=n[w])&&(N=X[w]=Ye(n))}if((!N||!N(g,i,w))&&(N=g,w=i,n=N.j,Ut(N),!N.W)){var l=N.g.h;N=N.g.g,N=n===N?ce||(ce=new Uint8Array(0)):Pe?l.slice(n,N):new Uint8Array(l.subarray(n,N)),(n=w.ca)?n.push(N):w.ca=[N]}}return i}function Z(i,g,X){if(Le.length){var w=Le.pop();i&&(Ve(w.g,i),w.i=-1,w.h=-1),i=w}else i=new Be(i);try{return b(new g,i,f(X))}finally{g=i.g,g.h=null,g.j=0,g.i=0,g.g=0,g.v=!1,i.i=-1,i.h=-1,100>Le.length&&Le.push(i)}}function U(i,g,X){for(var w=X.length,N=w%2==1,n=N?1:0;n<w;n+=2)(0,X[n+1])(g,i,X[n]);Me(i,g,N?X[0]:void 0)}function _(i,g){var X=new Je;U(i,X,Oe(g)),ge(X,X.g.end()),i=new Uint8Array(X.h),g=X.i;for(var w=g.length,N=0,n=0;n<w;n++){var l=g[n];i.set(l,N),N+=l.length}return X.i=[i],i}function et(i,g){return{O:i,P:g}}var O=et(function(i,g,X){if(i.h!==5)return!1;i=i.g;var w=i.h[i.g],N=i.h[i.g+1],n=i.h[i.g+2],l=i.h[i.g+3];return i.g+=4,Lt(i),N=(w<<0|N<<8|n<<16|l<<24)>>>0,i=2*(N>>31)+1,w=N>>>23&255,N&=8388607,Vt(g,X,w==255?N?NaN:1/0*i:w==0?i*Math.pow(2,-149)*N:i*Math.pow(2,w-150)*(N+Math.pow(2,23))),!0},function(i,g,X){if(g=$t(g,X),g!=null){Ge(i.g,8*X+5),i=i.g;var w=g;w=(X=0>w?1:0)?-w:w,w===0?0<1/w?le=ae=0:(ae=0,le=2147483648):isNaN(w)?(ae=0,le=2147483647):34028234663852886e22<w?(ae=0,le=(X<<31|2139095040)>>>0):11754943508222875e-54>w?(w=Math.round(w/Math.pow(2,-149)),ae=0,le=(X<<31|w)>>>0):(g=Math.floor(Math.log(w)/Math.LN2),w*=Math.pow(2,-g),w=Math.round(8388608*w),16777216<=w&&++g,ae=0,le=(X<<31|g+127<<23|w&8388607)>>>0),X=le,i.g.push(X>>>0&255),i.g.push(X>>>8&255),i.g.push(X>>>16&255),i.g.push(X>>>24&255)}}),tt=et(function(i,g,X){if(i.h!==0)return!1;for(var w=i.g,N=128,n=0,l=i=0;4>l&&128<=N;l++)N=w.h[w.g++],Lt(w),n|=(N&127)<<7*l;if(128<=N&&(N=w.h[w.g++],Lt(w),n|=(N&127)<<28,i|=(N&127)>>4),128<=N)for(l=0;5>l&&128<=N;l++)N=w.h[w.g++],Lt(w),i|=(N&127)<<7*l+3;if(128>N)w=n>>>0,N=i>>>0,(i=N&2147483648)&&(w=~w+1>>>0,N=~N>>>0,w==0&&(N=N+1>>>0)),w=4294967296*N+(w>>>0);else throw Ct();return Vt(g,X,i?-w:w),!0},function(i,g,X){if(g=$t(g,X),g!=null&&g!=null){Ge(i.g,8*X),i=i.g;var w=g;for(X=0>w,w=Math.abs(w),g=w>>>0,w=Math.floor((w-g)/4294967296),w>>>=0,X&&(w=~w>>>0,g=(~g>>>0)+1,4294967295<g&&(g=0,w++,4294967295<w&&(w=0))),le=g,ae=w,X=le,g=ae;0<g||127<X;)i.g.push(X&127|128),X=(X>>>7|g<<25)>>>0,g>>>=7;i.g.push(X)}}),st=et(function(i,g,X){return i.h!==0?!1:(Vt(g,X,pe(i.g)),!0)},function(i,g,X){if(g=$t(g,X),g!=null&&g!=null)if(Ge(i.g,8*X),i=i.g,X=g,0<=X)Ge(i,X);else{for(g=0;9>g;g++)i.g.push(X&127|128),X>>=7;i.g.push(1)}}),mt=et(function(i,g,X){if(i.h!==2)return!1;var w=pe(i.g)>>>0;i=i.g;var N=i.g;i.g+=w,Lt(i),i=i.h;var n;if(Wn)(n=hn)||(n=hn=new TextDecoder("utf-8",{fatal:!0})),n=n.decode(i.subarray(N,N+w));else{w=N+w;for(var l=[],p=null,e,u,a;N<w;)e=i[N++],128>e?l.push(e):224>e?N>=w?We():(u=i[N++],194>e||(u&192)!==128?(N--,We()):l.push((e&31)<<6|u&63)):240>e?N>=w-1?We():(u=i[N++],(u&192)!==128||e===224&&160>u||e===237&&160<=u||((n=i[N++])&192)!==128?(N--,We()):l.push((e&15)<<12|(u&63)<<6|n&63)):244>=e?N>=w-2?We():(u=i[N++],(u&192)!==128||(e<<28)+(u-144)>>30!==0||((n=i[N++])&192)!==128||((a=i[N++])&192)!==128?(N--,We()):(e=(e&7)<<18|(u&63)<<12|(n&63)<<6|a&63,e-=65536,l.push((e>>10&1023)+55296,(e&1023)+56320))):We(),8192<=l.length&&(p=tn(p,l),l.length=0);n=tn(p,l)}return Vt(g,X,n),!0},function(i,g,X){if(g=$t(g,X),g!=null){var w=!1;if(w=w===void 0?!1:w,Fn){if(w&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(g))throw Error("Found an unpaired surrogate");g=(bn||(bn=new TextEncoder)).encode(g)}else{for(var N=0,n=new Uint8Array(3*g.length),l=0;l<g.length;l++){var p=g.charCodeAt(l);if(128>p)n[N++]=p;else{if(2048>p)n[N++]=p>>6|192;else{if(55296<=p&&57343>=p){if(56319>=p&&l<g.length){var e=g.charCodeAt(++l);if(56320<=e&&57343>=e){p=1024*(p-55296)+e-56320+65536,n[N++]=p>>18|240,n[N++]=p>>12&63|128,n[N++]=p>>6&63|128,n[N++]=p&63|128;continue}else l--}if(w)throw Error("Found an unpaired surrogate");p=65533}n[N++]=p>>12|224,n[N++]=p>>6&63|128}n[N++]=p&63|128}}g=n.subarray(0,N)}Ge(i.g,8*X+2),Ge(i.g,g.length),ge(i,i.g.end()),ge(i,g)}}),It=et(function(i,g,X,w,N){if(i.h!==2)return!1;g=Ot(g,X,w),X=i.g.i,w=pe(i.g)>>>0;var n=i.g.g+w,l=n-X;if(0>=l&&(i.g.i=n,N(g,i),l=n-i.g.g),l)throw Error("Message parsing ended unexpectedly. Expected to read "+(w+" bytes, instead read "+(w-l)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return i.g.g=n,i.g.i=X,!0},function(i,g,X,w,N){if(g=Ie(g,w,X),g!=null)for(w=0;w<g.length;w++){var n=i;Ge(n.g,8*X+2);var l=n.g.end();ge(n,l),l.push(n.h),n=l,N(g[w],i),l=i;var p=n.pop();for(p=l.h+l.g.length()-p;127<p;)n.push(p&127|128),p>>>=7,l.h++;n.push(p),l.h++}});function wt(){De.apply(this,arguments)}if(xt(wt,De),Yt){var jt={};Object.defineProperties(wt,(jt[Symbol.hasInstance]=gn(Object[Symbol.hasInstance]),jt))}function Wt(i){wt.call(this,i)}xt(Wt,wt);function Zt(){return[1,st,2,O,3,mt,4,mt]}function Tt(i){wt.call(this,i,-1,Bt)}xt(Tt,wt),Tt.prototype.addClassification=function(i,g){return Ot(this,1,Wt,i,g),this};function Nt(){return[1,It,Wt,Zt]}var Bt=[1];function Dt(i){wt.call(this,i)}xt(Dt,wt);function qt(){return[1,O,2,O,3,O,4,O,5,O]}function Ze(i){wt.call(this,i,-1,d)}xt(Ze,wt);function c(){return[1,It,Dt,qt]}var d=[1];function m(i){wt.call(this,i)}xt(m,wt);function x(){return[1,O,2,O,3,O,4,O,5,O,6,tt]}function j(i,g,X){if(X=i.createShader(X===0?i.VERTEX_SHADER:i.FRAGMENT_SHADER),i.shaderSource(X,g),i.compileShader(X),!i.getShaderParameter(X,i.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
20
|
+
`+Z.getProgramInfoLog(et));Y=h.m=et,Z.useProgram(Y),_=Z.getUniformLocation(Y,"sampler0"),h.j={I:Z.getAttribLocation(Y,"aVertex"),H:Z.getAttribLocation(Y,"aTex"),da:_},h.s=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,h.s),Z.enableVertexAttribArray(h.j.I),Z.vertexAttribPointer(h.j.I,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),h.o=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,h.o),Z.enableVertexAttribArray(h.j.H),Z.vertexAttribPointer(h.j.H,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),Z.uniform1i(_,0)}Y=h.j,Z.useProgram(h.m),Z.canvas.width=b.width,Z.canvas.height=b.height,Z.viewport(0,0,b.width,b.height),Z.activeTexture(Z.TEXTURE0),h.h.bindTexture2d(b.glName),Z.enableVertexAttribArray(Y.I),Z.bindBuffer(Z.ARRAY_BUFFER,h.s),Z.vertexAttribPointer(Y.I,2,Z.FLOAT,!1,0,0),Z.enableVertexAttribArray(Y.H),Z.bindBuffer(Z.ARRAY_BUFFER,h.o),Z.vertexAttribPointer(Y.H,2,Z.FLOAT,!1,0,0),Z.bindFramebuffer(Z.DRAW_FRAMEBUFFER?Z.DRAW_FRAMEBUFFER:Z.FRAMEBUFFER,null),Z.clearColor(0,0,0,0),Z.clear(Z.COLOR_BUFFER_BIT),Z.colorMask(!0,!0,!0,!0),Z.drawArrays(Z.TRIANGLE_FAN,0,4),Z.disableVertexAttribArray(Y.I),Z.disableVertexAttribArray(Y.H),Z.bindBuffer(Z.ARRAY_BUFFER,null),h.h.bindTexture2d(0)}function En(h){this.g=h}var ke=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function be(h,b){return b+h}function rn(h,b){window[h]=b}function hn(h){var b=document.createElement("script");return b.setAttribute("src",h),b.setAttribute("crossorigin","anonymous"),new Promise(function(Z){b.addEventListener("load",function(){Z()},!1),b.addEventListener("error",function(){Z()},!1),document.body.appendChild(b)})}function Te(){return Qt(this,function h(){return te(h,function(b){switch(b.g){case 1:return b.m=2,$(b,WebAssembly.instantiate(ke),4);case 4:b.g=3,b.m=0;break;case 2:return b.m=0,b.j=null,b.return(!1);case 3:return b.return(!0)}})})}function Vn(h){if(this.g=h,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=h&&h.locateFile||be,typeof window=="object")var b=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")b=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=b,h.options){b=U(Object.keys(h.options));for(var Z=b.next();!Z.done;Z=b.next()){Z=Z.value;var Y=h.options[Z].default;Y!==void 0&&(this.j[Z]=typeof Y=="function"?Y():Y)}}}S=Vn.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Je(h,b){return h.g.files===void 0?[]:typeof h.g.files=="function"?h.g.files(b):h.g.files}function on(h){return Qt(h,function b(){var Z=this,Y,_,et,K,tt,st,mt,It,Gt,jt,Wt;return te(b,function(Zt){switch(Zt.g){case 1:return Y=Z,Z.R?(_=Je(Z,Z.j),$(Zt,Te(),2)):Zt.return();case 2:if(et=Zt.h,typeof window=="object")return rn("createMediapipeSolutionsWasm",{locateFile:Z.locateFile}),rn("createMediapipeSolutionsPackedAssets",{locateFile:Z.locateFile}),st=_.filter(function(Tt){return Tt.data!==void 0}),mt=_.filter(function(Tt){return Tt.data===void 0}),It=Promise.all(st.map(function(Tt){var Nt=Ke(Y,Tt.url);if(Tt.path!==void 0){var Pt=Tt.path;Nt=Nt.then(function(Dt){return Y.overrideFile(Pt,Dt),Promise.resolve(Dt)})}return Nt})),Gt=Promise.all(mt.map(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et?hn(Y.locateFile(Tt.url,Y.S)):Promise.resolve()})).then(function(){return Qt(Y,function Tt(){var Nt,Pt,Dt=this;return te(Tt,function(qt){if(qt.g==1)return Nt=window.createMediapipeSolutionsWasm,Pt=window.createMediapipeSolutionsPackedAssets,$(qt,Nt(Pt),2);Dt.h=qt.h,qt.g=0})})}),jt=function(){return Qt(Y,function Tt(){var Nt=this;return te(Tt,function(Pt){return Nt.g.graph&&Nt.g.graph.url?Pt=$(Pt,Ke(Nt,Nt.g.graph.url),0):(Pt.g=0,Pt=void 0),Pt})})}(),$(Zt,Promise.all([Gt,It,jt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return K=_.filter(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et}).map(function(Tt){return Y.locateFile(Tt.url,Y.S)}),importScripts.apply(null,dt(K)),$(Zt,createMediapipeSolutionsWasm(Module),6);case 6:Z.h=Zt.h,Z.l=new OffscreenCanvas(1,1),Z.h.canvas=Z.l,tt=Z.h.GL.createContext(Z.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),Z.h.GL.makeContextCurrent(tt),Zt.g=4;break;case 7:if(Z.l=document.createElement("canvas"),Wt=Z.l.getContext("webgl2",{}),!Wt&&(Wt=Z.l.getContext("webgl",{}),!Wt))return alert("Failed to create WebGL canvas context when passing video frame."),Zt.return();Z.D=Wt,Z.h.canvas=Z.l,Z.h.createContext(Z.l,!0,!0,{});case 4:Z.i=new Z.h.SolutionWasm,Z.R=!1,Zt.g=0}})})}function yn(h){return Qt(h,function b(){var Z=this,Y,_,et,K,tt,st,mt,It;return te(b,function(Gt){if(Gt.g==1){if(Z.g.graph&&Z.g.graph.url&&Z.P===Z.g.graph.url)return Gt.return();if(Z.o=!0,!Z.g.graph||!Z.g.graph.url){Gt.g=2;return}return Z.P=Z.g.graph.url,$(Gt,Ke(Z,Z.g.graph.url),3)}for(Gt.g!=2&&(Y=Gt.h,Z.i.loadGraph(Y)),_=U(Object.keys(Z.B)),et=_.next();!et.done;et=_.next())K=et.value,Z.i.overrideFile(K,Z.B[K]);if(Z.B={},Z.g.listeners)for(tt=U(Z.g.listeners),st=tt.next();!st.done;st=tt.next())mt=st.value,kn(Z,mt);It=Z.j,Z.j={},Z.setOptions(It),Gt.g=0})})}S.reset=function(){return Qt(this,function h(){var b=this;return te(h,function(Z){b.i&&(b.i.reset(),b.m={},b.s={}),Z.g=0})})},S.setOptions=function(h,b){var Z=this;if(b=b||this.g.options){for(var Y=[],_=[],et={},K=U(Object.keys(h)),tt=K.next();!tt.done;et={K:et.K,L:et.L},tt=K.next()){var st=tt.value;st in this.j&&this.j[st]===h[st]||(this.j[st]=h[st],tt=b[st],tt!==void 0&&(tt.onChange&&(et.K=tt.onChange,et.L=h[st],Y.push(function(mt){return function(){return Qt(Z,function It(){var Gt,jt=this;return te(It,function(Wt){if(Wt.g==1)return $(Wt,mt.K(mt.L),2);Gt=Wt.h,Gt===!0&&(jt.o=!0),Wt.g=0})})}}(et))),tt.graphOptionXref&&(st={valueNumber:tt.type===1?h[st]:0,valueBoolean:tt.type===0?h[st]:!1,valueString:tt.type===2?h[st]:""},tt=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),tt.graphOptionXref),st),_.push(tt))))}(Y.length!==0||_.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(_),this.u=(this.u===void 0?[]:this.u).concat(Y))}};function Fn(h){return Qt(h,function b(){var Z=this,Y,_,et,K,tt,st,mt;return te(b,function(It){switch(It.g){case 1:if(!Z.o)return It.return();if(!Z.u){It.g=2;break}Y=U(Z.u),_=Y.next();case 3:if(_.done){It.g=5;break}return et=_.value,$(It,et(),4);case 4:_=Y.next(),It.g=3;break;case 5:Z.u=void 0;case 2:if(Z.A){for(K=new Z.h.GraphOptionChangeRequestList,tt=U(Z.A),st=tt.next();!st.done;st=tt.next())mt=st.value,K.push_back(mt);Z.i.changeOptions(K),K.delete(),Z.A=void 0}Z.o=!1,It.g=0}})})}S.initialize=function(){return Qt(this,function h(){var b=this;return te(h,function(Z){return Z.g==1?$(Z,on(b),2):Z.g!=3?$(Z,yn(b),3):$(Z,Fn(b),0)})})};function Ke(h,b){return Qt(h,function Z(){var Y=this,_,et;return te(Z,function(K){return b in Y.F?K.return(Y.F[b]):(_=Y.locateFile(b,""),et=fetch(_).then(function(tt){return tt.arrayBuffer()}),Y.F[b]=et,K.return(et))})})}S.overrideFile=function(h,b){this.i?this.i.overrideFile(h,b):this.B[h]=b},S.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},S.send=function(h,b){return Qt(this,function Z(){var Y=this,_,et,K,tt,st,mt,It,Gt,jt;return te(Z,function(Wt){switch(Wt.g){case 1:return Y.g.inputs?(_=1e3*(b==null?performance.now():b),$(Wt,Y.C,2)):Wt.return();case 2:return $(Wt,Y.initialize(),3);case 3:for(et=new Y.h.PacketDataList,K=U(Object.keys(h)),tt=K.next();!tt.done;tt=K.next())if(st=tt.value,mt=Y.g.inputs[st]){t:{var Zt=Y,Tt=h[st];switch(mt.type){case"video":var Nt=Zt.m[mt.stream];if(Nt||(Nt=new $e(Zt.h,Zt.D),Zt.m[mt.stream]=Nt),Zt=Nt,Zt.l===0&&(Zt.l=Zt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&Tt instanceof HTMLVideoElement){var Pt=Tt.videoWidth;Nt=Tt.videoHeight}else typeof HTMLImageElement!="undefined"&&Tt instanceof HTMLImageElement?(Pt=Tt.naturalWidth,Nt=Tt.naturalHeight):(Pt=Tt.width,Nt=Tt.height);Nt={glName:Zt.l,width:Pt,height:Nt},Pt=Zt.g,Pt.canvas.width=Nt.width,Pt.canvas.height=Nt.height,Pt.activeTexture(Pt.TEXTURE0),Zt.h.bindTexture2d(Zt.l),Pt.texImage2D(Pt.TEXTURE_2D,0,Pt.RGBA,Pt.RGBA,Pt.UNSIGNED_BYTE,Tt),Zt.h.bindTexture2d(0),Zt=Nt;break t;case"detections":for(Nt=Zt.m[mt.stream],Nt||(Nt=new En(Zt.h),Zt.m[mt.stream]=Nt),Zt=Nt,Zt.data||(Zt.data=new Zt.g.DetectionListData),Zt.data.reset(Tt.length),Nt=0;Nt<Tt.length;++Nt){Pt=Tt[Nt];var Dt=Zt.data,qt=Dt.setBoundingBox,Ze=Nt,c=Pt.T,d=new an;kt(d,1,c.Z),kt(d,2,c.$),kt(d,3,c.height),kt(d,4,c.width),kt(d,5,c.rotation),kt(d,6,c.X);var m=c=new Xe;Yt(m,1,zt(d,1)),Yt(m,2,zt(d,2)),Yt(m,3,zt(d,3)),Yt(m,4,zt(d,4)),Yt(m,5,zt(d,5));var F=zt(d,6);if(F!=null&&F!=null){re(m.g,48);var j=m.g,B=F;F=0>B,B=Math.abs(B);var C=B>>>0;for(B=Math.floor((B-C)/4294967296),B>>>=0,F&&(B=~B>>>0,C=(~C>>>0)+1,4294967295<C&&(C=0,B++,4294967295<B&&(B=0))),ce=C,ve=B,F=ce,C=ve;0<C||127<F;)j.push(F&127|128),F=(F>>>7|C<<25)>>>0,C>>>=7;j.push(F)}if(Ie(d,m),c=se(c),qt.call(Dt,Ze,c),Pt.O)for(Dt=0;Dt<Pt.O.length;++Dt)d=Pt.O[Dt],m=!!d.visibility,qt=Zt.data,Ze=qt.addNormalizedLandmark,c=Nt,d=Object.assign(Object.assign({},d),{visibility:m?d.visibility:0}),m=new Oe,kt(m,1,d.x),kt(m,2,d.y),kt(m,3,d.z),d.visibility&&kt(m,4,d.visibility),j=d=new Xe,Yt(j,1,zt(m,1)),Yt(j,2,zt(m,2)),Yt(j,3,zt(m,3)),Yt(j,4,zt(m,4)),Yt(j,5,zt(m,5)),Ie(m,j),d=se(d),Ze.call(qt,c,d);if(Pt.M)for(Dt=0;Dt<Pt.M.length;++Dt){if(qt=Zt.data,Ze=qt.addClassification,c=Nt,d=Pt.M[Dt],m=new Fe,kt(m,2,d.Y),d.index&&kt(m,1,d.index),d.label&&kt(m,3,d.label),d.displayName&&kt(m,4,d.displayName),j=d=new Xe,C=zt(m,1),C!=null&&C!=null)if(re(j.g,8),F=j.g,0<=C)re(F,C);else{for(B=0;9>B;B++)F.push(C&127|128),C>>=7;F.push(1)}Yt(j,2,zt(m,2)),F=zt(m,3),F!=null&&(F=Zn(F),re(j.g,26),re(j.g,F.length),Pe(j,j.g.end()),Pe(j,F)),F=zt(m,4),F!=null&&(F=Zn(F),re(j.g,34),re(j.g,F.length),Pe(j,j.g.end()),Pe(j,F)),Ie(m,j),d=se(d),Ze.call(qt,c,d)}}Zt=Zt.data;break t;default:Zt={}}}switch(It=Zt,Gt=mt.stream,mt.type){case"video":et.pushTexture2d(Object.assign(Object.assign({},It),{stream:Gt,timestamp:_}));break;case"detections":jt=It,jt.stream=Gt,jt.timestamp=_,et.pushDetectionList(jt);break;default:throw Error("Unknown input config type: '"+mt.type+"'")}}return Y.i.send(et),$(Wt,Y.C,4);case 4:et.delete(),Wt.g=0}})})};function vn(h,b,Z){return Qt(h,function Y(){var _,et,K,tt,st,mt,It=this,Gt,jt,Wt,Zt,Tt,Nt,Pt,Dt;return te(Y,function(qt){switch(qt.g){case 1:if(!Z)return qt.return(b);for(_={},et=0,K=U(Object.keys(Z)),tt=K.next();!tt.done;tt=K.next())st=tt.value,mt=Z[st],typeof mt!="string"&&mt.type==="texture"&&b[mt.stream]!==void 0&&++et;1<et&&(It.G=!1),Gt=U(Object.keys(Z)),tt=Gt.next();case 2:if(tt.done){qt.g=4;break}if(jt=tt.value,Wt=Z[jt],typeof Wt=="string")return Pt=_,Dt=jt,$(qt,Yn(It,jt,b[Wt]),14);if(Zt=b[Wt.stream],Wt.type==="detection_list"){if(Zt){for(var Ze=Zt.getRectList(),c=Zt.getLandmarksList(),d=Zt.getClassificationsList(),m=[],F=0;F<Ze.size();++F){var j=Ze.get(F);t:{var B=new an;for(j=new Se(j);Lt(j);)switch(j.i){case 13:var C=Me(j.g);kt(B,1,C);break;case 21:C=Me(j.g),kt(B,2,C);break;case 29:C=Me(j.g),kt(B,3,C);break;case 37:C=Me(j.g),kt(B,4,C);break;case 45:C=Me(j.g),kt(B,5,C);break;case 48:for(var D=j.g,rt=128,r=0,y=C=0;4>y&&128<=rt;y++)rt=D.h[D.g++],r|=(rt&127)<<7*y;if(128<=rt&&(rt=D.h[D.g++],r|=(rt&127)<<28,C|=(rt&127)>>4),128<=rt)for(y=0;5>y&&128<=rt;y++)rt=D.h[D.g++],C|=(rt&127)<<7*y+3;128>rt?(D=r>>>0,rt=C>>>0,(C=rt&2147483648)&&(D=~D+1>>>0,rt=~rt>>>0,D==0&&(rt=rt+1>>>0)),D=4294967296*rt+(D>>>0),C=C?-D:D):(D.l=!0,C=void 0),kt(B,6,C);break;default:if(!Kt(B,j))break t}}B={Z:Ot(B,1),$:Ot(B,2),height:Ot(B,3),width:Ot(B,4),rotation:Ot(B,5,0),X:bt(B,6)},C=c.get(F);t:for(j=new Ht,C=new Se(C);Lt(C);)switch(C.i){case 10:D=At(C,new Oe,Ve),$t(j,D,Oe,void 0);break;default:if(!Kt(j,C))break t}j=mn(j,Oe).map(ze),D=d.get(F);t:for(C=new Rt,D=new Se(D);Lt(D);)switch(D.i){case 10:C.addClassification(At(D,new Fe,Jt));break;default:if(!Kt(C,D))break t}B={T:B,O:j,M:Ne(C)},m.push(B)}Ze=m}else Ze=[];_[jt]=Ze,qt.g=7;break}if(Wt.type==="proto_list"){if(Zt){for(Ze=Array(Zt.size()),c=0;c<Zt.size();c++)Ze[c]=Zt.get(c);Zt.delete()}else Ze=[];_[jt]=Ze,qt.g=7;break}if(Zt===void 0){qt.g=3;break}if(Wt.type==="float_list"){_[jt]=Zt,qt.g=7;break}if(Wt.type==="proto"){_[jt]=Zt,qt.g=7;break}if(Wt.type!=="texture")throw Error("Unknown output config type: '"+Wt.type+"'");return Tt=It.s[jt],Tt||(Tt=new $e(It.h,It.D),It.s[jt]=Tt),$(qt,me(Tt,Zt,It.G),13);case 13:Nt=qt.h,_[jt]=Nt;case 7:Wt.transform&&_[jt]&&(_[jt]=Wt.transform(_[jt])),qt.g=3;break;case 14:Pt[Dt]=qt.h;case 3:tt=Gt.next(),qt.g=2;break;case 4:return qt.return(_)}})})}function Yn(h,b,Z){return Qt(h,function Y(){var _=this,et;return te(Y,function(K){return typeof Z=="number"||Z instanceof Uint8Array||Z instanceof _.h.Uint8BlobList?K.return(Z):Z instanceof _.h.Texture2dDataOut?(et=_.s[b],et||(et=new $e(_.h,_.D),_.s[b]=et),K.return(me(et,Z,_.G))):K.return(void 0)})})}function kn(h,b){for(var Z=b.name||"$",Y=[].concat(dt(b.wants)),_=new h.h.StringList,et=U(b.wants),K=et.next();!K.done;K=et.next())_.push_back(K.value);et=h.h.PacketListener.implement({onResults:function(tt){for(var st={},mt=0;mt<b.wants.length;++mt)st[Y[mt]]=tt.get(mt);var It=h.listeners[Z];It&&(h.C=vn(h,st,b.outs).then(function(Gt){Gt=It(Gt);for(var jt=0;jt<b.wants.length;++jt){var Wt=st[Y[jt]];typeof Wt=="object"&&Wt.hasOwnProperty&&Wt.hasOwnProperty("delete")&&Wt.delete()}Gt&&(h.C=Gt)}))}}),h.i.attachMultiListener(_,et),_.delete()}S.onResults=function(h,b){this.listeners[b||"$"]=h},ye("Solution",Vn),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function bn(h){switch(h===void 0&&(h=0),h){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}function Rn(h){var b=this;h=h||{},this.g=new Vn({locateFile:h.locateFile,files:function(Z){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:bn(Z.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(Z){return Qt(b,function Y(){var _,et,K=this,tt;return te(Y,function(st){return st.g==1?(_=bn(Z),et="third_party/mediapipe/modules/selfie_segmentation/"+_,$(st,Ke(K.g,_),2)):(tt=st.h,K.g.overrideFile(et,tt),st.return(!0))})})}}}})}S=Rn.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(h){this.g.onResults(h)},S.initialize=function(){return Qt(this,function h(){var b=this;return te(h,function(Z){return $(Z,b.g.initialize(),0)})})},S.reset=function(){this.g.reset()},S.send=function(h){return Qt(this,function b(){var Z=this;return te(b,function(Y){return $(Y,Z.g.send(h),0)})})},S.setOptions=function(h){this.g.setOptions(h)},ye("SelfieSegmentation",Rn),ye("VERSION","0.1.1632777926")}).call(wr);const Gr={};(function(){var S;function v(i){var g=0;return function(){return g<i.length?{done:!1,value:i[g++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(i,g,R){return i==Array.prototype||i==Object.prototype||(i[g]=R.value),i};function L(i){i=[typeof globalThis=="object"&&globalThis,i,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var g=0;g<i.length;++g){var R=i[g];if(R&&R.Math==Math)return R}throw Error("Cannot find global object")}var I=L(this);function A(i,g){if(g)t:{var R=I;i=i.split(".");for(var W=0;W<i.length-1;W++){var N=i[W];if(!(N in R))break t;R=R[N]}i=i[i.length-1],W=R[i],g=g(W),g!=W&&g!=null&&G(R,i,{configurable:!0,writable:!0,value:g})}}A("Symbol",function(i){function g(n){if(this instanceof g)throw new TypeError("Symbol is not a constructor");return new R(W+(n||"")+"_"+N++,n)}function R(n,l){this.g=n,G(this,"description",{configurable:!0,writable:!0,value:l})}if(i)return i;R.prototype.toString=function(){return this.g};var W="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",N=0;return g}),A("Symbol.iterator",function(i){if(i)return i;i=Symbol("Symbol.iterator");for(var g="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),R=0;R<g.length;R++){var W=I[g[R]];typeof W=="function"&&typeof W.prototype[i]!="function"&&G(W.prototype,i,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return i});function Q(i){return i={next:i},i[Symbol.iterator]=function(){return this},i}function U(i){var g=typeof Symbol!="undefined"&&Symbol.iterator&&i[Symbol.iterator];return g?g.call(i):{next:v(i)}}function dt(i){if(!(i instanceof Array)){i=U(i);for(var g,R=[];!(g=i.next()).done;)R.push(g.value);i=R}return i}var _e=typeof Object.create=="function"?Object.create:function(i){function g(){}return g.prototype=i,new g},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(i,g){if(i.__proto__=g,i.__proto__!==g)throw new TypeError(i+" is not extensible");return i}:null}var je=ct;function Ft(i,g){if(i.prototype=_e(g.prototype),i.prototype.constructor=i,je)je(i,g);else for(var R in g)if(R!="prototype")if(Object.defineProperties){var W=Object.getOwnPropertyDescriptor(g,R);W&&Object.defineProperty(i,R,W)}else i[R]=g[R];i.ra=g.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function de(i){if(i.l)throw new TypeError("Generator is already running");i.l=!0}ue.prototype.s=function(i){this.h=i};function fe(i,g){i.j={fa:g,ga:!0},i.g=i.o||i.u}ue.prototype.return=function(i){this.j={return:i},this.g=this.u};function $(i,g,R){return i.g=R,{value:g}}function In(i){this.g=new ue,this.h=i}function jn(i,g){de(i.g);var R=i.g.i;return R?Ce(i,"return"in R?R.return:function(W){return{value:W,done:!0}},g,i.g.return):(i.g.return(g),ee(i))}function Ce(i,g,R,W){try{var N=g.call(i.g.i,R);if(!(N instanceof Object))throw new TypeError("Iterator result "+N+" is not an object");if(!N.done)return i.g.l=!1,N;var n=N.value}catch(l){return i.g.i=null,fe(i.g,l),ee(i)}return i.g.i=null,W.call(i.g,n),ee(i)}function ee(i){for(;i.g.g;)try{var g=i.h(i.g);if(g)return i.g.l=!1,{value:g.value,done:!1}}catch(R){i.g.h=void 0,fe(i.g,R)}if(i.g.l=!1,i.g.j){if(g=i.g.j,i.g.j=null,g.ga)throw g.fa;return{value:g.return,done:!0}}return{value:void 0,done:!0}}function Cn(i){this.next=function(g){return de(i.g),i.g.i?g=Ce(i,i.g.i.next,g,i.g.s):(i.g.s(g),g=ee(i)),g},this.throw=function(g){return de(i.g),i.g.i?g=Ce(i,i.g.i.throw,g,i.g.s):(fe(i.g,g),g=ee(i)),g},this.return=function(g){return jn(i,g)},this[Symbol.iterator]=function(){return this}}function te(i){function g(W){return i.next(W)}function R(W){return i.throw(W)}return new Promise(function(W,N){function n(l){l.done?W(l.value):Promise.resolve(l.value).then(g,R).then(n,N)}n(i.next())})}function ft(i){return te(new Cn(new In(i)))}A("Promise",function(i){function g(l){this.h=0,this.i=void 0,this.g=[],this.s=!1;var p=this.j();try{l(p.resolve,p.reject)}catch(e){p.reject(e)}}function R(){this.g=null}function W(l){return l instanceof g?l:new g(function(p){p(l)})}if(i)return i;R.prototype.h=function(l){if(this.g==null){this.g=[];var p=this;this.i(function(){p.l()})}this.g.push(l)};var N=I.setTimeout;R.prototype.i=function(l){N(l,0)},R.prototype.l=function(){for(;this.g&&this.g.length;){var l=this.g;this.g=[];for(var p=0;p<l.length;++p){var e=l[p];l[p]=null;try{e()}catch(u){this.j(u)}}}this.g=null},R.prototype.j=function(l){this.i(function(){throw l})},g.prototype.j=function(){function l(u){return function(a){e||(e=!0,u.call(p,a))}}var p=this,e=!1;return{resolve:l(this.D),reject:l(this.l)}},g.prototype.D=function(l){if(l===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(l instanceof g)this.H(l);else{t:switch(typeof l){case"object":var p=l!=null;break t;case"function":p=!0;break t;default:p=!1}p?this.A(l):this.o(l)}},g.prototype.A=function(l){var p=void 0;try{p=l.then}catch(e){this.l(e);return}typeof p=="function"?this.I(p,l):this.o(l)},g.prototype.l=function(l){this.u(2,l)},g.prototype.o=function(l){this.u(1,l)},g.prototype.u=function(l,p){if(this.h!=0)throw Error("Cannot settle("+l+", "+p+"): Promise already settled in state"+this.h);this.h=l,this.i=p,this.h===2&&this.G(),this.B()},g.prototype.G=function(){var l=this;N(function(){if(l.C()){var p=I.console;typeof p!="undefined"&&p.error(l.i)}},1)},g.prototype.C=function(){if(this.s)return!1;var l=I.CustomEvent,p=I.Event,e=I.dispatchEvent;return typeof e=="undefined"?!0:(typeof l=="function"?l=new l("unhandledrejection",{cancelable:!0}):typeof p=="function"?l=new p("unhandledrejection",{cancelable:!0}):(l=I.document.createEvent("CustomEvent"),l.initCustomEvent("unhandledrejection",!1,!0,l)),l.promise=this,l.reason=this.i,e(l))},g.prototype.B=function(){if(this.g!=null){for(var l=0;l<this.g.length;++l)n.h(this.g[l]);this.g=null}};var n=new R;return g.prototype.H=function(l){var p=this.j();l.M(p.resolve,p.reject)},g.prototype.I=function(l,p){var e=this.j();try{l.call(p,e.resolve,e.reject)}catch(u){e.reject(u)}},g.prototype.then=function(l,p){function e(o,s){return typeof o=="function"?function(f){try{u(o(f))}catch(w){a(w)}}:s}var u,a,t=new g(function(o,s){u=o,a=s});return this.M(e(l,u),e(p,a)),t},g.prototype.catch=function(l){return this.then(void 0,l)},g.prototype.M=function(l,p){function e(){switch(u.h){case 1:l(u.i);break;case 2:p(u.i);break;default:throw Error("Unexpected state: "+u.h)}}var u=this;this.g==null?n.h(e):this.g.push(e),this.s=!0},g.resolve=W,g.reject=function(l){return new g(function(p,e){e(l)})},g.race=function(l){return new g(function(p,e){for(var u=U(l),a=u.next();!a.done;a=u.next())W(a.value).M(p,e)})},g.all=function(l){var p=U(l),e=p.next();return e.done?W([]):new g(function(u,a){function t(f){return function(w){o[f]=w,s--,s==0&&u(o)}}var o=[],s=0;do o.push(void 0),s++,W(e.value).M(t(o.length-1),a),e=p.next();while(!e.done)})},g});function Hn(i,g){i instanceof String&&(i+="");var R=0,W=!1,N={next:function(){if(!W&&R<i.length){var n=R++;return{value:g(n,i[n]),done:!1}}return W=!0,{done:!0,value:void 0}}};return N[Symbol.iterator]=function(){return N},N}var Un=typeof Object.assign=="function"?Object.assign:function(i,g){for(var R=1;R<arguments.length;R++){var W=arguments[R];if(W)for(var N in W)Object.prototype.hasOwnProperty.call(W,N)&&(i[N]=W[N])}return i};A("Object.assign",function(i){return i||Un}),A("Object.is",function(i){return i||function(g,R){return g===R?g!==0||1/g===1/R:g!==g&&R!==R}}),A("Array.prototype.includes",function(i){return i||function(g,R){var W=this;W instanceof String&&(W=String(W));var N=W.length;for(R=R||0,0>R&&(R=Math.max(R+N,0));R<N;R++){var n=W[R];if(n===g||Object.is(n,g))return!0}return!1}}),A("String.prototype.includes",function(i){return i||function(g,R){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(g instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(g,R||0)!==-1}}),A("Array.prototype.keys",function(i){return i||function(){return Hn(this,function(g){return g})}});var ye=this||self;function Vt(i,g){i=i.split(".");var R=ye;i[0]in R||typeof R.execScript=="undefined"||R.execScript("var "+i[0]);for(var W;i.length&&(W=i.shift());)i.length||g===void 0?R[W]&&R[W]!==Object.prototype[W]?R=R[W]:R=R[W]={}:R[W]=g}function We(){throw Error("Invalid UTF8")}function tn(i,g){return g=String.fromCharCode.apply(null,g),i==null?g:i+g}var dn,Wn=typeof TextDecoder!="undefined",Zn,xn=typeof TextEncoder!="undefined",en={},un=null;function Ln(i){var g;g===void 0&&(g=0),nn(),g=en[g];for(var R=Array(Math.floor(i.length/3)),W=g[64]||"",N=0,n=0;N<i.length-2;N+=3){var l=i[N],p=i[N+1],e=i[N+2],u=g[l>>2];l=g[(l&3)<<4|p>>4],p=g[(p&15)<<2|e>>6],e=g[e&63],R[n++]=u+l+p+e}switch(u=0,e=W,i.length-N){case 2:u=i[N+1],e=g[(u&15)<<2]||W;case 1:i=i[N],R[n]=g[i>>2]+g[(i&3)<<4|u>>4]+e+W}return R.join("")}function Sn(i){var g=i.length,R=3*g/4;R%3?R=Math.floor(R):"=.".indexOf(i[g-1])!=-1&&(R="=.".indexOf(i[g-2])!=-1?R-2:R-1);var W=new Uint8Array(R),N=0;return pn(i,function(n){W[N++]=n}),N!==R?W.subarray(0,N):W}function pn(i,g){function R(e){for(;W<i.length;){var u=i.charAt(W++),a=un[u];if(a!=null)return a;if(!/^[\s\xa0]*$/.test(u))throw Error("Unknown base64 encoding at char: "+u)}return e}nn();for(var W=0;;){var N=R(-1),n=R(0),l=R(64),p=R(64);if(p===64&&N===-1)break;g(N<<2|n>>4),l!=64&&(g(n<<4&240|l>>2),p!=64&&g(l<<6&192|p))}}function nn(){if(!un){un={};for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),g=["+/=","+/","-_=","-_.","-_"],R=0;5>R;R++){var W=i.concat(g[R].split(""));en[R]=W;for(var N=0;N<W.length;N++){var n=W[N];un[n]===void 0&&(un[n]=N)}}}}var Xn=typeof Uint8Array=="function";function gn(i){return Xn&&i!=null&&i instanceof Uint8Array}var ce;function ve(i){if(this.L=i,i!==null&&i.length===0)throw Error("ByteString should be constructed with non-empty values")}var Be=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function Me(i,g){if(i.constructor===Uint8Array)return i;if(i.constructor===ArrayBuffer)return new Uint8Array(i);if(i.constructor===Array)return new Uint8Array(i);if(i.constructor===String)return Sn(i);if(i.constructor===ve)return!g&&(g=i.L)&&g.constructor===Uint8Array?g:(g=i.L,g=g==null||gn(g)?g:typeof g=="string"?Sn(g):null,(i=i.L=g)?new Uint8Array(i):ce||(ce=new Uint8Array(0)));if(i instanceof Uint8Array)return new Uint8Array(i.buffer,i.byteOffset,i.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function xe(i,g){return Error("Invalid wire type: "+i+" (at position "+g+")")}function Ut(){return Error("Failed to read varint, encoding is invalid.")}function re(i,g){g=g===void 0?{}:g,g=g.v===void 0?!1:g.v,this.h=null,this.g=this.i=this.j=0,this.v=g,i&&Se(this,i)}function Se(i,g){i.h=Me(g,i.v),i.j=0,i.i=i.h.length,i.g=i.j}re.prototype.reset=function(){this.g=this.j};function Lt(i){if(i.g>i.i)throw Error("Tried to read past the end of the data "+i.g+" > "+i.i)}function pe(i){var g=i.h,R=g[i.g],W=R&127;if(128>R)return i.g+=1,Lt(i),W;if(R=g[i.g+1],W|=(R&127)<<7,128>R)return i.g+=2,Lt(i),W;if(R=g[i.g+2],W|=(R&127)<<14,128>R)return i.g+=3,Lt(i),W;if(R=g[i.g+3],W|=(R&127)<<21,128>R)return i.g+=4,Lt(i),W;if(R=g[i.g+4],i.g+=5,W|=(R&15)<<28,128>R)return Lt(i),W;if(128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++])throw Ut();return Lt(i),W}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var i=this.g;return this.g=[],i};function Xe(i,g){for(;127<g;)i.g.push(g&127|128),g>>>=7;i.g.push(g)}function Pe(i){var g={},R=g.W===void 0?!1:g.W;this.l={v:g.v===void 0?!1:g.v},this.W=R,g=this.l,At.length?(R=At.pop(),g&&(R.v=g.v),i&&Se(R,i),i=R):i=new re(i,g),this.g=i,this.j=this.g.g,this.h=this.i=-1}Pe.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(i){var g=i.g;if(g.g==g.i)return!1;i.j=i.g.g;var R=pe(i.g)>>>0;if(g=R>>>3,R&=7,!(0<=R&&5>=R))throw xe(R,i.j);if(1>g)throw Error("Invalid field number: "+g+" (at position "+i.j+")");return i.i=g,i.h=R,!0}function Yt(i){switch(i.h){case 0:if(i.h!=0)Yt(i);else t:{i=i.g;for(var g=i.g,R=g+10;g<R;)if((i.h[g++]&128)===0){i.g=g,Lt(i);break t}throw Ut()}break;case 1:i=i.g,i.g+=8,Lt(i);break;case 2:i.h!=2?Yt(i):(g=pe(i.g)>>>0,i=i.g,i.g+=g,Lt(i));break;case 5:i=i.g,i.g+=4,Lt(i);break;case 3:g=i.i;do{if(!se(i))throw Error("Unmatched start-group tag: stream EOF");if(i.h==4){if(i.i!=g)throw Error("Unmatched end-group tag");break}Yt(i)}while(1);break;default:throw xe(i.h,i.j)}}var Le=[];function He(){this.i=[],this.h=0,this.g=new ne}function ge(i,g){g.length!==0&&(i.i.push(g),i.h+=g.length)}function wn(i,g){if(g=g.ca){ge(i,i.g.end());for(var R=0;R<g.length;R++)ge(i,g[R])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(i,g){Object.isFrozen(i)||(Qe?i[Qe]|=g:i.N!==void 0?i.N|=g:Object.defineProperties(i,{N:{value:g,configurable:!0,writable:!0,enumerable:!1}}))}function cn(i){var g;return Qe?g=i[Qe]:g=i.N,g==null?0:g}function ie(i){return sn(i,1),i}function Re(i){return Array.isArray(i)?!!(cn(i)&2):!1}function oe(i){if(!Array.isArray(i))throw Error("cannot mark non-array as immutable");sn(i,2)}function zt(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)&&i.constructor===Object}var Ue=Object.freeze(ie([]));function Ot(i){if(Re(i.m))throw Error("Cannot mutate an immutable Message")}var kt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function mn(i){return{value:i,configurable:!1,writable:!1,enumerable:!1}}function $t(i,g,R){return g===-1?null:g>=i.i?i.g?i.g[g]:void 0:(R===void 0?0:R)&&i.g&&(R=i.g[g],R!=null)?R:i.m[g+i.h]}function St(i,g,R,W){W=W===void 0?!1:W,Ot(i),g<i.i&&!W?i.m[g+i.h]=R:(i.g||(i.g=i.m[i.i+i.h]={}))[g]=R}function bt(i,g,R,W){R=R===void 0?!0:R,W=W===void 0?!1:W;var N=$t(i,g,W);return N==null&&(N=Ue),Re(i.m)?R&&(oe(N),Object.freeze(N)):(N===Ue||Re(N))&&(N=ie(N.slice()),St(i,g,N,W)),N}function Mt(i,g,R){return i=$t(i,g),i=i==null?i:+i,i==null?R===void 0?0:R:i}function Ie(i,g,R,W){i.j||(i.j={});var N=Re(i.m),n=i.j[R];if(!n){W=bt(i,R,!0,W===void 0?!1:W),n=[],N=N||Re(W);for(var l=0;l<W.length;l++)n[l]=new g(W[l]),N&&oe(n[l].m);N&&(oe(n),Object.freeze(n)),i.j[R]=n}return n}function Kt(i,g,R,W,N){var n=n===void 0?!1:n;return Ot(i),n=Ie(i,R,g,n),R=W||new R,i=bt(i,g),N!=null?(n.splice(N,0,R),i.splice(N,0,R.m)):(n.push(R),i.push(R.m)),R}function Qt(i,g){return i=$t(i,g),i==null?0:i}function Fe(i,g){return i=$t(i,g),i==null?"":i}function Jt(i){switch(typeof i){case"number":return isFinite(i)?i:String(i);case"object":if(i&&!Array.isArray(i)){if(gn(i))return Ln(i);if(i instanceof ve){var g=i.L;return g=g==null||typeof g=="string"?g:Xn&&g instanceof Uint8Array?Ln(g):null,(i.L=g)||""}}}return i}function Rt(i){var g=Ve;return g=g===void 0?Ht:g,Oe(i,g)}function Ae(i,g){if(i!=null){if(Array.isArray(i))i=Oe(i,g);else if(zt(i)){var R={},W;for(W in i)R[W]=Ae(i[W],g);i=R}else i=g(i);return i}}function Oe(i,g){for(var R=i.slice(),W=0;W<R.length;W++)R[W]=Ae(R[W],g);return Array.isArray(i)&&cn(i)&1&&ie(R),R}function Ve(i){return i&&typeof i=="object"&&i.toJSON?i.toJSON():(i=Jt(i),Array.isArray(i)?Rt(i):i)}function Ht(i){return gn(i)?new Uint8Array(i):i}function Ee(i,g,R){i||(i=an),an=null;var W=this.constructor.h;i||(i=W?[W]:[]),this.h=(W?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=i;t:{if(W=this.m.length,i=W-1,W&&(W=this.m[i],zt(W))){this.i=i-this.h,this.g=W;break t}g!==void 0&&-1<g?(this.i=Math.max(g,i+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(R)for(g=0;g<R.length;g++)if(i=R[g],i<this.i)i+=this.h,(W=this.m[i])?Array.isArray(W)&&ie(W):this.m[i]=Ue;else{W=this.g||(this.g=this.m[this.i+this.h]={});var N=W[i];N?Array.isArray(N)&&ie(N):W[i]=Ue}}Ee.prototype.toJSON=function(){return Rt(this.m)},Ee.prototype.toString=function(){return this.m.toString()};var an;function De(){Ee.apply(this,arguments)}if(Ft(De,Ee),kt){var Ne={};Object.defineProperties(De,(Ne[Symbol.hasInstance]=mn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ne))}function ze(i,g,R){if(R){var W={},N;for(N in R){var n=R[N],l=n.ja;l||(W.F=n.pa||n.ha.P,n.ba?(W.U=hn(n.ba),l=function(p){return function(e,u,a){return p.F(e,u,a,p.U)}}(W)):n.da?(W.T=Te(n.X.g,n.da),l=function(p){return function(e,u,a){return p.F(e,u,a,p.T)}}(W)):l=W.F,n.ja=l),l(g,i,n.X),W={F:W.F,U:W.U,T:W.T}}}wn(g,i)}var $e=Symbol();function me(i,g,R){return i[$e]||(i[$e]=function(W,N){return g(W,N,R)})}function Ye(i){var g=i[$e];if(!g){var R=h(i);g=function(W,N){return b(W,N,R)},i[$e]=g}return g}function En(i){var g=i.ba;if(g)return Ye(g);if(g=i.oa)return me(i.X.g,g,i.da)}function ke(i){var g=En(i),R=i.X,W=i.ha.O;return g?function(N,n){return W(N,n,R,g)}:function(N,n){return W(N,n,R)}}function be(i,g,R,W,N,n){i=i();var l=0;for(i.length&&typeof i[0]!="number"&&(R(g,i[0]),l++);l<i.length;){R=i[l++];for(var p=l+1;p<i.length&&typeof i[p]!="number";)p++;var e=i[l++];switch(p-=l,p){case 0:W(g,R,e);break;case 1:W(g,R,e,i[l++]);break;case 2:N(g,R,e,i[l++],i[l++]);break;case 3:p=i[l++];var u=i[l++],a=i[l++];Array.isArray(a)?N(g,R,e,p,u,a):n(g,R,e,p,u,a);break;case 4:n(g,R,e,i[l++],i[l++],i[l++],i[l++]);break;default:throw Error("unexpected number of binary field arguments: "+p)}}return g}var rn=Symbol();function hn(i){var g=i[rn];if(!g){var R=Ke(i);g=function(W,N){return Y(W,N,R)},i[rn]=g}return g}function Te(i,g){var R=i[rn];return R||(R=function(W,N){return ze(W,N,g)},i[rn]=R),R}var Vn=Symbol();function Je(i,g){i.push(g)}function on(i,g,R){i.push(g,R.P)}function yn(i,g,R,W,N){var n=hn(N),l=R.P;i.push(g,function(p,e,u){return l(p,e,u,W,n)})}function Fn(i,g,R,W,N,n){var l=Te(W,n),p=R.P;i.push(g,function(e,u,a){return p(e,u,a,W,l)})}function Ke(i){var g=i[Vn];return g||be(i,i[Vn]=[],Je,on,yn,Fn)}var vn=Symbol();function Yn(i,g){i[0]=g}function kn(i,g,R,W){var N=R.O;i[g]=W?function(n,l,p){return N(n,l,p,W)}:N}function bn(i,g,R,W,N,n){var l=R.O,p=Ye(N);i[g]=function(e,u,a){return l(e,u,a,W,p,n)}}function Rn(i,g,R,W,N,n,l){var p=R.O,e=me(W,N,n);i[g]=function(u,a,t){return p(u,a,t,W,e,l)}}function h(i){var g=i[vn];return g||be(i,i[vn]={},Yn,kn,bn,Rn)}function b(i,g,R){for(;se(g)&&g.h!=4;){var W=g.i,N=R[W];if(!N){var n=R[0];n&&(n=n[W])&&(N=R[W]=ke(n))}if((!N||!N(g,i,W))&&(N=g,W=i,n=N.j,Yt(N),!N.W)){var l=N.g.h;N=N.g.g,N=n===N?ce||(ce=new Uint8Array(0)):Be?l.slice(n,N):new Uint8Array(l.subarray(n,N)),(n=W.ca)?n.push(N):W.ca=[N]}}return i}function Z(i,g,R){if(Le.length){var W=Le.pop();i&&(Se(W.g,i),W.i=-1,W.h=-1),i=W}else i=new Pe(i);try{return b(new g,i,h(R))}finally{g=i.g,g.h=null,g.j=0,g.i=0,g.g=0,g.v=!1,i.i=-1,i.h=-1,100>Le.length&&Le.push(i)}}function Y(i,g,R){for(var W=R.length,N=W%2==1,n=N?1:0;n<W;n+=2)(0,R[n+1])(g,i,R[n]);ze(i,g,N?R[0]:void 0)}function _(i,g){var R=new He;Y(i,R,Ke(g)),ge(R,R.g.end()),i=new Uint8Array(R.h),g=R.i;for(var W=g.length,N=0,n=0;n<W;n++){var l=g[n];i.set(l,N),N+=l.length}return R.i=[i],i}function et(i,g){return{O:i,P:g}}var K=et(function(i,g,R){if(i.h!==5)return!1;i=i.g;var W=i.h[i.g],N=i.h[i.g+1],n=i.h[i.g+2],l=i.h[i.g+3];return i.g+=4,Lt(i),N=(W<<0|N<<8|n<<16|l<<24)>>>0,i=2*(N>>31)+1,W=N>>>23&255,N&=8388607,St(g,R,W==255?N?NaN:1/0*i:W==0?i*Math.pow(2,-149)*N:i*Math.pow(2,W-150)*(N+Math.pow(2,23))),!0},function(i,g,R){if(g=$t(g,R),g!=null){Xe(i.g,8*R+5),i=i.g;var W=g;W=(R=0>W?1:0)?-W:W,W===0?0<1/W?le=ae=0:(ae=0,le=2147483648):isNaN(W)?(ae=0,le=2147483647):34028234663852886e22<W?(ae=0,le=(R<<31|2139095040)>>>0):11754943508222875e-54>W?(W=Math.round(W/Math.pow(2,-149)),ae=0,le=(R<<31|W)>>>0):(g=Math.floor(Math.log(W)/Math.LN2),W*=Math.pow(2,-g),W=Math.round(8388608*W),16777216<=W&&++g,ae=0,le=(R<<31|g+127<<23|W&8388607)>>>0),R=le,i.g.push(R>>>0&255),i.g.push(R>>>8&255),i.g.push(R>>>16&255),i.g.push(R>>>24&255)}}),tt=et(function(i,g,R){if(i.h!==0)return!1;for(var W=i.g,N=128,n=0,l=i=0;4>l&&128<=N;l++)N=W.h[W.g++],Lt(W),n|=(N&127)<<7*l;if(128<=N&&(N=W.h[W.g++],Lt(W),n|=(N&127)<<28,i|=(N&127)>>4),128<=N)for(l=0;5>l&&128<=N;l++)N=W.h[W.g++],Lt(W),i|=(N&127)<<7*l+3;if(128>N)W=n>>>0,N=i>>>0,(i=N&2147483648)&&(W=~W+1>>>0,N=~N>>>0,W==0&&(N=N+1>>>0)),W=4294967296*N+(W>>>0);else throw Ut();return St(g,R,i?-W:W),!0},function(i,g,R){if(g=$t(g,R),g!=null&&g!=null){Xe(i.g,8*R),i=i.g;var W=g;for(R=0>W,W=Math.abs(W),g=W>>>0,W=Math.floor((W-g)/4294967296),W>>>=0,R&&(W=~W>>>0,g=(~g>>>0)+1,4294967295<g&&(g=0,W++,4294967295<W&&(W=0))),le=g,ae=W,R=le,g=ae;0<g||127<R;)i.g.push(R&127|128),R=(R>>>7|g<<25)>>>0,g>>>=7;i.g.push(R)}}),st=et(function(i,g,R){return i.h!==0?!1:(St(g,R,pe(i.g)),!0)},function(i,g,R){if(g=$t(g,R),g!=null&&g!=null)if(Xe(i.g,8*R),i=i.g,R=g,0<=R)Xe(i,R);else{for(g=0;9>g;g++)i.g.push(R&127|128),R>>=7;i.g.push(1)}}),mt=et(function(i,g,R){if(i.h!==2)return!1;var W=pe(i.g)>>>0;i=i.g;var N=i.g;i.g+=W,Lt(i),i=i.h;var n;if(Wn)(n=dn)||(n=dn=new TextDecoder("utf-8",{fatal:!0})),n=n.decode(i.subarray(N,N+W));else{W=N+W;for(var l=[],p=null,e,u,a;N<W;)e=i[N++],128>e?l.push(e):224>e?N>=W?We():(u=i[N++],194>e||(u&192)!==128?(N--,We()):l.push((e&31)<<6|u&63)):240>e?N>=W-1?We():(u=i[N++],(u&192)!==128||e===224&&160>u||e===237&&160<=u||((n=i[N++])&192)!==128?(N--,We()):l.push((e&15)<<12|(u&63)<<6|n&63)):244>=e?N>=W-2?We():(u=i[N++],(u&192)!==128||(e<<28)+(u-144)>>30!==0||((n=i[N++])&192)!==128||((a=i[N++])&192)!==128?(N--,We()):(e=(e&7)<<18|(u&63)<<12|(n&63)<<6|a&63,e-=65536,l.push((e>>10&1023)+55296,(e&1023)+56320))):We(),8192<=l.length&&(p=tn(p,l),l.length=0);n=tn(p,l)}return St(g,R,n),!0},function(i,g,R){if(g=$t(g,R),g!=null){var W=!1;if(W=W===void 0?!1:W,xn){if(W&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(g))throw Error("Found an unpaired surrogate");g=(Zn||(Zn=new TextEncoder)).encode(g)}else{for(var N=0,n=new Uint8Array(3*g.length),l=0;l<g.length;l++){var p=g.charCodeAt(l);if(128>p)n[N++]=p;else{if(2048>p)n[N++]=p>>6|192;else{if(55296<=p&&57343>=p){if(56319>=p&&l<g.length){var e=g.charCodeAt(++l);if(56320<=e&&57343>=e){p=1024*(p-55296)+e-56320+65536,n[N++]=p>>18|240,n[N++]=p>>12&63|128,n[N++]=p>>6&63|128,n[N++]=p&63|128;continue}else l--}if(W)throw Error("Found an unpaired surrogate");p=65533}n[N++]=p>>12|224,n[N++]=p>>6&63|128}n[N++]=p&63|128}}g=n.subarray(0,N)}Xe(i.g,8*R+2),Xe(i.g,g.length),ge(i,i.g.end()),ge(i,g)}}),It=et(function(i,g,R,W,N){if(i.h!==2)return!1;g=Kt(g,R,W),R=i.g.i,W=pe(i.g)>>>0;var n=i.g.g+W,l=n-R;if(0>=l&&(i.g.i=n,N(g,i),l=n-i.g.g),l)throw Error("Message parsing ended unexpectedly. Expected to read "+(W+" bytes, instead read "+(W-l)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return i.g.g=n,i.g.i=R,!0},function(i,g,R,W,N){if(g=Ie(g,W,R),g!=null)for(W=0;W<g.length;W++){var n=i;Xe(n.g,8*R+2);var l=n.g.end();ge(n,l),l.push(n.h),n=l,N(g[W],i),l=i;var p=n.pop();for(p=l.h+l.g.length()-p;127<p;)n.push(p&127|128),p>>>=7,l.h++;n.push(p),l.h++}});function Gt(){De.apply(this,arguments)}if(Ft(Gt,De),kt){var jt={};Object.defineProperties(Gt,(jt[Symbol.hasInstance]=mn(Object[Symbol.hasInstance]),jt))}function Wt(i){Gt.call(this,i)}Ft(Wt,Gt);function Zt(){return[1,st,2,K,3,mt,4,mt]}function Tt(i){Gt.call(this,i,-1,Pt)}Ft(Tt,Gt),Tt.prototype.addClassification=function(i,g){return Kt(this,1,Wt,i,g),this};function Nt(){return[1,It,Wt,Zt]}var Pt=[1];function Dt(i){Gt.call(this,i)}Ft(Dt,Gt);function qt(){return[1,K,2,K,3,K,4,K,5,K]}function Ze(i){Gt.call(this,i,-1,d)}Ft(Ze,Gt);function c(){return[1,It,Dt,qt]}var d=[1];function m(i){Gt.call(this,i)}Ft(m,Gt);function F(){return[1,K,2,K,3,K,4,K,5,K,6,tt]}function j(i,g,R){if(R=i.createShader(R===0?i.VERTEX_SHADER:i.FRAGMENT_SHADER),i.shaderSource(R,g),i.compileShader(R),!i.getShaderParameter(R,i.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
22
21
|
|
|
23
|
-
`+i.getShaderInfoLog(
|
|
22
|
+
`+i.getShaderInfoLog(R));return R}function B(i){return Ie(i,Wt,1).map(function(g){return{index:Qt(g,1),score:Mt(g,2),label:$t(g,3)!=null?Fe(g,3):void 0,displayName:$t(g,4)!=null?Fe(g,4):void 0}})}function C(i){return{x:Mt(i,1),y:Mt(i,2),z:Mt(i,3),visibility:$t(i,4)!=null?Mt(i,4):void 0}}function D(i){return i.map(function(g){return Ie(Z(g,Ze,c),Dt,1).map(C)})}function rt(i,g){this.h=i,this.g=g,this.l=0}function r(i,g,R){return y(i,g),typeof i.g.canvas.transferToImageBitmap=="function"?Promise.resolve(i.g.canvas.transferToImageBitmap()):R?Promise.resolve(i.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(i.g.canvas):(i.i===void 0&&(i.i=document.createElement("canvas")),new Promise(function(W){i.i.height=i.g.canvas.height,i.i.width=i.g.canvas.width,i.i.getContext("2d",{}).drawImage(i.g.canvas,0,0,i.g.canvas.width,i.g.canvas.height),W(i.i)}))}function y(i,g){var R=i.g;if(i.o===void 0){var W=j(R,`
|
|
24
23
|
attribute vec2 aVertex;
|
|
25
24
|
attribute vec2 aTex;
|
|
26
25
|
varying vec2 vTex;
|
|
27
26
|
void main(void) {
|
|
28
27
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
29
28
|
vTex = aTex;
|
|
30
|
-
}`,0),N=j(
|
|
29
|
+
}`,0),N=j(R,`
|
|
31
30
|
precision mediump float;
|
|
32
31
|
varying vec2 vTex;
|
|
33
32
|
uniform sampler2D sampler0;
|
|
34
33
|
void main(){
|
|
35
34
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
36
|
-
}`,1),n=
|
|
35
|
+
}`,1),n=R.createProgram();if(R.attachShader(n,W),R.attachShader(n,N),R.linkProgram(n),!R.getProgramParameter(n,R.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
37
36
|
|
|
38
|
-
`+X.getProgramInfoLog(n));w=i.o=n,X.useProgram(w),N=X.getUniformLocation(w,"sampler0"),i.j={K:X.getAttribLocation(w,"aVertex"),J:X.getAttribLocation(w,"aTex"),qa:N},i.u=X.createBuffer(),X.bindBuffer(X.ARRAY_BUFFER,i.u),X.enableVertexAttribArray(i.j.K),X.vertexAttribPointer(i.j.K,2,X.FLOAT,!1,0,0),X.bufferData(X.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),X.STATIC_DRAW),X.bindBuffer(X.ARRAY_BUFFER,null),i.s=X.createBuffer(),X.bindBuffer(X.ARRAY_BUFFER,i.s),X.enableVertexAttribArray(i.j.J),X.vertexAttribPointer(i.j.J,2,X.FLOAT,!1,0,0),X.bufferData(X.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),X.STATIC_DRAW),X.bindBuffer(X.ARRAY_BUFFER,null),X.uniform1i(N,0)}w=i.j,X.useProgram(i.o),X.canvas.width=g.width,X.canvas.height=g.height,X.viewport(0,0,g.width,g.height),X.activeTexture(X.TEXTURE0),i.h.bindTexture2d(g.glName),X.enableVertexAttribArray(w.K),X.bindBuffer(X.ARRAY_BUFFER,i.u),X.vertexAttribPointer(w.K,2,X.FLOAT,!1,0,0),X.enableVertexAttribArray(w.J),X.bindBuffer(X.ARRAY_BUFFER,i.s),X.vertexAttribPointer(w.J,2,X.FLOAT,!1,0,0),X.bindFramebuffer(X.DRAW_FRAMEBUFFER?X.DRAW_FRAMEBUFFER:X.FRAMEBUFFER,null),X.clearColor(0,0,0,0),X.clear(X.COLOR_BUFFER_BIT),X.colorMask(!0,!0,!0,!0),X.drawArrays(X.TRIANGLE_FAN,0,4),X.disableVertexAttribArray(w.K),X.disableVertexAttribArray(w.J),X.bindBuffer(X.ARRAY_BUFFER,null),i.h.bindTexture2d(0)}function G(i){this.g=i}var S=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function E(i,g){return g+i}function J(i,g){window[i]=g}function k(i){var g=document.createElement("script");return g.setAttribute("src",i),g.setAttribute("crossorigin","anonymous"),new Promise(function(X){g.addEventListener("load",function(){X()},!1),g.addEventListener("error",function(){X()},!1),document.body.appendChild(g)})}function q(){return ht(function(i){switch(i.g){case 1:return i.o=2,$(i,WebAssembly.instantiate(S),4);case 4:i.g=3,i.o=0;break;case 2:return i.o=0,i.j=null,i.return(!1);case 3:return i.return(!0)}})}function z(i){if(this.g=i,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.$=!0,this.D=Promise.resolve(),this.Z="",this.C={},this.locateFile=i&&i.locateFile||E,typeof window=="object")var g=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")g=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.aa=g,i.options){g=C(Object.keys(i.options));for(var X=g.next();!X.done;X=g.next()){X=X.value;var w=i.options[X].default;w!==void 0&&(this.j[X]=typeof w=="function"?w():w)}}}V=z.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function lt(i){var g,X,w,N,n,l,p,e,u,a,t;return ht(function(o){switch(o.g){case 1:return i.$?(g=i.g.files===void 0?[]:typeof i.g.files=="function"?i.g.files(i.j):i.g.files,$(o,q(),2)):o.return();case 2:if(X=o.h,typeof window=="object")return J("createMediapipeSolutionsWasm",{locateFile:i.locateFile}),J("createMediapipeSolutionsPackedAssets",{locateFile:i.locateFile}),l=g.filter(function(s){return s.data!==void 0}),p=g.filter(function(s){return s.data===void 0}),e=Promise.all(l.map(function(s){var h=yt(i,s.url);if(s.path!==void 0){var R=s.path;h=h.then(function(T){return i.overrideFile(R,T),Promise.resolve(T)})}return h})),u=Promise.all(p.map(function(s){return s.simd===void 0||s.simd&&X||!s.simd&&!X?k(i.locateFile(s.url,i.aa)):Promise.resolve()})).then(function(){var s,h,R;return ht(function(T){if(T.g==1)return s=window.createMediapipeSolutionsWasm,h=window.createMediapipeSolutionsPackedAssets,R=i,$(T,s(h),2);R.h=T.h,T.g=0})}),a=function(){return ht(function(s){return i.g.graph&&i.g.graph.url?s=$(s,yt(i,i.g.graph.url),0):(s.g=0,s=void 0),s})}(),$(o,Promise.all([u,e,a]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return w=g.filter(function(s){return s.simd===void 0||s.simd&&X||!s.simd&&!X}).map(function(s){return i.locateFile(s.url,i.aa)}),importScripts.apply(null,dt(w)),N=i,$(o,createMediapipeSolutionsWasm(Module),6);case 6:N.h=o.h,i.l=new OffscreenCanvas(1,1),i.h.canvas=i.l,n=i.h.GL.createContext(i.l,{antialias:!1,alpha:!1,na:typeof WebGL2RenderingContext!="undefined"?2:1}),i.h.GL.makeContextCurrent(n),o.g=4;break;case 7:if(i.l=document.createElement("canvas"),t=i.l.getContext("webgl2",{}),!t&&(t=i.l.getContext("webgl",{}),!t))return alert("Failed to create WebGL canvas context when passing video frame."),o.return();i.G=t,i.h.canvas=i.l,i.h.createContext(i.l,!0,!0,{});case 4:i.i=new i.h.SolutionWasm,i.$=!1,o.g=0}})}function pt(i){var g,X,w,N,n,l,p,e;return ht(function(u){if(u.g==1){if(i.g.graph&&i.g.graph.url&&i.Z===i.g.graph.url)return u.return();if(i.s=!0,!i.g.graph||!i.g.graph.url){u.g=2;return}return i.Z=i.g.graph.url,$(u,yt(i,i.g.graph.url),3)}for(u.g!=2&&(g=u.h,i.i.loadGraph(g)),X=C(Object.keys(i.C)),w=X.next();!w.done;w=X.next())N=w.value,i.i.overrideFile(N,i.C[N]);if(i.C={},i.g.listeners)for(n=C(i.g.listeners),l=n.next();!l.done;l=n.next())p=l.value,vt(i,p);e=i.j,i.j={},i.setOptions(e),u.g=0})}V.reset=function(){var i=this;return ht(function(g){i.i&&(i.i.reset(),i.o={},i.u={}),g.g=0})},V.setOptions=function(i,g){var X=this;if(g=g||this.g.options){for(var w=[],N=[],n={},l=C(Object.keys(i)),p=l.next();!p.done;n={R:n.R,S:n.S},p=l.next()){var e=p.value;e in this.j&&this.j[e]===i[e]||(this.j[e]=i[e],p=g[e],p!==void 0&&(p.onChange&&(n.R=p.onChange,n.S=i[e],w.push(function(u){return function(){var a;return ht(function(t){if(t.g==1)return $(t,u.R(u.S),2);a=t.h,a===!0&&(X.s=!0),t.g=0})}}(n))),p.graphOptionXref&&(e={valueNumber:p.type===1?i[e]:0,valueBoolean:p.type===0?i[e]:!1,valueString:p.type===2?i[e]:""},p=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),p.graphOptionXref),e),N.push(p))))}(w.length!==0||N.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(N),this.A=(this.A===void 0?[]:this.A).concat(w))}};function Ft(i){var g,X,w,N,n,l,p;return ht(function(e){switch(e.g){case 1:if(!i.s)return e.return();if(!i.A){e.g=2;break}g=C(i.A),X=g.next();case 3:if(X.done){e.g=5;break}return w=X.value,$(e,w(),4);case 4:X=g.next(),e.g=3;break;case 5:i.A=void 0;case 2:if(i.B){for(N=new i.h.GraphOptionChangeRequestList,n=C(i.B),l=n.next();!l.done;l=n.next())p=l.value,N.push_back(p);i.i.changeOptions(N),N.delete(),i.B=void 0}i.s=!1,e.g=0}})}V.initialize=function(){var i=this;return ht(function(g){return g.g==1?$(g,lt(i),2):g.g!=3?$(g,pt(i),3):$(g,Ft(i),0)})};function yt(i,g){var X,w;return ht(function(N){return g in i.H?N.return(i.H[g]):(X=i.locateFile(g,""),w=fetch(X).then(function(n){return n.arrayBuffer()}),i.H[g]=w,N.return(w))})}V.overrideFile=function(i,g){this.i?this.i.overrideFile(i,g):this.C[i]=g},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(i,g){var X=this,w,N,n,l,p,e,u,a,t;return ht(function(o){switch(o.g){case 1:return X.g.inputs?(w=1e3*(g==null?performance.now():g),$(o,X.D,2)):o.return();case 2:return $(o,X.initialize(),3);case 3:for(N=new X.h.PacketDataList,n=C(Object.keys(i)),l=n.next();!l.done;l=n.next())if(p=l.value,e=X.g.inputs[p]){t:{var s=i[p];switch(e.type){case"video":var h=X.o[e.stream];if(h||(h=new rt(X.h,X.G),X.o[e.stream]=h),h.l===0&&(h.l=h.h.createTexture()),typeof HTMLVideoElement!="undefined"&&s instanceof HTMLVideoElement)var R=s.videoWidth,T=s.videoHeight;else typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement?(R=s.naturalWidth,T=s.naturalHeight):(R=s.width,T=s.height);T={glName:h.l,width:R,height:T},R=h.g,R.canvas.width=T.width,R.canvas.height=T.height,R.activeTexture(R.TEXTURE0),h.h.bindTexture2d(h.l),R.texImage2D(R.TEXTURE_2D,0,R.RGBA,R.RGBA,R.UNSIGNED_BYTE,s),h.h.bindTexture2d(0),h=T;break t;case"detections":for(h=X.o[e.stream],h||(h=new G(X.h),X.o[e.stream]=h),h.data||(h.data=new h.g.DetectionListData),h.data.reset(s.length),T=0;T<s.length;++T){R=s[T];var I=h.data,Y=I.setBoundingBox,K=T,B=R.ea,M=new m;if(Vt(M,1,B.ka),Vt(M,2,B.la),Vt(M,3,B.height),Vt(M,4,B.width),Vt(M,5,B.rotation),Vt(M,6,B.ia),B=_(M,x),Y.call(I,K,B),R.Y)for(I=0;I<R.Y.length;++I){M=R.Y[I];var nt=!!M.visibility;Y=h.data,K=Y.addNormalizedLandmark,B=T,M=Object.assign(Object.assign({},M),{visibility:nt?M.visibility:0}),nt=new Dt,Vt(nt,1,M.x),Vt(nt,2,M.y),Vt(nt,3,M.z),M.visibility&&Vt(nt,4,M.visibility),M=_(nt,qt),K.call(Y,B,M)}if(R.V)for(I=0;I<R.V.length;++I)Y=h.data,K=Y.addClassification,B=T,M=R.V[I],nt=new Wt,Vt(nt,2,M.score),M.index&&Vt(nt,1,M.index),M.label&&Vt(nt,3,M.label),M.displayName&&Vt(nt,4,M.displayName),M=_(nt,Zt),K.call(Y,B,M)}h=h.data;break t;default:h={}}}switch(u=h,a=e.stream,e.type){case"video":N.pushTexture2d(Object.assign(Object.assign({},u),{stream:a,timestamp:w}));break;case"detections":t=u,t.stream=a,t.timestamp=w,N.pushDetectionList(t);break;default:throw Error("Unknown input config type: '"+e.type+"'")}}return X.i.send(N),$(o,X.D,4);case 4:N.delete(),o.g=0}})};function it(i,g,X){var w,N,n,l,p,e,u,a,t,o,s,h,R,T;return ht(function(I){switch(I.g){case 1:if(!X)return I.return(g);for(w={},N=0,n=C(Object.keys(X)),l=n.next();!l.done;l=n.next())p=l.value,e=X[p],typeof e!="string"&&e.type==="texture"&&g[e.stream]!==void 0&&++N;1<N&&(i.I=!1),u=C(Object.keys(X)),l=u.next();case 2:if(l.done){I.g=4;break}if(a=l.value,t=X[a],typeof t=="string")return R=w,T=a,$(I,gt(i,a,g[t]),14);if(o=g[t.stream],t.type==="detection_list"){if(o){for(var Y=o.getRectList(),K=o.getLandmarksList(),B=o.getClassificationsList(),M=[],nt=0;nt<Y.size();++nt){var ot=Z(Y.get(nt),m,x);ot={ea:{ka:zt(ot,1),la:zt(ot,2),height:zt(ot,3),width:zt(ot,4),rotation:zt(ot,5,0),ia:Qt(ot,6)},Y:Ie(Z(K.get(nt),Ze,c),Dt,1).map(H),V:P(Z(B.get(nt),Tt,Nt))},M.push(ot)}Y=M}else Y=[];w[a]=Y,I.g=7;break}if(t.type==="proto_list"){if(o){for(Y=Array(o.size()),K=0;K<o.size();K++)Y[K]=o.get(K);o.delete()}else Y=[];w[a]=Y,I.g=7;break}if(o===void 0){I.g=3;break}if(t.type==="float_list"){w[a]=o,I.g=7;break}if(t.type==="proto"){w[a]=o,I.g=7;break}if(t.type!=="texture")throw Error("Unknown output config type: '"+t.type+"'");return s=i.u[a],s||(s=new rt(i.h,i.G),i.u[a]=s),$(I,r(s,o,i.I),13);case 13:h=I.h,w[a]=h;case 7:t.transform&&w[a]&&(w[a]=t.transform(w[a])),I.g=3;break;case 14:R[T]=I.h;case 3:l=u.next(),I.g=2;break;case 4:return I.return(w)}})}function gt(i,g,X){var w;return ht(function(N){return typeof X=="number"||X instanceof Uint8Array||X instanceof i.h.Uint8BlobList?N.return(X):X instanceof i.h.Texture2dDataOut?(w=i.u[g],w||(w=new rt(i.h,i.G),i.u[g]=w),N.return(r(w,X,i.I))):N.return(void 0)})}function vt(i,g){for(var X=g.name||"$",w=[].concat(dt(g.wants)),N=new i.h.StringList,n=C(g.wants),l=n.next();!l.done;l=n.next())N.push_back(l.value);n=i.h.PacketListener.implement({onResults:function(p){for(var e={},u=0;u<g.wants.length;++u)e[w[u]]=p.get(u);var a=i.listeners[X];a&&(i.D=it(i,e,g.outs).then(function(t){t=a(t);for(var o=0;o<g.wants.length;++o){var s=e[w[o]];typeof s=="object"&&s.hasOwnProperty&&s.hasOwnProperty("delete")&&s.delete()}t&&(i.D=t)}))}}),i.i.attachMultiListener(N,n),N.delete()}V.onResults=function(i,g){this.listeners[g||"$"]=i},St("Solution",z),St("OptionType",{BOOL:0,NUMBER:1,ma:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Gt(i){return i===void 0&&(i=0),i===1?"hand_landmark_full.tflite":"hand_landmark_lite.tflite"}function Rt(i){var g=this;i=i||{},this.g=new z({locateFile:i.locateFile,files:function(X){return[{url:"hands_solution_packed_assets_loader.js"},{simd:!1,url:"hands_solution_wasm_bin.js"},{simd:!0,url:"hands_solution_simd_wasm_bin.js"},{data:!0,url:Gt(X.modelComplexity)}]},graph:{url:"hands.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["multi_hand_landmarks","multi_hand_world_landmarks","image_transformed","multi_handedness"],outs:{image:"image_transformed",multiHandLandmarks:{type:"proto_list",stream:"multi_hand_landmarks",transform:D},multiHandWorldLandmarks:{type:"proto_list",stream:"multi_hand_world_landmarks",transform:D},multiHandedness:{type:"proto_list",stream:"multi_handedness",transform:function(X){return X.map(function(w){return P(Z(w,Tt,Nt))[0]})}}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumHands:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculator",fieldName:"int_value"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(X){var w,N,n;return ht(function(l){return l.g==1?(w=Gt(X),N="third_party/mediapipe/modules/hand_landmark/"+w,$(l,yt(g.g,w),2)):(n=l.h,g.g.overrideFile(N,n),l.return(!0))})}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}}}})}V=Rt.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(i){this.g.onResults(i)},V.initialize=function(){var i=this;return ht(function(g){return $(g,i.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(i){var g=this;return ht(function(X){return $(X,g.g.send(i),0)})},V.setOptions=function(i){this.g.setOptions(i)},St("Hands",Rt),St("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),St("VERSION","0.4.1646424915")}).call(Tr);var Ir={};(function(){var V;function v(e){var u=0;return function(){return u<e.length?{done:!1,value:e[u++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(e,u,a){return e==Array.prototype||e==Object.prototype||(e[u]=a.value),e};function L(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var u=0;u<e.length;++u){var a=e[u];if(a&&a.Math==Math)return a}throw Error("Cannot find global object")}var F=L(this);function A(e,u){if(u)t:{var a=F;e=e.split(".");for(var t=0;t<e.length-1;t++){var o=e[t];if(!(o in a))break t;a=a[o]}e=e[e.length-1],t=a[e],u=u(t),u!=t&&u!=null&&W(a,e,{configurable:!0,writable:!0,value:u})}}A("Symbol",function(e){function u(s){if(this instanceof u)throw new TypeError("Symbol is not a constructor");return new a(t+(s||"")+"_"+o++,s)}function a(s,h){this.g=s,W(this,"description",{configurable:!0,writable:!0,value:h})}if(e)return e;a.prototype.toString=function(){return this.g};var t="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",o=0;return u}),A("Symbol.iterator",function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var u="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a<u.length;a++){var t=F[u[a]];typeof t=="function"&&typeof t.prototype[e]!="function"&&W(t.prototype,e,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return e});function Q(e){return e={next:e},e[Symbol.iterator]=function(){return this},e}function C(e){var u=typeof Symbol!="undefined"&&Symbol.iterator&&e[Symbol.iterator];return u?u.call(e):{next:v(e)}}function dt(e){if(!(e instanceof Array)){e=C(e);for(var u,a=[];!(u=e.next()).done;)a.push(u.value);e=a}return e}var _e=typeof Object.create=="function"?Object.create:function(e){function u(){}return u.prototype=e,new u},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(e,u){if(e.__proto__=u,e.__proto__!==u)throw new TypeError(e+" is not extensible");return e}:null}var je=ct;function xt(e,u){if(e.prototype=_e(u.prototype),e.prototype.constructor=e,je)je(e,u);else for(var a in u)if(a!="prototype")if(Object.defineProperties){var t=Object.getOwnPropertyDescriptor(u,a);t&&Object.defineProperty(e,a,t)}else e[a]=u[a];e.da=u.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(e){if(e.l)throw new TypeError("Generator is already running");e.l=!0}ue.prototype.o=function(e){this.h=e};function he(e,u){e.j={U:u,V:!0},e.g=e.m||e.s}ue.prototype.return=function(e){this.j={return:e},this.g=this.s};function $(e,u,a){return e.g=a,{value:u}}function In(e){this.g=new ue,this.h=e}function jn(e,u){de(e.g);var a=e.g.i;return a?He(e,"return"in a?a.return:function(t){return{value:t,done:!0}},u,e.g.return):(e.g.return(u),ee(e))}function He(e,u,a,t){try{var o=u.call(e.g.i,a);if(!(o instanceof Object))throw new TypeError("Iterator result "+o+" is not an object");if(!o.done)return e.g.l=!1,o;var s=o.value}catch(h){return e.g.i=null,he(e.g,h),ee(e)}return e.g.i=null,t.call(e.g,s),ee(e)}function ee(e){for(;e.g.g;)try{var u=e.h(e.g);if(u)return e.g.l=!1,{value:u.value,done:!1}}catch(a){e.g.h=void 0,he(e.g,a)}if(e.g.l=!1,e.g.j){if(u=e.g.j,e.g.j=null,u.V)throw u.U;return{value:u.return,done:!0}}return{value:void 0,done:!0}}function Hn(e){this.next=function(u){return de(e.g),e.g.i?u=He(e,e.g.i.next,u,e.g.o):(e.g.o(u),u=ee(e)),u},this.throw=function(u){return de(e.g),e.g.i?u=He(e,e.g.i.throw,u,e.g.o):(he(e.g,u),u=ee(e)),u},this.return=function(u){return jn(e,u)},this[Symbol.iterator]=function(){return this}}function te(e){function u(t){return e.next(t)}function a(t){return e.throw(t)}return new Promise(function(t,o){function s(h){h.done?t(h.value):Promise.resolve(h.value).then(u,a).then(s,o)}s(e.next())})}function ht(e){return te(new Hn(new In(e)))}A("Promise",function(e){function u(h){this.h=0,this.i=void 0,this.g=[],this.o=!1;var R=this.j();try{h(R.resolve,R.reject)}catch(T){R.reject(T)}}function a(){this.g=null}function t(h){return h instanceof u?h:new u(function(R){R(h)})}if(e)return e;a.prototype.h=function(h){if(this.g==null){this.g=[];var R=this;this.i(function(){R.l()})}this.g.push(h)};var o=F.setTimeout;a.prototype.i=function(h){o(h,0)},a.prototype.l=function(){for(;this.g&&this.g.length;){var h=this.g;this.g=[];for(var R=0;R<h.length;++R){var T=h[R];h[R]=null;try{T()}catch(I){this.j(I)}}}this.g=null},a.prototype.j=function(h){this.i(function(){throw h})},u.prototype.j=function(){function h(I){return function(Y){T||(T=!0,I.call(R,Y))}}var R=this,T=!1;return{resolve:h(this.C),reject:h(this.l)}},u.prototype.C=function(h){if(h===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof u)this.F(h);else{t:switch(typeof h){case"object":var R=h!=null;break t;case"function":R=!0;break t;default:R=!1}R?this.v(h):this.m(h)}},u.prototype.v=function(h){var R=void 0;try{R=h.then}catch(T){this.l(T);return}typeof R=="function"?this.G(R,h):this.m(h)},u.prototype.l=function(h){this.s(2,h)},u.prototype.m=function(h){this.s(1,h)},u.prototype.s=function(h,R){if(this.h!=0)throw Error("Cannot settle("+h+", "+R+"): Promise already settled in state"+this.h);this.h=h,this.i=R,this.h===2&&this.D(),this.A()},u.prototype.D=function(){var h=this;o(function(){if(h.B()){var R=F.console;typeof R!="undefined"&&R.error(h.i)}},1)},u.prototype.B=function(){if(this.o)return!1;var h=F.CustomEvent,R=F.Event,T=F.dispatchEvent;return typeof T=="undefined"?!0:(typeof h=="function"?h=new h("unhandledrejection",{cancelable:!0}):typeof R=="function"?h=new R("unhandledrejection",{cancelable:!0}):(h=F.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h)),h.promise=this,h.reason=this.i,T(h))},u.prototype.A=function(){if(this.g!=null){for(var h=0;h<this.g.length;++h)s.h(this.g[h]);this.g=null}};var s=new a;return u.prototype.F=function(h){var R=this.j();h.J(R.resolve,R.reject)},u.prototype.G=function(h,R){var T=this.j();try{h.call(R,T.resolve,T.reject)}catch(I){T.reject(I)}},u.prototype.then=function(h,R){function T(B,M){return typeof B=="function"?function(nt){try{I(B(nt))}catch(ot){Y(ot)}}:M}var I,Y,K=new u(function(B,M){I=B,Y=M});return this.J(T(h,I),T(R,Y)),K},u.prototype.catch=function(h){return this.then(void 0,h)},u.prototype.J=function(h,R){function T(){switch(I.h){case 1:h(I.i);break;case 2:R(I.i);break;default:throw Error("Unexpected state: "+I.h)}}var I=this;this.g==null?s.h(T):this.g.push(T),this.o=!0},u.resolve=t,u.reject=function(h){return new u(function(R,T){T(h)})},u.race=function(h){return new u(function(R,T){for(var I=C(h),Y=I.next();!Y.done;Y=I.next())t(Y.value).J(R,T)})},u.all=function(h){var R=C(h),T=R.next();return T.done?t([]):new u(function(I,Y){function K(nt){return function(ot){B[nt]=ot,M--,M==0&&I(B)}}var B=[],M=0;do B.push(void 0),M++,t(T.value).J(K(B.length-1),Y),T=R.next();while(!T.done)})},u});function Jn(e,u){e instanceof String&&(e+="");var a=0,t=!1,o={next:function(){if(!t&&a<e.length){var s=a++;return{value:u(s,e[s]),done:!1}}return t=!0,{done:!0,value:void 0}}};return o[Symbol.iterator]=function(){return o},o}var Cn=typeof Object.assign=="function"?Object.assign:function(e,u){for(var a=1;a<arguments.length;a++){var t=arguments[a];if(t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};A("Object.assign",function(e){return e||Cn}),A("Object.is",function(e){return e||function(u,a){return u===a?u!==0||1/u===1/a:u!==u&&a!==a}}),A("Array.prototype.includes",function(e){return e||function(u,a){var t=this;t instanceof String&&(t=String(t));var o=t.length;for(a=a||0,0>a&&(a=Math.max(a+o,0));a<o;a++){var s=t[a];if(s===u||Object.is(s,u))return!0}return!1}}),A("String.prototype.includes",function(e){return e||function(u,a){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(u instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(u,a||0)!==-1}}),A("Array.prototype.keys",function(e){return e||function(){return Jn(this,function(u){return u})}});var ye=this||self;function St(e,u){e=e.split(".");var a=ye;e[0]in a||typeof a.execScript=="undefined"||a.execScript("var "+e[0]);for(var t;e.length&&(t=e.shift());)e.length||u===void 0?a[t]&&a[t]!==Object.prototype[t]?a=a[t]:a=a[t]={}:a[t]=u}function We(e){ye.setTimeout(function(){throw e},0)}function tn(e){We(e)}function hn(e,u){tn(Error("Invalid wire type: "+e+" (at position "+u+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function bn(e,u){return u=String.fromCharCode.apply(null,u),e==null?u:e+u}var Fn,en=typeof TextDecoder!="undefined",un,Ln=typeof TextEncoder!="undefined";function Vn(e){if(Ln)e=(un||(un=new TextEncoder)).encode(e);else{var u=void 0;u=u===void 0?!1:u;for(var a=0,t=new Uint8Array(3*e.length),o=0;o<e.length;o++){var s=e.charCodeAt(o);if(128>s)t[a++]=s;else{if(2048>s)t[a++]=s>>6|192;else{if(55296<=s&&57343>=s){if(56319>=s&&o<e.length){var h=e.charCodeAt(++o);if(56320<=h&&57343>=h){s=1024*(s-55296)+h-56320+65536,t[a++]=s>>18|240,t[a++]=s>>12&63|128,t[a++]=s>>6&63|128,t[a++]=s&63|128;continue}else o--}if(u)throw Error("Found an unpaired surrogate");s=65533}t[a++]=s>>12|224,t[a++]=s>>6&63|128}t[a++]=s&63|128}}e=t.subarray(0,a)}return e}var dn={},nn=null;function Zn(e){var u;u===void 0&&(u=0),ve(),u=dn[u];for(var a=Array(Math.floor(e.length/3)),t=u[64]||"",o=0,s=0;o<e.length-2;o+=3){var h=e[o],R=e[o+1],T=e[o+2],I=u[h>>2];h=u[(h&3)<<4|R>>4],R=u[(R&15)<<2|T>>6],T=u[T&63],a[s++]=I+h+R+T}switch(I=0,T=t,e.length-o){case 2:I=e[o+1],T=u[(I&15)<<2]||t;case 1:e=e[o],a[s]=u[e>>2]+u[(e&3)<<4|I>>4]+T+t}return a.join("")}function pn(e){var u=e.length,a=3*u/4;a%3?a=Math.floor(a):"=.".indexOf(e[u-1])!=-1&&(a="=.".indexOf(e[u-2])!=-1?a-2:a-1);var t=new Uint8Array(a),o=0;return ce(e,function(s){t[o++]=s}),t.subarray(0,o)}function ce(e,u){function a(T){for(;t<e.length;){var I=e.charAt(t++),Y=nn[I];if(Y!=null)return Y;if(!/^[\s\xa0]*$/.test(I))throw Error("Unknown base64 encoding at char: "+I)}return T}ve();for(var t=0;;){var o=a(-1),s=a(0),h=a(64),R=a(64);if(R===64&&o===-1)break;u(o<<2|s>>4),h!=64&&(u(s<<4&240|h>>2),R!=64&&u(h<<6&192|R))}}function ve(){if(!nn){nn={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),u=["+/=","+/","-_=","-_.","-_"],a=0;5>a;a++){var t=e.concat(u[a].split(""));dn[a]=t;for(var o=0;o<t.length;o++){var s=t[o];nn[s]===void 0&&(nn[s]=o)}}}}var Pe=typeof Uint8Array=="function",le;function ae(e){if(this.g=e,e!==null&&e.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var e="";else e=this.g,e=this.g=e==null||typeof e=="string"?e:Pe&&e instanceof Uint8Array?Zn(e):null;return e};var ze=typeof Uint8Array.prototype.slice=="function";function Fe(e,u,a){return u===a?le||(le=new Uint8Array(0)):ze?e.slice(u,a):new Uint8Array(e.subarray(u,a))}var Ct=0,re=0;function Ve(e){if(e.constructor===Uint8Array)return e;if(e.constructor===ArrayBuffer)return new Uint8Array(e);if(e.constructor===Array)return new Uint8Array(e);if(e.constructor===String)return pn(e);if(e.constructor===ae){if(e.g==null)var u=le||(le=new Uint8Array(0));else{u=Uint8Array;var a=e.g;a=a==null||Pe&&a!=null&&a instanceof Uint8Array?a:typeof a=="string"?pn(a):null,e=e.g=a,u=new u(e)}return u}if(e instanceof Uint8Array)return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Lt(e,u){u=u===void 0?{}:u,u=u.u===void 0?!1:u.u,this.h=null,this.g=this.i=this.m=0,this.l=!1,this.u=u,e&&pe(this,e)}function pe(e,u){e.h=Ve(u),e.m=0,e.i=e.h.length,e.g=e.m}Lt.prototype.reset=function(){this.g=this.m};function At(e){for(var u=128,a=0,t=0,o=0;4>o&&128<=u;o++)u=e.h[e.g++],a|=(u&127)<<7*o;if(128<=u&&(u=e.h[e.g++],a|=(u&127)<<28,t|=(u&127)>>4),128<=u)for(o=0;5>o&&128<=u;o++)u=e.h[e.g++],t|=(u&127)<<7*o+3;if(128>u)return e=a>>>0,u=t>>>0,(t=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0),t?-e:e;e.l=!0,Wn()}function ne(e){e.g>e.i&&(e.l=!0,tn(Error("Tried to read past the end of the data "+e.g+" > "+e.i)))}Lt.prototype.j=function(){var e=this.h,u=e[this.g],a=u&127;return 128>u?(this.g+=1,ne(this),a):(u=e[this.g+1],a|=(u&127)<<7,128>u?(this.g+=2,ne(this),a):(u=e[this.g+2],a|=(u&127)<<14,128>u?(this.g+=3,ne(this),a):(u=e[this.g+3],a|=(u&127)<<21,128>u?(this.g+=4,ne(this),a):(u=e[this.g+4],a|=(u&15)<<28,128>u?(this.g+=5,ne(this),a>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]?(this.l=!0,Wn(),a):(ne(this),a))))))},Lt.prototype.o=function(){var e=this.h[this.g],u=this.h[this.g+1],a=this.h[this.g+2],t=this.h[this.g+3];return this.g+=4,ne(this),a=(e<<0|u<<8|a<<16|t<<24)>>>0,e=2*(a>>31)+1,u=a>>>23&255,a&=8388607,u==255?a?NaN:1/0*e:u==0?e*Math.pow(2,-149)*a:e*Math.pow(2,u-150)*(a+Math.pow(2,23))};var Ge=[];function Be(){this.g=new Uint8Array(64),this.h=0}function se(e,u){if(!(e.h+1<e.g.length)){var a=e.g;e.g=new Uint8Array(Math.ceil(1+2*e.g.length)),e.g.set(a)}e.g[e.h++]=u}Be.prototype.length=function(){return this.h},Be.prototype.end=function(){var e=this.g,u=this.h;return this.h=0,Fe(e,0,u)};function Ut(e,u){for(;127<u;)se(e,u&127|128),u>>>=7;se(e,u)}function Le(e){var u={},a=u.N===void 0?!1:u.N;this.m={u:u.u===void 0?!1:u.u},this.N=a,u=this.m,Ge.length?(a=Ge.pop(),u&&(a.u=u.u),e&&pe(a,e),e=a):e=new Lt(e,u),this.g=e,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Le.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Je(e){var u=e.g;if((u=u.g==u.i)||(u=e.j)||(u=e.g,u=u.l||0>u.g||u.g>u.i),u)return!1;e.l=e.g.g;var a=e.g.j();return u=a>>>3,a&=7,0<=a&&5>=a?(e.i=u,e.h=a,!0):(e.j=!0,hn(a,e.l),!1)}function ge(e){switch(e.h){case 0:if(e.h!=0)ge(e);else t:{e=e.g;for(var u=e.g,a=0;10>a;a++){if((e.h[u]&128)===0){e.g=u+1,ne(e);break t}u++}e.l=!0,Wn()}break;case 1:e=e.g,e.g+=8,ne(e);break;case 2:e.h!=2?ge(e):(u=e.g.j(),e=e.g,e.g+=u,ne(e));break;case 5:e=e.g,e.g+=4,ne(e);break;case 3:u=e.i;do{if(!Je(e)){e.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(e.h==4){e.i!=u&&(e.j=!0,tn(Error("Unmatched end-group tag")));break}ge(e)}while(1);break;default:e.j=!0,hn(e.h,e.l)}}function Rn(e,u,a){e.N||(e=Fe(e.g.h,a,e.g.g),(a=u.o)?a.push(e):u.o=[e])}function Qe(e,u,a){var t=e.g.i,o=e.g.j(),s=e.g.g+o;if(e.g.i=s,a(u,e),a=s-e.g.g,a!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(o+" bytes, instead read "+(o-a)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return e.g.g=s,e.g.i=t,u}function sn(e,u,a){var t=e.g.j();for(t=e.g.g+t;e.g.g<t;)a.push(u.call(e.g))}var cn=[];function ie(){this.h=[],this.i=0,this.g=new Be}function Xe(e,u){u.length!==0&&(e.h.push(u),e.i+=u.length)}function oe(e,u,a){Ut(e.g,8*u+2),Ut(e.g,a.length),Xe(e,e.g.end()),Xe(e,a)}var Mt=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Ce(e,u){Object.isFrozen(e)||(Mt?e[Mt]|=u:e.g!==void 0?e.g|=u:Object.defineProperties(e,{g:{value:u,configurable:!0,writable:!0,enumerable:!1}}))}function Kt(e){if(!e)return 0;var u;return Mt?u=e[Mt]:u=e.g,u==null?0:u}function Yt(e){return Array.isArray(e)&&Ce(e,1),e}function gn(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");Ce(e,2)}function $t(e){return e!==null&&typeof e=="object"&&e.constructor===Object}function Vt(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":return Pe&&e!=null&&e instanceof Uint8Array?Zn(e):e;default:return e}}function bt(e,u){if(e!=null)return Array.isArray(e)||$t(e)?zt(e,u):u(e)}function zt(e,u){if(Array.isArray(e)){for(var a=Array(e.length),t=0;t<e.length;t++)a[t]=bt(e[t],u);return Kt(e)&1&&Yt(a),a}a={};for(t in e)a[t]=bt(e[t],u);return a}var Ie;function Ot(e,u,a){var t=Ie;Ie=null,e||(e=t),t=this.constructor.ba,e||(e=t?[t]:[]),this.j=(t?0:-1)-(this.constructor.$||0),this.m=this.g=null,this.h=e;t:{if(t=this.h.length,e=t-1,t&&(t=this.h[e],$t(t))){this.l=e-this.j,this.i=t;break t}u!==void 0&&-1<u?(this.l=Math.max(u,e+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(a)for(u=0;u<a.length;u++)e=a[u],e<this.l?(e+=this.j,(t=this.h[e])?Yt(t):this.h[e]=Qt):(xe(this),(t=this.i[e])?Yt(t):this.i[e]=Qt)}var Qt=Object.freeze(Yt([]));function xe(e){var u=e.l+e.j;e.h[u]||(e.i=e.h[u]={})}function kt(e,u,a){return u===-1?null:(a===void 0?0:a)||u>=e.l?e.i?e.i[u]:void 0:e.h[u+e.j]}function Xt(e,u,a){a=a===void 0?!0:a;var t=t===void 0?!1:t,o=kt(e,u,t);return o==null&&(o=Qt),o===Qt?(o=Yt([]),Jt(e,u,o,t)):a&&Array.isArray(o)&&Kt(o)&2&&(o=o.slice(),Jt(e,u,o,t)),o}function Ae(e){var u=Xt(e,3,!1);if(e.m||(e.m={}),!e.m[3]){for(var a=0;a<u.length;a++)u[a]=+u[a];e.m[3]=!0}return u}function Ke(e,u,a){return e=kt(e,u),e==null?a:e}function Se(e,u,a){return e=kt(e,u),e=e==null?e:+e,e==null?a===void 0?0:a:e}function Jt(e,u,a,t){(t===void 0?0:t)||u>=e.l?(xe(e),e.i[u]=a):e.h[u+e.j]=a}function Ee(e,u,a){if(a===-1)return null;e.g||(e.g={});var t=e.g[a];if(t)return t;var o=kt(e,a,!1);return o==null?t:(u=new u(o),e.g[a]=u)}function an(e,u,a){e.g||(e.g={});var t=e.g[a];if(!t){var o=Xt(e,a,!1);t=[];for(var s=Array.isArray(o)?!!(Kt(o)&2):!1,h=0;h<o.length;h++)t[h]=new u(o[h]),s&&gn(t[h].h);s&&(gn(t),Object.freeze(t)),e.g[a]=t}return t}function De(e,u,a,t,o){var s=an(e,t,u);a=a||new t,e=Xt(e,u),o!=null?(s.splice(o,0,a),e.splice(o,0,Ne(a))):(s.push(a),e.push(Ne(a)))}Ot.prototype.toJSON=function(){var e=Ne(this);return zt(e,Vt)};function Ne(e){if(e.g)for(var u in e.g){var a=e.g[u];if(Array.isArray(a))for(var t=0;t<a.length;t++)a[t]&&Ne(a[t]);else a&&Ne(a)}return e.h}Ot.prototype.toString=function(){return Ne(this).toString()};function Me(e,u){if(e=e.o){Xe(u,u.g.end());for(var a=0;a<e.length;a++)Xe(u,e[a])}}function $e(e){var u=e[0];switch(e.length){case 2:var a=e[1];return function(T,I,Y){return u(T,I,Y,a)};case 3:var t=e[1],o=e[2];return function(T,I,Y){return u(T,I,Y,t,o)};case 4:var s=e[1],h=e[2],R=e[3];return function(T,I,Y){return u(T,I,Y,s,h,R)};default:throw Error("unsupported number of parameters, expected [2-4], got "+e.length)}}function me(e,u,a){for(;Je(u)&&u.h!=4;){var t=u.i,o=a[t];if(o){if(Array.isArray(o)&&(o=a[t]=$e(o)),!o(u,e,t)){t=u,o=e;var s=t.l;ge(t),Rn(t,o,s)}}else t=u,o=e,s=t.l,ge(t),Rn(t,o,s)}return e}function Ue(e,u){var a=new ie;if(u(e,a),e=a.i+a.g.length(),e===0)a=new Uint8Array(0);else{e=new Uint8Array(e);for(var t=a.h,o=t.length,s=u=0;s<o;s++){var h=t[s];h.length!==0&&(e.set(h,u),u+=h.length)}t=a.g,o=t.h,o!==0&&(e.set(t.g.subarray(0,o),u),t.h=0),a.h=[e],a=e}return a}function En(e,u,a){if(cn.length){var t=cn.pop();e&&(pe(t.g,e),t.i=-1,t.h=-1),e=t}else e=new Le(e);try{return a(new u,e)}finally{u=e.g,u.h=null,u.m=0,u.i=0,u.g=0,u.l=!1,u.u=!1,e.i=-1,e.h=-1,e.j=!1,100>cn.length&&cn.push(e)}}function Ye(e,u,a){if(u=kt(u,a),u!=null){Ut(e.g,8*a+5),e=e.g;var t=u;t=(a=0>t?1:0)?-t:t,t===0?0<1/t?Ct=re=0:(re=0,Ct=2147483648):isNaN(t)?(re=0,Ct=2147483647):34028234663852886e22<t?(re=0,Ct=(a<<31|2139095040)>>>0):11754943508222875e-54>t?(t=Math.round(t/Math.pow(2,-149)),re=0,Ct=(a<<31|t)>>>0):(u=Math.floor(Math.log(t)/Math.LN2),t*=Math.pow(2,-u),t=Math.round(8388608*t),16777216<=t&&++u,re=0,Ct=(a<<31|u+127<<23|t&8388607)>>>0),a=Ct,se(e,a>>>0&255),se(e,a>>>8&255),se(e,a>>>16&255),se(e,a>>>24&255)}}function be(e,u,a){return e.h!==5?!1:(Jt(u,a,e.g.o()),!0)}function rn(e,u,a){return e.h!==5&&e.h!==2?!1:(u=Xt(u,a),e.h==2?sn(e,Lt.prototype.o,u):u.push(e.g.o()),!0)}function fn(e,u,a){return e.h!==0?!1:(Jt(u,a,At(e.g)),!0)}function Te(e,u,a){return e.h!==0?!1:(Jt(u,a,e.g.j()),!0)}function Sn(e,u,a){if(e.h!==2)return!1;var t=e.g.j();e=e.g;var o=e.g;e.g+=t,ne(e),e=e.h;var s;if(en)(s=Fn)||(s=Fn=new TextDecoder("utf-8",{fatal:!1})),s=s.decode(e.subarray(o,o+t));else{t=o+t;for(var h=[],R=null,T,I,Y;o<t;)T=e[o++],128>T?h.push(T):224>T?o>=t?h.push(65533):(I=e[o++],194>T||(I&192)!==128?(o--,h.push(65533)):h.push((T&31)<<6|I&63)):240>T?o>=t-1?h.push(65533):(I=e[o++],(I&192)!==128||T===224&&160>I||T===237&&160<=I||((s=e[o++])&192)!==128?(o--,h.push(65533)):h.push((T&15)<<12|(I&63)<<6|s&63)):244>=T?o>=t-2?h.push(65533):(I=e[o++],(I&192)!==128||(T<<28)+(I-144)>>30!==0||((s=e[o++])&192)!==128||((Y=e[o++])&192)!==128?(o--,h.push(65533)):(T=(T&7)<<18|(I&63)<<12|(s&63)<<6|Y&63,T-=65536,h.push((T>>10&1023)+55296,(T&1023)+56320))):h.push(65533),8192<=h.length&&(R=bn(R,h),h.length=0);s=bn(R,h)}return Jt(u,a,s),!0}function ke(e,u,a,t,o){if(e.h!==2)return!1;e=Qe(e,new t,o);var s=s===void 0?!1:s;return u.g||(u.g={}),t=e&&Ne(e),u.g[a]=e,Jt(u,a,t,s),!0}function on(e,u,a,t,o){return e.h!==2?!1:(e=Qe(e,new t,o),De(u,a,e,t,void 0),!0)}function mn(e,u,a){return e.h!==0&&e.h!==2?!1:(u=Xt(u,a),e.h==2?sn(e,Lt.prototype.j,u):u.push(e.g.j()),!0)}function xn(e,u,a){return e.h!==0?!1:(Jt(u,a,At(e.g)),!0)}function Oe(e){Ot.call(this,e,-1,Yn)}var yn;xt(Oe,Ot),Oe.prototype.getRows=function(){return kt(this,1)},Oe.prototype.getCols=function(){return kt(this,2)},Oe.prototype.getPackedDataList=function(){return Ae(this)},Oe.prototype.getLayout=function(){return Ke(this,4,0)};function Un(e,u){return me(e,u,yn||(yn={1:Te,2:Te,3:rn,4:xn}))}var Yn=[3];function vn(e){Ot.call(this,e)}var Gn;xt(vn,Ot);function f(e,u){var a=kt(e,1);if(a!=null&&a!=null){Ut(u.g,8);var t=u.g;if(0<=a)Ut(t,a);else{for(var o=0;9>o;o++)se(t,a&127|128),a>>=7;se(t,1)}}Ye(u,e,2),t=kt(e,3),t!=null&&oe(u,3,Vn(t)),t=kt(e,4),t!=null&&oe(u,4,Vn(t)),Me(e,u)}function b(e,u){return me(e,u,Gn||(Gn={1:Te,2:be,3:Sn,4:Sn}))}function Z(e){Ot.call(this,e,-1,et)}var U;xt(Z,Ot),Z.prototype.addClassification=function(e,u){return De(this,1,e,vn,u),this};function _(e,u){return me(e,u,U||(U={1:[on,vn,b]}))}var et=[1];function O(e){Ot.call(this,e)}var tt;xt(O,Ot);function st(e,u){Ye(u,e,1),Ye(u,e,2),Ye(u,e,3),Ye(u,e,4),Ye(u,e,5),Me(e,u)}function mt(e,u){return me(e,u,tt||(tt={1:be,2:be,3:be,4:be,5:be}))}function It(e){Ot.call(this,e,-1,Wt)}var wt;xt(It,Ot);function jt(e,u){return me(e,u,wt||(wt={1:[on,O,mt]}))}var Wt=[1];function Zt(e){Ot.call(this,e)}var Tt;xt(Zt,Ot);function Nt(e,u){Ye(u,e,1),Ye(u,e,2),Ye(u,e,3),Ye(u,e,4),Ye(u,e,5);var a=kt(e,6);if(a!=null&&a!=null){Ut(u.g,48);var t=u.g,o=a;a=0>o,o=Math.abs(o);var s=o>>>0;for(o=Math.floor((o-s)/4294967296),o>>>=0,a&&(o=~o>>>0,s=(~s>>>0)+1,4294967295<s&&(s=0,o++,4294967295<o&&(o=0))),Ct=s,re=o,a=Ct,s=re;0<s||127<a;)se(t,a&127|128),a=(a>>>7|s<<25)>>>0,s>>>=7;se(t,a)}Me(e,u)}function Bt(e,u){return me(e,u,Tt||(Tt={1:be,2:be,3:be,4:be,5:be,6:fn}))}function Dt(e){Ot.call(this,e,-1,c)}var qt;xt(Dt,Ot),Dt.prototype.getVertexType=function(){return Ke(this,1,0)},Dt.prototype.getPrimitiveType=function(){return Ke(this,2,0)},Dt.prototype.getVertexBufferList=function(){return Ae(this)},Dt.prototype.getIndexBufferList=function(){return Xt(this,4)};function Ze(e,u){return me(e,u,qt||(qt={1:xn,2:xn,3:rn,4:mn}))}var c=[3,4];function d(e){Ot.call(this,e)}var m;xt(d,Ot),d.prototype.getMesh=function(){return Ee(this,Dt,1)},d.prototype.getPoseTransformMatrix=function(){return Ee(this,Oe,2)};function x(e,u){return me(e,u,m||(m={1:[ke,Dt,Ze],2:[ke,Oe,Un]}))}var j=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],P=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],H=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(dt(j),dt(P),dt(H),dt(D),dt(rt),dt(r));function G(e,u,a){if(a=e.createShader(a===0?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(a,u),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
37
|
+
`+R.getProgramInfoLog(n));W=i.o=n,R.useProgram(W),N=R.getUniformLocation(W,"sampler0"),i.j={K:R.getAttribLocation(W,"aVertex"),J:R.getAttribLocation(W,"aTex"),qa:N},i.u=R.createBuffer(),R.bindBuffer(R.ARRAY_BUFFER,i.u),R.enableVertexAttribArray(i.j.K),R.vertexAttribPointer(i.j.K,2,R.FLOAT,!1,0,0),R.bufferData(R.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),R.STATIC_DRAW),R.bindBuffer(R.ARRAY_BUFFER,null),i.s=R.createBuffer(),R.bindBuffer(R.ARRAY_BUFFER,i.s),R.enableVertexAttribArray(i.j.J),R.vertexAttribPointer(i.j.J,2,R.FLOAT,!1,0,0),R.bufferData(R.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),R.STATIC_DRAW),R.bindBuffer(R.ARRAY_BUFFER,null),R.uniform1i(N,0)}W=i.j,R.useProgram(i.o),R.canvas.width=g.width,R.canvas.height=g.height,R.viewport(0,0,g.width,g.height),R.activeTexture(R.TEXTURE0),i.h.bindTexture2d(g.glName),R.enableVertexAttribArray(W.K),R.bindBuffer(R.ARRAY_BUFFER,i.u),R.vertexAttribPointer(W.K,2,R.FLOAT,!1,0,0),R.enableVertexAttribArray(W.J),R.bindBuffer(R.ARRAY_BUFFER,i.s),R.vertexAttribPointer(W.J,2,R.FLOAT,!1,0,0),R.bindFramebuffer(R.DRAW_FRAMEBUFFER?R.DRAW_FRAMEBUFFER:R.FRAMEBUFFER,null),R.clearColor(0,0,0,0),R.clear(R.COLOR_BUFFER_BIT),R.colorMask(!0,!0,!0,!0),R.drawArrays(R.TRIANGLE_FAN,0,4),R.disableVertexAttribArray(W.K),R.disableVertexAttribArray(W.J),R.bindBuffer(R.ARRAY_BUFFER,null),i.h.bindTexture2d(0)}function X(i){this.g=i}var V=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function E(i,g){return g+i}function H(i,g){window[i]=g}function J(i){var g=document.createElement("script");return g.setAttribute("src",i),g.setAttribute("crossorigin","anonymous"),new Promise(function(R){g.addEventListener("load",function(){R()},!1),g.addEventListener("error",function(){R()},!1),document.body.appendChild(g)})}function q(){return ft(function(i){switch(i.g){case 1:return i.o=2,$(i,WebAssembly.instantiate(V),4);case 4:i.g=3,i.o=0;break;case 2:return i.o=0,i.j=null,i.return(!1);case 3:return i.return(!0)}})}function M(i){if(this.g=i,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.$=!0,this.D=Promise.resolve(),this.Z="",this.C={},this.locateFile=i&&i.locateFile||E,typeof window=="object")var g=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")g=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.aa=g,i.options){g=U(Object.keys(i.options));for(var R=g.next();!R.done;R=g.next()){R=R.value;var W=i.options[R].default;W!==void 0&&(this.j[R]=typeof W=="function"?W():W)}}}S=M.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function lt(i){var g,R,W,N,n,l,p,e,u,a,t;return ft(function(o){switch(o.g){case 1:return i.$?(g=i.g.files===void 0?[]:typeof i.g.files=="function"?i.g.files(i.j):i.g.files,$(o,q(),2)):o.return();case 2:if(R=o.h,typeof window=="object")return H("createMediapipeSolutionsWasm",{locateFile:i.locateFile}),H("createMediapipeSolutionsPackedAssets",{locateFile:i.locateFile}),l=g.filter(function(s){return s.data!==void 0}),p=g.filter(function(s){return s.data===void 0}),e=Promise.all(l.map(function(s){var f=yt(i,s.url);if(s.path!==void 0){var w=s.path;f=f.then(function(T){return i.overrideFile(w,T),Promise.resolve(T)})}return f})),u=Promise.all(p.map(function(s){return s.simd===void 0||s.simd&&R||!s.simd&&!R?J(i.locateFile(s.url,i.aa)):Promise.resolve()})).then(function(){var s,f,w;return ft(function(T){if(T.g==1)return s=window.createMediapipeSolutionsWasm,f=window.createMediapipeSolutionsPackedAssets,w=i,$(T,s(f),2);w.h=T.h,T.g=0})}),a=function(){return ft(function(s){return i.g.graph&&i.g.graph.url?s=$(s,yt(i,i.g.graph.url),0):(s.g=0,s=void 0),s})}(),$(o,Promise.all([u,e,a]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return W=g.filter(function(s){return s.simd===void 0||s.simd&&R||!s.simd&&!R}).map(function(s){return i.locateFile(s.url,i.aa)}),importScripts.apply(null,dt(W)),N=i,$(o,createMediapipeSolutionsWasm(Module),6);case 6:N.h=o.h,i.l=new OffscreenCanvas(1,1),i.h.canvas=i.l,n=i.h.GL.createContext(i.l,{antialias:!1,alpha:!1,na:typeof WebGL2RenderingContext!="undefined"?2:1}),i.h.GL.makeContextCurrent(n),o.g=4;break;case 7:if(i.l=document.createElement("canvas"),t=i.l.getContext("webgl2",{}),!t&&(t=i.l.getContext("webgl",{}),!t))return alert("Failed to create WebGL canvas context when passing video frame."),o.return();i.G=t,i.h.canvas=i.l,i.h.createContext(i.l,!0,!0,{});case 4:i.i=new i.h.SolutionWasm,i.$=!1,o.g=0}})}function pt(i){var g,R,W,N,n,l,p,e;return ft(function(u){if(u.g==1){if(i.g.graph&&i.g.graph.url&&i.Z===i.g.graph.url)return u.return();if(i.s=!0,!i.g.graph||!i.g.graph.url){u.g=2;return}return i.Z=i.g.graph.url,$(u,yt(i,i.g.graph.url),3)}for(u.g!=2&&(g=u.h,i.i.loadGraph(g)),R=U(Object.keys(i.C)),W=R.next();!W.done;W=R.next())N=W.value,i.i.overrideFile(N,i.C[N]);if(i.C={},i.g.listeners)for(n=U(i.g.listeners),l=n.next();!l.done;l=n.next())p=l.value,vt(i,p);e=i.j,i.j={},i.setOptions(e),u.g=0})}S.reset=function(){var i=this;return ft(function(g){i.i&&(i.i.reset(),i.o={},i.u={}),g.g=0})},S.setOptions=function(i,g){var R=this;if(g=g||this.g.options){for(var W=[],N=[],n={},l=U(Object.keys(i)),p=l.next();!p.done;n={R:n.R,S:n.S},p=l.next()){var e=p.value;e in this.j&&this.j[e]===i[e]||(this.j[e]=i[e],p=g[e],p!==void 0&&(p.onChange&&(n.R=p.onChange,n.S=i[e],W.push(function(u){return function(){var a;return ft(function(t){if(t.g==1)return $(t,u.R(u.S),2);a=t.h,a===!0&&(R.s=!0),t.g=0})}}(n))),p.graphOptionXref&&(e={valueNumber:p.type===1?i[e]:0,valueBoolean:p.type===0?i[e]:!1,valueString:p.type===2?i[e]:""},p=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),p.graphOptionXref),e),N.push(p))))}(W.length!==0||N.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(N),this.A=(this.A===void 0?[]:this.A).concat(W))}};function xt(i){var g,R,W,N,n,l,p;return ft(function(e){switch(e.g){case 1:if(!i.s)return e.return();if(!i.A){e.g=2;break}g=U(i.A),R=g.next();case 3:if(R.done){e.g=5;break}return W=R.value,$(e,W(),4);case 4:R=g.next(),e.g=3;break;case 5:i.A=void 0;case 2:if(i.B){for(N=new i.h.GraphOptionChangeRequestList,n=U(i.B),l=n.next();!l.done;l=n.next())p=l.value,N.push_back(p);i.i.changeOptions(N),N.delete(),i.B=void 0}i.s=!1,e.g=0}})}S.initialize=function(){var i=this;return ft(function(g){return g.g==1?$(g,lt(i),2):g.g!=3?$(g,pt(i),3):$(g,xt(i),0)})};function yt(i,g){var R,W;return ft(function(N){return g in i.H?N.return(i.H[g]):(R=i.locateFile(g,""),W=fetch(R).then(function(n){return n.arrayBuffer()}),i.H[g]=W,N.return(W))})}S.overrideFile=function(i,g){this.i?this.i.overrideFile(i,g):this.C[i]=g},S.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},S.send=function(i,g){var R=this,W,N,n,l,p,e,u,a,t;return ft(function(o){switch(o.g){case 1:return R.g.inputs?(W=1e3*(g==null?performance.now():g),$(o,R.D,2)):o.return();case 2:return $(o,R.initialize(),3);case 3:for(N=new R.h.PacketDataList,n=U(Object.keys(i)),l=n.next();!l.done;l=n.next())if(p=l.value,e=R.g.inputs[p]){t:{var s=i[p];switch(e.type){case"video":var f=R.o[e.stream];if(f||(f=new rt(R.h,R.G),R.o[e.stream]=f),f.l===0&&(f.l=f.h.createTexture()),typeof HTMLVideoElement!="undefined"&&s instanceof HTMLVideoElement)var w=s.videoWidth,T=s.videoHeight;else typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement?(w=s.naturalWidth,T=s.naturalHeight):(w=s.width,T=s.height);T={glName:f.l,width:w,height:T},w=f.g,w.canvas.width=T.width,w.canvas.height=T.height,w.activeTexture(w.TEXTURE0),f.h.bindTexture2d(f.l),w.texImage2D(w.TEXTURE_2D,0,w.RGBA,w.RGBA,w.UNSIGNED_BYTE,s),f.h.bindTexture2d(0),f=T;break t;case"detections":for(f=R.o[e.stream],f||(f=new X(R.h),R.o[e.stream]=f),f.data||(f.data=new f.g.DetectionListData),f.data.reset(s.length),T=0;T<s.length;++T){w=s[T];var x=f.data,k=x.setBoundingBox,O=T,P=w.ea,z=new m;if(St(z,1,P.ka),St(z,2,P.la),St(z,3,P.height),St(z,4,P.width),St(z,5,P.rotation),St(z,6,P.ia),P=_(z,F),k.call(x,O,P),w.Y)for(x=0;x<w.Y.length;++x){z=w.Y[x];var nt=!!z.visibility;k=f.data,O=k.addNormalizedLandmark,P=T,z=Object.assign(Object.assign({},z),{visibility:nt?z.visibility:0}),nt=new Dt,St(nt,1,z.x),St(nt,2,z.y),St(nt,3,z.z),z.visibility&&St(nt,4,z.visibility),z=_(nt,qt),O.call(k,P,z)}if(w.V)for(x=0;x<w.V.length;++x)k=f.data,O=k.addClassification,P=T,z=w.V[x],nt=new Wt,St(nt,2,z.score),z.index&&St(nt,1,z.index),z.label&&St(nt,3,z.label),z.displayName&&St(nt,4,z.displayName),z=_(nt,Zt),O.call(k,P,z)}f=f.data;break t;default:f={}}}switch(u=f,a=e.stream,e.type){case"video":N.pushTexture2d(Object.assign(Object.assign({},u),{stream:a,timestamp:W}));break;case"detections":t=u,t.stream=a,t.timestamp=W,N.pushDetectionList(t);break;default:throw Error("Unknown input config type: '"+e.type+"'")}}return R.i.send(N),$(o,R.D,4);case 4:N.delete(),o.g=0}})};function it(i,g,R){var W,N,n,l,p,e,u,a,t,o,s,f,w,T;return ft(function(x){switch(x.g){case 1:if(!R)return x.return(g);for(W={},N=0,n=U(Object.keys(R)),l=n.next();!l.done;l=n.next())p=l.value,e=R[p],typeof e!="string"&&e.type==="texture"&&g[e.stream]!==void 0&&++N;1<N&&(i.I=!1),u=U(Object.keys(R)),l=u.next();case 2:if(l.done){x.g=4;break}if(a=l.value,t=R[a],typeof t=="string")return w=W,T=a,$(x,gt(i,a,g[t]),14);if(o=g[t.stream],t.type==="detection_list"){if(o){for(var k=o.getRectList(),O=o.getLandmarksList(),P=o.getClassificationsList(),z=[],nt=0;nt<k.size();++nt){var ot=Z(k.get(nt),m,F);ot={ea:{ka:Mt(ot,1),la:Mt(ot,2),height:Mt(ot,3),width:Mt(ot,4),rotation:Mt(ot,5,0),ia:Qt(ot,6)},Y:Ie(Z(O.get(nt),Ze,c),Dt,1).map(C),V:B(Z(P.get(nt),Tt,Nt))},z.push(ot)}k=z}else k=[];W[a]=k,x.g=7;break}if(t.type==="proto_list"){if(o){for(k=Array(o.size()),O=0;O<o.size();O++)k[O]=o.get(O);o.delete()}else k=[];W[a]=k,x.g=7;break}if(o===void 0){x.g=3;break}if(t.type==="float_list"){W[a]=o,x.g=7;break}if(t.type==="proto"){W[a]=o,x.g=7;break}if(t.type!=="texture")throw Error("Unknown output config type: '"+t.type+"'");return s=i.u[a],s||(s=new rt(i.h,i.G),i.u[a]=s),$(x,r(s,o,i.I),13);case 13:f=x.h,W[a]=f;case 7:t.transform&&W[a]&&(W[a]=t.transform(W[a])),x.g=3;break;case 14:w[T]=x.h;case 3:l=u.next(),x.g=2;break;case 4:return x.return(W)}})}function gt(i,g,R){var W;return ft(function(N){return typeof R=="number"||R instanceof Uint8Array||R instanceof i.h.Uint8BlobList?N.return(R):R instanceof i.h.Texture2dDataOut?(W=i.u[g],W||(W=new rt(i.h,i.G),i.u[g]=W),N.return(r(W,R,i.I))):N.return(void 0)})}function vt(i,g){for(var R=g.name||"$",W=[].concat(dt(g.wants)),N=new i.h.StringList,n=U(g.wants),l=n.next();!l.done;l=n.next())N.push_back(l.value);n=i.h.PacketListener.implement({onResults:function(p){for(var e={},u=0;u<g.wants.length;++u)e[W[u]]=p.get(u);var a=i.listeners[R];a&&(i.D=it(i,e,g.outs).then(function(t){t=a(t);for(var o=0;o<g.wants.length;++o){var s=e[W[o]];typeof s=="object"&&s.hasOwnProperty&&s.hasOwnProperty("delete")&&s.delete()}t&&(i.D=t)}))}}),i.i.attachMultiListener(N,n),N.delete()}S.onResults=function(i,g){this.listeners[g||"$"]=i},Vt("Solution",M),Vt("OptionType",{BOOL:0,NUMBER:1,ma:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Xt(i){return i===void 0&&(i=0),i===1?"hand_landmark_full.tflite":"hand_landmark_lite.tflite"}function wt(i){var g=this;i=i||{},this.g=new M({locateFile:i.locateFile,files:function(R){return[{url:"hands_solution_packed_assets_loader.js"},{simd:!1,url:"hands_solution_wasm_bin.js"},{simd:!0,url:"hands_solution_simd_wasm_bin.js"},{data:!0,url:Xt(R.modelComplexity)}]},graph:{url:"hands.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["multi_hand_landmarks","multi_hand_world_landmarks","image_transformed","multi_handedness"],outs:{image:"image_transformed",multiHandLandmarks:{type:"proto_list",stream:"multi_hand_landmarks",transform:D},multiHandWorldLandmarks:{type:"proto_list",stream:"multi_hand_world_landmarks",transform:D},multiHandedness:{type:"proto_list",stream:"multi_handedness",transform:function(R){return R.map(function(W){return B(Z(W,Tt,Nt))[0]})}}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumHands:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculator",fieldName:"int_value"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(R){var W,N,n;return ft(function(l){return l.g==1?(W=Xt(R),N="third_party/mediapipe/modules/hand_landmark/"+W,$(l,yt(g.g,W),2)):(n=l.h,g.g.overrideFile(N,n),l.return(!0))})}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}}}})}S=wt.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(i){this.g.onResults(i)},S.initialize=function(){var i=this;return ft(function(g){return $(g,i.g.initialize(),0)})},S.reset=function(){this.g.reset()},S.send=function(i){var g=this;return ft(function(R){return $(R,g.g.send(i),0)})},S.setOptions=function(i){this.g.setOptions(i)},Vt("Hands",wt),Vt("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),Vt("VERSION","0.4.1646424915")}).call(Gr);var Wr={};(function(){var S;function v(e){var u=0;return function(){return u<e.length?{done:!1,value:e[u++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(e,u,a){return e==Array.prototype||e==Object.prototype||(e[u]=a.value),e};function L(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var u=0;u<e.length;++u){var a=e[u];if(a&&a.Math==Math)return a}throw Error("Cannot find global object")}var I=L(this);function A(e,u){if(u)t:{var a=I;e=e.split(".");for(var t=0;t<e.length-1;t++){var o=e[t];if(!(o in a))break t;a=a[o]}e=e[e.length-1],t=a[e],u=u(t),u!=t&&u!=null&&G(a,e,{configurable:!0,writable:!0,value:u})}}A("Symbol",function(e){function u(s){if(this instanceof u)throw new TypeError("Symbol is not a constructor");return new a(t+(s||"")+"_"+o++,s)}function a(s,f){this.g=s,G(this,"description",{configurable:!0,writable:!0,value:f})}if(e)return e;a.prototype.toString=function(){return this.g};var t="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",o=0;return u}),A("Symbol.iterator",function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var u="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a<u.length;a++){var t=I[u[a]];typeof t=="function"&&typeof t.prototype[e]!="function"&&G(t.prototype,e,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return e});function Q(e){return e={next:e},e[Symbol.iterator]=function(){return this},e}function U(e){var u=typeof Symbol!="undefined"&&Symbol.iterator&&e[Symbol.iterator];return u?u.call(e):{next:v(e)}}function dt(e){if(!(e instanceof Array)){e=U(e);for(var u,a=[];!(u=e.next()).done;)a.push(u.value);e=a}return e}var _e=typeof Object.create=="function"?Object.create:function(e){function u(){}return u.prototype=e,new u},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(e,u){if(e.__proto__=u,e.__proto__!==u)throw new TypeError(e+" is not extensible");return e}:null}var je=ct;function Ft(e,u){if(e.prototype=_e(u.prototype),e.prototype.constructor=e,je)je(e,u);else for(var a in u)if(a!="prototype")if(Object.defineProperties){var t=Object.getOwnPropertyDescriptor(u,a);t&&Object.defineProperty(e,a,t)}else e[a]=u[a];e.da=u.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(e){if(e.l)throw new TypeError("Generator is already running");e.l=!0}ue.prototype.o=function(e){this.h=e};function fe(e,u){e.j={U:u,V:!0},e.g=e.m||e.s}ue.prototype.return=function(e){this.j={return:e},this.g=this.s};function $(e,u,a){return e.g=a,{value:u}}function In(e){this.g=new ue,this.h=e}function jn(e,u){de(e.g);var a=e.g.i;return a?Ce(e,"return"in a?a.return:function(t){return{value:t,done:!0}},u,e.g.return):(e.g.return(u),ee(e))}function Ce(e,u,a,t){try{var o=u.call(e.g.i,a);if(!(o instanceof Object))throw new TypeError("Iterator result "+o+" is not an object");if(!o.done)return e.g.l=!1,o;var s=o.value}catch(f){return e.g.i=null,fe(e.g,f),ee(e)}return e.g.i=null,t.call(e.g,s),ee(e)}function ee(e){for(;e.g.g;)try{var u=e.h(e.g);if(u)return e.g.l=!1,{value:u.value,done:!1}}catch(a){e.g.h=void 0,fe(e.g,a)}if(e.g.l=!1,e.g.j){if(u=e.g.j,e.g.j=null,u.V)throw u.U;return{value:u.return,done:!0}}return{value:void 0,done:!0}}function Cn(e){this.next=function(u){return de(e.g),e.g.i?u=Ce(e,e.g.i.next,u,e.g.o):(e.g.o(u),u=ee(e)),u},this.throw=function(u){return de(e.g),e.g.i?u=Ce(e,e.g.i.throw,u,e.g.o):(fe(e.g,u),u=ee(e)),u},this.return=function(u){return jn(e,u)},this[Symbol.iterator]=function(){return this}}function te(e){function u(t){return e.next(t)}function a(t){return e.throw(t)}return new Promise(function(t,o){function s(f){f.done?t(f.value):Promise.resolve(f.value).then(u,a).then(s,o)}s(e.next())})}function ft(e){return te(new Cn(new In(e)))}A("Promise",function(e){function u(f){this.h=0,this.i=void 0,this.g=[],this.o=!1;var w=this.j();try{f(w.resolve,w.reject)}catch(T){w.reject(T)}}function a(){this.g=null}function t(f){return f instanceof u?f:new u(function(w){w(f)})}if(e)return e;a.prototype.h=function(f){if(this.g==null){this.g=[];var w=this;this.i(function(){w.l()})}this.g.push(f)};var o=I.setTimeout;a.prototype.i=function(f){o(f,0)},a.prototype.l=function(){for(;this.g&&this.g.length;){var f=this.g;this.g=[];for(var w=0;w<f.length;++w){var T=f[w];f[w]=null;try{T()}catch(x){this.j(x)}}}this.g=null},a.prototype.j=function(f){this.i(function(){throw f})},u.prototype.j=function(){function f(x){return function(k){T||(T=!0,x.call(w,k))}}var w=this,T=!1;return{resolve:f(this.C),reject:f(this.l)}},u.prototype.C=function(f){if(f===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof u)this.F(f);else{t:switch(typeof f){case"object":var w=f!=null;break t;case"function":w=!0;break t;default:w=!1}w?this.v(f):this.m(f)}},u.prototype.v=function(f){var w=void 0;try{w=f.then}catch(T){this.l(T);return}typeof w=="function"?this.G(w,f):this.m(f)},u.prototype.l=function(f){this.s(2,f)},u.prototype.m=function(f){this.s(1,f)},u.prototype.s=function(f,w){if(this.h!=0)throw Error("Cannot settle("+f+", "+w+"): Promise already settled in state"+this.h);this.h=f,this.i=w,this.h===2&&this.D(),this.A()},u.prototype.D=function(){var f=this;o(function(){if(f.B()){var w=I.console;typeof w!="undefined"&&w.error(f.i)}},1)},u.prototype.B=function(){if(this.o)return!1;var f=I.CustomEvent,w=I.Event,T=I.dispatchEvent;return typeof T=="undefined"?!0:(typeof f=="function"?f=new f("unhandledrejection",{cancelable:!0}):typeof w=="function"?f=new w("unhandledrejection",{cancelable:!0}):(f=I.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f)),f.promise=this,f.reason=this.i,T(f))},u.prototype.A=function(){if(this.g!=null){for(var f=0;f<this.g.length;++f)s.h(this.g[f]);this.g=null}};var s=new a;return u.prototype.F=function(f){var w=this.j();f.J(w.resolve,w.reject)},u.prototype.G=function(f,w){var T=this.j();try{f.call(w,T.resolve,T.reject)}catch(x){T.reject(x)}},u.prototype.then=function(f,w){function T(P,z){return typeof P=="function"?function(nt){try{x(P(nt))}catch(ot){k(ot)}}:z}var x,k,O=new u(function(P,z){x=P,k=z});return this.J(T(f,x),T(w,k)),O},u.prototype.catch=function(f){return this.then(void 0,f)},u.prototype.J=function(f,w){function T(){switch(x.h){case 1:f(x.i);break;case 2:w(x.i);break;default:throw Error("Unexpected state: "+x.h)}}var x=this;this.g==null?s.h(T):this.g.push(T),this.o=!0},u.resolve=t,u.reject=function(f){return new u(function(w,T){T(f)})},u.race=function(f){return new u(function(w,T){for(var x=U(f),k=x.next();!k.done;k=x.next())t(k.value).J(w,T)})},u.all=function(f){var w=U(f),T=w.next();return T.done?t([]):new u(function(x,k){function O(nt){return function(ot){P[nt]=ot,z--,z==0&&x(P)}}var P=[],z=0;do P.push(void 0),z++,t(T.value).J(O(P.length-1),k),T=w.next();while(!T.done)})},u});function Hn(e,u){e instanceof String&&(e+="");var a=0,t=!1,o={next:function(){if(!t&&a<e.length){var s=a++;return{value:u(s,e[s]),done:!1}}return t=!0,{done:!0,value:void 0}}};return o[Symbol.iterator]=function(){return o},o}var Un=typeof Object.assign=="function"?Object.assign:function(e,u){for(var a=1;a<arguments.length;a++){var t=arguments[a];if(t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};A("Object.assign",function(e){return e||Un}),A("Object.is",function(e){return e||function(u,a){return u===a?u!==0||1/u===1/a:u!==u&&a!==a}}),A("Array.prototype.includes",function(e){return e||function(u,a){var t=this;t instanceof String&&(t=String(t));var o=t.length;for(a=a||0,0>a&&(a=Math.max(a+o,0));a<o;a++){var s=t[a];if(s===u||Object.is(s,u))return!0}return!1}}),A("String.prototype.includes",function(e){return e||function(u,a){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(u instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(u,a||0)!==-1}}),A("Array.prototype.keys",function(e){return e||function(){return Hn(this,function(u){return u})}});var ye=this||self;function Vt(e,u){e=e.split(".");var a=ye;e[0]in a||typeof a.execScript=="undefined"||a.execScript("var "+e[0]);for(var t;e.length&&(t=e.shift());)e.length||u===void 0?a[t]&&a[t]!==Object.prototype[t]?a=a[t]:a=a[t]={}:a[t]=u}function We(e){ye.setTimeout(function(){throw e},0)}function tn(e){We(e)}function dn(e,u){tn(Error("Invalid wire type: "+e+" (at position "+u+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function Zn(e,u){return u=String.fromCharCode.apply(null,u),e==null?u:e+u}var xn,en=typeof TextDecoder!="undefined",un,Ln=typeof TextEncoder!="undefined";function Sn(e){if(Ln)e=(un||(un=new TextEncoder)).encode(e);else{var u=void 0;u=u===void 0?!1:u;for(var a=0,t=new Uint8Array(3*e.length),o=0;o<e.length;o++){var s=e.charCodeAt(o);if(128>s)t[a++]=s;else{if(2048>s)t[a++]=s>>6|192;else{if(55296<=s&&57343>=s){if(56319>=s&&o<e.length){var f=e.charCodeAt(++o);if(56320<=f&&57343>=f){s=1024*(s-55296)+f-56320+65536,t[a++]=s>>18|240,t[a++]=s>>12&63|128,t[a++]=s>>6&63|128,t[a++]=s&63|128;continue}else o--}if(u)throw Error("Found an unpaired surrogate");s=65533}t[a++]=s>>12|224,t[a++]=s>>6&63|128}t[a++]=s&63|128}}e=t.subarray(0,a)}return e}var pn={},nn=null;function Xn(e){var u;u===void 0&&(u=0),ve(),u=pn[u];for(var a=Array(Math.floor(e.length/3)),t=u[64]||"",o=0,s=0;o<e.length-2;o+=3){var f=e[o],w=e[o+1],T=e[o+2],x=u[f>>2];f=u[(f&3)<<4|w>>4],w=u[(w&15)<<2|T>>6],T=u[T&63],a[s++]=x+f+w+T}switch(x=0,T=t,e.length-o){case 2:x=e[o+1],T=u[(x&15)<<2]||t;case 1:e=e[o],a[s]=u[e>>2]+u[(e&3)<<4|x>>4]+T+t}return a.join("")}function gn(e){var u=e.length,a=3*u/4;a%3?a=Math.floor(a):"=.".indexOf(e[u-1])!=-1&&(a="=.".indexOf(e[u-2])!=-1?a-2:a-1);var t=new Uint8Array(a),o=0;return ce(e,function(s){t[o++]=s}),t.subarray(0,o)}function ce(e,u){function a(T){for(;t<e.length;){var x=e.charAt(t++),k=nn[x];if(k!=null)return k;if(!/^[\s\xa0]*$/.test(x))throw Error("Unknown base64 encoding at char: "+x)}return T}ve();for(var t=0;;){var o=a(-1),s=a(0),f=a(64),w=a(64);if(w===64&&o===-1)break;u(o<<2|s>>4),f!=64&&(u(s<<4&240|f>>2),w!=64&&u(f<<6&192|w))}}function ve(){if(!nn){nn={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),u=["+/=","+/","-_=","-_.","-_"],a=0;5>a;a++){var t=e.concat(u[a].split(""));pn[a]=t;for(var o=0;o<t.length;o++){var s=t[o];nn[s]===void 0&&(nn[s]=o)}}}}var Be=typeof Uint8Array=="function",le;function ae(e){if(this.g=e,e!==null&&e.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var e="";else e=this.g,e=this.g=e==null||typeof e=="string"?e:Be&&e instanceof Uint8Array?Xn(e):null;return e};var Me=typeof Uint8Array.prototype.slice=="function";function xe(e,u,a){return u===a?le||(le=new Uint8Array(0)):Me?e.slice(u,a):new Uint8Array(e.subarray(u,a))}var Ut=0,re=0;function Se(e){if(e.constructor===Uint8Array)return e;if(e.constructor===ArrayBuffer)return new Uint8Array(e);if(e.constructor===Array)return new Uint8Array(e);if(e.constructor===String)return gn(e);if(e.constructor===ae){if(e.g==null)var u=le||(le=new Uint8Array(0));else{u=Uint8Array;var a=e.g;a=a==null||Be&&a!=null&&a instanceof Uint8Array?a:typeof a=="string"?gn(a):null,e=e.g=a,u=new u(e)}return u}if(e instanceof Uint8Array)return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Lt(e,u){u=u===void 0?{}:u,u=u.u===void 0?!1:u.u,this.h=null,this.g=this.i=this.m=0,this.l=!1,this.u=u,e&&pe(this,e)}function pe(e,u){e.h=Se(u),e.m=0,e.i=e.h.length,e.g=e.m}Lt.prototype.reset=function(){this.g=this.m};function At(e){for(var u=128,a=0,t=0,o=0;4>o&&128<=u;o++)u=e.h[e.g++],a|=(u&127)<<7*o;if(128<=u&&(u=e.h[e.g++],a|=(u&127)<<28,t|=(u&127)>>4),128<=u)for(o=0;5>o&&128<=u;o++)u=e.h[e.g++],t|=(u&127)<<7*o+3;if(128>u)return e=a>>>0,u=t>>>0,(t=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0),t?-e:e;e.l=!0,Wn()}function ne(e){e.g>e.i&&(e.l=!0,tn(Error("Tried to read past the end of the data "+e.g+" > "+e.i)))}Lt.prototype.j=function(){var e=this.h,u=e[this.g],a=u&127;return 128>u?(this.g+=1,ne(this),a):(u=e[this.g+1],a|=(u&127)<<7,128>u?(this.g+=2,ne(this),a):(u=e[this.g+2],a|=(u&127)<<14,128>u?(this.g+=3,ne(this),a):(u=e[this.g+3],a|=(u&127)<<21,128>u?(this.g+=4,ne(this),a):(u=e[this.g+4],a|=(u&15)<<28,128>u?(this.g+=5,ne(this),a>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]?(this.l=!0,Wn(),a):(ne(this),a))))))},Lt.prototype.o=function(){var e=this.h[this.g],u=this.h[this.g+1],a=this.h[this.g+2],t=this.h[this.g+3];return this.g+=4,ne(this),a=(e<<0|u<<8|a<<16|t<<24)>>>0,e=2*(a>>31)+1,u=a>>>23&255,a&=8388607,u==255?a?NaN:1/0*e:u==0?e*Math.pow(2,-149)*a:e*Math.pow(2,u-150)*(a+Math.pow(2,23))};var Xe=[];function Pe(){this.g=new Uint8Array(64),this.h=0}function se(e,u){if(!(e.h+1<e.g.length)){var a=e.g;e.g=new Uint8Array(Math.ceil(1+2*e.g.length)),e.g.set(a)}e.g[e.h++]=u}Pe.prototype.length=function(){return this.h},Pe.prototype.end=function(){var e=this.g,u=this.h;return this.h=0,xe(e,0,u)};function Yt(e,u){for(;127<u;)se(e,u&127|128),u>>>=7;se(e,u)}function Le(e){var u={},a=u.N===void 0?!1:u.N;this.m={u:u.u===void 0?!1:u.u},this.N=a,u=this.m,Xe.length?(a=Xe.pop(),u&&(a.u=u.u),e&&pe(a,e),e=a):e=new Lt(e,u),this.g=e,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Le.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function He(e){var u=e.g;if((u=u.g==u.i)||(u=e.j)||(u=e.g,u=u.l||0>u.g||u.g>u.i),u)return!1;e.l=e.g.g;var a=e.g.j();return u=a>>>3,a&=7,0<=a&&5>=a?(e.i=u,e.h=a,!0):(e.j=!0,dn(a,e.l),!1)}function ge(e){switch(e.h){case 0:if(e.h!=0)ge(e);else t:{e=e.g;for(var u=e.g,a=0;10>a;a++){if((e.h[u]&128)===0){e.g=u+1,ne(e);break t}u++}e.l=!0,Wn()}break;case 1:e=e.g,e.g+=8,ne(e);break;case 2:e.h!=2?ge(e):(u=e.g.j(),e=e.g,e.g+=u,ne(e));break;case 5:e=e.g,e.g+=4,ne(e);break;case 3:u=e.i;do{if(!He(e)){e.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(e.h==4){e.i!=u&&(e.j=!0,tn(Error("Unmatched end-group tag")));break}ge(e)}while(1);break;default:e.j=!0,dn(e.h,e.l)}}function wn(e,u,a){e.N||(e=xe(e.g.h,a,e.g.g),(a=u.o)?a.push(e):u.o=[e])}function Qe(e,u,a){var t=e.g.i,o=e.g.j(),s=e.g.g+o;if(e.g.i=s,a(u,e),a=s-e.g.g,a!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(o+" bytes, instead read "+(o-a)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return e.g.g=s,e.g.i=t,u}function sn(e,u,a){var t=e.g.j();for(t=e.g.g+t;e.g.g<t;)a.push(u.call(e.g))}var cn=[];function ie(){this.h=[],this.i=0,this.g=new Pe}function Re(e,u){u.length!==0&&(e.h.push(u),e.i+=u.length)}function oe(e,u,a){Yt(e.g,8*u+2),Yt(e.g,a.length),Re(e,e.g.end()),Re(e,a)}var zt=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Ue(e,u){Object.isFrozen(e)||(zt?e[zt]|=u:e.g!==void 0?e.g|=u:Object.defineProperties(e,{g:{value:u,configurable:!0,writable:!0,enumerable:!1}}))}function Ot(e){if(!e)return 0;var u;return zt?u=e[zt]:u=e.g,u==null?0:u}function kt(e){return Array.isArray(e)&&Ue(e,1),e}function mn(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");Ue(e,2)}function $t(e){return e!==null&&typeof e=="object"&&e.constructor===Object}function St(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":return Be&&e!=null&&e instanceof Uint8Array?Xn(e):e;default:return e}}function bt(e,u){if(e!=null)return Array.isArray(e)||$t(e)?Mt(e,u):u(e)}function Mt(e,u){if(Array.isArray(e)){for(var a=Array(e.length),t=0;t<e.length;t++)a[t]=bt(e[t],u);return Ot(e)&1&&kt(a),a}a={};for(t in e)a[t]=bt(e[t],u);return a}var Ie;function Kt(e,u,a){var t=Ie;Ie=null,e||(e=t),t=this.constructor.ba,e||(e=t?[t]:[]),this.j=(t?0:-1)-(this.constructor.$||0),this.m=this.g=null,this.h=e;t:{if(t=this.h.length,e=t-1,t&&(t=this.h[e],$t(t))){this.l=e-this.j,this.i=t;break t}u!==void 0&&-1<u?(this.l=Math.max(u,e+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(a)for(u=0;u<a.length;u++)e=a[u],e<this.l?(e+=this.j,(t=this.h[e])?kt(t):this.h[e]=Qt):(Fe(this),(t=this.i[e])?kt(t):this.i[e]=Qt)}var Qt=Object.freeze(kt([]));function Fe(e){var u=e.l+e.j;e.h[u]||(e.i=e.h[u]={})}function Jt(e,u,a){return u===-1?null:(a===void 0?0:a)||u>=e.l?e.i?e.i[u]:void 0:e.h[u+e.j]}function Rt(e,u,a){a=a===void 0?!0:a;var t=t===void 0?!1:t,o=Jt(e,u,t);return o==null&&(o=Qt),o===Qt?(o=kt([]),Ht(e,u,o,t)):a&&Array.isArray(o)&&Ot(o)&2&&(o=o.slice(),Ht(e,u,o,t)),o}function Ae(e){var u=Rt(e,3,!1);if(e.m||(e.m={}),!e.m[3]){for(var a=0;a<u.length;a++)u[a]=+u[a];e.m[3]=!0}return u}function Oe(e,u,a){return e=Jt(e,u),e==null?a:e}function Ve(e,u,a){return e=Jt(e,u),e=e==null?e:+e,e==null?a===void 0?0:a:e}function Ht(e,u,a,t){(t===void 0?0:t)||u>=e.l?(Fe(e),e.i[u]=a):e.h[u+e.j]=a}function Ee(e,u,a){if(a===-1)return null;e.g||(e.g={});var t=e.g[a];if(t)return t;var o=Jt(e,a,!1);return o==null?t:(u=new u(o),e.g[a]=u)}function an(e,u,a){e.g||(e.g={});var t=e.g[a];if(!t){var o=Rt(e,a,!1);t=[];for(var s=Array.isArray(o)?!!(Ot(o)&2):!1,f=0;f<o.length;f++)t[f]=new u(o[f]),s&&mn(t[f].h);s&&(mn(t),Object.freeze(t)),e.g[a]=t}return t}function De(e,u,a,t,o){var s=an(e,t,u);a=a||new t,e=Rt(e,u),o!=null?(s.splice(o,0,a),e.splice(o,0,Ne(a))):(s.push(a),e.push(Ne(a)))}Kt.prototype.toJSON=function(){var e=Ne(this);return Mt(e,St)};function Ne(e){if(e.g)for(var u in e.g){var a=e.g[u];if(Array.isArray(a))for(var t=0;t<a.length;t++)a[t]&&Ne(a[t]);else a&&Ne(a)}return e.h}Kt.prototype.toString=function(){return Ne(this).toString()};function ze(e,u){if(e=e.o){Re(u,u.g.end());for(var a=0;a<e.length;a++)Re(u,e[a])}}function $e(e){var u=e[0];switch(e.length){case 2:var a=e[1];return function(T,x,k){return u(T,x,k,a)};case 3:var t=e[1],o=e[2];return function(T,x,k){return u(T,x,k,t,o)};case 4:var s=e[1],f=e[2],w=e[3];return function(T,x,k){return u(T,x,k,s,f,w)};default:throw Error("unsupported number of parameters, expected [2-4], got "+e.length)}}function me(e,u,a){for(;He(u)&&u.h!=4;){var t=u.i,o=a[t];if(o){if(Array.isArray(o)&&(o=a[t]=$e(o)),!o(u,e,t)){t=u,o=e;var s=t.l;ge(t),wn(t,o,s)}}else t=u,o=e,s=t.l,ge(t),wn(t,o,s)}return e}function Ye(e,u){var a=new ie;if(u(e,a),e=a.i+a.g.length(),e===0)a=new Uint8Array(0);else{e=new Uint8Array(e);for(var t=a.h,o=t.length,s=u=0;s<o;s++){var f=t[s];f.length!==0&&(e.set(f,u),u+=f.length)}t=a.g,o=t.h,o!==0&&(e.set(t.g.subarray(0,o),u),t.h=0),a.h=[e],a=e}return a}function En(e,u,a){if(cn.length){var t=cn.pop();e&&(pe(t.g,e),t.i=-1,t.h=-1),e=t}else e=new Le(e);try{return a(new u,e)}finally{u=e.g,u.h=null,u.m=0,u.i=0,u.g=0,u.l=!1,u.u=!1,e.i=-1,e.h=-1,e.j=!1,100>cn.length&&cn.push(e)}}function ke(e,u,a){if(u=Jt(u,a),u!=null){Yt(e.g,8*a+5),e=e.g;var t=u;t=(a=0>t?1:0)?-t:t,t===0?0<1/t?Ut=re=0:(re=0,Ut=2147483648):isNaN(t)?(re=0,Ut=2147483647):34028234663852886e22<t?(re=0,Ut=(a<<31|2139095040)>>>0):11754943508222875e-54>t?(t=Math.round(t/Math.pow(2,-149)),re=0,Ut=(a<<31|t)>>>0):(u=Math.floor(Math.log(t)/Math.LN2),t*=Math.pow(2,-u),t=Math.round(8388608*t),16777216<=t&&++u,re=0,Ut=(a<<31|u+127<<23|t&8388607)>>>0),a=Ut,se(e,a>>>0&255),se(e,a>>>8&255),se(e,a>>>16&255),se(e,a>>>24&255)}}function be(e,u,a){return e.h!==5?!1:(Ht(u,a,e.g.o()),!0)}function rn(e,u,a){return e.h!==5&&e.h!==2?!1:(u=Rt(u,a),e.h==2?sn(e,Lt.prototype.o,u):u.push(e.g.o()),!0)}function hn(e,u,a){return e.h!==0?!1:(Ht(u,a,At(e.g)),!0)}function Te(e,u,a){return e.h!==0?!1:(Ht(u,a,e.g.j()),!0)}function Vn(e,u,a){if(e.h!==2)return!1;var t=e.g.j();e=e.g;var o=e.g;e.g+=t,ne(e),e=e.h;var s;if(en)(s=xn)||(s=xn=new TextDecoder("utf-8",{fatal:!1})),s=s.decode(e.subarray(o,o+t));else{t=o+t;for(var f=[],w=null,T,x,k;o<t;)T=e[o++],128>T?f.push(T):224>T?o>=t?f.push(65533):(x=e[o++],194>T||(x&192)!==128?(o--,f.push(65533)):f.push((T&31)<<6|x&63)):240>T?o>=t-1?f.push(65533):(x=e[o++],(x&192)!==128||T===224&&160>x||T===237&&160<=x||((s=e[o++])&192)!==128?(o--,f.push(65533)):f.push((T&15)<<12|(x&63)<<6|s&63)):244>=T?o>=t-2?f.push(65533):(x=e[o++],(x&192)!==128||(T<<28)+(x-144)>>30!==0||((s=e[o++])&192)!==128||((k=e[o++])&192)!==128?(o--,f.push(65533)):(T=(T&7)<<18|(x&63)<<12|(s&63)<<6|k&63,T-=65536,f.push((T>>10&1023)+55296,(T&1023)+56320))):f.push(65533),8192<=f.length&&(w=Zn(w,f),f.length=0);s=Zn(w,f)}return Ht(u,a,s),!0}function Je(e,u,a,t,o){if(e.h!==2)return!1;e=Qe(e,new t,o);var s=s===void 0?!1:s;return u.g||(u.g={}),t=e&&Ne(e),u.g[a]=e,Ht(u,a,t,s),!0}function on(e,u,a,t,o){return e.h!==2?!1:(e=Qe(e,new t,o),De(u,a,e,t,void 0),!0)}function yn(e,u,a){return e.h!==0&&e.h!==2?!1:(u=Rt(u,a),e.h==2?sn(e,Lt.prototype.j,u):u.push(e.g.j()),!0)}function Fn(e,u,a){return e.h!==0?!1:(Ht(u,a,At(e.g)),!0)}function Ke(e){Kt.call(this,e,-1,kn)}var vn;Ft(Ke,Kt),Ke.prototype.getRows=function(){return Jt(this,1)},Ke.prototype.getCols=function(){return Jt(this,2)},Ke.prototype.getPackedDataList=function(){return Ae(this)},Ke.prototype.getLayout=function(){return Oe(this,4,0)};function Yn(e,u){return me(e,u,vn||(vn={1:Te,2:Te,3:rn,4:Fn}))}var kn=[3];function bn(e){Kt.call(this,e)}var Rn;Ft(bn,Kt);function h(e,u){var a=Jt(e,1);if(a!=null&&a!=null){Yt(u.g,8);var t=u.g;if(0<=a)Yt(t,a);else{for(var o=0;9>o;o++)se(t,a&127|128),a>>=7;se(t,1)}}ke(u,e,2),t=Jt(e,3),t!=null&&oe(u,3,Sn(t)),t=Jt(e,4),t!=null&&oe(u,4,Sn(t)),ze(e,u)}function b(e,u){return me(e,u,Rn||(Rn={1:Te,2:be,3:Vn,4:Vn}))}function Z(e){Kt.call(this,e,-1,et)}var Y;Ft(Z,Kt),Z.prototype.addClassification=function(e,u){return De(this,1,e,bn,u),this};function _(e,u){return me(e,u,Y||(Y={1:[on,bn,b]}))}var et=[1];function K(e){Kt.call(this,e)}var tt;Ft(K,Kt);function st(e,u){ke(u,e,1),ke(u,e,2),ke(u,e,3),ke(u,e,4),ke(u,e,5),ze(e,u)}function mt(e,u){return me(e,u,tt||(tt={1:be,2:be,3:be,4:be,5:be}))}function It(e){Kt.call(this,e,-1,Wt)}var Gt;Ft(It,Kt);function jt(e,u){return me(e,u,Gt||(Gt={1:[on,K,mt]}))}var Wt=[1];function Zt(e){Kt.call(this,e)}var Tt;Ft(Zt,Kt);function Nt(e,u){ke(u,e,1),ke(u,e,2),ke(u,e,3),ke(u,e,4),ke(u,e,5);var a=Jt(e,6);if(a!=null&&a!=null){Yt(u.g,48);var t=u.g,o=a;a=0>o,o=Math.abs(o);var s=o>>>0;for(o=Math.floor((o-s)/4294967296),o>>>=0,a&&(o=~o>>>0,s=(~s>>>0)+1,4294967295<s&&(s=0,o++,4294967295<o&&(o=0))),Ut=s,re=o,a=Ut,s=re;0<s||127<a;)se(t,a&127|128),a=(a>>>7|s<<25)>>>0,s>>>=7;se(t,a)}ze(e,u)}function Pt(e,u){return me(e,u,Tt||(Tt={1:be,2:be,3:be,4:be,5:be,6:hn}))}function Dt(e){Kt.call(this,e,-1,c)}var qt;Ft(Dt,Kt),Dt.prototype.getVertexType=function(){return Oe(this,1,0)},Dt.prototype.getPrimitiveType=function(){return Oe(this,2,0)},Dt.prototype.getVertexBufferList=function(){return Ae(this)},Dt.prototype.getIndexBufferList=function(){return Rt(this,4)};function Ze(e,u){return me(e,u,qt||(qt={1:Fn,2:Fn,3:rn,4:yn}))}var c=[3,4];function d(e){Kt.call(this,e)}var m;Ft(d,Kt),d.prototype.getMesh=function(){return Ee(this,Dt,1)},d.prototype.getPoseTransformMatrix=function(){return Ee(this,Ke,2)};function F(e,u){return me(e,u,m||(m={1:[Je,Dt,Ze],2:[Je,Ke,Yn]}))}var j=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],B=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],C=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(dt(j),dt(B),dt(C),dt(D),dt(rt),dt(r));function X(e,u,a){if(a=e.createShader(a===0?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(a,u),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
39
38
|
|
|
40
|
-
`+e.getShaderInfoLog(a));return a}function
|
|
39
|
+
`+e.getShaderInfoLog(a));return a}function V(e){return an(e,bn,1).map(function(u){return{index:Oe(u,1,0),score:Ve(u,2),label:Jt(u,3)!=null?Oe(u,3,""):void 0,displayName:Jt(u,4)!=null?Oe(u,4,""):void 0}})}function E(e){return{x:Ve(e,1),y:Ve(e,2),z:Ve(e,3),visibility:Jt(e,4)!=null?Ve(e,4):void 0}}function H(e){return an(En(e,It,jt),K,1).map(E)}function J(e,u){this.h=e,this.g=u,this.l=0}function q(e,u,a){return M(e,u),typeof e.g.canvas.transferToImageBitmap=="function"?Promise.resolve(e.g.canvas.transferToImageBitmap()):a?Promise.resolve(e.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(e.g.canvas):(e.i===void 0&&(e.i=document.createElement("canvas")),new Promise(function(t){e.i.height=e.g.canvas.height,e.i.width=e.g.canvas.width,e.i.getContext("2d",{}).drawImage(e.g.canvas,0,0,e.g.canvas.width,e.g.canvas.height),t(e.i)}))}function M(e,u){var a=e.g;if(e.m===void 0){var t=X(a,`
|
|
41
40
|
attribute vec2 aVertex;
|
|
42
41
|
attribute vec2 aTex;
|
|
43
42
|
varying vec2 vTex;
|
|
44
43
|
void main(void) {
|
|
45
44
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
46
45
|
vTex = aTex;
|
|
47
|
-
}`,0),o=
|
|
46
|
+
}`,0),o=X(a,`
|
|
48
47
|
precision mediump float;
|
|
49
48
|
varying vec2 vTex;
|
|
50
49
|
uniform sampler2D sampler0;
|
|
@@ -52,16 +51,16 @@
|
|
|
52
51
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
53
52
|
}`,1),s=a.createProgram();if(a.attachShader(s,t),a.attachShader(s,o),a.linkProgram(s),!a.getProgramParameter(s,a.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
54
53
|
|
|
55
|
-
`+a.getProgramInfoLog(s));t=e.m=s,a.useProgram(t),o=a.getUniformLocation(t,"sampler0"),e.j={I:a.getAttribLocation(t,"aVertex"),H:a.getAttribLocation(t,"aTex"),ca:o},e.s=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.enableVertexAttribArray(e.j.I),a.vertexAttribPointer(e.j.I,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),e.o=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.enableVertexAttribArray(e.j.H),a.vertexAttribPointer(e.j.H,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),a.uniform1i(o,0)}t=e.j,a.useProgram(e.m),a.canvas.width=u.width,a.canvas.height=u.height,a.viewport(0,0,u.width,u.height),a.activeTexture(a.TEXTURE0),e.h.bindTexture2d(u.glName),a.enableVertexAttribArray(t.I),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.vertexAttribPointer(t.I,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.vertexAttribPointer(t.H,2,a.FLOAT,!1,0,0),a.bindFramebuffer(a.DRAW_FRAMEBUFFER?a.DRAW_FRAMEBUFFER:a.FRAMEBUFFER,null),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),a.colorMask(!0,!0,!0,!0),a.drawArrays(a.TRIANGLE_FAN,0,4),a.disableVertexAttribArray(t.I),a.disableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}function lt(e){this.g=e}var pt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Ft(e,u){return u+e}function yt(e,u){window[e]=u}function it(e){var u=document.createElement("script");return u.setAttribute("src",e),u.setAttribute("crossorigin","anonymous"),new Promise(function(a){u.addEventListener("load",function(){a()},!1),u.addEventListener("error",function(){a()},!1),document.body.appendChild(u)})}function gt(){return ht(function(e){switch(e.g){case 1:return e.m=2,$(e,WebAssembly.instantiate(pt),4);case 4:e.g=3,e.m=0;break;case 2:return e.m=0,e.j=null,e.return(!1);case 3:return e.return(!0)}})}function vt(e){if(this.g=e,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=e&&e.locateFile||Ft,typeof window=="object")var u=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")u=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=u,e.options){u=C(Object.keys(e.options));for(var a=u.next();!a.done;a=u.next()){a=a.value;var t=e.options[a].default;t!==void 0&&(this.j[a]=typeof t=="function"?t():t)}}}V=vt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Gt(e){var u,a,t,o,s,h,R,T,I,Y,K;return ht(function(B){switch(B.g){case 1:return e.R?(u=e.g.files===void 0?[]:typeof e.g.files=="function"?e.g.files(e.j):e.g.files,$(B,gt(),2)):B.return();case 2:if(a=B.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:e.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:e.locateFile}),h=u.filter(function(M){return M.data!==void 0}),R=u.filter(function(M){return M.data===void 0}),T=Promise.all(h.map(function(M){var nt=g(e,M.url);if(M.path!==void 0){var ot=M.path;nt=nt.then(function(ut){return e.overrideFile(ot,ut),Promise.resolve(ut)})}return nt})),I=Promise.all(R.map(function(M){return M.simd===void 0||M.simd&&a||!M.simd&&!a?it(e.locateFile(M.url,e.S)):Promise.resolve()})).then(function(){var M,nt,ot;return ht(function(ut){if(ut.g==1)return M=window.createMediapipeSolutionsWasm,nt=window.createMediapipeSolutionsPackedAssets,ot=e,$(ut,M(nt),2);ot.h=ut.h,ut.g=0})}),Y=function(){return ht(function(M){return e.g.graph&&e.g.graph.url?M=$(M,g(e,e.g.graph.url),0):(M.g=0,M=void 0),M})}(),$(B,Promise.all([I,T,Y]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return t=u.filter(function(M){return M.simd===void 0||M.simd&&a||!M.simd&&!a}).map(function(M){return e.locateFile(M.url,e.S)}),importScripts.apply(null,dt(t)),o=e,$(B,createMediapipeSolutionsWasm(Module),6);case 6:o.h=B.h,e.l=new OffscreenCanvas(1,1),e.h.canvas=e.l,s=e.h.GL.createContext(e.l,{antialias:!1,alpha:!1,aa:typeof WebGL2RenderingContext!="undefined"?2:1}),e.h.GL.makeContextCurrent(s),B.g=4;break;case 7:if(e.l=document.createElement("canvas"),K=e.l.getContext("webgl2",{}),!K&&(K=e.l.getContext("webgl",{}),!K))return alert("Failed to create WebGL canvas context when passing video frame."),B.return();e.D=K,e.h.canvas=e.l,e.h.createContext(e.l,!0,!0,{});case 4:e.i=new e.h.SolutionWasm,e.R=!1,B.g=0}})}function Rt(e){var u,a,t,o,s,h,R,T;return ht(function(I){if(I.g==1){if(e.g.graph&&e.g.graph.url&&e.P===e.g.graph.url)return I.return();if(e.o=!0,!e.g.graph||!e.g.graph.url){I.g=2;return}return e.P=e.g.graph.url,$(I,g(e,e.g.graph.url),3)}for(I.g!=2&&(u=I.h,e.i.loadGraph(u)),a=C(Object.keys(e.B)),t=a.next();!t.done;t=a.next())o=t.value,e.i.overrideFile(o,e.B[o]);if(e.B={},e.g.listeners)for(s=C(e.g.listeners),h=s.next();!h.done;h=s.next())R=h.value,N(e,R);T=e.j,e.j={},e.setOptions(T),I.g=0})}V.reset=function(){var e=this;return ht(function(u){e.i&&(e.i.reset(),e.m={},e.s={}),u.g=0})},V.setOptions=function(e,u){var a=this;if(u=u||this.g.options){for(var t=[],o=[],s={},h=C(Object.keys(e)),R=h.next();!R.done;s={K:s.K,L:s.L},R=h.next()){var T=R.value;T in this.j&&this.j[T]===e[T]||(this.j[T]=e[T],R=u[T],R!==void 0&&(R.onChange&&(s.K=R.onChange,s.L=e[T],t.push(function(I){return function(){var Y;return ht(function(K){if(K.g==1)return $(K,I.K(I.L),2);Y=K.h,Y===!0&&(a.o=!0),K.g=0})}}(s))),R.graphOptionXref&&(T={valueNumber:R.type===1?e[T]:0,valueBoolean:R.type===0?e[T]:!1,valueString:R.type===2?e[T]:""},R=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),R.graphOptionXref),T),o.push(R))))}(t.length!==0||o.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(o),this.v=(this.v===void 0?[]:this.v).concat(t))}};function i(e){var u,a,t,o,s,h,R;return ht(function(T){switch(T.g){case 1:if(!e.o)return T.return();if(!e.v){T.g=2;break}u=C(e.v),a=u.next();case 3:if(a.done){T.g=5;break}return t=a.value,$(T,t(),4);case 4:a=u.next(),T.g=3;break;case 5:e.v=void 0;case 2:if(e.A){for(o=new e.h.GraphOptionChangeRequestList,s=C(e.A),h=s.next();!h.done;h=s.next())R=h.value,o.push_back(R);e.i.changeOptions(o),o.delete(),e.A=void 0}e.o=!1,T.g=0}})}V.initialize=function(){var e=this;return ht(function(u){return u.g==1?$(u,Gt(e),2):u.g!=3?$(u,Rt(e),3):$(u,i(e),0)})};function g(e,u){var a,t;return ht(function(o){return u in e.F?o.return(e.F[u]):(a=e.locateFile(u,""),t=fetch(a).then(function(s){return s.arrayBuffer()}),e.F[u]=t,o.return(t))})}V.overrideFile=function(e,u){this.i?this.i.overrideFile(e,u):this.B[e]=u},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(e,u){var a=this,t,o,s,h,R,T,I,Y,K;return ht(function(B){switch(B.g){case 1:return a.g.inputs?(t=1e3*(u==null?performance.now():u),$(B,a.C,2)):B.return();case 2:return $(B,a.initialize(),3);case 3:for(o=new a.h.PacketDataList,s=C(Object.keys(e)),h=s.next();!h.done;h=s.next())if(R=h.value,T=a.g.inputs[R]){t:{var M=e[R];switch(T.type){case"video":var nt=a.m[T.stream];if(nt||(nt=new k(a.h,a.D),a.m[T.stream]=nt),nt.l===0&&(nt.l=nt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&M instanceof HTMLVideoElement)var ot=M.videoWidth,ut=M.videoHeight;else typeof HTMLImageElement!="undefined"&&M instanceof HTMLImageElement?(ot=M.naturalWidth,ut=M.naturalHeight):(ot=M.width,ut=M.height);ut={glName:nt.l,width:ot,height:ut},ot=nt.g,ot.canvas.width=ut.width,ot.canvas.height=ut.height,ot.activeTexture(ot.TEXTURE0),nt.h.bindTexture2d(nt.l),ot.texImage2D(ot.TEXTURE_2D,0,ot.RGBA,ot.RGBA,ot.UNSIGNED_BYTE,M),nt.h.bindTexture2d(0),nt=ut;break t;case"detections":for(nt=a.m[T.stream],nt||(nt=new lt(a.h),a.m[T.stream]=nt),nt.data||(nt.data=new nt.g.DetectionListData),nt.data.reset(M.length),ut=0;ut<M.length;++ut){ot=M[ut];var ft=nt.data,at=ft.setBoundingBox,Et=ut,_t=ot.T,Pt=new Zt;if(Jt(Pt,1,_t.X),Jt(Pt,2,_t.Y),Jt(Pt,3,_t.height),Jt(Pt,4,_t.width),Jt(Pt,5,_t.rotation),Jt(Pt,6,_t.W),_t=Ue(Pt,Nt),at.call(ft,Et,_t),ot.O)for(ft=0;ft<ot.O.length;++ft){Pt=ot.O[ft];var Re=!!Pt.visibility;at=nt.data,Et=at.addNormalizedLandmark,_t=ut,Pt=Object.assign(Object.assign({},Pt),{visibility:Re?Pt.visibility:0}),Re=new O,Jt(Re,1,Pt.x),Jt(Re,2,Pt.y),Jt(Re,3,Pt.z),Pt.visibility&&Jt(Re,4,Pt.visibility),Pt=Ue(Re,st),Et.call(at,_t,Pt)}if(ot.M)for(ft=0;ft<ot.M.length;++ft)at=nt.data,Et=at.addClassification,_t=ut,Pt=ot.M[ft],Re=new vn,Jt(Re,2,Pt.score),Pt.index&&Jt(Re,1,Pt.index),Pt.label&&Jt(Re,3,Pt.label),Pt.displayName&&Jt(Re,4,Pt.displayName),Pt=Ue(Re,f),Et.call(at,_t,Pt)}nt=nt.data;break t;default:nt={}}}switch(I=nt,Y=T.stream,T.type){case"video":o.pushTexture2d(Object.assign(Object.assign({},I),{stream:Y,timestamp:t}));break;case"detections":K=I,K.stream=Y,K.timestamp=t,o.pushDetectionList(K);break;default:throw Error("Unknown input config type: '"+T.type+"'")}}return a.i.send(o),$(B,a.C,4);case 4:o.delete(),B.g=0}})};function X(e,u,a){var t,o,s,h,R,T,I,Y,K,B,M,nt,ot,ut;return ht(function(ft){switch(ft.g){case 1:if(!a)return ft.return(u);for(t={},o=0,s=C(Object.keys(a)),h=s.next();!h.done;h=s.next())R=h.value,T=a[R],typeof T!="string"&&T.type==="texture"&&u[T.stream]!==void 0&&++o;1<o&&(e.G=!1),I=C(Object.keys(a)),h=I.next();case 2:if(h.done){ft.g=4;break}if(Y=h.value,K=a[Y],typeof K=="string")return ot=t,ut=Y,$(ft,w(e,Y,u[K]),14);if(B=u[K.stream],K.type==="detection_list"){if(B){for(var at=B.getRectList(),Et=B.getLandmarksList(),_t=B.getClassificationsList(),Pt=[],Re=0;Re<at.size();++Re){var ln=En(at.get(Re),Zt,Bt);ln={T:{X:Se(ln,1),Y:Se(ln,2),height:Se(ln,3),width:Se(ln,4),rotation:Se(ln,5,0),W:Ke(ln,6,0)},O:J(Et.get(Re)),M:S(En(_t.get(Re),Z,_))},Pt.push(ln)}at=Pt}else at=[];t[Y]=at,ft.g=7;break}if(K.type==="proto_list"){if(B){for(at=Array(B.size()),Et=0;Et<B.size();Et++)at[Et]=B.get(Et);B.delete()}else at=[];t[Y]=at,ft.g=7;break}if(B===void 0){ft.g=3;break}if(K.type==="float_list"){t[Y]=B,ft.g=7;break}if(K.type==="proto"){t[Y]=B,ft.g=7;break}if(K.type!=="texture")throw Error("Unknown output config type: '"+K.type+"'");return M=e.s[Y],M||(M=new k(e.h,e.D),e.s[Y]=M),$(ft,q(M,B,e.G),13);case 13:nt=ft.h,t[Y]=nt;case 7:K.transform&&t[Y]&&(t[Y]=K.transform(t[Y])),ft.g=3;break;case 14:ot[ut]=ft.h;case 3:h=I.next(),ft.g=2;break;case 4:return ft.return(t)}})}function w(e,u,a){var t;return ht(function(o){return typeof a=="number"||a instanceof Uint8Array||a instanceof e.h.Uint8BlobList?o.return(a):a instanceof e.h.Texture2dDataOut?(t=e.s[u],t||(t=new k(e.h,e.D),e.s[u]=t),o.return(q(t,a,e.G))):o.return(void 0)})}function N(e,u){for(var a=u.name||"$",t=[].concat(dt(u.wants)),o=new e.h.StringList,s=C(u.wants),h=s.next();!h.done;h=s.next())o.push_back(h.value);s=e.h.PacketListener.implement({onResults:function(R){for(var T={},I=0;I<u.wants.length;++I)T[t[I]]=R.get(I);var Y=e.listeners[a];Y&&(e.C=X(e,T,u.outs).then(function(K){K=Y(K);for(var B=0;B<u.wants.length;++B){var M=T[t[B]];typeof M=="object"&&M.hasOwnProperty&&M.hasOwnProperty("delete")&&M.delete()}K&&(e.C=K)}))}}),e.i.attachMultiListener(o,s),o.delete()}V.onResults=function(e,u){this.listeners[u||"$"]=e},St("Solution",vt),St("OptionType",{BOOL:0,NUMBER:1,Z:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(e){return e.map(l)}function l(e){e=En(e,d,x);var u=e.getMesh();if(!u)return e;var a=new Float32Array(u.getVertexBufferList());u.getVertexBufferList=function(){return a};var t=new Uint32Array(u.getIndexBufferList());return u.getIndexBufferList=function(){return t},e}function p(e){var u=this;e=e||{},this.g=new vt({locateFile:e.locateFile,files:[{url:"holistic_solution_packed_assets_loader.js"},{simd:!1,url:"holistic_solution_wasm_bin.js"},{simd:!0,url:"holistic_solution_simd_wasm_bin.js"}],graph:{url:"holistic.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:"left_hand_landmarks right_hand_landmarks face_landmarks pose_landmarks world_landmarks segmentation_mask image_transformed multi_face_geometry".split(" "),outs:{image:{type:"texture",stream:"image_transformed"},leftHandLandmarks:{type:"proto",stream:"left_hand_landmarks",transform:J},rightHandLandmarks:{type:"proto",stream:"right_hand_landmarks",transform:J},faceLandmarks:{type:"proto",stream:"face_landmarks",transform:J},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:J},ea:{type:"proto",stream:"world_landmarks",transform:J},segmentationMask:{type:"texture",stream:"segmentation_mask"},multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:n}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,default:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(a){var t,o,s,h;return ht(function(R){if(R.g==1){switch(t="",a){case 1:t="pose_landmark_full.tflite";break;case 2:t="pose_landmark_heavy.tflite";break;default:t="pose_landmark_lite.tflite"}return o="third_party/mediapipe/modules/pose_landmark/"+t,s=u.g.locateFile(t,""),$(R,fetch(s),3)}return R.g!=2?$(R,R.h.arrayBuffer(),2):(h=R.h,u.g.overrideFile(o,h),$(R,u.g.reset(),0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},refineFaceLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineFaceLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}})}V=p.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(e){this.g.onResults(e)},V.initialize=function(){var e=this;return ht(function(u){return $(u,e.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(e){var u=this;return ht(function(a){return $(a,u.g.send(e),0)})},V.setOptions=function(e){this.g.setOptions(e)},St("Holistic",p),St("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),St("FACEMESH_LIPS",j),St("FACEMESH_LEFT_EYE",P),St("FACEMESH_LEFT_EYEBROW",H),St("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),St("FACEMESH_RIGHT_EYE",D),St("FACEMESH_RIGHT_EYEBROW",rt),St("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),St("FACEMESH_FACE_OVAL",r),St("FACEMESH_CONTOURS",y),St("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),St("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),St("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),St("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),St("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),St("matrixDataToMatrix",function(e){for(var u=e.getCols(),a=e.getRows(),t=e.getPackedDataList(),o=[],s=0;s<a;s++)o.push(Array(u));for(s=0;s<a;s++)for(var h=0;h<u;h++){var R=e.getLayout()===1?s*u+h:h*a+s;o[s][h]=t[R]}return o}),St("VERSION","0.5.1635989137")}).call(Ir);const Fr={};(function(){var V;function v(n){var l=0;return function(){return l<n.length?{done:!1,value:n[l++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(n,l,p){return n==Array.prototype||n==Object.prototype||(n[l]=p.value),n};function L(n){n=[typeof globalThis=="object"&&globalThis,n,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var l=0;l<n.length;++l){var p=n[l];if(p&&p.Math==Math)return p}throw Error("Cannot find global object")}var F=L(this);function A(n,l){if(l)t:{var p=F;n=n.split(".");for(var e=0;e<n.length-1;e++){var u=n[e];if(!(u in p))break t;p=p[u]}n=n[n.length-1],e=p[n],l=l(e),l!=e&&l!=null&&W(p,n,{configurable:!0,writable:!0,value:l})}}A("Symbol",function(n){function l(a){if(this instanceof l)throw new TypeError("Symbol is not a constructor");return new p(e+(a||"")+"_"+u++,a)}function p(a,t){this.g=a,W(this,"description",{configurable:!0,writable:!0,value:t})}if(n)return n;p.prototype.toString=function(){return this.g};var e="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",u=0;return l}),A("Symbol.iterator",function(n){if(n)return n;n=Symbol("Symbol.iterator");for(var l="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),p=0;p<l.length;p++){var e=F[l[p]];typeof e=="function"&&typeof e.prototype[n]!="function"&&W(e.prototype,n,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return n});function Q(n){return n={next:n},n[Symbol.iterator]=function(){return this},n}function C(n){var l=typeof Symbol!="undefined"&&Symbol.iterator&&n[Symbol.iterator];return l?l.call(n):{next:v(n)}}function dt(n){if(!(n instanceof Array)){n=C(n);for(var l,p=[];!(l=n.next()).done;)p.push(l.value);n=p}return n}var _e=typeof Object.create=="function"?Object.create:function(n){function l(){}return l.prototype=n,new l},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(n,l){if(n.__proto__=l,n.__proto__!==l)throw new TypeError(n+" is not extensible");return n}:null}var je=ct;function xt(n,l){if(n.prototype=_e(l.prototype),n.prototype.constructor=n,je)je(n,l);else for(var p in l)if(p!="prototype")if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(l,p);e&&Object.defineProperty(n,p,e)}else n[p]=l[p];n.na=l.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function de(n){if(n.l)throw new TypeError("Generator is already running");n.l=!0}ue.prototype.s=function(n){this.h=n};function he(n,l){n.j={da:l,ea:!0},n.g=n.o||n.u}ue.prototype.return=function(n){this.j={return:n},this.g=this.u};function $(n,l,p){return n.g=p,{value:l}}function In(n){this.g=new ue,this.h=n}function jn(n,l){de(n.g);var p=n.g.i;return p?He(n,"return"in p?p.return:function(e){return{value:e,done:!0}},l,n.g.return):(n.g.return(l),ee(n))}function He(n,l,p,e){try{var u=l.call(n.g.i,p);if(!(u instanceof Object))throw new TypeError("Iterator result "+u+" is not an object");if(!u.done)return n.g.l=!1,u;var a=u.value}catch(t){return n.g.i=null,he(n.g,t),ee(n)}return n.g.i=null,e.call(n.g,a),ee(n)}function ee(n){for(;n.g.g;)try{var l=n.h(n.g);if(l)return n.g.l=!1,{value:l.value,done:!1}}catch(p){n.g.h=void 0,he(n.g,p)}if(n.g.l=!1,n.g.j){if(l=n.g.j,n.g.j=null,l.ea)throw l.da;return{value:l.return,done:!0}}return{value:void 0,done:!0}}function Hn(n){this.next=function(l){return de(n.g),n.g.i?l=He(n,n.g.i.next,l,n.g.s):(n.g.s(l),l=ee(n)),l},this.throw=function(l){return de(n.g),n.g.i?l=He(n,n.g.i.throw,l,n.g.s):(he(n.g,l),l=ee(n)),l},this.return=function(l){return jn(n,l)},this[Symbol.iterator]=function(){return this}}function te(n){function l(e){return n.next(e)}function p(e){return n.throw(e)}return new Promise(function(e,u){function a(t){t.done?e(t.value):Promise.resolve(t.value).then(l,p).then(a,u)}a(n.next())})}function ht(n){return te(new Hn(new In(n)))}A("Promise",function(n){function l(t){this.h=0,this.i=void 0,this.g=[],this.s=!1;var o=this.j();try{t(o.resolve,o.reject)}catch(s){o.reject(s)}}function p(){this.g=null}function e(t){return t instanceof l?t:new l(function(o){o(t)})}if(n)return n;p.prototype.h=function(t){if(this.g==null){this.g=[];var o=this;this.i(function(){o.l()})}this.g.push(t)};var u=F.setTimeout;p.prototype.i=function(t){u(t,0)},p.prototype.l=function(){for(;this.g&&this.g.length;){var t=this.g;this.g=[];for(var o=0;o<t.length;++o){var s=t[o];t[o]=null;try{s()}catch(h){this.j(h)}}}this.g=null},p.prototype.j=function(t){this.i(function(){throw t})},l.prototype.j=function(){function t(h){return function(R){s||(s=!0,h.call(o,R))}}var o=this,s=!1;return{resolve:t(this.D),reject:t(this.l)}},l.prototype.D=function(t){if(t===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(t instanceof l)this.H(t);else{t:switch(typeof t){case"object":var o=t!=null;break t;case"function":o=!0;break t;default:o=!1}o?this.A(t):this.o(t)}},l.prototype.A=function(t){var o=void 0;try{o=t.then}catch(s){this.l(s);return}typeof o=="function"?this.I(o,t):this.o(t)},l.prototype.l=function(t){this.u(2,t)},l.prototype.o=function(t){this.u(1,t)},l.prototype.u=function(t,o){if(this.h!=0)throw Error("Cannot settle("+t+", "+o+"): Promise already settled in state"+this.h);this.h=t,this.i=o,this.h===2&&this.G(),this.B()},l.prototype.G=function(){var t=this;u(function(){if(t.C()){var o=F.console;typeof o!="undefined"&&o.error(t.i)}},1)},l.prototype.C=function(){if(this.s)return!1;var t=F.CustomEvent,o=F.Event,s=F.dispatchEvent;return typeof s=="undefined"?!0:(typeof t=="function"?t=new t("unhandledrejection",{cancelable:!0}):typeof o=="function"?t=new o("unhandledrejection",{cancelable:!0}):(t=F.document.createEvent("CustomEvent"),t.initCustomEvent("unhandledrejection",!1,!0,t)),t.promise=this,t.reason=this.i,s(t))},l.prototype.B=function(){if(this.g!=null){for(var t=0;t<this.g.length;++t)a.h(this.g[t]);this.g=null}};var a=new p;return l.prototype.H=function(t){var o=this.j();t.M(o.resolve,o.reject)},l.prototype.I=function(t,o){var s=this.j();try{t.call(o,s.resolve,s.reject)}catch(h){s.reject(h)}},l.prototype.then=function(t,o){function s(I,Y){return typeof I=="function"?function(K){try{h(I(K))}catch(B){R(B)}}:Y}var h,R,T=new l(function(I,Y){h=I,R=Y});return this.M(s(t,h),s(o,R)),T},l.prototype.catch=function(t){return this.then(void 0,t)},l.prototype.M=function(t,o){function s(){switch(h.h){case 1:t(h.i);break;case 2:o(h.i);break;default:throw Error("Unexpected state: "+h.h)}}var h=this;this.g==null?a.h(s):this.g.push(s),this.s=!0},l.resolve=e,l.reject=function(t){return new l(function(o,s){s(t)})},l.race=function(t){return new l(function(o,s){for(var h=C(t),R=h.next();!R.done;R=h.next())e(R.value).M(o,s)})},l.all=function(t){var o=C(t),s=o.next();return s.done?e([]):new l(function(h,R){function T(K){return function(B){I[K]=B,Y--,Y==0&&h(I)}}var I=[],Y=0;do I.push(void 0),Y++,e(s.value).M(T(I.length-1),R),s=o.next();while(!s.done)})},l});function Jn(n,l){n instanceof String&&(n+="");var p=0,e=!1,u={next:function(){if(!e&&p<n.length){var a=p++;return{value:l(a,n[a]),done:!1}}return e=!0,{done:!0,value:void 0}}};return u[Symbol.iterator]=function(){return u},u}var Cn=typeof Object.assign=="function"?Object.assign:function(n,l){for(var p=1;p<arguments.length;p++){var e=arguments[p];if(e)for(var u in e)Object.prototype.hasOwnProperty.call(e,u)&&(n[u]=e[u])}return n};A("Object.assign",function(n){return n||Cn}),A("Object.is",function(n){return n||function(l,p){return l===p?l!==0||1/l===1/p:l!==l&&p!==p}}),A("Array.prototype.includes",function(n){return n||function(l,p){var e=this;e instanceof String&&(e=String(e));var u=e.length;for(p=p||0,0>p&&(p=Math.max(p+u,0));p<u;p++){var a=e[p];if(a===l||Object.is(a,l))return!0}return!1}}),A("String.prototype.includes",function(n){return n||function(l,p){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(l instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(l,p||0)!==-1}}),A("Array.prototype.keys",function(n){return n||function(){return Jn(this,function(l){return l})}});var ye=this||self;function St(n,l){n=n.split(".");var p=ye;n[0]in p||typeof p.execScript=="undefined"||p.execScript("var "+n[0]);for(var e;n.length&&(e=n.shift());)n.length||l===void 0?p[e]&&p[e]!==Object.prototype[e]?p=p[e]:p=p[e]={}:p[e]=l}function We(){throw Error("Invalid UTF8")}function tn(n,l){return l=String.fromCharCode.apply(null,l),n==null?l:n+l}var hn,Wn=typeof TextDecoder!="undefined",bn,Fn=typeof TextEncoder!="undefined",en={},un=null;function Ln(n){var l;l===void 0&&(l=0),nn(),l=en[l];for(var p=Array(Math.floor(n.length/3)),e=l[64]||"",u=0,a=0;u<n.length-2;u+=3){var t=n[u],o=n[u+1],s=n[u+2],h=l[t>>2];t=l[(t&3)<<4|o>>4],o=l[(o&15)<<2|s>>6],s=l[s&63],p[a++]=h+t+o+s}switch(h=0,s=e,n.length-u){case 2:h=n[u+1],s=l[(h&15)<<2]||e;case 1:n=n[u],p[a]=l[n>>2]+l[(n&3)<<4|h>>4]+s+e}return p.join("")}function Vn(n){var l=n.length,p=3*l/4;p%3?p=Math.floor(p):"=.".indexOf(n[l-1])!=-1&&(p="=.".indexOf(n[l-2])!=-1?p-2:p-1);var e=new Uint8Array(p),u=0;return dn(n,function(a){e[u++]=a}),u!==p?e.subarray(0,u):e}function dn(n,l){function p(s){for(;e<n.length;){var h=n.charAt(e++),R=un[h];if(R!=null)return R;if(!/^[\s\xa0]*$/.test(h))throw Error("Unknown base64 encoding at char: "+h)}return s}nn();for(var e=0;;){var u=p(-1),a=p(0),t=p(64),o=p(64);if(o===64&&u===-1)break;l(u<<2|a>>4),t!=64&&(l(a<<4&240|t>>2),o!=64&&l(t<<6&192|o))}}function nn(){if(!un){un={};for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),l=["+/=","+/","-_=","-_.","-_"],p=0;5>p;p++){var e=n.concat(l[p].split(""));en[p]=e;for(var u=0;u<e.length;u++){var a=e[u];un[a]===void 0&&(un[a]=u)}}}}var Zn=typeof Uint8Array=="function";function pn(n){return Zn&&n!=null&&n instanceof Uint8Array}var ce;function ve(n){if(this.L=n,n!==null&&n.length===0)throw Error("ByteString should be constructed with non-empty values")}var Pe=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function ze(n,l){if(n.constructor===Uint8Array)return n;if(n.constructor===ArrayBuffer)return new Uint8Array(n);if(n.constructor===Array)return new Uint8Array(n);if(n.constructor===String)return Vn(n);if(n.constructor===ve)return!l&&(l=n.L)&&l.constructor===Uint8Array?l:(l=n.L,l=l==null||pn(l)?l:typeof l=="string"?Vn(l):null,(n=n.L=l)?new Uint8Array(n):ce||(ce=new Uint8Array(0)));if(n instanceof Uint8Array)return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Fe(n,l){return Error("Invalid wire type: "+n+" (at position "+l+")")}function Ct(){return Error("Failed to read varint, encoding is invalid.")}function re(n,l){l=l===void 0?{}:l,l=l.v===void 0?!1:l.v,this.h=null,this.g=this.i=this.j=0,this.v=l,n&&Ve(this,n)}function Ve(n,l){n.h=ze(l,n.v),n.j=0,n.i=n.h.length,n.g=n.j}re.prototype.reset=function(){this.g=this.j};function Lt(n){if(n.g>n.i)throw Error("Tried to read past the end of the data "+n.g+" > "+n.i)}function pe(n){var l=n.h,p=l[n.g],e=p&127;if(128>p)return n.g+=1,Lt(n),e;if(p=l[n.g+1],e|=(p&127)<<7,128>p)return n.g+=2,Lt(n),e;if(p=l[n.g+2],e|=(p&127)<<14,128>p)return n.g+=3,Lt(n),e;if(p=l[n.g+3],e|=(p&127)<<21,128>p)return n.g+=4,Lt(n),e;if(p=l[n.g+4],n.g+=5,e|=(p&15)<<28,128>p)return Lt(n),e;if(128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++])throw Ct();return Lt(n),e}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var n=this.g;return this.g=[],n};function Ge(n,l){for(;127<l;)n.g.push(l&127|128),l>>>=7;n.g.push(l)}function Be(n){var l={},p=l.W===void 0?!1:l.W;this.l={v:l.v===void 0?!1:l.v},this.W=p,l=this.l,At.length?(p=At.pop(),l&&(p.v=l.v),n&&Ve(p,n),n=p):n=new re(n,l),this.g=n,this.j=this.g.g,this.h=this.i=-1}Be.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(n){var l=n.g;if(l.g==l.i)return!1;n.j=n.g.g;var p=pe(n.g)>>>0;if(l=p>>>3,p&=7,!(0<=p&&5>=p))throw Fe(p,n.j);if(1>l)throw Error("Invalid field number: "+l+" (at position "+n.j+")");return n.i=l,n.h=p,!0}function Ut(n){switch(n.h){case 0:if(n.h!=0)Ut(n);else t:{n=n.g;for(var l=n.g,p=l+10;l<p;)if((n.h[l++]&128)===0){n.g=l,Lt(n);break t}throw Ct()}break;case 1:n=n.g,n.g+=8,Lt(n);break;case 2:n.h!=2?Ut(n):(l=pe(n.g)>>>0,n=n.g,n.g+=l,Lt(n));break;case 5:n=n.g,n.g+=4,Lt(n);break;case 3:l=n.i;do{if(!se(n))throw Error("Unmatched start-group tag: stream EOF");if(n.h==4){if(n.i!=l)throw Error("Unmatched end-group tag");break}Ut(n)}while(1);break;default:throw Fe(n.h,n.j)}}var Le=[];function Je(){this.i=[],this.h=0,this.g=new ne}function ge(n,l){l.length!==0&&(n.i.push(l),n.h+=l.length)}function Rn(n,l){if(l=l.ba){ge(n,n.g.end());for(var p=0;p<l.length;p++)ge(n,l[p])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(n,l){Object.isFrozen(n)||(Qe?n[Qe]|=l:n.N!==void 0?n.N|=l:Object.defineProperties(n,{N:{value:l,configurable:!0,writable:!0,enumerable:!1}}))}function cn(n){var l;return Qe?l=n[Qe]:l=n.N,l==null?0:l}function ie(n){return sn(n,1),n}function Xe(n){return Array.isArray(n)?!!(cn(n)&2):!1}function oe(n){if(!Array.isArray(n))throw Error("cannot mark non-array as immutable");sn(n,2)}function Mt(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)&&n.constructor===Object}var Ce=Object.freeze(ie([]));function Kt(n){if(Xe(n.m))throw Error("Cannot mutate an immutable Message")}var Yt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function gn(n){return{value:n,configurable:!1,writable:!1,enumerable:!1}}function $t(n,l,p){return l===-1?null:l>=n.i?n.g?n.g[l]:void 0:(p===void 0?0:p)&&n.g&&(p=n.g[l],p!=null)?p:n.m[l+n.h]}function Vt(n,l,p,e){e=e===void 0?!1:e,Kt(n),l<n.i&&!e?n.m[l+n.h]=p:(n.g||(n.g=n.m[n.i+n.h]={}))[l]=p}function bt(n,l,p,e){p=p===void 0?!0:p,e=e===void 0?!1:e;var u=$t(n,l,e);return u==null&&(u=Ce),Xe(n.m)?p&&(oe(u),Object.freeze(u)):(u===Ce||Xe(u))&&(u=ie(u.slice()),Vt(n,l,u,e)),u}function zt(n,l,p){return n=$t(n,l),n=n==null?n:+n,n==null?p===void 0?0:p:n}function Ie(n,l,p,e){n.j||(n.j={});var u=Xe(n.m),a=n.j[p];if(!a){e=bt(n,p,!0,e===void 0?!1:e),a=[],u=u||Xe(e);for(var t=0;t<e.length;t++)a[t]=new l(e[t]),u&&oe(a[t].m);u&&(oe(a),Object.freeze(a)),n.j[p]=a}return a}function Ot(n,l,p,e,u){var a=a===void 0?!1:a;return Kt(n),a=Ie(n,p,l,a),p=e||new p,n=bt(n,l),u!=null?(a.splice(u,0,p),n.splice(u,0,p.m)):(a.push(p),n.push(p.m)),p}function Qt(n,l){return n=$t(n,l),n==null?0:n}function xe(n,l){return n=$t(n,l),n==null?"":n}function kt(n){switch(typeof n){case"number":return isFinite(n)?n:String(n);case"object":if(n&&!Array.isArray(n)){if(pn(n))return Ln(n);if(n instanceof ve){var l=n.L;return l=l==null||typeof l=="string"?l:Zn&&l instanceof Uint8Array?Ln(l):null,(n.L=l)||""}}}return n}function Xt(n){var l=Se;return l=l===void 0?Jt:l,Ke(n,l)}function Ae(n,l){if(n!=null){if(Array.isArray(n))n=Ke(n,l);else if(Mt(n)){var p={},e;for(e in n)p[e]=Ae(n[e],l);n=p}else n=l(n);return n}}function Ke(n,l){for(var p=n.slice(),e=0;e<p.length;e++)p[e]=Ae(p[e],l);return Array.isArray(n)&&cn(n)&1&&ie(p),p}function Se(n){return n&&typeof n=="object"&&n.toJSON?n.toJSON():(n=kt(n),Array.isArray(n)?Xt(n):n)}function Jt(n){return pn(n)?new Uint8Array(n):n}function Ee(n,l,p){n||(n=an),an=null;var e=this.constructor.h;n||(n=e?[e]:[]),this.h=(e?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=n;t:{if(e=this.m.length,n=e-1,e&&(e=this.m[n],Mt(e))){this.i=n-this.h,this.g=e;break t}l!==void 0&&-1<l?(this.i=Math.max(l,n+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(p)for(l=0;l<p.length;l++)if(n=p[l],n<this.i)n+=this.h,(e=this.m[n])?Array.isArray(e)&&ie(e):this.m[n]=Ce;else{e=this.g||(this.g=this.m[this.i+this.h]={});var u=e[n];u?Array.isArray(u)&&ie(u):e[n]=Ce}}Ee.prototype.toJSON=function(){return Xt(this.m)},Ee.prototype.toString=function(){return this.m.toString()};var an;function De(){Ee.apply(this,arguments)}if(xt(De,Ee),Yt){var Ne={};Object.defineProperties(De,(Ne[Symbol.hasInstance]=gn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ne))}function Me(n,l,p){if(p){var e={},u;for(u in p){var a=p[u],t=a.ha;t||(e.F=a.la||a.fa.P,a.aa?(e.U=fn(a.aa),t=function(o){return function(s,h,R){return o.F(s,h,R,o.U)}}(e)):a.ca?(e.T=Te(a.X.g,a.ca),t=function(o){return function(s,h,R){return o.F(s,h,R,o.T)}}(e)):t=e.F,a.ha=t),t(l,n,a.X),e={F:e.F,U:e.U,T:e.T}}}Rn(l,n)}var $e=Symbol();function me(n,l,p){return n[$e]||(n[$e]=function(e,u){return l(e,u,p)})}function Ue(n){var l=n[$e];if(!l){var p=f(n);l=function(e,u){return b(e,u,p)},n[$e]=l}return l}function En(n){var l=n.aa;if(l)return Ue(l);if(l=n.ka)return me(n.X.g,l,n.ca)}function Ye(n){var l=En(n),p=n.X,e=n.fa.O;return l?function(u,a){return e(u,a,p,l)}:function(u,a){return e(u,a,p)}}function be(n,l,p,e,u,a){n=n();var t=0;for(n.length&&typeof n[0]!="number"&&(p(l,n[0]),t++);t<n.length;){p=n[t++];for(var o=t+1;o<n.length&&typeof n[o]!="number";)o++;var s=n[t++];switch(o-=t,o){case 0:e(l,p,s);break;case 1:e(l,p,s,n[t++]);break;case 2:u(l,p,s,n[t++],n[t++]);break;case 3:o=n[t++];var h=n[t++],R=n[t++];Array.isArray(R)?u(l,p,s,o,h,R):a(l,p,s,o,h,R);break;case 4:a(l,p,s,n[t++],n[t++],n[t++],n[t++]);break;default:throw Error("unexpected number of binary field arguments: "+o)}}return l}var rn=Symbol();function fn(n){var l=n[rn];if(!l){var p=Oe(n);l=function(e,u){return U(e,u,p)},n[rn]=l}return l}function Te(n,l){var p=n[rn];return p||(p=function(e,u){return Me(e,u,l)},n[rn]=p),p}var Sn=Symbol();function ke(n,l){n.push(l)}function on(n,l,p){n.push(l,p.P)}function mn(n,l,p,e,u){var a=fn(u),t=p.P;n.push(l,function(o,s,h){return t(o,s,h,e,a)})}function xn(n,l,p,e,u,a){var t=Te(e,a),o=p.P;n.push(l,function(s,h,R){return o(s,h,R,e,t)})}function Oe(n){var l=n[Sn];return l||be(n,n[Sn]=[],ke,on,mn,xn)}var yn=Symbol();function Un(n,l){n[0]=l}function Yn(n,l,p,e){var u=p.O;n[l]=e?function(a,t,o){return u(a,t,o,e)}:u}function vn(n,l,p,e,u,a){var t=p.O,o=Ue(u);n[l]=function(s,h,R){return t(s,h,R,e,o,a)}}function Gn(n,l,p,e,u,a,t){var o=p.O,s=me(e,u,a);n[l]=function(h,R,T){return o(h,R,T,e,s,t)}}function f(n){var l=n[yn];return l||be(n,n[yn]={},Un,Yn,vn,Gn)}function b(n,l,p){for(;se(l)&&l.h!=4;){var e=l.i,u=p[e];if(!u){var a=p[0];a&&(a=a[e])&&(u=p[e]=Ye(a))}if((!u||!u(l,n,e))&&(u=l,e=n,a=u.j,Ut(u),!u.W)){var t=u.g.h;u=u.g.g,u=a===u?ce||(ce=new Uint8Array(0)):Pe?t.slice(a,u):new Uint8Array(t.subarray(a,u)),(a=e.ba)?a.push(u):e.ba=[u]}}return n}function Z(n,l,p){if(Le.length){var e=Le.pop();n&&(Ve(e.g,n),e.i=-1,e.h=-1),n=e}else n=new Be(n);try{return b(new l,n,f(p))}finally{l=n.g,l.h=null,l.j=0,l.i=0,l.g=0,l.v=!1,n.i=-1,n.h=-1,100>Le.length&&Le.push(n)}}function U(n,l,p){for(var e=p.length,u=e%2==1,a=u?1:0;a<e;a+=2)(0,p[a+1])(l,n,p[a]);Me(n,l,u?p[0]:void 0)}function _(n,l){var p=new Je;U(n,p,Oe(l)),ge(p,p.g.end()),n=new Uint8Array(p.h),l=p.i;for(var e=l.length,u=0,a=0;a<e;a++){var t=l[a];n.set(t,u),u+=t.length}return p.i=[n],n}function et(n,l){return{O:n,P:l}}var O=et(function(n,l,p){if(n.h!==5)return!1;n=n.g;var e=n.h[n.g],u=n.h[n.g+1],a=n.h[n.g+2],t=n.h[n.g+3];return n.g+=4,Lt(n),u=(e<<0|u<<8|a<<16|t<<24)>>>0,n=2*(u>>31)+1,e=u>>>23&255,u&=8388607,Vt(l,p,e==255?u?NaN:1/0*n:e==0?n*Math.pow(2,-149)*u:n*Math.pow(2,e-150)*(u+Math.pow(2,23))),!0},function(n,l,p){if(l=$t(l,p),l!=null){Ge(n.g,8*p+5),n=n.g;var e=l;e=(p=0>e?1:0)?-e:e,e===0?0<1/e?le=ae=0:(ae=0,le=2147483648):isNaN(e)?(ae=0,le=2147483647):34028234663852886e22<e?(ae=0,le=(p<<31|2139095040)>>>0):11754943508222875e-54>e?(e=Math.round(e/Math.pow(2,-149)),ae=0,le=(p<<31|e)>>>0):(l=Math.floor(Math.log(e)/Math.LN2),e*=Math.pow(2,-l),e=Math.round(8388608*e),16777216<=e&&++l,ae=0,le=(p<<31|l+127<<23|e&8388607)>>>0),p=le,n.g.push(p>>>0&255),n.g.push(p>>>8&255),n.g.push(p>>>16&255),n.g.push(p>>>24&255)}}),tt=et(function(n,l,p){if(n.h!==0)return!1;for(var e=n.g,u=128,a=0,t=n=0;4>t&&128<=u;t++)u=e.h[e.g++],Lt(e),a|=(u&127)<<7*t;if(128<=u&&(u=e.h[e.g++],Lt(e),a|=(u&127)<<28,n|=(u&127)>>4),128<=u)for(t=0;5>t&&128<=u;t++)u=e.h[e.g++],Lt(e),n|=(u&127)<<7*t+3;if(128>u)e=a>>>0,u=n>>>0,(n=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0);else throw Ct();return Vt(l,p,n?-e:e),!0},function(n,l,p){if(l=$t(l,p),l!=null&&l!=null){Ge(n.g,8*p),n=n.g;var e=l;for(p=0>e,e=Math.abs(e),l=e>>>0,e=Math.floor((e-l)/4294967296),e>>>=0,p&&(e=~e>>>0,l=(~l>>>0)+1,4294967295<l&&(l=0,e++,4294967295<e&&(e=0))),le=l,ae=e,p=le,l=ae;0<l||127<p;)n.g.push(p&127|128),p=(p>>>7|l<<25)>>>0,l>>>=7;n.g.push(p)}}),st=et(function(n,l,p){return n.h!==0?!1:(Vt(l,p,pe(n.g)),!0)},function(n,l,p){if(l=$t(l,p),l!=null&&l!=null)if(Ge(n.g,8*p),n=n.g,p=l,0<=p)Ge(n,p);else{for(l=0;9>l;l++)n.g.push(p&127|128),p>>=7;n.g.push(1)}}),mt=et(function(n,l,p){if(n.h!==2)return!1;var e=pe(n.g)>>>0;n=n.g;var u=n.g;n.g+=e,Lt(n),n=n.h;var a;if(Wn)(a=hn)||(a=hn=new TextDecoder("utf-8",{fatal:!0})),a=a.decode(n.subarray(u,u+e));else{e=u+e;for(var t=[],o=null,s,h,R;u<e;)s=n[u++],128>s?t.push(s):224>s?u>=e?We():(h=n[u++],194>s||(h&192)!==128?(u--,We()):t.push((s&31)<<6|h&63)):240>s?u>=e-1?We():(h=n[u++],(h&192)!==128||s===224&&160>h||s===237&&160<=h||((a=n[u++])&192)!==128?(u--,We()):t.push((s&15)<<12|(h&63)<<6|a&63)):244>=s?u>=e-2?We():(h=n[u++],(h&192)!==128||(s<<28)+(h-144)>>30!==0||((a=n[u++])&192)!==128||((R=n[u++])&192)!==128?(u--,We()):(s=(s&7)<<18|(h&63)<<12|(a&63)<<6|R&63,s-=65536,t.push((s>>10&1023)+55296,(s&1023)+56320))):We(),8192<=t.length&&(o=tn(o,t),t.length=0);a=tn(o,t)}return Vt(l,p,a),!0},function(n,l,p){if(l=$t(l,p),l!=null){var e=!1;if(e=e===void 0?!1:e,Fn){if(e&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(l))throw Error("Found an unpaired surrogate");l=(bn||(bn=new TextEncoder)).encode(l)}else{for(var u=0,a=new Uint8Array(3*l.length),t=0;t<l.length;t++){var o=l.charCodeAt(t);if(128>o)a[u++]=o;else{if(2048>o)a[u++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&t<l.length){var s=l.charCodeAt(++t);if(56320<=s&&57343>=s){o=1024*(o-55296)+s-56320+65536,a[u++]=o>>18|240,a[u++]=o>>12&63|128,a[u++]=o>>6&63|128,a[u++]=o&63|128;continue}else t--}if(e)throw Error("Found an unpaired surrogate");o=65533}a[u++]=o>>12|224,a[u++]=o>>6&63|128}a[u++]=o&63|128}}l=a.subarray(0,u)}Ge(n.g,8*p+2),Ge(n.g,l.length),ge(n,n.g.end()),ge(n,l)}}),It=et(function(n,l,p,e,u){if(n.h!==2)return!1;l=Ot(l,p,e),p=n.g.i,e=pe(n.g)>>>0;var a=n.g.g+e,t=a-p;if(0>=t&&(n.g.i=a,u(l,n),t=a-n.g.g),t)throw Error("Message parsing ended unexpectedly. Expected to read "+(e+" bytes, instead read "+(e-t)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return n.g.g=a,n.g.i=p,!0},function(n,l,p,e,u){if(l=Ie(l,e,p),l!=null)for(e=0;e<l.length;e++){var a=n;Ge(a.g,8*p+2);var t=a.g.end();ge(a,t),t.push(a.h),a=t,u(l[e],n),t=n;var o=a.pop();for(o=t.h+t.g.length()-o;127<o;)a.push(o&127|128),o>>>=7,t.h++;a.push(o),t.h++}});function wt(){De.apply(this,arguments)}if(xt(wt,De),Yt){var jt={};Object.defineProperties(wt,(jt[Symbol.hasInstance]=gn(Object[Symbol.hasInstance]),jt))}function Wt(n){wt.call(this,n)}xt(Wt,wt);function Zt(){return[1,st,2,O,3,mt,4,mt]}function Tt(n){wt.call(this,n,-1,Bt)}xt(Tt,wt),Tt.prototype.addClassification=function(n,l){return Ot(this,1,Wt,n,l),this};function Nt(){return[1,It,Wt,Zt]}var Bt=[1];function Dt(n){wt.call(this,n)}xt(Dt,wt);function qt(){return[1,O,2,O,3,O,4,O,5,O]}function Ze(n){wt.call(this,n,-1,d)}xt(Ze,wt);function c(){return[1,It,Dt,qt]}var d=[1];function m(n){wt.call(this,n)}xt(m,wt);function x(){return[1,O,2,O,3,O,4,O,5,O,6,tt]}var j=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],P=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],H=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(dt(j),dt(P),dt(H),dt(D),dt(rt),dt(r));function G(n,l,p){if(p=n.createShader(p===0?n.VERTEX_SHADER:n.FRAGMENT_SHADER),n.shaderSource(p,l),n.compileShader(p),!n.getShaderParameter(p,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
54
|
+
`+a.getProgramInfoLog(s));t=e.m=s,a.useProgram(t),o=a.getUniformLocation(t,"sampler0"),e.j={I:a.getAttribLocation(t,"aVertex"),H:a.getAttribLocation(t,"aTex"),ca:o},e.s=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.enableVertexAttribArray(e.j.I),a.vertexAttribPointer(e.j.I,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),e.o=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.enableVertexAttribArray(e.j.H),a.vertexAttribPointer(e.j.H,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),a.uniform1i(o,0)}t=e.j,a.useProgram(e.m),a.canvas.width=u.width,a.canvas.height=u.height,a.viewport(0,0,u.width,u.height),a.activeTexture(a.TEXTURE0),e.h.bindTexture2d(u.glName),a.enableVertexAttribArray(t.I),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.vertexAttribPointer(t.I,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.vertexAttribPointer(t.H,2,a.FLOAT,!1,0,0),a.bindFramebuffer(a.DRAW_FRAMEBUFFER?a.DRAW_FRAMEBUFFER:a.FRAMEBUFFER,null),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),a.colorMask(!0,!0,!0,!0),a.drawArrays(a.TRIANGLE_FAN,0,4),a.disableVertexAttribArray(t.I),a.disableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}function lt(e){this.g=e}var pt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function xt(e,u){return u+e}function yt(e,u){window[e]=u}function it(e){var u=document.createElement("script");return u.setAttribute("src",e),u.setAttribute("crossorigin","anonymous"),new Promise(function(a){u.addEventListener("load",function(){a()},!1),u.addEventListener("error",function(){a()},!1),document.body.appendChild(u)})}function gt(){return ft(function(e){switch(e.g){case 1:return e.m=2,$(e,WebAssembly.instantiate(pt),4);case 4:e.g=3,e.m=0;break;case 2:return e.m=0,e.j=null,e.return(!1);case 3:return e.return(!0)}})}function vt(e){if(this.g=e,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=e&&e.locateFile||xt,typeof window=="object")var u=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")u=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=u,e.options){u=U(Object.keys(e.options));for(var a=u.next();!a.done;a=u.next()){a=a.value;var t=e.options[a].default;t!==void 0&&(this.j[a]=typeof t=="function"?t():t)}}}S=vt.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Xt(e){var u,a,t,o,s,f,w,T,x,k,O;return ft(function(P){switch(P.g){case 1:return e.R?(u=e.g.files===void 0?[]:typeof e.g.files=="function"?e.g.files(e.j):e.g.files,$(P,gt(),2)):P.return();case 2:if(a=P.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:e.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:e.locateFile}),f=u.filter(function(z){return z.data!==void 0}),w=u.filter(function(z){return z.data===void 0}),T=Promise.all(f.map(function(z){var nt=g(e,z.url);if(z.path!==void 0){var ot=z.path;nt=nt.then(function(ut){return e.overrideFile(ot,ut),Promise.resolve(ut)})}return nt})),x=Promise.all(w.map(function(z){return z.simd===void 0||z.simd&&a||!z.simd&&!a?it(e.locateFile(z.url,e.S)):Promise.resolve()})).then(function(){var z,nt,ot;return ft(function(ut){if(ut.g==1)return z=window.createMediapipeSolutionsWasm,nt=window.createMediapipeSolutionsPackedAssets,ot=e,$(ut,z(nt),2);ot.h=ut.h,ut.g=0})}),k=function(){return ft(function(z){return e.g.graph&&e.g.graph.url?z=$(z,g(e,e.g.graph.url),0):(z.g=0,z=void 0),z})}(),$(P,Promise.all([x,T,k]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return t=u.filter(function(z){return z.simd===void 0||z.simd&&a||!z.simd&&!a}).map(function(z){return e.locateFile(z.url,e.S)}),importScripts.apply(null,dt(t)),o=e,$(P,createMediapipeSolutionsWasm(Module),6);case 6:o.h=P.h,e.l=new OffscreenCanvas(1,1),e.h.canvas=e.l,s=e.h.GL.createContext(e.l,{antialias:!1,alpha:!1,aa:typeof WebGL2RenderingContext!="undefined"?2:1}),e.h.GL.makeContextCurrent(s),P.g=4;break;case 7:if(e.l=document.createElement("canvas"),O=e.l.getContext("webgl2",{}),!O&&(O=e.l.getContext("webgl",{}),!O))return alert("Failed to create WebGL canvas context when passing video frame."),P.return();e.D=O,e.h.canvas=e.l,e.h.createContext(e.l,!0,!0,{});case 4:e.i=new e.h.SolutionWasm,e.R=!1,P.g=0}})}function wt(e){var u,a,t,o,s,f,w,T;return ft(function(x){if(x.g==1){if(e.g.graph&&e.g.graph.url&&e.P===e.g.graph.url)return x.return();if(e.o=!0,!e.g.graph||!e.g.graph.url){x.g=2;return}return e.P=e.g.graph.url,$(x,g(e,e.g.graph.url),3)}for(x.g!=2&&(u=x.h,e.i.loadGraph(u)),a=U(Object.keys(e.B)),t=a.next();!t.done;t=a.next())o=t.value,e.i.overrideFile(o,e.B[o]);if(e.B={},e.g.listeners)for(s=U(e.g.listeners),f=s.next();!f.done;f=s.next())w=f.value,N(e,w);T=e.j,e.j={},e.setOptions(T),x.g=0})}S.reset=function(){var e=this;return ft(function(u){e.i&&(e.i.reset(),e.m={},e.s={}),u.g=0})},S.setOptions=function(e,u){var a=this;if(u=u||this.g.options){for(var t=[],o=[],s={},f=U(Object.keys(e)),w=f.next();!w.done;s={K:s.K,L:s.L},w=f.next()){var T=w.value;T in this.j&&this.j[T]===e[T]||(this.j[T]=e[T],w=u[T],w!==void 0&&(w.onChange&&(s.K=w.onChange,s.L=e[T],t.push(function(x){return function(){var k;return ft(function(O){if(O.g==1)return $(O,x.K(x.L),2);k=O.h,k===!0&&(a.o=!0),O.g=0})}}(s))),w.graphOptionXref&&(T={valueNumber:w.type===1?e[T]:0,valueBoolean:w.type===0?e[T]:!1,valueString:w.type===2?e[T]:""},w=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),w.graphOptionXref),T),o.push(w))))}(t.length!==0||o.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(o),this.v=(this.v===void 0?[]:this.v).concat(t))}};function i(e){var u,a,t,o,s,f,w;return ft(function(T){switch(T.g){case 1:if(!e.o)return T.return();if(!e.v){T.g=2;break}u=U(e.v),a=u.next();case 3:if(a.done){T.g=5;break}return t=a.value,$(T,t(),4);case 4:a=u.next(),T.g=3;break;case 5:e.v=void 0;case 2:if(e.A){for(o=new e.h.GraphOptionChangeRequestList,s=U(e.A),f=s.next();!f.done;f=s.next())w=f.value,o.push_back(w);e.i.changeOptions(o),o.delete(),e.A=void 0}e.o=!1,T.g=0}})}S.initialize=function(){var e=this;return ft(function(u){return u.g==1?$(u,Xt(e),2):u.g!=3?$(u,wt(e),3):$(u,i(e),0)})};function g(e,u){var a,t;return ft(function(o){return u in e.F?o.return(e.F[u]):(a=e.locateFile(u,""),t=fetch(a).then(function(s){return s.arrayBuffer()}),e.F[u]=t,o.return(t))})}S.overrideFile=function(e,u){this.i?this.i.overrideFile(e,u):this.B[e]=u},S.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},S.send=function(e,u){var a=this,t,o,s,f,w,T,x,k,O;return ft(function(P){switch(P.g){case 1:return a.g.inputs?(t=1e3*(u==null?performance.now():u),$(P,a.C,2)):P.return();case 2:return $(P,a.initialize(),3);case 3:for(o=new a.h.PacketDataList,s=U(Object.keys(e)),f=s.next();!f.done;f=s.next())if(w=f.value,T=a.g.inputs[w]){t:{var z=e[w];switch(T.type){case"video":var nt=a.m[T.stream];if(nt||(nt=new J(a.h,a.D),a.m[T.stream]=nt),nt.l===0&&(nt.l=nt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&z instanceof HTMLVideoElement)var ot=z.videoWidth,ut=z.videoHeight;else typeof HTMLImageElement!="undefined"&&z instanceof HTMLImageElement?(ot=z.naturalWidth,ut=z.naturalHeight):(ot=z.width,ut=z.height);ut={glName:nt.l,width:ot,height:ut},ot=nt.g,ot.canvas.width=ut.width,ot.canvas.height=ut.height,ot.activeTexture(ot.TEXTURE0),nt.h.bindTexture2d(nt.l),ot.texImage2D(ot.TEXTURE_2D,0,ot.RGBA,ot.RGBA,ot.UNSIGNED_BYTE,z),nt.h.bindTexture2d(0),nt=ut;break t;case"detections":for(nt=a.m[T.stream],nt||(nt=new lt(a.h),a.m[T.stream]=nt),nt.data||(nt.data=new nt.g.DetectionListData),nt.data.reset(z.length),ut=0;ut<z.length;++ut){ot=z[ut];var ht=nt.data,at=ht.setBoundingBox,Et=ut,_t=ot.T,Bt=new Zt;if(Ht(Bt,1,_t.X),Ht(Bt,2,_t.Y),Ht(Bt,3,_t.height),Ht(Bt,4,_t.width),Ht(Bt,5,_t.rotation),Ht(Bt,6,_t.W),_t=Ye(Bt,Nt),at.call(ht,Et,_t),ot.O)for(ht=0;ht<ot.O.length;++ht){Bt=ot.O[ht];var we=!!Bt.visibility;at=nt.data,Et=at.addNormalizedLandmark,_t=ut,Bt=Object.assign(Object.assign({},Bt),{visibility:we?Bt.visibility:0}),we=new K,Ht(we,1,Bt.x),Ht(we,2,Bt.y),Ht(we,3,Bt.z),Bt.visibility&&Ht(we,4,Bt.visibility),Bt=Ye(we,st),Et.call(at,_t,Bt)}if(ot.M)for(ht=0;ht<ot.M.length;++ht)at=nt.data,Et=at.addClassification,_t=ut,Bt=ot.M[ht],we=new bn,Ht(we,2,Bt.score),Bt.index&&Ht(we,1,Bt.index),Bt.label&&Ht(we,3,Bt.label),Bt.displayName&&Ht(we,4,Bt.displayName),Bt=Ye(we,h),Et.call(at,_t,Bt)}nt=nt.data;break t;default:nt={}}}switch(x=nt,k=T.stream,T.type){case"video":o.pushTexture2d(Object.assign(Object.assign({},x),{stream:k,timestamp:t}));break;case"detections":O=x,O.stream=k,O.timestamp=t,o.pushDetectionList(O);break;default:throw Error("Unknown input config type: '"+T.type+"'")}}return a.i.send(o),$(P,a.C,4);case 4:o.delete(),P.g=0}})};function R(e,u,a){var t,o,s,f,w,T,x,k,O,P,z,nt,ot,ut;return ft(function(ht){switch(ht.g){case 1:if(!a)return ht.return(u);for(t={},o=0,s=U(Object.keys(a)),f=s.next();!f.done;f=s.next())w=f.value,T=a[w],typeof T!="string"&&T.type==="texture"&&u[T.stream]!==void 0&&++o;1<o&&(e.G=!1),x=U(Object.keys(a)),f=x.next();case 2:if(f.done){ht.g=4;break}if(k=f.value,O=a[k],typeof O=="string")return ot=t,ut=k,$(ht,W(e,k,u[O]),14);if(P=u[O.stream],O.type==="detection_list"){if(P){for(var at=P.getRectList(),Et=P.getLandmarksList(),_t=P.getClassificationsList(),Bt=[],we=0;we<at.size();++we){var ln=En(at.get(we),Zt,Pt);ln={T:{X:Ve(ln,1),Y:Ve(ln,2),height:Ve(ln,3),width:Ve(ln,4),rotation:Ve(ln,5,0),W:Oe(ln,6,0)},O:H(Et.get(we)),M:V(En(_t.get(we),Z,_))},Bt.push(ln)}at=Bt}else at=[];t[k]=at,ht.g=7;break}if(O.type==="proto_list"){if(P){for(at=Array(P.size()),Et=0;Et<P.size();Et++)at[Et]=P.get(Et);P.delete()}else at=[];t[k]=at,ht.g=7;break}if(P===void 0){ht.g=3;break}if(O.type==="float_list"){t[k]=P,ht.g=7;break}if(O.type==="proto"){t[k]=P,ht.g=7;break}if(O.type!=="texture")throw Error("Unknown output config type: '"+O.type+"'");return z=e.s[k],z||(z=new J(e.h,e.D),e.s[k]=z),$(ht,q(z,P,e.G),13);case 13:nt=ht.h,t[k]=nt;case 7:O.transform&&t[k]&&(t[k]=O.transform(t[k])),ht.g=3;break;case 14:ot[ut]=ht.h;case 3:f=x.next(),ht.g=2;break;case 4:return ht.return(t)}})}function W(e,u,a){var t;return ft(function(o){return typeof a=="number"||a instanceof Uint8Array||a instanceof e.h.Uint8BlobList?o.return(a):a instanceof e.h.Texture2dDataOut?(t=e.s[u],t||(t=new J(e.h,e.D),e.s[u]=t),o.return(q(t,a,e.G))):o.return(void 0)})}function N(e,u){for(var a=u.name||"$",t=[].concat(dt(u.wants)),o=new e.h.StringList,s=U(u.wants),f=s.next();!f.done;f=s.next())o.push_back(f.value);s=e.h.PacketListener.implement({onResults:function(w){for(var T={},x=0;x<u.wants.length;++x)T[t[x]]=w.get(x);var k=e.listeners[a];k&&(e.C=R(e,T,u.outs).then(function(O){O=k(O);for(var P=0;P<u.wants.length;++P){var z=T[t[P]];typeof z=="object"&&z.hasOwnProperty&&z.hasOwnProperty("delete")&&z.delete()}O&&(e.C=O)}))}}),e.i.attachMultiListener(o,s),o.delete()}S.onResults=function(e,u){this.listeners[u||"$"]=e},Vt("Solution",vt),Vt("OptionType",{BOOL:0,NUMBER:1,Z:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(e){return e.map(l)}function l(e){e=En(e,d,F);var u=e.getMesh();if(!u)return e;var a=new Float32Array(u.getVertexBufferList());u.getVertexBufferList=function(){return a};var t=new Uint32Array(u.getIndexBufferList());return u.getIndexBufferList=function(){return t},e}function p(e){var u=this;e=e||{},this.g=new vt({locateFile:e.locateFile,files:[{url:"holistic_solution_packed_assets_loader.js"},{simd:!1,url:"holistic_solution_wasm_bin.js"},{simd:!0,url:"holistic_solution_simd_wasm_bin.js"}],graph:{url:"holistic.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:"left_hand_landmarks right_hand_landmarks face_landmarks pose_landmarks world_landmarks segmentation_mask image_transformed multi_face_geometry".split(" "),outs:{image:{type:"texture",stream:"image_transformed"},leftHandLandmarks:{type:"proto",stream:"left_hand_landmarks",transform:H},rightHandLandmarks:{type:"proto",stream:"right_hand_landmarks",transform:H},faceLandmarks:{type:"proto",stream:"face_landmarks",transform:H},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:H},ea:{type:"proto",stream:"world_landmarks",transform:H},segmentationMask:{type:"texture",stream:"segmentation_mask"},multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:n}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,default:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(a){var t,o,s,f;return ft(function(w){if(w.g==1){switch(t="",a){case 1:t="pose_landmark_full.tflite";break;case 2:t="pose_landmark_heavy.tflite";break;default:t="pose_landmark_lite.tflite"}return o="third_party/mediapipe/modules/pose_landmark/"+t,s=u.g.locateFile(t,""),$(w,fetch(s),3)}return w.g!=2?$(w,w.h.arrayBuffer(),2):(f=w.h,u.g.overrideFile(o,f),$(w,u.g.reset(),0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},refineFaceLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineFaceLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}})}S=p.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(e){this.g.onResults(e)},S.initialize=function(){var e=this;return ft(function(u){return $(u,e.g.initialize(),0)})},S.reset=function(){this.g.reset()},S.send=function(e){var u=this;return ft(function(a){return $(a,u.g.send(e),0)})},S.setOptions=function(e){this.g.setOptions(e)},Vt("Holistic",p),Vt("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),Vt("FACEMESH_LIPS",j),Vt("FACEMESH_LEFT_EYE",B),Vt("FACEMESH_LEFT_EYEBROW",C),Vt("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),Vt("FACEMESH_RIGHT_EYE",D),Vt("FACEMESH_RIGHT_EYEBROW",rt),Vt("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),Vt("FACEMESH_FACE_OVAL",r),Vt("FACEMESH_CONTOURS",y),Vt("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),Vt("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),Vt("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),Vt("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),Vt("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),Vt("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),Vt("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),Vt("matrixDataToMatrix",function(e){for(var u=e.getCols(),a=e.getRows(),t=e.getPackedDataList(),o=[],s=0;s<a;s++)o.push(Array(u));for(s=0;s<a;s++)for(var f=0;f<u;f++){var w=e.getLayout()===1?s*u+f:f*a+s;o[s][f]=t[w]}return o}),Vt("VERSION","0.5.1635989137")}).call(Wr);const Sr={};(function(){var S;function v(n){var l=0;return function(){return l<n.length?{done:!1,value:n[l++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(n,l,p){return n==Array.prototype||n==Object.prototype||(n[l]=p.value),n};function L(n){n=[typeof globalThis=="object"&&globalThis,n,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var l=0;l<n.length;++l){var p=n[l];if(p&&p.Math==Math)return p}throw Error("Cannot find global object")}var I=L(this);function A(n,l){if(l)t:{var p=I;n=n.split(".");for(var e=0;e<n.length-1;e++){var u=n[e];if(!(u in p))break t;p=p[u]}n=n[n.length-1],e=p[n],l=l(e),l!=e&&l!=null&&G(p,n,{configurable:!0,writable:!0,value:l})}}A("Symbol",function(n){function l(a){if(this instanceof l)throw new TypeError("Symbol is not a constructor");return new p(e+(a||"")+"_"+u++,a)}function p(a,t){this.g=a,G(this,"description",{configurable:!0,writable:!0,value:t})}if(n)return n;p.prototype.toString=function(){return this.g};var e="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",u=0;return l}),A("Symbol.iterator",function(n){if(n)return n;n=Symbol("Symbol.iterator");for(var l="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),p=0;p<l.length;p++){var e=I[l[p]];typeof e=="function"&&typeof e.prototype[n]!="function"&&G(e.prototype,n,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return n});function Q(n){return n={next:n},n[Symbol.iterator]=function(){return this},n}function U(n){var l=typeof Symbol!="undefined"&&Symbol.iterator&&n[Symbol.iterator];return l?l.call(n):{next:v(n)}}function dt(n){if(!(n instanceof Array)){n=U(n);for(var l,p=[];!(l=n.next()).done;)p.push(l.value);n=p}return n}var _e=typeof Object.create=="function"?Object.create:function(n){function l(){}return l.prototype=n,new l},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(n,l){if(n.__proto__=l,n.__proto__!==l)throw new TypeError(n+" is not extensible");return n}:null}var je=ct;function Ft(n,l){if(n.prototype=_e(l.prototype),n.prototype.constructor=n,je)je(n,l);else for(var p in l)if(p!="prototype")if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(l,p);e&&Object.defineProperty(n,p,e)}else n[p]=l[p];n.na=l.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function de(n){if(n.l)throw new TypeError("Generator is already running");n.l=!0}ue.prototype.s=function(n){this.h=n};function fe(n,l){n.j={da:l,ea:!0},n.g=n.o||n.u}ue.prototype.return=function(n){this.j={return:n},this.g=this.u};function $(n,l,p){return n.g=p,{value:l}}function In(n){this.g=new ue,this.h=n}function jn(n,l){de(n.g);var p=n.g.i;return p?Ce(n,"return"in p?p.return:function(e){return{value:e,done:!0}},l,n.g.return):(n.g.return(l),ee(n))}function Ce(n,l,p,e){try{var u=l.call(n.g.i,p);if(!(u instanceof Object))throw new TypeError("Iterator result "+u+" is not an object");if(!u.done)return n.g.l=!1,u;var a=u.value}catch(t){return n.g.i=null,fe(n.g,t),ee(n)}return n.g.i=null,e.call(n.g,a),ee(n)}function ee(n){for(;n.g.g;)try{var l=n.h(n.g);if(l)return n.g.l=!1,{value:l.value,done:!1}}catch(p){n.g.h=void 0,fe(n.g,p)}if(n.g.l=!1,n.g.j){if(l=n.g.j,n.g.j=null,l.ea)throw l.da;return{value:l.return,done:!0}}return{value:void 0,done:!0}}function Cn(n){this.next=function(l){return de(n.g),n.g.i?l=Ce(n,n.g.i.next,l,n.g.s):(n.g.s(l),l=ee(n)),l},this.throw=function(l){return de(n.g),n.g.i?l=Ce(n,n.g.i.throw,l,n.g.s):(fe(n.g,l),l=ee(n)),l},this.return=function(l){return jn(n,l)},this[Symbol.iterator]=function(){return this}}function te(n){function l(e){return n.next(e)}function p(e){return n.throw(e)}return new Promise(function(e,u){function a(t){t.done?e(t.value):Promise.resolve(t.value).then(l,p).then(a,u)}a(n.next())})}function ft(n){return te(new Cn(new In(n)))}A("Promise",function(n){function l(t){this.h=0,this.i=void 0,this.g=[],this.s=!1;var o=this.j();try{t(o.resolve,o.reject)}catch(s){o.reject(s)}}function p(){this.g=null}function e(t){return t instanceof l?t:new l(function(o){o(t)})}if(n)return n;p.prototype.h=function(t){if(this.g==null){this.g=[];var o=this;this.i(function(){o.l()})}this.g.push(t)};var u=I.setTimeout;p.prototype.i=function(t){u(t,0)},p.prototype.l=function(){for(;this.g&&this.g.length;){var t=this.g;this.g=[];for(var o=0;o<t.length;++o){var s=t[o];t[o]=null;try{s()}catch(f){this.j(f)}}}this.g=null},p.prototype.j=function(t){this.i(function(){throw t})},l.prototype.j=function(){function t(f){return function(w){s||(s=!0,f.call(o,w))}}var o=this,s=!1;return{resolve:t(this.D),reject:t(this.l)}},l.prototype.D=function(t){if(t===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(t instanceof l)this.H(t);else{t:switch(typeof t){case"object":var o=t!=null;break t;case"function":o=!0;break t;default:o=!1}o?this.A(t):this.o(t)}},l.prototype.A=function(t){var o=void 0;try{o=t.then}catch(s){this.l(s);return}typeof o=="function"?this.I(o,t):this.o(t)},l.prototype.l=function(t){this.u(2,t)},l.prototype.o=function(t){this.u(1,t)},l.prototype.u=function(t,o){if(this.h!=0)throw Error("Cannot settle("+t+", "+o+"): Promise already settled in state"+this.h);this.h=t,this.i=o,this.h===2&&this.G(),this.B()},l.prototype.G=function(){var t=this;u(function(){if(t.C()){var o=I.console;typeof o!="undefined"&&o.error(t.i)}},1)},l.prototype.C=function(){if(this.s)return!1;var t=I.CustomEvent,o=I.Event,s=I.dispatchEvent;return typeof s=="undefined"?!0:(typeof t=="function"?t=new t("unhandledrejection",{cancelable:!0}):typeof o=="function"?t=new o("unhandledrejection",{cancelable:!0}):(t=I.document.createEvent("CustomEvent"),t.initCustomEvent("unhandledrejection",!1,!0,t)),t.promise=this,t.reason=this.i,s(t))},l.prototype.B=function(){if(this.g!=null){for(var t=0;t<this.g.length;++t)a.h(this.g[t]);this.g=null}};var a=new p;return l.prototype.H=function(t){var o=this.j();t.M(o.resolve,o.reject)},l.prototype.I=function(t,o){var s=this.j();try{t.call(o,s.resolve,s.reject)}catch(f){s.reject(f)}},l.prototype.then=function(t,o){function s(x,k){return typeof x=="function"?function(O){try{f(x(O))}catch(P){w(P)}}:k}var f,w,T=new l(function(x,k){f=x,w=k});return this.M(s(t,f),s(o,w)),T},l.prototype.catch=function(t){return this.then(void 0,t)},l.prototype.M=function(t,o){function s(){switch(f.h){case 1:t(f.i);break;case 2:o(f.i);break;default:throw Error("Unexpected state: "+f.h)}}var f=this;this.g==null?a.h(s):this.g.push(s),this.s=!0},l.resolve=e,l.reject=function(t){return new l(function(o,s){s(t)})},l.race=function(t){return new l(function(o,s){for(var f=U(t),w=f.next();!w.done;w=f.next())e(w.value).M(o,s)})},l.all=function(t){var o=U(t),s=o.next();return s.done?e([]):new l(function(f,w){function T(O){return function(P){x[O]=P,k--,k==0&&f(x)}}var x=[],k=0;do x.push(void 0),k++,e(s.value).M(T(x.length-1),w),s=o.next();while(!s.done)})},l});function Hn(n,l){n instanceof String&&(n+="");var p=0,e=!1,u={next:function(){if(!e&&p<n.length){var a=p++;return{value:l(a,n[a]),done:!1}}return e=!0,{done:!0,value:void 0}}};return u[Symbol.iterator]=function(){return u},u}var Un=typeof Object.assign=="function"?Object.assign:function(n,l){for(var p=1;p<arguments.length;p++){var e=arguments[p];if(e)for(var u in e)Object.prototype.hasOwnProperty.call(e,u)&&(n[u]=e[u])}return n};A("Object.assign",function(n){return n||Un}),A("Object.is",function(n){return n||function(l,p){return l===p?l!==0||1/l===1/p:l!==l&&p!==p}}),A("Array.prototype.includes",function(n){return n||function(l,p){var e=this;e instanceof String&&(e=String(e));var u=e.length;for(p=p||0,0>p&&(p=Math.max(p+u,0));p<u;p++){var a=e[p];if(a===l||Object.is(a,l))return!0}return!1}}),A("String.prototype.includes",function(n){return n||function(l,p){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(l instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(l,p||0)!==-1}}),A("Array.prototype.keys",function(n){return n||function(){return Hn(this,function(l){return l})}});var ye=this||self;function Vt(n,l){n=n.split(".");var p=ye;n[0]in p||typeof p.execScript=="undefined"||p.execScript("var "+n[0]);for(var e;n.length&&(e=n.shift());)n.length||l===void 0?p[e]&&p[e]!==Object.prototype[e]?p=p[e]:p=p[e]={}:p[e]=l}function We(){throw Error("Invalid UTF8")}function tn(n,l){return l=String.fromCharCode.apply(null,l),n==null?l:n+l}var dn,Wn=typeof TextDecoder!="undefined",Zn,xn=typeof TextEncoder!="undefined",en={},un=null;function Ln(n){var l;l===void 0&&(l=0),nn(),l=en[l];for(var p=Array(Math.floor(n.length/3)),e=l[64]||"",u=0,a=0;u<n.length-2;u+=3){var t=n[u],o=n[u+1],s=n[u+2],f=l[t>>2];t=l[(t&3)<<4|o>>4],o=l[(o&15)<<2|s>>6],s=l[s&63],p[a++]=f+t+o+s}switch(f=0,s=e,n.length-u){case 2:f=n[u+1],s=l[(f&15)<<2]||e;case 1:n=n[u],p[a]=l[n>>2]+l[(n&3)<<4|f>>4]+s+e}return p.join("")}function Sn(n){var l=n.length,p=3*l/4;p%3?p=Math.floor(p):"=.".indexOf(n[l-1])!=-1&&(p="=.".indexOf(n[l-2])!=-1?p-2:p-1);var e=new Uint8Array(p),u=0;return pn(n,function(a){e[u++]=a}),u!==p?e.subarray(0,u):e}function pn(n,l){function p(s){for(;e<n.length;){var f=n.charAt(e++),w=un[f];if(w!=null)return w;if(!/^[\s\xa0]*$/.test(f))throw Error("Unknown base64 encoding at char: "+f)}return s}nn();for(var e=0;;){var u=p(-1),a=p(0),t=p(64),o=p(64);if(o===64&&u===-1)break;l(u<<2|a>>4),t!=64&&(l(a<<4&240|t>>2),o!=64&&l(t<<6&192|o))}}function nn(){if(!un){un={};for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),l=["+/=","+/","-_=","-_.","-_"],p=0;5>p;p++){var e=n.concat(l[p].split(""));en[p]=e;for(var u=0;u<e.length;u++){var a=e[u];un[a]===void 0&&(un[a]=u)}}}}var Xn=typeof Uint8Array=="function";function gn(n){return Xn&&n!=null&&n instanceof Uint8Array}var ce;function ve(n){if(this.L=n,n!==null&&n.length===0)throw Error("ByteString should be constructed with non-empty values")}var Be=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function Me(n,l){if(n.constructor===Uint8Array)return n;if(n.constructor===ArrayBuffer)return new Uint8Array(n);if(n.constructor===Array)return new Uint8Array(n);if(n.constructor===String)return Sn(n);if(n.constructor===ve)return!l&&(l=n.L)&&l.constructor===Uint8Array?l:(l=n.L,l=l==null||gn(l)?l:typeof l=="string"?Sn(l):null,(n=n.L=l)?new Uint8Array(n):ce||(ce=new Uint8Array(0)));if(n instanceof Uint8Array)return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function xe(n,l){return Error("Invalid wire type: "+n+" (at position "+l+")")}function Ut(){return Error("Failed to read varint, encoding is invalid.")}function re(n,l){l=l===void 0?{}:l,l=l.v===void 0?!1:l.v,this.h=null,this.g=this.i=this.j=0,this.v=l,n&&Se(this,n)}function Se(n,l){n.h=Me(l,n.v),n.j=0,n.i=n.h.length,n.g=n.j}re.prototype.reset=function(){this.g=this.j};function Lt(n){if(n.g>n.i)throw Error("Tried to read past the end of the data "+n.g+" > "+n.i)}function pe(n){var l=n.h,p=l[n.g],e=p&127;if(128>p)return n.g+=1,Lt(n),e;if(p=l[n.g+1],e|=(p&127)<<7,128>p)return n.g+=2,Lt(n),e;if(p=l[n.g+2],e|=(p&127)<<14,128>p)return n.g+=3,Lt(n),e;if(p=l[n.g+3],e|=(p&127)<<21,128>p)return n.g+=4,Lt(n),e;if(p=l[n.g+4],n.g+=5,e|=(p&15)<<28,128>p)return Lt(n),e;if(128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++])throw Ut();return Lt(n),e}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var n=this.g;return this.g=[],n};function Xe(n,l){for(;127<l;)n.g.push(l&127|128),l>>>=7;n.g.push(l)}function Pe(n){var l={},p=l.W===void 0?!1:l.W;this.l={v:l.v===void 0?!1:l.v},this.W=p,l=this.l,At.length?(p=At.pop(),l&&(p.v=l.v),n&&Se(p,n),n=p):n=new re(n,l),this.g=n,this.j=this.g.g,this.h=this.i=-1}Pe.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(n){var l=n.g;if(l.g==l.i)return!1;n.j=n.g.g;var p=pe(n.g)>>>0;if(l=p>>>3,p&=7,!(0<=p&&5>=p))throw xe(p,n.j);if(1>l)throw Error("Invalid field number: "+l+" (at position "+n.j+")");return n.i=l,n.h=p,!0}function Yt(n){switch(n.h){case 0:if(n.h!=0)Yt(n);else t:{n=n.g;for(var l=n.g,p=l+10;l<p;)if((n.h[l++]&128)===0){n.g=l,Lt(n);break t}throw Ut()}break;case 1:n=n.g,n.g+=8,Lt(n);break;case 2:n.h!=2?Yt(n):(l=pe(n.g)>>>0,n=n.g,n.g+=l,Lt(n));break;case 5:n=n.g,n.g+=4,Lt(n);break;case 3:l=n.i;do{if(!se(n))throw Error("Unmatched start-group tag: stream EOF");if(n.h==4){if(n.i!=l)throw Error("Unmatched end-group tag");break}Yt(n)}while(1);break;default:throw xe(n.h,n.j)}}var Le=[];function He(){this.i=[],this.h=0,this.g=new ne}function ge(n,l){l.length!==0&&(n.i.push(l),n.h+=l.length)}function wn(n,l){if(l=l.ba){ge(n,n.g.end());for(var p=0;p<l.length;p++)ge(n,l[p])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(n,l){Object.isFrozen(n)||(Qe?n[Qe]|=l:n.N!==void 0?n.N|=l:Object.defineProperties(n,{N:{value:l,configurable:!0,writable:!0,enumerable:!1}}))}function cn(n){var l;return Qe?l=n[Qe]:l=n.N,l==null?0:l}function ie(n){return sn(n,1),n}function Re(n){return Array.isArray(n)?!!(cn(n)&2):!1}function oe(n){if(!Array.isArray(n))throw Error("cannot mark non-array as immutable");sn(n,2)}function zt(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)&&n.constructor===Object}var Ue=Object.freeze(ie([]));function Ot(n){if(Re(n.m))throw Error("Cannot mutate an immutable Message")}var kt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function mn(n){return{value:n,configurable:!1,writable:!1,enumerable:!1}}function $t(n,l,p){return l===-1?null:l>=n.i?n.g?n.g[l]:void 0:(p===void 0?0:p)&&n.g&&(p=n.g[l],p!=null)?p:n.m[l+n.h]}function St(n,l,p,e){e=e===void 0?!1:e,Ot(n),l<n.i&&!e?n.m[l+n.h]=p:(n.g||(n.g=n.m[n.i+n.h]={}))[l]=p}function bt(n,l,p,e){p=p===void 0?!0:p,e=e===void 0?!1:e;var u=$t(n,l,e);return u==null&&(u=Ue),Re(n.m)?p&&(oe(u),Object.freeze(u)):(u===Ue||Re(u))&&(u=ie(u.slice()),St(n,l,u,e)),u}function Mt(n,l,p){return n=$t(n,l),n=n==null?n:+n,n==null?p===void 0?0:p:n}function Ie(n,l,p,e){n.j||(n.j={});var u=Re(n.m),a=n.j[p];if(!a){e=bt(n,p,!0,e===void 0?!1:e),a=[],u=u||Re(e);for(var t=0;t<e.length;t++)a[t]=new l(e[t]),u&&oe(a[t].m);u&&(oe(a),Object.freeze(a)),n.j[p]=a}return a}function Kt(n,l,p,e,u){var a=a===void 0?!1:a;return Ot(n),a=Ie(n,p,l,a),p=e||new p,n=bt(n,l),u!=null?(a.splice(u,0,p),n.splice(u,0,p.m)):(a.push(p),n.push(p.m)),p}function Qt(n,l){return n=$t(n,l),n==null?0:n}function Fe(n,l){return n=$t(n,l),n==null?"":n}function Jt(n){switch(typeof n){case"number":return isFinite(n)?n:String(n);case"object":if(n&&!Array.isArray(n)){if(gn(n))return Ln(n);if(n instanceof ve){var l=n.L;return l=l==null||typeof l=="string"?l:Xn&&l instanceof Uint8Array?Ln(l):null,(n.L=l)||""}}}return n}function Rt(n){var l=Ve;return l=l===void 0?Ht:l,Oe(n,l)}function Ae(n,l){if(n!=null){if(Array.isArray(n))n=Oe(n,l);else if(zt(n)){var p={},e;for(e in n)p[e]=Ae(n[e],l);n=p}else n=l(n);return n}}function Oe(n,l){for(var p=n.slice(),e=0;e<p.length;e++)p[e]=Ae(p[e],l);return Array.isArray(n)&&cn(n)&1&&ie(p),p}function Ve(n){return n&&typeof n=="object"&&n.toJSON?n.toJSON():(n=Jt(n),Array.isArray(n)?Rt(n):n)}function Ht(n){return gn(n)?new Uint8Array(n):n}function Ee(n,l,p){n||(n=an),an=null;var e=this.constructor.h;n||(n=e?[e]:[]),this.h=(e?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=n;t:{if(e=this.m.length,n=e-1,e&&(e=this.m[n],zt(e))){this.i=n-this.h,this.g=e;break t}l!==void 0&&-1<l?(this.i=Math.max(l,n+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(p)for(l=0;l<p.length;l++)if(n=p[l],n<this.i)n+=this.h,(e=this.m[n])?Array.isArray(e)&&ie(e):this.m[n]=Ue;else{e=this.g||(this.g=this.m[this.i+this.h]={});var u=e[n];u?Array.isArray(u)&&ie(u):e[n]=Ue}}Ee.prototype.toJSON=function(){return Rt(this.m)},Ee.prototype.toString=function(){return this.m.toString()};var an;function De(){Ee.apply(this,arguments)}if(Ft(De,Ee),kt){var Ne={};Object.defineProperties(De,(Ne[Symbol.hasInstance]=mn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ne))}function ze(n,l,p){if(p){var e={},u;for(u in p){var a=p[u],t=a.ha;t||(e.F=a.la||a.fa.P,a.aa?(e.U=hn(a.aa),t=function(o){return function(s,f,w){return o.F(s,f,w,o.U)}}(e)):a.ca?(e.T=Te(a.X.g,a.ca),t=function(o){return function(s,f,w){return o.F(s,f,w,o.T)}}(e)):t=e.F,a.ha=t),t(l,n,a.X),e={F:e.F,U:e.U,T:e.T}}}wn(l,n)}var $e=Symbol();function me(n,l,p){return n[$e]||(n[$e]=function(e,u){return l(e,u,p)})}function Ye(n){var l=n[$e];if(!l){var p=h(n);l=function(e,u){return b(e,u,p)},n[$e]=l}return l}function En(n){var l=n.aa;if(l)return Ye(l);if(l=n.ka)return me(n.X.g,l,n.ca)}function ke(n){var l=En(n),p=n.X,e=n.fa.O;return l?function(u,a){return e(u,a,p,l)}:function(u,a){return e(u,a,p)}}function be(n,l,p,e,u,a){n=n();var t=0;for(n.length&&typeof n[0]!="number"&&(p(l,n[0]),t++);t<n.length;){p=n[t++];for(var o=t+1;o<n.length&&typeof n[o]!="number";)o++;var s=n[t++];switch(o-=t,o){case 0:e(l,p,s);break;case 1:e(l,p,s,n[t++]);break;case 2:u(l,p,s,n[t++],n[t++]);break;case 3:o=n[t++];var f=n[t++],w=n[t++];Array.isArray(w)?u(l,p,s,o,f,w):a(l,p,s,o,f,w);break;case 4:a(l,p,s,n[t++],n[t++],n[t++],n[t++]);break;default:throw Error("unexpected number of binary field arguments: "+o)}}return l}var rn=Symbol();function hn(n){var l=n[rn];if(!l){var p=Ke(n);l=function(e,u){return Y(e,u,p)},n[rn]=l}return l}function Te(n,l){var p=n[rn];return p||(p=function(e,u){return ze(e,u,l)},n[rn]=p),p}var Vn=Symbol();function Je(n,l){n.push(l)}function on(n,l,p){n.push(l,p.P)}function yn(n,l,p,e,u){var a=hn(u),t=p.P;n.push(l,function(o,s,f){return t(o,s,f,e,a)})}function Fn(n,l,p,e,u,a){var t=Te(e,a),o=p.P;n.push(l,function(s,f,w){return o(s,f,w,e,t)})}function Ke(n){var l=n[Vn];return l||be(n,n[Vn]=[],Je,on,yn,Fn)}var vn=Symbol();function Yn(n,l){n[0]=l}function kn(n,l,p,e){var u=p.O;n[l]=e?function(a,t,o){return u(a,t,o,e)}:u}function bn(n,l,p,e,u,a){var t=p.O,o=Ye(u);n[l]=function(s,f,w){return t(s,f,w,e,o,a)}}function Rn(n,l,p,e,u,a,t){var o=p.O,s=me(e,u,a);n[l]=function(f,w,T){return o(f,w,T,e,s,t)}}function h(n){var l=n[vn];return l||be(n,n[vn]={},Yn,kn,bn,Rn)}function b(n,l,p){for(;se(l)&&l.h!=4;){var e=l.i,u=p[e];if(!u){var a=p[0];a&&(a=a[e])&&(u=p[e]=ke(a))}if((!u||!u(l,n,e))&&(u=l,e=n,a=u.j,Yt(u),!u.W)){var t=u.g.h;u=u.g.g,u=a===u?ce||(ce=new Uint8Array(0)):Be?t.slice(a,u):new Uint8Array(t.subarray(a,u)),(a=e.ba)?a.push(u):e.ba=[u]}}return n}function Z(n,l,p){if(Le.length){var e=Le.pop();n&&(Se(e.g,n),e.i=-1,e.h=-1),n=e}else n=new Pe(n);try{return b(new l,n,h(p))}finally{l=n.g,l.h=null,l.j=0,l.i=0,l.g=0,l.v=!1,n.i=-1,n.h=-1,100>Le.length&&Le.push(n)}}function Y(n,l,p){for(var e=p.length,u=e%2==1,a=u?1:0;a<e;a+=2)(0,p[a+1])(l,n,p[a]);ze(n,l,u?p[0]:void 0)}function _(n,l){var p=new He;Y(n,p,Ke(l)),ge(p,p.g.end()),n=new Uint8Array(p.h),l=p.i;for(var e=l.length,u=0,a=0;a<e;a++){var t=l[a];n.set(t,u),u+=t.length}return p.i=[n],n}function et(n,l){return{O:n,P:l}}var K=et(function(n,l,p){if(n.h!==5)return!1;n=n.g;var e=n.h[n.g],u=n.h[n.g+1],a=n.h[n.g+2],t=n.h[n.g+3];return n.g+=4,Lt(n),u=(e<<0|u<<8|a<<16|t<<24)>>>0,n=2*(u>>31)+1,e=u>>>23&255,u&=8388607,St(l,p,e==255?u?NaN:1/0*n:e==0?n*Math.pow(2,-149)*u:n*Math.pow(2,e-150)*(u+Math.pow(2,23))),!0},function(n,l,p){if(l=$t(l,p),l!=null){Xe(n.g,8*p+5),n=n.g;var e=l;e=(p=0>e?1:0)?-e:e,e===0?0<1/e?le=ae=0:(ae=0,le=2147483648):isNaN(e)?(ae=0,le=2147483647):34028234663852886e22<e?(ae=0,le=(p<<31|2139095040)>>>0):11754943508222875e-54>e?(e=Math.round(e/Math.pow(2,-149)),ae=0,le=(p<<31|e)>>>0):(l=Math.floor(Math.log(e)/Math.LN2),e*=Math.pow(2,-l),e=Math.round(8388608*e),16777216<=e&&++l,ae=0,le=(p<<31|l+127<<23|e&8388607)>>>0),p=le,n.g.push(p>>>0&255),n.g.push(p>>>8&255),n.g.push(p>>>16&255),n.g.push(p>>>24&255)}}),tt=et(function(n,l,p){if(n.h!==0)return!1;for(var e=n.g,u=128,a=0,t=n=0;4>t&&128<=u;t++)u=e.h[e.g++],Lt(e),a|=(u&127)<<7*t;if(128<=u&&(u=e.h[e.g++],Lt(e),a|=(u&127)<<28,n|=(u&127)>>4),128<=u)for(t=0;5>t&&128<=u;t++)u=e.h[e.g++],Lt(e),n|=(u&127)<<7*t+3;if(128>u)e=a>>>0,u=n>>>0,(n=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0);else throw Ut();return St(l,p,n?-e:e),!0},function(n,l,p){if(l=$t(l,p),l!=null&&l!=null){Xe(n.g,8*p),n=n.g;var e=l;for(p=0>e,e=Math.abs(e),l=e>>>0,e=Math.floor((e-l)/4294967296),e>>>=0,p&&(e=~e>>>0,l=(~l>>>0)+1,4294967295<l&&(l=0,e++,4294967295<e&&(e=0))),le=l,ae=e,p=le,l=ae;0<l||127<p;)n.g.push(p&127|128),p=(p>>>7|l<<25)>>>0,l>>>=7;n.g.push(p)}}),st=et(function(n,l,p){return n.h!==0?!1:(St(l,p,pe(n.g)),!0)},function(n,l,p){if(l=$t(l,p),l!=null&&l!=null)if(Xe(n.g,8*p),n=n.g,p=l,0<=p)Xe(n,p);else{for(l=0;9>l;l++)n.g.push(p&127|128),p>>=7;n.g.push(1)}}),mt=et(function(n,l,p){if(n.h!==2)return!1;var e=pe(n.g)>>>0;n=n.g;var u=n.g;n.g+=e,Lt(n),n=n.h;var a;if(Wn)(a=dn)||(a=dn=new TextDecoder("utf-8",{fatal:!0})),a=a.decode(n.subarray(u,u+e));else{e=u+e;for(var t=[],o=null,s,f,w;u<e;)s=n[u++],128>s?t.push(s):224>s?u>=e?We():(f=n[u++],194>s||(f&192)!==128?(u--,We()):t.push((s&31)<<6|f&63)):240>s?u>=e-1?We():(f=n[u++],(f&192)!==128||s===224&&160>f||s===237&&160<=f||((a=n[u++])&192)!==128?(u--,We()):t.push((s&15)<<12|(f&63)<<6|a&63)):244>=s?u>=e-2?We():(f=n[u++],(f&192)!==128||(s<<28)+(f-144)>>30!==0||((a=n[u++])&192)!==128||((w=n[u++])&192)!==128?(u--,We()):(s=(s&7)<<18|(f&63)<<12|(a&63)<<6|w&63,s-=65536,t.push((s>>10&1023)+55296,(s&1023)+56320))):We(),8192<=t.length&&(o=tn(o,t),t.length=0);a=tn(o,t)}return St(l,p,a),!0},function(n,l,p){if(l=$t(l,p),l!=null){var e=!1;if(e=e===void 0?!1:e,xn){if(e&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(l))throw Error("Found an unpaired surrogate");l=(Zn||(Zn=new TextEncoder)).encode(l)}else{for(var u=0,a=new Uint8Array(3*l.length),t=0;t<l.length;t++){var o=l.charCodeAt(t);if(128>o)a[u++]=o;else{if(2048>o)a[u++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&t<l.length){var s=l.charCodeAt(++t);if(56320<=s&&57343>=s){o=1024*(o-55296)+s-56320+65536,a[u++]=o>>18|240,a[u++]=o>>12&63|128,a[u++]=o>>6&63|128,a[u++]=o&63|128;continue}else t--}if(e)throw Error("Found an unpaired surrogate");o=65533}a[u++]=o>>12|224,a[u++]=o>>6&63|128}a[u++]=o&63|128}}l=a.subarray(0,u)}Xe(n.g,8*p+2),Xe(n.g,l.length),ge(n,n.g.end()),ge(n,l)}}),It=et(function(n,l,p,e,u){if(n.h!==2)return!1;l=Kt(l,p,e),p=n.g.i,e=pe(n.g)>>>0;var a=n.g.g+e,t=a-p;if(0>=t&&(n.g.i=a,u(l,n),t=a-n.g.g),t)throw Error("Message parsing ended unexpectedly. Expected to read "+(e+" bytes, instead read "+(e-t)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return n.g.g=a,n.g.i=p,!0},function(n,l,p,e,u){if(l=Ie(l,e,p),l!=null)for(e=0;e<l.length;e++){var a=n;Xe(a.g,8*p+2);var t=a.g.end();ge(a,t),t.push(a.h),a=t,u(l[e],n),t=n;var o=a.pop();for(o=t.h+t.g.length()-o;127<o;)a.push(o&127|128),o>>>=7,t.h++;a.push(o),t.h++}});function Gt(){De.apply(this,arguments)}if(Ft(Gt,De),kt){var jt={};Object.defineProperties(Gt,(jt[Symbol.hasInstance]=mn(Object[Symbol.hasInstance]),jt))}function Wt(n){Gt.call(this,n)}Ft(Wt,Gt);function Zt(){return[1,st,2,K,3,mt,4,mt]}function Tt(n){Gt.call(this,n,-1,Pt)}Ft(Tt,Gt),Tt.prototype.addClassification=function(n,l){return Kt(this,1,Wt,n,l),this};function Nt(){return[1,It,Wt,Zt]}var Pt=[1];function Dt(n){Gt.call(this,n)}Ft(Dt,Gt);function qt(){return[1,K,2,K,3,K,4,K,5,K]}function Ze(n){Gt.call(this,n,-1,d)}Ft(Ze,Gt);function c(){return[1,It,Dt,qt]}var d=[1];function m(n){Gt.call(this,n)}Ft(m,Gt);function F(){return[1,K,2,K,3,K,4,K,5,K,6,tt]}var j=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],B=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],C=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(dt(j),dt(B),dt(C),dt(D),dt(rt),dt(r));function X(n,l,p){if(p=n.createShader(p===0?n.VERTEX_SHADER:n.FRAGMENT_SHADER),n.shaderSource(p,l),n.compileShader(p),!n.getShaderParameter(p,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
56
55
|
|
|
57
|
-
`+n.getShaderInfoLog(p));return p}function
|
|
56
|
+
`+n.getShaderInfoLog(p));return p}function V(n){return Ie(n,Wt,1).map(function(l){return{index:Qt(l,1),ga:Mt(l,2),label:$t(l,3)!=null?Fe(l,3):void 0,displayName:$t(l,4)!=null?Fe(l,4):void 0}})}function E(n){return{x:Mt(n,1),y:Mt(n,2),z:Mt(n,3),visibility:$t(n,4)!=null?Mt(n,4):void 0}}function H(n,l){this.h=n,this.g=l,this.l=0}function J(n,l,p){return q(n,l),typeof n.g.canvas.transferToImageBitmap=="function"?Promise.resolve(n.g.canvas.transferToImageBitmap()):p?Promise.resolve(n.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(n.g.canvas):(n.i===void 0&&(n.i=document.createElement("canvas")),new Promise(function(e){n.i.height=n.g.canvas.height,n.i.width=n.g.canvas.width,n.i.getContext("2d",{}).drawImage(n.g.canvas,0,0,n.g.canvas.width,n.g.canvas.height),e(n.i)}))}function q(n,l){var p=n.g;if(n.o===void 0){var e=X(p,`
|
|
58
57
|
attribute vec2 aVertex;
|
|
59
58
|
attribute vec2 aTex;
|
|
60
59
|
varying vec2 vTex;
|
|
61
60
|
void main(void) {
|
|
62
61
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
63
62
|
vTex = aTex;
|
|
64
|
-
}`,0),u=
|
|
63
|
+
}`,0),u=X(p,`
|
|
65
64
|
precision mediump float;
|
|
66
65
|
varying vec2 vTex;
|
|
67
66
|
uniform sampler2D sampler0;
|
|
@@ -69,55 +68,56 @@
|
|
|
69
68
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
70
69
|
}`,1),a=p.createProgram();if(p.attachShader(a,e),p.attachShader(a,u),p.linkProgram(a),!p.getProgramParameter(a,p.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
71
70
|
|
|
72
|
-
`+p.getProgramInfoLog(a));e=n.o=a,p.useProgram(e),u=p.getUniformLocation(e,"sampler0"),n.j={K:p.getAttribLocation(e,"aVertex"),J:p.getAttribLocation(e,"aTex"),ma:u},n.u=p.createBuffer(),p.bindBuffer(p.ARRAY_BUFFER,n.u),p.enableVertexAttribArray(n.j.K),p.vertexAttribPointer(n.j.K,2,p.FLOAT,!1,0,0),p.bufferData(p.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),p.STATIC_DRAW),p.bindBuffer(p.ARRAY_BUFFER,null),n.s=p.createBuffer(),p.bindBuffer(p.ARRAY_BUFFER,n.s),p.enableVertexAttribArray(n.j.J),p.vertexAttribPointer(n.j.J,2,p.FLOAT,!1,0,0),p.bufferData(p.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),p.STATIC_DRAW),p.bindBuffer(p.ARRAY_BUFFER,null),p.uniform1i(u,0)}e=n.j,p.useProgram(n.o),p.canvas.width=l.width,p.canvas.height=l.height,p.viewport(0,0,l.width,l.height),p.activeTexture(p.TEXTURE0),n.h.bindTexture2d(l.glName),p.enableVertexAttribArray(e.K),p.bindBuffer(p.ARRAY_BUFFER,n.u),p.vertexAttribPointer(e.K,2,p.FLOAT,!1,0,0),p.enableVertexAttribArray(e.J),p.bindBuffer(p.ARRAY_BUFFER,n.s),p.vertexAttribPointer(e.J,2,p.FLOAT,!1,0,0),p.bindFramebuffer(p.DRAW_FRAMEBUFFER?p.DRAW_FRAMEBUFFER:p.FRAMEBUFFER,null),p.clearColor(0,0,0,0),p.clear(p.COLOR_BUFFER_BIT),p.colorMask(!0,!0,!0,!0),p.drawArrays(p.TRIANGLE_FAN,0,4),p.disableVertexAttribArray(e.K),p.disableVertexAttribArray(e.J),p.bindBuffer(p.ARRAY_BUFFER,null),n.h.bindTexture2d(0)}function z(n){this.g=n}var lt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function pt(n,l){return l+n}function Ft(n,l){window[n]=l}function yt(n){var l=document.createElement("script");return l.setAttribute("src",n),l.setAttribute("crossorigin","anonymous"),new Promise(function(p){l.addEventListener("load",function(){p()},!1),l.addEventListener("error",function(){p()},!1),document.body.appendChild(l)})}function it(){return ht(function(n){switch(n.g){case 1:return n.o=2,$(n,WebAssembly.instantiate(lt),4);case 4:n.g=3,n.o=0;break;case 2:return n.o=0,n.j=null,n.return(!1);case 3:return n.return(!0)}})}function gt(n){if(this.g=n,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=n&&n.locateFile||pt,typeof window=="object")var l=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")l=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.$=l,n.options){l=C(Object.keys(n.options));for(var p=l.next();!p.done;p=l.next()){p=p.value;var e=n.options[p].default;e!==void 0&&(this.j[p]=typeof e=="function"?e():e)}}}V=gt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function vt(n){var l,p,e,u,a,t,o,s,h,R,T;return ht(function(I){switch(I.g){case 1:return n.Z?(l=n.g.files===void 0?[]:typeof n.g.files=="function"?n.g.files(n.j):n.g.files,$(I,it(),2)):I.return();case 2:if(p=I.h,typeof window=="object")return Ft("createMediapipeSolutionsWasm",{locateFile:n.locateFile}),Ft("createMediapipeSolutionsPackedAssets",{locateFile:n.locateFile}),t=l.filter(function(Y){return Y.data!==void 0}),o=l.filter(function(Y){return Y.data===void 0}),s=Promise.all(t.map(function(Y){var K=i(n,Y.url);if(Y.path!==void 0){var B=Y.path;K=K.then(function(M){return n.overrideFile(B,M),Promise.resolve(M)})}return K})),h=Promise.all(o.map(function(Y){return Y.simd===void 0||Y.simd&&p||!Y.simd&&!p?yt(n.locateFile(Y.url,n.$)):Promise.resolve()})).then(function(){var Y,K,B;return ht(function(M){if(M.g==1)return Y=window.createMediapipeSolutionsWasm,K=window.createMediapipeSolutionsPackedAssets,B=n,$(M,Y(K),2);B.h=M.h,M.g=0})}),R=function(){return ht(function(Y){return n.g.graph&&n.g.graph.url?Y=$(Y,i(n,n.g.graph.url),0):(Y.g=0,Y=void 0),Y})}(),$(I,Promise.all([h,s,R]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return e=l.filter(function(Y){return Y.simd===void 0||Y.simd&&p||!Y.simd&&!p}).map(function(Y){return n.locateFile(Y.url,n.$)}),importScripts.apply(null,dt(e)),u=n,$(I,createMediapipeSolutionsWasm(Module),6);case 6:u.h=I.h,n.l=new OffscreenCanvas(1,1),n.h.canvas=n.l,a=n.h.GL.createContext(n.l,{antialias:!1,alpha:!1,ja:typeof WebGL2RenderingContext!="undefined"?2:1}),n.h.GL.makeContextCurrent(a),I.g=4;break;case 7:if(n.l=document.createElement("canvas"),T=n.l.getContext("webgl2",{}),!T&&(T=n.l.getContext("webgl",{}),!T))return alert("Failed to create WebGL canvas context when passing video frame."),I.return();n.G=T,n.h.canvas=n.l,n.h.createContext(n.l,!0,!0,{});case 4:n.i=new n.h.SolutionWasm,n.Z=!1,I.g=0}})}function Gt(n){var l,p,e,u,a,t,o,s;return ht(function(h){if(h.g==1){if(n.g.graph&&n.g.graph.url&&n.Y===n.g.graph.url)return h.return();if(n.s=!0,!n.g.graph||!n.g.graph.url){h.g=2;return}return n.Y=n.g.graph.url,$(h,i(n,n.g.graph.url),3)}for(h.g!=2&&(l=h.h,n.i.loadGraph(l)),p=C(Object.keys(n.C)),e=p.next();!e.done;e=p.next())u=e.value,n.i.overrideFile(u,n.C[u]);if(n.C={},n.g.listeners)for(a=C(n.g.listeners),t=a.next();!t.done;t=a.next())o=t.value,w(n,o);s=n.j,n.j={},n.setOptions(s),h.g=0})}V.reset=function(){var n=this;return ht(function(l){n.i&&(n.i.reset(),n.o={},n.u={}),l.g=0})},V.setOptions=function(n,l){var p=this;if(l=l||this.g.options){for(var e=[],u=[],a={},t=C(Object.keys(n)),o=t.next();!o.done;a={R:a.R,S:a.S},o=t.next()){var s=o.value;s in this.j&&this.j[s]===n[s]||(this.j[s]=n[s],o=l[s],o!==void 0&&(o.onChange&&(a.R=o.onChange,a.S=n[s],e.push(function(h){return function(){var R;return ht(function(T){if(T.g==1)return $(T,h.R(h.S),2);R=T.h,R===!0&&(p.s=!0),T.g=0})}}(a))),o.graphOptionXref&&(s={valueNumber:o.type===1?n[s]:0,valueBoolean:o.type===0?n[s]:!1,valueString:o.type===2?n[s]:""},o=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),o.graphOptionXref),s),u.push(o))))}(e.length!==0||u.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(u),this.A=(this.A===void 0?[]:this.A).concat(e))}};function Rt(n){var l,p,e,u,a,t,o;return ht(function(s){switch(s.g){case 1:if(!n.s)return s.return();if(!n.A){s.g=2;break}l=C(n.A),p=l.next();case 3:if(p.done){s.g=5;break}return e=p.value,$(s,e(),4);case 4:p=l.next(),s.g=3;break;case 5:n.A=void 0;case 2:if(n.B){for(u=new n.h.GraphOptionChangeRequestList,a=C(n.B),t=a.next();!t.done;t=a.next())o=t.value,u.push_back(o);n.i.changeOptions(u),u.delete(),n.B=void 0}n.s=!1,s.g=0}})}V.initialize=function(){var n=this;return ht(function(l){return l.g==1?$(l,vt(n),2):l.g!=3?$(l,Gt(n),3):$(l,Rt(n),0)})};function i(n,l){var p,e;return ht(function(u){return l in n.H?u.return(n.H[l]):(p=n.locateFile(l,""),e=fetch(p).then(function(a){return a.arrayBuffer()}),n.H[l]=e,u.return(e))})}V.overrideFile=function(n,l){this.i?this.i.overrideFile(n,l):this.C[n]=l},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(n,l){var p=this,e,u,a,t,o,s,h,R,T;return ht(function(I){switch(I.g){case 1:return p.g.inputs?(e=1e3*(l==null?performance.now():l),$(I,p.D,2)):I.return();case 2:return $(I,p.initialize(),3);case 3:for(u=new p.h.PacketDataList,a=C(Object.keys(n)),t=a.next();!t.done;t=a.next())if(o=t.value,s=p.g.inputs[o]){t:{var Y=n[o];switch(s.type){case"video":var K=p.o[s.stream];if(K||(K=new J(p.h,p.G),p.o[s.stream]=K),K.l===0&&(K.l=K.h.createTexture()),typeof HTMLVideoElement!="undefined"&&Y instanceof HTMLVideoElement)var B=Y.videoWidth,M=Y.videoHeight;else typeof HTMLImageElement!="undefined"&&Y instanceof HTMLImageElement?(B=Y.naturalWidth,M=Y.naturalHeight):(B=Y.width,M=Y.height);M={glName:K.l,width:B,height:M},B=K.g,B.canvas.width=M.width,B.canvas.height=M.height,B.activeTexture(B.TEXTURE0),K.h.bindTexture2d(K.l),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,Y),K.h.bindTexture2d(0),K=M;break t;case"detections":for(K=p.o[s.stream],K||(K=new z(p.h),p.o[s.stream]=K),K.data||(K.data=new K.g.DetectionListData),K.data.reset(Y.length),M=0;M<Y.length;++M){B=Y[M];var nt=K.data,ot=nt.setBoundingBox,ut=M,ft=B.boundingBox,at=new m;if(Vt(at,1,ft.xCenter),Vt(at,2,ft.yCenter),Vt(at,3,ft.height),Vt(at,4,ft.width),Vt(at,5,ft.rotation),Vt(at,6,ft.rectId),ft=_(at,x),ot.call(nt,ut,ft),B.landmarks)for(nt=0;nt<B.landmarks.length;++nt){at=B.landmarks[nt];var Et=!!at.visibility;ot=K.data,ut=ot.addNormalizedLandmark,ft=M,at=Object.assign(Object.assign({},at),{visibility:Et?at.visibility:0}),Et=new Dt,Vt(Et,1,at.x),Vt(Et,2,at.y),Vt(Et,3,at.z),at.visibility&&Vt(Et,4,at.visibility),at=_(Et,qt),ut.call(ot,ft,at)}if(B.V)for(nt=0;nt<B.V.length;++nt)ot=K.data,ut=ot.addClassification,ft=M,at=B.V[nt],Et=new Wt,Vt(Et,2,at.ga),at.index&&Vt(Et,1,at.index),at.label&&Vt(Et,3,at.label),at.displayName&&Vt(Et,4,at.displayName),at=_(Et,Zt),ut.call(ot,ft,at)}K=K.data;break t;default:K={}}}switch(h=K,R=s.stream,s.type){case"video":u.pushTexture2d(Object.assign(Object.assign({},h),{stream:R,timestamp:e}));break;case"detections":T=h,T.stream=R,T.timestamp=e,u.pushDetectionList(T);break;default:throw Error("Unknown input config type: '"+s.type+"'")}}return p.i.send(u),$(I,p.D,4);case 4:u.delete(),I.g=0}})};function g(n,l,p){var e,u,a,t,o,s,h,R,T,I,Y,K,B,M;return ht(function(nt){switch(nt.g){case 1:if(!p)return nt.return(l);for(e={},u=0,a=C(Object.keys(p)),t=a.next();!t.done;t=a.next())o=t.value,s=p[o],typeof s!="string"&&s.type==="texture"&&l[s.stream]!==void 0&&++u;1<u&&(n.I=!1),h=C(Object.keys(p)),t=h.next();case 2:if(t.done){nt.g=4;break}if(R=t.value,T=p[R],typeof T=="string")return B=e,M=R,$(nt,X(n,R,l[T]),14);if(I=l[T.stream],T.type==="detection_list"){if(I){for(var ot=I.getRectList(),ut=I.getLandmarksList(),ft=I.getClassificationsList(),at=[],Et=0;Et<ot.size();++Et){var _t=Z(ot.get(Et),m,x);_t={boundingBox:{xCenter:zt(_t,1),yCenter:zt(_t,2),height:zt(_t,3),width:zt(_t,4),rotation:zt(_t,5,0),rectId:Qt(_t,6)},landmarks:Ie(Z(ut.get(Et),Ze,c),Dt,1).map(E),V:S(Z(ft.get(Et),Tt,Nt))},at.push(_t)}ot=at}else ot=[];e[R]=ot,nt.g=7;break}if(T.type==="proto_list"){if(I){for(ot=Array(I.size()),ut=0;ut<I.size();ut++)ot[ut]=I.get(ut);I.delete()}else ot=[];e[R]=ot,nt.g=7;break}if(I===void 0){nt.g=3;break}if(T.type==="float_list"){e[R]=I,nt.g=7;break}if(T.type==="proto"){e[R]=I,nt.g=7;break}if(T.type!=="texture")throw Error("Unknown output config type: '"+T.type+"'");return Y=n.u[R],Y||(Y=new J(n.h,n.G),n.u[R]=Y),$(nt,k(Y,I,n.I),13);case 13:K=nt.h,e[R]=K;case 7:T.transform&&e[R]&&(e[R]=T.transform(e[R])),nt.g=3;break;case 14:B[M]=nt.h;case 3:t=h.next(),nt.g=2;break;case 4:return nt.return(e)}})}function X(n,l,p){var e;return ht(function(u){return typeof p=="number"||p instanceof Uint8Array||p instanceof n.h.Uint8BlobList?u.return(p):p instanceof n.h.Texture2dDataOut?(e=n.u[l],e||(e=new J(n.h,n.G),n.u[l]=e),u.return(k(e,p,n.I))):u.return(void 0)})}function w(n,l){for(var p=l.name||"$",e=[].concat(dt(l.wants)),u=new n.h.StringList,a=C(l.wants),t=a.next();!t.done;t=a.next())u.push_back(t.value);a=n.h.PacketListener.implement({onResults:function(o){for(var s={},h=0;h<l.wants.length;++h)s[e[h]]=o.get(h);var R=n.listeners[p];R&&(n.D=g(n,s,l.outs).then(function(T){T=R(T);for(var I=0;I<l.wants.length;++I){var Y=s[e[I]];typeof Y=="object"&&Y.hasOwnProperty&&Y.hasOwnProperty("delete")&&Y.delete()}T&&(n.D=T)}))}}),n.i.attachMultiListener(u,a),u.delete()}V.onResults=function(n,l){this.listeners[l||"$"]=n},St("Solution",gt),St("OptionType",{BOOL:0,NUMBER:1,ia:2,0:"BOOL",1:"NUMBER",2:"STRING"});function N(n){var l=this;n=n||{};var p={url:"face_detection_short.binarypb"},e={type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}};this.g=new gt({locateFile:n.locateFile,files:[{data:!0,url:"face_detection_short.binarypb"},{data:!0,url:"face_detection_short_range.tflite"},{simd:!0,url:"face_detection_solution_simd_wasm_bin.js"},{simd:!1,url:"face_detection_solution_wasm_bin.js"}],graph:p,listeners:[{wants:["detections","image_transformed"],outs:{image:"image_transformed",detections:{type:"detection_list",stream:"detections"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},model:{type:0,onChange:function(u){var a,t,o,s,h,R;return ht(function(T){switch(T.g){case 1:a=u==="short"?["face_detection_short_range.tflite"]:["face_detection_full_range_sparse.tflite"],t=C(a),o=t.next();case 2:if(o.done){T.g=4;break}return s=o.value,h="third_party/mediapipe/modules/face_detection/"+s,$(T,i(l.g,s),5);case 5:R=T.h,l.g.overrideFile(h,R),o=t.next(),T.g=2;break;case 4:return p.url=u==="short"?"face_detection_short.binarypb":"face_detection_full.binarypb",e.graphOptionXref.calculatorName=u==="short"?"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator":"facedetectionfullrangegpu__facedetectionfullrangecommon__TensorsToDetectionsCalculator",T.return(!0)}})}},minDetectionConfidence:e}})}V=N.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(n){this.g.onResults(n)},V.initialize=function(){var n=this;return ht(function(l){return $(l,n.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(n){var l=this;return ht(function(p){return $(p,l.g.send(n),0)})},V.setOptions=function(n){this.g.setOptions(n)},St("FaceDetection",N),St("FACEDETECTION_LIPS",j),St("FACEDETECTION_LEFT_EYE",P),St("FACEDETECTION_LEFT_EYEBROW",H),St("FACEDETECTION_RIGHT_EYE",D),St("FACEDETECTION_RIGHT_EYEBROW",rt),St("FACEDETECTION_FACE_OVAL",r),St("FACEDETECTION_CONTOURS",y),St("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),St("VERSION","0.4.1646425229")}).call(Fr);const xr={};(function(){var V;function v(c){var d=0;return function(){return d<c.length?{done:!1,value:c[d++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(c,d,m){return c==Array.prototype||c==Object.prototype||(c[d]=m.value),c};function L(c){c=[typeof globalThis=="object"&&globalThis,c,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var d=0;d<c.length;++d){var m=c[d];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var F=L(this);function A(c,d){if(d)t:{var m=F;c=c.split(".");for(var x=0;x<c.length-1;x++){var j=c[x];if(!(j in m))break t;m=m[j]}c=c[c.length-1],x=m[c],d=d(x),d!=x&&d!=null&&W(m,c,{configurable:!0,writable:!0,value:d})}}A("Symbol",function(c){function d(P){if(this instanceof d)throw new TypeError("Symbol is not a constructor");return new m(x+(P||"")+"_"+j++,P)}function m(P,H){this.g=P,W(this,"description",{configurable:!0,writable:!0,value:H})}if(c)return c;m.prototype.toString=function(){return this.g};var x="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",j=0;return d}),A("Symbol.iterator",function(c){if(c)return c;c=Symbol("Symbol.iterator");for(var d="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),m=0;m<d.length;m++){var x=F[d[m]];typeof x=="function"&&typeof x.prototype[c]!="function"&&W(x.prototype,c,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return c});function Q(c){return c={next:c},c[Symbol.iterator]=function(){return this},c}function C(c){var d=typeof Symbol!="undefined"&&Symbol.iterator&&c[Symbol.iterator];return d?d.call(c):{next:v(c)}}function dt(c){if(!(c instanceof Array)){c=C(c);for(var d,m=[];!(d=c.next()).done;)m.push(d.value);c=m}return c}var _e=typeof Object.create=="function"?Object.create:function(c){function d(){}return d.prototype=c,new d},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(c,d){if(c.__proto__=d,c.__proto__!==d)throw new TypeError(c+" is not extensible");return c}:null}var je=ct;function xt(c,d){if(c.prototype=_e(d.prototype),c.prototype.constructor=c,je)je(c,d);else for(var m in d)if(m!="prototype")if(Object.defineProperties){var x=Object.getOwnPropertyDescriptor(d,m);x&&Object.defineProperty(c,m,x)}else c[m]=d[m];c.ea=d.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(c){if(c.l)throw new TypeError("Generator is already running");c.l=!0}ue.prototype.o=function(c){this.h=c};function he(c,d){c.j={U:d,V:!0},c.g=c.m||c.s}ue.prototype.return=function(c){this.j={return:c},this.g=this.s};function $(c,d,m){return c.g=m,{value:d}}function In(c){this.g=new ue,this.h=c}function jn(c,d){de(c.g);var m=c.g.i;return m?He(c,"return"in m?m.return:function(x){return{value:x,done:!0}},d,c.g.return):(c.g.return(d),ee(c))}function He(c,d,m,x){try{var j=d.call(c.g.i,m);if(!(j instanceof Object))throw new TypeError("Iterator result "+j+" is not an object");if(!j.done)return c.g.l=!1,j;var P=j.value}catch(H){return c.g.i=null,he(c.g,H),ee(c)}return c.g.i=null,x.call(c.g,P),ee(c)}function ee(c){for(;c.g.g;)try{var d=c.h(c.g);if(d)return c.g.l=!1,{value:d.value,done:!1}}catch(m){c.g.h=void 0,he(c.g,m)}if(c.g.l=!1,c.g.j){if(d=c.g.j,c.g.j=null,d.V)throw d.U;return{value:d.return,done:!0}}return{value:void 0,done:!0}}function Hn(c){this.next=function(d){return de(c.g),c.g.i?d=He(c,c.g.i.next,d,c.g.o):(c.g.o(d),d=ee(c)),d},this.throw=function(d){return de(c.g),c.g.i?d=He(c,c.g.i.throw,d,c.g.o):(he(c.g,d),d=ee(c)),d},this.return=function(d){return jn(c,d)},this[Symbol.iterator]=function(){return this}}function te(c,d){return d=new Hn(new In(d)),je&&c.prototype&&je(d,c.prototype),d}function ht(c,d){c instanceof String&&(c+="");var m=0,x=!1,j={next:function(){if(!x&&m<c.length){var P=m++;return{value:d(P,c[P]),done:!1}}return x=!0,{done:!0,value:void 0}}};return j[Symbol.iterator]=function(){return j},j}var Jn=typeof Object.assign=="function"?Object.assign:function(c,d){for(var m=1;m<arguments.length;m++){var x=arguments[m];if(x)for(var j in x)Object.prototype.hasOwnProperty.call(x,j)&&(c[j]=x[j])}return c};A("Object.assign",function(c){return c||Jn}),A("Promise",function(c){function d(H){this.h=0,this.i=void 0,this.g=[],this.o=!1;var D=this.j();try{H(D.resolve,D.reject)}catch(rt){D.reject(rt)}}function m(){this.g=null}function x(H){return H instanceof d?H:new d(function(D){D(H)})}if(c)return c;m.prototype.h=function(H){if(this.g==null){this.g=[];var D=this;this.i(function(){D.l()})}this.g.push(H)};var j=F.setTimeout;m.prototype.i=function(H){j(H,0)},m.prototype.l=function(){for(;this.g&&this.g.length;){var H=this.g;this.g=[];for(var D=0;D<H.length;++D){var rt=H[D];H[D]=null;try{rt()}catch(r){this.j(r)}}}this.g=null},m.prototype.j=function(H){this.i(function(){throw H})},d.prototype.j=function(){function H(r){return function(y){rt||(rt=!0,r.call(D,y))}}var D=this,rt=!1;return{resolve:H(this.C),reject:H(this.l)}},d.prototype.C=function(H){if(H===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(H instanceof d)this.F(H);else{t:switch(typeof H){case"object":var D=H!=null;break t;case"function":D=!0;break t;default:D=!1}D?this.u(H):this.m(H)}},d.prototype.u=function(H){var D=void 0;try{D=H.then}catch(rt){this.l(rt);return}typeof D=="function"?this.G(D,H):this.m(H)},d.prototype.l=function(H){this.s(2,H)},d.prototype.m=function(H){this.s(1,H)},d.prototype.s=function(H,D){if(this.h!=0)throw Error("Cannot settle("+H+", "+D+"): Promise already settled in state"+this.h);this.h=H,this.i=D,this.h===2&&this.D(),this.A()},d.prototype.D=function(){var H=this;j(function(){if(H.B()){var D=F.console;typeof D!="undefined"&&D.error(H.i)}},1)},d.prototype.B=function(){if(this.o)return!1;var H=F.CustomEvent,D=F.Event,rt=F.dispatchEvent;return typeof rt=="undefined"?!0:(typeof H=="function"?H=new H("unhandledrejection",{cancelable:!0}):typeof D=="function"?H=new D("unhandledrejection",{cancelable:!0}):(H=F.document.createEvent("CustomEvent"),H.initCustomEvent("unhandledrejection",!1,!0,H)),H.promise=this,H.reason=this.i,rt(H))},d.prototype.A=function(){if(this.g!=null){for(var H=0;H<this.g.length;++H)P.h(this.g[H]);this.g=null}};var P=new m;return d.prototype.F=function(H){var D=this.j();H.J(D.resolve,D.reject)},d.prototype.G=function(H,D){var rt=this.j();try{H.call(D,rt.resolve,rt.reject)}catch(r){rt.reject(r)}},d.prototype.then=function(H,D){function rt(S,E){return typeof S=="function"?function(J){try{r(S(J))}catch(k){y(k)}}:E}var r,y,G=new d(function(S,E){r=S,y=E});return this.J(rt(H,r),rt(D,y)),G},d.prototype.catch=function(H){return this.then(void 0,H)},d.prototype.J=function(H,D){function rt(){switch(r.h){case 1:H(r.i);break;case 2:D(r.i);break;default:throw Error("Unexpected state: "+r.h)}}var r=this;this.g==null?P.h(rt):this.g.push(rt),this.o=!0},d.resolve=x,d.reject=function(H){return new d(function(D,rt){rt(H)})},d.race=function(H){return new d(function(D,rt){for(var r=C(H),y=r.next();!y.done;y=r.next())x(y.value).J(D,rt)})},d.all=function(H){var D=C(H),rt=D.next();return rt.done?x([]):new d(function(r,y){function G(J){return function(k){S[J]=k,E--,E==0&&r(S)}}var S=[],E=0;do S.push(void 0),E++,x(rt.value).J(G(S.length-1),y),rt=D.next();while(!rt.done)})},d}),A("Object.is",function(c){return c||function(d,m){return d===m?d!==0||1/d===1/m:d!==d&&m!==m}}),A("Array.prototype.includes",function(c){return c||function(d,m){var x=this;x instanceof String&&(x=String(x));var j=x.length;for(m=m||0,0>m&&(m=Math.max(m+j,0));m<j;m++){var P=x[m];if(P===d||Object.is(P,d))return!0}return!1}}),A("String.prototype.includes",function(c){return c||function(d,m){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(d instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(d,m||0)!==-1}}),A("Array.prototype.keys",function(c){return c||function(){return ht(this,function(d){return d})}});var Cn=this||self;function ye(c,d){c=c.split(".");var m=Cn;c[0]in m||typeof m.execScript=="undefined"||m.execScript("var "+c[0]);for(var x;c.length&&(x=c.shift());)c.length||d===void 0?m[x]&&m[x]!==Object.prototype[x]?m=m[x]:m=m[x]={}:m[x]=d}function St(c,d){return d=String.fromCharCode.apply(null,d),c==null?d:c+d}var We,tn=typeof TextDecoder!="undefined",hn,Wn=typeof TextEncoder!="undefined";function bn(c){if(Wn)c=(hn||(hn=new TextEncoder)).encode(c);else{var d=void 0;d=d===void 0?!1:d;for(var m=0,x=new Uint8Array(3*c.length),j=0;j<c.length;j++){var P=c.charCodeAt(j);if(128>P)x[m++]=P;else{if(2048>P)x[m++]=P>>6|192;else{if(55296<=P&&57343>=P){if(56319>=P&&j<c.length){var H=c.charCodeAt(++j);if(56320<=H&&57343>=H){P=1024*(P-55296)+H-56320+65536,x[m++]=P>>18|240,x[m++]=P>>12&63|128,x[m++]=P>>6&63|128,x[m++]=P&63|128;continue}else j--}if(d)throw Error("Found an unpaired surrogate");P=65533}x[m++]=P>>12|224,x[m++]=P>>6&63|128}x[m++]=P&63|128}}c=x.subarray(0,m)}return c}var Fn={},en=null;function un(c,d){d===void 0&&(d=0),dn(),d=Fn[d];for(var m=Array(Math.floor(c.length/3)),x=d[64]||"",j=0,P=0;j<c.length-2;j+=3){var H=c[j],D=c[j+1],rt=c[j+2],r=d[H>>2];H=d[(H&3)<<4|D>>4],D=d[(D&15)<<2|rt>>6],rt=d[rt&63],m[P++]=r+H+D+rt}switch(r=0,rt=x,c.length-j){case 2:r=c[j+1],rt=d[(r&15)<<2]||x;case 1:c=c[j],m[P]=d[c>>2]+d[(c&3)<<4|r>>4]+rt+x}return m.join("")}function Ln(c){var d=c.length,m=3*d/4;m%3?m=Math.floor(m):"=.".indexOf(c[d-1])!=-1&&(m="=.".indexOf(c[d-2])!=-1?m-2:m-1);var x=new Uint8Array(m),j=0;return Vn(c,function(P){x[j++]=P}),x.subarray(0,j)}function Vn(c,d){function m(rt){for(;x<c.length;){var r=c.charAt(x++),y=en[r];if(y!=null)return y;if(!/^[\s\xa0]*$/.test(r))throw Error("Unknown base64 encoding at char: "+r)}return rt}dn();for(var x=0;;){var j=m(-1),P=m(0),H=m(64),D=m(64);if(D===64&&j===-1)break;d(j<<2|P>>4),H!=64&&(d(P<<4&240|H>>2),D!=64&&d(H<<6&192|D))}}function dn(){if(!en){en={};for(var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),d=["+/=","+/","-_=","-_.","-_"],m=0;5>m;m++){var x=c.concat(d[m].split(""));Fn[m]=x;for(var j=0;j<x.length;j++){var P=x[j];en[P]===void 0&&(en[P]=j)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Zn;function pn(c,d,m){return d===m?Zn||(Zn=new Uint8Array(0)):nn?c.slice(d,m):new Uint8Array(c.subarray(d,m))}var ce=0,ve=0;function Pe(c,d){d=d===void 0?{}:d,d=d.v===void 0?!1:d.v,this.h=null,this.g=this.j=this.l=0,this.m=!1,this.v=d,c&&le(this,c)}function le(c,d){d=d.constructor===Uint8Array?d:d.constructor===ArrayBuffer?new Uint8Array(d):d.constructor===Array?new Uint8Array(d):d.constructor===String?Ln(d):d instanceof Uint8Array?new Uint8Array(d.buffer,d.byteOffset,d.byteLength):new Uint8Array(0),c.h=d,c.l=0,c.j=c.h.length,c.g=c.l}Pe.prototype.reset=function(){this.g=this.l};function ae(c){for(var d=128,m=0,x=0,j=0;4>j&&128<=d;j++)d=c.h[c.g++],m|=(d&127)<<7*j;if(128<=d&&(d=c.h[c.g++],m|=(d&127)<<28,x|=(d&127)>>4),128<=d)for(j=0;5>j&&128<=d;j++)d=c.h[c.g++],x|=(d&127)<<7*j+3;if(128>d)return c=m>>>0,d=x>>>0,(x=d&2147483648)&&(c=~c+1>>>0,d=~d>>>0,c==0&&(d=d+1>>>0)),c=4294967296*d+(c>>>0),x?-c:c;c.m=!0}Pe.prototype.i=function(){var c=this.h,d=c[this.g],m=d&127;return 128>d?(this.g+=1,m):(d=c[this.g+1],m|=(d&127)<<7,128>d?(this.g+=2,m):(d=c[this.g+2],m|=(d&127)<<14,128>d?(this.g+=3,m):(d=c[this.g+3],m|=(d&127)<<21,128>d?(this.g+=4,m):(d=c[this.g+4],m|=(d&15)<<28,128>d?(this.g+=5,m>>>0):(this.g+=5,128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&this.g++,m)))))},Pe.prototype.o=function(){var c=this.h[this.g],d=this.h[this.g+1],m=this.h[this.g+2],x=this.h[this.g+3];return this.g+=4,m=(c<<0|d<<8|m<<16|x<<24)>>>0,c=2*(m>>31)+1,d=m>>>23&255,m&=8388607,d==255?m?NaN:1/0*c:d==0?c*Math.pow(2,-149)*m:c*Math.pow(2,d-150)*(m+Math.pow(2,23))};var ze=[];function Fe(){this.g=new Uint8Array(64),this.h=0}Fe.prototype.push=function(c){if(!(this.h+1<this.g.length)){var d=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(d)}this.g[this.h++]=c},Fe.prototype.length=function(){return this.h},Fe.prototype.end=function(){var c=this.g,d=this.h;return this.h=0,pn(c,0,d)};function Ct(c,d){for(;127<d;)c.push(d&127|128),d>>>=7;c.push(d)}function re(c){var d={},m=d.N===void 0?!1:d.N;this.o={v:d.v===void 0?!1:d.v},this.N=m,d=this.o,ze.length?(m=ze.pop(),d&&(m.v=d.v),c&&le(m,c),c=m):c=new Pe(c,d),this.g=c,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}re.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function Ve(c){var d=c.g;if((d=d.g==d.j)||(d=c.j)||(d=c.g,d=d.m||0>d.g||d.g>d.j),d)return!1;c.m=c.g.g,d=c.g.i();var m=d&7;return m!=0&&m!=5&&m!=1&&m!=2&&m!=3&&m!=4?(c.j=!0,!1):(c.i=d,c.l=d>>>3,c.h=m,!0)}function Lt(c){switch(c.h){case 0:if(c.h!=0)Lt(c);else{for(c=c.g;c.h[c.g]&128;)c.g++;c.g++}break;case 1:c.h!=1?Lt(c):(c=c.g,c.g+=8);break;case 2:if(c.h!=2)Lt(c);else{var d=c.g.i();c=c.g,c.g+=d}break;case 5:c.h!=5?Lt(c):(c=c.g,c.g+=4);break;case 3:d=c.l;do{if(!Ve(c)){c.j=!0;break}if(c.h==4){c.l!=d&&(c.j=!0);break}Lt(c)}while(1);break;default:c.j=!0}}function pe(c,d,m){var x=c.g.j,j=c.g.i(),P=c.g.g+j;if(c.g.j=P,m(d,c),m=P-c.g.g,m!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+j+" bytes, instead read "+(j-m)+" bytes, either the data ended unexpectedly or the message misreported its own length");return c.g.g=P,c.g.j=x,d}function At(c){return c.g.o()}function ne(c){var d=c.g.i();c=c.g;var m=c.g;c.g+=d,c=c.h;var x;if(tn)(x=We)||(x=We=new TextDecoder("utf-8",{fatal:!1})),x=x.decode(c.subarray(m,m+d));else{d=m+d;for(var j=[],P=null,H,D,rt;m<d;)H=c[m++],128>H?j.push(H):224>H?m>=d?j.push(65533):(D=c[m++],194>H||(D&192)!==128?(m--,j.push(65533)):j.push((H&31)<<6|D&63)):240>H?m>=d-1?j.push(65533):(D=c[m++],(D&192)!==128||H===224&&160>D||H===237&&160<=D||((x=c[m++])&192)!==128?(m--,j.push(65533)):j.push((H&15)<<12|(D&63)<<6|x&63)):244>=H?m>=d-2?j.push(65533):(D=c[m++],(D&192)!==128||(H<<28)+(D-144)>>30!==0||((x=c[m++])&192)!==128||((rt=c[m++])&192)!==128?(m--,j.push(65533)):(H=(H&7)<<18|(D&63)<<12|(x&63)<<6|rt&63,H-=65536,j.push((H>>10&1023)+55296,(H&1023)+56320))):j.push(65533),8192<=j.length&&(P=St(P,j),j.length=0);x=St(P,j)}return x}function Ge(c,d,m){var x=c.g.i();for(x=c.g.g+x;c.g.g<x;)m.push(d.call(c.g))}function Be(c,d){c.h==2?Ge(c,Pe.prototype.o,d):d.push(At(c))}function se(){this.h=[],this.i=0,this.g=new Fe}function Ut(c,d){d.length!==0&&(c.h.push(d),c.i+=d.length)}function Le(c){var d=c.i+c.g.length();if(d===0)return new Uint8Array(0);d=new Uint8Array(d);for(var m=c.h,x=m.length,j=0,P=0;P<x;P++){var H=m[P];H.length!==0&&(d.set(H,j),j+=H.length)}return m=c.g,x=m.h,x!==0&&(d.set(m.g.subarray(0,x),j),m.h=0),c.h=[d],d}function Je(c,d,m){if(m!=null){Ct(c.g,8*d+5),c=c.g;var x=m;x=(m=0>x?1:0)?-x:x,x===0?0<1/x?ce=ve=0:(ve=0,ce=2147483648):isNaN(x)?(ve=0,ce=2147483647):34028234663852886e22<x?(ve=0,ce=(m<<31|2139095040)>>>0):11754943508222875e-54>x?(x=Math.round(x/Math.pow(2,-149)),ve=0,ce=(m<<31|x)>>>0):(d=Math.floor(Math.log(x)/Math.LN2),x*=Math.pow(2,-d),x=Math.round(8388608*x),16777216<=x&&++d,ve=0,ce=(m<<31|d+127<<23|x&8388607)>>>0),m=ce,c.push(m>>>0&255),c.push(m>>>8&255),c.push(m>>>16&255),c.push(m>>>24&255)}}var ge=typeof Uint8Array=="function";function Rn(c,d,m){if(c!=null)return typeof c=="object"?ge&&c instanceof Uint8Array?m(c):Qe(c,d,m):d(c)}function Qe(c,d,m){if(Array.isArray(c)){for(var x=Array(c.length),j=0;j<c.length;j++)x[j]=Rn(c[j],d,m);return Array.isArray(c)&&c.W&&ie(x),x}x={};for(j in c)x[j]=Rn(c[j],d,m);return x}function sn(c){return typeof c=="number"?isFinite(c)?c:String(c):c}var cn={W:{value:!0,configurable:!0}};function ie(c){return Array.isArray(c)&&!Object.isFrozen(c)&&Object.defineProperties(c,cn),c}var Xe;function oe(c,d,m){var x=Xe;Xe=null,c||(c=x),x=this.constructor.ca,c||(c=x?[x]:[]),this.j=x?0:-1,this.m=this.g=null,this.h=c;t:{if(x=this.h.length,c=x-1,x&&(x=this.h[c],!(x===null||typeof x!="object"||Array.isArray(x)||ge&&x instanceof Uint8Array))){this.l=c-this.j,this.i=x;break t}d!==void 0&&-1<d?(this.l=Math.max(d,c+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(m)for(d=0;d<m.length;d++)c=m[d],c<this.l?(c+=this.j,(x=this.h[c])?ie(x):this.h[c]=Mt):(Ce(this),(x=this.i[c])?ie(x):this.i[c]=Mt)}var Mt=Object.freeze(ie([]));function Ce(c){var d=c.l+c.j;c.h[d]||(c.i=c.h[d]={})}function Kt(c,d,m){return d===-1?null:(m===void 0?0:m)||d>=c.l?c.i?c.i[d]:void 0:c.h[d+c.j]}function Yt(c,d){var m=m===void 0?!1:m,x=Kt(c,d,m);return x==null&&(x=Mt),x===Mt&&(x=ie([]),bt(c,d,x,m)),x}function gn(c){var d=Yt(c,3);if(c.m||(c.m={}),!c.m[3]){for(var m=0;m<d.length;m++)d[m]=+d[m];c.m[3]=!0}return d}function $t(c,d,m){return c=Kt(c,d),c==null?m:c}function Vt(c,d,m){return c=Kt(c,d),c=c==null?c:+c,c==null?m===void 0?0:m:c}function bt(c,d,m,x){(x===void 0?0:x)||d>=c.l?(Ce(c),c.i[d]=m):c.h[d+c.j]=m}function zt(c,d,m){if(m===-1)return null;if(c.g||(c.g={}),!c.g[m]){var x=Kt(c,m,!1);x&&(c.g[m]=new d(x))}return c.g[m]}function Ie(c,d){c.g||(c.g={});var m=c.g[1];if(!m){var x=Yt(c,1);m=[];for(var j=0;j<x.length;j++)m[j]=new d(x[j]);c.g[1]=m}return m}function Ot(c,d,m){var x=x===void 0?!1:x;c.g||(c.g={});var j=m&&xe(m);c.g[d]=m,bt(c,d,j,x)}function Qt(c,d,m,x){var j=Ie(c,m);d=d||new m,c=Yt(c,1),x!=null?(j.splice(x,0,d),c.splice(x,0,xe(d))):(j.push(d),c.push(xe(d)))}oe.prototype.toJSON=function(){var c=xe(this);return Qe(c,sn,un)};function xe(c,d){if(c.g)for(var m in c.g){var x=c.g[m];if(Array.isArray(x))for(var j=0;j<x.length;j++)x[j]&&xe(x[j]);else x&&xe(x)}return c.h}oe.prototype.toString=function(){return xe(this).toString()};function kt(c,d){if(c=c.o){Ut(d,d.g.end());for(var m=0;m<c.length;m++)Ut(d,c[m])}}function Xt(c,d){if(d.h==4)return!1;var m=d.m;return Lt(d),d.N||(d=pn(d.g.h,m,d.g.g),(m=c.o)?m.push(d):c.o=[d]),!0}function Ae(c){oe.call(this,c,-1,Se)}xt(Ae,oe),Ae.prototype.getRows=function(){return Kt(this,1)},Ae.prototype.getCols=function(){return Kt(this,2)},Ae.prototype.getPackedDataList=function(){return gn(this)},Ae.prototype.getLayout=function(){return $t(this,4,0)};function Ke(c,d){for(;Ve(d);)switch(d.i){case 8:var m=d.g.i();bt(c,1,m);break;case 16:m=d.g.i(),bt(c,2,m);break;case 29:case 26:Be(d,c.getPackedDataList());break;case 32:m=ae(d.g),bt(c,4,m);break;default:if(!Xt(c,d))return c}return c}var Se=[3];function Jt(c,d){var m=void 0;return new(m||(m=Promise))(function(x,j){function P(rt){try{D(d.next(rt))}catch(r){j(r)}}function H(rt){try{D(d.throw(rt))}catch(r){j(r)}}function D(rt){rt.done?x(rt.value):new m(function(r){r(rt.value)}).then(P,H)}D((d=d.apply(c,void 0)).next())})}function Ee(c){oe.call(this,c)}xt(Ee,oe);function an(c,d){for(;Ve(d);)switch(d.i){case 8:var m=d.g.i();bt(c,1,m);break;case 21:m=At(d),bt(c,2,m);break;case 26:m=ne(d),bt(c,3,m);break;case 34:m=ne(d),bt(c,4,m);break;default:if(!Xt(c,d))return c}return c}function De(c){oe.call(this,c,-1,Ne)}xt(De,oe),De.prototype.addClassification=function(c,d){return Qt(this,c,Ee,d),this};var Ne=[1];function Me(c){oe.call(this,c)}xt(Me,oe);function $e(c,d){for(;Ve(d);)switch(d.i){case 13:var m=At(d);bt(c,1,m);break;case 21:m=At(d),bt(c,2,m);break;case 29:m=At(d),bt(c,3,m);break;case 37:m=At(d),bt(c,4,m);break;case 45:m=At(d),bt(c,5,m);break;default:if(!Xt(c,d))return c}return c}function me(c){oe.call(this,c,-1,En)}xt(me,oe);function Ue(c){t:{var d=new me;for(c=new re(c);Ve(c);)switch(c.i){case 10:var m=pe(c,new Me,$e);Qt(d,m,Me,void 0);break;default:if(!Xt(d,c))break t}}return d}var En=[1];function Ye(c){oe.call(this,c)}xt(Ye,oe);function be(c){oe.call(this,c,-1,fn)}xt(be,oe),be.prototype.getVertexType=function(){return $t(this,1,0)},be.prototype.getPrimitiveType=function(){return $t(this,2,0)},be.prototype.getVertexBufferList=function(){return gn(this)},be.prototype.getIndexBufferList=function(){return Yt(this,4)};function rn(c,d){for(;Ve(d);)switch(d.i){case 8:var m=ae(d.g);bt(c,1,m);break;case 16:m=ae(d.g),bt(c,2,m);break;case 29:case 26:Be(d,c.getVertexBufferList());break;case 32:case 34:m=d;var x=c.getIndexBufferList();m.h==2?Ge(m,Pe.prototype.i,x):x.push(m.g.i());break;default:if(!Xt(c,d))return c}return c}var fn=[3,4];function Te(c){oe.call(this,c)}xt(Te,oe),Te.prototype.getMesh=function(){return zt(this,be,1)},Te.prototype.getPoseTransformMatrix=function(){return zt(this,Ae,2)};function Sn(c){t:{var d=new Te;for(c=new re(c);Ve(c);)switch(c.i){case 10:var m=pe(c,new be,rn);Ot(d,1,m);break;case 18:m=pe(c,new Ae,Ke),Ot(d,2,m);break;default:if(!Xt(d,c))break t}}return d}function ke(c,d,m){if(m=c.createShader(m===0?c.VERTEX_SHADER:c.FRAGMENT_SHADER),c.shaderSource(m,d),c.compileShader(m),!c.getShaderParameter(m,c.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
71
|
+
`+p.getProgramInfoLog(a));e=n.o=a,p.useProgram(e),u=p.getUniformLocation(e,"sampler0"),n.j={K:p.getAttribLocation(e,"aVertex"),J:p.getAttribLocation(e,"aTex"),ma:u},n.u=p.createBuffer(),p.bindBuffer(p.ARRAY_BUFFER,n.u),p.enableVertexAttribArray(n.j.K),p.vertexAttribPointer(n.j.K,2,p.FLOAT,!1,0,0),p.bufferData(p.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),p.STATIC_DRAW),p.bindBuffer(p.ARRAY_BUFFER,null),n.s=p.createBuffer(),p.bindBuffer(p.ARRAY_BUFFER,n.s),p.enableVertexAttribArray(n.j.J),p.vertexAttribPointer(n.j.J,2,p.FLOAT,!1,0,0),p.bufferData(p.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),p.STATIC_DRAW),p.bindBuffer(p.ARRAY_BUFFER,null),p.uniform1i(u,0)}e=n.j,p.useProgram(n.o),p.canvas.width=l.width,p.canvas.height=l.height,p.viewport(0,0,l.width,l.height),p.activeTexture(p.TEXTURE0),n.h.bindTexture2d(l.glName),p.enableVertexAttribArray(e.K),p.bindBuffer(p.ARRAY_BUFFER,n.u),p.vertexAttribPointer(e.K,2,p.FLOAT,!1,0,0),p.enableVertexAttribArray(e.J),p.bindBuffer(p.ARRAY_BUFFER,n.s),p.vertexAttribPointer(e.J,2,p.FLOAT,!1,0,0),p.bindFramebuffer(p.DRAW_FRAMEBUFFER?p.DRAW_FRAMEBUFFER:p.FRAMEBUFFER,null),p.clearColor(0,0,0,0),p.clear(p.COLOR_BUFFER_BIT),p.colorMask(!0,!0,!0,!0),p.drawArrays(p.TRIANGLE_FAN,0,4),p.disableVertexAttribArray(e.K),p.disableVertexAttribArray(e.J),p.bindBuffer(p.ARRAY_BUFFER,null),n.h.bindTexture2d(0)}function M(n){this.g=n}var lt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function pt(n,l){return l+n}function xt(n,l){window[n]=l}function yt(n){var l=document.createElement("script");return l.setAttribute("src",n),l.setAttribute("crossorigin","anonymous"),new Promise(function(p){l.addEventListener("load",function(){p()},!1),l.addEventListener("error",function(){p()},!1),document.body.appendChild(l)})}function it(){return ft(function(n){switch(n.g){case 1:return n.o=2,$(n,WebAssembly.instantiate(lt),4);case 4:n.g=3,n.o=0;break;case 2:return n.o=0,n.j=null,n.return(!1);case 3:return n.return(!0)}})}function gt(n){if(this.g=n,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=n&&n.locateFile||pt,typeof window=="object")var l=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")l=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.$=l,n.options){l=U(Object.keys(n.options));for(var p=l.next();!p.done;p=l.next()){p=p.value;var e=n.options[p].default;e!==void 0&&(this.j[p]=typeof e=="function"?e():e)}}}S=gt.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function vt(n){var l,p,e,u,a,t,o,s,f,w,T;return ft(function(x){switch(x.g){case 1:return n.Z?(l=n.g.files===void 0?[]:typeof n.g.files=="function"?n.g.files(n.j):n.g.files,$(x,it(),2)):x.return();case 2:if(p=x.h,typeof window=="object")return xt("createMediapipeSolutionsWasm",{locateFile:n.locateFile}),xt("createMediapipeSolutionsPackedAssets",{locateFile:n.locateFile}),t=l.filter(function(k){return k.data!==void 0}),o=l.filter(function(k){return k.data===void 0}),s=Promise.all(t.map(function(k){var O=i(n,k.url);if(k.path!==void 0){var P=k.path;O=O.then(function(z){return n.overrideFile(P,z),Promise.resolve(z)})}return O})),f=Promise.all(o.map(function(k){return k.simd===void 0||k.simd&&p||!k.simd&&!p?yt(n.locateFile(k.url,n.$)):Promise.resolve()})).then(function(){var k,O,P;return ft(function(z){if(z.g==1)return k=window.createMediapipeSolutionsWasm,O=window.createMediapipeSolutionsPackedAssets,P=n,$(z,k(O),2);P.h=z.h,z.g=0})}),w=function(){return ft(function(k){return n.g.graph&&n.g.graph.url?k=$(k,i(n,n.g.graph.url),0):(k.g=0,k=void 0),k})}(),$(x,Promise.all([f,s,w]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return e=l.filter(function(k){return k.simd===void 0||k.simd&&p||!k.simd&&!p}).map(function(k){return n.locateFile(k.url,n.$)}),importScripts.apply(null,dt(e)),u=n,$(x,createMediapipeSolutionsWasm(Module),6);case 6:u.h=x.h,n.l=new OffscreenCanvas(1,1),n.h.canvas=n.l,a=n.h.GL.createContext(n.l,{antialias:!1,alpha:!1,ja:typeof WebGL2RenderingContext!="undefined"?2:1}),n.h.GL.makeContextCurrent(a),x.g=4;break;case 7:if(n.l=document.createElement("canvas"),T=n.l.getContext("webgl2",{}),!T&&(T=n.l.getContext("webgl",{}),!T))return alert("Failed to create WebGL canvas context when passing video frame."),x.return();n.G=T,n.h.canvas=n.l,n.h.createContext(n.l,!0,!0,{});case 4:n.i=new n.h.SolutionWasm,n.Z=!1,x.g=0}})}function Xt(n){var l,p,e,u,a,t,o,s;return ft(function(f){if(f.g==1){if(n.g.graph&&n.g.graph.url&&n.Y===n.g.graph.url)return f.return();if(n.s=!0,!n.g.graph||!n.g.graph.url){f.g=2;return}return n.Y=n.g.graph.url,$(f,i(n,n.g.graph.url),3)}for(f.g!=2&&(l=f.h,n.i.loadGraph(l)),p=U(Object.keys(n.C)),e=p.next();!e.done;e=p.next())u=e.value,n.i.overrideFile(u,n.C[u]);if(n.C={},n.g.listeners)for(a=U(n.g.listeners),t=a.next();!t.done;t=a.next())o=t.value,W(n,o);s=n.j,n.j={},n.setOptions(s),f.g=0})}S.reset=function(){var n=this;return ft(function(l){n.i&&(n.i.reset(),n.o={},n.u={}),l.g=0})},S.setOptions=function(n,l){var p=this;if(l=l||this.g.options){for(var e=[],u=[],a={},t=U(Object.keys(n)),o=t.next();!o.done;a={R:a.R,S:a.S},o=t.next()){var s=o.value;s in this.j&&this.j[s]===n[s]||(this.j[s]=n[s],o=l[s],o!==void 0&&(o.onChange&&(a.R=o.onChange,a.S=n[s],e.push(function(f){return function(){var w;return ft(function(T){if(T.g==1)return $(T,f.R(f.S),2);w=T.h,w===!0&&(p.s=!0),T.g=0})}}(a))),o.graphOptionXref&&(s={valueNumber:o.type===1?n[s]:0,valueBoolean:o.type===0?n[s]:!1,valueString:o.type===2?n[s]:""},o=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),o.graphOptionXref),s),u.push(o))))}(e.length!==0||u.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(u),this.A=(this.A===void 0?[]:this.A).concat(e))}};function wt(n){var l,p,e,u,a,t,o;return ft(function(s){switch(s.g){case 1:if(!n.s)return s.return();if(!n.A){s.g=2;break}l=U(n.A),p=l.next();case 3:if(p.done){s.g=5;break}return e=p.value,$(s,e(),4);case 4:p=l.next(),s.g=3;break;case 5:n.A=void 0;case 2:if(n.B){for(u=new n.h.GraphOptionChangeRequestList,a=U(n.B),t=a.next();!t.done;t=a.next())o=t.value,u.push_back(o);n.i.changeOptions(u),u.delete(),n.B=void 0}n.s=!1,s.g=0}})}S.initialize=function(){var n=this;return ft(function(l){return l.g==1?$(l,vt(n),2):l.g!=3?$(l,Xt(n),3):$(l,wt(n),0)})};function i(n,l){var p,e;return ft(function(u){return l in n.H?u.return(n.H[l]):(p=n.locateFile(l,""),e=fetch(p).then(function(a){return a.arrayBuffer()}),n.H[l]=e,u.return(e))})}S.overrideFile=function(n,l){this.i?this.i.overrideFile(n,l):this.C[n]=l},S.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},S.send=function(n,l){var p=this,e,u,a,t,o,s,f,w,T;return ft(function(x){switch(x.g){case 1:return p.g.inputs?(e=1e3*(l==null?performance.now():l),$(x,p.D,2)):x.return();case 2:return $(x,p.initialize(),3);case 3:for(u=new p.h.PacketDataList,a=U(Object.keys(n)),t=a.next();!t.done;t=a.next())if(o=t.value,s=p.g.inputs[o]){t:{var k=n[o];switch(s.type){case"video":var O=p.o[s.stream];if(O||(O=new H(p.h,p.G),p.o[s.stream]=O),O.l===0&&(O.l=O.h.createTexture()),typeof HTMLVideoElement!="undefined"&&k instanceof HTMLVideoElement)var P=k.videoWidth,z=k.videoHeight;else typeof HTMLImageElement!="undefined"&&k instanceof HTMLImageElement?(P=k.naturalWidth,z=k.naturalHeight):(P=k.width,z=k.height);z={glName:O.l,width:P,height:z},P=O.g,P.canvas.width=z.width,P.canvas.height=z.height,P.activeTexture(P.TEXTURE0),O.h.bindTexture2d(O.l),P.texImage2D(P.TEXTURE_2D,0,P.RGBA,P.RGBA,P.UNSIGNED_BYTE,k),O.h.bindTexture2d(0),O=z;break t;case"detections":for(O=p.o[s.stream],O||(O=new M(p.h),p.o[s.stream]=O),O.data||(O.data=new O.g.DetectionListData),O.data.reset(k.length),z=0;z<k.length;++z){P=k[z];var nt=O.data,ot=nt.setBoundingBox,ut=z,ht=P.boundingBox,at=new m;if(St(at,1,ht.xCenter),St(at,2,ht.yCenter),St(at,3,ht.height),St(at,4,ht.width),St(at,5,ht.rotation),St(at,6,ht.rectId),ht=_(at,F),ot.call(nt,ut,ht),P.landmarks)for(nt=0;nt<P.landmarks.length;++nt){at=P.landmarks[nt];var Et=!!at.visibility;ot=O.data,ut=ot.addNormalizedLandmark,ht=z,at=Object.assign(Object.assign({},at),{visibility:Et?at.visibility:0}),Et=new Dt,St(Et,1,at.x),St(Et,2,at.y),St(Et,3,at.z),at.visibility&&St(Et,4,at.visibility),at=_(Et,qt),ut.call(ot,ht,at)}if(P.V)for(nt=0;nt<P.V.length;++nt)ot=O.data,ut=ot.addClassification,ht=z,at=P.V[nt],Et=new Wt,St(Et,2,at.ga),at.index&&St(Et,1,at.index),at.label&&St(Et,3,at.label),at.displayName&&St(Et,4,at.displayName),at=_(Et,Zt),ut.call(ot,ht,at)}O=O.data;break t;default:O={}}}switch(f=O,w=s.stream,s.type){case"video":u.pushTexture2d(Object.assign(Object.assign({},f),{stream:w,timestamp:e}));break;case"detections":T=f,T.stream=w,T.timestamp=e,u.pushDetectionList(T);break;default:throw Error("Unknown input config type: '"+s.type+"'")}}return p.i.send(u),$(x,p.D,4);case 4:u.delete(),x.g=0}})};function g(n,l,p){var e,u,a,t,o,s,f,w,T,x,k,O,P,z;return ft(function(nt){switch(nt.g){case 1:if(!p)return nt.return(l);for(e={},u=0,a=U(Object.keys(p)),t=a.next();!t.done;t=a.next())o=t.value,s=p[o],typeof s!="string"&&s.type==="texture"&&l[s.stream]!==void 0&&++u;1<u&&(n.I=!1),f=U(Object.keys(p)),t=f.next();case 2:if(t.done){nt.g=4;break}if(w=t.value,T=p[w],typeof T=="string")return P=e,z=w,$(nt,R(n,w,l[T]),14);if(x=l[T.stream],T.type==="detection_list"){if(x){for(var ot=x.getRectList(),ut=x.getLandmarksList(),ht=x.getClassificationsList(),at=[],Et=0;Et<ot.size();++Et){var _t=Z(ot.get(Et),m,F);_t={boundingBox:{xCenter:Mt(_t,1),yCenter:Mt(_t,2),height:Mt(_t,3),width:Mt(_t,4),rotation:Mt(_t,5,0),rectId:Qt(_t,6)},landmarks:Ie(Z(ut.get(Et),Ze,c),Dt,1).map(E),V:V(Z(ht.get(Et),Tt,Nt))},at.push(_t)}ot=at}else ot=[];e[w]=ot,nt.g=7;break}if(T.type==="proto_list"){if(x){for(ot=Array(x.size()),ut=0;ut<x.size();ut++)ot[ut]=x.get(ut);x.delete()}else ot=[];e[w]=ot,nt.g=7;break}if(x===void 0){nt.g=3;break}if(T.type==="float_list"){e[w]=x,nt.g=7;break}if(T.type==="proto"){e[w]=x,nt.g=7;break}if(T.type!=="texture")throw Error("Unknown output config type: '"+T.type+"'");return k=n.u[w],k||(k=new H(n.h,n.G),n.u[w]=k),$(nt,J(k,x,n.I),13);case 13:O=nt.h,e[w]=O;case 7:T.transform&&e[w]&&(e[w]=T.transform(e[w])),nt.g=3;break;case 14:P[z]=nt.h;case 3:t=f.next(),nt.g=2;break;case 4:return nt.return(e)}})}function R(n,l,p){var e;return ft(function(u){return typeof p=="number"||p instanceof Uint8Array||p instanceof n.h.Uint8BlobList?u.return(p):p instanceof n.h.Texture2dDataOut?(e=n.u[l],e||(e=new H(n.h,n.G),n.u[l]=e),u.return(J(e,p,n.I))):u.return(void 0)})}function W(n,l){for(var p=l.name||"$",e=[].concat(dt(l.wants)),u=new n.h.StringList,a=U(l.wants),t=a.next();!t.done;t=a.next())u.push_back(t.value);a=n.h.PacketListener.implement({onResults:function(o){for(var s={},f=0;f<l.wants.length;++f)s[e[f]]=o.get(f);var w=n.listeners[p];w&&(n.D=g(n,s,l.outs).then(function(T){T=w(T);for(var x=0;x<l.wants.length;++x){var k=s[e[x]];typeof k=="object"&&k.hasOwnProperty&&k.hasOwnProperty("delete")&&k.delete()}T&&(n.D=T)}))}}),n.i.attachMultiListener(u,a),u.delete()}S.onResults=function(n,l){this.listeners[l||"$"]=n},Vt("Solution",gt),Vt("OptionType",{BOOL:0,NUMBER:1,ia:2,0:"BOOL",1:"NUMBER",2:"STRING"});function N(n){var l=this;n=n||{};var p={url:"face_detection_short.binarypb"},e={type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}};this.g=new gt({locateFile:n.locateFile,files:[{data:!0,url:"face_detection_short.binarypb"},{data:!0,url:"face_detection_short_range.tflite"},{simd:!0,url:"face_detection_solution_simd_wasm_bin.js"},{simd:!1,url:"face_detection_solution_wasm_bin.js"}],graph:p,listeners:[{wants:["detections","image_transformed"],outs:{image:"image_transformed",detections:{type:"detection_list",stream:"detections"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},model:{type:0,onChange:function(u){var a,t,o,s,f,w;return ft(function(T){switch(T.g){case 1:a=u==="short"?["face_detection_short_range.tflite"]:["face_detection_full_range_sparse.tflite"],t=U(a),o=t.next();case 2:if(o.done){T.g=4;break}return s=o.value,f="third_party/mediapipe/modules/face_detection/"+s,$(T,i(l.g,s),5);case 5:w=T.h,l.g.overrideFile(f,w),o=t.next(),T.g=2;break;case 4:return p.url=u==="short"?"face_detection_short.binarypb":"face_detection_full.binarypb",e.graphOptionXref.calculatorName=u==="short"?"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator":"facedetectionfullrangegpu__facedetectionfullrangecommon__TensorsToDetectionsCalculator",T.return(!0)}})}},minDetectionConfidence:e}})}S=N.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(n){this.g.onResults(n)},S.initialize=function(){var n=this;return ft(function(l){return $(l,n.g.initialize(),0)})},S.reset=function(){this.g.reset()},S.send=function(n){var l=this;return ft(function(p){return $(p,l.g.send(n),0)})},S.setOptions=function(n){this.g.setOptions(n)},Vt("FaceDetection",N),Vt("FACEDETECTION_LIPS",j),Vt("FACEDETECTION_LEFT_EYE",B),Vt("FACEDETECTION_LEFT_EYEBROW",C),Vt("FACEDETECTION_RIGHT_EYE",D),Vt("FACEDETECTION_RIGHT_EYEBROW",rt),Vt("FACEDETECTION_FACE_OVAL",r),Vt("FACEDETECTION_CONTOURS",y),Vt("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),Vt("VERSION","0.4.1646425229")}).call(Sr);const Vr={};(function(){var S;function v(c){var d=0;return function(){return d<c.length?{done:!1,value:c[d++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(c,d,m){return c==Array.prototype||c==Object.prototype||(c[d]=m.value),c};function L(c){c=[typeof globalThis=="object"&&globalThis,c,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var d=0;d<c.length;++d){var m=c[d];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var I=L(this);function A(c,d){if(d)t:{var m=I;c=c.split(".");for(var F=0;F<c.length-1;F++){var j=c[F];if(!(j in m))break t;m=m[j]}c=c[c.length-1],F=m[c],d=d(F),d!=F&&d!=null&&G(m,c,{configurable:!0,writable:!0,value:d})}}A("Symbol",function(c){function d(B){if(this instanceof d)throw new TypeError("Symbol is not a constructor");return new m(F+(B||"")+"_"+j++,B)}function m(B,C){this.g=B,G(this,"description",{configurable:!0,writable:!0,value:C})}if(c)return c;m.prototype.toString=function(){return this.g};var F="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",j=0;return d}),A("Symbol.iterator",function(c){if(c)return c;c=Symbol("Symbol.iterator");for(var d="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),m=0;m<d.length;m++){var F=I[d[m]];typeof F=="function"&&typeof F.prototype[c]!="function"&&G(F.prototype,c,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return c});function Q(c){return c={next:c},c[Symbol.iterator]=function(){return this},c}function U(c){var d=typeof Symbol!="undefined"&&Symbol.iterator&&c[Symbol.iterator];return d?d.call(c):{next:v(c)}}function dt(c){if(!(c instanceof Array)){c=U(c);for(var d,m=[];!(d=c.next()).done;)m.push(d.value);c=m}return c}var _e=typeof Object.create=="function"?Object.create:function(c){function d(){}return d.prototype=c,new d},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(c,d){if(c.__proto__=d,c.__proto__!==d)throw new TypeError(c+" is not extensible");return c}:null}var je=ct;function Ft(c,d){if(c.prototype=_e(d.prototype),c.prototype.constructor=c,je)je(c,d);else for(var m in d)if(m!="prototype")if(Object.defineProperties){var F=Object.getOwnPropertyDescriptor(d,m);F&&Object.defineProperty(c,m,F)}else c[m]=d[m];c.ea=d.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(c){if(c.l)throw new TypeError("Generator is already running");c.l=!0}ue.prototype.o=function(c){this.h=c};function fe(c,d){c.j={U:d,V:!0},c.g=c.m||c.s}ue.prototype.return=function(c){this.j={return:c},this.g=this.s};function $(c,d,m){return c.g=m,{value:d}}function In(c){this.g=new ue,this.h=c}function jn(c,d){de(c.g);var m=c.g.i;return m?Ce(c,"return"in m?m.return:function(F){return{value:F,done:!0}},d,c.g.return):(c.g.return(d),ee(c))}function Ce(c,d,m,F){try{var j=d.call(c.g.i,m);if(!(j instanceof Object))throw new TypeError("Iterator result "+j+" is not an object");if(!j.done)return c.g.l=!1,j;var B=j.value}catch(C){return c.g.i=null,fe(c.g,C),ee(c)}return c.g.i=null,F.call(c.g,B),ee(c)}function ee(c){for(;c.g.g;)try{var d=c.h(c.g);if(d)return c.g.l=!1,{value:d.value,done:!1}}catch(m){c.g.h=void 0,fe(c.g,m)}if(c.g.l=!1,c.g.j){if(d=c.g.j,c.g.j=null,d.V)throw d.U;return{value:d.return,done:!0}}return{value:void 0,done:!0}}function Cn(c){this.next=function(d){return de(c.g),c.g.i?d=Ce(c,c.g.i.next,d,c.g.o):(c.g.o(d),d=ee(c)),d},this.throw=function(d){return de(c.g),c.g.i?d=Ce(c,c.g.i.throw,d,c.g.o):(fe(c.g,d),d=ee(c)),d},this.return=function(d){return jn(c,d)},this[Symbol.iterator]=function(){return this}}function te(c,d){return d=new Cn(new In(d)),je&&c.prototype&&je(d,c.prototype),d}function ft(c,d){c instanceof String&&(c+="");var m=0,F=!1,j={next:function(){if(!F&&m<c.length){var B=m++;return{value:d(B,c[B]),done:!1}}return F=!0,{done:!0,value:void 0}}};return j[Symbol.iterator]=function(){return j},j}var Hn=typeof Object.assign=="function"?Object.assign:function(c,d){for(var m=1;m<arguments.length;m++){var F=arguments[m];if(F)for(var j in F)Object.prototype.hasOwnProperty.call(F,j)&&(c[j]=F[j])}return c};A("Object.assign",function(c){return c||Hn}),A("Promise",function(c){function d(C){this.h=0,this.i=void 0,this.g=[],this.o=!1;var D=this.j();try{C(D.resolve,D.reject)}catch(rt){D.reject(rt)}}function m(){this.g=null}function F(C){return C instanceof d?C:new d(function(D){D(C)})}if(c)return c;m.prototype.h=function(C){if(this.g==null){this.g=[];var D=this;this.i(function(){D.l()})}this.g.push(C)};var j=I.setTimeout;m.prototype.i=function(C){j(C,0)},m.prototype.l=function(){for(;this.g&&this.g.length;){var C=this.g;this.g=[];for(var D=0;D<C.length;++D){var rt=C[D];C[D]=null;try{rt()}catch(r){this.j(r)}}}this.g=null},m.prototype.j=function(C){this.i(function(){throw C})},d.prototype.j=function(){function C(r){return function(y){rt||(rt=!0,r.call(D,y))}}var D=this,rt=!1;return{resolve:C(this.C),reject:C(this.l)}},d.prototype.C=function(C){if(C===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(C instanceof d)this.F(C);else{t:switch(typeof C){case"object":var D=C!=null;break t;case"function":D=!0;break t;default:D=!1}D?this.u(C):this.m(C)}},d.prototype.u=function(C){var D=void 0;try{D=C.then}catch(rt){this.l(rt);return}typeof D=="function"?this.G(D,C):this.m(C)},d.prototype.l=function(C){this.s(2,C)},d.prototype.m=function(C){this.s(1,C)},d.prototype.s=function(C,D){if(this.h!=0)throw Error("Cannot settle("+C+", "+D+"): Promise already settled in state"+this.h);this.h=C,this.i=D,this.h===2&&this.D(),this.A()},d.prototype.D=function(){var C=this;j(function(){if(C.B()){var D=I.console;typeof D!="undefined"&&D.error(C.i)}},1)},d.prototype.B=function(){if(this.o)return!1;var C=I.CustomEvent,D=I.Event,rt=I.dispatchEvent;return typeof rt=="undefined"?!0:(typeof C=="function"?C=new C("unhandledrejection",{cancelable:!0}):typeof D=="function"?C=new D("unhandledrejection",{cancelable:!0}):(C=I.document.createEvent("CustomEvent"),C.initCustomEvent("unhandledrejection",!1,!0,C)),C.promise=this,C.reason=this.i,rt(C))},d.prototype.A=function(){if(this.g!=null){for(var C=0;C<this.g.length;++C)B.h(this.g[C]);this.g=null}};var B=new m;return d.prototype.F=function(C){var D=this.j();C.J(D.resolve,D.reject)},d.prototype.G=function(C,D){var rt=this.j();try{C.call(D,rt.resolve,rt.reject)}catch(r){rt.reject(r)}},d.prototype.then=function(C,D){function rt(V,E){return typeof V=="function"?function(H){try{r(V(H))}catch(J){y(J)}}:E}var r,y,X=new d(function(V,E){r=V,y=E});return this.J(rt(C,r),rt(D,y)),X},d.prototype.catch=function(C){return this.then(void 0,C)},d.prototype.J=function(C,D){function rt(){switch(r.h){case 1:C(r.i);break;case 2:D(r.i);break;default:throw Error("Unexpected state: "+r.h)}}var r=this;this.g==null?B.h(rt):this.g.push(rt),this.o=!0},d.resolve=F,d.reject=function(C){return new d(function(D,rt){rt(C)})},d.race=function(C){return new d(function(D,rt){for(var r=U(C),y=r.next();!y.done;y=r.next())F(y.value).J(D,rt)})},d.all=function(C){var D=U(C),rt=D.next();return rt.done?F([]):new d(function(r,y){function X(H){return function(J){V[H]=J,E--,E==0&&r(V)}}var V=[],E=0;do V.push(void 0),E++,F(rt.value).J(X(V.length-1),y),rt=D.next();while(!rt.done)})},d}),A("Object.is",function(c){return c||function(d,m){return d===m?d!==0||1/d===1/m:d!==d&&m!==m}}),A("Array.prototype.includes",function(c){return c||function(d,m){var F=this;F instanceof String&&(F=String(F));var j=F.length;for(m=m||0,0>m&&(m=Math.max(m+j,0));m<j;m++){var B=F[m];if(B===d||Object.is(B,d))return!0}return!1}}),A("String.prototype.includes",function(c){return c||function(d,m){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(d instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(d,m||0)!==-1}}),A("Array.prototype.keys",function(c){return c||function(){return ft(this,function(d){return d})}});var Un=this||self;function ye(c,d){c=c.split(".");var m=Un;c[0]in m||typeof m.execScript=="undefined"||m.execScript("var "+c[0]);for(var F;c.length&&(F=c.shift());)c.length||d===void 0?m[F]&&m[F]!==Object.prototype[F]?m=m[F]:m=m[F]={}:m[F]=d}function Vt(c,d){return d=String.fromCharCode.apply(null,d),c==null?d:c+d}var We,tn=typeof TextDecoder!="undefined",dn,Wn=typeof TextEncoder!="undefined";function Zn(c){if(Wn)c=(dn||(dn=new TextEncoder)).encode(c);else{var d=void 0;d=d===void 0?!1:d;for(var m=0,F=new Uint8Array(3*c.length),j=0;j<c.length;j++){var B=c.charCodeAt(j);if(128>B)F[m++]=B;else{if(2048>B)F[m++]=B>>6|192;else{if(55296<=B&&57343>=B){if(56319>=B&&j<c.length){var C=c.charCodeAt(++j);if(56320<=C&&57343>=C){B=1024*(B-55296)+C-56320+65536,F[m++]=B>>18|240,F[m++]=B>>12&63|128,F[m++]=B>>6&63|128,F[m++]=B&63|128;continue}else j--}if(d)throw Error("Found an unpaired surrogate");B=65533}F[m++]=B>>12|224,F[m++]=B>>6&63|128}F[m++]=B&63|128}}c=F.subarray(0,m)}return c}var xn={},en=null;function un(c,d){d===void 0&&(d=0),pn(),d=xn[d];for(var m=Array(Math.floor(c.length/3)),F=d[64]||"",j=0,B=0;j<c.length-2;j+=3){var C=c[j],D=c[j+1],rt=c[j+2],r=d[C>>2];C=d[(C&3)<<4|D>>4],D=d[(D&15)<<2|rt>>6],rt=d[rt&63],m[B++]=r+C+D+rt}switch(r=0,rt=F,c.length-j){case 2:r=c[j+1],rt=d[(r&15)<<2]||F;case 1:c=c[j],m[B]=d[c>>2]+d[(c&3)<<4|r>>4]+rt+F}return m.join("")}function Ln(c){var d=c.length,m=3*d/4;m%3?m=Math.floor(m):"=.".indexOf(c[d-1])!=-1&&(m="=.".indexOf(c[d-2])!=-1?m-2:m-1);var F=new Uint8Array(m),j=0;return Sn(c,function(B){F[j++]=B}),F.subarray(0,j)}function Sn(c,d){function m(rt){for(;F<c.length;){var r=c.charAt(F++),y=en[r];if(y!=null)return y;if(!/^[\s\xa0]*$/.test(r))throw Error("Unknown base64 encoding at char: "+r)}return rt}pn();for(var F=0;;){var j=m(-1),B=m(0),C=m(64),D=m(64);if(D===64&&j===-1)break;d(j<<2|B>>4),C!=64&&(d(B<<4&240|C>>2),D!=64&&d(C<<6&192|D))}}function pn(){if(!en){en={};for(var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),d=["+/=","+/","-_=","-_.","-_"],m=0;5>m;m++){var F=c.concat(d[m].split(""));xn[m]=F;for(var j=0;j<F.length;j++){var B=F[j];en[B]===void 0&&(en[B]=j)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Xn;function gn(c,d,m){return d===m?Xn||(Xn=new Uint8Array(0)):nn?c.slice(d,m):new Uint8Array(c.subarray(d,m))}var ce=0,ve=0;function Be(c,d){d=d===void 0?{}:d,d=d.v===void 0?!1:d.v,this.h=null,this.g=this.j=this.l=0,this.m=!1,this.v=d,c&&le(this,c)}function le(c,d){d=d.constructor===Uint8Array?d:d.constructor===ArrayBuffer?new Uint8Array(d):d.constructor===Array?new Uint8Array(d):d.constructor===String?Ln(d):d instanceof Uint8Array?new Uint8Array(d.buffer,d.byteOffset,d.byteLength):new Uint8Array(0),c.h=d,c.l=0,c.j=c.h.length,c.g=c.l}Be.prototype.reset=function(){this.g=this.l};function ae(c){for(var d=128,m=0,F=0,j=0;4>j&&128<=d;j++)d=c.h[c.g++],m|=(d&127)<<7*j;if(128<=d&&(d=c.h[c.g++],m|=(d&127)<<28,F|=(d&127)>>4),128<=d)for(j=0;5>j&&128<=d;j++)d=c.h[c.g++],F|=(d&127)<<7*j+3;if(128>d)return c=m>>>0,d=F>>>0,(F=d&2147483648)&&(c=~c+1>>>0,d=~d>>>0,c==0&&(d=d+1>>>0)),c=4294967296*d+(c>>>0),F?-c:c;c.m=!0}Be.prototype.i=function(){var c=this.h,d=c[this.g],m=d&127;return 128>d?(this.g+=1,m):(d=c[this.g+1],m|=(d&127)<<7,128>d?(this.g+=2,m):(d=c[this.g+2],m|=(d&127)<<14,128>d?(this.g+=3,m):(d=c[this.g+3],m|=(d&127)<<21,128>d?(this.g+=4,m):(d=c[this.g+4],m|=(d&15)<<28,128>d?(this.g+=5,m>>>0):(this.g+=5,128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&this.g++,m)))))},Be.prototype.o=function(){var c=this.h[this.g],d=this.h[this.g+1],m=this.h[this.g+2],F=this.h[this.g+3];return this.g+=4,m=(c<<0|d<<8|m<<16|F<<24)>>>0,c=2*(m>>31)+1,d=m>>>23&255,m&=8388607,d==255?m?NaN:1/0*c:d==0?c*Math.pow(2,-149)*m:c*Math.pow(2,d-150)*(m+Math.pow(2,23))};var Me=[];function xe(){this.g=new Uint8Array(64),this.h=0}xe.prototype.push=function(c){if(!(this.h+1<this.g.length)){var d=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(d)}this.g[this.h++]=c},xe.prototype.length=function(){return this.h},xe.prototype.end=function(){var c=this.g,d=this.h;return this.h=0,gn(c,0,d)};function Ut(c,d){for(;127<d;)c.push(d&127|128),d>>>=7;c.push(d)}function re(c){var d={},m=d.N===void 0?!1:d.N;this.o={v:d.v===void 0?!1:d.v},this.N=m,d=this.o,Me.length?(m=Me.pop(),d&&(m.v=d.v),c&&le(m,c),c=m):c=new Be(c,d),this.g=c,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}re.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function Se(c){var d=c.g;if((d=d.g==d.j)||(d=c.j)||(d=c.g,d=d.m||0>d.g||d.g>d.j),d)return!1;c.m=c.g.g,d=c.g.i();var m=d&7;return m!=0&&m!=5&&m!=1&&m!=2&&m!=3&&m!=4?(c.j=!0,!1):(c.i=d,c.l=d>>>3,c.h=m,!0)}function Lt(c){switch(c.h){case 0:if(c.h!=0)Lt(c);else{for(c=c.g;c.h[c.g]&128;)c.g++;c.g++}break;case 1:c.h!=1?Lt(c):(c=c.g,c.g+=8);break;case 2:if(c.h!=2)Lt(c);else{var d=c.g.i();c=c.g,c.g+=d}break;case 5:c.h!=5?Lt(c):(c=c.g,c.g+=4);break;case 3:d=c.l;do{if(!Se(c)){c.j=!0;break}if(c.h==4){c.l!=d&&(c.j=!0);break}Lt(c)}while(1);break;default:c.j=!0}}function pe(c,d,m){var F=c.g.j,j=c.g.i(),B=c.g.g+j;if(c.g.j=B,m(d,c),m=B-c.g.g,m!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+j+" bytes, instead read "+(j-m)+" bytes, either the data ended unexpectedly or the message misreported its own length");return c.g.g=B,c.g.j=F,d}function At(c){return c.g.o()}function ne(c){var d=c.g.i();c=c.g;var m=c.g;c.g+=d,c=c.h;var F;if(tn)(F=We)||(F=We=new TextDecoder("utf-8",{fatal:!1})),F=F.decode(c.subarray(m,m+d));else{d=m+d;for(var j=[],B=null,C,D,rt;m<d;)C=c[m++],128>C?j.push(C):224>C?m>=d?j.push(65533):(D=c[m++],194>C||(D&192)!==128?(m--,j.push(65533)):j.push((C&31)<<6|D&63)):240>C?m>=d-1?j.push(65533):(D=c[m++],(D&192)!==128||C===224&&160>D||C===237&&160<=D||((F=c[m++])&192)!==128?(m--,j.push(65533)):j.push((C&15)<<12|(D&63)<<6|F&63)):244>=C?m>=d-2?j.push(65533):(D=c[m++],(D&192)!==128||(C<<28)+(D-144)>>30!==0||((F=c[m++])&192)!==128||((rt=c[m++])&192)!==128?(m--,j.push(65533)):(C=(C&7)<<18|(D&63)<<12|(F&63)<<6|rt&63,C-=65536,j.push((C>>10&1023)+55296,(C&1023)+56320))):j.push(65533),8192<=j.length&&(B=Vt(B,j),j.length=0);F=Vt(B,j)}return F}function Xe(c,d,m){var F=c.g.i();for(F=c.g.g+F;c.g.g<F;)m.push(d.call(c.g))}function Pe(c,d){c.h==2?Xe(c,Be.prototype.o,d):d.push(At(c))}function se(){this.h=[],this.i=0,this.g=new xe}function Yt(c,d){d.length!==0&&(c.h.push(d),c.i+=d.length)}function Le(c){var d=c.i+c.g.length();if(d===0)return new Uint8Array(0);d=new Uint8Array(d);for(var m=c.h,F=m.length,j=0,B=0;B<F;B++){var C=m[B];C.length!==0&&(d.set(C,j),j+=C.length)}return m=c.g,F=m.h,F!==0&&(d.set(m.g.subarray(0,F),j),m.h=0),c.h=[d],d}function He(c,d,m){if(m!=null){Ut(c.g,8*d+5),c=c.g;var F=m;F=(m=0>F?1:0)?-F:F,F===0?0<1/F?ce=ve=0:(ve=0,ce=2147483648):isNaN(F)?(ve=0,ce=2147483647):34028234663852886e22<F?(ve=0,ce=(m<<31|2139095040)>>>0):11754943508222875e-54>F?(F=Math.round(F/Math.pow(2,-149)),ve=0,ce=(m<<31|F)>>>0):(d=Math.floor(Math.log(F)/Math.LN2),F*=Math.pow(2,-d),F=Math.round(8388608*F),16777216<=F&&++d,ve=0,ce=(m<<31|d+127<<23|F&8388607)>>>0),m=ce,c.push(m>>>0&255),c.push(m>>>8&255),c.push(m>>>16&255),c.push(m>>>24&255)}}var ge=typeof Uint8Array=="function";function wn(c,d,m){if(c!=null)return typeof c=="object"?ge&&c instanceof Uint8Array?m(c):Qe(c,d,m):d(c)}function Qe(c,d,m){if(Array.isArray(c)){for(var F=Array(c.length),j=0;j<c.length;j++)F[j]=wn(c[j],d,m);return Array.isArray(c)&&c.W&&ie(F),F}F={};for(j in c)F[j]=wn(c[j],d,m);return F}function sn(c){return typeof c=="number"?isFinite(c)?c:String(c):c}var cn={W:{value:!0,configurable:!0}};function ie(c){return Array.isArray(c)&&!Object.isFrozen(c)&&Object.defineProperties(c,cn),c}var Re;function oe(c,d,m){var F=Re;Re=null,c||(c=F),F=this.constructor.ca,c||(c=F?[F]:[]),this.j=F?0:-1,this.m=this.g=null,this.h=c;t:{if(F=this.h.length,c=F-1,F&&(F=this.h[c],!(F===null||typeof F!="object"||Array.isArray(F)||ge&&F instanceof Uint8Array))){this.l=c-this.j,this.i=F;break t}d!==void 0&&-1<d?(this.l=Math.max(d,c+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(m)for(d=0;d<m.length;d++)c=m[d],c<this.l?(c+=this.j,(F=this.h[c])?ie(F):this.h[c]=zt):(Ue(this),(F=this.i[c])?ie(F):this.i[c]=zt)}var zt=Object.freeze(ie([]));function Ue(c){var d=c.l+c.j;c.h[d]||(c.i=c.h[d]={})}function Ot(c,d,m){return d===-1?null:(m===void 0?0:m)||d>=c.l?c.i?c.i[d]:void 0:c.h[d+c.j]}function kt(c,d){var m=m===void 0?!1:m,F=Ot(c,d,m);return F==null&&(F=zt),F===zt&&(F=ie([]),bt(c,d,F,m)),F}function mn(c){var d=kt(c,3);if(c.m||(c.m={}),!c.m[3]){for(var m=0;m<d.length;m++)d[m]=+d[m];c.m[3]=!0}return d}function $t(c,d,m){return c=Ot(c,d),c==null?m:c}function St(c,d,m){return c=Ot(c,d),c=c==null?c:+c,c==null?m===void 0?0:m:c}function bt(c,d,m,F){(F===void 0?0:F)||d>=c.l?(Ue(c),c.i[d]=m):c.h[d+c.j]=m}function Mt(c,d,m){if(m===-1)return null;if(c.g||(c.g={}),!c.g[m]){var F=Ot(c,m,!1);F&&(c.g[m]=new d(F))}return c.g[m]}function Ie(c,d){c.g||(c.g={});var m=c.g[1];if(!m){var F=kt(c,1);m=[];for(var j=0;j<F.length;j++)m[j]=new d(F[j]);c.g[1]=m}return m}function Kt(c,d,m){var F=F===void 0?!1:F;c.g||(c.g={});var j=m&&Fe(m);c.g[d]=m,bt(c,d,j,F)}function Qt(c,d,m,F){var j=Ie(c,m);d=d||new m,c=kt(c,1),F!=null?(j.splice(F,0,d),c.splice(F,0,Fe(d))):(j.push(d),c.push(Fe(d)))}oe.prototype.toJSON=function(){var c=Fe(this);return Qe(c,sn,un)};function Fe(c,d){if(c.g)for(var m in c.g){var F=c.g[m];if(Array.isArray(F))for(var j=0;j<F.length;j++)F[j]&&Fe(F[j]);else F&&Fe(F)}return c.h}oe.prototype.toString=function(){return Fe(this).toString()};function Jt(c,d){if(c=c.o){Yt(d,d.g.end());for(var m=0;m<c.length;m++)Yt(d,c[m])}}function Rt(c,d){if(d.h==4)return!1;var m=d.m;return Lt(d),d.N||(d=gn(d.g.h,m,d.g.g),(m=c.o)?m.push(d):c.o=[d]),!0}function Ae(c){oe.call(this,c,-1,Ve)}Ft(Ae,oe),Ae.prototype.getRows=function(){return Ot(this,1)},Ae.prototype.getCols=function(){return Ot(this,2)},Ae.prototype.getPackedDataList=function(){return mn(this)},Ae.prototype.getLayout=function(){return $t(this,4,0)};function Oe(c,d){for(;Se(d);)switch(d.i){case 8:var m=d.g.i();bt(c,1,m);break;case 16:m=d.g.i(),bt(c,2,m);break;case 29:case 26:Pe(d,c.getPackedDataList());break;case 32:m=ae(d.g),bt(c,4,m);break;default:if(!Rt(c,d))return c}return c}var Ve=[3];function Ht(c,d){var m=void 0;return new(m||(m=Promise))(function(F,j){function B(rt){try{D(d.next(rt))}catch(r){j(r)}}function C(rt){try{D(d.throw(rt))}catch(r){j(r)}}function D(rt){rt.done?F(rt.value):new m(function(r){r(rt.value)}).then(B,C)}D((d=d.apply(c,void 0)).next())})}function Ee(c){oe.call(this,c)}Ft(Ee,oe);function an(c,d){for(;Se(d);)switch(d.i){case 8:var m=d.g.i();bt(c,1,m);break;case 21:m=At(d),bt(c,2,m);break;case 26:m=ne(d),bt(c,3,m);break;case 34:m=ne(d),bt(c,4,m);break;default:if(!Rt(c,d))return c}return c}function De(c){oe.call(this,c,-1,Ne)}Ft(De,oe),De.prototype.addClassification=function(c,d){return Qt(this,c,Ee,d),this};var Ne=[1];function ze(c){oe.call(this,c)}Ft(ze,oe);function $e(c,d){for(;Se(d);)switch(d.i){case 13:var m=At(d);bt(c,1,m);break;case 21:m=At(d),bt(c,2,m);break;case 29:m=At(d),bt(c,3,m);break;case 37:m=At(d),bt(c,4,m);break;case 45:m=At(d),bt(c,5,m);break;default:if(!Rt(c,d))return c}return c}function me(c){oe.call(this,c,-1,En)}Ft(me,oe);function Ye(c){t:{var d=new me;for(c=new re(c);Se(c);)switch(c.i){case 10:var m=pe(c,new ze,$e);Qt(d,m,ze,void 0);break;default:if(!Rt(d,c))break t}}return d}var En=[1];function ke(c){oe.call(this,c)}Ft(ke,oe);function be(c){oe.call(this,c,-1,hn)}Ft(be,oe),be.prototype.getVertexType=function(){return $t(this,1,0)},be.prototype.getPrimitiveType=function(){return $t(this,2,0)},be.prototype.getVertexBufferList=function(){return mn(this)},be.prototype.getIndexBufferList=function(){return kt(this,4)};function rn(c,d){for(;Se(d);)switch(d.i){case 8:var m=ae(d.g);bt(c,1,m);break;case 16:m=ae(d.g),bt(c,2,m);break;case 29:case 26:Pe(d,c.getVertexBufferList());break;case 32:case 34:m=d;var F=c.getIndexBufferList();m.h==2?Xe(m,Be.prototype.i,F):F.push(m.g.i());break;default:if(!Rt(c,d))return c}return c}var hn=[3,4];function Te(c){oe.call(this,c)}Ft(Te,oe),Te.prototype.getMesh=function(){return Mt(this,be,1)},Te.prototype.getPoseTransformMatrix=function(){return Mt(this,Ae,2)};function Vn(c){t:{var d=new Te;for(c=new re(c);Se(c);)switch(c.i){case 10:var m=pe(c,new be,rn);Kt(d,1,m);break;case 18:m=pe(c,new Ae,Oe),Kt(d,2,m);break;default:if(!Rt(d,c))break t}}return d}function Je(c,d,m){if(m=c.createShader(m===0?c.VERTEX_SHADER:c.FRAGMENT_SHADER),c.shaderSource(m,d),c.compileShader(m),!c.getShaderParameter(m,c.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
73
72
|
|
|
74
|
-
`+c.getShaderInfoLog(m));return m}function on(c){return Ie(c,Ee).map(function(d){return{index:$t(d,1,0),Y:
|
|
73
|
+
`+c.getShaderInfoLog(m));return m}function on(c){return Ie(c,Ee).map(function(d){return{index:$t(d,1,0),Y:St(d,2),label:Ot(d,3)!=null?$t(d,3,""):void 0,displayName:Ot(d,4)!=null?$t(d,4,""):void 0}})}function yn(c){return{x:St(c,1),y:St(c,2),z:St(c,3),visibility:Ot(c,4)!=null?St(c,4):void 0}}function Fn(c,d){this.h=c,this.g=d,this.l=0}function Ke(c,d,m){return vn(c,d),typeof c.g.canvas.transferToImageBitmap=="function"?Promise.resolve(c.g.canvas.transferToImageBitmap()):m?Promise.resolve(c.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(c.g.canvas):(c.i===void 0&&(c.i=document.createElement("canvas")),new Promise(function(F){c.i.height=c.g.canvas.height,c.i.width=c.g.canvas.width,c.i.getContext("2d",{}).drawImage(c.g.canvas,0,0,c.g.canvas.width,c.g.canvas.height),F(c.i)}))}function vn(c,d){var m=c.g;if(c.m===void 0){var F=Je(m,`
|
|
75
74
|
attribute vec2 aVertex;
|
|
76
75
|
attribute vec2 aTex;
|
|
77
76
|
varying vec2 vTex;
|
|
78
77
|
void main(void) {
|
|
79
78
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
80
79
|
vTex = aTex;
|
|
81
|
-
}`,0),j=
|
|
80
|
+
}`,0),j=Je(m,`
|
|
82
81
|
precision mediump float;
|
|
83
82
|
varying vec2 vTex;
|
|
84
83
|
uniform sampler2D sampler0;
|
|
85
84
|
void main(){
|
|
86
85
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
87
|
-
}`,1),
|
|
86
|
+
}`,1),B=m.createProgram();if(m.attachShader(B,F),m.attachShader(B,j),m.linkProgram(B),!m.getProgramParameter(B,m.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
88
87
|
|
|
89
|
-
`+m.getProgramInfoLog(P));x=c.m=P,m.useProgram(x),j=m.getUniformLocation(x,"sampler0"),c.j={I:m.getAttribLocation(x,"aVertex"),H:m.getAttribLocation(x,"aTex"),da:j},c.s=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.enableVertexAttribArray(c.j.I),m.vertexAttribPointer(c.j.I,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),c.o=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.enableVertexAttribArray(c.j.H),m.vertexAttribPointer(c.j.H,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),m.uniform1i(j,0)}x=c.j,m.useProgram(c.m),m.canvas.width=d.width,m.canvas.height=d.height,m.viewport(0,0,d.width,d.height),m.activeTexture(m.TEXTURE0),c.h.bindTexture2d(d.glName),m.enableVertexAttribArray(x.I),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.vertexAttribPointer(x.I,2,m.FLOAT,!1,0,0),m.enableVertexAttribArray(x.H),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.vertexAttribPointer(x.H,2,m.FLOAT,!1,0,0),m.bindFramebuffer(m.DRAW_FRAMEBUFFER?m.DRAW_FRAMEBUFFER:m.FRAMEBUFFER,null),m.clearColor(0,0,0,0),m.clear(m.COLOR_BUFFER_BIT),m.colorMask(!0,!0,!0,!0),m.drawArrays(m.TRIANGLE_FAN,0,4),m.disableVertexAttribArray(x.I),m.disableVertexAttribArray(x.H),m.bindBuffer(m.ARRAY_BUFFER,null),c.h.bindTexture2d(0)}function Un(c){this.g=c}var Yn=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function vn(c,d){return d+c}function Gn(c,d){window[c]=d}function f(c){var d=document.createElement("script");return d.setAttribute("src",c),d.setAttribute("crossorigin","anonymous"),new Promise(function(m){d.addEventListener("load",function(){m()},!1),d.addEventListener("error",function(){m()},!1),document.body.appendChild(d)})}function b(){return Jt(this,function c(){return te(c,function(d){switch(d.g){case 1:return d.m=2,$(d,WebAssembly.instantiate(Yn),4);case 4:d.g=3,d.m=0;break;case 2:return d.m=0,d.j=null,d.return(!1);case 3:return d.return(!0)}})})}function Z(c){if(this.g=c,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=c&&c.locateFile||vn,typeof window=="object")var d=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")d=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=d,c.options){d=C(Object.keys(c.options));for(var m=d.next();!m.done;m=d.next()){m=m.value;var x=c.options[m].default;x!==void 0&&(this.j[m]=typeof x=="function"?x():x)}}}V=Z.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function U(c,d){return c.g.files===void 0?[]:typeof c.g.files=="function"?c.g.files(d):c.g.files}function _(c){return Jt(c,function d(){var m=this,x,j,P,H,D,rt,r,y,G,S,E;return te(d,function(J){switch(J.g){case 1:return x=m,m.R?(j=U(m,m.j),$(J,b(),2)):J.return();case 2:if(P=J.h,typeof window=="object")return Gn("createMediapipeSolutionsWasm",{locateFile:m.locateFile}),Gn("createMediapipeSolutionsPackedAssets",{locateFile:m.locateFile}),rt=j.filter(function(k){return k.data!==void 0}),r=j.filter(function(k){return k.data===void 0}),y=Promise.all(rt.map(function(k){var q=tt(x,k.url);if(k.path!==void 0){var z=k.path;q=q.then(function(lt){return x.overrideFile(z,lt),Promise.resolve(lt)})}return q})),G=Promise.all(r.map(function(k){return k.simd===void 0||k.simd&&P||!k.simd&&!P?f(x.locateFile(k.url,x.S)):Promise.resolve()})).then(function(){return Jt(x,function k(){var q,z,lt=this;return te(k,function(pt){if(pt.g==1)return q=window.createMediapipeSolutionsWasm,z=window.createMediapipeSolutionsPackedAssets,$(pt,q(z),2);lt.h=pt.h,pt.g=0})})}),S=function(){return Jt(x,function k(){var q=this;return te(k,function(z){return q.g.graph&&q.g.graph.url?z=$(z,tt(q,q.g.graph.url),0):(z.g=0,z=void 0),z})})}(),$(J,Promise.all([G,y,S]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return H=j.filter(function(k){return k.simd===void 0||k.simd&&P||!k.simd&&!P}).map(function(k){return x.locateFile(k.url,x.S)}),importScripts.apply(null,dt(H)),$(J,createMediapipeSolutionsWasm(Module),6);case 6:m.h=J.h,m.l=new OffscreenCanvas(1,1),m.h.canvas=m.l,D=m.h.GL.createContext(m.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),m.h.GL.makeContextCurrent(D),J.g=4;break;case 7:if(m.l=document.createElement("canvas"),E=m.l.getContext("webgl2",{}),!E&&(E=m.l.getContext("webgl",{}),!E))return alert("Failed to create WebGL canvas context when passing video frame."),J.return();m.D=E,m.h.canvas=m.l,m.h.createContext(m.l,!0,!0,{});case 4:m.i=new m.h.SolutionWasm,m.R=!1,J.g=0}})})}function et(c){return Jt(c,function d(){var m=this,x,j,P,H,D,rt,r,y;return te(d,function(G){if(G.g==1){if(m.g.graph&&m.g.graph.url&&m.P===m.g.graph.url)return G.return();if(m.o=!0,!m.g.graph||!m.g.graph.url){G.g=2;return}return m.P=m.g.graph.url,$(G,tt(m,m.g.graph.url),3)}for(G.g!=2&&(x=G.h,m.i.loadGraph(x)),j=C(Object.keys(m.B)),P=j.next();!P.done;P=j.next())H=P.value,m.i.overrideFile(H,m.B[H]);if(m.B={},m.g.listeners)for(D=C(m.g.listeners),rt=D.next();!rt.done;rt=D.next())r=rt.value,It(m,r);y=m.j,m.j={},m.setOptions(y),G.g=0})})}V.reset=function(){return Jt(this,function c(){var d=this;return te(c,function(m){d.i&&(d.i.reset(),d.m={},d.s={}),m.g=0})})},V.setOptions=function(c,d){var m=this;if(d=d||this.g.options){for(var x=[],j=[],P={},H=C(Object.keys(c)),D=H.next();!D.done;P={K:P.K,L:P.L},D=H.next()){var rt=D.value;rt in this.j&&this.j[rt]===c[rt]||(this.j[rt]=c[rt],D=d[rt],D!==void 0&&(D.onChange&&(P.K=D.onChange,P.L=c[rt],x.push(function(r){return function(){return Jt(m,function y(){var G,S=this;return te(y,function(E){if(E.g==1)return $(E,r.K(r.L),2);G=E.h,G===!0&&(S.o=!0),E.g=0})})}}(P))),D.graphOptionXref&&(rt={valueNumber:D.type===1?c[rt]:0,valueBoolean:D.type===0?c[rt]:!1,valueString:D.type===2?c[rt]:""},D=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),D.graphOptionXref),rt),j.push(D))))}(x.length!==0||j.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(j),this.u=(this.u===void 0?[]:this.u).concat(x))}};function O(c){return Jt(c,function d(){var m=this,x,j,P,H,D,rt,r;return te(d,function(y){switch(y.g){case 1:if(!m.o)return y.return();if(!m.u){y.g=2;break}x=C(m.u),j=x.next();case 3:if(j.done){y.g=5;break}return P=j.value,$(y,P(),4);case 4:j=x.next(),y.g=3;break;case 5:m.u=void 0;case 2:if(m.A){for(H=new m.h.GraphOptionChangeRequestList,D=C(m.A),rt=D.next();!rt.done;rt=D.next())r=rt.value,H.push_back(r);m.i.changeOptions(H),H.delete(),m.A=void 0}m.o=!1,y.g=0}})})}V.initialize=function(){return Jt(this,function c(){var d=this;return te(c,function(m){return m.g==1?$(m,_(d),2):m.g!=3?$(m,et(d),3):$(m,O(d),0)})})};function tt(c,d){return Jt(c,function m(){var x=this,j,P;return te(m,function(H){return d in x.F?H.return(x.F[d]):(j=x.locateFile(d,""),P=fetch(j).then(function(D){return D.arrayBuffer()}),x.F[d]=P,H.return(P))})})}V.overrideFile=function(c,d){this.i?this.i.overrideFile(c,d):this.B[c]=d},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(c,d){return Jt(this,function m(){var x=this,j,P,H,D,rt,r,y,G,S;return te(m,function(E){switch(E.g){case 1:return x.g.inputs?(j=1e3*(d==null?performance.now():d),$(E,x.C,2)):E.return();case 2:return $(E,x.initialize(),3);case 3:for(P=new x.h.PacketDataList,H=C(Object.keys(c)),D=H.next();!D.done;D=H.next())if(rt=D.value,r=x.g.inputs[rt]){t:{var J=x,k=c[rt];switch(r.type){case"video":var q=J.m[r.stream];if(q||(q=new xn(J.h,J.D),J.m[r.stream]=q),J=q,J.l===0&&(J.l=J.h.createTexture()),typeof HTMLVideoElement!="undefined"&&k instanceof HTMLVideoElement){var z=k.videoWidth;q=k.videoHeight}else typeof HTMLImageElement!="undefined"&&k instanceof HTMLImageElement?(z=k.naturalWidth,q=k.naturalHeight):(z=k.width,q=k.height);q={glName:J.l,width:z,height:q},z=J.g,z.canvas.width=q.width,z.canvas.height=q.height,z.activeTexture(z.TEXTURE0),J.h.bindTexture2d(J.l),z.texImage2D(z.TEXTURE_2D,0,z.RGBA,z.RGBA,z.UNSIGNED_BYTE,k),J.h.bindTexture2d(0),J=q;break t;case"detections":for(q=J.m[r.stream],q||(q=new Un(J.h),J.m[r.stream]=q),J=q,J.data||(J.data=new J.g.DetectionListData),J.data.reset(k.length),q=0;q<k.length;++q){z=k[q];var lt=J.data,pt=lt.setBoundingBox,Ft=q,yt=z.T,it=new Ye;bt(it,1,yt.Z),bt(it,2,yt.$),bt(it,3,yt.height),bt(it,4,yt.width),bt(it,5,yt.rotation),bt(it,6,yt.X);var gt=yt=new se;Je(gt,1,Kt(it,1)),Je(gt,2,Kt(it,2)),Je(gt,3,Kt(it,3)),Je(gt,4,Kt(it,4)),Je(gt,5,Kt(it,5));var vt=Kt(it,6);if(vt!=null&&vt!=null){Ct(gt.g,48);var Gt=gt.g,Rt=vt;vt=0>Rt,Rt=Math.abs(Rt);var i=Rt>>>0;for(Rt=Math.floor((Rt-i)/4294967296),Rt>>>=0,vt&&(Rt=~Rt>>>0,i=(~i>>>0)+1,4294967295<i&&(i=0,Rt++,4294967295<Rt&&(Rt=0))),ce=i,ve=Rt,vt=ce,i=ve;0<i||127<vt;)Gt.push(vt&127|128),vt=(vt>>>7|i<<25)>>>0,i>>>=7;Gt.push(vt)}if(kt(it,gt),yt=Le(yt),pt.call(lt,Ft,yt),z.O)for(lt=0;lt<z.O.length;++lt)it=z.O[lt],gt=!!it.visibility,pt=J.data,Ft=pt.addNormalizedLandmark,yt=q,it=Object.assign(Object.assign({},it),{visibility:gt?it.visibility:0}),gt=new Me,bt(gt,1,it.x),bt(gt,2,it.y),bt(gt,3,it.z),it.visibility&&bt(gt,4,it.visibility),Gt=it=new se,Je(Gt,1,Kt(gt,1)),Je(Gt,2,Kt(gt,2)),Je(Gt,3,Kt(gt,3)),Je(Gt,4,Kt(gt,4)),Je(Gt,5,Kt(gt,5)),kt(gt,Gt),it=Le(it),Ft.call(pt,yt,it);if(z.M)for(lt=0;lt<z.M.length;++lt){if(pt=J.data,Ft=pt.addClassification,yt=q,it=z.M[lt],gt=new Ee,bt(gt,2,it.Y),it.index&&bt(gt,1,it.index),it.label&&bt(gt,3,it.label),it.displayName&&bt(gt,4,it.displayName),Gt=it=new se,i=Kt(gt,1),i!=null&&i!=null)if(Ct(Gt.g,8),vt=Gt.g,0<=i)Ct(vt,i);else{for(Rt=0;9>Rt;Rt++)vt.push(i&127|128),i>>=7;vt.push(1)}Je(Gt,2,Kt(gt,2)),vt=Kt(gt,3),vt!=null&&(vt=bn(vt),Ct(Gt.g,26),Ct(Gt.g,vt.length),Ut(Gt,Gt.g.end()),Ut(Gt,vt)),vt=Kt(gt,4),vt!=null&&(vt=bn(vt),Ct(Gt.g,34),Ct(Gt.g,vt.length),Ut(Gt,Gt.g.end()),Ut(Gt,vt)),kt(gt,Gt),it=Le(it),Ft.call(pt,yt,it)}}J=J.data;break t;default:J={}}}switch(y=J,G=r.stream,r.type){case"video":P.pushTexture2d(Object.assign(Object.assign({},y),{stream:G,timestamp:j}));break;case"detections":S=y,S.stream=G,S.timestamp=j,P.pushDetectionList(S);break;default:throw Error("Unknown input config type: '"+r.type+"'")}}return x.i.send(P),$(E,x.C,4);case 4:P.delete(),E.g=0}})})};function st(c,d,m){return Jt(c,function x(){var j,P,H,D,rt,r,y=this,G,S,E,J,k,q,z,lt;return te(x,function(pt){switch(pt.g){case 1:if(!m)return pt.return(d);for(j={},P=0,H=C(Object.keys(m)),D=H.next();!D.done;D=H.next())rt=D.value,r=m[rt],typeof r!="string"&&r.type==="texture"&&d[r.stream]!==void 0&&++P;1<P&&(y.G=!1),G=C(Object.keys(m)),D=G.next();case 2:if(D.done){pt.g=4;break}if(S=D.value,E=m[S],typeof E=="string")return z=j,lt=S,$(pt,mt(y,S,d[E]),14);if(J=d[E.stream],E.type==="detection_list"){if(J){for(var Ft=J.getRectList(),yt=J.getLandmarksList(),it=J.getClassificationsList(),gt=[],vt=0;vt<Ft.size();++vt){var Gt=Ft.get(vt);t:{var Rt=new Ye;for(Gt=new re(Gt);Ve(Gt);)switch(Gt.i){case 13:var i=At(Gt);bt(Rt,1,i);break;case 21:i=At(Gt),bt(Rt,2,i);break;case 29:i=At(Gt),bt(Rt,3,i);break;case 37:i=At(Gt),bt(Rt,4,i);break;case 45:i=At(Gt),bt(Rt,5,i);break;case 48:i=ae(Gt.g),bt(Rt,6,i);break;default:if(!Xt(Rt,Gt))break t}}Rt={Z:Vt(Rt,1),$:Vt(Rt,2),height:Vt(Rt,3),width:Vt(Rt,4),rotation:Vt(Rt,5,0),X:$t(Rt,6,0)},Gt=Ie(Ue(yt.get(vt)),Me).map(mn);var g=it.get(vt);t:for(i=new De,g=new re(g);Ve(g);)switch(g.i){case 10:i.addClassification(pe(g,new Ee,an));break;default:if(!Xt(i,g))break t}Rt={T:Rt,O:Gt,M:on(i)},gt.push(Rt)}Ft=gt}else Ft=[];j[S]=Ft,pt.g=7;break}if(E.type==="proto_list"){if(J){for(Ft=Array(J.size()),yt=0;yt<J.size();yt++)Ft[yt]=J.get(yt);J.delete()}else Ft=[];j[S]=Ft,pt.g=7;break}if(J===void 0){pt.g=3;break}if(E.type==="float_list"){j[S]=J,pt.g=7;break}if(E.type==="proto"){j[S]=J,pt.g=7;break}if(E.type!=="texture")throw Error("Unknown output config type: '"+E.type+"'");return k=y.s[S],k||(k=new xn(y.h,y.D),y.s[S]=k),$(pt,Oe(k,J,y.G),13);case 13:q=pt.h,j[S]=q;case 7:E.transform&&j[S]&&(j[S]=E.transform(j[S])),pt.g=3;break;case 14:z[lt]=pt.h;case 3:D=G.next(),pt.g=2;break;case 4:return pt.return(j)}})})}function mt(c,d,m){return Jt(c,function x(){var j=this,P;return te(x,function(H){return typeof m=="number"||m instanceof Uint8Array||m instanceof j.h.Uint8BlobList?H.return(m):m instanceof j.h.Texture2dDataOut?(P=j.s[d],P||(P=new xn(j.h,j.D),j.s[d]=P),H.return(Oe(P,m,j.G))):H.return(void 0)})})}function It(c,d){for(var m=d.name||"$",x=[].concat(dt(d.wants)),j=new c.h.StringList,P=C(d.wants),H=P.next();!H.done;H=P.next())j.push_back(H.value);P=c.h.PacketListener.implement({onResults:function(D){for(var rt={},r=0;r<d.wants.length;++r)rt[x[r]]=D.get(r);var y=c.listeners[m];y&&(c.C=st(c,rt,d.outs).then(function(G){G=y(G);for(var S=0;S<d.wants.length;++S){var E=rt[x[S]];typeof E=="object"&&E.hasOwnProperty&&E.hasOwnProperty("delete")&&E.delete()}G&&(c.C=G)}))}}),c.i.attachMultiListener(j,P),j.delete()}V.onResults=function(c,d){this.listeners[d||"$"]=c},ye("Solution",Z),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function wt(c){c=Sn(c);var d=c.getMesh();if(!d)return c;var m=new Float32Array(d.getVertexBufferList());d.getVertexBufferList=function(){return m};var x=new Uint32Array(d.getIndexBufferList());return d.getIndexBufferList=function(){return x},c}var jt={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(c){return c.map(wt)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(c){return c.map(function(d){return Ie(Ue(d),Me).map(mn)})}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},Wt=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Zt=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],Tt=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],Nt=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Bt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],Dt=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],qt=[].concat(dt(Wt),dt(Zt),dt(Tt),dt(Nt),dt(Bt),dt(Dt));function Ze(c){c=c||{},c=Object.assign(Object.assign({},jt),c),this.g=new Z(c)}V=Ze.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(c){this.g.onResults(c)},V.initialize=function(){return Jt(this,function c(){var d=this;return te(c,function(m){return $(m,d.g.initialize(),0)})})},V.reset=function(){this.g.reset()},V.send=function(c){return Jt(this,function d(){var m=this;return te(d,function(x){return $(x,m.g.send(c),0)})})},V.setOptions=function(c){this.g.setOptions(c)},ye("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),ye("FaceMesh",Ze),ye("FACEMESH_LIPS",Wt),ye("FACEMESH_LEFT_EYE",Zt),ye("FACEMESH_LEFT_EYEBROW",Tt),ye("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),ye("FACEMESH_RIGHT_EYE",Nt),ye("FACEMESH_RIGHT_EYEBROW",Bt),ye("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),ye("FACEMESH_FACE_OVAL",Dt),ye("FACEMESH_CONTOURS",qt),ye("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),ye("matrixDataToMatrix",function(c){for(var d=c.getCols(),m=c.getRows(),x=c.getPackedDataList(),j=[],P=0;P<m;P++)j.push(Array(d));for(P=0;P<m;P++)for(var H=0;H<d;H++){var D=c.getLayout()===1?P*d+H:H*m+P;j[P][H]=x[D]}return j}),ye("VERSION","0.4.1633559619")}).call(xr);const Lr={};(function(){var V;function v(t){var o=0;return function(){return o<t.length?{done:!1,value:t[o++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(t,o,s){return t==Array.prototype||t==Object.prototype||(t[o]=s.value),t};function L(t){t=[typeof globalThis=="object"&&globalThis,t,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var o=0;o<t.length;++o){var s=t[o];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")}var F=L(this);function A(t,o){if(o)t:{var s=F;t=t.split(".");for(var h=0;h<t.length-1;h++){var R=t[h];if(!(R in s))break t;s=s[R]}t=t[t.length-1],h=s[t],o=o(h),o!=h&&o!=null&&W(s,t,{configurable:!0,writable:!0,value:o})}}A("Symbol",function(t){function o(T){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return new s(h+(T||"")+"_"+R++,T)}function s(T,I){this.g=T,W(this,"description",{configurable:!0,writable:!0,value:I})}if(t)return t;s.prototype.toString=function(){return this.g};var h="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",R=0;return o}),A("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var o="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),s=0;s<o.length;s++){var h=F[o[s]];typeof h=="function"&&typeof h.prototype[t]!="function"&&W(h.prototype,t,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return t});function Q(t){return t={next:t},t[Symbol.iterator]=function(){return this},t}function C(t){var o=typeof Symbol!="undefined"&&Symbol.iterator&&t[Symbol.iterator];return o?o.call(t):{next:v(t)}}function dt(t){if(!(t instanceof Array)){t=C(t);for(var o,s=[];!(o=t.next()).done;)s.push(o.value);t=s}return t}var _e=typeof Object.create=="function"?Object.create:function(t){function o(){}return o.prototype=t,new o},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(t,o){if(t.__proto__=o,t.__proto__!==o)throw new TypeError(t+" is not extensible");return t}:null}var je=ct;function xt(t,o){if(t.prototype=_e(o.prototype),t.prototype.constructor=t,je)je(t,o);else for(var s in o)if(s!="prototype")if(Object.defineProperties){var h=Object.getOwnPropertyDescriptor(o,s);h&&Object.defineProperty(t,s,h)}else t[s]=o[s];t.ka=o.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(t){if(t.l)throw new TypeError("Generator is already running");t.l=!0}ue.prototype.o=function(t){this.h=t};function he(t,o){t.j={V:o,X:!0},t.g=t.m||t.s}ue.prototype.return=function(t){this.j={return:t},this.g=this.s};function $(t,o,s){return t.g=s,{value:o}}function In(t){this.g=new ue,this.h=t}function jn(t,o){de(t.g);var s=t.g.i;return s?He(t,"return"in s?s.return:function(h){return{value:h,done:!0}},o,t.g.return):(t.g.return(o),ee(t))}function He(t,o,s,h){try{var R=o.call(t.g.i,s);if(!(R instanceof Object))throw new TypeError("Iterator result "+R+" is not an object");if(!R.done)return t.g.l=!1,R;var T=R.value}catch(I){return t.g.i=null,he(t.g,I),ee(t)}return t.g.i=null,h.call(t.g,T),ee(t)}function ee(t){for(;t.g.g;)try{var o=t.h(t.g);if(o)return t.g.l=!1,{value:o.value,done:!1}}catch(s){t.g.h=void 0,he(t.g,s)}if(t.g.l=!1,t.g.j){if(o=t.g.j,t.g.j=null,o.X)throw o.V;return{value:o.return,done:!0}}return{value:void 0,done:!0}}function Hn(t){this.next=function(o){return de(t.g),t.g.i?o=He(t,t.g.i.next,o,t.g.o):(t.g.o(o),o=ee(t)),o},this.throw=function(o){return de(t.g),t.g.i?o=He(t,t.g.i.throw,o,t.g.o):(he(t.g,o),o=ee(t)),o},this.return=function(o){return jn(t,o)},this[Symbol.iterator]=function(){return this}}function te(t){function o(h){return t.next(h)}function s(h){return t.throw(h)}return new Promise(function(h,R){function T(I){I.done?h(I.value):Promise.resolve(I.value).then(o,s).then(T,R)}T(t.next())})}function ht(t){return te(new Hn(new In(t)))}A("Promise",function(t){function o(I){this.h=0,this.i=void 0,this.g=[],this.o=!1;var Y=this.j();try{I(Y.resolve,Y.reject)}catch(K){Y.reject(K)}}function s(){this.g=null}function h(I){return I instanceof o?I:new o(function(Y){Y(I)})}if(t)return t;s.prototype.h=function(I){if(this.g==null){this.g=[];var Y=this;this.i(function(){Y.l()})}this.g.push(I)};var R=F.setTimeout;s.prototype.i=function(I){R(I,0)},s.prototype.l=function(){for(;this.g&&this.g.length;){var I=this.g;this.g=[];for(var Y=0;Y<I.length;++Y){var K=I[Y];I[Y]=null;try{K()}catch(B){this.j(B)}}}this.g=null},s.prototype.j=function(I){this.i(function(){throw I})},o.prototype.j=function(){function I(B){return function(M){K||(K=!0,B.call(Y,M))}}var Y=this,K=!1;return{resolve:I(this.D),reject:I(this.l)}},o.prototype.D=function(I){if(I===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(I instanceof o)this.G(I);else{t:switch(typeof I){case"object":var Y=I!=null;break t;case"function":Y=!0;break t;default:Y=!1}Y?this.A(I):this.m(I)}},o.prototype.A=function(I){var Y=void 0;try{Y=I.then}catch(K){this.l(K);return}typeof Y=="function"?this.H(Y,I):this.m(I)},o.prototype.l=function(I){this.s(2,I)},o.prototype.m=function(I){this.s(1,I)},o.prototype.s=function(I,Y){if(this.h!=0)throw Error("Cannot settle("+I+", "+Y+"): Promise already settled in state"+this.h);this.h=I,this.i=Y,this.h===2&&this.F(),this.B()},o.prototype.F=function(){var I=this;R(function(){if(I.C()){var Y=F.console;typeof Y!="undefined"&&Y.error(I.i)}},1)},o.prototype.C=function(){if(this.o)return!1;var I=F.CustomEvent,Y=F.Event,K=F.dispatchEvent;return typeof K=="undefined"?!0:(typeof I=="function"?I=new I("unhandledrejection",{cancelable:!0}):typeof Y=="function"?I=new Y("unhandledrejection",{cancelable:!0}):(I=F.document.createEvent("CustomEvent"),I.initCustomEvent("unhandledrejection",!1,!0,I)),I.promise=this,I.reason=this.i,K(I))},o.prototype.B=function(){if(this.g!=null){for(var I=0;I<this.g.length;++I)T.h(this.g[I]);this.g=null}};var T=new s;return o.prototype.G=function(I){var Y=this.j();I.K(Y.resolve,Y.reject)},o.prototype.H=function(I,Y){var K=this.j();try{I.call(Y,K.resolve,K.reject)}catch(B){K.reject(B)}},o.prototype.then=function(I,Y){function K(ot,ut){return typeof ot=="function"?function(ft){try{B(ot(ft))}catch(at){M(at)}}:ut}var B,M,nt=new o(function(ot,ut){B=ot,M=ut});return this.K(K(I,B),K(Y,M)),nt},o.prototype.catch=function(I){return this.then(void 0,I)},o.prototype.K=function(I,Y){function K(){switch(B.h){case 1:I(B.i);break;case 2:Y(B.i);break;default:throw Error("Unexpected state: "+B.h)}}var B=this;this.g==null?T.h(K):this.g.push(K),this.o=!0},o.resolve=h,o.reject=function(I){return new o(function(Y,K){K(I)})},o.race=function(I){return new o(function(Y,K){for(var B=C(I),M=B.next();!M.done;M=B.next())h(M.value).K(Y,K)})},o.all=function(I){var Y=C(I),K=Y.next();return K.done?h([]):new o(function(B,M){function nt(ft){return function(at){ot[ft]=at,ut--,ut==0&&B(ot)}}var ot=[],ut=0;do ot.push(void 0),ut++,h(K.value).K(nt(ot.length-1),M),K=Y.next();while(!K.done)})},o});function Jn(t,o){t instanceof String&&(t+="");var s=0,h=!1,R={next:function(){if(!h&&s<t.length){var T=s++;return{value:o(T,t[T]),done:!1}}return h=!0,{done:!0,value:void 0}}};return R[Symbol.iterator]=function(){return R},R}var Cn=typeof Object.assign=="function"?Object.assign:function(t,o){for(var s=1;s<arguments.length;s++){var h=arguments[s];if(h)for(var R in h)Object.prototype.hasOwnProperty.call(h,R)&&(t[R]=h[R])}return t};A("Object.assign",function(t){return t||Cn}),A("Object.is",function(t){return t||function(o,s){return o===s?o!==0||1/o===1/s:o!==o&&s!==s}}),A("Array.prototype.includes",function(t){return t||function(o,s){var h=this;h instanceof String&&(h=String(h));var R=h.length;for(s=s||0,0>s&&(s=Math.max(s+R,0));s<R;s++){var T=h[s];if(T===o||Object.is(T,o))return!0}return!1}}),A("String.prototype.includes",function(t){return t||function(o,s){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(o instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(o,s||0)!==-1}}),A("Array.prototype.keys",function(t){return t||function(){return Jn(this,function(o){return o})}});var ye=this||self;function St(t,o){t=t.split(".");var s=ye;t[0]in s||typeof s.execScript=="undefined"||s.execScript("var "+t[0]);for(var h;t.length&&(h=t.shift());)t.length||o===void 0?s[h]&&s[h]!==Object.prototype[h]?s=s[h]:s=s[h]={}:s[h]=o}function We(t){throw t}function tn(t,o){We(Error("Invalid wire type: "+t+" (at position "+o+")"))}function hn(){We(Error("Failed to read varint, encoding is invalid."))}function Wn(t,o){return o=String.fromCharCode.apply(null,o),t==null?o:t+o}var bn,Fn=typeof TextDecoder!="undefined",en,un=typeof TextEncoder!="undefined";function Ln(t){if(un)t=(en||(en=new TextEncoder)).encode(t);else{var o=void 0;o=o===void 0?!1:o;for(var s=0,h=new Uint8Array(3*t.length),R=0;R<t.length;R++){var T=t.charCodeAt(R);if(128>T)h[s++]=T;else{if(2048>T)h[s++]=T>>6|192;else{if(55296<=T&&57343>=T){if(56319>=T&&R<t.length){var I=t.charCodeAt(++R);if(56320<=I&&57343>=I){T=1024*(T-55296)+I-56320+65536,h[s++]=T>>18|240,h[s++]=T>>12&63|128,h[s++]=T>>6&63|128,h[s++]=T&63|128;continue}else R--}if(o)throw Error("Found an unpaired surrogate");T=65533}h[s++]=T>>12|224,h[s++]=T>>6&63|128}h[s++]=T&63|128}}t=h.subarray(0,s)}return t}var Vn={},dn=null;function nn(t){var o;o===void 0&&(o=0),ce(),o=Vn[o];for(var s=Array(Math.floor(t.length/3)),h=o[64]||"",R=0,T=0;R<t.length-2;R+=3){var I=t[R],Y=t[R+1],K=t[R+2],B=o[I>>2];I=o[(I&3)<<4|Y>>4],Y=o[(Y&15)<<2|K>>6],K=o[K&63],s[T++]=B+I+Y+K}switch(B=0,K=h,t.length-R){case 2:B=t[R+1],K=o[(B&15)<<2]||h;case 1:t=t[R],s[T]=o[t>>2]+o[(t&3)<<4|B>>4]+K+h}return s.join("")}function Zn(t){var o=t.length,s=3*o/4;s%3?s=Math.floor(s):"=.".indexOf(t[o-1])!=-1&&(s="=.".indexOf(t[o-2])!=-1?s-2:s-1);var h=new Uint8Array(s),R=0;return pn(t,function(T){h[R++]=T}),h.subarray(0,R)}function pn(t,o){function s(K){for(;h<t.length;){var B=t.charAt(h++),M=dn[B];if(M!=null)return M;if(!/^[\s\xa0]*$/.test(B))throw Error("Unknown base64 encoding at char: "+B)}return K}ce();for(var h=0;;){var R=s(-1),T=s(0),I=s(64),Y=s(64);if(Y===64&&R===-1)break;o(R<<2|T>>4),I!=64&&(o(T<<4&240|I>>2),Y!=64&&o(I<<6&192|Y))}}function ce(){if(!dn){dn={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),o=["+/=","+/","-_=","-_.","-_"],s=0;5>s;s++){var h=t.concat(o[s].split(""));Vn[s]=h;for(var R=0;R<h.length;R++){var T=h[R];dn[T]===void 0&&(dn[T]=R)}}}}var ve=typeof Uint8Array=="function",Pe;function le(t){if(this.g=t,t!==null&&t.length===0)throw Error("ByteString should be constructed with non-empty values")}var ae=typeof Uint8Array.prototype.slice=="function";function ze(t,o,s){return o===s?Pe||(Pe=new Uint8Array(0)):ae?t.slice(o,s):new Uint8Array(t.subarray(o,s))}var Fe=0,Ct=0;function re(t){if(t.constructor===Uint8Array)return t;if(t.constructor===ArrayBuffer)return new Uint8Array(t);if(t.constructor===Array)return new Uint8Array(t);if(t.constructor===String)return Zn(t);if(t.constructor===le){if(t.g==null)var o=Pe||(Pe=new Uint8Array(0));else{o=Uint8Array;var s=t.g;s=s==null||ve&&s!=null&&s instanceof Uint8Array?s:typeof s=="string"?Zn(s):null,t=t.g=s,o=new o(t)}return o}if(t instanceof Uint8Array)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Ve(t,o){o=o===void 0?{}:o,o=o.v===void 0?!1:o.v,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.v=o,t&&Lt(this,t)}function Lt(t,o){t.h=re(o),t.l=0,t.i=t.h.length,t.g=t.l}Ve.prototype.reset=function(){this.g=this.l};function pe(t){for(var o=128,s=0,h=0,R=0;4>R&&128<=o;R++)o=t.h[t.g++],s|=(o&127)<<7*R;if(128<=o&&(o=t.h[t.g++],s|=(o&127)<<28,h|=(o&127)>>4),128<=o)for(R=0;5>R&&128<=o;R++)o=t.h[t.g++],h|=(o&127)<<7*R+3;if(128>o)return t=s>>>0,o=h>>>0,(h=o&2147483648)&&(t=~t+1>>>0,o=~o>>>0,t==0&&(o=o+1>>>0)),t=4294967296*o+(t>>>0),h?-t:t;t.j=!0,hn()}function At(t){t.g>t.i&&(t.j=!0,We(Error("Tried to read past the end of the data "+t.g+" > "+t.i)))}function ne(t){var o=t.h,s=o[t.g],h=s&127;return 128>s?(t.g+=1,At(t),h):(s=o[t.g+1],h|=(s&127)<<7,128>s?(t.g+=2,At(t),h):(s=o[t.g+2],h|=(s&127)<<14,128>s?(t.g+=3,At(t),h):(s=o[t.g+3],h|=(s&127)<<21,128>s?(t.g+=4,At(t),h):(s=o[t.g+4],h|=(s&15)<<28,128>s?(t.g+=5,At(t),h>>>0):(t.g+=5,128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]?(t.j=!0,hn(),h):(At(t),h))))))}function Ge(t){var o=t.h[t.g],s=t.h[t.g+1],h=t.h[t.g+2],R=t.h[t.g+3];return t.g+=4,At(t),(o<<0|s<<8|h<<16|R<<24)>>>0}Ve.prototype.m=function(){var t=Ge(this),o=2*(t>>31)+1,s=t>>>23&255;return t&=8388607,s==255?t?NaN:1/0*o:s==0?o*Math.pow(2,-149)*t:o*Math.pow(2,s-150)*(t+Math.pow(2,23))};var Be=[];function se(){this.g=new Uint8Array(64),this.h=0}function Ut(t,o){if(!(t.h+1<t.g.length)){var s=t.g;t.g=new Uint8Array(Math.ceil(1+2*t.g.length)),t.g.set(s)}t.g[t.h++]=o}se.prototype.length=function(){return this.h},se.prototype.end=function(){var t=this.g,o=this.h;return this.h=0,ze(t,0,o)};function Le(t,o){for(;127<o;)Ut(t,o&127|128),o>>>=7;Ut(t,o)}function Je(t){var o={},s=o.O===void 0?!1:o.O;this.m={v:o.v===void 0?!1:o.v},this.O=s,o=this.m,Be.length?(s=Be.pop(),o&&(s.v=o.v),t&&Lt(s,t),t=s):t=new Ve(t,o),this.g=t,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Je.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function ge(t){var o=t.g;if((o=o.g==o.i)||(o=t.j)||(o=t.g,o=o.j||0>o.g||o.g>o.i),o)return!1;t.l=t.g.g;var s=ne(t.g);return o=s>>>3,s&=7,0<=s&&5>=s?(t.i=o,t.h=s,!0):(t.j=!0,tn(s,t.l),!1)}function Rn(t){switch(t.h){case 0:if(t.h!=0)Rn(t);else t:{t=t.g;for(var o=t.g,s=0;10>s;s++){if((t.h[o]&128)===0){t.g=o+1,At(t);break t}o++}t.j=!0,hn()}break;case 1:t=t.g,t.g+=8,At(t);break;case 2:t.h!=2?Rn(t):(o=ne(t.g),t=t.g,t.g+=o,At(t));break;case 5:t=t.g,t.g+=4,At(t);break;case 3:o=t.i;do{if(!ge(t)){t.j=!0,We(Error("Unmatched start-group tag: stream EOF"));break}if(t.h==4){t.i!=o&&(t.j=!0,We(Error("Unmatched end-group tag")));break}Rn(t)}while(1);break;default:t.j=!0,tn(t.h,t.l)}}function Qe(t,o,s){var h=t.g.i,R=ne(t.g),T=t.g.g+R;if(t.g.i=T,s(o,t),s=T-t.g.g,s!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(R+" bytes, instead read "+(R-s)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return t.g.g=T,t.g.i=h,o}var sn=[];function cn(){this.h=[],this.i=0,this.g=new se}function ie(t,o){o.length!==0&&(t.h.push(o),t.i+=o.length)}function Xe(t,o,s){Le(t.g,8*o+2),Le(t.g,s.length),ie(t,t.g.end()),ie(t,s)}var oe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Mt(t){return Object.isFrozen(t)||(oe?t[oe]|=1:t.g!==void 0?t.g|=1:Object.defineProperties(t,{g:{value:1,configurable:!0,writable:!0,enumerable:!1}})),t}function Ce(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function Kt(t){switch(typeof t){case"number":return isFinite(t)?t:String(t);case"object":if(ve&&t!=null&&t instanceof Uint8Array)return nn(t);if(t instanceof le){if(t.g==null)t="";else{var o=t.g;o=o==null||typeof o=="string"?o:ve&&o instanceof Uint8Array?nn(o):null,t=t.g=o}return t}}return t}function Yt(t,o){if(t!=null)return Array.isArray(t)||Ce(t)?gn(t,o):o(t)}function gn(t,o){if(Array.isArray(t)){for(var s=Array(t.length),h=0;h<t.length;h++)s[h]=Yt(t[h],o);if(o=Array.isArray(t)){var R;oe?R=t[oe]:R=t.g,o=(R==null?0:R)&1}return o&&Mt(s),s}R={};for(s in t)R[s]=Yt(t[s],o);return R}function $t(t){return t=Kt(t),Array.isArray(t)?gn(t,$t):t}var Vt;function bt(t,o,s){var h=Vt;Vt=null,t||(t=h),h=this.constructor.ha,t||(t=h?[h]:[]),this.i=(h?0:-1)-(this.constructor.fa||0),this.l=this.g=null,this.u=t;t:{if(h=this.u.length,t=h-1,h&&(h=this.u[t],Ce(h))){this.j=t-this.i,this.h=h;break t}o!==void 0&&-1<o?(this.j=Math.max(o,t+1-this.i),this.h=null):this.j=Number.MAX_VALUE}if(s)for(o=0;o<s.length;o++)t=s[o],t<this.j?(t+=this.i,(h=this.u[t])?Array.isArray(h)&&Mt(h):this.u[t]=zt):(Ie(this),(h=this.h[t])?Array.isArray(h)&&Mt(h):this.h[t]=zt)}var zt=Object.freeze(Mt([]));function Ie(t){var o=t.j+t.i;t.u[o]||(t.h=t.u[o]={})}function Ot(t,o,s){return o===-1?null:(s===void 0?0:s)||o>=t.j?t.h?t.h[o]:void 0:t.u[o+t.i]}function Qt(t,o,s){s=s===void 0?!1:s;var h=Ot(t,o,s);return h==null&&(h=zt),h===zt&&(h=Mt(h.slice()),Xt(t,o,h,s)),h}function xe(t,o){var s=Qt(t,o);if(t.l||(t.l={}),!t.l[o]){for(var h=0;h<s.length;h++)s[h]=+s[h];t.l[o]=!0}return s}function kt(t,o,s){return t=Ot(t,o),t=t==null?t:+t,t==null?s===void 0?0:s:t}function Xt(t,o,s,h){(h===void 0?0:h)||o>=t.j?(Ie(t),t.h[o]=s):t.u[o+t.i]=s}function Ae(t,o,s,h){s!==h?Xt(t,o,s):Xt(t,o,void 0,!1)}function Ke(t,o,s){if(s===-1)return null;t.g||(t.g={});var h=t.g[s];if(h)return h;var R=Ot(t,s,!1);return R==null?h:(o=new o(R),t.g[s]=o)}function Se(t,o,s){t.g||(t.g={});var h=t.g[s];if(!h){var R=Qt(t,s,!1);h=[];for(var T=0;T<R.length;T++)h[T]=new o(R[T]);t.g[s]=h}return h}function Jt(t,o,s,h,R){var T=Se(t,h,o);s=s||new h,t=Qt(t,o),R!=null?(T.splice(R,0,s),t.splice(R,0,s.u)):(T.push(s),t.push(s.u))}bt.prototype.toJSON=function(){return gn(this.u,$t)},bt.prototype.toString=function(){return this.u.toString()};function Ee(t,o){return t=Ot(t,o),t==null?0:t}function an(t,o){return t=Ot(t,o),t==null?"":t}function De(t,o){if(t=t.m){ie(o,o.g.end());for(var s=0;s<t.length;s++)ie(o,t[s])}}var Ne=Symbol();function Me(t,o,s){return t[Ne]||(t[Ne]=function(h,R){return o(h,R,s)})}function $e(t){var o=t[Ne];if(!o){var s=t[Ye]||(t[Ye]=t());o=function(h,R){return be(h,R,s)},t[Ne]=o}return o}function me(t){var o=t.da;if(o)return $e(o);if(o=t.ia){var s=t.Y;return delete t.Y,Me(t.W.g,o,s)}}function Ue(t){var o=me(t),s=t.W,h=t.ea;return o?function(R,T){return h(R,T,s,o)}:function(R,T){return h(R,T,s)}}function En(t){var o=t[0];switch(t.length){case 2:var s=t[1];return function(ut,ft,at){return o(ut,ft,at,s)};case 3:var h=t[1],R=$e(t[2]);return function(ut,ft,at){return o(ut,ft,at,h,R)};case 4:var T=t[1],I=t[3],Y=$e(t[2]);return function(ut,ft,at){return o(ut,ft,at,T,Y,I)};case 5:var K=t[1],B=Me(K,t[3],t[4]);return function(ut,ft,at){return o(ut,ft,at,K,B)};case 6:var M=t[1],nt=t[5],ot=Me(M,t[3],t[4]);return function(ut,ft,at){return o(ut,ft,at,M,ot,nt)};default:throw Error("Unsupported number of parameters, expected [2-6], got "+t.length)}}var Ye=Symbol();function be(t,o,s){for(;ge(o)&&o.h!=4;){var h=o.i,R=s[h];if(R)Array.isArray(R)&&(R=s[h]=En(R));else{var T=s[0];T&&(T=T[h])&&(R=s[h]=Ue(T))}R&&R(o,t,h)||(R=o,h=t,T=R.l,Rn(R),R.O||(R=ze(R.g.h,T,R.g.g),(T=h.m)?T.push(R):h.m=[R]))}return t}function rn(t,o){var s=new cn;if(o(t,s),t=s.i+s.g.length(),t===0)s=new Uint8Array(0);else{t=new Uint8Array(t);for(var h=s.h,R=h.length,T=o=0;T<R;T++){var I=h[T];I.length!==0&&(t.set(I,o),o+=I.length)}h=s.g,R=h.h,R!==0&&(t.set(h.g.subarray(0,R),o),h.h=0),s.h=[t],s=t}return s}function fn(t,o,s){if(sn.length){var h=sn.pop();t&&(Lt(h.g,t),h.i=-1,h.h=-1),t=h}else t=new Je(t);try{var R=new o;return be(R,t,s[Ye]||(s[Ye]=s()))}finally{o=t.g,o.h=null,o.l=0,o.i=0,o.g=0,o.j=!1,o.v=!1,t.i=-1,t.h=-1,t.j=!1,100>sn.length&&sn.push(t)}}function Te(t,o,s){if(o=Ot(o,s),o!=null){Le(t.g,8*s+5),t=t.g;var h=o;h=(s=0>h?1:0)?-h:h,h===0?0<1/h?Fe=Ct=0:(Ct=0,Fe=2147483648):isNaN(h)?(Ct=0,Fe=2147483647):34028234663852886e22<h?(Ct=0,Fe=(s<<31|2139095040)>>>0):11754943508222875e-54>h?(h=Math.round(h/Math.pow(2,-149)),Ct=0,Fe=(s<<31|h)>>>0):(o=Math.floor(Math.log(h)/Math.LN2),h*=Math.pow(2,-o),h=Math.round(8388608*h),16777216<=h&&++o,Ct=0,Fe=(s<<31|o+127<<23|h&8388607)>>>0),s=Fe,Ut(t,s>>>0&255),Ut(t,s>>>8&255),Ut(t,s>>>16&255),Ut(t,s>>>24&255)}}function Sn(t,o,s){if(t.h!==1)return!1;var h=t.g;t=Ge(h);var R=Ge(h);h=2*(R>>31)+1;var T=R>>>20&2047;return t=4294967296*(R&1048575)+t,Ae(o,s,T==2047?t?NaN:1/0*h:T==0?h*Math.pow(2,-1074)*t:h*Math.pow(2,T-1075)*(t+4503599627370496),0),!0}function ke(t,o,s){return t.h!==5?!1:(Xt(o,s,t.g.m()),!0)}function on(t,o,s){if(t.h!==5&&t.h!==2)return!1;if(o=Qt(o,s),t.h==2){s=Ve.prototype.m;var h=ne(t.g);for(h=t.g.g+h;t.g.g<h;)o.push(s.call(t.g))}else o.push(t.g.m());return!0}function mn(t,o,s){return t.h!==5?!1:(t=t.g.m(),Ae(o,s,t,0),!0)}function xn(t,o,s){return t.h!==0?!1:(Xt(o,s,pe(t.g)),!0)}function Oe(t,o,s){return t.h!==0?!1:(Xt(o,s,ne(t.g)),!0)}function yn(t,o,s){return t.h!==0?!1:(t=ne(t.g),Ae(o,s,t,0),!0)}function Un(t,o,s){return t.h!==0?!1:(t=!!ne(t.g),Ae(o,s,t,!1),!0)}function Yn(t,o,s){if(t.h!==2)return!1;var h=ne(t.g);t=t.g;var R=t.g;t.g+=h,At(t),t=t.h;var T;if(Fn)(T=bn)||(T=bn=new TextDecoder("utf-8",{fatal:!1})),T=T.decode(t.subarray(R,R+h));else{h=R+h;for(var I=[],Y=null,K,B,M;R<h;)K=t[R++],128>K?I.push(K):224>K?R>=h?I.push(65533):(B=t[R++],194>K||(B&192)!==128?(R--,I.push(65533)):I.push((K&31)<<6|B&63)):240>K?R>=h-1?I.push(65533):(B=t[R++],(B&192)!==128||K===224&&160>B||K===237&&160<=B||((T=t[R++])&192)!==128?(R--,I.push(65533)):I.push((K&15)<<12|(B&63)<<6|T&63)):244>=K?R>=h-2?I.push(65533):(B=t[R++],(B&192)!==128||(K<<28)+(B-144)>>30!==0||((T=t[R++])&192)!==128||((M=t[R++])&192)!==128?(R--,I.push(65533)):(K=(K&7)<<18|(B&63)<<12|(T&63)<<6|M&63,K-=65536,I.push((K>>10&1023)+55296,(K&1023)+56320))):I.push(65533),8192<=I.length&&(Y=Wn(Y,I),I.length=0);T=Wn(Y,I)}return Xt(o,s,T),!0}function vn(t,o,s,h,R){return t.h!==2?!1:(t=Qe(t,new h,R),o.g||(o.g={}),h=t&&t.u,o.g[s]=t,Xt(o,s,h,!1),!0)}function Gn(t,o,s,h,R){return t.h!==2?!1:(t=Qe(t,new h,R),Jt(o,s,t,h,void 0),!0)}function f(t,o,s){return t.h!==0?!1:(Xt(o,s,pe(t.g)),!0)}function b(t){bt.call(this,t)}xt(b,bt);function Z(){return{1:Oe,2:ke,3:Yn,4:Yn}}function U(t,o){var s=Ot(t,1);if(s!=null&&s!=null){Le(o.g,8);var h=o.g;if(0<=s)Le(h,s);else{for(var R=0;9>R;R++)Ut(h,s&127|128),s>>=7;Ut(h,1)}}Te(o,t,2),h=Ot(t,3),h!=null&&Xe(o,3,Ln(h)),h=Ot(t,4),h!=null&&Xe(o,4,Ln(h)),De(t,o)}function _(t){bt.call(this,t,-1,O)}xt(_,bt),_.prototype.addClassification=function(t,o){return Jt(this,1,t,b,o),this};function et(){return{1:[Gn,b,Z]}}var O=[1];function tt(t){bt.call(this,t)}xt(tt,bt);function st(){return{1:ke,2:ke,3:ke,4:ke,5:ke}}function mt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5),De(t,o)}function It(t){bt.call(this,t,-1,jt)}xt(It,bt);function wt(){return{1:[Gn,tt,st]}}var jt=[1];function Wt(t){bt.call(this,t)}xt(Wt,bt);function Zt(){return{1:ke,2:ke,3:ke,4:ke,5:ke,6:xn}}function Tt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5);var s=Ot(t,6);if(s!=null&&s!=null){Le(o.g,48);var h=o.g,R=s;s=0>R,R=Math.abs(R);var T=R>>>0;for(R=Math.floor((R-T)/4294967296),R>>>=0,s&&(R=~R>>>0,T=(~T>>>0)+1,4294967295<T&&(T=0,R++,4294967295<R&&(R=0))),Fe=T,Ct=R,s=Fe,T=Ct;0<T||127<s;)Ut(h,s&127|128),s=(s>>>7|T<<25)>>>0,T>>>=7;Ut(h,s)}De(t,o)}function Nt(t){bt.call(this,t,-1,Ze)}xt(Nt,bt);function Bt(){return{1:f,2:f,3:on,4:[vn,Dt,qt],5:Oe,6:Oe,7:on,8:on,9:on}}function Dt(t){bt.call(this,t)}xt(Dt,bt);function qt(){return{1:ke,2:ke,3:ke}}var Ze=[3,7,8,9];function c(t){bt.call(this,t)}xt(c,bt);function d(){return{1:mn,2:mn,3:mn}}function m(t){bt.call(this,t)}xt(m,bt);function x(){return{1:mn,2:mn,3:mn}}function j(t){bt.call(this,t)}xt(j,bt);function P(){return{1:yn,2:[vn,m,x],3:[vn,c,d],4:Un}}function H(t){bt.call(this,t,-1,rt)}xt(H,bt);function D(){return{1:yn,2:[Gn,j,P],3:mn,4:on,5:on,6:on}}var rt=[2,4,5,6];function r(t){bt.call(this,t,-1,G)}xt(r,bt);function y(){return{1:yn,2:[Gn,H,D],3:[vn,Nt,Bt],4:Sn,5:on,6:on}}var G=[2,5,6];function S(t,o,s){if(s=t.createShader(s===0?t.VERTEX_SHADER:t.FRAGMENT_SHADER),t.shaderSource(s,o),t.compileShader(s),!t.getShaderParameter(s,t.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
88
|
+
`+m.getProgramInfoLog(B));F=c.m=B,m.useProgram(F),j=m.getUniformLocation(F,"sampler0"),c.j={I:m.getAttribLocation(F,"aVertex"),H:m.getAttribLocation(F,"aTex"),da:j},c.s=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.enableVertexAttribArray(c.j.I),m.vertexAttribPointer(c.j.I,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),c.o=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.enableVertexAttribArray(c.j.H),m.vertexAttribPointer(c.j.H,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),m.uniform1i(j,0)}F=c.j,m.useProgram(c.m),m.canvas.width=d.width,m.canvas.height=d.height,m.viewport(0,0,d.width,d.height),m.activeTexture(m.TEXTURE0),c.h.bindTexture2d(d.glName),m.enableVertexAttribArray(F.I),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.vertexAttribPointer(F.I,2,m.FLOAT,!1,0,0),m.enableVertexAttribArray(F.H),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.vertexAttribPointer(F.H,2,m.FLOAT,!1,0,0),m.bindFramebuffer(m.DRAW_FRAMEBUFFER?m.DRAW_FRAMEBUFFER:m.FRAMEBUFFER,null),m.clearColor(0,0,0,0),m.clear(m.COLOR_BUFFER_BIT),m.colorMask(!0,!0,!0,!0),m.drawArrays(m.TRIANGLE_FAN,0,4),m.disableVertexAttribArray(F.I),m.disableVertexAttribArray(F.H),m.bindBuffer(m.ARRAY_BUFFER,null),c.h.bindTexture2d(0)}function Yn(c){this.g=c}var kn=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function bn(c,d){return d+c}function Rn(c,d){window[c]=d}function h(c){var d=document.createElement("script");return d.setAttribute("src",c),d.setAttribute("crossorigin","anonymous"),new Promise(function(m){d.addEventListener("load",function(){m()},!1),d.addEventListener("error",function(){m()},!1),document.body.appendChild(d)})}function b(){return Ht(this,function c(){return te(c,function(d){switch(d.g){case 1:return d.m=2,$(d,WebAssembly.instantiate(kn),4);case 4:d.g=3,d.m=0;break;case 2:return d.m=0,d.j=null,d.return(!1);case 3:return d.return(!0)}})})}function Z(c){if(this.g=c,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=c&&c.locateFile||bn,typeof window=="object")var d=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")d=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=d,c.options){d=U(Object.keys(c.options));for(var m=d.next();!m.done;m=d.next()){m=m.value;var F=c.options[m].default;F!==void 0&&(this.j[m]=typeof F=="function"?F():F)}}}S=Z.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Y(c,d){return c.g.files===void 0?[]:typeof c.g.files=="function"?c.g.files(d):c.g.files}function _(c){return Ht(c,function d(){var m=this,F,j,B,C,D,rt,r,y,X,V,E;return te(d,function(H){switch(H.g){case 1:return F=m,m.R?(j=Y(m,m.j),$(H,b(),2)):H.return();case 2:if(B=H.h,typeof window=="object")return Rn("createMediapipeSolutionsWasm",{locateFile:m.locateFile}),Rn("createMediapipeSolutionsPackedAssets",{locateFile:m.locateFile}),rt=j.filter(function(J){return J.data!==void 0}),r=j.filter(function(J){return J.data===void 0}),y=Promise.all(rt.map(function(J){var q=tt(F,J.url);if(J.path!==void 0){var M=J.path;q=q.then(function(lt){return F.overrideFile(M,lt),Promise.resolve(lt)})}return q})),X=Promise.all(r.map(function(J){return J.simd===void 0||J.simd&&B||!J.simd&&!B?h(F.locateFile(J.url,F.S)):Promise.resolve()})).then(function(){return Ht(F,function J(){var q,M,lt=this;return te(J,function(pt){if(pt.g==1)return q=window.createMediapipeSolutionsWasm,M=window.createMediapipeSolutionsPackedAssets,$(pt,q(M),2);lt.h=pt.h,pt.g=0})})}),V=function(){return Ht(F,function J(){var q=this;return te(J,function(M){return q.g.graph&&q.g.graph.url?M=$(M,tt(q,q.g.graph.url),0):(M.g=0,M=void 0),M})})}(),$(H,Promise.all([X,y,V]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return C=j.filter(function(J){return J.simd===void 0||J.simd&&B||!J.simd&&!B}).map(function(J){return F.locateFile(J.url,F.S)}),importScripts.apply(null,dt(C)),$(H,createMediapipeSolutionsWasm(Module),6);case 6:m.h=H.h,m.l=new OffscreenCanvas(1,1),m.h.canvas=m.l,D=m.h.GL.createContext(m.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),m.h.GL.makeContextCurrent(D),H.g=4;break;case 7:if(m.l=document.createElement("canvas"),E=m.l.getContext("webgl2",{}),!E&&(E=m.l.getContext("webgl",{}),!E))return alert("Failed to create WebGL canvas context when passing video frame."),H.return();m.D=E,m.h.canvas=m.l,m.h.createContext(m.l,!0,!0,{});case 4:m.i=new m.h.SolutionWasm,m.R=!1,H.g=0}})})}function et(c){return Ht(c,function d(){var m=this,F,j,B,C,D,rt,r,y;return te(d,function(X){if(X.g==1){if(m.g.graph&&m.g.graph.url&&m.P===m.g.graph.url)return X.return();if(m.o=!0,!m.g.graph||!m.g.graph.url){X.g=2;return}return m.P=m.g.graph.url,$(X,tt(m,m.g.graph.url),3)}for(X.g!=2&&(F=X.h,m.i.loadGraph(F)),j=U(Object.keys(m.B)),B=j.next();!B.done;B=j.next())C=B.value,m.i.overrideFile(C,m.B[C]);if(m.B={},m.g.listeners)for(D=U(m.g.listeners),rt=D.next();!rt.done;rt=D.next())r=rt.value,It(m,r);y=m.j,m.j={},m.setOptions(y),X.g=0})})}S.reset=function(){return Ht(this,function c(){var d=this;return te(c,function(m){d.i&&(d.i.reset(),d.m={},d.s={}),m.g=0})})},S.setOptions=function(c,d){var m=this;if(d=d||this.g.options){for(var F=[],j=[],B={},C=U(Object.keys(c)),D=C.next();!D.done;B={K:B.K,L:B.L},D=C.next()){var rt=D.value;rt in this.j&&this.j[rt]===c[rt]||(this.j[rt]=c[rt],D=d[rt],D!==void 0&&(D.onChange&&(B.K=D.onChange,B.L=c[rt],F.push(function(r){return function(){return Ht(m,function y(){var X,V=this;return te(y,function(E){if(E.g==1)return $(E,r.K(r.L),2);X=E.h,X===!0&&(V.o=!0),E.g=0})})}}(B))),D.graphOptionXref&&(rt={valueNumber:D.type===1?c[rt]:0,valueBoolean:D.type===0?c[rt]:!1,valueString:D.type===2?c[rt]:""},D=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),D.graphOptionXref),rt),j.push(D))))}(F.length!==0||j.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(j),this.u=(this.u===void 0?[]:this.u).concat(F))}};function K(c){return Ht(c,function d(){var m=this,F,j,B,C,D,rt,r;return te(d,function(y){switch(y.g){case 1:if(!m.o)return y.return();if(!m.u){y.g=2;break}F=U(m.u),j=F.next();case 3:if(j.done){y.g=5;break}return B=j.value,$(y,B(),4);case 4:j=F.next(),y.g=3;break;case 5:m.u=void 0;case 2:if(m.A){for(C=new m.h.GraphOptionChangeRequestList,D=U(m.A),rt=D.next();!rt.done;rt=D.next())r=rt.value,C.push_back(r);m.i.changeOptions(C),C.delete(),m.A=void 0}m.o=!1,y.g=0}})})}S.initialize=function(){return Ht(this,function c(){var d=this;return te(c,function(m){return m.g==1?$(m,_(d),2):m.g!=3?$(m,et(d),3):$(m,K(d),0)})})};function tt(c,d){return Ht(c,function m(){var F=this,j,B;return te(m,function(C){return d in F.F?C.return(F.F[d]):(j=F.locateFile(d,""),B=fetch(j).then(function(D){return D.arrayBuffer()}),F.F[d]=B,C.return(B))})})}S.overrideFile=function(c,d){this.i?this.i.overrideFile(c,d):this.B[c]=d},S.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},S.send=function(c,d){return Ht(this,function m(){var F=this,j,B,C,D,rt,r,y,X,V;return te(m,function(E){switch(E.g){case 1:return F.g.inputs?(j=1e3*(d==null?performance.now():d),$(E,F.C,2)):E.return();case 2:return $(E,F.initialize(),3);case 3:for(B=new F.h.PacketDataList,C=U(Object.keys(c)),D=C.next();!D.done;D=C.next())if(rt=D.value,r=F.g.inputs[rt]){t:{var H=F,J=c[rt];switch(r.type){case"video":var q=H.m[r.stream];if(q||(q=new Fn(H.h,H.D),H.m[r.stream]=q),H=q,H.l===0&&(H.l=H.h.createTexture()),typeof HTMLVideoElement!="undefined"&&J instanceof HTMLVideoElement){var M=J.videoWidth;q=J.videoHeight}else typeof HTMLImageElement!="undefined"&&J instanceof HTMLImageElement?(M=J.naturalWidth,q=J.naturalHeight):(M=J.width,q=J.height);q={glName:H.l,width:M,height:q},M=H.g,M.canvas.width=q.width,M.canvas.height=q.height,M.activeTexture(M.TEXTURE0),H.h.bindTexture2d(H.l),M.texImage2D(M.TEXTURE_2D,0,M.RGBA,M.RGBA,M.UNSIGNED_BYTE,J),H.h.bindTexture2d(0),H=q;break t;case"detections":for(q=H.m[r.stream],q||(q=new Yn(H.h),H.m[r.stream]=q),H=q,H.data||(H.data=new H.g.DetectionListData),H.data.reset(J.length),q=0;q<J.length;++q){M=J[q];var lt=H.data,pt=lt.setBoundingBox,xt=q,yt=M.T,it=new ke;bt(it,1,yt.Z),bt(it,2,yt.$),bt(it,3,yt.height),bt(it,4,yt.width),bt(it,5,yt.rotation),bt(it,6,yt.X);var gt=yt=new se;He(gt,1,Ot(it,1)),He(gt,2,Ot(it,2)),He(gt,3,Ot(it,3)),He(gt,4,Ot(it,4)),He(gt,5,Ot(it,5));var vt=Ot(it,6);if(vt!=null&&vt!=null){Ut(gt.g,48);var Xt=gt.g,wt=vt;vt=0>wt,wt=Math.abs(wt);var i=wt>>>0;for(wt=Math.floor((wt-i)/4294967296),wt>>>=0,vt&&(wt=~wt>>>0,i=(~i>>>0)+1,4294967295<i&&(i=0,wt++,4294967295<wt&&(wt=0))),ce=i,ve=wt,vt=ce,i=ve;0<i||127<vt;)Xt.push(vt&127|128),vt=(vt>>>7|i<<25)>>>0,i>>>=7;Xt.push(vt)}if(Jt(it,gt),yt=Le(yt),pt.call(lt,xt,yt),M.O)for(lt=0;lt<M.O.length;++lt)it=M.O[lt],gt=!!it.visibility,pt=H.data,xt=pt.addNormalizedLandmark,yt=q,it=Object.assign(Object.assign({},it),{visibility:gt?it.visibility:0}),gt=new ze,bt(gt,1,it.x),bt(gt,2,it.y),bt(gt,3,it.z),it.visibility&&bt(gt,4,it.visibility),Xt=it=new se,He(Xt,1,Ot(gt,1)),He(Xt,2,Ot(gt,2)),He(Xt,3,Ot(gt,3)),He(Xt,4,Ot(gt,4)),He(Xt,5,Ot(gt,5)),Jt(gt,Xt),it=Le(it),xt.call(pt,yt,it);if(M.M)for(lt=0;lt<M.M.length;++lt){if(pt=H.data,xt=pt.addClassification,yt=q,it=M.M[lt],gt=new Ee,bt(gt,2,it.Y),it.index&&bt(gt,1,it.index),it.label&&bt(gt,3,it.label),it.displayName&&bt(gt,4,it.displayName),Xt=it=new se,i=Ot(gt,1),i!=null&&i!=null)if(Ut(Xt.g,8),vt=Xt.g,0<=i)Ut(vt,i);else{for(wt=0;9>wt;wt++)vt.push(i&127|128),i>>=7;vt.push(1)}He(Xt,2,Ot(gt,2)),vt=Ot(gt,3),vt!=null&&(vt=Zn(vt),Ut(Xt.g,26),Ut(Xt.g,vt.length),Yt(Xt,Xt.g.end()),Yt(Xt,vt)),vt=Ot(gt,4),vt!=null&&(vt=Zn(vt),Ut(Xt.g,34),Ut(Xt.g,vt.length),Yt(Xt,Xt.g.end()),Yt(Xt,vt)),Jt(gt,Xt),it=Le(it),xt.call(pt,yt,it)}}H=H.data;break t;default:H={}}}switch(y=H,X=r.stream,r.type){case"video":B.pushTexture2d(Object.assign(Object.assign({},y),{stream:X,timestamp:j}));break;case"detections":V=y,V.stream=X,V.timestamp=j,B.pushDetectionList(V);break;default:throw Error("Unknown input config type: '"+r.type+"'")}}return F.i.send(B),$(E,F.C,4);case 4:B.delete(),E.g=0}})})};function st(c,d,m){return Ht(c,function F(){var j,B,C,D,rt,r,y=this,X,V,E,H,J,q,M,lt;return te(F,function(pt){switch(pt.g){case 1:if(!m)return pt.return(d);for(j={},B=0,C=U(Object.keys(m)),D=C.next();!D.done;D=C.next())rt=D.value,r=m[rt],typeof r!="string"&&r.type==="texture"&&d[r.stream]!==void 0&&++B;1<B&&(y.G=!1),X=U(Object.keys(m)),D=X.next();case 2:if(D.done){pt.g=4;break}if(V=D.value,E=m[V],typeof E=="string")return M=j,lt=V,$(pt,mt(y,V,d[E]),14);if(H=d[E.stream],E.type==="detection_list"){if(H){for(var xt=H.getRectList(),yt=H.getLandmarksList(),it=H.getClassificationsList(),gt=[],vt=0;vt<xt.size();++vt){var Xt=xt.get(vt);t:{var wt=new ke;for(Xt=new re(Xt);Se(Xt);)switch(Xt.i){case 13:var i=At(Xt);bt(wt,1,i);break;case 21:i=At(Xt),bt(wt,2,i);break;case 29:i=At(Xt),bt(wt,3,i);break;case 37:i=At(Xt),bt(wt,4,i);break;case 45:i=At(Xt),bt(wt,5,i);break;case 48:i=ae(Xt.g),bt(wt,6,i);break;default:if(!Rt(wt,Xt))break t}}wt={Z:St(wt,1),$:St(wt,2),height:St(wt,3),width:St(wt,4),rotation:St(wt,5,0),X:$t(wt,6,0)},Xt=Ie(Ye(yt.get(vt)),ze).map(yn);var g=it.get(vt);t:for(i=new De,g=new re(g);Se(g);)switch(g.i){case 10:i.addClassification(pe(g,new Ee,an));break;default:if(!Rt(i,g))break t}wt={T:wt,O:Xt,M:on(i)},gt.push(wt)}xt=gt}else xt=[];j[V]=xt,pt.g=7;break}if(E.type==="proto_list"){if(H){for(xt=Array(H.size()),yt=0;yt<H.size();yt++)xt[yt]=H.get(yt);H.delete()}else xt=[];j[V]=xt,pt.g=7;break}if(H===void 0){pt.g=3;break}if(E.type==="float_list"){j[V]=H,pt.g=7;break}if(E.type==="proto"){j[V]=H,pt.g=7;break}if(E.type!=="texture")throw Error("Unknown output config type: '"+E.type+"'");return J=y.s[V],J||(J=new Fn(y.h,y.D),y.s[V]=J),$(pt,Ke(J,H,y.G),13);case 13:q=pt.h,j[V]=q;case 7:E.transform&&j[V]&&(j[V]=E.transform(j[V])),pt.g=3;break;case 14:M[lt]=pt.h;case 3:D=X.next(),pt.g=2;break;case 4:return pt.return(j)}})})}function mt(c,d,m){return Ht(c,function F(){var j=this,B;return te(F,function(C){return typeof m=="number"||m instanceof Uint8Array||m instanceof j.h.Uint8BlobList?C.return(m):m instanceof j.h.Texture2dDataOut?(B=j.s[d],B||(B=new Fn(j.h,j.D),j.s[d]=B),C.return(Ke(B,m,j.G))):C.return(void 0)})})}function It(c,d){for(var m=d.name||"$",F=[].concat(dt(d.wants)),j=new c.h.StringList,B=U(d.wants),C=B.next();!C.done;C=B.next())j.push_back(C.value);B=c.h.PacketListener.implement({onResults:function(D){for(var rt={},r=0;r<d.wants.length;++r)rt[F[r]]=D.get(r);var y=c.listeners[m];y&&(c.C=st(c,rt,d.outs).then(function(X){X=y(X);for(var V=0;V<d.wants.length;++V){var E=rt[F[V]];typeof E=="object"&&E.hasOwnProperty&&E.hasOwnProperty("delete")&&E.delete()}X&&(c.C=X)}))}}),c.i.attachMultiListener(j,B),j.delete()}S.onResults=function(c,d){this.listeners[d||"$"]=c},ye("Solution",Z),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Gt(c){c=Vn(c);var d=c.getMesh();if(!d)return c;var m=new Float32Array(d.getVertexBufferList());d.getVertexBufferList=function(){return m};var F=new Uint32Array(d.getIndexBufferList());return d.getIndexBufferList=function(){return F},c}var jt={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(c){return c.map(Gt)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(c){return c.map(function(d){return Ie(Ye(d),ze).map(yn)})}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},Wt=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Zt=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],Tt=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],Nt=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Pt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],Dt=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],qt=[].concat(dt(Wt),dt(Zt),dt(Tt),dt(Nt),dt(Pt),dt(Dt));function Ze(c){c=c||{},c=Object.assign(Object.assign({},jt),c),this.g=new Z(c)}S=Ze.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(c){this.g.onResults(c)},S.initialize=function(){return Ht(this,function c(){var d=this;return te(c,function(m){return $(m,d.g.initialize(),0)})})},S.reset=function(){this.g.reset()},S.send=function(c){return Ht(this,function d(){var m=this;return te(d,function(F){return $(F,m.g.send(c),0)})})},S.setOptions=function(c){this.g.setOptions(c)},ye("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),ye("FaceMesh",Ze),ye("FACEMESH_LIPS",Wt),ye("FACEMESH_LEFT_EYE",Zt),ye("FACEMESH_LEFT_EYEBROW",Tt),ye("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),ye("FACEMESH_RIGHT_EYE",Nt),ye("FACEMESH_RIGHT_EYEBROW",Pt),ye("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),ye("FACEMESH_FACE_OVAL",Dt),ye("FACEMESH_CONTOURS",qt),ye("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),ye("matrixDataToMatrix",function(c){for(var d=c.getCols(),m=c.getRows(),F=c.getPackedDataList(),j=[],B=0;B<m;B++)j.push(Array(d));for(B=0;B<m;B++)for(var C=0;C<d;C++){var D=c.getLayout()===1?B*d+C:C*m+B;j[B][C]=F[D]}return j}),ye("VERSION","0.4.1633559619")}).call(Vr);const Tr={};(function(){var S;function v(t){var o=0;return function(){return o<t.length?{done:!1,value:t[o++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(t,o,s){return t==Array.prototype||t==Object.prototype||(t[o]=s.value),t};function L(t){t=[typeof globalThis=="object"&&globalThis,t,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var o=0;o<t.length;++o){var s=t[o];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")}var I=L(this);function A(t,o){if(o)t:{var s=I;t=t.split(".");for(var f=0;f<t.length-1;f++){var w=t[f];if(!(w in s))break t;s=s[w]}t=t[t.length-1],f=s[t],o=o(f),o!=f&&o!=null&&G(s,t,{configurable:!0,writable:!0,value:o})}}A("Symbol",function(t){function o(T){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return new s(f+(T||"")+"_"+w++,T)}function s(T,x){this.g=T,G(this,"description",{configurable:!0,writable:!0,value:x})}if(t)return t;s.prototype.toString=function(){return this.g};var f="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",w=0;return o}),A("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var o="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),s=0;s<o.length;s++){var f=I[o[s]];typeof f=="function"&&typeof f.prototype[t]!="function"&&G(f.prototype,t,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return t});function Q(t){return t={next:t},t[Symbol.iterator]=function(){return this},t}function U(t){var o=typeof Symbol!="undefined"&&Symbol.iterator&&t[Symbol.iterator];return o?o.call(t):{next:v(t)}}function dt(t){if(!(t instanceof Array)){t=U(t);for(var o,s=[];!(o=t.next()).done;)s.push(o.value);t=s}return t}var _e=typeof Object.create=="function"?Object.create:function(t){function o(){}return o.prototype=t,new o},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(t,o){if(t.__proto__=o,t.__proto__!==o)throw new TypeError(t+" is not extensible");return t}:null}var je=ct;function Ft(t,o){if(t.prototype=_e(o.prototype),t.prototype.constructor=t,je)je(t,o);else for(var s in o)if(s!="prototype")if(Object.defineProperties){var f=Object.getOwnPropertyDescriptor(o,s);f&&Object.defineProperty(t,s,f)}else t[s]=o[s];t.ka=o.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(t){if(t.l)throw new TypeError("Generator is already running");t.l=!0}ue.prototype.o=function(t){this.h=t};function fe(t,o){t.j={V:o,X:!0},t.g=t.m||t.s}ue.prototype.return=function(t){this.j={return:t},this.g=this.s};function $(t,o,s){return t.g=s,{value:o}}function In(t){this.g=new ue,this.h=t}function jn(t,o){de(t.g);var s=t.g.i;return s?Ce(t,"return"in s?s.return:function(f){return{value:f,done:!0}},o,t.g.return):(t.g.return(o),ee(t))}function Ce(t,o,s,f){try{var w=o.call(t.g.i,s);if(!(w instanceof Object))throw new TypeError("Iterator result "+w+" is not an object");if(!w.done)return t.g.l=!1,w;var T=w.value}catch(x){return t.g.i=null,fe(t.g,x),ee(t)}return t.g.i=null,f.call(t.g,T),ee(t)}function ee(t){for(;t.g.g;)try{var o=t.h(t.g);if(o)return t.g.l=!1,{value:o.value,done:!1}}catch(s){t.g.h=void 0,fe(t.g,s)}if(t.g.l=!1,t.g.j){if(o=t.g.j,t.g.j=null,o.X)throw o.V;return{value:o.return,done:!0}}return{value:void 0,done:!0}}function Cn(t){this.next=function(o){return de(t.g),t.g.i?o=Ce(t,t.g.i.next,o,t.g.o):(t.g.o(o),o=ee(t)),o},this.throw=function(o){return de(t.g),t.g.i?o=Ce(t,t.g.i.throw,o,t.g.o):(fe(t.g,o),o=ee(t)),o},this.return=function(o){return jn(t,o)},this[Symbol.iterator]=function(){return this}}function te(t){function o(f){return t.next(f)}function s(f){return t.throw(f)}return new Promise(function(f,w){function T(x){x.done?f(x.value):Promise.resolve(x.value).then(o,s).then(T,w)}T(t.next())})}function ft(t){return te(new Cn(new In(t)))}A("Promise",function(t){function o(x){this.h=0,this.i=void 0,this.g=[],this.o=!1;var k=this.j();try{x(k.resolve,k.reject)}catch(O){k.reject(O)}}function s(){this.g=null}function f(x){return x instanceof o?x:new o(function(k){k(x)})}if(t)return t;s.prototype.h=function(x){if(this.g==null){this.g=[];var k=this;this.i(function(){k.l()})}this.g.push(x)};var w=I.setTimeout;s.prototype.i=function(x){w(x,0)},s.prototype.l=function(){for(;this.g&&this.g.length;){var x=this.g;this.g=[];for(var k=0;k<x.length;++k){var O=x[k];x[k]=null;try{O()}catch(P){this.j(P)}}}this.g=null},s.prototype.j=function(x){this.i(function(){throw x})},o.prototype.j=function(){function x(P){return function(z){O||(O=!0,P.call(k,z))}}var k=this,O=!1;return{resolve:x(this.D),reject:x(this.l)}},o.prototype.D=function(x){if(x===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(x instanceof o)this.G(x);else{t:switch(typeof x){case"object":var k=x!=null;break t;case"function":k=!0;break t;default:k=!1}k?this.A(x):this.m(x)}},o.prototype.A=function(x){var k=void 0;try{k=x.then}catch(O){this.l(O);return}typeof k=="function"?this.H(k,x):this.m(x)},o.prototype.l=function(x){this.s(2,x)},o.prototype.m=function(x){this.s(1,x)},o.prototype.s=function(x,k){if(this.h!=0)throw Error("Cannot settle("+x+", "+k+"): Promise already settled in state"+this.h);this.h=x,this.i=k,this.h===2&&this.F(),this.B()},o.prototype.F=function(){var x=this;w(function(){if(x.C()){var k=I.console;typeof k!="undefined"&&k.error(x.i)}},1)},o.prototype.C=function(){if(this.o)return!1;var x=I.CustomEvent,k=I.Event,O=I.dispatchEvent;return typeof O=="undefined"?!0:(typeof x=="function"?x=new x("unhandledrejection",{cancelable:!0}):typeof k=="function"?x=new k("unhandledrejection",{cancelable:!0}):(x=I.document.createEvent("CustomEvent"),x.initCustomEvent("unhandledrejection",!1,!0,x)),x.promise=this,x.reason=this.i,O(x))},o.prototype.B=function(){if(this.g!=null){for(var x=0;x<this.g.length;++x)T.h(this.g[x]);this.g=null}};var T=new s;return o.prototype.G=function(x){var k=this.j();x.K(k.resolve,k.reject)},o.prototype.H=function(x,k){var O=this.j();try{x.call(k,O.resolve,O.reject)}catch(P){O.reject(P)}},o.prototype.then=function(x,k){function O(ot,ut){return typeof ot=="function"?function(ht){try{P(ot(ht))}catch(at){z(at)}}:ut}var P,z,nt=new o(function(ot,ut){P=ot,z=ut});return this.K(O(x,P),O(k,z)),nt},o.prototype.catch=function(x){return this.then(void 0,x)},o.prototype.K=function(x,k){function O(){switch(P.h){case 1:x(P.i);break;case 2:k(P.i);break;default:throw Error("Unexpected state: "+P.h)}}var P=this;this.g==null?T.h(O):this.g.push(O),this.o=!0},o.resolve=f,o.reject=function(x){return new o(function(k,O){O(x)})},o.race=function(x){return new o(function(k,O){for(var P=U(x),z=P.next();!z.done;z=P.next())f(z.value).K(k,O)})},o.all=function(x){var k=U(x),O=k.next();return O.done?f([]):new o(function(P,z){function nt(ht){return function(at){ot[ht]=at,ut--,ut==0&&P(ot)}}var ot=[],ut=0;do ot.push(void 0),ut++,f(O.value).K(nt(ot.length-1),z),O=k.next();while(!O.done)})},o});function Hn(t,o){t instanceof String&&(t+="");var s=0,f=!1,w={next:function(){if(!f&&s<t.length){var T=s++;return{value:o(T,t[T]),done:!1}}return f=!0,{done:!0,value:void 0}}};return w[Symbol.iterator]=function(){return w},w}var Un=typeof Object.assign=="function"?Object.assign:function(t,o){for(var s=1;s<arguments.length;s++){var f=arguments[s];if(f)for(var w in f)Object.prototype.hasOwnProperty.call(f,w)&&(t[w]=f[w])}return t};A("Object.assign",function(t){return t||Un}),A("Object.is",function(t){return t||function(o,s){return o===s?o!==0||1/o===1/s:o!==o&&s!==s}}),A("Array.prototype.includes",function(t){return t||function(o,s){var f=this;f instanceof String&&(f=String(f));var w=f.length;for(s=s||0,0>s&&(s=Math.max(s+w,0));s<w;s++){var T=f[s];if(T===o||Object.is(T,o))return!0}return!1}}),A("String.prototype.includes",function(t){return t||function(o,s){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(o instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(o,s||0)!==-1}}),A("Array.prototype.keys",function(t){return t||function(){return Hn(this,function(o){return o})}});var ye=this||self;function Vt(t,o){t=t.split(".");var s=ye;t[0]in s||typeof s.execScript=="undefined"||s.execScript("var "+t[0]);for(var f;t.length&&(f=t.shift());)t.length||o===void 0?s[f]&&s[f]!==Object.prototype[f]?s=s[f]:s=s[f]={}:s[f]=o}function We(t){throw t}function tn(t,o){We(Error("Invalid wire type: "+t+" (at position "+o+")"))}function dn(){We(Error("Failed to read varint, encoding is invalid."))}function Wn(t,o){return o=String.fromCharCode.apply(null,o),t==null?o:t+o}var Zn,xn=typeof TextDecoder!="undefined",en,un=typeof TextEncoder!="undefined";function Ln(t){if(un)t=(en||(en=new TextEncoder)).encode(t);else{var o=void 0;o=o===void 0?!1:o;for(var s=0,f=new Uint8Array(3*t.length),w=0;w<t.length;w++){var T=t.charCodeAt(w);if(128>T)f[s++]=T;else{if(2048>T)f[s++]=T>>6|192;else{if(55296<=T&&57343>=T){if(56319>=T&&w<t.length){var x=t.charCodeAt(++w);if(56320<=x&&57343>=x){T=1024*(T-55296)+x-56320+65536,f[s++]=T>>18|240,f[s++]=T>>12&63|128,f[s++]=T>>6&63|128,f[s++]=T&63|128;continue}else w--}if(o)throw Error("Found an unpaired surrogate");T=65533}f[s++]=T>>12|224,f[s++]=T>>6&63|128}f[s++]=T&63|128}}t=f.subarray(0,s)}return t}var Sn={},pn=null;function nn(t){var o;o===void 0&&(o=0),ce(),o=Sn[o];for(var s=Array(Math.floor(t.length/3)),f=o[64]||"",w=0,T=0;w<t.length-2;w+=3){var x=t[w],k=t[w+1],O=t[w+2],P=o[x>>2];x=o[(x&3)<<4|k>>4],k=o[(k&15)<<2|O>>6],O=o[O&63],s[T++]=P+x+k+O}switch(P=0,O=f,t.length-w){case 2:P=t[w+1],O=o[(P&15)<<2]||f;case 1:t=t[w],s[T]=o[t>>2]+o[(t&3)<<4|P>>4]+O+f}return s.join("")}function Xn(t){var o=t.length,s=3*o/4;s%3?s=Math.floor(s):"=.".indexOf(t[o-1])!=-1&&(s="=.".indexOf(t[o-2])!=-1?s-2:s-1);var f=new Uint8Array(s),w=0;return gn(t,function(T){f[w++]=T}),f.subarray(0,w)}function gn(t,o){function s(O){for(;f<t.length;){var P=t.charAt(f++),z=pn[P];if(z!=null)return z;if(!/^[\s\xa0]*$/.test(P))throw Error("Unknown base64 encoding at char: "+P)}return O}ce();for(var f=0;;){var w=s(-1),T=s(0),x=s(64),k=s(64);if(k===64&&w===-1)break;o(w<<2|T>>4),x!=64&&(o(T<<4&240|x>>2),k!=64&&o(x<<6&192|k))}}function ce(){if(!pn){pn={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),o=["+/=","+/","-_=","-_.","-_"],s=0;5>s;s++){var f=t.concat(o[s].split(""));Sn[s]=f;for(var w=0;w<f.length;w++){var T=f[w];pn[T]===void 0&&(pn[T]=w)}}}}var ve=typeof Uint8Array=="function",Be;function le(t){if(this.g=t,t!==null&&t.length===0)throw Error("ByteString should be constructed with non-empty values")}var ae=typeof Uint8Array.prototype.slice=="function";function Me(t,o,s){return o===s?Be||(Be=new Uint8Array(0)):ae?t.slice(o,s):new Uint8Array(t.subarray(o,s))}var xe=0,Ut=0;function re(t){if(t.constructor===Uint8Array)return t;if(t.constructor===ArrayBuffer)return new Uint8Array(t);if(t.constructor===Array)return new Uint8Array(t);if(t.constructor===String)return Xn(t);if(t.constructor===le){if(t.g==null)var o=Be||(Be=new Uint8Array(0));else{o=Uint8Array;var s=t.g;s=s==null||ve&&s!=null&&s instanceof Uint8Array?s:typeof s=="string"?Xn(s):null,t=t.g=s,o=new o(t)}return o}if(t instanceof Uint8Array)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Se(t,o){o=o===void 0?{}:o,o=o.v===void 0?!1:o.v,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.v=o,t&&Lt(this,t)}function Lt(t,o){t.h=re(o),t.l=0,t.i=t.h.length,t.g=t.l}Se.prototype.reset=function(){this.g=this.l};function pe(t){for(var o=128,s=0,f=0,w=0;4>w&&128<=o;w++)o=t.h[t.g++],s|=(o&127)<<7*w;if(128<=o&&(o=t.h[t.g++],s|=(o&127)<<28,f|=(o&127)>>4),128<=o)for(w=0;5>w&&128<=o;w++)o=t.h[t.g++],f|=(o&127)<<7*w+3;if(128>o)return t=s>>>0,o=f>>>0,(f=o&2147483648)&&(t=~t+1>>>0,o=~o>>>0,t==0&&(o=o+1>>>0)),t=4294967296*o+(t>>>0),f?-t:t;t.j=!0,dn()}function At(t){t.g>t.i&&(t.j=!0,We(Error("Tried to read past the end of the data "+t.g+" > "+t.i)))}function ne(t){var o=t.h,s=o[t.g],f=s&127;return 128>s?(t.g+=1,At(t),f):(s=o[t.g+1],f|=(s&127)<<7,128>s?(t.g+=2,At(t),f):(s=o[t.g+2],f|=(s&127)<<14,128>s?(t.g+=3,At(t),f):(s=o[t.g+3],f|=(s&127)<<21,128>s?(t.g+=4,At(t),f):(s=o[t.g+4],f|=(s&15)<<28,128>s?(t.g+=5,At(t),f>>>0):(t.g+=5,128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]?(t.j=!0,dn(),f):(At(t),f))))))}function Xe(t){var o=t.h[t.g],s=t.h[t.g+1],f=t.h[t.g+2],w=t.h[t.g+3];return t.g+=4,At(t),(o<<0|s<<8|f<<16|w<<24)>>>0}Se.prototype.m=function(){var t=Xe(this),o=2*(t>>31)+1,s=t>>>23&255;return t&=8388607,s==255?t?NaN:1/0*o:s==0?o*Math.pow(2,-149)*t:o*Math.pow(2,s-150)*(t+Math.pow(2,23))};var Pe=[];function se(){this.g=new Uint8Array(64),this.h=0}function Yt(t,o){if(!(t.h+1<t.g.length)){var s=t.g;t.g=new Uint8Array(Math.ceil(1+2*t.g.length)),t.g.set(s)}t.g[t.h++]=o}se.prototype.length=function(){return this.h},se.prototype.end=function(){var t=this.g,o=this.h;return this.h=0,Me(t,0,o)};function Le(t,o){for(;127<o;)Yt(t,o&127|128),o>>>=7;Yt(t,o)}function He(t){var o={},s=o.O===void 0?!1:o.O;this.m={v:o.v===void 0?!1:o.v},this.O=s,o=this.m,Pe.length?(s=Pe.pop(),o&&(s.v=o.v),t&&Lt(s,t),t=s):t=new Se(t,o),this.g=t,this.l=this.g.g,this.h=this.i=-1,this.j=!1}He.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function ge(t){var o=t.g;if((o=o.g==o.i)||(o=t.j)||(o=t.g,o=o.j||0>o.g||o.g>o.i),o)return!1;t.l=t.g.g;var s=ne(t.g);return o=s>>>3,s&=7,0<=s&&5>=s?(t.i=o,t.h=s,!0):(t.j=!0,tn(s,t.l),!1)}function wn(t){switch(t.h){case 0:if(t.h!=0)wn(t);else t:{t=t.g;for(var o=t.g,s=0;10>s;s++){if((t.h[o]&128)===0){t.g=o+1,At(t);break t}o++}t.j=!0,dn()}break;case 1:t=t.g,t.g+=8,At(t);break;case 2:t.h!=2?wn(t):(o=ne(t.g),t=t.g,t.g+=o,At(t));break;case 5:t=t.g,t.g+=4,At(t);break;case 3:o=t.i;do{if(!ge(t)){t.j=!0,We(Error("Unmatched start-group tag: stream EOF"));break}if(t.h==4){t.i!=o&&(t.j=!0,We(Error("Unmatched end-group tag")));break}wn(t)}while(1);break;default:t.j=!0,tn(t.h,t.l)}}function Qe(t,o,s){var f=t.g.i,w=ne(t.g),T=t.g.g+w;if(t.g.i=T,s(o,t),s=T-t.g.g,s!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(w+" bytes, instead read "+(w-s)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return t.g.g=T,t.g.i=f,o}var sn=[];function cn(){this.h=[],this.i=0,this.g=new se}function ie(t,o){o.length!==0&&(t.h.push(o),t.i+=o.length)}function Re(t,o,s){Le(t.g,8*o+2),Le(t.g,s.length),ie(t,t.g.end()),ie(t,s)}var oe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function zt(t){return Object.isFrozen(t)||(oe?t[oe]|=1:t.g!==void 0?t.g|=1:Object.defineProperties(t,{g:{value:1,configurable:!0,writable:!0,enumerable:!1}})),t}function Ue(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function Ot(t){switch(typeof t){case"number":return isFinite(t)?t:String(t);case"object":if(ve&&t!=null&&t instanceof Uint8Array)return nn(t);if(t instanceof le){if(t.g==null)t="";else{var o=t.g;o=o==null||typeof o=="string"?o:ve&&o instanceof Uint8Array?nn(o):null,t=t.g=o}return t}}return t}function kt(t,o){if(t!=null)return Array.isArray(t)||Ue(t)?mn(t,o):o(t)}function mn(t,o){if(Array.isArray(t)){for(var s=Array(t.length),f=0;f<t.length;f++)s[f]=kt(t[f],o);if(o=Array.isArray(t)){var w;oe?w=t[oe]:w=t.g,o=(w==null?0:w)&1}return o&&zt(s),s}w={};for(s in t)w[s]=kt(t[s],o);return w}function $t(t){return t=Ot(t),Array.isArray(t)?mn(t,$t):t}var St;function bt(t,o,s){var f=St;St=null,t||(t=f),f=this.constructor.ha,t||(t=f?[f]:[]),this.i=(f?0:-1)-(this.constructor.fa||0),this.l=this.g=null,this.u=t;t:{if(f=this.u.length,t=f-1,f&&(f=this.u[t],Ue(f))){this.j=t-this.i,this.h=f;break t}o!==void 0&&-1<o?(this.j=Math.max(o,t+1-this.i),this.h=null):this.j=Number.MAX_VALUE}if(s)for(o=0;o<s.length;o++)t=s[o],t<this.j?(t+=this.i,(f=this.u[t])?Array.isArray(f)&&zt(f):this.u[t]=Mt):(Ie(this),(f=this.h[t])?Array.isArray(f)&&zt(f):this.h[t]=Mt)}var Mt=Object.freeze(zt([]));function Ie(t){var o=t.j+t.i;t.u[o]||(t.h=t.u[o]={})}function Kt(t,o,s){return o===-1?null:(s===void 0?0:s)||o>=t.j?t.h?t.h[o]:void 0:t.u[o+t.i]}function Qt(t,o,s){s=s===void 0?!1:s;var f=Kt(t,o,s);return f==null&&(f=Mt),f===Mt&&(f=zt(f.slice()),Rt(t,o,f,s)),f}function Fe(t,o){var s=Qt(t,o);if(t.l||(t.l={}),!t.l[o]){for(var f=0;f<s.length;f++)s[f]=+s[f];t.l[o]=!0}return s}function Jt(t,o,s){return t=Kt(t,o),t=t==null?t:+t,t==null?s===void 0?0:s:t}function Rt(t,o,s,f){(f===void 0?0:f)||o>=t.j?(Ie(t),t.h[o]=s):t.u[o+t.i]=s}function Ae(t,o,s,f){s!==f?Rt(t,o,s):Rt(t,o,void 0,!1)}function Oe(t,o,s){if(s===-1)return null;t.g||(t.g={});var f=t.g[s];if(f)return f;var w=Kt(t,s,!1);return w==null?f:(o=new o(w),t.g[s]=o)}function Ve(t,o,s){t.g||(t.g={});var f=t.g[s];if(!f){var w=Qt(t,s,!1);f=[];for(var T=0;T<w.length;T++)f[T]=new o(w[T]);t.g[s]=f}return f}function Ht(t,o,s,f,w){var T=Ve(t,f,o);s=s||new f,t=Qt(t,o),w!=null?(T.splice(w,0,s),t.splice(w,0,s.u)):(T.push(s),t.push(s.u))}bt.prototype.toJSON=function(){return mn(this.u,$t)},bt.prototype.toString=function(){return this.u.toString()};function Ee(t,o){return t=Kt(t,o),t==null?0:t}function an(t,o){return t=Kt(t,o),t==null?"":t}function De(t,o){if(t=t.m){ie(o,o.g.end());for(var s=0;s<t.length;s++)ie(o,t[s])}}var Ne=Symbol();function ze(t,o,s){return t[Ne]||(t[Ne]=function(f,w){return o(f,w,s)})}function $e(t){var o=t[Ne];if(!o){var s=t[ke]||(t[ke]=t());o=function(f,w){return be(f,w,s)},t[Ne]=o}return o}function me(t){var o=t.da;if(o)return $e(o);if(o=t.ia){var s=t.Y;return delete t.Y,ze(t.W.g,o,s)}}function Ye(t){var o=me(t),s=t.W,f=t.ea;return o?function(w,T){return f(w,T,s,o)}:function(w,T){return f(w,T,s)}}function En(t){var o=t[0];switch(t.length){case 2:var s=t[1];return function(ut,ht,at){return o(ut,ht,at,s)};case 3:var f=t[1],w=$e(t[2]);return function(ut,ht,at){return o(ut,ht,at,f,w)};case 4:var T=t[1],x=t[3],k=$e(t[2]);return function(ut,ht,at){return o(ut,ht,at,T,k,x)};case 5:var O=t[1],P=ze(O,t[3],t[4]);return function(ut,ht,at){return o(ut,ht,at,O,P)};case 6:var z=t[1],nt=t[5],ot=ze(z,t[3],t[4]);return function(ut,ht,at){return o(ut,ht,at,z,ot,nt)};default:throw Error("Unsupported number of parameters, expected [2-6], got "+t.length)}}var ke=Symbol();function be(t,o,s){for(;ge(o)&&o.h!=4;){var f=o.i,w=s[f];if(w)Array.isArray(w)&&(w=s[f]=En(w));else{var T=s[0];T&&(T=T[f])&&(w=s[f]=Ye(T))}w&&w(o,t,f)||(w=o,f=t,T=w.l,wn(w),w.O||(w=Me(w.g.h,T,w.g.g),(T=f.m)?T.push(w):f.m=[w]))}return t}function rn(t,o){var s=new cn;if(o(t,s),t=s.i+s.g.length(),t===0)s=new Uint8Array(0);else{t=new Uint8Array(t);for(var f=s.h,w=f.length,T=o=0;T<w;T++){var x=f[T];x.length!==0&&(t.set(x,o),o+=x.length)}f=s.g,w=f.h,w!==0&&(t.set(f.g.subarray(0,w),o),f.h=0),s.h=[t],s=t}return s}function hn(t,o,s){if(sn.length){var f=sn.pop();t&&(Lt(f.g,t),f.i=-1,f.h=-1),t=f}else t=new He(t);try{var w=new o;return be(w,t,s[ke]||(s[ke]=s()))}finally{o=t.g,o.h=null,o.l=0,o.i=0,o.g=0,o.j=!1,o.v=!1,t.i=-1,t.h=-1,t.j=!1,100>sn.length&&sn.push(t)}}function Te(t,o,s){if(o=Kt(o,s),o!=null){Le(t.g,8*s+5),t=t.g;var f=o;f=(s=0>f?1:0)?-f:f,f===0?0<1/f?xe=Ut=0:(Ut=0,xe=2147483648):isNaN(f)?(Ut=0,xe=2147483647):34028234663852886e22<f?(Ut=0,xe=(s<<31|2139095040)>>>0):11754943508222875e-54>f?(f=Math.round(f/Math.pow(2,-149)),Ut=0,xe=(s<<31|f)>>>0):(o=Math.floor(Math.log(f)/Math.LN2),f*=Math.pow(2,-o),f=Math.round(8388608*f),16777216<=f&&++o,Ut=0,xe=(s<<31|o+127<<23|f&8388607)>>>0),s=xe,Yt(t,s>>>0&255),Yt(t,s>>>8&255),Yt(t,s>>>16&255),Yt(t,s>>>24&255)}}function Vn(t,o,s){if(t.h!==1)return!1;var f=t.g;t=Xe(f);var w=Xe(f);f=2*(w>>31)+1;var T=w>>>20&2047;return t=4294967296*(w&1048575)+t,Ae(o,s,T==2047?t?NaN:1/0*f:T==0?f*Math.pow(2,-1074)*t:f*Math.pow(2,T-1075)*(t+4503599627370496),0),!0}function Je(t,o,s){return t.h!==5?!1:(Rt(o,s,t.g.m()),!0)}function on(t,o,s){if(t.h!==5&&t.h!==2)return!1;if(o=Qt(o,s),t.h==2){s=Se.prototype.m;var f=ne(t.g);for(f=t.g.g+f;t.g.g<f;)o.push(s.call(t.g))}else o.push(t.g.m());return!0}function yn(t,o,s){return t.h!==5?!1:(t=t.g.m(),Ae(o,s,t,0),!0)}function Fn(t,o,s){return t.h!==0?!1:(Rt(o,s,pe(t.g)),!0)}function Ke(t,o,s){return t.h!==0?!1:(Rt(o,s,ne(t.g)),!0)}function vn(t,o,s){return t.h!==0?!1:(t=ne(t.g),Ae(o,s,t,0),!0)}function Yn(t,o,s){return t.h!==0?!1:(t=!!ne(t.g),Ae(o,s,t,!1),!0)}function kn(t,o,s){if(t.h!==2)return!1;var f=ne(t.g);t=t.g;var w=t.g;t.g+=f,At(t),t=t.h;var T;if(xn)(T=Zn)||(T=Zn=new TextDecoder("utf-8",{fatal:!1})),T=T.decode(t.subarray(w,w+f));else{f=w+f;for(var x=[],k=null,O,P,z;w<f;)O=t[w++],128>O?x.push(O):224>O?w>=f?x.push(65533):(P=t[w++],194>O||(P&192)!==128?(w--,x.push(65533)):x.push((O&31)<<6|P&63)):240>O?w>=f-1?x.push(65533):(P=t[w++],(P&192)!==128||O===224&&160>P||O===237&&160<=P||((T=t[w++])&192)!==128?(w--,x.push(65533)):x.push((O&15)<<12|(P&63)<<6|T&63)):244>=O?w>=f-2?x.push(65533):(P=t[w++],(P&192)!==128||(O<<28)+(P-144)>>30!==0||((T=t[w++])&192)!==128||((z=t[w++])&192)!==128?(w--,x.push(65533)):(O=(O&7)<<18|(P&63)<<12|(T&63)<<6|z&63,O-=65536,x.push((O>>10&1023)+55296,(O&1023)+56320))):x.push(65533),8192<=x.length&&(k=Wn(k,x),x.length=0);T=Wn(k,x)}return Rt(o,s,T),!0}function bn(t,o,s,f,w){return t.h!==2?!1:(t=Qe(t,new f,w),o.g||(o.g={}),f=t&&t.u,o.g[s]=t,Rt(o,s,f,!1),!0)}function Rn(t,o,s,f,w){return t.h!==2?!1:(t=Qe(t,new f,w),Ht(o,s,t,f,void 0),!0)}function h(t,o,s){return t.h!==0?!1:(Rt(o,s,pe(t.g)),!0)}function b(t){bt.call(this,t)}Ft(b,bt);function Z(){return{1:Ke,2:Je,3:kn,4:kn}}function Y(t,o){var s=Kt(t,1);if(s!=null&&s!=null){Le(o.g,8);var f=o.g;if(0<=s)Le(f,s);else{for(var w=0;9>w;w++)Yt(f,s&127|128),s>>=7;Yt(f,1)}}Te(o,t,2),f=Kt(t,3),f!=null&&Re(o,3,Ln(f)),f=Kt(t,4),f!=null&&Re(o,4,Ln(f)),De(t,o)}function _(t){bt.call(this,t,-1,K)}Ft(_,bt),_.prototype.addClassification=function(t,o){return Ht(this,1,t,b,o),this};function et(){return{1:[Rn,b,Z]}}var K=[1];function tt(t){bt.call(this,t)}Ft(tt,bt);function st(){return{1:Je,2:Je,3:Je,4:Je,5:Je}}function mt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5),De(t,o)}function It(t){bt.call(this,t,-1,jt)}Ft(It,bt);function Gt(){return{1:[Rn,tt,st]}}var jt=[1];function Wt(t){bt.call(this,t)}Ft(Wt,bt);function Zt(){return{1:Je,2:Je,3:Je,4:Je,5:Je,6:Fn}}function Tt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5);var s=Kt(t,6);if(s!=null&&s!=null){Le(o.g,48);var f=o.g,w=s;s=0>w,w=Math.abs(w);var T=w>>>0;for(w=Math.floor((w-T)/4294967296),w>>>=0,s&&(w=~w>>>0,T=(~T>>>0)+1,4294967295<T&&(T=0,w++,4294967295<w&&(w=0))),xe=T,Ut=w,s=xe,T=Ut;0<T||127<s;)Yt(f,s&127|128),s=(s>>>7|T<<25)>>>0,T>>>=7;Yt(f,s)}De(t,o)}function Nt(t){bt.call(this,t,-1,Ze)}Ft(Nt,bt);function Pt(){return{1:h,2:h,3:on,4:[bn,Dt,qt],5:Ke,6:Ke,7:on,8:on,9:on}}function Dt(t){bt.call(this,t)}Ft(Dt,bt);function qt(){return{1:Je,2:Je,3:Je}}var Ze=[3,7,8,9];function c(t){bt.call(this,t)}Ft(c,bt);function d(){return{1:yn,2:yn,3:yn}}function m(t){bt.call(this,t)}Ft(m,bt);function F(){return{1:yn,2:yn,3:yn}}function j(t){bt.call(this,t)}Ft(j,bt);function B(){return{1:vn,2:[bn,m,F],3:[bn,c,d],4:Yn}}function C(t){bt.call(this,t,-1,rt)}Ft(C,bt);function D(){return{1:vn,2:[Rn,j,B],3:yn,4:on,5:on,6:on}}var rt=[2,4,5,6];function r(t){bt.call(this,t,-1,X)}Ft(r,bt);function y(){return{1:vn,2:[Rn,C,D],3:[bn,Nt,Pt],4:Vn,5:on,6:on}}var X=[2,5,6];function V(t,o,s){if(s=t.createShader(s===0?t.VERTEX_SHADER:t.FRAGMENT_SHADER),t.shaderSource(s,o),t.compileShader(s),!t.getShaderParameter(s,t.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
90
89
|
|
|
91
|
-
`+t.getShaderInfoLog(s));return s}function E(t){return
|
|
90
|
+
`+t.getShaderInfoLog(s));return s}function E(t){return Ve(t,b,1).map(function(o){return{index:Ee(o,1),$:Jt(o,2),label:Kt(o,3)!=null?an(o,3):void 0,displayName:Kt(o,4)!=null?an(o,4):void 0}})}function H(t){return{x:Jt(t,1),y:Jt(t,2),z:Jt(t,3),visibility:Kt(t,4)!=null?Jt(t,4):void 0}}function J(t,o){this.h=t,this.g=o,this.l=0}function q(t,o,s){return M(t,o),typeof t.g.canvas.transferToImageBitmap=="function"?Promise.resolve(t.g.canvas.transferToImageBitmap()):s?Promise.resolve(t.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(t.g.canvas):(t.i===void 0&&(t.i=document.createElement("canvas")),new Promise(function(f){t.i.height=t.g.canvas.height,t.i.width=t.g.canvas.width,t.i.getContext("2d",{}).drawImage(t.g.canvas,0,0,t.g.canvas.width,t.g.canvas.height),f(t.i)}))}function M(t,o){var s=t.g;if(t.m===void 0){var f=V(s,`
|
|
92
91
|
attribute vec2 aVertex;
|
|
93
92
|
attribute vec2 aTex;
|
|
94
93
|
varying vec2 vTex;
|
|
95
94
|
void main(void) {
|
|
96
95
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
97
96
|
vTex = aTex;
|
|
98
|
-
}`,0),
|
|
97
|
+
}`,0),w=V(s,`
|
|
99
98
|
precision mediump float;
|
|
100
99
|
varying vec2 vTex;
|
|
101
100
|
uniform sampler2D sampler0;
|
|
102
101
|
void main(){
|
|
103
102
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
104
|
-
}`,1),T=s.createProgram();if(s.attachShader(T,
|
|
103
|
+
}`,1),T=s.createProgram();if(s.attachShader(T,f),s.attachShader(T,w),s.linkProgram(T),!s.getProgramParameter(T,s.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
105
104
|
|
|
106
|
-
`+s.getProgramInfoLog(T));h=t.m=T,s.useProgram(h),R=s.getUniformLocation(h,"sampler0"),t.j={J:s.getAttribLocation(h,"aVertex"),I:s.getAttribLocation(h,"aTex"),ja:R},t.s=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.enableVertexAttribArray(t.j.J),s.vertexAttribPointer(t.j.J,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),t.o=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.enableVertexAttribArray(t.j.I),s.vertexAttribPointer(t.j.I,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),s.uniform1i(R,0)}h=t.j,s.useProgram(t.m),s.canvas.width=o.width,s.canvas.height=o.height,s.viewport(0,0,o.width,o.height),s.activeTexture(s.TEXTURE0),t.h.bindTexture2d(o.glName),s.enableVertexAttribArray(h.J),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.vertexAttribPointer(h.J,2,s.FLOAT,!1,0,0),s.enableVertexAttribArray(h.I),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.vertexAttribPointer(h.I,2,s.FLOAT,!1,0,0),s.bindFramebuffer(s.DRAW_FRAMEBUFFER?s.DRAW_FRAMEBUFFER:s.FRAMEBUFFER,null),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.colorMask(!0,!0,!0,!0),s.drawArrays(s.TRIANGLE_FAN,0,4),s.disableVertexAttribArray(h.J),s.disableVertexAttribArray(h.I),s.bindBuffer(s.ARRAY_BUFFER,null),t.h.bindTexture2d(0)}function lt(t){this.g=t}var pt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Ft(t,o){return o+t}function yt(t,o){window[t]=o}function it(t){var o=document.createElement("script");return o.setAttribute("src",t),o.setAttribute("crossorigin","anonymous"),new Promise(function(s){o.addEventListener("load",function(){s()},!1),o.addEventListener("error",function(){s()},!1),document.body.appendChild(o)})}function gt(){return ht(function(t){switch(t.g){case 1:return t.m=2,$(t,WebAssembly.instantiate(pt),4);case 4:t.g=3,t.m=0;break;case 2:return t.m=0,t.j=null,t.return(!1);case 3:return t.return(!0)}})}function vt(t){if(this.g=t,this.listeners={},this.j={},this.G={},this.m={},this.s={},this.H=this.o=this.S=!0,this.D=Promise.resolve(),this.R="",this.C={},this.locateFile=t&&t.locateFile||Ft,typeof window=="object")var o=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")o=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.T=o,t.options){o=C(Object.keys(t.options));for(var s=o.next();!s.done;s=o.next()){s=s.value;var h=t.options[s].default;h!==void 0&&(this.j[s]=typeof h=="function"?h():h)}}}V=vt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Gt(t){var o,s,h,R,T,I,Y,K,B,M,nt;return ht(function(ot){switch(ot.g){case 1:return t.S?(o=t.g.files===void 0?[]:typeof t.g.files=="function"?t.g.files(t.j):t.g.files,$(ot,gt(),2)):ot.return();case 2:if(s=ot.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:t.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:t.locateFile}),I=o.filter(function(ut){return ut.data!==void 0}),Y=o.filter(function(ut){return ut.data===void 0}),K=Promise.all(I.map(function(ut){var ft=g(t,ut.url);if(ut.path!==void 0){var at=ut.path;ft=ft.then(function(Et){return t.overrideFile(at,Et),Promise.resolve(Et)})}return ft})),B=Promise.all(Y.map(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s?it(t.locateFile(ut.url,t.T)):Promise.resolve()})).then(function(){var ut,ft,at;return ht(function(Et){if(Et.g==1)return ut=window.createMediapipeSolutionsWasm,ft=window.createMediapipeSolutionsPackedAssets,at=t,$(Et,ut(ft),2);at.h=Et.h,Et.g=0})}),M=function(){return ht(function(ut){return t.g.graph&&t.g.graph.url?ut=$(ut,g(t,t.g.graph.url),0):(ut.g=0,ut=void 0),ut})}(),$(ot,Promise.all([B,K,M]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return h=o.filter(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s}).map(function(ut){return t.locateFile(ut.url,t.T)}),importScripts.apply(null,dt(h)),R=t,$(ot,createMediapipeSolutionsWasm(Module),6);case 6:R.h=ot.h,t.l=new OffscreenCanvas(1,1),t.h.canvas=t.l,T=t.h.GL.createContext(t.l,{antialias:!1,alpha:!1,ga:typeof WebGL2RenderingContext!="undefined"?2:1}),t.h.GL.makeContextCurrent(T),ot.g=4;break;case 7:if(t.l=document.createElement("canvas"),nt=t.l.getContext("webgl2",{}),!nt&&(nt=t.l.getContext("webgl",{}),!nt))return alert("Failed to create WebGL canvas context when passing video frame."),ot.return();t.F=nt,t.h.canvas=t.l,t.h.createContext(t.l,!0,!0,{});case 4:t.i=new t.h.SolutionWasm,t.S=!1,ot.g=0}})}function Rt(t){var o,s,h,R,T,I,Y,K;return ht(function(B){if(B.g==1){if(t.g.graph&&t.g.graph.url&&t.R===t.g.graph.url)return B.return();if(t.o=!0,!t.g.graph||!t.g.graph.url){B.g=2;return}return t.R=t.g.graph.url,$(B,g(t,t.g.graph.url),3)}for(B.g!=2&&(o=B.h,t.i.loadGraph(o)),s=C(Object.keys(t.C)),h=s.next();!h.done;h=s.next())R=h.value,t.i.overrideFile(R,t.C[R]);if(t.C={},t.g.listeners)for(T=C(t.g.listeners),I=T.next();!I.done;I=T.next())Y=I.value,N(t,Y);K=t.j,t.j={},t.setOptions(K),B.g=0})}V.reset=function(){var t=this;return ht(function(o){t.i&&(t.i.reset(),t.m={},t.s={}),o.g=0})},V.setOptions=function(t,o){var s=this;if(o=o||this.g.options){for(var h=[],R=[],T={},I=C(Object.keys(t)),Y=I.next();!Y.done;T={L:T.L,M:T.M},Y=I.next()){var K=Y.value;K in this.j&&this.j[K]===t[K]||(this.j[K]=t[K],Y=o[K],Y!==void 0&&(Y.onChange&&(T.L=Y.onChange,T.M=t[K],h.push(function(B){return function(){var M;return ht(function(nt){if(nt.g==1)return $(nt,B.L(B.M),2);M=nt.h,M===!0&&(s.o=!0),nt.g=0})}}(T))),Y.graphOptionXref&&(K={valueNumber:Y.type===1?t[K]:0,valueBoolean:Y.type===0?t[K]:!1,valueString:Y.type===2?t[K]:""},Y=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),Y.graphOptionXref),K),R.push(Y))))}(h.length!==0||R.length!==0)&&(this.o=!0,this.B=(this.B===void 0?[]:this.B).concat(R),this.A=(this.A===void 0?[]:this.A).concat(h))}};function i(t){var o,s,h,R,T,I,Y;return ht(function(K){switch(K.g){case 1:if(!t.o)return K.return();if(!t.A){K.g=2;break}o=C(t.A),s=o.next();case 3:if(s.done){K.g=5;break}return h=s.value,$(K,h(),4);case 4:s=o.next(),K.g=3;break;case 5:t.A=void 0;case 2:if(t.B){for(R=new t.h.GraphOptionChangeRequestList,T=C(t.B),I=T.next();!I.done;I=T.next())Y=I.value,R.push_back(Y);t.i.changeOptions(R),R.delete(),t.B=void 0}t.o=!1,K.g=0}})}V.initialize=function(){var t=this;return ht(function(o){return o.g==1?$(o,Gt(t),2):o.g!=3?$(o,Rt(t),3):$(o,i(t),0)})};function g(t,o){var s,h;return ht(function(R){return o in t.G?R.return(t.G[o]):(s=t.locateFile(o,""),h=fetch(s).then(function(T){return T.arrayBuffer()}),t.G[o]=h,R.return(h))})}V.overrideFile=function(t,o){this.i?this.i.overrideFile(t,o):this.C[t]=o},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(t,o){var s=this,h,R,T,I,Y,K,B,M,nt;return ht(function(ot){switch(ot.g){case 1:return s.g.inputs?(h=1e3*(o==null?performance.now():o),$(ot,s.D,2)):ot.return();case 2:return $(ot,s.initialize(),3);case 3:for(R=new s.h.PacketDataList,T=C(Object.keys(t)),I=T.next();!I.done;I=T.next())if(Y=I.value,K=s.g.inputs[Y]){t:{var ut=t[Y];switch(K.type){case"video":var ft=s.m[K.stream];if(ft||(ft=new k(s.h,s.F),s.m[K.stream]=ft),ft.l===0&&(ft.l=ft.h.createTexture()),typeof HTMLVideoElement!="undefined"&&ut instanceof HTMLVideoElement)var at=ut.videoWidth,Et=ut.videoHeight;else typeof HTMLImageElement!="undefined"&&ut instanceof HTMLImageElement?(at=ut.naturalWidth,Et=ut.naturalHeight):(at=ut.width,Et=ut.height);Et={glName:ft.l,width:at,height:Et},at=ft.g,at.canvas.width=Et.width,at.canvas.height=Et.height,at.activeTexture(at.TEXTURE0),ft.h.bindTexture2d(ft.l),at.texImage2D(at.TEXTURE_2D,0,at.RGBA,at.RGBA,at.UNSIGNED_BYTE,ut),ft.h.bindTexture2d(0),ft=Et;break t;case"detections":for(ft=s.m[K.stream],ft||(ft=new lt(s.h),s.m[K.stream]=ft),ft.data||(ft.data=new ft.g.DetectionListData),ft.data.reset(ut.length),Et=0;Et<ut.length;++Et){at=ut[Et];var _t=ft.data,Pt=_t.setBoundingBox,Re=Et,ln=at.U,we=new Wt;if(Xt(we,1,ln.aa),Xt(we,2,ln.ba),Xt(we,3,ln.height),Xt(we,4,ln.width),Xt(we,5,ln.rotation),Xt(we,6,ln.Z),ln=rn(we,Tt),Pt.call(_t,Re,ln),at.P)for(_t=0;_t<at.P.length;++_t){we=at.P[_t];var wn=!!we.visibility;Pt=ft.data,Re=Pt.addNormalizedLandmark,ln=Et,we=Object.assign(Object.assign({},we),{visibility:wn?we.visibility:0}),wn=new tt,Xt(wn,1,we.x),Xt(wn,2,we.y),Xt(wn,3,we.z),we.visibility&&Xt(wn,4,we.visibility),we=rn(wn,mt),Re.call(Pt,ln,we)}if(at.N)for(_t=0;_t<at.N.length;++_t)Pt=ft.data,Re=Pt.addClassification,ln=Et,we=at.N[_t],wn=new b,Xt(wn,2,we.$),we.index&&Xt(wn,1,we.index),we.label&&Xt(wn,3,we.label),we.displayName&&Xt(wn,4,we.displayName),we=rn(wn,U),Re.call(Pt,ln,we)}ft=ft.data;break t;default:ft={}}}switch(B=ft,M=K.stream,K.type){case"video":R.pushTexture2d(Object.assign(Object.assign({},B),{stream:M,timestamp:h}));break;case"detections":nt=B,nt.stream=M,nt.timestamp=h,R.pushDetectionList(nt);break;default:throw Error("Unknown input config type: '"+K.type+"'")}}return s.i.send(R),$(ot,s.D,4);case 4:R.delete(),ot.g=0}})};function X(t,o,s){var h,R,T,I,Y,K,B,M,nt,ot,ut,ft,at,Et;return ht(function(_t){switch(_t.g){case 1:if(!s)return _t.return(o);for(h={},R=0,T=C(Object.keys(s)),I=T.next();!I.done;I=T.next())Y=I.value,K=s[Y],typeof K!="string"&&K.type==="texture"&&o[K.stream]!==void 0&&++R;1<R&&(t.H=!1),B=C(Object.keys(s)),I=B.next();case 2:if(I.done){_t.g=4;break}if(M=I.value,nt=s[M],typeof nt=="string")return at=h,Et=M,$(_t,w(t,M,o[nt]),14);if(ot=o[nt.stream],nt.type==="detection_list"){if(ot){for(var Pt=ot.getRectList(),Re=ot.getLandmarksList(),ln=ot.getClassificationsList(),we=[],wn=0;wn<Pt.size();++wn){var Mn=fn(Pt.get(wn),Wt,Zt);Mn={U:{aa:kt(Mn,1),ba:kt(Mn,2),height:kt(Mn,3),width:kt(Mn,4),rotation:kt(Mn,5,0),Z:Ee(Mn,6)},P:Se(fn(Re.get(wn),It,wt),tt,1).map(J),N:E(fn(ln.get(wn),_,et))},we.push(Mn)}Pt=we}else Pt=[];h[M]=Pt,_t.g=7;break}if(nt.type==="proto_list"){if(ot){for(Pt=Array(ot.size()),Re=0;Re<ot.size();Re++)Pt[Re]=ot.get(Re);ot.delete()}else Pt=[];h[M]=Pt,_t.g=7;break}if(ot===void 0){_t.g=3;break}if(nt.type==="float_list"){h[M]=ot,_t.g=7;break}if(nt.type==="proto"){h[M]=ot,_t.g=7;break}if(nt.type!=="texture")throw Error("Unknown output config type: '"+nt.type+"'");return ut=t.s[M],ut||(ut=new k(t.h,t.F),t.s[M]=ut),$(_t,q(ut,ot,t.H),13);case 13:ft=_t.h,h[M]=ft;case 7:nt.transform&&h[M]&&(h[M]=nt.transform(h[M])),_t.g=3;break;case 14:at[Et]=_t.h;case 3:I=B.next(),_t.g=2;break;case 4:return _t.return(h)}})}function w(t,o,s){var h;return ht(function(R){return typeof s=="number"||s instanceof Uint8Array||s instanceof t.h.Uint8BlobList?R.return(s):s instanceof t.h.Texture2dDataOut?(h=t.s[o],h||(h=new k(t.h,t.F),t.s[o]=h),R.return(q(h,s,t.H))):R.return(void 0)})}function N(t,o){for(var s=o.name||"$",h=[].concat(dt(o.wants)),R=new t.h.StringList,T=C(o.wants),I=T.next();!I.done;I=T.next())R.push_back(I.value);T=t.h.PacketListener.implement({onResults:function(Y){for(var K={},B=0;B<o.wants.length;++B)K[h[B]]=Y.get(B);var M=t.listeners[s];M&&(t.D=X(t,K,o.outs).then(function(nt){nt=M(nt);for(var ot=0;ot<o.wants.length;++ot){var ut=K[h[ot]];typeof ut=="object"&&ut.hasOwnProperty&&ut.hasOwnProperty("delete")&&ut.delete()}nt&&(t.D=nt)}))}}),t.i.attachMultiListener(R,T),R.delete()}V.onResults=function(t,o){this.listeners[o||"$"]=t},St("Solution",vt),St("OptionType",{BOOL:0,NUMBER:1,ca:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(t){var o=Ee(t,1),s=Ke(t,c,3);return s={x:kt(s,1),y:kt(s,2),depth:kt(s,3)},t=Ke(t,m,2),{id:o,point2d:s,point3d:{x:kt(t,1),y:kt(t,2),z:kt(t,3)}}}function l(t){var o=fn(t,r,y);t=[],o=Se(o,H,2);for(var s=0;s<o.length;s++)t.push({id:Ee(o[s],1),keypoints:Se(o[s],j,2).map(n),visibility:kt(o[s],3),scale:xe(o[s],6),translation:xe(o[s],5),rotation:xe(o[s],4)});return t}function p(t){switch(t){case"Camera":return"object_detection_3d_camera.tflite";case"Chair":return"object_detection_3d_chair.tflite";case"Cup":return"object_detection_3d_cup.tflite";default:return"object_detection_3d_sneakers.tflite"}}function e(t){switch(t){case"Camera":return"Camera";case"Chair":return"Chair";case"Cup":return"Coffee cup, Mug";default:return"Footwear"}}var u={focalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_x"}},focalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_y"}},principalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_x"}},principalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_y"}},allowedLabels:{type:2,graphOptionXref:{calculatorName:"ConstantSidePacketCalculatorAllowedLabels",calculatorType:"ConstantSidePacketCalculator",fieldName:"string_value"}}};function a(t){var o=this;t=t||{},this.g=new vt({locateFile:t.locateFile,files:[{url:"objectron_solution_packed_assets_loader.js"},{simd:!1,url:"objectron_solution_wasm_bin.js"},{simd:!0,url:"objectron_solution_simd_wasm_bin.js"}],graph:{url:"objectron.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["lifted_objects","image_transformed"],outs:{image:"image_transformed",objectDetections:{type:"proto",stream:"lifted_objects",transform:l}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,default:!1,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumObjects:{type:1,default:5,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorMaxNumObjects",fieldName:"int_value"}},staticImageMode:{type:0,default:!0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"objectrongpusubgraph__ConstantSidePacketCalculator",fieldName:"bool_value"}},minDetectionConfidence:{type:1,default:.5,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"objectrongpusubgraph__objectdetectionoidv4subgraph__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,default:.99,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"objectrongpusubgraph__boxlandmarksubgraph__ThresholdingCalculator",fieldName:"threshold"}},modelName:{default:"Shoe",onChange:function(s){var h,R,T,I;return ht(function(Y){return Y.g==1?(h=s,o.g.setOptions({allowedLabels:e(h)},u),R=p(h),T="object_detection_3d.tflite",$(Y,g(o.g,R),2)):(I=Y.h,o.g.overrideFile(T,I),Y.return(!0))})}},focalLength:{default:[1,1],onChange:function(s){var h;return ht(function(R){return h=s,o.h=h,o.g.setOptions({focalX:h[0],focalY:h[1]},u),R.return(!0)})}},principalPoint:{default:[0,0],onChange:function(s){var h;return ht(function(R){return h=s,o.i=h,o.g.setOptions({principalX:h[0],principalY:h[1]},u),R.return(!0)})}},imageSize:{onChange:function(s){var h,R,T,I;return ht(function(Y){if(o.h===void 0||o.i===void 0)return console.error('"focalLength" and "principalPoint" must be set if setting image size'),Y.return();h=s,R=[h[0]/2,h[1]/2],T=[o.h[0]/R[0],o.h[1]/R[1]],I=[o.i[0]/R[0],o.i[1]/R[1]],o.setOptions({focalLength:T,principalPoint:I}),Y.g=0})}}}})}V=a.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(t){this.g.onResults(t)},V.initialize=function(){var t=this;return ht(function(o){return $(o,t.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(t){var o=this;return ht(function(s){return $(s,o.g.send(t),0)})},V.setOptions=function(t){this.g.setOptions(t)},St("Objectron",a),St("BOX_CONNECTIONS",[[1,2],[2,4],[4,3],[3,1],[5,6],[6,8],[8,7],[7,5],[1,5],[2,6],[3,7],[4,8]]),St("BOX_KEYPOINTS",{CENTER:0,BACK_BOTTOM_LEFT:1,FRONT_BOTTOM_LEFT:2,BACK_TOP_LEFT:3,FRONT_TOP_LEFT:4,BACK_BOTTOM_RIGHT:5,FRONT_BOTTOM_RIGHT:6,BACK_TOP_RIGHT:7,FRONT_TOP_RIGHT:8}),St("VERSION","0.4.1636596145")}).call(Lr);const Er={};(function(){var V;function v(r){var y=0;return function(){return y<r.length?{done:!1,value:r[y++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(r,y,G){return r==Array.prototype||r==Object.prototype||(r[y]=G.value),r};function L(r){r=[typeof globalThis=="object"&&globalThis,r,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var y=0;y<r.length;++y){var G=r[y];if(G&&G.Math==Math)return G}throw Error("Cannot find global object")}var F=L(this);function A(r,y){if(y)t:{var G=F;r=r.split(".");for(var S=0;S<r.length-1;S++){var E=r[S];if(!(E in G))break t;G=G[E]}r=r[r.length-1],S=G[r],y=y(S),y!=S&&y!=null&&W(G,r,{configurable:!0,writable:!0,value:y})}}A("Symbol",function(r){function y(J){if(this instanceof y)throw new TypeError("Symbol is not a constructor");return new G(S+(J||"")+"_"+E++,J)}function G(J,k){this.g=J,W(this,"description",{configurable:!0,writable:!0,value:k})}if(r)return r;G.prototype.toString=function(){return this.g};var S="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",E=0;return y}),A("Symbol.iterator",function(r){if(r)return r;r=Symbol("Symbol.iterator");for(var y="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),G=0;G<y.length;G++){var S=F[y[G]];typeof S=="function"&&typeof S.prototype[r]!="function"&&W(S.prototype,r,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return r});function Q(r){return r={next:r},r[Symbol.iterator]=function(){return this},r}function C(r){var y=typeof Symbol!="undefined"&&Symbol.iterator&&r[Symbol.iterator];return y?y.call(r):{next:v(r)}}function dt(r){if(!(r instanceof Array)){r=C(r);for(var y,G=[];!(y=r.next()).done;)G.push(y.value);r=G}return r}var _e=typeof Object.create=="function"?Object.create:function(r){function y(){}return y.prototype=r,new y},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ht;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,Ht=fe.a;break t}catch{}Ht=!1}ct=Ht?function(r,y){if(r.__proto__=y,r.__proto__!==y)throw new TypeError(r+" is not extensible");return r}:null}var je=ct;function xt(r,y){if(r.prototype=_e(y.prototype),r.prototype.constructor=r,je)je(r,y);else for(var G in y)if(G!="prototype")if(Object.defineProperties){var S=Object.getOwnPropertyDescriptor(y,G);S&&Object.defineProperty(r,G,S)}else r[G]=y[G];r.ea=y.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(r){if(r.l)throw new TypeError("Generator is already running");r.l=!0}ue.prototype.o=function(r){this.h=r};function he(r,y){r.j={U:y,V:!0},r.g=r.m||r.s}ue.prototype.return=function(r){this.j={return:r},this.g=this.s};function $(r,y,G){return r.g=G,{value:y}}function In(r){this.g=new ue,this.h=r}function jn(r,y){de(r.g);var G=r.g.i;return G?He(r,"return"in G?G.return:function(S){return{value:S,done:!0}},y,r.g.return):(r.g.return(y),ee(r))}function He(r,y,G,S){try{var E=y.call(r.g.i,G);if(!(E instanceof Object))throw new TypeError("Iterator result "+E+" is not an object");if(!E.done)return r.g.l=!1,E;var J=E.value}catch(k){return r.g.i=null,he(r.g,k),ee(r)}return r.g.i=null,S.call(r.g,J),ee(r)}function ee(r){for(;r.g.g;)try{var y=r.h(r.g);if(y)return r.g.l=!1,{value:y.value,done:!1}}catch(G){r.g.h=void 0,he(r.g,G)}if(r.g.l=!1,r.g.j){if(y=r.g.j,r.g.j=null,y.V)throw y.U;return{value:y.return,done:!0}}return{value:void 0,done:!0}}function Hn(r){this.next=function(y){return de(r.g),r.g.i?y=He(r,r.g.i.next,y,r.g.o):(r.g.o(y),y=ee(r)),y},this.throw=function(y){return de(r.g),r.g.i?y=He(r,r.g.i.throw,y,r.g.o):(he(r.g,y),y=ee(r)),y},this.return=function(y){return jn(r,y)},this[Symbol.iterator]=function(){return this}}function te(r){function y(S){return r.next(S)}function G(S){return r.throw(S)}return new Promise(function(S,E){function J(k){k.done?S(k.value):Promise.resolve(k.value).then(y,G).then(J,E)}J(r.next())})}function ht(r){return te(new Hn(new In(r)))}A("Promise",function(r){function y(k){this.h=0,this.i=void 0,this.g=[],this.o=!1;var q=this.j();try{k(q.resolve,q.reject)}catch(z){q.reject(z)}}function G(){this.g=null}function S(k){return k instanceof y?k:new y(function(q){q(k)})}if(r)return r;G.prototype.h=function(k){if(this.g==null){this.g=[];var q=this;this.i(function(){q.l()})}this.g.push(k)};var E=F.setTimeout;G.prototype.i=function(k){E(k,0)},G.prototype.l=function(){for(;this.g&&this.g.length;){var k=this.g;this.g=[];for(var q=0;q<k.length;++q){var z=k[q];k[q]=null;try{z()}catch(lt){this.j(lt)}}}this.g=null},G.prototype.j=function(k){this.i(function(){throw k})},y.prototype.j=function(){function k(lt){return function(pt){z||(z=!0,lt.call(q,pt))}}var q=this,z=!1;return{resolve:k(this.C),reject:k(this.l)}},y.prototype.C=function(k){if(k===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(k instanceof y)this.F(k);else{t:switch(typeof k){case"object":var q=k!=null;break t;case"function":q=!0;break t;default:q=!1}q?this.v(k):this.m(k)}},y.prototype.v=function(k){var q=void 0;try{q=k.then}catch(z){this.l(z);return}typeof q=="function"?this.G(q,k):this.m(k)},y.prototype.l=function(k){this.s(2,k)},y.prototype.m=function(k){this.s(1,k)},y.prototype.s=function(k,q){if(this.h!=0)throw Error("Cannot settle("+k+", "+q+"): Promise already settled in state"+this.h);this.h=k,this.i=q,this.h===2&&this.D(),this.A()},y.prototype.D=function(){var k=this;E(function(){if(k.B()){var q=F.console;typeof q!="undefined"&&q.error(k.i)}},1)},y.prototype.B=function(){if(this.o)return!1;var k=F.CustomEvent,q=F.Event,z=F.dispatchEvent;return typeof z=="undefined"?!0:(typeof k=="function"?k=new k("unhandledrejection",{cancelable:!0}):typeof q=="function"?k=new q("unhandledrejection",{cancelable:!0}):(k=F.document.createEvent("CustomEvent"),k.initCustomEvent("unhandledrejection",!1,!0,k)),k.promise=this,k.reason=this.i,z(k))},y.prototype.A=function(){if(this.g!=null){for(var k=0;k<this.g.length;++k)J.h(this.g[k]);this.g=null}};var J=new G;return y.prototype.F=function(k){var q=this.j();k.J(q.resolve,q.reject)},y.prototype.G=function(k,q){var z=this.j();try{k.call(q,z.resolve,z.reject)}catch(lt){z.reject(lt)}},y.prototype.then=function(k,q){function z(yt,it){return typeof yt=="function"?function(gt){try{lt(yt(gt))}catch(vt){pt(vt)}}:it}var lt,pt,Ft=new y(function(yt,it){lt=yt,pt=it});return this.J(z(k,lt),z(q,pt)),Ft},y.prototype.catch=function(k){return this.then(void 0,k)},y.prototype.J=function(k,q){function z(){switch(lt.h){case 1:k(lt.i);break;case 2:q(lt.i);break;default:throw Error("Unexpected state: "+lt.h)}}var lt=this;this.g==null?J.h(z):this.g.push(z),this.o=!0},y.resolve=S,y.reject=function(k){return new y(function(q,z){z(k)})},y.race=function(k){return new y(function(q,z){for(var lt=C(k),pt=lt.next();!pt.done;pt=lt.next())S(pt.value).J(q,z)})},y.all=function(k){var q=C(k),z=q.next();return z.done?S([]):new y(function(lt,pt){function Ft(gt){return function(vt){yt[gt]=vt,it--,it==0&<(yt)}}var yt=[],it=0;do yt.push(void 0),it++,S(z.value).J(Ft(yt.length-1),pt),z=q.next();while(!z.done)})},y});function Jn(r,y){r instanceof String&&(r+="");var G=0,S=!1,E={next:function(){if(!S&&G<r.length){var J=G++;return{value:y(J,r[J]),done:!1}}return S=!0,{done:!0,value:void 0}}};return E[Symbol.iterator]=function(){return E},E}var Cn=typeof Object.assign=="function"?Object.assign:function(r,y){for(var G=1;G<arguments.length;G++){var S=arguments[G];if(S)for(var E in S)Object.prototype.hasOwnProperty.call(S,E)&&(r[E]=S[E])}return r};A("Object.assign",function(r){return r||Cn}),A("Object.is",function(r){return r||function(y,G){return y===G?y!==0||1/y===1/G:y!==y&&G!==G}}),A("Array.prototype.includes",function(r){return r||function(y,G){var S=this;S instanceof String&&(S=String(S));var E=S.length;for(G=G||0,0>G&&(G=Math.max(G+E,0));G<E;G++){var J=S[G];if(J===y||Object.is(J,y))return!0}return!1}}),A("String.prototype.includes",function(r){return r||function(y,G){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(y instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(y,G||0)!==-1}}),A("Array.prototype.keys",function(r){return r||function(){return Jn(this,function(y){return y})}});var ye=this||self;function St(r,y){r=r.split(".");var G=ye;r[0]in G||typeof G.execScript=="undefined"||G.execScript("var "+r[0]);for(var S;r.length&&(S=r.shift());)r.length||y===void 0?G[S]&&G[S]!==Object.prototype[S]?G=G[S]:G=G[S]={}:G[S]=y}function We(r){ye.setTimeout(function(){throw r},0)}function tn(r){We(r)}function hn(r,y){tn(Error("Invalid wire type: "+r+" (at position "+y+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function bn(r,y){return y=String.fromCharCode.apply(null,y),r==null?y:r+y}var Fn,en=typeof TextDecoder!="undefined",un,Ln=typeof TextEncoder!="undefined";function Vn(r){if(Ln)r=(un||(un=new TextEncoder)).encode(r);else{var y=void 0;y=y===void 0?!1:y;for(var G=0,S=new Uint8Array(3*r.length),E=0;E<r.length;E++){var J=r.charCodeAt(E);if(128>J)S[G++]=J;else{if(2048>J)S[G++]=J>>6|192;else{if(55296<=J&&57343>=J){if(56319>=J&&E<r.length){var k=r.charCodeAt(++E);if(56320<=k&&57343>=k){J=1024*(J-55296)+k-56320+65536,S[G++]=J>>18|240,S[G++]=J>>12&63|128,S[G++]=J>>6&63|128,S[G++]=J&63|128;continue}else E--}if(y)throw Error("Found an unpaired surrogate");J=65533}S[G++]=J>>12|224,S[G++]=J>>6&63|128}S[G++]=J&63|128}}r=S.subarray(0,G)}return r}var dn={},nn=null;function Zn(r){var y;y===void 0&&(y=0),ve(),y=dn[y];for(var G=Array(Math.floor(r.length/3)),S=y[64]||"",E=0,J=0;E<r.length-2;E+=3){var k=r[E],q=r[E+1],z=r[E+2],lt=y[k>>2];k=y[(k&3)<<4|q>>4],q=y[(q&15)<<2|z>>6],z=y[z&63],G[J++]=lt+k+q+z}switch(lt=0,z=S,r.length-E){case 2:lt=r[E+1],z=y[(lt&15)<<2]||S;case 1:r=r[E],G[J]=y[r>>2]+y[(r&3)<<4|lt>>4]+z+S}return G.join("")}function pn(r){var y=r.length,G=3*y/4;G%3?G=Math.floor(G):"=.".indexOf(r[y-1])!=-1&&(G="=.".indexOf(r[y-2])!=-1?G-2:G-1);var S=new Uint8Array(G),E=0;return ce(r,function(J){S[E++]=J}),S.subarray(0,E)}function ce(r,y){function G(z){for(;S<r.length;){var lt=r.charAt(S++),pt=nn[lt];if(pt!=null)return pt;if(!/^[\s\xa0]*$/.test(lt))throw Error("Unknown base64 encoding at char: "+lt)}return z}ve();for(var S=0;;){var E=G(-1),J=G(0),k=G(64),q=G(64);if(q===64&&E===-1)break;y(E<<2|J>>4),k!=64&&(y(J<<4&240|k>>2),q!=64&&y(k<<6&192|q))}}function ve(){if(!nn){nn={};for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),y=["+/=","+/","-_=","-_.","-_"],G=0;5>G;G++){var S=r.concat(y[G].split(""));dn[G]=S;for(var E=0;E<S.length;E++){var J=S[E];nn[J]===void 0&&(nn[J]=E)}}}}var Pe=typeof Uint8Array=="function",le;function ae(r){if(this.g=r,r!==null&&r.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var r="";else r=this.g,r=this.g=r==null||typeof r=="string"?r:Pe&&r instanceof Uint8Array?Zn(r):null;return r};var ze=typeof Uint8Array.prototype.slice=="function";function Fe(r,y,G){return y===G?le||(le=new Uint8Array(0)):ze?r.slice(y,G):new Uint8Array(r.subarray(y,G))}var Ct=0,re=0;function Ve(r){if(r.constructor===Uint8Array)return r;if(r.constructor===ArrayBuffer)return new Uint8Array(r);if(r.constructor===Array)return new Uint8Array(r);if(r.constructor===String)return pn(r);if(r.constructor===ae){if(r.g==null)var y=le||(le=new Uint8Array(0));else{y=Uint8Array;var G=r.g;G=G==null||Pe&&G!=null&&G instanceof Uint8Array?G:typeof G=="string"?pn(G):null,r=r.g=G,y=new y(r)}return y}if(r instanceof Uint8Array)return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Lt(r,y){y=y===void 0?{}:y,y=y.u===void 0?!1:y.u,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.u=y,r&&pe(this,r)}function pe(r,y){r.h=Ve(y),r.l=0,r.i=r.h.length,r.g=r.l}Lt.prototype.reset=function(){this.g=this.l};function At(r){r.g>r.i&&(r.j=!0,tn(Error("Tried to read past the end of the data "+r.g+" > "+r.i)))}function ne(r){var y=r.h,G=y[r.g],S=G&127;return 128>G?(r.g+=1,At(r),S):(G=y[r.g+1],S|=(G&127)<<7,128>G?(r.g+=2,At(r),S):(G=y[r.g+2],S|=(G&127)<<14,128>G?(r.g+=3,At(r),S):(G=y[r.g+3],S|=(G&127)<<21,128>G?(r.g+=4,At(r),S):(G=y[r.g+4],S|=(G&15)<<28,128>G?(r.g+=5,At(r),S>>>0):(r.g+=5,128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]?(r.j=!0,Wn(),S):(At(r),S))))))}var Ge=[];function Be(){this.g=new Uint8Array(64),this.h=0}function se(r,y){if(!(r.h+1<r.g.length)){var G=r.g;r.g=new Uint8Array(Math.ceil(1+2*r.g.length)),r.g.set(G)}r.g[r.h++]=y}Be.prototype.length=function(){return this.h},Be.prototype.end=function(){var r=this.g,y=this.h;return this.h=0,Fe(r,0,y)};function Ut(r,y){for(;127<y;)se(r,y&127|128),y>>>=7;se(r,y)}function Le(r){var y={},G=y.N===void 0?!1:y.N;this.m={u:y.u===void 0?!1:y.u},this.N=G,y=this.m,Ge.length?(G=Ge.pop(),y&&(G.u=y.u),r&&pe(G,r),r=G):r=new Lt(r,y),this.g=r,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Le.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Je(r){var y=r.g;if((y=y.g==y.i)||(y=r.j)||(y=r.g,y=y.j||0>y.g||y.g>y.i),y)return!1;r.l=r.g.g;var G=ne(r.g);return y=G>>>3,G&=7,0<=G&&5>=G?(r.i=y,r.h=G,!0):(r.j=!0,hn(G,r.l),!1)}function ge(r){switch(r.h){case 0:if(r.h!=0)ge(r);else t:{r=r.g;for(var y=r.g,G=0;10>G;G++){if((r.h[y]&128)===0){r.g=y+1,At(r);break t}y++}r.j=!0,Wn()}break;case 1:r=r.g,r.g+=8,At(r);break;case 2:r.h!=2?ge(r):(y=ne(r.g),r=r.g,r.g+=y,At(r));break;case 5:r=r.g,r.g+=4,At(r);break;case 3:y=r.i;do{if(!Je(r)){r.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(r.h==4){r.i!=y&&(r.j=!0,tn(Error("Unmatched end-group tag")));break}ge(r)}while(1);break;default:r.j=!0,hn(r.h,r.l)}}function Rn(r,y,G){r.N||(r=Fe(r.g.h,G,r.g.g),(G=y.m)?G.push(r):y.m=[r])}var Qe=[];function sn(){this.h=[],this.i=0,this.g=new Be}function cn(r,y){y.length!==0&&(r.h.push(y),r.i+=y.length)}function ie(r,y,G){Ut(r.g,8*y+2),Ut(r.g,G.length),cn(r,r.g.end()),cn(r,G)}var Xe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function oe(r,y){Object.isFrozen(r)||(Xe?r[Xe]|=y:r.g!==void 0?r.g|=y:Object.defineProperties(r,{g:{value:y,configurable:!0,writable:!0,enumerable:!1}}))}function Mt(r){if(!r)return 0;var y;return Xe?y=r[Xe]:y=r.g,y==null?0:y}function Ce(r){return Array.isArray(r)&&oe(r,1),r}function Kt(r){if(!Array.isArray(r))throw Error("cannot mark non-array as immutable");oe(r,2)}function Yt(r){return r!==null&&typeof r=="object"&&r.constructor===Object}function gn(r){switch(typeof r){case"number":return isFinite(r)?r:String(r);case"object":return Pe&&r!=null&&r instanceof Uint8Array?Zn(r):r;default:return r}}function $t(r,y){if(r!=null)return Array.isArray(r)||Yt(r)?Vt(r,y):y(r)}function Vt(r,y){if(Array.isArray(r)){for(var G=Array(r.length),S=0;S<r.length;S++)G[S]=$t(r[S],y);return Mt(r)&1&&Ce(G),G}G={};for(S in r)G[S]=$t(r[S],y);return G}var bt;function zt(r,y,G){var S=bt;bt=null,r||(r=S),S=this.constructor.ca,r||(r=S?[S]:[]),this.j=(S?0:-1)-(this.constructor.aa||0),this.i=null,this.g=r;t:{if(S=this.g.length,r=S-1,S&&(S=this.g[r],Yt(S))){this.l=r-this.j,this.h=S;break t}y!==void 0&&-1<y?(this.l=Math.max(y,r+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(G)for(y=0;y<G.length;y++)r=G[y],r<this.l?(r+=this.j,(S=this.g[r])?Ce(S):this.g[r]=Ie):(Ot(this),(S=this.h[r])?Ce(S):this.h[r]=Ie)}var Ie=Object.freeze(Ce([]));function Ot(r){var y=r.l+r.j;r.g[y]||(r.h=r.g[y]={})}function Qt(r,y,G){return y===-1?null:(G===void 0?0:G)||y>=r.l?r.h?r.h[y]:void 0:r.g[y+r.j]}function xe(r,y,G){G=G===void 0?!0:G;var S=S===void 0?!1:S,E=Qt(r,y,S);return E==null&&(E=Ie),E===Ie?(E=Ce([]),Xt(r,y,E,S)):G&&Array.isArray(E)&&Mt(E)&2&&(E=E.slice(),Xt(r,y,E,S)),E}function kt(r,y,G){return r=Qt(r,y),r=r==null?r:+r,r==null?G===void 0?0:G:r}function Xt(r,y,G,S){(S===void 0?0:S)||y>=r.l?(Ot(r),r.h[y]=G):r.g[y+r.j]=G}function Ae(r,y,G){r.i||(r.i={});var S=r.i[G];if(!S){var E=xe(r,G,!1);S=[];for(var J=Array.isArray(E)?!!(Mt(E)&2):!1,k=0;k<E.length;k++)S[k]=new y(E[k]),J&&Kt(S[k].g);J&&(Kt(S),Object.freeze(S)),r.i[G]=S}return S}function Ke(r,y,G,S,E){var J=Ae(r,S,y);G=G||new S,r=xe(r,y),E!=null?(J.splice(E,0,G),r.splice(E,0,Se(G))):(J.push(G),r.push(Se(G)))}zt.prototype.toJSON=function(){var r=Se(this);return Vt(r,gn)};function Se(r){if(r.i)for(var y in r.i){var G=r.i[y];if(Array.isArray(G))for(var S=0;S<G.length;S++)G[S]&&Se(G[S]);else G&&Se(G)}return r.g}zt.prototype.toString=function(){return Se(this).toString()};function Jt(r,y){return r=Qt(r,y),r==null?0:r}function Ee(r,y){return r=Qt(r,y),r==null?"":r}function an(r,y){if(r=r.m){cn(y,y.g.end());for(var G=0;G<r.length;G++)cn(y,r[G])}}function De(r){var y=r[0];switch(r.length){case 2:var G=r[1];return function(z,lt,pt){return y(z,lt,pt,G)};case 3:var S=r[1],E=r[2];return function(z,lt,pt){return y(z,lt,pt,S,E)};case 4:var J=r[1],k=r[2],q=r[3];return function(z,lt,pt){return y(z,lt,pt,J,k,q)};default:throw Error("unsupported number of parameters, expected [2-4], got "+r.length)}}function Ne(r,y,G){for(;Je(y)&&y.h!=4;){var S=y.i,E=G[S];if(E){if(Array.isArray(E)&&(E=G[S]=De(E)),!E(y,r,S)){S=y,E=r;var J=S.l;ge(S),Rn(S,E,J)}}else S=y,E=r,J=S.l,ge(S),Rn(S,E,J)}return r}function Me(r,y){var G=new sn;if(y(r,G),r=G.i+G.g.length(),r===0)G=new Uint8Array(0);else{r=new Uint8Array(r);for(var S=G.h,E=S.length,J=y=0;J<E;J++){var k=S[J];k.length!==0&&(r.set(k,y),y+=k.length)}S=G.g,E=S.h,E!==0&&(r.set(S.g.subarray(0,E),y),S.h=0),G.h=[r],G=r}return G}function $e(r,y,G){if(Qe.length){var S=Qe.pop();r&&(pe(S.g,r),S.i=-1,S.h=-1),r=S}else r=new Le(r);try{return G(new y,r)}finally{y=r.g,y.h=null,y.l=0,y.i=0,y.g=0,y.j=!1,y.u=!1,r.i=-1,r.h=-1,r.j=!1,100>Qe.length&&Qe.push(r)}}function me(r,y,G){if(y=Qt(y,G),y!=null){Ut(r.g,8*G+5),r=r.g;var S=y;S=(G=0>S?1:0)?-S:S,S===0?0<1/S?Ct=re=0:(re=0,Ct=2147483648):isNaN(S)?(re=0,Ct=2147483647):34028234663852886e22<S?(re=0,Ct=(G<<31|2139095040)>>>0):11754943508222875e-54>S?(S=Math.round(S/Math.pow(2,-149)),re=0,Ct=(G<<31|S)>>>0):(y=Math.floor(Math.log(S)/Math.LN2),S*=Math.pow(2,-y),S=Math.round(8388608*S),16777216<=S&&++y,re=0,Ct=(G<<31|y+127<<23|S&8388607)>>>0),G=Ct,se(r,G>>>0&255),se(r,G>>>8&255),se(r,G>>>16&255),se(r,G>>>24&255)}}function Ue(r,y,G){if(r.h!==5)return!1;r=r.g;var S=r.h[r.g],E=r.h[r.g+1],J=r.h[r.g+2],k=r.h[r.g+3];return r.g+=4,At(r),E=(S<<0|E<<8|J<<16|k<<24)>>>0,r=2*(E>>31)+1,S=E>>>23&255,E&=8388607,Xt(y,G,S==255?E?NaN:1/0*r:S==0?r*Math.pow(2,-149)*E:r*Math.pow(2,S-150)*(E+Math.pow(2,23))),!0}function En(r,y,G){if(r.h!==0)return!1;for(var S=r.g,E=128,J=0,k=r=0;4>k&&128<=E;k++)E=S.h[S.g++],J|=(E&127)<<7*k;if(128<=E&&(E=S.h[S.g++],J|=(E&127)<<28,r|=(E&127)>>4),128<=E)for(k=0;5>k&&128<=E;k++)E=S.h[S.g++],r|=(E&127)<<7*k+3;return 128>E?(S=J>>>0,E=r>>>0,(r=E&2147483648)&&(S=~S+1>>>0,E=~E>>>0,S==0&&(E=E+1>>>0)),S=4294967296*E+(S>>>0),r=r?-S:S):(S.j=!0,Wn(),r=void 0),Xt(y,G,r),!0}function Ye(r,y,G){return r.h!==0?!1:(Xt(y,G,ne(r.g)),!0)}function be(r,y,G){if(r.h!==2)return!1;var S=ne(r.g);r=r.g;var E=r.g;r.g+=S,At(r),r=r.h;var J;if(en)(J=Fn)||(J=Fn=new TextDecoder("utf-8",{fatal:!1})),J=J.decode(r.subarray(E,E+S));else{S=E+S;for(var k=[],q=null,z,lt,pt;E<S;)z=r[E++],128>z?k.push(z):224>z?E>=S?k.push(65533):(lt=r[E++],194>z||(lt&192)!==128?(E--,k.push(65533)):k.push((z&31)<<6|lt&63)):240>z?E>=S-1?k.push(65533):(lt=r[E++],(lt&192)!==128||z===224&&160>lt||z===237&&160<=lt||((J=r[E++])&192)!==128?(E--,k.push(65533)):k.push((z&15)<<12|(lt&63)<<6|J&63)):244>=z?E>=S-2?k.push(65533):(lt=r[E++],(lt&192)!==128||(z<<28)+(lt-144)>>30!==0||((J=r[E++])&192)!==128||((pt=r[E++])&192)!==128?(E--,k.push(65533)):(z=(z&7)<<18|(lt&63)<<12|(J&63)<<6|pt&63,z-=65536,k.push((z>>10&1023)+55296,(z&1023)+56320))):k.push(65533),8192<=k.length&&(q=bn(q,k),k.length=0);J=bn(q,k)}return Xt(y,G,J),!0}function rn(r,y,G,S,E){if(r.h!==2)return!1;var J=new S,k=r.g.i,q=ne(r.g),z=r.g.g+q;if(r.g.i=z,E(J,r),E=z-r.g.g,E!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(q+" bytes, instead read "+(q-E)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return r.g.g=z,r.g.i=k,Ke(y,G,J,S,void 0),!0}function fn(r){zt.call(this,r)}var Te;xt(fn,zt);function Sn(r,y){var G=Qt(r,1);if(G!=null&&G!=null){Ut(y.g,8);var S=y.g;if(0<=G)Ut(S,G);else{for(var E=0;9>E;E++)se(S,G&127|128),G>>=7;se(S,1)}}me(y,r,2),S=Qt(r,3),S!=null&&ie(y,3,Vn(S)),S=Qt(r,4),S!=null&&ie(y,4,Vn(S)),an(r,y)}function ke(r,y){return Ne(r,y,Te||(Te={1:Ye,2:Ue,3:be,4:be}))}function on(r){zt.call(this,r,-1,Oe)}var mn;xt(on,zt),on.prototype.addClassification=function(r,y){return Ke(this,1,r,fn,y),this};function xn(r,y){return Ne(r,y,mn||(mn={1:[rn,fn,ke]}))}var Oe=[1];function yn(r){zt.call(this,r)}var Un;xt(yn,zt);function Yn(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5),an(r,y)}function vn(r,y){return Ne(r,y,Un||(Un={1:Ue,2:Ue,3:Ue,4:Ue,5:Ue}))}function Gn(r){zt.call(this,r,-1,Z)}var f;xt(Gn,zt);function b(r,y){return Ne(r,y,f||(f={1:[rn,yn,vn]}))}var Z=[1];function U(r){zt.call(this,r)}var _;xt(U,zt);function et(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5);var G=Qt(r,6);if(G!=null&&G!=null){Ut(y.g,48);var S=y.g,E=G;G=0>E,E=Math.abs(E);var J=E>>>0;for(E=Math.floor((E-J)/4294967296),E>>>=0,G&&(E=~E>>>0,J=(~J>>>0)+1,4294967295<J&&(J=0,E++,4294967295<E&&(E=0))),Ct=J,re=E,G=Ct,J=re;0<J||127<G;)se(S,G&127|128),G=(G>>>7|J<<25)>>>0,J>>>=7;se(S,G)}an(r,y)}function O(r,y){return Ne(r,y,_||(_={1:Ue,2:Ue,3:Ue,4:Ue,5:Ue,6:En}))}function tt(r,y,G){if(G=r.createShader(G===0?r.VERTEX_SHADER:r.FRAGMENT_SHADER),r.shaderSource(G,y),r.compileShader(G),!r.getShaderParameter(G,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
105
|
+
`+s.getProgramInfoLog(T));f=t.m=T,s.useProgram(f),w=s.getUniformLocation(f,"sampler0"),t.j={J:s.getAttribLocation(f,"aVertex"),I:s.getAttribLocation(f,"aTex"),ja:w},t.s=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.enableVertexAttribArray(t.j.J),s.vertexAttribPointer(t.j.J,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),t.o=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.enableVertexAttribArray(t.j.I),s.vertexAttribPointer(t.j.I,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),s.uniform1i(w,0)}f=t.j,s.useProgram(t.m),s.canvas.width=o.width,s.canvas.height=o.height,s.viewport(0,0,o.width,o.height),s.activeTexture(s.TEXTURE0),t.h.bindTexture2d(o.glName),s.enableVertexAttribArray(f.J),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.vertexAttribPointer(f.J,2,s.FLOAT,!1,0,0),s.enableVertexAttribArray(f.I),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.vertexAttribPointer(f.I,2,s.FLOAT,!1,0,0),s.bindFramebuffer(s.DRAW_FRAMEBUFFER?s.DRAW_FRAMEBUFFER:s.FRAMEBUFFER,null),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.colorMask(!0,!0,!0,!0),s.drawArrays(s.TRIANGLE_FAN,0,4),s.disableVertexAttribArray(f.J),s.disableVertexAttribArray(f.I),s.bindBuffer(s.ARRAY_BUFFER,null),t.h.bindTexture2d(0)}function lt(t){this.g=t}var pt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function xt(t,o){return o+t}function yt(t,o){window[t]=o}function it(t){var o=document.createElement("script");return o.setAttribute("src",t),o.setAttribute("crossorigin","anonymous"),new Promise(function(s){o.addEventListener("load",function(){s()},!1),o.addEventListener("error",function(){s()},!1),document.body.appendChild(o)})}function gt(){return ft(function(t){switch(t.g){case 1:return t.m=2,$(t,WebAssembly.instantiate(pt),4);case 4:t.g=3,t.m=0;break;case 2:return t.m=0,t.j=null,t.return(!1);case 3:return t.return(!0)}})}function vt(t){if(this.g=t,this.listeners={},this.j={},this.G={},this.m={},this.s={},this.H=this.o=this.S=!0,this.D=Promise.resolve(),this.R="",this.C={},this.locateFile=t&&t.locateFile||xt,typeof window=="object")var o=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")o=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.T=o,t.options){o=U(Object.keys(t.options));for(var s=o.next();!s.done;s=o.next()){s=s.value;var f=t.options[s].default;f!==void 0&&(this.j[s]=typeof f=="function"?f():f)}}}S=vt.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Xt(t){var o,s,f,w,T,x,k,O,P,z,nt;return ft(function(ot){switch(ot.g){case 1:return t.S?(o=t.g.files===void 0?[]:typeof t.g.files=="function"?t.g.files(t.j):t.g.files,$(ot,gt(),2)):ot.return();case 2:if(s=ot.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:t.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:t.locateFile}),x=o.filter(function(ut){return ut.data!==void 0}),k=o.filter(function(ut){return ut.data===void 0}),O=Promise.all(x.map(function(ut){var ht=g(t,ut.url);if(ut.path!==void 0){var at=ut.path;ht=ht.then(function(Et){return t.overrideFile(at,Et),Promise.resolve(Et)})}return ht})),P=Promise.all(k.map(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s?it(t.locateFile(ut.url,t.T)):Promise.resolve()})).then(function(){var ut,ht,at;return ft(function(Et){if(Et.g==1)return ut=window.createMediapipeSolutionsWasm,ht=window.createMediapipeSolutionsPackedAssets,at=t,$(Et,ut(ht),2);at.h=Et.h,Et.g=0})}),z=function(){return ft(function(ut){return t.g.graph&&t.g.graph.url?ut=$(ut,g(t,t.g.graph.url),0):(ut.g=0,ut=void 0),ut})}(),$(ot,Promise.all([P,O,z]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return f=o.filter(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s}).map(function(ut){return t.locateFile(ut.url,t.T)}),importScripts.apply(null,dt(f)),w=t,$(ot,createMediapipeSolutionsWasm(Module),6);case 6:w.h=ot.h,t.l=new OffscreenCanvas(1,1),t.h.canvas=t.l,T=t.h.GL.createContext(t.l,{antialias:!1,alpha:!1,ga:typeof WebGL2RenderingContext!="undefined"?2:1}),t.h.GL.makeContextCurrent(T),ot.g=4;break;case 7:if(t.l=document.createElement("canvas"),nt=t.l.getContext("webgl2",{}),!nt&&(nt=t.l.getContext("webgl",{}),!nt))return alert("Failed to create WebGL canvas context when passing video frame."),ot.return();t.F=nt,t.h.canvas=t.l,t.h.createContext(t.l,!0,!0,{});case 4:t.i=new t.h.SolutionWasm,t.S=!1,ot.g=0}})}function wt(t){var o,s,f,w,T,x,k,O;return ft(function(P){if(P.g==1){if(t.g.graph&&t.g.graph.url&&t.R===t.g.graph.url)return P.return();if(t.o=!0,!t.g.graph||!t.g.graph.url){P.g=2;return}return t.R=t.g.graph.url,$(P,g(t,t.g.graph.url),3)}for(P.g!=2&&(o=P.h,t.i.loadGraph(o)),s=U(Object.keys(t.C)),f=s.next();!f.done;f=s.next())w=f.value,t.i.overrideFile(w,t.C[w]);if(t.C={},t.g.listeners)for(T=U(t.g.listeners),x=T.next();!x.done;x=T.next())k=x.value,N(t,k);O=t.j,t.j={},t.setOptions(O),P.g=0})}S.reset=function(){var t=this;return ft(function(o){t.i&&(t.i.reset(),t.m={},t.s={}),o.g=0})},S.setOptions=function(t,o){var s=this;if(o=o||this.g.options){for(var f=[],w=[],T={},x=U(Object.keys(t)),k=x.next();!k.done;T={L:T.L,M:T.M},k=x.next()){var O=k.value;O in this.j&&this.j[O]===t[O]||(this.j[O]=t[O],k=o[O],k!==void 0&&(k.onChange&&(T.L=k.onChange,T.M=t[O],f.push(function(P){return function(){var z;return ft(function(nt){if(nt.g==1)return $(nt,P.L(P.M),2);z=nt.h,z===!0&&(s.o=!0),nt.g=0})}}(T))),k.graphOptionXref&&(O={valueNumber:k.type===1?t[O]:0,valueBoolean:k.type===0?t[O]:!1,valueString:k.type===2?t[O]:""},k=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),k.graphOptionXref),O),w.push(k))))}(f.length!==0||w.length!==0)&&(this.o=!0,this.B=(this.B===void 0?[]:this.B).concat(w),this.A=(this.A===void 0?[]:this.A).concat(f))}};function i(t){var o,s,f,w,T,x,k;return ft(function(O){switch(O.g){case 1:if(!t.o)return O.return();if(!t.A){O.g=2;break}o=U(t.A),s=o.next();case 3:if(s.done){O.g=5;break}return f=s.value,$(O,f(),4);case 4:s=o.next(),O.g=3;break;case 5:t.A=void 0;case 2:if(t.B){for(w=new t.h.GraphOptionChangeRequestList,T=U(t.B),x=T.next();!x.done;x=T.next())k=x.value,w.push_back(k);t.i.changeOptions(w),w.delete(),t.B=void 0}t.o=!1,O.g=0}})}S.initialize=function(){var t=this;return ft(function(o){return o.g==1?$(o,Xt(t),2):o.g!=3?$(o,wt(t),3):$(o,i(t),0)})};function g(t,o){var s,f;return ft(function(w){return o in t.G?w.return(t.G[o]):(s=t.locateFile(o,""),f=fetch(s).then(function(T){return T.arrayBuffer()}),t.G[o]=f,w.return(f))})}S.overrideFile=function(t,o){this.i?this.i.overrideFile(t,o):this.C[t]=o},S.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},S.send=function(t,o){var s=this,f,w,T,x,k,O,P,z,nt;return ft(function(ot){switch(ot.g){case 1:return s.g.inputs?(f=1e3*(o==null?performance.now():o),$(ot,s.D,2)):ot.return();case 2:return $(ot,s.initialize(),3);case 3:for(w=new s.h.PacketDataList,T=U(Object.keys(t)),x=T.next();!x.done;x=T.next())if(k=x.value,O=s.g.inputs[k]){t:{var ut=t[k];switch(O.type){case"video":var ht=s.m[O.stream];if(ht||(ht=new J(s.h,s.F),s.m[O.stream]=ht),ht.l===0&&(ht.l=ht.h.createTexture()),typeof HTMLVideoElement!="undefined"&&ut instanceof HTMLVideoElement)var at=ut.videoWidth,Et=ut.videoHeight;else typeof HTMLImageElement!="undefined"&&ut instanceof HTMLImageElement?(at=ut.naturalWidth,Et=ut.naturalHeight):(at=ut.width,Et=ut.height);Et={glName:ht.l,width:at,height:Et},at=ht.g,at.canvas.width=Et.width,at.canvas.height=Et.height,at.activeTexture(at.TEXTURE0),ht.h.bindTexture2d(ht.l),at.texImage2D(at.TEXTURE_2D,0,at.RGBA,at.RGBA,at.UNSIGNED_BYTE,ut),ht.h.bindTexture2d(0),ht=Et;break t;case"detections":for(ht=s.m[O.stream],ht||(ht=new lt(s.h),s.m[O.stream]=ht),ht.data||(ht.data=new ht.g.DetectionListData),ht.data.reset(ut.length),Et=0;Et<ut.length;++Et){at=ut[Et];var _t=ht.data,Bt=_t.setBoundingBox,we=Et,ln=at.U,Ge=new Wt;if(Rt(Ge,1,ln.aa),Rt(Ge,2,ln.ba),Rt(Ge,3,ln.height),Rt(Ge,4,ln.width),Rt(Ge,5,ln.rotation),Rt(Ge,6,ln.Z),ln=rn(Ge,Tt),Bt.call(_t,we,ln),at.P)for(_t=0;_t<at.P.length;++_t){Ge=at.P[_t];var Gn=!!Ge.visibility;Bt=ht.data,we=Bt.addNormalizedLandmark,ln=Et,Ge=Object.assign(Object.assign({},Ge),{visibility:Gn?Ge.visibility:0}),Gn=new tt,Rt(Gn,1,Ge.x),Rt(Gn,2,Ge.y),Rt(Gn,3,Ge.z),Ge.visibility&&Rt(Gn,4,Ge.visibility),Ge=rn(Gn,mt),we.call(Bt,ln,Ge)}if(at.N)for(_t=0;_t<at.N.length;++_t)Bt=ht.data,we=Bt.addClassification,ln=Et,Ge=at.N[_t],Gn=new b,Rt(Gn,2,Ge.$),Ge.index&&Rt(Gn,1,Ge.index),Ge.label&&Rt(Gn,3,Ge.label),Ge.displayName&&Rt(Gn,4,Ge.displayName),Ge=rn(Gn,Y),we.call(Bt,ln,Ge)}ht=ht.data;break t;default:ht={}}}switch(P=ht,z=O.stream,O.type){case"video":w.pushTexture2d(Object.assign(Object.assign({},P),{stream:z,timestamp:f}));break;case"detections":nt=P,nt.stream=z,nt.timestamp=f,w.pushDetectionList(nt);break;default:throw Error("Unknown input config type: '"+O.type+"'")}}return s.i.send(w),$(ot,s.D,4);case 4:w.delete(),ot.g=0}})};function R(t,o,s){var f,w,T,x,k,O,P,z,nt,ot,ut,ht,at,Et;return ft(function(_t){switch(_t.g){case 1:if(!s)return _t.return(o);for(f={},w=0,T=U(Object.keys(s)),x=T.next();!x.done;x=T.next())k=x.value,O=s[k],typeof O!="string"&&O.type==="texture"&&o[O.stream]!==void 0&&++w;1<w&&(t.H=!1),P=U(Object.keys(s)),x=P.next();case 2:if(x.done){_t.g=4;break}if(z=x.value,nt=s[z],typeof nt=="string")return at=f,Et=z,$(_t,W(t,z,o[nt]),14);if(ot=o[nt.stream],nt.type==="detection_list"){if(ot){for(var Bt=ot.getRectList(),we=ot.getLandmarksList(),ln=ot.getClassificationsList(),Ge=[],Gn=0;Gn<Bt.size();++Gn){var Pn=hn(Bt.get(Gn),Wt,Zt);Pn={U:{aa:Jt(Pn,1),ba:Jt(Pn,2),height:Jt(Pn,3),width:Jt(Pn,4),rotation:Jt(Pn,5,0),Z:Ee(Pn,6)},P:Ve(hn(we.get(Gn),It,Gt),tt,1).map(H),N:E(hn(ln.get(Gn),_,et))},Ge.push(Pn)}Bt=Ge}else Bt=[];f[z]=Bt,_t.g=7;break}if(nt.type==="proto_list"){if(ot){for(Bt=Array(ot.size()),we=0;we<ot.size();we++)Bt[we]=ot.get(we);ot.delete()}else Bt=[];f[z]=Bt,_t.g=7;break}if(ot===void 0){_t.g=3;break}if(nt.type==="float_list"){f[z]=ot,_t.g=7;break}if(nt.type==="proto"){f[z]=ot,_t.g=7;break}if(nt.type!=="texture")throw Error("Unknown output config type: '"+nt.type+"'");return ut=t.s[z],ut||(ut=new J(t.h,t.F),t.s[z]=ut),$(_t,q(ut,ot,t.H),13);case 13:ht=_t.h,f[z]=ht;case 7:nt.transform&&f[z]&&(f[z]=nt.transform(f[z])),_t.g=3;break;case 14:at[Et]=_t.h;case 3:x=P.next(),_t.g=2;break;case 4:return _t.return(f)}})}function W(t,o,s){var f;return ft(function(w){return typeof s=="number"||s instanceof Uint8Array||s instanceof t.h.Uint8BlobList?w.return(s):s instanceof t.h.Texture2dDataOut?(f=t.s[o],f||(f=new J(t.h,t.F),t.s[o]=f),w.return(q(f,s,t.H))):w.return(void 0)})}function N(t,o){for(var s=o.name||"$",f=[].concat(dt(o.wants)),w=new t.h.StringList,T=U(o.wants),x=T.next();!x.done;x=T.next())w.push_back(x.value);T=t.h.PacketListener.implement({onResults:function(k){for(var O={},P=0;P<o.wants.length;++P)O[f[P]]=k.get(P);var z=t.listeners[s];z&&(t.D=R(t,O,o.outs).then(function(nt){nt=z(nt);for(var ot=0;ot<o.wants.length;++ot){var ut=O[f[ot]];typeof ut=="object"&&ut.hasOwnProperty&&ut.hasOwnProperty("delete")&&ut.delete()}nt&&(t.D=nt)}))}}),t.i.attachMultiListener(w,T),w.delete()}S.onResults=function(t,o){this.listeners[o||"$"]=t},Vt("Solution",vt),Vt("OptionType",{BOOL:0,NUMBER:1,ca:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(t){var o=Ee(t,1),s=Oe(t,c,3);return s={x:Jt(s,1),y:Jt(s,2),depth:Jt(s,3)},t=Oe(t,m,2),{id:o,point2d:s,point3d:{x:Jt(t,1),y:Jt(t,2),z:Jt(t,3)}}}function l(t){var o=hn(t,r,y);t=[],o=Ve(o,C,2);for(var s=0;s<o.length;s++)t.push({id:Ee(o[s],1),keypoints:Ve(o[s],j,2).map(n),visibility:Jt(o[s],3),scale:Fe(o[s],6),translation:Fe(o[s],5),rotation:Fe(o[s],4)});return t}function p(t){switch(t){case"Camera":return"object_detection_3d_camera.tflite";case"Chair":return"object_detection_3d_chair.tflite";case"Cup":return"object_detection_3d_cup.tflite";default:return"object_detection_3d_sneakers.tflite"}}function e(t){switch(t){case"Camera":return"Camera";case"Chair":return"Chair";case"Cup":return"Coffee cup, Mug";default:return"Footwear"}}var u={focalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_x"}},focalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_y"}},principalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_x"}},principalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_y"}},allowedLabels:{type:2,graphOptionXref:{calculatorName:"ConstantSidePacketCalculatorAllowedLabels",calculatorType:"ConstantSidePacketCalculator",fieldName:"string_value"}}};function a(t){var o=this;t=t||{},this.g=new vt({locateFile:t.locateFile,files:[{url:"objectron_solution_packed_assets_loader.js"},{simd:!1,url:"objectron_solution_wasm_bin.js"},{simd:!0,url:"objectron_solution_simd_wasm_bin.js"}],graph:{url:"objectron.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["lifted_objects","image_transformed"],outs:{image:"image_transformed",objectDetections:{type:"proto",stream:"lifted_objects",transform:l}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,default:!1,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumObjects:{type:1,default:5,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorMaxNumObjects",fieldName:"int_value"}},staticImageMode:{type:0,default:!0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"objectrongpusubgraph__ConstantSidePacketCalculator",fieldName:"bool_value"}},minDetectionConfidence:{type:1,default:.5,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"objectrongpusubgraph__objectdetectionoidv4subgraph__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,default:.99,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"objectrongpusubgraph__boxlandmarksubgraph__ThresholdingCalculator",fieldName:"threshold"}},modelName:{default:"Shoe",onChange:function(s){var f,w,T,x;return ft(function(k){return k.g==1?(f=s,o.g.setOptions({allowedLabels:e(f)},u),w=p(f),T="object_detection_3d.tflite",$(k,g(o.g,w),2)):(x=k.h,o.g.overrideFile(T,x),k.return(!0))})}},focalLength:{default:[1,1],onChange:function(s){var f;return ft(function(w){return f=s,o.h=f,o.g.setOptions({focalX:f[0],focalY:f[1]},u),w.return(!0)})}},principalPoint:{default:[0,0],onChange:function(s){var f;return ft(function(w){return f=s,o.i=f,o.g.setOptions({principalX:f[0],principalY:f[1]},u),w.return(!0)})}},imageSize:{onChange:function(s){var f,w,T,x;return ft(function(k){if(o.h===void 0||o.i===void 0)return console.error('"focalLength" and "principalPoint" must be set if setting image size'),k.return();f=s,w=[f[0]/2,f[1]/2],T=[o.h[0]/w[0],o.h[1]/w[1]],x=[o.i[0]/w[0],o.i[1]/w[1]],o.setOptions({focalLength:T,principalPoint:x}),k.g=0})}}}})}S=a.prototype,S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(t){this.g.onResults(t)},S.initialize=function(){var t=this;return ft(function(o){return $(o,t.g.initialize(),0)})},S.reset=function(){this.g.reset()},S.send=function(t){var o=this;return ft(function(s){return $(s,o.g.send(t),0)})},S.setOptions=function(t){this.g.setOptions(t)},Vt("Objectron",a),Vt("BOX_CONNECTIONS",[[1,2],[2,4],[4,3],[3,1],[5,6],[6,8],[8,7],[7,5],[1,5],[2,6],[3,7],[4,8]]),Vt("BOX_KEYPOINTS",{CENTER:0,BACK_BOTTOM_LEFT:1,FRONT_BOTTOM_LEFT:2,BACK_TOP_LEFT:3,FRONT_TOP_LEFT:4,BACK_BOTTOM_RIGHT:5,FRONT_BOTTOM_RIGHT:6,BACK_TOP_RIGHT:7,FRONT_TOP_RIGHT:8}),Vt("VERSION","0.4.1636596145")}).call(Tr);const Ir={};(function(){var S;function v(r){var y=0;return function(){return y<r.length?{done:!1,value:r[y++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(r,y,X){return r==Array.prototype||r==Object.prototype||(r[y]=X.value),r};function L(r){r=[typeof globalThis=="object"&&globalThis,r,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var y=0;y<r.length;++y){var X=r[y];if(X&&X.Math==Math)return X}throw Error("Cannot find global object")}var I=L(this);function A(r,y){if(y)t:{var X=I;r=r.split(".");for(var V=0;V<r.length-1;V++){var E=r[V];if(!(E in X))break t;X=X[E]}r=r[r.length-1],V=X[r],y=y(V),y!=V&&y!=null&&G(X,r,{configurable:!0,writable:!0,value:y})}}A("Symbol",function(r){function y(H){if(this instanceof y)throw new TypeError("Symbol is not a constructor");return new X(V+(H||"")+"_"+E++,H)}function X(H,J){this.g=H,G(this,"description",{configurable:!0,writable:!0,value:J})}if(r)return r;X.prototype.toString=function(){return this.g};var V="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",E=0;return y}),A("Symbol.iterator",function(r){if(r)return r;r=Symbol("Symbol.iterator");for(var y="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),X=0;X<y.length;X++){var V=I[y[X]];typeof V=="function"&&typeof V.prototype[r]!="function"&&G(V.prototype,r,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return r});function Q(r){return r={next:r},r[Symbol.iterator]=function(){return this},r}function U(r){var y=typeof Symbol!="undefined"&&Symbol.iterator&&r[Symbol.iterator];return y?y.call(r):{next:v(r)}}function dt(r){if(!(r instanceof Array)){r=U(r);for(var y,X=[];!(y=r.next()).done;)X.push(y.value);r=X}return r}var _e=typeof Object.create=="function"?Object.create:function(r){function y(){}return y.prototype=r,new y},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var Ct;t:{var qe={a:!0},he={};try{he.__proto__=qe,Ct=he.a;break t}catch{}Ct=!1}ct=Ct?function(r,y){if(r.__proto__=y,r.__proto__!==y)throw new TypeError(r+" is not extensible");return r}:null}var je=ct;function Ft(r,y){if(r.prototype=_e(y.prototype),r.prototype.constructor=r,je)je(r,y);else for(var X in y)if(X!="prototype")if(Object.defineProperties){var V=Object.getOwnPropertyDescriptor(y,X);V&&Object.defineProperty(r,X,V)}else r[X]=y[X];r.ea=y.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function de(r){if(r.l)throw new TypeError("Generator is already running");r.l=!0}ue.prototype.o=function(r){this.h=r};function fe(r,y){r.j={U:y,V:!0},r.g=r.m||r.s}ue.prototype.return=function(r){this.j={return:r},this.g=this.s};function $(r,y,X){return r.g=X,{value:y}}function In(r){this.g=new ue,this.h=r}function jn(r,y){de(r.g);var X=r.g.i;return X?Ce(r,"return"in X?X.return:function(V){return{value:V,done:!0}},y,r.g.return):(r.g.return(y),ee(r))}function Ce(r,y,X,V){try{var E=y.call(r.g.i,X);if(!(E instanceof Object))throw new TypeError("Iterator result "+E+" is not an object");if(!E.done)return r.g.l=!1,E;var H=E.value}catch(J){return r.g.i=null,fe(r.g,J),ee(r)}return r.g.i=null,V.call(r.g,H),ee(r)}function ee(r){for(;r.g.g;)try{var y=r.h(r.g);if(y)return r.g.l=!1,{value:y.value,done:!1}}catch(X){r.g.h=void 0,fe(r.g,X)}if(r.g.l=!1,r.g.j){if(y=r.g.j,r.g.j=null,y.V)throw y.U;return{value:y.return,done:!0}}return{value:void 0,done:!0}}function Cn(r){this.next=function(y){return de(r.g),r.g.i?y=Ce(r,r.g.i.next,y,r.g.o):(r.g.o(y),y=ee(r)),y},this.throw=function(y){return de(r.g),r.g.i?y=Ce(r,r.g.i.throw,y,r.g.o):(fe(r.g,y),y=ee(r)),y},this.return=function(y){return jn(r,y)},this[Symbol.iterator]=function(){return this}}function te(r){function y(V){return r.next(V)}function X(V){return r.throw(V)}return new Promise(function(V,E){function H(J){J.done?V(J.value):Promise.resolve(J.value).then(y,X).then(H,E)}H(r.next())})}function ft(r){return te(new Cn(new In(r)))}A("Promise",function(r){function y(J){this.h=0,this.i=void 0,this.g=[],this.o=!1;var q=this.j();try{J(q.resolve,q.reject)}catch(M){q.reject(M)}}function X(){this.g=null}function V(J){return J instanceof y?J:new y(function(q){q(J)})}if(r)return r;X.prototype.h=function(J){if(this.g==null){this.g=[];var q=this;this.i(function(){q.l()})}this.g.push(J)};var E=I.setTimeout;X.prototype.i=function(J){E(J,0)},X.prototype.l=function(){for(;this.g&&this.g.length;){var J=this.g;this.g=[];for(var q=0;q<J.length;++q){var M=J[q];J[q]=null;try{M()}catch(lt){this.j(lt)}}}this.g=null},X.prototype.j=function(J){this.i(function(){throw J})},y.prototype.j=function(){function J(lt){return function(pt){M||(M=!0,lt.call(q,pt))}}var q=this,M=!1;return{resolve:J(this.C),reject:J(this.l)}},y.prototype.C=function(J){if(J===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(J instanceof y)this.F(J);else{t:switch(typeof J){case"object":var q=J!=null;break t;case"function":q=!0;break t;default:q=!1}q?this.v(J):this.m(J)}},y.prototype.v=function(J){var q=void 0;try{q=J.then}catch(M){this.l(M);return}typeof q=="function"?this.G(q,J):this.m(J)},y.prototype.l=function(J){this.s(2,J)},y.prototype.m=function(J){this.s(1,J)},y.prototype.s=function(J,q){if(this.h!=0)throw Error("Cannot settle("+J+", "+q+"): Promise already settled in state"+this.h);this.h=J,this.i=q,this.h===2&&this.D(),this.A()},y.prototype.D=function(){var J=this;E(function(){if(J.B()){var q=I.console;typeof q!="undefined"&&q.error(J.i)}},1)},y.prototype.B=function(){if(this.o)return!1;var J=I.CustomEvent,q=I.Event,M=I.dispatchEvent;return typeof M=="undefined"?!0:(typeof J=="function"?J=new J("unhandledrejection",{cancelable:!0}):typeof q=="function"?J=new q("unhandledrejection",{cancelable:!0}):(J=I.document.createEvent("CustomEvent"),J.initCustomEvent("unhandledrejection",!1,!0,J)),J.promise=this,J.reason=this.i,M(J))},y.prototype.A=function(){if(this.g!=null){for(var J=0;J<this.g.length;++J)H.h(this.g[J]);this.g=null}};var H=new X;return y.prototype.F=function(J){var q=this.j();J.J(q.resolve,q.reject)},y.prototype.G=function(J,q){var M=this.j();try{J.call(q,M.resolve,M.reject)}catch(lt){M.reject(lt)}},y.prototype.then=function(J,q){function M(yt,it){return typeof yt=="function"?function(gt){try{lt(yt(gt))}catch(vt){pt(vt)}}:it}var lt,pt,xt=new y(function(yt,it){lt=yt,pt=it});return this.J(M(J,lt),M(q,pt)),xt},y.prototype.catch=function(J){return this.then(void 0,J)},y.prototype.J=function(J,q){function M(){switch(lt.h){case 1:J(lt.i);break;case 2:q(lt.i);break;default:throw Error("Unexpected state: "+lt.h)}}var lt=this;this.g==null?H.h(M):this.g.push(M),this.o=!0},y.resolve=V,y.reject=function(J){return new y(function(q,M){M(J)})},y.race=function(J){return new y(function(q,M){for(var lt=U(J),pt=lt.next();!pt.done;pt=lt.next())V(pt.value).J(q,M)})},y.all=function(J){var q=U(J),M=q.next();return M.done?V([]):new y(function(lt,pt){function xt(gt){return function(vt){yt[gt]=vt,it--,it==0&<(yt)}}var yt=[],it=0;do yt.push(void 0),it++,V(M.value).J(xt(yt.length-1),pt),M=q.next();while(!M.done)})},y});function Hn(r,y){r instanceof String&&(r+="");var X=0,V=!1,E={next:function(){if(!V&&X<r.length){var H=X++;return{value:y(H,r[H]),done:!1}}return V=!0,{done:!0,value:void 0}}};return E[Symbol.iterator]=function(){return E},E}var Un=typeof Object.assign=="function"?Object.assign:function(r,y){for(var X=1;X<arguments.length;X++){var V=arguments[X];if(V)for(var E in V)Object.prototype.hasOwnProperty.call(V,E)&&(r[E]=V[E])}return r};A("Object.assign",function(r){return r||Un}),A("Object.is",function(r){return r||function(y,X){return y===X?y!==0||1/y===1/X:y!==y&&X!==X}}),A("Array.prototype.includes",function(r){return r||function(y,X){var V=this;V instanceof String&&(V=String(V));var E=V.length;for(X=X||0,0>X&&(X=Math.max(X+E,0));X<E;X++){var H=V[X];if(H===y||Object.is(H,y))return!0}return!1}}),A("String.prototype.includes",function(r){return r||function(y,X){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(y instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(y,X||0)!==-1}}),A("Array.prototype.keys",function(r){return r||function(){return Hn(this,function(y){return y})}});var ye=this||self;function Vt(r,y){r=r.split(".");var X=ye;r[0]in X||typeof X.execScript=="undefined"||X.execScript("var "+r[0]);for(var V;r.length&&(V=r.shift());)r.length||y===void 0?X[V]&&X[V]!==Object.prototype[V]?X=X[V]:X=X[V]={}:X[V]=y}function We(r){ye.setTimeout(function(){throw r},0)}function tn(r){We(r)}function dn(r,y){tn(Error("Invalid wire type: "+r+" (at position "+y+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function Zn(r,y){return y=String.fromCharCode.apply(null,y),r==null?y:r+y}var xn,en=typeof TextDecoder!="undefined",un,Ln=typeof TextEncoder!="undefined";function Sn(r){if(Ln)r=(un||(un=new TextEncoder)).encode(r);else{var y=void 0;y=y===void 0?!1:y;for(var X=0,V=new Uint8Array(3*r.length),E=0;E<r.length;E++){var H=r.charCodeAt(E);if(128>H)V[X++]=H;else{if(2048>H)V[X++]=H>>6|192;else{if(55296<=H&&57343>=H){if(56319>=H&&E<r.length){var J=r.charCodeAt(++E);if(56320<=J&&57343>=J){H=1024*(H-55296)+J-56320+65536,V[X++]=H>>18|240,V[X++]=H>>12&63|128,V[X++]=H>>6&63|128,V[X++]=H&63|128;continue}else E--}if(y)throw Error("Found an unpaired surrogate");H=65533}V[X++]=H>>12|224,V[X++]=H>>6&63|128}V[X++]=H&63|128}}r=V.subarray(0,X)}return r}var pn={},nn=null;function Xn(r){var y;y===void 0&&(y=0),ve(),y=pn[y];for(var X=Array(Math.floor(r.length/3)),V=y[64]||"",E=0,H=0;E<r.length-2;E+=3){var J=r[E],q=r[E+1],M=r[E+2],lt=y[J>>2];J=y[(J&3)<<4|q>>4],q=y[(q&15)<<2|M>>6],M=y[M&63],X[H++]=lt+J+q+M}switch(lt=0,M=V,r.length-E){case 2:lt=r[E+1],M=y[(lt&15)<<2]||V;case 1:r=r[E],X[H]=y[r>>2]+y[(r&3)<<4|lt>>4]+M+V}return X.join("")}function gn(r){var y=r.length,X=3*y/4;X%3?X=Math.floor(X):"=.".indexOf(r[y-1])!=-1&&(X="=.".indexOf(r[y-2])!=-1?X-2:X-1);var V=new Uint8Array(X),E=0;return ce(r,function(H){V[E++]=H}),V.subarray(0,E)}function ce(r,y){function X(M){for(;V<r.length;){var lt=r.charAt(V++),pt=nn[lt];if(pt!=null)return pt;if(!/^[\s\xa0]*$/.test(lt))throw Error("Unknown base64 encoding at char: "+lt)}return M}ve();for(var V=0;;){var E=X(-1),H=X(0),J=X(64),q=X(64);if(q===64&&E===-1)break;y(E<<2|H>>4),J!=64&&(y(H<<4&240|J>>2),q!=64&&y(J<<6&192|q))}}function ve(){if(!nn){nn={};for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),y=["+/=","+/","-_=","-_.","-_"],X=0;5>X;X++){var V=r.concat(y[X].split(""));pn[X]=V;for(var E=0;E<V.length;E++){var H=V[E];nn[H]===void 0&&(nn[H]=E)}}}}var Be=typeof Uint8Array=="function",le;function ae(r){if(this.g=r,r!==null&&r.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var r="";else r=this.g,r=this.g=r==null||typeof r=="string"?r:Be&&r instanceof Uint8Array?Xn(r):null;return r};var Me=typeof Uint8Array.prototype.slice=="function";function xe(r,y,X){return y===X?le||(le=new Uint8Array(0)):Me?r.slice(y,X):new Uint8Array(r.subarray(y,X))}var Ut=0,re=0;function Se(r){if(r.constructor===Uint8Array)return r;if(r.constructor===ArrayBuffer)return new Uint8Array(r);if(r.constructor===Array)return new Uint8Array(r);if(r.constructor===String)return gn(r);if(r.constructor===ae){if(r.g==null)var y=le||(le=new Uint8Array(0));else{y=Uint8Array;var X=r.g;X=X==null||Be&&X!=null&&X instanceof Uint8Array?X:typeof X=="string"?gn(X):null,r=r.g=X,y=new y(r)}return y}if(r instanceof Uint8Array)return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Lt(r,y){y=y===void 0?{}:y,y=y.u===void 0?!1:y.u,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.u=y,r&&pe(this,r)}function pe(r,y){r.h=Se(y),r.l=0,r.i=r.h.length,r.g=r.l}Lt.prototype.reset=function(){this.g=this.l};function At(r){r.g>r.i&&(r.j=!0,tn(Error("Tried to read past the end of the data "+r.g+" > "+r.i)))}function ne(r){var y=r.h,X=y[r.g],V=X&127;return 128>X?(r.g+=1,At(r),V):(X=y[r.g+1],V|=(X&127)<<7,128>X?(r.g+=2,At(r),V):(X=y[r.g+2],V|=(X&127)<<14,128>X?(r.g+=3,At(r),V):(X=y[r.g+3],V|=(X&127)<<21,128>X?(r.g+=4,At(r),V):(X=y[r.g+4],V|=(X&15)<<28,128>X?(r.g+=5,At(r),V>>>0):(r.g+=5,128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]?(r.j=!0,Wn(),V):(At(r),V))))))}var Xe=[];function Pe(){this.g=new Uint8Array(64),this.h=0}function se(r,y){if(!(r.h+1<r.g.length)){var X=r.g;r.g=new Uint8Array(Math.ceil(1+2*r.g.length)),r.g.set(X)}r.g[r.h++]=y}Pe.prototype.length=function(){return this.h},Pe.prototype.end=function(){var r=this.g,y=this.h;return this.h=0,xe(r,0,y)};function Yt(r,y){for(;127<y;)se(r,y&127|128),y>>>=7;se(r,y)}function Le(r){var y={},X=y.N===void 0?!1:y.N;this.m={u:y.u===void 0?!1:y.u},this.N=X,y=this.m,Xe.length?(X=Xe.pop(),y&&(X.u=y.u),r&&pe(X,r),r=X):r=new Lt(r,y),this.g=r,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Le.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function He(r){var y=r.g;if((y=y.g==y.i)||(y=r.j)||(y=r.g,y=y.j||0>y.g||y.g>y.i),y)return!1;r.l=r.g.g;var X=ne(r.g);return y=X>>>3,X&=7,0<=X&&5>=X?(r.i=y,r.h=X,!0):(r.j=!0,dn(X,r.l),!1)}function ge(r){switch(r.h){case 0:if(r.h!=0)ge(r);else t:{r=r.g;for(var y=r.g,X=0;10>X;X++){if((r.h[y]&128)===0){r.g=y+1,At(r);break t}y++}r.j=!0,Wn()}break;case 1:r=r.g,r.g+=8,At(r);break;case 2:r.h!=2?ge(r):(y=ne(r.g),r=r.g,r.g+=y,At(r));break;case 5:r=r.g,r.g+=4,At(r);break;case 3:y=r.i;do{if(!He(r)){r.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(r.h==4){r.i!=y&&(r.j=!0,tn(Error("Unmatched end-group tag")));break}ge(r)}while(1);break;default:r.j=!0,dn(r.h,r.l)}}function wn(r,y,X){r.N||(r=xe(r.g.h,X,r.g.g),(X=y.m)?X.push(r):y.m=[r])}var Qe=[];function sn(){this.h=[],this.i=0,this.g=new Pe}function cn(r,y){y.length!==0&&(r.h.push(y),r.i+=y.length)}function ie(r,y,X){Yt(r.g,8*y+2),Yt(r.g,X.length),cn(r,r.g.end()),cn(r,X)}var Re=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function oe(r,y){Object.isFrozen(r)||(Re?r[Re]|=y:r.g!==void 0?r.g|=y:Object.defineProperties(r,{g:{value:y,configurable:!0,writable:!0,enumerable:!1}}))}function zt(r){if(!r)return 0;var y;return Re?y=r[Re]:y=r.g,y==null?0:y}function Ue(r){return Array.isArray(r)&&oe(r,1),r}function Ot(r){if(!Array.isArray(r))throw Error("cannot mark non-array as immutable");oe(r,2)}function kt(r){return r!==null&&typeof r=="object"&&r.constructor===Object}function mn(r){switch(typeof r){case"number":return isFinite(r)?r:String(r);case"object":return Be&&r!=null&&r instanceof Uint8Array?Xn(r):r;default:return r}}function $t(r,y){if(r!=null)return Array.isArray(r)||kt(r)?St(r,y):y(r)}function St(r,y){if(Array.isArray(r)){for(var X=Array(r.length),V=0;V<r.length;V++)X[V]=$t(r[V],y);return zt(r)&1&&Ue(X),X}X={};for(V in r)X[V]=$t(r[V],y);return X}var bt;function Mt(r,y,X){var V=bt;bt=null,r||(r=V),V=this.constructor.ca,r||(r=V?[V]:[]),this.j=(V?0:-1)-(this.constructor.aa||0),this.i=null,this.g=r;t:{if(V=this.g.length,r=V-1,V&&(V=this.g[r],kt(V))){this.l=r-this.j,this.h=V;break t}y!==void 0&&-1<y?(this.l=Math.max(y,r+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(X)for(y=0;y<X.length;y++)r=X[y],r<this.l?(r+=this.j,(V=this.g[r])?Ue(V):this.g[r]=Ie):(Kt(this),(V=this.h[r])?Ue(V):this.h[r]=Ie)}var Ie=Object.freeze(Ue([]));function Kt(r){var y=r.l+r.j;r.g[y]||(r.h=r.g[y]={})}function Qt(r,y,X){return y===-1?null:(X===void 0?0:X)||y>=r.l?r.h?r.h[y]:void 0:r.g[y+r.j]}function Fe(r,y,X){X=X===void 0?!0:X;var V=V===void 0?!1:V,E=Qt(r,y,V);return E==null&&(E=Ie),E===Ie?(E=Ue([]),Rt(r,y,E,V)):X&&Array.isArray(E)&&zt(E)&2&&(E=E.slice(),Rt(r,y,E,V)),E}function Jt(r,y,X){return r=Qt(r,y),r=r==null?r:+r,r==null?X===void 0?0:X:r}function Rt(r,y,X,V){(V===void 0?0:V)||y>=r.l?(Kt(r),r.h[y]=X):r.g[y+r.j]=X}function Ae(r,y,X){r.i||(r.i={});var V=r.i[X];if(!V){var E=Fe(r,X,!1);V=[];for(var H=Array.isArray(E)?!!(zt(E)&2):!1,J=0;J<E.length;J++)V[J]=new y(E[J]),H&&Ot(V[J].g);H&&(Ot(V),Object.freeze(V)),r.i[X]=V}return V}function Oe(r,y,X,V,E){var H=Ae(r,V,y);X=X||new V,r=Fe(r,y),E!=null?(H.splice(E,0,X),r.splice(E,0,Ve(X))):(H.push(X),r.push(Ve(X)))}Mt.prototype.toJSON=function(){var r=Ve(this);return St(r,mn)};function Ve(r){if(r.i)for(var y in r.i){var X=r.i[y];if(Array.isArray(X))for(var V=0;V<X.length;V++)X[V]&&Ve(X[V]);else X&&Ve(X)}return r.g}Mt.prototype.toString=function(){return Ve(this).toString()};function Ht(r,y){return r=Qt(r,y),r==null?0:r}function Ee(r,y){return r=Qt(r,y),r==null?"":r}function an(r,y){if(r=r.m){cn(y,y.g.end());for(var X=0;X<r.length;X++)cn(y,r[X])}}function De(r){var y=r[0];switch(r.length){case 2:var X=r[1];return function(M,lt,pt){return y(M,lt,pt,X)};case 3:var V=r[1],E=r[2];return function(M,lt,pt){return y(M,lt,pt,V,E)};case 4:var H=r[1],J=r[2],q=r[3];return function(M,lt,pt){return y(M,lt,pt,H,J,q)};default:throw Error("unsupported number of parameters, expected [2-4], got "+r.length)}}function Ne(r,y,X){for(;He(y)&&y.h!=4;){var V=y.i,E=X[V];if(E){if(Array.isArray(E)&&(E=X[V]=De(E)),!E(y,r,V)){V=y,E=r;var H=V.l;ge(V),wn(V,E,H)}}else V=y,E=r,H=V.l,ge(V),wn(V,E,H)}return r}function ze(r,y){var X=new sn;if(y(r,X),r=X.i+X.g.length(),r===0)X=new Uint8Array(0);else{r=new Uint8Array(r);for(var V=X.h,E=V.length,H=y=0;H<E;H++){var J=V[H];J.length!==0&&(r.set(J,y),y+=J.length)}V=X.g,E=V.h,E!==0&&(r.set(V.g.subarray(0,E),y),V.h=0),X.h=[r],X=r}return X}function $e(r,y,X){if(Qe.length){var V=Qe.pop();r&&(pe(V.g,r),V.i=-1,V.h=-1),r=V}else r=new Le(r);try{return X(new y,r)}finally{y=r.g,y.h=null,y.l=0,y.i=0,y.g=0,y.j=!1,y.u=!1,r.i=-1,r.h=-1,r.j=!1,100>Qe.length&&Qe.push(r)}}function me(r,y,X){if(y=Qt(y,X),y!=null){Yt(r.g,8*X+5),r=r.g;var V=y;V=(X=0>V?1:0)?-V:V,V===0?0<1/V?Ut=re=0:(re=0,Ut=2147483648):isNaN(V)?(re=0,Ut=2147483647):34028234663852886e22<V?(re=0,Ut=(X<<31|2139095040)>>>0):11754943508222875e-54>V?(V=Math.round(V/Math.pow(2,-149)),re=0,Ut=(X<<31|V)>>>0):(y=Math.floor(Math.log(V)/Math.LN2),V*=Math.pow(2,-y),V=Math.round(8388608*V),16777216<=V&&++y,re=0,Ut=(X<<31|y+127<<23|V&8388607)>>>0),X=Ut,se(r,X>>>0&255),se(r,X>>>8&255),se(r,X>>>16&255),se(r,X>>>24&255)}}function Ye(r,y,X){if(r.h!==5)return!1;r=r.g;var V=r.h[r.g],E=r.h[r.g+1],H=r.h[r.g+2],J=r.h[r.g+3];return r.g+=4,At(r),E=(V<<0|E<<8|H<<16|J<<24)>>>0,r=2*(E>>31)+1,V=E>>>23&255,E&=8388607,Rt(y,X,V==255?E?NaN:1/0*r:V==0?r*Math.pow(2,-149)*E:r*Math.pow(2,V-150)*(E+Math.pow(2,23))),!0}function En(r,y,X){if(r.h!==0)return!1;for(var V=r.g,E=128,H=0,J=r=0;4>J&&128<=E;J++)E=V.h[V.g++],H|=(E&127)<<7*J;if(128<=E&&(E=V.h[V.g++],H|=(E&127)<<28,r|=(E&127)>>4),128<=E)for(J=0;5>J&&128<=E;J++)E=V.h[V.g++],r|=(E&127)<<7*J+3;return 128>E?(V=H>>>0,E=r>>>0,(r=E&2147483648)&&(V=~V+1>>>0,E=~E>>>0,V==0&&(E=E+1>>>0)),V=4294967296*E+(V>>>0),r=r?-V:V):(V.j=!0,Wn(),r=void 0),Rt(y,X,r),!0}function ke(r,y,X){return r.h!==0?!1:(Rt(y,X,ne(r.g)),!0)}function be(r,y,X){if(r.h!==2)return!1;var V=ne(r.g);r=r.g;var E=r.g;r.g+=V,At(r),r=r.h;var H;if(en)(H=xn)||(H=xn=new TextDecoder("utf-8",{fatal:!1})),H=H.decode(r.subarray(E,E+V));else{V=E+V;for(var J=[],q=null,M,lt,pt;E<V;)M=r[E++],128>M?J.push(M):224>M?E>=V?J.push(65533):(lt=r[E++],194>M||(lt&192)!==128?(E--,J.push(65533)):J.push((M&31)<<6|lt&63)):240>M?E>=V-1?J.push(65533):(lt=r[E++],(lt&192)!==128||M===224&&160>lt||M===237&&160<=lt||((H=r[E++])&192)!==128?(E--,J.push(65533)):J.push((M&15)<<12|(lt&63)<<6|H&63)):244>=M?E>=V-2?J.push(65533):(lt=r[E++],(lt&192)!==128||(M<<28)+(lt-144)>>30!==0||((H=r[E++])&192)!==128||((pt=r[E++])&192)!==128?(E--,J.push(65533)):(M=(M&7)<<18|(lt&63)<<12|(H&63)<<6|pt&63,M-=65536,J.push((M>>10&1023)+55296,(M&1023)+56320))):J.push(65533),8192<=J.length&&(q=Zn(q,J),J.length=0);H=Zn(q,J)}return Rt(y,X,H),!0}function rn(r,y,X,V,E){if(r.h!==2)return!1;var H=new V,J=r.g.i,q=ne(r.g),M=r.g.g+q;if(r.g.i=M,E(H,r),E=M-r.g.g,E!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(q+" bytes, instead read "+(q-E)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return r.g.g=M,r.g.i=J,Oe(y,X,H,V,void 0),!0}function hn(r){Mt.call(this,r)}var Te;Ft(hn,Mt);function Vn(r,y){var X=Qt(r,1);if(X!=null&&X!=null){Yt(y.g,8);var V=y.g;if(0<=X)Yt(V,X);else{for(var E=0;9>E;E++)se(V,X&127|128),X>>=7;se(V,1)}}me(y,r,2),V=Qt(r,3),V!=null&&ie(y,3,Sn(V)),V=Qt(r,4),V!=null&&ie(y,4,Sn(V)),an(r,y)}function Je(r,y){return Ne(r,y,Te||(Te={1:ke,2:Ye,3:be,4:be}))}function on(r){Mt.call(this,r,-1,Ke)}var yn;Ft(on,Mt),on.prototype.addClassification=function(r,y){return Oe(this,1,r,hn,y),this};function Fn(r,y){return Ne(r,y,yn||(yn={1:[rn,hn,Je]}))}var Ke=[1];function vn(r){Mt.call(this,r)}var Yn;Ft(vn,Mt);function kn(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5),an(r,y)}function bn(r,y){return Ne(r,y,Yn||(Yn={1:Ye,2:Ye,3:Ye,4:Ye,5:Ye}))}function Rn(r){Mt.call(this,r,-1,Z)}var h;Ft(Rn,Mt);function b(r,y){return Ne(r,y,h||(h={1:[rn,vn,bn]}))}var Z=[1];function Y(r){Mt.call(this,r)}var _;Ft(Y,Mt);function et(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5);var X=Qt(r,6);if(X!=null&&X!=null){Yt(y.g,48);var V=y.g,E=X;X=0>E,E=Math.abs(E);var H=E>>>0;for(E=Math.floor((E-H)/4294967296),E>>>=0,X&&(E=~E>>>0,H=(~H>>>0)+1,4294967295<H&&(H=0,E++,4294967295<E&&(E=0))),Ut=H,re=E,X=Ut,H=re;0<H||127<X;)se(V,X&127|128),X=(X>>>7|H<<25)>>>0,H>>>=7;se(V,X)}an(r,y)}function K(r,y){return Ne(r,y,_||(_={1:Ye,2:Ye,3:Ye,4:Ye,5:Ye,6:En}))}function tt(r,y,X){if(X=r.createShader(X===0?r.VERTEX_SHADER:r.FRAGMENT_SHADER),r.shaderSource(X,y),r.compileShader(X),!r.getShaderParameter(X,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
107
106
|
|
|
108
|
-
`+r.getShaderInfoLog(
|
|
107
|
+
`+r.getShaderInfoLog(X));return X}function st(r){return Ae(r,hn,1).map(function(y){return{index:Ht(y,1),X:Jt(y,2),label:Qt(y,3)!=null?Ee(y,3):void 0,displayName:Qt(y,4)!=null?Ee(y,4):void 0}})}function mt(r){return{x:Jt(r,1),y:Jt(r,2),z:Jt(r,3),visibility:Qt(r,4)!=null?Jt(r,4):void 0}}function It(r){return Ae($e(r,Rn,b),vn,1).map(mt)}function Gt(r,y){this.h=r,this.g=y,this.l=0}function jt(r,y,X){return Wt(r,y),typeof r.g.canvas.transferToImageBitmap=="function"?Promise.resolve(r.g.canvas.transferToImageBitmap()):X?Promise.resolve(r.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(r.g.canvas):(r.i===void 0&&(r.i=document.createElement("canvas")),new Promise(function(V){r.i.height=r.g.canvas.height,r.i.width=r.g.canvas.width,r.i.getContext("2d",{}).drawImage(r.g.canvas,0,0,r.g.canvas.width,r.g.canvas.height),V(r.i)}))}function Wt(r,y){var X=r.g;if(r.m===void 0){var V=tt(X,`
|
|
109
108
|
attribute vec2 aVertex;
|
|
110
109
|
attribute vec2 aTex;
|
|
111
110
|
varying vec2 vTex;
|
|
112
111
|
void main(void) {
|
|
113
112
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
114
113
|
vTex = aTex;
|
|
115
|
-
}`,0),E=tt(
|
|
114
|
+
}`,0),E=tt(X,`
|
|
116
115
|
precision mediump float;
|
|
117
116
|
varying vec2 vTex;
|
|
118
117
|
uniform sampler2D sampler0;
|
|
119
118
|
void main(){
|
|
120
119
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
121
|
-
}`,1),
|
|
120
|
+
}`,1),H=X.createProgram();if(X.attachShader(H,V),X.attachShader(H,E),X.linkProgram(H),!X.getProgramParameter(H,X.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
122
121
|
|
|
123
|
-
`+G.getProgramInfoLog(J));S=r.m=J,G.useProgram(S),E=G.getUniformLocation(S,"sampler0"),r.j={I:G.getAttribLocation(S,"aVertex"),H:G.getAttribLocation(S,"aTex"),da:E},r.s=G.createBuffer(),G.bindBuffer(G.ARRAY_BUFFER,r.s),G.enableVertexAttribArray(r.j.I),G.vertexAttribPointer(r.j.I,2,G.FLOAT,!1,0,0),G.bufferData(G.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),G.STATIC_DRAW),G.bindBuffer(G.ARRAY_BUFFER,null),r.o=G.createBuffer(),G.bindBuffer(G.ARRAY_BUFFER,r.o),G.enableVertexAttribArray(r.j.H),G.vertexAttribPointer(r.j.H,2,G.FLOAT,!1,0,0),G.bufferData(G.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),G.STATIC_DRAW),G.bindBuffer(G.ARRAY_BUFFER,null),G.uniform1i(E,0)}S=r.j,G.useProgram(r.m),G.canvas.width=y.width,G.canvas.height=y.height,G.viewport(0,0,y.width,y.height),G.activeTexture(G.TEXTURE0),r.h.bindTexture2d(y.glName),G.enableVertexAttribArray(S.I),G.bindBuffer(G.ARRAY_BUFFER,r.s),G.vertexAttribPointer(S.I,2,G.FLOAT,!1,0,0),G.enableVertexAttribArray(S.H),G.bindBuffer(G.ARRAY_BUFFER,r.o),G.vertexAttribPointer(S.H,2,G.FLOAT,!1,0,0),G.bindFramebuffer(G.DRAW_FRAMEBUFFER?G.DRAW_FRAMEBUFFER:G.FRAMEBUFFER,null),G.clearColor(0,0,0,0),G.clear(G.COLOR_BUFFER_BIT),G.colorMask(!0,!0,!0,!0),G.drawArrays(G.TRIANGLE_FAN,0,4),G.disableVertexAttribArray(S.I),G.disableVertexAttribArray(S.H),G.bindBuffer(G.ARRAY_BUFFER,null),r.h.bindTexture2d(0)}function Zt(r){this.g=r}var Tt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Nt(r,y){return y+r}function Bt(r,y){window[r]=y}function Dt(r){var y=document.createElement("script");return y.setAttribute("src",r),y.setAttribute("crossorigin","anonymous"),new Promise(function(G){y.addEventListener("load",function(){G()},!1),y.addEventListener("error",function(){G()},!1),document.body.appendChild(y)})}function qt(){return ht(function(r){switch(r.g){case 1:return r.m=2,$(r,WebAssembly.instantiate(Tt),4);case 4:r.g=3,r.m=0;break;case 2:return r.m=0,r.j=null,r.return(!1);case 3:return r.return(!0)}})}function Ze(r){if(this.g=r,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=r&&r.locateFile||Nt,typeof window=="object")var y=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")y=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=y,r.options){y=C(Object.keys(r.options));for(var G=y.next();!G.done;G=y.next()){G=G.value;var S=r.options[G].default;S!==void 0&&(this.j[G]=typeof S=="function"?S():S)}}}V=Ze.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function c(r){var y,G,S,E,J,k,q,z,lt,pt,Ft;return ht(function(yt){switch(yt.g){case 1:return r.R?(y=r.g.files===void 0?[]:typeof r.g.files=="function"?r.g.files(r.j):r.g.files,$(yt,qt(),2)):yt.return();case 2:if(G=yt.h,typeof window=="object")return Bt("createMediapipeSolutionsWasm",{locateFile:r.locateFile}),Bt("createMediapipeSolutionsPackedAssets",{locateFile:r.locateFile}),k=y.filter(function(it){return it.data!==void 0}),q=y.filter(function(it){return it.data===void 0}),z=Promise.all(k.map(function(it){var gt=x(r,it.url);if(it.path!==void 0){var vt=it.path;gt=gt.then(function(Gt){return r.overrideFile(vt,Gt),Promise.resolve(Gt)})}return gt})),lt=Promise.all(q.map(function(it){return it.simd===void 0||it.simd&&G||!it.simd&&!G?Dt(r.locateFile(it.url,r.S)):Promise.resolve()})).then(function(){var it,gt,vt;return ht(function(Gt){if(Gt.g==1)return it=window.createMediapipeSolutionsWasm,gt=window.createMediapipeSolutionsPackedAssets,vt=r,$(Gt,it(gt),2);vt.h=Gt.h,Gt.g=0})}),pt=function(){return ht(function(it){return r.g.graph&&r.g.graph.url?it=$(it,x(r,r.g.graph.url),0):(it.g=0,it=void 0),it})}(),$(yt,Promise.all([lt,z,pt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return S=y.filter(function(it){return it.simd===void 0||it.simd&&G||!it.simd&&!G}).map(function(it){return r.locateFile(it.url,r.S)}),importScripts.apply(null,dt(S)),E=r,$(yt,createMediapipeSolutionsWasm(Module),6);case 6:E.h=yt.h,r.l=new OffscreenCanvas(1,1),r.h.canvas=r.l,J=r.h.GL.createContext(r.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),r.h.GL.makeContextCurrent(J),yt.g=4;break;case 7:if(r.l=document.createElement("canvas"),Ft=r.l.getContext("webgl2",{}),!Ft&&(Ft=r.l.getContext("webgl",{}),!Ft))return alert("Failed to create WebGL canvas context when passing video frame."),yt.return();r.D=Ft,r.h.canvas=r.l,r.h.createContext(r.l,!0,!0,{});case 4:r.i=new r.h.SolutionWasm,r.R=!1,yt.g=0}})}function d(r){var y,G,S,E,J,k,q,z;return ht(function(lt){if(lt.g==1){if(r.g.graph&&r.g.graph.url&&r.P===r.g.graph.url)return lt.return();if(r.o=!0,!r.g.graph||!r.g.graph.url){lt.g=2;return}return r.P=r.g.graph.url,$(lt,x(r,r.g.graph.url),3)}for(lt.g!=2&&(y=lt.h,r.i.loadGraph(y)),G=C(Object.keys(r.B)),S=G.next();!S.done;S=G.next())E=S.value,r.i.overrideFile(E,r.B[E]);if(r.B={},r.g.listeners)for(J=C(r.g.listeners),k=J.next();!k.done;k=J.next())q=k.value,H(r,q);z=r.j,r.j={},r.setOptions(z),lt.g=0})}V.reset=function(){var r=this;return ht(function(y){r.i&&(r.i.reset(),r.m={},r.s={}),y.g=0})},V.setOptions=function(r,y){var G=this;if(y=y||this.g.options){for(var S=[],E=[],J={},k=C(Object.keys(r)),q=k.next();!q.done;J={K:J.K,L:J.L},q=k.next()){var z=q.value;z in this.j&&this.j[z]===r[z]||(this.j[z]=r[z],q=y[z],q!==void 0&&(q.onChange&&(J.K=q.onChange,J.L=r[z],S.push(function(lt){return function(){var pt;return ht(function(Ft){if(Ft.g==1)return $(Ft,lt.K(lt.L),2);pt=Ft.h,pt===!0&&(G.o=!0),Ft.g=0})}}(J))),q.graphOptionXref&&(z={valueNumber:q.type===1?r[z]:0,valueBoolean:q.type===0?r[z]:!1,valueString:q.type===2?r[z]:""},q=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),q.graphOptionXref),z),E.push(q))))}(S.length!==0||E.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(E),this.v=(this.v===void 0?[]:this.v).concat(S))}};function m(r){var y,G,S,E,J,k,q;return ht(function(z){switch(z.g){case 1:if(!r.o)return z.return();if(!r.v){z.g=2;break}y=C(r.v),G=y.next();case 3:if(G.done){z.g=5;break}return S=G.value,$(z,S(),4);case 4:G=y.next(),z.g=3;break;case 5:r.v=void 0;case 2:if(r.A){for(E=new r.h.GraphOptionChangeRequestList,J=C(r.A),k=J.next();!k.done;k=J.next())q=k.value,E.push_back(q);r.i.changeOptions(E),E.delete(),r.A=void 0}r.o=!1,z.g=0}})}V.initialize=function(){var r=this;return ht(function(y){return y.g==1?$(y,c(r),2):y.g!=3?$(y,d(r),3):$(y,m(r),0)})};function x(r,y){var G,S;return ht(function(E){return y in r.F?E.return(r.F[y]):(G=r.locateFile(y,""),S=fetch(G).then(function(J){return J.arrayBuffer()}),r.F[y]=S,E.return(S))})}V.overrideFile=function(r,y){this.i?this.i.overrideFile(r,y):this.B[r]=y},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(r,y){var G=this,S,E,J,k,q,z,lt,pt,Ft;return ht(function(yt){switch(yt.g){case 1:return G.g.inputs?(S=1e3*(y==null?performance.now():y),$(yt,G.C,2)):yt.return();case 2:return $(yt,G.initialize(),3);case 3:for(E=new G.h.PacketDataList,J=C(Object.keys(r)),k=J.next();!k.done;k=J.next())if(q=k.value,z=G.g.inputs[q]){t:{var it=r[q];switch(z.type){case"video":var gt=G.m[z.stream];if(gt||(gt=new wt(G.h,G.D),G.m[z.stream]=gt),gt.l===0&&(gt.l=gt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&it instanceof HTMLVideoElement)var vt=it.videoWidth,Gt=it.videoHeight;else typeof HTMLImageElement!="undefined"&&it instanceof HTMLImageElement?(vt=it.naturalWidth,Gt=it.naturalHeight):(vt=it.width,Gt=it.height);Gt={glName:gt.l,width:vt,height:Gt},vt=gt.g,vt.canvas.width=Gt.width,vt.canvas.height=Gt.height,vt.activeTexture(vt.TEXTURE0),gt.h.bindTexture2d(gt.l),vt.texImage2D(vt.TEXTURE_2D,0,vt.RGBA,vt.RGBA,vt.UNSIGNED_BYTE,it),gt.h.bindTexture2d(0),gt=Gt;break t;case"detections":for(gt=G.m[z.stream],gt||(gt=new Zt(G.h),G.m[z.stream]=gt),gt.data||(gt.data=new gt.g.DetectionListData),gt.data.reset(it.length),Gt=0;Gt<it.length;++Gt){vt=it[Gt];var Rt=gt.data,i=Rt.setBoundingBox,g=Gt,X=vt.T,w=new U;if(Xt(w,1,X.Y),Xt(w,2,X.Z),Xt(w,3,X.height),Xt(w,4,X.width),Xt(w,5,X.rotation),Xt(w,6,X.W),X=Me(w,et),i.call(Rt,g,X),vt.O)for(Rt=0;Rt<vt.O.length;++Rt){w=vt.O[Rt];var N=!!w.visibility;i=gt.data,g=i.addNormalizedLandmark,X=Gt,w=Object.assign(Object.assign({},w),{visibility:N?w.visibility:0}),N=new yn,Xt(N,1,w.x),Xt(N,2,w.y),Xt(N,3,w.z),w.visibility&&Xt(N,4,w.visibility),w=Me(N,Yn),g.call(i,X,w)}if(vt.M)for(Rt=0;Rt<vt.M.length;++Rt)i=gt.data,g=i.addClassification,X=Gt,w=vt.M[Rt],N=new fn,Xt(N,2,w.X),w.index&&Xt(N,1,w.index),w.label&&Xt(N,3,w.label),w.displayName&&Xt(N,4,w.displayName),w=Me(N,Sn),g.call(i,X,w)}gt=gt.data;break t;default:gt={}}}switch(lt=gt,pt=z.stream,z.type){case"video":E.pushTexture2d(Object.assign(Object.assign({},lt),{stream:pt,timestamp:S}));break;case"detections":Ft=lt,Ft.stream=pt,Ft.timestamp=S,E.pushDetectionList(Ft);break;default:throw Error("Unknown input config type: '"+z.type+"'")}}return G.i.send(E),$(yt,G.C,4);case 4:E.delete(),yt.g=0}})};function j(r,y,G){var S,E,J,k,q,z,lt,pt,Ft,yt,it,gt,vt,Gt;return ht(function(Rt){switch(Rt.g){case 1:if(!G)return Rt.return(y);for(S={},E=0,J=C(Object.keys(G)),k=J.next();!k.done;k=J.next())q=k.value,z=G[q],typeof z!="string"&&z.type==="texture"&&y[z.stream]!==void 0&&++E;1<E&&(r.G=!1),lt=C(Object.keys(G)),k=lt.next();case 2:if(k.done){Rt.g=4;break}if(pt=k.value,Ft=G[pt],typeof Ft=="string")return vt=S,Gt=pt,$(Rt,P(r,pt,y[Ft]),14);if(yt=y[Ft.stream],Ft.type==="detection_list"){if(yt){for(var i=yt.getRectList(),g=yt.getLandmarksList(),X=yt.getClassificationsList(),w=[],N=0;N<i.size();++N){var n=$e(i.get(N),U,O);n={T:{Y:kt(n,1),Z:kt(n,2),height:kt(n,3),width:kt(n,4),rotation:kt(n,5,0),W:Jt(n,6)},O:It(g.get(N)),M:st($e(X.get(N),on,xn))},w.push(n)}i=w}else i=[];S[pt]=i,Rt.g=7;break}if(Ft.type==="proto_list"){if(yt){for(i=Array(yt.size()),g=0;g<yt.size();g++)i[g]=yt.get(g);yt.delete()}else i=[];S[pt]=i,Rt.g=7;break}if(yt===void 0){Rt.g=3;break}if(Ft.type==="float_list"){S[pt]=yt,Rt.g=7;break}if(Ft.type==="proto"){S[pt]=yt,Rt.g=7;break}if(Ft.type!=="texture")throw Error("Unknown output config type: '"+Ft.type+"'");return it=r.s[pt],it||(it=new wt(r.h,r.D),r.s[pt]=it),$(Rt,jt(it,yt,r.G),13);case 13:gt=Rt.h,S[pt]=gt;case 7:Ft.transform&&S[pt]&&(S[pt]=Ft.transform(S[pt])),Rt.g=3;break;case 14:vt[Gt]=Rt.h;case 3:k=lt.next(),Rt.g=2;break;case 4:return Rt.return(S)}})}function P(r,y,G){var S;return ht(function(E){return typeof G=="number"||G instanceof Uint8Array||G instanceof r.h.Uint8BlobList?E.return(G):G instanceof r.h.Texture2dDataOut?(S=r.s[y],S||(S=new wt(r.h,r.D),r.s[y]=S),E.return(jt(S,G,r.G))):E.return(void 0)})}function H(r,y){for(var G=y.name||"$",S=[].concat(dt(y.wants)),E=new r.h.StringList,J=C(y.wants),k=J.next();!k.done;k=J.next())E.push_back(k.value);J=r.h.PacketListener.implement({onResults:function(q){for(var z={},lt=0;lt<y.wants.length;++lt)z[S[lt]]=q.get(lt);var pt=r.listeners[G];pt&&(r.C=j(r,z,y.outs).then(function(Ft){Ft=pt(Ft);for(var yt=0;yt<y.wants.length;++yt){var it=z[S[yt]];typeof it=="object"&&it.hasOwnProperty&&it.hasOwnProperty("delete")&&it.delete()}Ft&&(r.C=Ft)}))}}),r.i.attachMultiListener(E,J),E.delete()}V.onResults=function(r,y){this.listeners[y||"$"]=r},St("Solution",Ze),St("OptionType",{BOOL:0,NUMBER:1,$:2,0:"BOOL",1:"NUMBER",2:"STRING"});function D(r){switch(r===void 0&&(r=0),r){case 1:return"pose_landmark_full.tflite";case 2:return"pose_landmark_heavy.tflite";default:return"pose_landmark_lite.tflite"}}function rt(r){var y=this;r=r||{},this.g=new Ze({locateFile:r.locateFile,files:function(G){return[{url:"pose_solution_packed_assets_loader.js"},{simd:!1,url:"pose_solution_wasm_bin.js"},{simd:!0,url:"pose_solution_simd_wasm_bin.js"},{data:!0,url:D(G.modelComplexity)}]},graph:{url:"pose_web.binarypb"},listeners:[{wants:["pose_landmarks","world_landmarks","segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:It},poseWorldLandmarks:{type:"proto",stream:"world_landmarks",transform:It},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(G){var S,E,J;return ht(function(k){return k.g==1?(S=D(G),E="third_party/mediapipe/modules/pose_landmark/"+S,$(k,x(y.g,S),2)):(J=k.h,y.g.overrideFile(E,J),k.return(!0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}}}})}V=rt.prototype,V.reset=function(){this.g.reset()},V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(r){this.g.onResults(r)},V.initialize=function(){var r=this;return ht(function(y){return $(y,r.g.initialize(),0)})},V.send=function(r,y){var G=this;return ht(function(S){return $(S,G.g.send(r,y),0)})},V.setOptions=function(r){this.g.setOptions(r)},St("Pose",rt),St("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),St("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),St("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),St("VERSION","0.5.1635988162")}).call(Er);const Bn=class{constructor(){this.mediapipeMap_=new Map}getVersion(V){switch(V){case"face_detection":return Fr.VERSION;case"face_mesh":return xr.VERSION;case"hands":return Tr.VERSION;case"holistic":return Ir.VERSION;case"objectron":return Lr.VERSION;case"selfie_segmentation":return Sr.VERSION;case"pose":return Er.VERSION;default:return""}}initialize(V){return new Promise(async(v,W)=>{if(V.mediaPipeModelConfigArray.length==0){W("no model was selected");return}for(let L=0;L<V.mediaPipeModelConfigArray.length;L++){const F=V.mediaPipeModelConfigArray[L];if(this.mediapipeMap_.has(F.modelType)){W("setting same type is not supported");return}if(typeof F.listener!="function"){W(`[${F.modelType}] ResultsListener must be provided`);return}let A;switch(F.modelType){case"face_mesh":A=new xr.FaceMesh({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"face_mesh/"+this.getVersion("face_mesh"))+"/"+Q});break;case"face_detection":A=new Fr.FaceDetection({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"face_detection/"+this.getVersion("face_detection"))+"/"+Q});break;case"hands":A=new Tr.Hands({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"hands/"+this.getVersion("hands"))+"/"+Q});break;case"holistic":A=new Ir.Holistic({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"holistic/"+this.getVersion("holistic"))+"/"+Q});break;case"objectron":A=new Lr.Objectron({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"objectron/"+this.getVersion("objectron"))+"/"+Q});break;case"selfie_segmentation":A=new Sr.SelfieSegmentation({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"selfie_segmentation/"+this.getVersion("selfie_segmentation"))+"/"+Q});break;case"pose":A=new Er.Pose({locateFile:(Q,C)=>(F.assetsUri||Bn.defaultAssetsBaseUrl+"pose/"+this.getVersion("pose"))+"/"+Q});break;default:W("unknown model type");return}A.onResults(F.listener),F.options&&A.setOptions(F.options);try{await A.initialize(),this.mediapipeMap_.set(F.modelType,A)}catch(Q){W(Q);return}}v()})}close(V){return new Promise((v,W)=>{let L=[];if(V){let F=this.mediapipeMap_.get(V);if(F)this.mediapipeMap_.delete(V),L.push(F.close());else{W("model not exit");return}}else{for(const[F,A]of this.mediapipeMap_.entries())L.push(A.close());this.mediapipeMap_.clear()}Promise.all(L).then(()=>{v()}).catch(F=>{W(F)})})}send(V,v){return new Promise((W,L)=>{let F=[];if(v){let A=this.mediapipeMap_.get(v);if(A)F.push(A.send({image:V}));else{L("model not exit");return}}else for(const[A,Q]of this.mediapipeMap_.entries())F.push(Q.send({image:V}));Promise.all(F).then(()=>{W()}).catch(A=>{L(A)})})}reset(V){if(V){let v=this.mediapipeMap_.get(V);v&&typeof v.reset=="function"&&v.reset()}else for(const[v,W]of this.mediapipeMap_.entries())W&&typeof W.reset=="function"&&W.reset()}};let $r=Bn;$r.defaultAssetsBaseUrl="https://d3opqjmqzxf057.cloudfront.net/ml/mediapipe/";class Ui{static createVideoReadable(v){return new Promise((W,L)=>{const F=document.createElement("video");let A=new AbortController,Q=new AbortController;F.addEventListener("canplay",()=>{A.abort(),F.muted=!0,F.loop=!0,F.play().then(()=>{try{const C=F.captureStream(),dt=new MediaStreamTrackProcessor(C.getVideoTracks()[0]);W(dt.readable)}catch(C){L(C)}})},{once:!0,signal:Q.signal}),F.addEventListener("error",C=>{Q.abort(),L("loading error:"+C)},{once:!0,signal:A.signal}),F.src=v})}static createImageCanvas(v){return new Promise((W,L)=>{var F=new Image;F.onload=function(){createImageBitmap(F).then(A=>{F.remove(),W(A)}).catch(A=>{L(A)})},F.onerror=function(A){L(A)},F.src=v})}}class t2 extends Ni{constructor(){super(),this.worker_=new $o,this.trackExpectedRate_=-1,this.workerInited_=!1,this.mediapipeHelper_=new $r,this.innerEmitty_=new Ni,this.worker_.addEventListener("message",v=>{if(v.data instanceof ImageBitmap)this.mediapipeHelper_.send(v.data).then(()=>{v.data.close()}).catch(W=>{let L={error:W,eventMetaData:{transformerIndex:-1},function:"transform"};this.emit("error",L)});else{let W=JSON.parse(v.data);if(W.callbackType==="success"||W.callbackType==="error")W.message==="init"?this.innerEmitty_.emit("initResults",v.data):W.message==="transform"?this.innerEmitty_.emit("transformResults",v.data):W.message==="destroy"?this.innerEmitty_.emit("destroyResults",v.data):W.message==="setBackgroundOptions"?this.innerEmitty_.emit("setBackgroundOptionsResults",v.data):W.message==="setVideoBGReadable"?this.innerEmitty_.emit("setVideoBGReadableResults",v.data):W.message==="setVirtualBGImage"&&this.innerEmitty_.emit("setVirtualBGImageResults",v.data);else if(W.callbackType==="media_processor_error_event")this.emit("error",W.message);else if(W.callbackType==="media_processor_warn_event")this.emit("warn",W.message);else if(W.callbackType==="media_processor_pipeline_event"){this.emit("pipelineInfo",W.message);let L=W.message;(L.message==="pipeline_ended"||L.message==="pipeline_ended_with_error")&&this.mediapipeHelper_.close().finally(()=>{this.worker_&&(this.cleanInnerEmitty(),this.worker_.terminate(),this.workerInited_=!1,this.worker_=void 0)})}}})}cleanInnerEmitty(){let v="Worker ended";this.innerEmitty_.listenerCount("initResults")&&this.innerEmitty_.emit("initResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("destroyResults")&&this.innerEmitty_.emit("destroyResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setBackgroundOptionsResults")&&this.innerEmitty_.emit("setBackgroundOptionsResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVideoBGReadableResults")&&this.innerEmitty_.emit("setVideoBGReadableResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVirtualBGImageResults")&&this.innerEmitty_.emit("setVirtualBGImageResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("transformResults")&&this.innerEmitty_.emit("transformResults",JSON.stringify({error:v}))}init(v){return new Promise((W,L)=>{if(!this.worker_){L("worker is off");return}let F={modelSelection:1,selfieMode:!1};this.mediapipeHelper_.initialize({mediaPipeModelConfigArray:[{assetsUri:v.mediapipeBaseAssetsUri,modelType:"selfie_segmentation",options:F,listener:A=>{let Q=A;this.worker_&&this.worker_.postMessage(Q.segmentationMask,[Q.segmentationMask])}}]}).then(()=>{let A=JSON.stringify(Bo());if(typeof A!="string"&&(A=JSON.stringify({})),!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"init",metaData:A}),this.innerEmitty_.once("initResults").then(Q=>{let C=JSON.parse(Q);C.callbackType==="success"?(this.workerInited_=!0,this.trackExpectedRate_!=-1&&this.postTrackExpectedRate(),this.setBackgroundOptions(v).then(()=>{W()}).catch(dt=>{L(dt)})):L(C.error)}).catch(Q=>{L(Q)})}).catch(A=>{L(A)})})}transform(v,W){return new Promise(async(L,F)=>{if(!this.worker_){F("worker is off");return}this.worker_.postMessage({operation:"transform",readable:v,writable:W},[v,W]),this.innerEmitty_.once("transformResults").then(A=>{let Q=JSON.parse(A);Q.callbackType==="success"?L():F(Q.error)}).catch(A=>{F(A)})})}destroy(){return new Promise(async(v,W)=>{if(!this.worker_){v();return}this.worker_.postMessage({operation:"destroy"}),this.innerEmitty_.once("destroyResults").then(L=>{let F=JSON.parse(L);F.callbackType==="success"?this.mediapipeHelper_.close().then(()=>{v()}).catch(A=>{W(A)}):W(F.error)}).catch(L=>{W(L)})})}setTrackExpectedRate(v){this.trackExpectedRate_=v,this.postTrackExpectedRate()}postTrackExpectedRate(){this.workerInited_&&this.worker_.postMessage({operation:"setTrackExpectedRate",rate:this.trackExpectedRate_})}setBackgroundOptions(v){return new Promise((W,L)=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setBackgroundOptions",backgroundOptions:JSON.stringify(v)}),this.innerEmitty_.once("setBackgroundOptionsResults").then(F=>{let A=JSON.parse(F);A.callbackType==="success"?v.transformerType==="VideoBackground"?Ui.createVideoReadable(v.backgroundAssetUri).then(Q=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setVideoBGReadable",readable:Q},[Q]),this.innerEmitty_.once("setVideoBGReadableResults").then(C=>{let dt=JSON.parse(C);dt.callbackType==="success"?W():L(dt.error)}).catch(C=>{L(C)})}).catch(Q=>{L(Q)}):v.transformerType==="VirtualBackground"?Ui.createImageCanvas(v.backgroundAssetUri).then(Q=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setVirtualBGImage",image:Q},[Q]),this.innerEmitty_.once("setVirtualBGImageResults").then(C=>{let dt=JSON.parse(C);dt.callbackType==="success"?W():L(dt.error)}).catch(C=>{L(C)})}).catch(Q=>{L(Q)}):W():L(A.error)}).catch(F=>{L(F)})})}}var Yi=(V=>(V.Low="Low",V.High="High",V))(Yi||{});const e2=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function n2(){return new Promise(async(V,v)=>{try{await ir()}catch(W){v(W);return}e2().then(W=>{if(W===!1){v("Your browser does not support WebAssembly features.");return}V()}).catch(W=>{v(W)})})}let Kn,Nr=-1;function r2(){return Kn}function i2(V){Nr=V,typeof Kn!="undefined"&&Kn.setTrackExpectedRate(Nr)}function o2(V){return new Promise(async(v,W)=>{Kn=new t2,Nr!=-1&&Kn.setTrackExpectedRate(Nr),Kn.init(V).then(()=>{const L=new Do(Kn);v(L)}).catch(L=>{W(L)})})}function u2(V){return new Promise((v,W)=>{Kn?Kn.setBackgroundOptions(V).then(()=>{v()}).catch(L=>{W(L)}):W("media processor is not set")})}Xn.BlurRadius=Yi,Xn.MediapipeHelper=$r,Xn.VonageFacedetection=Fr,Xn.VonageFacemash=xr,Xn.VonageHands=Tr,Xn.VonageHolistic=Ir,Xn.VonageObjectron=Lr,Xn.VonagePose=Er,Xn.VonageSelfiesegmentation=Sr,Xn.createVonageMediaProcessorConnector=o2,Xn.getVonageEventEmitter=r2,Xn.isSupported=n2,Xn.setBackgroundOptions=u2,Xn.setTrackExpectedRate=i2,Object.defineProperties(Xn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
122
|
+
`+X.getProgramInfoLog(H));V=r.m=H,X.useProgram(V),E=X.getUniformLocation(V,"sampler0"),r.j={I:X.getAttribLocation(V,"aVertex"),H:X.getAttribLocation(V,"aTex"),da:E},r.s=X.createBuffer(),X.bindBuffer(X.ARRAY_BUFFER,r.s),X.enableVertexAttribArray(r.j.I),X.vertexAttribPointer(r.j.I,2,X.FLOAT,!1,0,0),X.bufferData(X.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),X.STATIC_DRAW),X.bindBuffer(X.ARRAY_BUFFER,null),r.o=X.createBuffer(),X.bindBuffer(X.ARRAY_BUFFER,r.o),X.enableVertexAttribArray(r.j.H),X.vertexAttribPointer(r.j.H,2,X.FLOAT,!1,0,0),X.bufferData(X.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),X.STATIC_DRAW),X.bindBuffer(X.ARRAY_BUFFER,null),X.uniform1i(E,0)}V=r.j,X.useProgram(r.m),X.canvas.width=y.width,X.canvas.height=y.height,X.viewport(0,0,y.width,y.height),X.activeTexture(X.TEXTURE0),r.h.bindTexture2d(y.glName),X.enableVertexAttribArray(V.I),X.bindBuffer(X.ARRAY_BUFFER,r.s),X.vertexAttribPointer(V.I,2,X.FLOAT,!1,0,0),X.enableVertexAttribArray(V.H),X.bindBuffer(X.ARRAY_BUFFER,r.o),X.vertexAttribPointer(V.H,2,X.FLOAT,!1,0,0),X.bindFramebuffer(X.DRAW_FRAMEBUFFER?X.DRAW_FRAMEBUFFER:X.FRAMEBUFFER,null),X.clearColor(0,0,0,0),X.clear(X.COLOR_BUFFER_BIT),X.colorMask(!0,!0,!0,!0),X.drawArrays(X.TRIANGLE_FAN,0,4),X.disableVertexAttribArray(V.I),X.disableVertexAttribArray(V.H),X.bindBuffer(X.ARRAY_BUFFER,null),r.h.bindTexture2d(0)}function Zt(r){this.g=r}var Tt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Nt(r,y){return y+r}function Pt(r,y){window[r]=y}function Dt(r){var y=document.createElement("script");return y.setAttribute("src",r),y.setAttribute("crossorigin","anonymous"),new Promise(function(X){y.addEventListener("load",function(){X()},!1),y.addEventListener("error",function(){X()},!1),document.body.appendChild(y)})}function qt(){return ft(function(r){switch(r.g){case 1:return r.m=2,$(r,WebAssembly.instantiate(Tt),4);case 4:r.g=3,r.m=0;break;case 2:return r.m=0,r.j=null,r.return(!1);case 3:return r.return(!0)}})}function Ze(r){if(this.g=r,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=r&&r.locateFile||Nt,typeof window=="object")var y=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")y=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=y,r.options){y=U(Object.keys(r.options));for(var X=y.next();!X.done;X=y.next()){X=X.value;var V=r.options[X].default;V!==void 0&&(this.j[X]=typeof V=="function"?V():V)}}}S=Ze.prototype,S.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function c(r){var y,X,V,E,H,J,q,M,lt,pt,xt;return ft(function(yt){switch(yt.g){case 1:return r.R?(y=r.g.files===void 0?[]:typeof r.g.files=="function"?r.g.files(r.j):r.g.files,$(yt,qt(),2)):yt.return();case 2:if(X=yt.h,typeof window=="object")return Pt("createMediapipeSolutionsWasm",{locateFile:r.locateFile}),Pt("createMediapipeSolutionsPackedAssets",{locateFile:r.locateFile}),J=y.filter(function(it){return it.data!==void 0}),q=y.filter(function(it){return it.data===void 0}),M=Promise.all(J.map(function(it){var gt=F(r,it.url);if(it.path!==void 0){var vt=it.path;gt=gt.then(function(Xt){return r.overrideFile(vt,Xt),Promise.resolve(Xt)})}return gt})),lt=Promise.all(q.map(function(it){return it.simd===void 0||it.simd&&X||!it.simd&&!X?Dt(r.locateFile(it.url,r.S)):Promise.resolve()})).then(function(){var it,gt,vt;return ft(function(Xt){if(Xt.g==1)return it=window.createMediapipeSolutionsWasm,gt=window.createMediapipeSolutionsPackedAssets,vt=r,$(Xt,it(gt),2);vt.h=Xt.h,Xt.g=0})}),pt=function(){return ft(function(it){return r.g.graph&&r.g.graph.url?it=$(it,F(r,r.g.graph.url),0):(it.g=0,it=void 0),it})}(),$(yt,Promise.all([lt,M,pt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return V=y.filter(function(it){return it.simd===void 0||it.simd&&X||!it.simd&&!X}).map(function(it){return r.locateFile(it.url,r.S)}),importScripts.apply(null,dt(V)),E=r,$(yt,createMediapipeSolutionsWasm(Module),6);case 6:E.h=yt.h,r.l=new OffscreenCanvas(1,1),r.h.canvas=r.l,H=r.h.GL.createContext(r.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),r.h.GL.makeContextCurrent(H),yt.g=4;break;case 7:if(r.l=document.createElement("canvas"),xt=r.l.getContext("webgl2",{}),!xt&&(xt=r.l.getContext("webgl",{}),!xt))return alert("Failed to create WebGL canvas context when passing video frame."),yt.return();r.D=xt,r.h.canvas=r.l,r.h.createContext(r.l,!0,!0,{});case 4:r.i=new r.h.SolutionWasm,r.R=!1,yt.g=0}})}function d(r){var y,X,V,E,H,J,q,M;return ft(function(lt){if(lt.g==1){if(r.g.graph&&r.g.graph.url&&r.P===r.g.graph.url)return lt.return();if(r.o=!0,!r.g.graph||!r.g.graph.url){lt.g=2;return}return r.P=r.g.graph.url,$(lt,F(r,r.g.graph.url),3)}for(lt.g!=2&&(y=lt.h,r.i.loadGraph(y)),X=U(Object.keys(r.B)),V=X.next();!V.done;V=X.next())E=V.value,r.i.overrideFile(E,r.B[E]);if(r.B={},r.g.listeners)for(H=U(r.g.listeners),J=H.next();!J.done;J=H.next())q=J.value,C(r,q);M=r.j,r.j={},r.setOptions(M),lt.g=0})}S.reset=function(){var r=this;return ft(function(y){r.i&&(r.i.reset(),r.m={},r.s={}),y.g=0})},S.setOptions=function(r,y){var X=this;if(y=y||this.g.options){for(var V=[],E=[],H={},J=U(Object.keys(r)),q=J.next();!q.done;H={K:H.K,L:H.L},q=J.next()){var M=q.value;M in this.j&&this.j[M]===r[M]||(this.j[M]=r[M],q=y[M],q!==void 0&&(q.onChange&&(H.K=q.onChange,H.L=r[M],V.push(function(lt){return function(){var pt;return ft(function(xt){if(xt.g==1)return $(xt,lt.K(lt.L),2);pt=xt.h,pt===!0&&(X.o=!0),xt.g=0})}}(H))),q.graphOptionXref&&(M={valueNumber:q.type===1?r[M]:0,valueBoolean:q.type===0?r[M]:!1,valueString:q.type===2?r[M]:""},q=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),q.graphOptionXref),M),E.push(q))))}(V.length!==0||E.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(E),this.v=(this.v===void 0?[]:this.v).concat(V))}};function m(r){var y,X,V,E,H,J,q;return ft(function(M){switch(M.g){case 1:if(!r.o)return M.return();if(!r.v){M.g=2;break}y=U(r.v),X=y.next();case 3:if(X.done){M.g=5;break}return V=X.value,$(M,V(),4);case 4:X=y.next(),M.g=3;break;case 5:r.v=void 0;case 2:if(r.A){for(E=new r.h.GraphOptionChangeRequestList,H=U(r.A),J=H.next();!J.done;J=H.next())q=J.value,E.push_back(q);r.i.changeOptions(E),E.delete(),r.A=void 0}r.o=!1,M.g=0}})}S.initialize=function(){var r=this;return ft(function(y){return y.g==1?$(y,c(r),2):y.g!=3?$(y,d(r),3):$(y,m(r),0)})};function F(r,y){var X,V;return ft(function(E){return y in r.F?E.return(r.F[y]):(X=r.locateFile(y,""),V=fetch(X).then(function(H){return H.arrayBuffer()}),r.F[y]=V,E.return(V))})}S.overrideFile=function(r,y){this.i?this.i.overrideFile(r,y):this.B[r]=y},S.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},S.send=function(r,y){var X=this,V,E,H,J,q,M,lt,pt,xt;return ft(function(yt){switch(yt.g){case 1:return X.g.inputs?(V=1e3*(y==null?performance.now():y),$(yt,X.C,2)):yt.return();case 2:return $(yt,X.initialize(),3);case 3:for(E=new X.h.PacketDataList,H=U(Object.keys(r)),J=H.next();!J.done;J=H.next())if(q=J.value,M=X.g.inputs[q]){t:{var it=r[q];switch(M.type){case"video":var gt=X.m[M.stream];if(gt||(gt=new Gt(X.h,X.D),X.m[M.stream]=gt),gt.l===0&&(gt.l=gt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&it instanceof HTMLVideoElement)var vt=it.videoWidth,Xt=it.videoHeight;else typeof HTMLImageElement!="undefined"&&it instanceof HTMLImageElement?(vt=it.naturalWidth,Xt=it.naturalHeight):(vt=it.width,Xt=it.height);Xt={glName:gt.l,width:vt,height:Xt},vt=gt.g,vt.canvas.width=Xt.width,vt.canvas.height=Xt.height,vt.activeTexture(vt.TEXTURE0),gt.h.bindTexture2d(gt.l),vt.texImage2D(vt.TEXTURE_2D,0,vt.RGBA,vt.RGBA,vt.UNSIGNED_BYTE,it),gt.h.bindTexture2d(0),gt=Xt;break t;case"detections":for(gt=X.m[M.stream],gt||(gt=new Zt(X.h),X.m[M.stream]=gt),gt.data||(gt.data=new gt.g.DetectionListData),gt.data.reset(it.length),Xt=0;Xt<it.length;++Xt){vt=it[Xt];var wt=gt.data,i=wt.setBoundingBox,g=Xt,R=vt.T,W=new Y;if(Rt(W,1,R.Y),Rt(W,2,R.Z),Rt(W,3,R.height),Rt(W,4,R.width),Rt(W,5,R.rotation),Rt(W,6,R.W),R=ze(W,et),i.call(wt,g,R),vt.O)for(wt=0;wt<vt.O.length;++wt){W=vt.O[wt];var N=!!W.visibility;i=gt.data,g=i.addNormalizedLandmark,R=Xt,W=Object.assign(Object.assign({},W),{visibility:N?W.visibility:0}),N=new vn,Rt(N,1,W.x),Rt(N,2,W.y),Rt(N,3,W.z),W.visibility&&Rt(N,4,W.visibility),W=ze(N,kn),g.call(i,R,W)}if(vt.M)for(wt=0;wt<vt.M.length;++wt)i=gt.data,g=i.addClassification,R=Xt,W=vt.M[wt],N=new hn,Rt(N,2,W.X),W.index&&Rt(N,1,W.index),W.label&&Rt(N,3,W.label),W.displayName&&Rt(N,4,W.displayName),W=ze(N,Vn),g.call(i,R,W)}gt=gt.data;break t;default:gt={}}}switch(lt=gt,pt=M.stream,M.type){case"video":E.pushTexture2d(Object.assign(Object.assign({},lt),{stream:pt,timestamp:V}));break;case"detections":xt=lt,xt.stream=pt,xt.timestamp=V,E.pushDetectionList(xt);break;default:throw Error("Unknown input config type: '"+M.type+"'")}}return X.i.send(E),$(yt,X.C,4);case 4:E.delete(),yt.g=0}})};function j(r,y,X){var V,E,H,J,q,M,lt,pt,xt,yt,it,gt,vt,Xt;return ft(function(wt){switch(wt.g){case 1:if(!X)return wt.return(y);for(V={},E=0,H=U(Object.keys(X)),J=H.next();!J.done;J=H.next())q=J.value,M=X[q],typeof M!="string"&&M.type==="texture"&&y[M.stream]!==void 0&&++E;1<E&&(r.G=!1),lt=U(Object.keys(X)),J=lt.next();case 2:if(J.done){wt.g=4;break}if(pt=J.value,xt=X[pt],typeof xt=="string")return vt=V,Xt=pt,$(wt,B(r,pt,y[xt]),14);if(yt=y[xt.stream],xt.type==="detection_list"){if(yt){for(var i=yt.getRectList(),g=yt.getLandmarksList(),R=yt.getClassificationsList(),W=[],N=0;N<i.size();++N){var n=$e(i.get(N),Y,K);n={T:{Y:Jt(n,1),Z:Jt(n,2),height:Jt(n,3),width:Jt(n,4),rotation:Jt(n,5,0),W:Ht(n,6)},O:It(g.get(N)),M:st($e(R.get(N),on,Fn))},W.push(n)}i=W}else i=[];V[pt]=i,wt.g=7;break}if(xt.type==="proto_list"){if(yt){for(i=Array(yt.size()),g=0;g<yt.size();g++)i[g]=yt.get(g);yt.delete()}else i=[];V[pt]=i,wt.g=7;break}if(yt===void 0){wt.g=3;break}if(xt.type==="float_list"){V[pt]=yt,wt.g=7;break}if(xt.type==="proto"){V[pt]=yt,wt.g=7;break}if(xt.type!=="texture")throw Error("Unknown output config type: '"+xt.type+"'");return it=r.s[pt],it||(it=new Gt(r.h,r.D),r.s[pt]=it),$(wt,jt(it,yt,r.G),13);case 13:gt=wt.h,V[pt]=gt;case 7:xt.transform&&V[pt]&&(V[pt]=xt.transform(V[pt])),wt.g=3;break;case 14:vt[Xt]=wt.h;case 3:J=lt.next(),wt.g=2;break;case 4:return wt.return(V)}})}function B(r,y,X){var V;return ft(function(E){return typeof X=="number"||X instanceof Uint8Array||X instanceof r.h.Uint8BlobList?E.return(X):X instanceof r.h.Texture2dDataOut?(V=r.s[y],V||(V=new Gt(r.h,r.D),r.s[y]=V),E.return(jt(V,X,r.G))):E.return(void 0)})}function C(r,y){for(var X=y.name||"$",V=[].concat(dt(y.wants)),E=new r.h.StringList,H=U(y.wants),J=H.next();!J.done;J=H.next())E.push_back(J.value);H=r.h.PacketListener.implement({onResults:function(q){for(var M={},lt=0;lt<y.wants.length;++lt)M[V[lt]]=q.get(lt);var pt=r.listeners[X];pt&&(r.C=j(r,M,y.outs).then(function(xt){xt=pt(xt);for(var yt=0;yt<y.wants.length;++yt){var it=M[V[yt]];typeof it=="object"&&it.hasOwnProperty&&it.hasOwnProperty("delete")&&it.delete()}xt&&(r.C=xt)}))}}),r.i.attachMultiListener(E,H),E.delete()}S.onResults=function(r,y){this.listeners[y||"$"]=r},Vt("Solution",Ze),Vt("OptionType",{BOOL:0,NUMBER:1,$:2,0:"BOOL",1:"NUMBER",2:"STRING"});function D(r){switch(r===void 0&&(r=0),r){case 1:return"pose_landmark_full.tflite";case 2:return"pose_landmark_heavy.tflite";default:return"pose_landmark_lite.tflite"}}function rt(r){var y=this;r=r||{},this.g=new Ze({locateFile:r.locateFile,files:function(X){return[{url:"pose_solution_packed_assets_loader.js"},{simd:!1,url:"pose_solution_wasm_bin.js"},{simd:!0,url:"pose_solution_simd_wasm_bin.js"},{data:!0,url:D(X.modelComplexity)}]},graph:{url:"pose_web.binarypb"},listeners:[{wants:["pose_landmarks","world_landmarks","segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:It},poseWorldLandmarks:{type:"proto",stream:"world_landmarks",transform:It},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(X){var V,E,H;return ft(function(J){return J.g==1?(V=D(X),E="third_party/mediapipe/modules/pose_landmark/"+V,$(J,F(y.g,V),2)):(H=J.h,y.g.overrideFile(E,H),J.return(!0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}}}})}S=rt.prototype,S.reset=function(){this.g.reset()},S.close=function(){return this.g.close(),Promise.resolve()},S.onResults=function(r){this.g.onResults(r)},S.initialize=function(){var r=this;return ft(function(y){return $(y,r.g.initialize(),0)})},S.send=function(r,y){var X=this;return ft(function(V){return $(V,X.g.send(r,y),0)})},S.setOptions=function(r){this.g.setOptions(r)},Vt("Pose",rt),Vt("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),Vt("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),Vt("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),Vt("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),Vt("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),Vt("VERSION","0.5.1635988162")}).call(Ir);const _n=class{constructor(){this.mediapipeMap_=new Map}getVersion(S){switch(S){case"face_detection":return Sr.VERSION;case"face_mesh":return Vr.VERSION;case"hands":return Gr.VERSION;case"holistic":return Wr.VERSION;case"objectron":return Tr.VERSION;case"selfie_segmentation":return wr.VERSION;case"pose":return Ir.VERSION;default:return""}}initialize(S){return new Promise(async(v,G)=>{if(S.mediaPipeModelConfigArray.length==0){G("no model was selected");return}for(let L=0;L<S.mediaPipeModelConfigArray.length;L++){const I=S.mediaPipeModelConfigArray[L];if(this.mediapipeMap_.has(I.modelType)){G("setting same type is not supported");return}if(typeof I.listener!="function"){G(`[${I.modelType}] ResultsListener must be provided`);return}let A;switch(I.modelType){case"face_mesh":A=new Vr.FaceMesh({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"face_mesh/"+this.getVersion("face_mesh"))+"/"+Q});break;case"face_detection":A=new Sr.FaceDetection({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"face_detection/"+this.getVersion("face_detection"))+"/"+Q});break;case"hands":A=new Gr.Hands({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"hands/"+this.getVersion("hands"))+"/"+Q});break;case"holistic":A=new Wr.Holistic({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"holistic/"+this.getVersion("holistic"))+"/"+Q});break;case"objectron":A=new Tr.Objectron({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"objectron/"+this.getVersion("objectron"))+"/"+Q});break;case"selfie_segmentation":A=new wr.SelfieSegmentation({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"selfie_segmentation/"+this.getVersion("selfie_segmentation"))+"/"+Q});break;case"pose":A=new Ir.Pose({locateFile:(Q,U)=>(I.assetsUri||_n.defaultAssetsBaseUrl+"pose/"+this.getVersion("pose"))+"/"+Q});break;default:G("unknown model type");return}A.onResults(I.listener),I.options&&A.setOptions(I.options);try{await A.initialize(),this.mediapipeMap_.set(I.modelType,A)}catch(Q){G(Q);return}}v()})}close(S){return new Promise((v,G)=>{let L=[];if(S){let I=this.mediapipeMap_.get(S);if(I)this.mediapipeMap_.delete(S),L.push(I.close());else{G("model not exit");return}}else{for(const[I,A]of this.mediapipeMap_.entries())L.push(A.close());this.mediapipeMap_.clear()}Promise.all(L).then(()=>{v()}).catch(I=>{G(I)})})}send(S,v){return new Promise((G,L)=>{let I=[];if(v){let A=this.mediapipeMap_.get(v);if(A)I.push(A.send({image:S}));else{L("model not exit");return}}else for(const[A,Q]of this.mediapipeMap_.entries())I.push(Q.send({image:S}));Promise.all(I).then(()=>{G()}).catch(A=>{L(A)})})}reset(S){if(S){let v=this.mediapipeMap_.get(S);v&&typeof v.reset=="function"&&v.reset()}else for(const[v,G]of this.mediapipeMap_.entries())G&&typeof G.reset=="function"&&G.reset()}};let zr=_n;zr.defaultAssetsBaseUrl="https://d3opqjmqzxf057.cloudfront.net/ml/mediapipe/";const Bn=new WeakMap,xr=new WeakMap,lr=new WeakMap,Mr=Symbol("anyProducer"),Ii=Promise.resolve(),Fr=Symbol("listenerAdded"),Lr=Symbol("listenerRemoved");let Qr=!1;function nr(S){if(typeof S!="string"&&typeof S!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Er(S){if(typeof S!="function")throw new TypeError("listener must be a function")}function rr(S,v){const G=xr.get(S);return G.has(v)||G.set(v,new Set),G.get(v)}function cr(S,v){const G=typeof v=="string"||typeof v=="symbol"?v:Mr,L=lr.get(S);return L.has(G)||L.set(G,new Set),L.get(G)}function t2(S,v,G){const L=lr.get(S);if(L.has(v))for(const I of L.get(v))I.enqueue(G);if(L.has(Mr)){const I=Promise.all([v,G]);for(const A of L.get(Mr))A.enqueue(I)}}function xi(S,v){v=Array.isArray(v)?v:[v];let G=!1,L=()=>{},I=[];const A={enqueue(Q){I.push(Q),L()},finish(){G=!0,L()}};for(const Q of v)cr(S,Q).add(A);return{async next(){return I?I.length===0?G?(I=void 0,this.next()):(await new Promise(Q=>{L=Q}),this.next()):{done:!1,value:await I.shift()}:{done:!0}},async return(Q){I=void 0;for(const U of v)cr(S,U).delete(A);return L(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Fi(S){if(S===void 0)return Li;if(!Array.isArray(S))throw new TypeError("`methodNames` must be an array of strings");for(const v of S)if(!Li.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return S}const Dr=S=>S===Fr||S===Lr;class zn{static mixin(v,G){return G=Fi(G),L=>{if(typeof L!="function")throw new TypeError("`target` must be function");for(const Q of G)if(L.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function I(){return Object.defineProperty(this,v,{enumerable:!1,value:new zn}),this[v]}Object.defineProperty(L.prototype,v,{enumerable:!1,get:I});const A=Q=>function(...U){return this[v][Q](...U)};for(const Q of G)Object.defineProperty(L.prototype,Q,{enumerable:!1,value:A(Q)});return L}}static get isDebugEnabled(){if(typeof process!="object")return Qr;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Qr}static set isDebugEnabled(v){Qr=v}constructor(v={}){Bn.set(this,new Set),xr.set(this,new Map),lr.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(G,L,I,A)=>{try{A=JSON.stringify(A)}catch{A=`Object with the following keys failed to stringify: ${Object.keys(A).join(",")}`}typeof I=="symbol"&&(I=I.toString());const Q=new Date,U=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${U}][emittery:${G}][${L}] Event Name: ${I}
|
|
123
|
+
data: ${A}`)})}logIfDebugEnabled(v,G,L){(zn.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,G,L)}on(v,G){Er(G),v=Array.isArray(v)?v:[v];for(const L of v)nr(L),rr(this,L).add(G),this.logIfDebugEnabled("subscribe",L,void 0),Dr(L)||this.emit(Fr,{eventName:L,listener:G});return this.off.bind(this,v,G)}off(v,G){Er(G),v=Array.isArray(v)?v:[v];for(const L of v)nr(L),rr(this,L).delete(G),this.logIfDebugEnabled("unsubscribe",L,void 0),Dr(L)||this.emit(Lr,{eventName:L,listener:G})}once(v){return new Promise(G=>{const L=this.on(v,I=>{L(),G(I)})})}events(v){v=Array.isArray(v)?v:[v];for(const G of v)nr(G);return xi(this,v)}async emit(v,G){nr(v),this.logIfDebugEnabled("emit",v,G),t2(this,v,G);const L=rr(this,v),I=Bn.get(this),A=[...L],Q=Dr(v)?[]:[...I];await Ii,await Promise.all([...A.map(async U=>{if(L.has(U))return U(G)}),...Q.map(async U=>{if(I.has(U))return U(v,G)})])}async emitSerial(v,G){nr(v),this.logIfDebugEnabled("emitSerial",v,G);const L=rr(this,v),I=Bn.get(this),A=[...L],Q=[...I];await Ii;for(const U of A)L.has(U)&&await U(G);for(const U of Q)I.has(U)&&await U(v,G)}onAny(v){return Er(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Bn.get(this).add(v),this.emit(Fr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return xi(this)}offAny(v){Er(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Lr,{listener:v}),Bn.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const G of v)if(this.logIfDebugEnabled("clear",G,void 0),typeof G=="string"||typeof G=="symbol"){rr(this,G).clear();const L=cr(this,G);for(const I of L)I.finish();L.clear()}else{Bn.get(this).clear();for(const L of xr.get(this).values())L.clear();for(const L of lr.get(this).values()){for(const I of L)I.finish();L.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let G=0;for(const L of v){if(typeof L=="string"){G+=Bn.get(this).size+rr(this,L).size+cr(this,L).size+cr(this).size;continue}typeof L!="undefined"&&nr(L),G+=Bn.get(this).size;for(const I of xr.get(this).values())G+=I.size;for(const I of lr.get(this).values())G+=I.size}return G}bindMethods(v,G){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");G=Fi(G);for(const L of G){if(v[L]!==void 0)throw new Error(`The property \`${L}\` already exists on \`target\``);Object.defineProperty(v,L,{enumerable:!1,value:this[L].bind(this)})}}}const Li=Object.getOwnPropertyNames(zn.prototype).filter(S=>S!=="constructor");Object.defineProperty(zn,"listenerAdded",{value:Fr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(zn,"listenerRemoved",{value:Lr,writable:!1,enumerable:!0,configurable:!1});var $r=zn;const Ei="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIFR7fVQudXBkYXRlcz17dHJhbnNmb3JtZXJfbmV3OiJOZXcgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX251bGw6Ik51bGwgdHJhbnNmb3JtZXIifSxULmVycm9ycz17dHJhbnNmb3JtZXJfbm9uZToiTm8gdHJhbnNmb3JtZXJzIHByb3ZpZGVkIix0cmFuc2Zvcm1lcl9zdGFydDoiQ2Fubm90IHN0YXJ0IHRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lcl90cmFuc2Zvcm06IkNhbm5vdCB0cmFuc2Zvcm0gZnJhbWUiLHRyYW5zZm9ybWVyX2ZsdXNoOiJDYW5ub3QgZmx1c2ggdHJhbnNmb3JtZXIiLHJlYWRhYmxlX251bGw6IlJlYWRhYmxlIGlzIG51bGwiLHdyaXRhYmxlX251bGw6IldyaXRhYmxlIGlzIG51bGwifTt2YXIgWT17ZXhwb3J0czp7fX0sRWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLG89MDtvPG4ubGVuZ3RoO28rKyluW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gZS5hcHBseSh0LG4pfX0scnQ9RWUsUj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIFoocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocil9ZnVuY3Rpb24gZWUocil7cmV0dXJuIHR5cGVvZiByPT0idW5kZWZpbmVkIn1mdW5jdGlvbiBzdChyKXtyZXR1cm4gciE9PW51bGwmJiFlZShyKSYmci5jb25zdHJ1Y3RvciE9PW51bGwmJiFlZShyLmNvbnN0cnVjdG9yKSYmdHlwZW9mIHIuY29uc3RydWN0b3IuaXNCdWZmZXI9PSJmdW5jdGlvbiImJnIuY29uc3RydWN0b3IuaXNCdWZmZXIocil9ZnVuY3Rpb24gVGUocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSJ9ZnVuY3Rpb24gbnQocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEZvcm1EYXRhXSJ9ZnVuY3Rpb24gaXQocil7dmFyIGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlciE9InVuZGVmaW5lZCImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhyKTplPXImJnIuYnVmZmVyJiZUZShyLmJ1ZmZlciksZX1mdW5jdGlvbiBvdChyKXtyZXR1cm4gdHlwZW9mIHI9PSJzdHJpbmcifWZ1bmN0aW9uIGF0KHIpe3JldHVybiB0eXBlb2Ygcj09Im51bWJlciJ9ZnVuY3Rpb24gUmUocil7cmV0dXJuIHIhPT1udWxsJiZ0eXBlb2Ygcj09Im9iamVjdCJ9ZnVuY3Rpb24gRihyKXtpZihSLmNhbGwocikhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik7cmV0dXJuIGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiB1dChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgRGF0ZV0ifWZ1bmN0aW9uIGx0KHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBGaWxlXSJ9ZnVuY3Rpb24gY3Qocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEJsb2JdIn1mdW5jdGlvbiBQZShyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgRnVuY3Rpb25dIn1mdW5jdGlvbiBmdChyKXtyZXR1cm4gUmUocikmJlBlKHIucGlwZSl9ZnVuY3Rpb24gaHQocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IFVSTFNlYXJjaFBhcmFtc10ifWZ1bmN0aW9uIGR0KHIpe3JldHVybiByLnRyaW0/ci50cmltKCk6ci5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9ZnVuY3Rpb24gcHQoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJihuYXZpZ2F0b3IucHJvZHVjdD09PSJSZWFjdE5hdGl2ZSJ8fG5hdmlnYXRvci5wcm9kdWN0PT09Ik5hdGl2ZVNjcmlwdCJ8fG5hdmlnYXRvci5wcm9kdWN0PT09Ik5TIik/ITE6dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJnR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCJ9ZnVuY3Rpb24gdGUocixlKXtpZighKHI9PT1udWxsfHx0eXBlb2Ygcj09InVuZGVmaW5lZCIpKWlmKHR5cGVvZiByIT0ib2JqZWN0IiYmKHI9W3JdKSxaKHIpKWZvcih2YXIgdD0wLHM9ci5sZW5ndGg7dDxzO3QrKyllLmNhbGwobnVsbCxyW3RdLHQscik7ZWxzZSBmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmZS5jYWxsKG51bGwscltuXSxuLHIpfWZ1bmN0aW9uIHJlKCl7dmFyIHI9e307ZnVuY3Rpb24gZShuLG8pe0YocltvXSkmJkYobik/cltvXT1yZShyW29dLG4pOkYobik/cltvXT1yZSh7fSxuKTpaKG4pP3Jbb109bi5zbGljZSgpOnJbb109bn1mb3IodmFyIHQ9MCxzPWFyZ3VtZW50cy5sZW5ndGg7dDxzO3QrKyl0ZShhcmd1bWVudHNbdF0sZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gbXQocixlLHQpe3JldHVybiB0ZShlLGZ1bmN0aW9uKG4sbyl7dCYmdHlwZW9mIG49PSJmdW5jdGlvbiI/cltvXT1ydChuLHQpOnJbb109bn0pLHJ9ZnVuY3Rpb24gZ3Qocil7cmV0dXJuIHIuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYocj1yLnNsaWNlKDEpKSxyfXZhciBwPXtpc0FycmF5OlosaXNBcnJheUJ1ZmZlcjpUZSxpc0J1ZmZlcjpzdCxpc0Zvcm1EYXRhOm50LGlzQXJyYXlCdWZmZXJWaWV3Oml0LGlzU3RyaW5nOm90LGlzTnVtYmVyOmF0LGlzT2JqZWN0OlJlLGlzUGxhaW5PYmplY3Q6Rixpc1VuZGVmaW5lZDplZSxpc0RhdGU6dXQsaXNGaWxlOmx0LGlzQmxvYjpjdCxpc0Z1bmN0aW9uOlBlLGlzU3RyZWFtOmZ0LGlzVVJMU2VhcmNoUGFyYW1zOmh0LGlzU3RhbmRhcmRCcm93c2VyRW52OnB0LGZvckVhY2g6dGUsbWVyZ2U6cmUsZXh0ZW5kOm10LHRyaW06ZHQsc3RyaXBCT006Z3R9LHg9cDtmdW5jdGlvbiBDZShyKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHIpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKS5yZXBsYWNlKC8lNUIvZ2ksIlsiKS5yZXBsYWNlKC8lNUQvZ2ksIl0iKX12YXIgU2U9ZnVuY3Rpb24oZSx0LHMpe2lmKCF0KXJldHVybiBlO3ZhciBuO2lmKHMpbj1zKHQpO2Vsc2UgaWYoeC5pc1VSTFNlYXJjaFBhcmFtcyh0KSluPXQudG9TdHJpbmcoKTtlbHNle3ZhciBvPVtdO3guZm9yRWFjaCh0LGZ1bmN0aW9uKGwsbSl7bD09PW51bGx8fHR5cGVvZiBsPT0idW5kZWZpbmVkInx8KHguaXNBcnJheShsKT9tPW0rIltdIjpsPVtsXSx4LmZvckVhY2gobCxmdW5jdGlvbihmKXt4LmlzRGF0ZShmKT9mPWYudG9JU09TdHJpbmcoKTp4LmlzT2JqZWN0KGYpJiYoZj1KU09OLnN0cmluZ2lmeShmKSksby5wdXNoKENlKG0pKyI9IitDZShmKSl9KSl9KSxuPW8uam9pbigiJiIpfWlmKG4pe3ZhciBpPWUuaW5kZXhPZigiIyIpO2khPT0tMSYmKGU9ZS5zbGljZSgwLGkpKSxlKz0oZS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStufXJldHVybiBlfSx5dD1wO2Z1bmN0aW9uIEwoKXt0aGlzLmhhbmRsZXJzPVtdfUwucHJvdG90eXBlLnVzZT1mdW5jdGlvbihlLHQscyl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czpzP3Muc3luY2hyb25vdXM6ITEscnVuV2hlbjpzP3MucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0sTC5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LEwucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7eXQuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKHMpe3MhPT1udWxsJiZlKHMpfSl9O3ZhciBfdD1MLHZ0PXAsYnQ9ZnVuY3Rpb24oZSx0KXt2dC5mb3JFYWNoKGUsZnVuY3Rpb24obixvKXtvIT09dCYmby50b1VwcGVyQ2FzZSgpPT09dC50b1VwcGVyQ2FzZSgpJiYoZVt0XT1uLGRlbGV0ZSBlW29dKX0pfSx4ZT1mdW5jdGlvbihlLHQscyxuLG8pe3JldHVybiBlLmNvbmZpZz10LHMmJihlLmNvZGU9cyksZS5yZXF1ZXN0PW4sZS5yZXNwb25zZT1vLGUuaXNBeGlvc0Vycm9yPSEwLGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX0sZX0sd3Q9eGUsT2U9ZnVuY3Rpb24oZSx0LHMsbixvKXt2YXIgaT1uZXcgRXJyb3IoZSk7cmV0dXJuIHd0KGksdCxzLG4sbyl9LEV0PU9lLFR0PWZ1bmN0aW9uKGUsdCxzKXt2YXIgbj1zLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshcy5zdGF0dXN8fCFufHxuKHMuc3RhdHVzKT9lKHMpOnQoRXQoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitzLnN0YXR1cyxzLmNvbmZpZyxudWxsLHMucmVxdWVzdCxzKSl9LEQ9cCxSdD1ELmlzU3RhbmRhcmRCcm93c2VyRW52KCk/ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24odCxzLG4sbyxpLGEpe3ZhciBsPVtdO2wucHVzaCh0KyI9IitlbmNvZGVVUklDb21wb25lbnQocykpLEQuaXNOdW1iZXIobikmJmwucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLEQuaXNTdHJpbmcobykmJmwucHVzaCgicGF0aD0iK28pLEQuaXNTdHJpbmcoaSkmJmwucHVzaCgiZG9tYWluPSIraSksYT09PSEwJiZsLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1sLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24odCl7dmFyIHM9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK3QrIik9KFteO10qKSIpKTtyZXR1cm4gcz9kZWNvZGVVUklDb21wb25lbnQoc1szXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMud3JpdGUodCwiIixEYXRlLm5vdygpLTg2NGU1KX19fSgpOmZ1bmN0aW9uKCl7cmV0dXJue3dyaXRlOmZ1bmN0aW9uKCl7fSxyZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHJlbW92ZTpmdW5jdGlvbigpe319fSgpLFB0PWZ1bmN0aW9uKGUpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoZSl9LEN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ZS5yZXBsYWNlKC9cLyskLywiIikrIi8iK3QucmVwbGFjZSgvXlwvKy8sIiIpOmV9LFN0PVB0LHh0PUN0LE90PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiFTdCh0KT94dChlLHQpOnR9LHNlPXAsSXQ9WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSxNdD1mdW5jdGlvbihlKXt2YXIgdD17fSxzLG4sbztyZXR1cm4gZSYmc2UuZm9yRWFjaChlLnNwbGl0KGAKYCksZnVuY3Rpb24oYSl7aWYobz1hLmluZGV4T2YoIjoiKSxzPXNlLnRyaW0oYS5zdWJzdHIoMCxvKSkudG9Mb3dlckNhc2UoKSxuPXNlLnRyaW0oYS5zdWJzdHIobysxKSkscyl7aWYodFtzXSYmSXQuaW5kZXhPZihzKT49MClyZXR1cm47cz09PSJzZXQtY29va2llIj90W3NdPSh0W3NdP3Rbc106W10pLmNvbmNhdChbbl0pOnRbc109dFtzXT90W3NdKyIsICIrbjpufX0pLHR9LEllPXAsa3Q9SWUuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBlPS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikscztmdW5jdGlvbiBuKG8pe3ZhciBpPW87cmV0dXJuIGUmJih0LnNldEF0dHJpYnV0ZSgiaHJlZiIsaSksaT10LmhyZWYpLHQuc2V0QXR0cmlidXRlKCJocmVmIixpKSx7aHJlZjp0LmhyZWYscHJvdG9jb2w6dC5wcm90b2NvbD90LnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDp0Lmhvc3Qsc2VhcmNoOnQuc2VhcmNoP3Quc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6dC5oYXNoP3QuaGFzaC5yZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOnQuaG9zdG5hbWUscG9ydDp0LnBvcnQscGF0aG5hbWU6dC5wYXRobmFtZS5jaGFyQXQoMCk9PT0iLyI/dC5wYXRobmFtZToiLyIrdC5wYXRobmFtZX19cmV0dXJuIHM9bih3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24oaSl7dmFyIGE9SWUuaXNTdHJpbmcoaSk/bihpKTppO3JldHVybiBhLnByb3RvY29sPT09cy5wcm90b2NvbCYmYS5ob3N0PT09cy5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiEwfX0oKTtmdW5jdGlvbiBuZShyKXt0aGlzLm1lc3NhZ2U9cn1uZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6ICIrdGhpcy5tZXNzYWdlOiIiKX0sbmUucHJvdG90eXBlLl9fQ0FOQ0VMX189ITA7dmFyIHE9bmUsSD1wLEF0PVR0LE50PVJ0LCR0PVNlLFV0PU90LEJ0PU10LEZ0PWt0LGllPU9lLEx0PUosRHQ9cSxNZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXt2YXIgbz1lLmRhdGEsaT1lLmhlYWRlcnMsYT1lLnJlc3BvbnNlVHlwZSxsO2Z1bmN0aW9uIG0oKXtlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGwpLGUuc2lnbmFsJiZlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbCl9SC5pc0Zvcm1EYXRhKG8pJiZkZWxldGUgaVsiQ29udGVudC1UeXBlIl07dmFyIHU9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGUuYXV0aCl7dmFyIGY9ZS5hdXRoLnVzZXJuYW1lfHwiIixFPWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6IiI7aS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoZisiOiIrRSl9dmFyIGc9VXQoZS5iYXNlVVJMLGUudXJsKTt1Lm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSwkdChnLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLHUudGltZW91dD1lLnRpbWVvdXQ7ZnVuY3Rpb24gZXQoKXtpZighIXUpe3ZhciBiPSJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gdT9CdCh1LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTpudWxsLE49IWF8fGE9PT0idGV4dCJ8fGE9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxTPXtkYXRhOk4sc3RhdHVzOnUuc3RhdHVzLHN0YXR1c1RleHQ6dS5zdGF0dXNUZXh0LGhlYWRlcnM6Yixjb25maWc6ZSxyZXF1ZXN0OnV9O0F0KGZ1bmN0aW9uKHdlKXtzKHdlKSxtKCl9LGZ1bmN0aW9uKHdlKXtuKHdlKSxtKCl9LFMpLHU9bnVsbH19aWYoIm9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPWV0OnUub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IXV8fHUucmVhZHlTdGF0ZSE9PTR8fHUuc3RhdHVzPT09MCYmISh1LnJlc3BvbnNlVVJMJiZ1LnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChldCl9LHUub25hYm9ydD1mdW5jdGlvbigpeyF1fHwobihpZSgiUmVxdWVzdCBhYm9ydGVkIixlLCJFQ09OTkFCT1JURUQiLHUpKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oKXtuKGllKCJOZXR3b3JrIEVycm9yIixlLG51bGwsdSkpLHU9bnVsbH0sdS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgTj1lLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitlLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsUz1lLnRyYW5zaXRpb25hbHx8THQudHJhbnNpdGlvbmFsO2UudGltZW91dEVycm9yTWVzc2FnZSYmKE49ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxuKGllKE4sZSxTLmNsYXJpZnlUaW1lb3V0RXJyb3I/IkVUSU1FRE9VVCI6IkVDT05OQUJPUlRFRCIsdSkpLHU9bnVsbH0sSC5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgdHQ9KGUud2l0aENyZWRlbnRpYWxzfHxGdChnKSkmJmUueHNyZkNvb2tpZU5hbWU/TnQucmVhZChlLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7dHQmJihpW2UueHNyZkhlYWRlck5hbWVdPXR0KX0ic2V0UmVxdWVzdEhlYWRlciJpbiB1JiZILmZvckVhY2goaSxmdW5jdGlvbihOLFMpe3R5cGVvZiBvPT0idW5kZWZpbmVkIiYmUy50b0xvd2VyQ2FzZSgpPT09ImNvbnRlbnQtdHlwZSI/ZGVsZXRlIGlbU106dS5zZXRSZXF1ZXN0SGVhZGVyKFMsTil9KSxILmlzVW5kZWZpbmVkKGUud2l0aENyZWRlbnRpYWxzKXx8KHUud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLGEmJmEhPT0ianNvbiImJih1LnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksdHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZ1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uRG93bmxvYWRQcm9ncmVzcyksdHlwZW9mIGUub25VcGxvYWRQcm9ncmVzcz09ImZ1bmN0aW9uIiYmdS51cGxvYWQmJnUudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uVXBsb2FkUHJvZ3Jlc3MpLChlLmNhbmNlbFRva2VufHxlLnNpZ25hbCkmJihsPWZ1bmN0aW9uKGIpeyF1fHwobighYnx8YiYmYi50eXBlP25ldyBEdCgiY2FuY2VsZWQiKTpiKSx1LmFib3J0KCksdT1udWxsKX0sZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobCksZS5zaWduYWwmJihlLnNpZ25hbC5hYm9ydGVkP2woKTplLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbCkpKSxvfHwobz1udWxsKSx1LnNlbmQobyl9KX0saD1wLGtlPWJ0LHF0PXhlLEh0PXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVuY3Rpb24gQWUocixlKXshaC5pc1VuZGVmaW5lZChyKSYmaC5pc1VuZGVmaW5lZChyWyJDb250ZW50LVR5cGUiXSkmJihyWyJDb250ZW50LVR5cGUiXT1lKX1mdW5jdGlvbiBqdCgpe3ZhciByO3JldHVybih0eXBlb2YgWE1MSHR0cFJlcXVlc3QhPSJ1bmRlZmluZWQifHx0eXBlb2YgcHJvY2VzcyE9InVuZGVmaW5lZCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm9jZXNzKT09PSJbb2JqZWN0IHByb2Nlc3NdIikmJihyPU1lKSxyfWZ1bmN0aW9uIEp0KHIsZSx0KXtpZihoLmlzU3RyaW5nKHIpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkociksaC50cmltKHIpfWNhdGNoKHMpe2lmKHMubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgc31yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKHIpfXZhciBqPXt0cmFuc2l0aW9uYWw6e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LGFkYXB0ZXI6anQoKSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe3JldHVybiBrZSh0LCJBY2NlcHQiKSxrZSh0LCJDb250ZW50LVR5cGUiKSxoLmlzRm9ybURhdGEoZSl8fGguaXNBcnJheUJ1ZmZlcihlKXx8aC5pc0J1ZmZlcihlKXx8aC5pc1N0cmVhbShlKXx8aC5pc0ZpbGUoZSl8fGguaXNCbG9iKGUpP2U6aC5pc0FycmF5QnVmZmVyVmlldyhlKT9lLmJ1ZmZlcjpoLmlzVVJMU2VhcmNoUGFyYW1zKGUpPyhBZSh0LCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLGUudG9TdHJpbmcoKSk6aC5pc09iamVjdChlKXx8dCYmdFsiQ29udGVudC1UeXBlIl09PT0iYXBwbGljYXRpb24vanNvbiI/KEFlKHQsImFwcGxpY2F0aW9uL2pzb24iKSxKdChlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRyYW5zaXRpb25hbHx8ai50cmFuc2l0aW9uYWwscz10JiZ0LnNpbGVudEpTT05QYXJzaW5nLG49dCYmdC5mb3JjZWRKU09OUGFyc2luZyxvPSFzJiZ0aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihvfHxuJiZoLmlzU3RyaW5nKGUpJiZlLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goaSl7aWYobyl0aHJvdyBpLm5hbWU9PT0iU3ludGF4RXJyb3IiP3F0KGksdGhpcywiRV9KU09OX1BBUlNFIik6aX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIn19fTtoLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIl0sZnVuY3Rpb24oZSl7ai5oZWFkZXJzW2VdPXt9fSksaC5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ai5oZWFkZXJzW2VdPWgubWVyZ2UoSHQpfSk7dmFyIEo9aixWdD1wLHp0PUosV3Q9ZnVuY3Rpb24oZSx0LHMpe3ZhciBuPXRoaXN8fHp0O3JldHVybiBWdC5mb3JFYWNoKHMsZnVuY3Rpb24oaSl7ZT1pLmNhbGwobixlLHQpfSksZX0sTmU9ZnVuY3Rpb24oZSl7cmV0dXJuISEoZSYmZS5fX0NBTkNFTF9fKX0sJGU9cCxvZT1XdCxHdD1OZSxRdD1KLFh0PXE7ZnVuY3Rpb24gYWUocil7aWYoci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksci5zaWduYWwmJnIuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IFh0KCJjYW5jZWxlZCIpfXZhciBLdD1mdW5jdGlvbihlKXthZShlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9b2UuY2FsbChlLGUuZGF0YSxlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXF1ZXN0KSxlLmhlYWRlcnM9JGUubWVyZ2UoZS5oZWFkZXJzLmNvbW1vbnx8e30sZS5oZWFkZXJzW2UubWV0aG9kXXx8e30sZS5oZWFkZXJzKSwkZS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLGZ1bmN0aW9uKG4pe2RlbGV0ZSBlLmhlYWRlcnNbbl19KTt2YXIgdD1lLmFkYXB0ZXJ8fFF0LmFkYXB0ZXI7cmV0dXJuIHQoZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gYWUoZSksbi5kYXRhPW9lLmNhbGwoZSxuLmRhdGEsbi5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpLG59LGZ1bmN0aW9uKG4pe3JldHVybiBHdChuKXx8KGFlKGUpLG4mJm4ucmVzcG9uc2UmJihuLnJlc3BvbnNlLmRhdGE9b2UuY2FsbChlLG4ucmVzcG9uc2UuZGF0YSxuLnJlc3BvbnNlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdChuKX0pfSx5PXAsVWU9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBzPXt9O2Z1bmN0aW9uIG4odSxmKXtyZXR1cm4geS5pc1BsYWluT2JqZWN0KHUpJiZ5LmlzUGxhaW5PYmplY3QoZik/eS5tZXJnZSh1LGYpOnkuaXNQbGFpbk9iamVjdChmKT95Lm1lcmdlKHt9LGYpOnkuaXNBcnJheShmKT9mLnNsaWNlKCk6Zn1mdW5jdGlvbiBvKHUpe2lmKHkuaXNVbmRlZmluZWQodFt1XSkpe2lmKCF5LmlzVW5kZWZpbmVkKGVbdV0pKXJldHVybiBuKHZvaWQgMCxlW3VdKX1lbHNlIHJldHVybiBuKGVbdV0sdFt1XSl9ZnVuY3Rpb24gaSh1KXtpZigheS5pc1VuZGVmaW5lZCh0W3VdKSlyZXR1cm4gbih2b2lkIDAsdFt1XSl9ZnVuY3Rpb24gYSh1KXtpZih5LmlzVW5kZWZpbmVkKHRbdV0pKXtpZigheS5pc1VuZGVmaW5lZChlW3VdKSlyZXR1cm4gbih2b2lkIDAsZVt1XSl9ZWxzZSByZXR1cm4gbih2b2lkIDAsdFt1XSl9ZnVuY3Rpb24gbCh1KXtpZih1IGluIHQpcmV0dXJuIG4oZVt1XSx0W3VdKTtpZih1IGluIGUpcmV0dXJuIG4odm9pZCAwLGVbdV0pfXZhciBtPXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDphLHRyYW5zZm9ybVJlcXVlc3Q6YSx0cmFuc2Zvcm1SZXNwb25zZTphLHBhcmFtc1NlcmlhbGl6ZXI6YSx0aW1lb3V0OmEsdGltZW91dE1lc3NhZ2U6YSx3aXRoQ3JlZGVudGlhbHM6YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSx0cmFuc3BvcnQ6YSxodHRwQWdlbnQ6YSxodHRwc0FnZW50OmEsY2FuY2VsVG9rZW46YSxzb2NrZXRQYXRoOmEscmVzcG9uc2VFbmNvZGluZzphLHZhbGlkYXRlU3RhdHVzOmx9O3JldHVybiB5LmZvckVhY2goT2JqZWN0LmtleXMoZSkuY29uY2F0KE9iamVjdC5rZXlzKHQpKSxmdW5jdGlvbihmKXt2YXIgRT1tW2ZdfHxvLGc9RShmKTt5LmlzVW5kZWZpbmVkKGcpJiZFIT09bHx8KHNbZl09Zyl9KSxzfSxCZT17dmVyc2lvbjoiMC4yNS4wIn0sWXQ9QmUudmVyc2lvbix1ZT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goZnVuY3Rpb24ocixlKXt1ZVtyXT1mdW5jdGlvbihzKXtyZXR1cm4gdHlwZW9mIHM9PT1yfHwiYSIrKGU8MT8ibiAiOiIgIikrcn19KTt2YXIgRmU9e307dWUudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxzKXtmdW5jdGlvbiBuKG8saSl7cmV0dXJuIltBeGlvcyB2IitZdCsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK28rIiciK2krKHM/Ii4gIitzOiIiKX1yZXR1cm4gZnVuY3Rpb24obyxpLGEpe2lmKGU9PT0hMSl0aHJvdyBuZXcgRXJyb3IobihpLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSk7cmV0dXJuIHQmJiFGZVtpXSYmKEZlW2ldPSEwLGNvbnNvbGUud2FybihuKGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKG8saSxhKTohMH19O2Z1bmN0aW9uIFp0KHIsZSx0KXtpZih0eXBlb2YgciE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2Zvcih2YXIgcz1PYmplY3Qua2V5cyhyKSxuPXMubGVuZ3RoO24tLSA+MDspe3ZhciBvPXNbbl0saT1lW29dO2lmKGkpe3ZhciBhPXJbb10sbD1hPT09dm9pZCAwfHxpKGEsbyxyKTtpZihsIT09ITApdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uICIrbysiIG11c3QgYmUgIitsKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgRXJyb3IoIlVua25vd24gb3B0aW9uICIrbyl9fXZhciBlcj17YXNzZXJ0T3B0aW9uczpadCx2YWxpZGF0b3JzOnVlfSxMZT1wLHRyPVNlLERlPV90LHFlPUt0LFY9VWUsSGU9ZXIsTz1IZS52YWxpZGF0b3JzO2Z1bmN0aW9uICQocil7dGhpcy5kZWZhdWx0cz1yLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBEZSxyZXNwb25zZTpuZXcgRGV9fSQucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSwhdC51cmwpdGhyb3cgbmV3IEVycm9yKCJQcm92aWRlZCBjb25maWcgdXJsIGlzIG5vdCB2YWxpZCIpO3Q9Vih0aGlzLmRlZmF1bHRzLHQpLHQubWV0aG9kP3QubWV0aG9kPXQubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q/dC5tZXRob2Q9dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKTp0Lm1ldGhvZD0iZ2V0Ijt2YXIgcz10LnRyYW5zaXRpb25hbDtzIT09dm9pZCAwJiZIZS5hc3NlcnRPcHRpb25zKHMse3NpbGVudEpTT05QYXJzaW5nOk8udHJhbnNpdGlvbmFsKE8uYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Ty50cmFuc2l0aW9uYWwoTy5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOk8udHJhbnNpdGlvbmFsKE8uYm9vbGVhbil9LCExKTt2YXIgbj1bXSxvPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihnKXt0eXBlb2YgZy5ydW5XaGVuPT0iZnVuY3Rpb24iJiZnLnJ1bldoZW4odCk9PT0hMXx8KG89byYmZy5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZy5mdWxmaWxsZWQsZy5yZWplY3RlZCkpfSk7dmFyIGk9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihnKXtpLnB1c2goZy5mdWxmaWxsZWQsZy5yZWplY3RlZCl9KTt2YXIgYTtpZighbyl7dmFyIGw9W3FlLHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGwsbiksbD1sLmNvbmNhdChpKSxhPVByb21pc2UucmVzb2x2ZSh0KTtsLmxlbmd0aDspYT1hLnRoZW4obC5zaGlmdCgpLGwuc2hpZnQoKSk7cmV0dXJuIGF9Zm9yKHZhciBtPXQ7bi5sZW5ndGg7KXt2YXIgdT1uLnNoaWZ0KCksZj1uLnNoaWZ0KCk7dHJ5e209dShtKX1jYXRjaChFKXtmKEUpO2JyZWFrfX10cnl7YT1xZShtKX1jYXRjaChFKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoRSl9Zm9yKDtpLmxlbmd0aDspYT1hLnRoZW4oaS5zaGlmdCgpLGkuc2hpZnQoKSk7cmV0dXJuIGF9LCQucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihlKXtpZighZS51cmwpdGhyb3cgbmV3IEVycm9yKCJQcm92aWRlZCBjb25maWcgdXJsIGlzIG5vdCB2YWxpZCIpO3JldHVybiBlPVYodGhpcy5kZWZhdWx0cyxlKSx0cihlLnVybCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxMZS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXskLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHMpe3JldHVybiB0aGlzLnJlcXVlc3QoVihzfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTooc3x8e30pLmRhdGF9KSl9fSksTGUuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpeyQucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFYobnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6c30pKX19KTt2YXIgcnI9JCxzcj1xO2Z1bmN0aW9uIEkocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihuKXtlPW59KTt2YXIgdD10aGlzO3RoaXMucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHMpe2lmKCEhdC5fbGlzdGVuZXJzKXt2YXIgbixvPXQuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKG49MDtuPG87bisrKXQuX2xpc3RlbmVyc1tuXShzKTt0Ll9saXN0ZW5lcnM9bnVsbH19KSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihzKXt2YXIgbixvPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Quc3Vic2NyaWJlKGkpLG49aX0pLnRoZW4ocyk7cmV0dXJuIG8uY2FuY2VsPWZ1bmN0aW9uKCl7dC51bnN1YnNjcmliZShuKX0sb30scihmdW5jdGlvbihuKXt0LnJlYXNvbnx8KHQucmVhc29uPW5ldyBzcihuKSxlKHQucmVhc29uKSl9KX1JLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LEkucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfSxJLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZighIXRoaXMuX2xpc3RlbmVycyl7dmFyIHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9fSxJLnNvdXJjZT1mdW5jdGlvbigpe3ZhciBlLHQ9bmV3IEkoZnVuY3Rpb24obil7ZT1ufSk7cmV0dXJue3Rva2VuOnQsY2FuY2VsOmV9fTt2YXIgbnI9SSxpcj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGUuYXBwbHkobnVsbCxzKX19LG9yPXAsYXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG9yLmlzT2JqZWN0KGUpJiZlLmlzQXhpb3NFcnJvcj09PSEwfSxqZT1wLHVyPUVlLHo9cnIsbHI9VWUsY3I9SjtmdW5jdGlvbiBKZShyKXt2YXIgZT1uZXcgeihyKSx0PXVyKHoucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIGplLmV4dGVuZCh0LHoucHJvdG90eXBlLGUpLGplLmV4dGVuZCh0LGUpLHQuY3JlYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBKZShscihyLG4pKX0sdH12YXIgdz1KZShjcik7dy5BeGlvcz16LHcuQ2FuY2VsPXEsdy5DYW5jZWxUb2tlbj1ucix3LmlzQ2FuY2VsPU5lLHcuVkVSU0lPTj1CZS52ZXJzaW9uLHcuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sdy5zcHJlYWQ9aXIsdy5pc0F4aW9zRXJyb3I9YXIsWS5leHBvcnRzPXcsWS5leHBvcnRzLmRlZmF1bHQ9dzt2YXIgZnI9WS5leHBvcnRzO2NsYXNzIGN7aXNFbXB0eSgpe3JldHVybiF0aGlzLmlzUHJlc2VudCgpfXN0YXRpYyBvZihlKXtpZihlIT1udWxsKXJldHVybiBuZXcgVmUoZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIHBhc3NlZCB2YWx1ZSB3YXMgbnVsbCBvciB1bmRlZmluZWQuIil9c3RhdGljIG9mTm9uTnVsbChlKXtyZXR1cm4gYy5vZihlKX1zdGF0aWMgb2ZOdWxsYWJsZShlKXtyZXR1cm4gZSE9bnVsbD9uZXcgVmUoZSk6bmV3IHplfXN0YXRpYyBlbXB0eSgpe3JldHVybiBuZXcgemV9c3RhdGljIGZyb20oZSl7c3dpdGNoKGUua2luZCl7Y2FzZSJwcmVzZW50IjpyZXR1cm4gYy5vZihlLnZhbHVlKTtjYXNlImVtcHR5IjpyZXR1cm4gYy5lbXB0eSgpO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIHBhc3NlZCB2YWx1ZSB3YXMgbm90IGFuIE9wdGlvbiB0eXBlLiIpfX19Y2xhc3MgVmUgZXh0ZW5kcyBje2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5wYXlsb2FkPWV9aXNQcmVzZW50KCl7cmV0dXJuITB9Z2V0KCl7cmV0dXJuIHRoaXMucGF5bG9hZH1pZlByZXNlbnQoZSl7ZSh0aGlzLnBheWxvYWQpfWlmUHJlc2VudE9yRWxzZShlLHQpe2UodGhpcy5wYXlsb2FkKX1maWx0ZXIoZSl7cmV0dXJuIGUodGhpcy5wYXlsb2FkKT90aGlzOmMuZW1wdHkoKX1tYXAoZSl7Y29uc3QgdD1lKHRoaXMucGF5bG9hZCk7cmV0dXJuIGMub2ZOdWxsYWJsZSh0KX1mbGF0TWFwKGUpe3JldHVybiBlKHRoaXMucGF5bG9hZCl9b3IoZSl7cmV0dXJuIHRoaXN9b3JFbHNlKGUpe3JldHVybiB0aGlzLnBheWxvYWR9b3JFbHNlR2V0KGUpe3JldHVybiB0aGlzLnBheWxvYWR9b3JFbHNlVGhyb3coZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vck51bGwoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfW9yVW5kZWZpbmVkKCl7cmV0dXJuIHRoaXMucGF5bG9hZH10b09wdGlvbigpe3JldHVybntraW5kOiJwcmVzZW50Iix2YWx1ZTp0aGlzLnBheWxvYWR9fW1hdGNoZXMoZSl7cmV0dXJuIGUucHJlc2VudCh0aGlzLnBheWxvYWQpfXRvSlNPTihlKXtyZXR1cm4gdGhpcy5wYXlsb2FkfX1jbGFzcyB6ZSBleHRlbmRzIGN7aXNQcmVzZW50KCl7cmV0dXJuITF9Y29uc3RydWN0b3IoKXtzdXBlcigpfWdldCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBvcHRpb25hbCBpcyBub3QgcHJlc2VudC4iKX1pZlByZXNlbnQoZSl7fWlmUHJlc2VudE9yRWxzZShlLHQpe3QoKX1maWx0ZXIoZSl7cmV0dXJuIHRoaXN9bWFwKGUpe3JldHVybiBjLmVtcHR5KCl9ZmxhdE1hcChlKXtyZXR1cm4gYy5lbXB0eSgpfW9yKGUpe3JldHVybiBlKCl9b3JFbHNlKGUpe3JldHVybiBlfW9yRWxzZUdldChlKXtyZXR1cm4gdGhpcy5vckVsc2UoZSgpKX1vckVsc2VUaHJvdyhlKXt0aHJvdyBlKCl9b3JOdWxsKCl7cmV0dXJuIG51bGx9b3JVbmRlZmluZWQoKXt9dG9PcHRpb24oKXtyZXR1cm57a2luZDoiZW1wdHkifX1tYXRjaGVzKGUpe3JldHVybiBlLmVtcHR5KCl9dG9KU09OKGUpe3JldHVybiBudWxsfX1jb25zdCBocj0iMS4yLjciO2Z1bmN0aW9uIGRyKHIpe2dsb2JhbFRoaXMuX3ZvbmFnZU1lZGlhUHJvY2Vzc29yTWV0YWRhdGE9cn1mdW5jdGlvbiBwcigpe3JldHVybiBnbG9iYWxUaGlzLl92b25hZ2VNZWRpYVByb2Nlc3Nvck1ldGFkYXRhfWNsYXNzIF97Y29uc3RydWN0b3IoKXtjb25zdCBlPXByKCk7dGhpcy5fcmVwb3J0PXthY3Rpb246Yy5lbXB0eSgpLGFwcGxpY2F0aW9uSWQ6Yy5vZk51bGxhYmxlKGUhPT12b2lkIDAmJmUhPW51bGw/ZS5hcHBJZDpudWxsKSx0aW1lc3RhbXA6RGF0ZS5ub3coKSxmcHM6Yy5lbXB0eSgpLGZyYW1lc1RyYW5zZm9ybWVkOmMuZW1wdHkoKSxndWlkOmMuZW1wdHkoKSxoaWdoZXN0RnJhbWVUcmFuc2Zvcm1DcHU6Yy5lbXB0eSgpLG1lc3NhZ2U6Yy5lbXB0eSgpLHNvdXJjZTpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLnNvdXJjZVR5cGU6bnVsbCksdHJhbnNmb3JtZWRGcHM6Yy5lbXB0eSgpLHRyYW5zZm9ybWVyVHlwZTpjLmVtcHR5KCksdmFyaWF0aW9uOmMuZW1wdHkoKSx2aWRlb0hlaWdodDpjLmVtcHR5KCksdmlkZW9XaWR0aDpjLmVtcHR5KCksdmVyc2lvbjpocixlcnJvcjpjLmVtcHR5KCkscHJveHlVcmw6Yy5vZk51bGxhYmxlKGUhPT12b2lkIDAmJmUhPW51bGw/ZS5wcm94eVVybDpudWxsKX19YWN0aW9uKGUpe3JldHVybiB0aGlzLl9yZXBvcnQuYWN0aW9uPWMub2ZOdWxsYWJsZShlKSx0aGlzfWZyYW1lc1RyYW5zZm9ybWVkKGUpe3JldHVybiB0aGlzLl9yZXBvcnQuZnJhbWVzVHJhbnNmb3JtZWQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZnBzKGUpe3JldHVybiB0aGlzLl9yZXBvcnQuZnBzPWMub2ZOdWxsYWJsZShlKSx0aGlzfWd1aWQoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5ndWlkPWMub2ZOdWxsYWJsZShlKSx0aGlzfW1lc3NhZ2UoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5tZXNzYWdlPWMub2ZOdWxsYWJsZShlKSx0aGlzfXRyYW5zZm9ybWVkRnBzKGUpe3JldHVybiB0aGlzLl9yZXBvcnQudHJhbnNmb3JtZWRGcHM9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dHJhbnNmb3JtZXJUeXBlKGUpe3JldHVybiB0aGlzLl9yZXBvcnQudHJhbnNmb3JtZXJUeXBlPWMub2ZOdWxsYWJsZShlKSx0aGlzfXZhcmlhdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVwb3J0LnZhcmlhdGlvbj1jLm9mTnVsbGFibGUoZSksdGhpc312aWRlb0hlaWdodChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0LnZpZGVvSGVpZ2h0PWMub2ZOdWxsYWJsZShlKSx0aGlzfXZpZGVvV2lkdGgoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC52aWRlb1dpZHRoPWMub2ZOdWxsYWJsZShlKSx0aGlzfWVycm9yKGUpe3JldHVybiB0aGlzLl9yZXBvcnQuZXJyb3I9Yy5vZk51bGxhYmxlKGUpLHRoaXN9YnVpbGQoKXtyZXR1cm4gdGhpcy5fcmVwb3J0fX1jb25zdCBtcj1yPT5KU09OLnN0cmluZ2lmeShyLChlLHQpPT57aWYodCE9PW51bGwpcmV0dXJuIHR9KTtjbGFzcyB2e3N0YXRpYyByZXBvcnQoZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0LHMpPT57aWYoZS5hcHBsaWNhdGlvbklkLmlzRW1wdHkoKXx8ZS5zb3VyY2UuaXNFbXB0eSgpKXt0KCJzdWNjZXNzIik7cmV0dXJufWxldCBuPWZyLmNyZWF0ZSgpLG89e3RpbWVvdXQ6MWU0LHRpbWVvdXRFcnJvck1lc3NhZ2U6IlJlcXVlc3QgdGltZW91dCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifX0saT0iaGxnLnRva2JveC5jb20vcHJvZC9sb2dnaW5nL3ZjcF93ZWJydGMiO2lmKGUucHJveHlVcmwuaXNFbXB0eSgpKWk9Imh0dHBzOi8vIitpO2Vsc2V7bGV0IGE7ZS5wcm94eVVybC5nZXQoKS5zbGljZShlLnByb3h5VXJsLmdldCgpLmxlbmd0aC0xKSE9PSIvIj9hPWUucHJveHlVcmwuZ2V0KCkrIi8iOmE9ZS5wcm94eVVybC5nZXQoKSxpPWEraX1uLnBvc3QoaSxtcihlKSxvKS50aGVuKGE9Pntjb25zb2xlLmxvZyhhKSx0KCJzdWNjZXNzIil9KS5jYXRjaChhPT57Y29uc29sZS5sb2coYSkscyhhKX0pfSl9fXZhciBXLGdyPW5ldyBVaW50OEFycmF5KDE2KTtmdW5jdGlvbiB5cigpe2lmKCFXJiYoVz10eXBlb2YgY3J5cHRvIT0idW5kZWZpbmVkIiYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmY3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKGNyeXB0byl8fHR5cGVvZiBtc0NyeXB0byE9InVuZGVmaW5lZCImJnR5cGVvZiBtc0NyeXB0by5nZXRSYW5kb21WYWx1ZXM9PSJmdW5jdGlvbiImJm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcy5iaW5kKG1zQ3J5cHRvKSwhVykpdGhyb3cgbmV3IEVycm9yKCJjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKCkgbm90IHN1cHBvcnRlZC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS91dWlkanMvdXVpZCNnZXRyYW5kb212YWx1ZXMtbm90LXN1cHBvcnRlZCIpO3JldHVybiBXKGdyKX12YXIgX3I9L14oPzpbMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMS01XVswLTlhLWZdezN9LVs4OWFiXVswLTlhLWZdezN9LVswLTlhLWZdezEyfXwwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDApJC9pO2Z1bmN0aW9uIHZyKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyImJl9yLnRlc3Qocil9Zm9yKHZhciBkPVtdLGxlPTA7bGU8MjU2OysrbGUpZC5wdXNoKChsZSsyNTYpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSkpO2Z1bmN0aW9uIGJyKHIpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTowLHQ9KGRbcltlKzBdXStkW3JbZSsxXV0rZFtyW2UrMl1dK2RbcltlKzNdXSsiLSIrZFtyW2UrNF1dK2RbcltlKzVdXSsiLSIrZFtyW2UrNl1dK2RbcltlKzddXSsiLSIrZFtyW2UrOF1dK2RbcltlKzldXSsiLSIrZFtyW2UrMTBdXStkW3JbZSsxMV1dK2RbcltlKzEyXV0rZFtyW2UrMTNdXStkW3JbZSsxNF1dK2RbcltlKzE1XV0pLnRvTG93ZXJDYXNlKCk7aWYoIXZyKHQpKXRocm93IFR5cGVFcnJvcigiU3RyaW5naWZpZWQgVVVJRCBpcyBpbnZhbGlkIik7cmV0dXJuIHR9ZnVuY3Rpb24gV2UocixlLHQpe3I9cnx8e307dmFyIHM9ci5yYW5kb218fChyLnJuZ3x8eXIpKCk7aWYoc1s2XT1zWzZdJjE1fDY0LHNbOF09c1s4XSY2M3wxMjgsZSl7dD10fHwwO2Zvcih2YXIgbj0wO248MTY7KytuKWVbdCtuXT1zW25dO3JldHVybiBlfXJldHVybiBicihzKX1jb25zdCBQPW5ldyBXZWFrTWFwLEc9bmV3IFdlYWtNYXAsVT1uZXcgV2Vha01hcCxjZT1TeW1ib2woImFueVByb2R1Y2VyIiksR2U9UHJvbWlzZS5yZXNvbHZlKCksUT1TeW1ib2woImxpc3RlbmVyQWRkZWQiKSxYPVN5bWJvbCgibGlzdGVuZXJSZW1vdmVkIik7bGV0IGZlPSExO2Z1bmN0aW9uIE0ocil7aWYodHlwZW9mIHIhPSJzdHJpbmciJiZ0eXBlb2YgciE9InN5bWJvbCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXZlbnROYW1lIG11c3QgYmUgYSBzdHJpbmcgb3IgYSBzeW1ib2wiKX1mdW5jdGlvbiBLKHIpe2lmKHR5cGVvZiByIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGsocixlKXtjb25zdCB0PUcuZ2V0KHIpO3JldHVybiB0LmhhcyhlKXx8dC5zZXQoZSxuZXcgU2V0KSx0LmdldChlKX1mdW5jdGlvbiBCKHIsZSl7Y29uc3QgdD10eXBlb2YgZT09InN0cmluZyJ8fHR5cGVvZiBlPT0ic3ltYm9sIj9lOmNlLHM9VS5nZXQocik7cmV0dXJuIHMuaGFzKHQpfHxzLnNldCh0LG5ldyBTZXQpLHMuZ2V0KHQpfWZ1bmN0aW9uIHdyKHIsZSx0KXtjb25zdCBzPVUuZ2V0KHIpO2lmKHMuaGFzKGUpKWZvcihjb25zdCBuIG9mIHMuZ2V0KGUpKW4uZW5xdWV1ZSh0KTtpZihzLmhhcyhjZSkpe2NvbnN0IG49UHJvbWlzZS5hbGwoW2UsdF0pO2Zvcihjb25zdCBvIG9mIHMuZ2V0KGNlKSlvLmVucXVldWUobil9fWZ1bmN0aW9uIFFlKHIsZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2xldCB0PSExLHM9KCk9Pnt9LG49W107Y29uc3Qgbz17ZW5xdWV1ZShpKXtuLnB1c2goaSkscygpfSxmaW5pc2goKXt0PSEwLHMoKX19O2Zvcihjb25zdCBpIG9mIGUpQihyLGkpLmFkZChvKTtyZXR1cm57YXN5bmMgbmV4dCgpe3JldHVybiBuP24ubGVuZ3RoPT09MD90PyhuPXZvaWQgMCx0aGlzLm5leHQoKSk6KGF3YWl0IG5ldyBQcm9taXNlKGk9PntzPWl9KSx0aGlzLm5leHQoKSk6e2RvbmU6ITEsdmFsdWU6YXdhaXQgbi5zaGlmdCgpfTp7ZG9uZTohMH19LGFzeW5jIHJldHVybihpKXtuPXZvaWQgMDtmb3IoY29uc3QgYSBvZiBlKUIocixhKS5kZWxldGUobyk7cmV0dXJuIHMoKSxhcmd1bWVudHMubGVuZ3RoPjA/e2RvbmU6ITAsdmFsdWU6YXdhaXQgaX06e2RvbmU6ITB9fSxbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7cmV0dXJuIHRoaXN9fX1mdW5jdGlvbiBYZShyKXtpZihyPT09dm9pZCAwKXJldHVybiBLZTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyIpO2Zvcihjb25zdCBlIG9mIHIpaWYoIUtlLmluY2x1ZGVzKGUpKXRocm93IHR5cGVvZiBlIT0ic3RyaW5nIj9uZXcgVHlwZUVycm9yKCJgbWV0aG9kTmFtZXNgIGVsZW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOm5ldyBFcnJvcihgJHtlfSBpcyBub3QgRW1pdHRlcnkgbWV0aG9kYCk7cmV0dXJuIHJ9Y29uc3QgaGU9cj0+cj09PVF8fHI9PT1YO2NsYXNzIEN7c3RhdGljIG1peGluKGUsdCl7cmV0dXJuIHQ9WGUodCkscz0+e2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgZnVuY3Rpb24iKTtmb3IoY29uc3QgaSBvZiB0KWlmKHMucHJvdG90eXBlW2ldIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtpfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtmdW5jdGlvbiBuKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGUse2VudW1lcmFibGU6ITEsdmFsdWU6bmV3IEN9KSx0aGlzW2VdfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLnByb3RvdHlwZSxlLHtlbnVtZXJhYmxlOiExLGdldDpufSk7Y29uc3Qgbz1pPT5mdW5jdGlvbiguLi5hKXtyZXR1cm4gdGhpc1tlXVtpXSguLi5hKX07Zm9yKGNvbnN0IGkgb2YgdClPYmplY3QuZGVmaW5lUHJvcGVydHkocy5wcm90b3R5cGUsaSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpvKGkpfSk7cmV0dXJuIHN9fXN0YXRpYyBnZXQgaXNEZWJ1Z0VuYWJsZWQoKXtpZih0eXBlb2YgcHJvY2VzcyE9Im9iamVjdCIpcmV0dXJuIGZlO2NvbnN0e2VudjplfT1wcm9jZXNzfHx7ZW52Ont9fTtyZXR1cm4gZS5ERUJVRz09PSJlbWl0dGVyeSJ8fGUuREVCVUc9PT0iKiJ8fGZlfXN0YXRpYyBzZXQgaXNEZWJ1Z0VuYWJsZWQoZSl7ZmU9ZX1jb25zdHJ1Y3RvcihlPXt9KXtQLnNldCh0aGlzLG5ldyBTZXQpLEcuc2V0KHRoaXMsbmV3IE1hcCksVS5zZXQodGhpcyxuZXcgTWFwKSx0aGlzLmRlYnVnPWUuZGVidWd8fHt9LHRoaXMuZGVidWcuZW5hYmxlZD09PXZvaWQgMCYmKHRoaXMuZGVidWcuZW5hYmxlZD0hMSksdGhpcy5kZWJ1Zy5sb2dnZXJ8fCh0aGlzLmRlYnVnLmxvZ2dlcj0odCxzLG4sbyk9PntvPUpTT04uc3RyaW5naWZ5KG8pLHR5cGVvZiBuPT0ic3ltYm9sIiYmKG49bi50b1N0cmluZygpKTtjb25zdCBpPW5ldyBEYXRlLGE9YCR7aS5nZXRIb3VycygpfToke2kuZ2V0TWludXRlcygpfToke2kuZ2V0U2Vjb25kcygpfS4ke2kuZ2V0TWlsbGlzZWNvbmRzKCl9YDtjb25zb2xlLmxvZyhgWyR7YX1dW2VtaXR0ZXJ5OiR7dH1dWyR7c31dIEV2ZW50IE5hbWU6ICR7bn0KCWRhdGE6ICR7b31gKX0pfWxvZ0lmRGVidWdFbmFibGVkKGUsdCxzKXsoQy5pc0RlYnVnRW5hYmxlZHx8dGhpcy5kZWJ1Zy5lbmFibGVkKSYmdGhpcy5kZWJ1Zy5sb2dnZXIoZSx0aGlzLmRlYnVnLm5hbWUsdCxzKX1vbihlLHQpe0sodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBzIG9mIGUpTShzKSxrKHRoaXMscykuYWRkKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInN1YnNjcmliZSIscyx2b2lkIDApLGhlKHMpfHx0aGlzLmVtaXQoUSx7ZXZlbnROYW1lOnMsbGlzdGVuZXI6dH0pO3JldHVybiB0aGlzLm9mZi5iaW5kKHRoaXMsZSx0KX1vZmYoZSx0KXtLKHQpLGU9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgcyBvZiBlKU0ocyksayh0aGlzLHMpLmRlbGV0ZSh0KSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZSIscyx2b2lkIDApLGhlKHMpfHx0aGlzLmVtaXQoWCx7ZXZlbnROYW1lOnMsbGlzdGVuZXI6dH0pfW9uY2UoZSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9Pntjb25zdCBzPXRoaXMub24oZSxuPT57cygpLHQobil9KX0pfWV2ZW50cyhlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IHQgb2YgZSlNKHQpO3JldHVybiBRZSh0aGlzLGUpfWFzeW5jIGVtaXQoZSx0KXtNKGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImVtaXQiLGUsdCksd3IodGhpcyxlLHQpO2NvbnN0IHM9ayh0aGlzLGUpLG49UC5nZXQodGhpcyksbz1bLi4uc10saT1oZShlKT9bXTpbLi4ubl07YXdhaXQgR2UsYXdhaXQgUHJvbWlzZS5hbGwoWy4uLm8ubWFwKGFzeW5jIGE9PntpZihzLmhhcyhhKSlyZXR1cm4gYSh0KX0pLC4uLmkubWFwKGFzeW5jIGE9PntpZihuLmhhcyhhKSlyZXR1cm4gYShlLHQpfSldKX1hc3luYyBlbWl0U2VyaWFsKGUsdCl7TShlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJlbWl0U2VyaWFsIixlLHQpO2NvbnN0IHM9ayh0aGlzLGUpLG49UC5nZXQodGhpcyksbz1bLi4uc10saT1bLi4ubl07YXdhaXQgR2U7Zm9yKGNvbnN0IGEgb2YgbylzLmhhcyhhKSYmYXdhaXQgYSh0KTtmb3IoY29uc3QgYSBvZiBpKW4uaGFzKGEpJiZhd2FpdCBhKGUsdCl9b25BbnkoZSl7cmV0dXJuIEsoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlQW55Iix2b2lkIDAsdm9pZCAwKSxQLmdldCh0aGlzKS5hZGQoZSksdGhpcy5lbWl0KFEse2xpc3RlbmVyOmV9KSx0aGlzLm9mZkFueS5iaW5kKHRoaXMsZSl9YW55RXZlbnQoKXtyZXR1cm4gUWUodGhpcyl9b2ZmQW55KGUpe0soZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgidW5zdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLHRoaXMuZW1pdChYLHtsaXN0ZW5lcjplfSksUC5nZXQodGhpcykuZGVsZXRlKGUpfWNsZWFyTGlzdGVuZXJzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKWlmKHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImNsZWFyIix0LHZvaWQgMCksdHlwZW9mIHQ9PSJzdHJpbmcifHx0eXBlb2YgdD09InN5bWJvbCIpe2sodGhpcyx0KS5jbGVhcigpO2NvbnN0IHM9Qih0aGlzLHQpO2Zvcihjb25zdCBuIG9mIHMpbi5maW5pc2goKTtzLmNsZWFyKCl9ZWxzZXtQLmdldCh0aGlzKS5jbGVhcigpO2Zvcihjb25zdCBzIG9mIEcuZ2V0KHRoaXMpLnZhbHVlcygpKXMuY2xlYXIoKTtmb3IoY29uc3QgcyBvZiBVLmdldCh0aGlzKS52YWx1ZXMoKSl7Zm9yKGNvbnN0IG4gb2YgcyluLmZpbmlzaCgpO3MuY2xlYXIoKX19fWxpc3RlbmVyQ291bnQoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2xldCB0PTA7Zm9yKGNvbnN0IHMgb2YgZSl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt0Kz1QLmdldCh0aGlzKS5zaXplK2sodGhpcyxzKS5zaXplK0IodGhpcyxzKS5zaXplK0IodGhpcykuc2l6ZTtjb250aW51ZX10eXBlb2YgcyE9InVuZGVmaW5lZCImJk0ocyksdCs9UC5nZXQodGhpcykuc2l6ZTtmb3IoY29uc3QgbiBvZiBHLmdldCh0aGlzKS52YWx1ZXMoKSl0Kz1uLnNpemU7Zm9yKGNvbnN0IG4gb2YgVS5nZXQodGhpcykudmFsdWVzKCkpdCs9bi5zaXplfXJldHVybiB0fWJpbmRNZXRob2RzKGUsdCl7aWYodHlwZW9mIGUhPSJvYmplY3QifHxlPT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgdGFyZ2V0YCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9WGUodCk7Zm9yKGNvbnN0IHMgb2YgdCl7aWYoZVtzXSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSBcYCR7c31cYCBhbHJlYWR5IGV4aXN0cyBvbiBcYHRhcmdldFxgYCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscyx7ZW51bWVyYWJsZTohMSx2YWx1ZTp0aGlzW3NdLmJpbmQodGhpcyl9KX19fWNvbnN0IEtlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEMucHJvdG90eXBlKS5maWx0ZXIocj0+ciE9PSJjb25zdHJ1Y3RvciIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShDLCJsaXN0ZW5lckFkZGVkIix7dmFsdWU6USx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDLCJsaXN0ZW5lclJlbW92ZWQiLHt2YWx1ZTpYLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSk7dmFyIGRlPUM7ZnVuY3Rpb24gRXIocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJiJtZXNzYWdlImluIHImJnR5cGVvZiByLm1lc3NhZ2U9PSJzdHJpbmcifWZ1bmN0aW9uIFRyKHIpe2lmKEVyKHIpKXJldHVybiByO3RyeXtyZXR1cm4gbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHIpKX1jYXRjaHtyZXR1cm4gbmV3IEVycm9yKFN0cmluZyhyKSl9fWZ1bmN0aW9uIHBlKHIpe3JldHVybiBUcihyKS5tZXNzYWdlfXZhciBtZTsoZnVuY3Rpb24ocil7ci5GUFNfRFJPUD0iZnBzX2Ryb3AifSkobWV8fChtZT17fSkpO2NvbnN0IFJyPTUwMCxQcj0uODtjbGFzcyBDciBleHRlbmRzIGRle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLmluZGV4Xz10LHRoaXMudXVpZF89V2UoKSx0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXz0wLHRoaXMudHJhbnNmb3JtZXJfPWUsdGhpcy5zaG91bGRTdG9wXz0hMSx0aGlzLmlzRmxhc2hlZF89ITEsdGhpcy5mcmFtZXNGcm9tU291cmNlXz0wLHRoaXMuZnBzXz0wLHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz0wLHRoaXMudmlkZW9IZWlnaHRfPTAsdGhpcy52aWRlb1dpZHRoXz0wLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xLHRoaXMudHJhbnNmb3JtZXJUeXBlXz0iQ3VzdG9tIiwiZ2V0VHJhbnNmb3JtZXJUeXBlImluIGUmJih0aGlzLnRyYW5zZm9ybWVyVHlwZV89ZS5nZXRUcmFuc2Zvcm1lclR5cGUoKSk7Y29uc3Qgcz1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJDcmVhdGUiKS5idWlsZCgpO3YucmVwb3J0KHMpfXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWV9YXN5bmMgc3RhcnQoZSl7aWYodGhpcy5jb250cm9sbGVyXz1lLHRoaXMudHJhbnNmb3JtZXJfJiZ0eXBlb2YgdGhpcy50cmFuc2Zvcm1lcl8uc3RhcnQ9PSJmdW5jdGlvbiIpdHJ5e2F3YWl0IHRoaXMudHJhbnNmb3JtZXJfLnN0YXJ0KGUpfWNhdGNoKHQpe2NvbnN0IHM9bmV3IF8oKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMudHJhbnNmb3JtZXJfc3RhcnQpLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiRXJyb3IiKS5lcnJvcihwZSh0KSkuYnVpbGQoKTt2LnJlcG9ydChzKTtjb25zdCBuPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjp0LGZ1bmN0aW9uOiJzdGFydCJ9O3RoaXMuZW1pdCgiZXJyb3IiLG4pfX1hc3luYyB0cmFuc2Zvcm0oZSx0KXt2YXIgcyxuLG8saTtpZih0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89PT0wJiYodGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPURhdGUubm93KCkpLGUgaW5zdGFuY2VvZiBWaWRlb0ZyYW1lJiYodGhpcy52aWRlb0hlaWdodF89KHM9ZT09bnVsbD92b2lkIDA6ZS5kaXNwbGF5SGVpZ2h0KSE9bnVsbD9zOjAsdGhpcy52aWRlb1dpZHRoXz0obj1lPT1udWxsP3ZvaWQgMDplLmRpc3BsYXlXaWR0aCkhPW51bGw/bjowKSwrK3RoaXMuZnJhbWVzRnJvbVNvdXJjZV8sdGhpcy50cmFuc2Zvcm1lcl8paWYodGhpcy5zaG91bGRTdG9wXyljb25zb2xlLndhcm4oIltQaXBlbGluZV0gZmx1c2ggZnJvbSB0cmFuc2Zvcm0iKSxlLmNsb3NlKCksdGhpcy5mbHVzaCh0KSx0LnRlcm1pbmF0ZSgpO2Vsc2UgdHJ5e2F3YWl0KChpPShvPXRoaXMudHJhbnNmb3JtZXJfKS50cmFuc2Zvcm0pPT1udWxsP3ZvaWQgMDppLmNhbGwobyxlLHQpKSwrK3RoaXMuZnJhbWVzVHJhbnNmb3JtZWRfLHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfPT09UnImJnRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydCgpfWNhdGNoKGEpe2NvbnN0IGw9bmV3IF8oKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMudHJhbnNmb3JtZXJfdHJhbnNmb3JtKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkVycm9yIikuZXJyb3IocGUoYSkpLmJ1aWxkKCk7di5yZXBvcnQobCk7Y29uc3QgbT17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6YSxmdW5jdGlvbjoidHJhbnNmb3JtIn07dGhpcy5lbWl0KCJlcnJvciIsbSl9fWFzeW5jIGZsdXNoKGUpe2lmKHRoaXMudHJhbnNmb3JtZXJfJiZ0eXBlb2YgdGhpcy50cmFuc2Zvcm1lcl8uZmx1c2g9PSJmdW5jdGlvbiImJiF0aGlzLmlzRmxhc2hlZF8pe3RoaXMuaXNGbGFzaGVkXz0hMDt0cnl7YXdhaXQgdGhpcy50cmFuc2Zvcm1lcl8uZmx1c2goZSl9Y2F0Y2gocyl7Y29uc3Qgbj1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShULmVycm9ycy50cmFuc2Zvcm1lcl9mbHVzaCkudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJFcnJvciIpLmVycm9yKHBlKHMpKS5idWlsZCgpO3YucmVwb3J0KG4pO2NvbnN0IG89e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LGVycm9yOnMsZnVuY3Rpb246ImZsdXNoIn07dGhpcy5lbWl0KCJlcnJvciIsbyl9fXRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydCgpO2NvbnN0IHQ9bmV3IF8oKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5ndWlkKHRoaXMudXVpZF8pLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiRGVsZXRlIikuYnVpbGQoKTt2LnJlcG9ydCh0KX1zdG9wKCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gU3RvcCBzdHJlYW0uIiksdGhpcy5jb250cm9sbGVyXyYmKHRoaXMuZmx1c2godGhpcy5jb250cm9sbGVyXyksdGhpcy5jb250cm9sbGVyXy50ZXJtaW5hdGUoKSksdGhpcy5zaG91bGRTdG9wXz0hMH1tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0KCl7bGV0IGU9KERhdGUubm93KCktdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfKS8xZTMsdD10aGlzLmZyYW1lc0Zyb21Tb3VyY2VfL2Uscz10aGlzLmZyYW1lc1RyYW5zZm9ybWVkXy9lO2lmKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfIT0tMSYmdGhpcy50cmFja0V4cGVjdGVkUmF0ZV8qUHI+dCl7Y29uc3Qgbz17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sd2FybmluZ1R5cGU6bWUuRlBTX0RST1AsZHJvcEluZm86e3JlcXVlc3RlZDp0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyxjdXJyZW50OnR9fTt0aGlzLmVtaXQoIndhcm4iLG8pfWNvbnN0IG49bmV3IF8oKS5hY3Rpb24oIk1lZGlhVHJhbnNmb3JtZXIiKS5mcHModCkudHJhbnNmb3JtZWRGcHMocykuZnJhbWVzVHJhbnNmb3JtZWQodGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF8pLmd1aWQodGhpcy51dWlkXykudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmlkZW9IZWlnaHQodGhpcy52aWRlb0hlaWdodF8pLnZpZGVvV2lkdGgodGhpcy52aWRlb1dpZHRoXykudmFyaWF0aW9uKCJRb1MiKS5idWlsZCgpO3YucmVwb3J0KG4pLHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz0wLHRoaXMuZnJhbWVzRnJvbVNvdXJjZV89MCx0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXz0wfX1jbGFzcyBTciBleHRlbmRzIGRle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy50cmFuc2Zvcm1lcnNfPVtdLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgcz1uZXcgQ3IoZVt0XSx0KTtzLm9uKCJlcnJvciIsbj0+e3RoaXMuZW1pdCgiZXJyb3IiLG4pfSkscy5vbigid2FybiIsbj0+e3RoaXMuZW1pdCgid2FybiIsbil9KSx0aGlzLnRyYW5zZm9ybWVyc18ucHVzaChzKX19c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZTtmb3IobGV0IHQgb2YgdGhpcy50cmFuc2Zvcm1lcnNfKXQuc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pfWFzeW5jIHN0YXJ0KGUsdCl7aWYoIXRoaXMudHJhbnNmb3JtZXJzX3x8dGhpcy50cmFuc2Zvcm1lcnNfLmxlbmd0aD09PTApe2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIE5vIHRyYW5zZm9ybWVycy4iKTtyZXR1cm59dHJ5e2xldCBzPWU7Zm9yKGxldCBuIG9mIHRoaXMudHJhbnNmb3JtZXJzXyllPWUucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbShuKSk7ZS5waXBlVG8odCkudGhlbihhc3luYygpPT57Y29uc29sZS5sb2coIltQaXBlbGluZV0gU2V0dXAuIiksYXdhaXQgdC5hYm9ydCgpLGF3YWl0IHMuY2FuY2VsKCksdGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLHttZXNzYWdlOiJwaXBlbGluZV9lbmRlZCJ9KX0pLmNhdGNoKGFzeW5jIG49PntlLmNhbmNlbCgpLnRoZW4oKCk9Pntjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTaHV0dGluZyBkb3duIHN0cmVhbXMgYWZ0ZXIgYWJvcnQuIil9KS5jYXRjaChvPT57Y29uc29sZS5lcnJvcigiW1BpcGVsaW5lXSBFcnJvciBmcm9tIHN0cmVhbSB0cmFuc2Zvcm06IixvKX0pLGF3YWl0IHQuYWJvcnQobiksYXdhaXQgcy5jYW5jZWwobiksdGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLHttZXNzYWdlOiJwaXBlbGluZV9lbmRlZF93aXRoX2Vycm9yIn0pfSl9Y2F0Y2h7dGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLHttZXNzYWdlOiJwaXBlbGluZV9zdGFydGVkX3dpdGhfZXJyb3IifSksdGhpcy5kZXN0cm95KCk7cmV0dXJufXRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIix7bWVzc2FnZToicGlwZWxpbmVfc3RhcnRlZCJ9KSxjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBQaXBlbGluZSBzdGFydGVkLiIpfWFzeW5jIGRlc3Ryb3koKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBEZXN0cm95aW5nIFBpcGVsaW5lLiIpO2ZvcihsZXQgZSBvZiB0aGlzLnRyYW5zZm9ybWVyc18pZS5zdG9wKCl9fWNsYXNzIHhyIGV4dGVuZHMgZGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudXVpZF89V2UoKSx0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz0tMTtjb25zdCBlPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykudmFyaWF0aW9uKCJDcmVhdGUiKS5idWlsZCgpO3YucmVwb3J0KGUpfXNldFRyYWNrRXhwZWN0ZWRSYXRlKGUpe3RoaXMudHJhY2tFeHBlY3RlZFJhdGVfPWUsdGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKX10cmFuc2Zvcm0oZSx0KXtyZXR1cm4gdGhpcy5yZWFkYWJsZV89ZSx0aGlzLndyaXRhYmxlXz10LHRoaXMudHJhbnNmb3JtSW50ZXJuYWwoKX10cmFuc2Zvcm1JbnRlcm5hbCgpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e2lmKCF0aGlzLnRyYW5zZm9ybWVyc198fHRoaXMudHJhbnNmb3JtZXJzXy5sZW5ndGg9PT0wKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShULmVycm9ycy50cmFuc2Zvcm1lcl9ub25lKS52YXJpYXRpb24oIkVycm9yIikuYnVpbGQoKTt2LnJlcG9ydChuKSx0KCJbTWVkaWFQcm9jZXNzb3JdIE5lZWQgdG8gc2V0IHRyYW5zZm9ybWVycy4iKTtyZXR1cm59aWYoIXRoaXMucmVhZGFibGVfKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShULmVycm9ycy5yZWFkYWJsZV9udWxsKS52YXJpYXRpb24oIkVycm9yIikuYnVpbGQoKTt2LnJlcG9ydChuKSx0KCJbTWVkaWFQcm9jZXNzb3JdIFJlYWRhYmxlIGlzIG51bGwuIik7cmV0dXJufWlmKCF0aGlzLndyaXRhYmxlXyl7Y29uc3Qgbj1uZXcgXygpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC5lcnJvcnMud3JpdGFibGVfbnVsbCkudmFyaWF0aW9uKCJFcnJvciIpLmJ1aWxkKCk7di5yZXBvcnQobiksdCgiW01lZGlhUHJvY2Vzc29yXSBXcml0YWJsZSBpcyBudWxsLiIpO3JldHVybn1sZXQgcz0hMTt0aGlzLnBpcGVsaW5lXyYmKHM9ITAsdGhpcy5waXBlbGluZV8uY2xlYXJMaXN0ZW5lcnMoKSx0aGlzLnBpcGVsaW5lXy5kZXN0cm95KCkpLHRoaXMucGlwZWxpbmVfPW5ldyBTcih0aGlzLnRyYW5zZm9ybWVyc18pLHRoaXMucGlwZWxpbmVfLm9uKCJ3YXJuIixuPT57dGhpcy5lbWl0KCJ3YXJuIixuKX0pLHRoaXMucGlwZWxpbmVfLm9uKCJlcnJvciIsbj0+e3RoaXMuZW1pdCgiZXJyb3IiLG4pfSksdGhpcy5waXBlbGluZV8ub24oInBpcGVsaW5lSW5mbyIsbj0+e3MmJihuLm1lc3NhZ2U9PT0icGlwZWxpbmVfc3RhcnRlZCI/bi5tZXNzYWdlPSJwaXBlbGluZV9yZXN0YXJ0ZWQiOm4ubWVzc2FnZT09PSJwaXBlbGluZV9zdGFydGVkX3dpdGhfZXJyb3IiJiYobi5tZXNzYWdlPSJwaXBlbGluZV9yZXN0YXJ0ZWRfd2l0aF9lcnJvciIpKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIsbil9KSx0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyE9LTEmJnRoaXMucGlwZWxpbmVfLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfKSx0aGlzLnBpcGVsaW5lXy5zdGFydCh0aGlzLnJlYWRhYmxlXyx0aGlzLndyaXRhYmxlXykudGhlbigoKT0+e2UoKX0pLmNhdGNoKG49Pnt0KG4pfSl9KX1zZXRUcmFuc2Zvcm1lcnMoZSl7Y29uc3QgdD1uZXcgXygpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLm1lc3NhZ2UoVC51cGRhdGVzLnRyYW5zZm9ybWVyX25ldykudmFyaWF0aW9uKCJVcGRhdGUiKS5idWlsZCgpO3JldHVybiB2LnJlcG9ydCh0KSx0aGlzLnRyYW5zZm9ybWVyc189ZSx0aGlzLnJlYWRhYmxlXyYmdGhpcy53cml0YWJsZV8/dGhpcy50cmFuc2Zvcm1JbnRlcm5hbCgpOlByb21pc2UucmVzb2x2ZSgpfWRlc3Ryb3koKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e3RoaXMucGlwZWxpbmVfJiZ0aGlzLnBpcGVsaW5lXy5kZXN0cm95KCk7Y29uc3QgdD1uZXcgXygpLmFjdGlvbigiTWVkaWFQcm9jZXNzb3IiKS5ndWlkKHRoaXMudXVpZF8pLnZhcmlhdGlvbigiRGVsZXRlIikuYnVpbGQoKTt2LnJlcG9ydCh0KSxlKCl9KX19dmFyIGdlPShyPT4oci5Mb3c9IkxvdyIsci5IaWdoPSJIaWdoIixyKSkoZ2V8fHt9KTtjbGFzcyBZZXtjb25zdHJ1Y3RvcihlKXt0eXBlb2YgZT09Im51bWJlciI/dGhpcy5ibHVyRmlsdGVyXz0iYmx1cigiK2UrInB4KSI6dGhpcy5ibHVyRmlsdGVyXz1lPT09Z2UuSGlnaD8iYmx1cigxMHB4KSI6ImJsdXIoNXB4KSJ9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57ZSgpfSl9cnVuUG9zdFByb2Nlc3NpbmcoZSx0KXt0cnl7ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLW92ZXIiLGUuZmlsdGVyPXRoaXMuYmx1ckZpbHRlcl8sZS5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9Y2F0Y2gocyl7Y29uc29sZS5sb2coIltCbHVyUG9zdFByb2Nlc3NdIEZhaWxlZCB0byBkcmF3IGNhbnZhcyIscyl9fX1jbGFzcyBaZXtjb25zdHJ1Y3Rvcigpe31kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9Pnt0aGlzLmJnSW1hZ2VfJiZ0aGlzLmJnSW1hZ2VfLmNsb3NlKCksZSgpfSl9c2V0VmlydHVhbEJHSW1hZ2UoZSl7dGhpcy5iZ0ltYWdlXyYmdGhpcy5iZ0ltYWdlXy5jbG9zZSgpLHRoaXMuYmdJbWFnZV89ZX1hc3luYyBydW5Qb3N0UHJvY2Vzc2luZyhlLHQpe2lmKHRoaXMuYmdJbWFnZV8pe2lmKHRoaXMuYmdJbWFnZV8ud2lkdGghPXQud2lkdGh8fHRoaXMuYmdJbWFnZV8uaGVpZ2h0IT10LmhlaWdodCl7Y29uc3Qgcz0iaGlnaCIsbj17cmVzaXplV2lkdGg6dC53aWR0aCxyZXNpemVIZWlnaHQ6dC5oZWlnaHQscmVzaXplUXVhbGl0eTpzfTt0cnl7dGhpcy5iZ0ltYWdlXz1hd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh0aGlzLmJnSW1hZ2VfLG4pfWNhdGNoKG8pe3Rocm93IG99fWUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmRyYXdJbWFnZSh0aGlzLmJnSW1hZ2VfLDAsMCx0aGlzLmJnSW1hZ2VfLndpZHRoLHRoaXMuYmdJbWFnZV8uaGVpZ2h0KX19fWNsYXNzIE9ye2NvbnN0cnVjdG9yKGU9MS8wKXt0aGlzLmNhcGFjaXR5PWUsdGhpcy5zdG9yYWdlPVtdfWVucXVldWUoZSl7aWYodGhpcy5zaXplKCk9PT10aGlzLmNhcGFjaXR5KXRocm93IEVycm9yKCJRdWV1ZSBoYXMgcmVhY2hlZCBtYXggY2FwYWNpdHksIHlvdSBjYW5ub3QgYWRkIG1vcmUgaXRlbXMiKTt0aGlzLnN0b3JhZ2UucHVzaChlKX1kZXF1ZXVlKCl7cmV0dXJuIHRoaXMuc3RvcmFnZS5zaGlmdCgpfXNpemUoKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmxlbmd0aH19Y29uc3QgeWU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnF1ZXVlXz1uZXcgT3J9Y2xlYXJRdWV1ZShyKXtmb3IoO3RoaXMucXVldWVfLnNpemUoKT4wOyl0aGlzLnF1ZXVlXy5kZXF1ZXVlKCkuY2xvc2UoKX1zZXRWaWRlb1JlYWRhYmxlKHIpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMuZnJhbWVSZWFkZXJfPXIuZ2V0UmVhZGVyKCksdGhpcy5mcmFtZVJlYWRlcl8ucmVhZCgpLnRoZW4ocz0+e3RoaXMucHJvY2Vzc0ZyYW1lKHMpfSkuY2F0Y2gocz0+e3Qocyl9KSxlKCl9KX1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKHIsZSk9Pnt2YXIgdDt0aGlzLmNsZWFyUXVldWUoITApLHRoaXMuZnJhbWVSZWFkZXJfPyh0PXRoaXMuZnJhbWVSZWFkZXJfKT09bnVsbHx8dC5jYW5jZWwoKS50aGVuKCgpPT57cigpfSkuY2F0Y2gocz0+e2Uocyl9KTpyKCl9KX1wcm9jZXNzRnJhbWUocil7aWYoIXIuZG9uZSl7aWYoIXRoaXMuZnJhbWVSZWFkZXJfKXtyLnZhbHVlLmNsb3NlKCk7cmV0dXJufWZvcig7dGhpcy5xdWV1ZV8uc2l6ZSgpPj15ZS5OVU1CRVJfT0ZfRlJBTUVTX1RPX0NMRUFSOyl7bGV0IGU9dGhpcy5xdWV1ZV8uZGVxdWV1ZSgpO2UmJmUuY2xvc2UoKX10aGlzLnF1ZXVlXy5lbnF1ZXVlKHIudmFsdWUpLHRoaXMuZnJhbWVSZWFkZXJfLnJlYWQoKS50aGVuKGU9Pnt0aGlzLnByb2Nlc3NGcmFtZShlKX0pLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGUpfSl9fXJ1blBvc3RQcm9jZXNzaW5nKHIsZSl7dHJ5e2lmKHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIix0aGlzLnF1ZXVlXy5zaXplKCk+eWUuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUiYmdGhpcy5jbGVhclF1ZXVlKCExKSx0aGlzLnF1ZXVlXy5zaXplKCk+MCl7Y29uc3QgdD10aGlzLnF1ZXVlXy5kZXF1ZXVlKCk7ci5kcmF3SW1hZ2UodCwwLDAsZS53aWR0aCxlLmhlaWdodCksdC5jbG9zZSgpfX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJbVmlkZW9Qb3N0UHJvY2Vzc10gRmFpbGVkIHRvIGRyYXcgY2FudmFzIix0KX19fTtsZXQgX2U9eWU7X2UuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUj01O2NsYXNzIElye2NvbnN0cnVjdG9yKGUpe3R5cGVvZiBlPT0ibnVtYmVyIj90aGlzLmJsdXJGaWx0ZXJfPSJibHVyKCIrZSsicHgpIjp0aGlzLmJsdXJGaWx0ZXJfPWU9PT1nZS5IaWdoPyJibHVyKDEwcHgpIjoiYmx1cig1cHgpIn1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntlKCl9KX1ydW5Qb3N0UHJvY2Vzc2luZyhlLHQpe3RyeXtlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWluIixlLmZpbHRlcj10aGlzLmJsdXJGaWx0ZXJfLGUuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmZpbHRlcj0iYmx1cigwcHgpIixlLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KX1jYXRjaChzKXtjb25zb2xlLmxvZygiW0JsdXJQb3N0UHJvY2Vzc10gRmFpbGVkIHRvIGRyYXcgY2FudmFzIixzKX19fWNvbnN0IHZlPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5yZXN1bHRDYW52YXNfPW5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKSx0aGlzLnJlc3VsdEN0eF89dGhpcy5yZXN1bHRDYW52YXNfLmdldENvbnRleHQoIjJkIix7ZGVzeW5jaHJvbml6ZWQ6ITB9KSwhdGhpcy5yZXN1bHRDdHhfKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGNyZWF0ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiKTtpZih0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfPW5ldyBPZmZzY3JlZW5DYW52YXModmUuU0VMRklFX1dJRFRILHZlLlNFTEZJRV9ISUdIVCksdGhpcy5zZWdtZW50YXRpb25NYXNrQ3R4Xz10aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITEsZGVzeW5jaHJvbml6ZWQ6ITB9KSwhdGhpcy5zZWdtZW50YXRpb25NYXNrQ3R4Xyl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIik7aWYodGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXz1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSksdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ3R4Xz10aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDYW52YXNfLmdldENvbnRleHQoIjJkIix7ZGVzeW5jaHJvbml6ZWQ6ITB9KSwhdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ3R4Xyl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIil9aW5pdChyKXt0aGlzLnByb2Nlc3NGcmFtZUNiPXJ9YXN5bmMgc2V0QmFja2dyb3VuZE9wdGlvbnMocil7aWYodHlwZW9mIHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfIT0idW5kZWZpbmVkIil0cnl7YXdhaXQgdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8uZGVzdHJveSgpfWNhdGNoKGUpe3Rocm93IGV9aWYoci50cmFuc2Zvcm1lclR5cGU9PT0iVmlydHVhbEJhY2tncm91bmQiKXRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyBaZTtlbHNlIGlmKHIudHJhbnNmb3JtZXJUeXBlPT09IkJhY2tncm91bmRCbHVyIil7bGV0IGU9cjt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWWUoZS5yYWRpdXMpfWVsc2UgaWYoci50cmFuc2Zvcm1lclR5cGU9PT0iVmlkZW9CYWNrZ3JvdW5kIil0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgX2U7ZWxzZSBpZihyLnRyYW5zZm9ybWVyVHlwZT09PSJTaWx1ZXRlQmx1ciIpe2xldCBlPXI7dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV89bmV3IElyKGUucmFkaXVzKX1lbHNlIHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyBZZX1jbG9zZSgpe3JldHVybiBuZXcgUHJvbWlzZSgocixlKT0+e3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmRlc3Ryb3koKS50aGVuKCgpPT57cigpfSkuY2F0Y2godD0+e2UodCl9KTpyKCl9KX1zdGFydCgpe31hc3luYyB0cmFuc2Zvcm0ocixlKXsodGhpcy5yZXN1bHRDYW52YXNfLndpZHRoIT1yLmRpc3BsYXlXaWR0aHx8dGhpcy5yZXN1bHRDYW52YXNfLmhlaWdodCE9ci5kaXNwbGF5SGVpZ2h0KSYmKHRoaXMucmVzdWx0Q2FudmFzXy53aWR0aD1yLmRpc3BsYXlXaWR0aCx0aGlzLnJlc3VsdENhbnZhc18uaGVpZ2h0PXIuZGlzcGxheUhlaWdodCk7Y29uc3QgdD1yLnRpbWVzdGFtcDtjcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKHM9PntyLmNsb3NlKCksdGhpcy5wcm9jZXNzRnJhbWUoZSxzLHQpfSkuY2F0Y2gocz0+e2UuZW5xdWV1ZShyKX0pfXByb2Nlc3NGcmFtZShyLGUsdCl7dGhpcy5wcm9jZXNzU291cmNlKGUpLHRoaXMucmVzdWx0Q3R4Xy5zYXZlKCksdGhpcy5yZXN1bHRDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpLHRoaXMucmVzdWx0Q3R4Xy5kcmF3SW1hZ2UodGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXywwLDAsdGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXy53aWR0aCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLmhlaWdodCwwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpLHRoaXMucmVzdWx0Q3R4Xy5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsdGhpcy5yZXN1bHRDdHhfLmZpbHRlcj0ibm9uZSIsdGhpcy5yZXN1bHRDdHhfLmRyYXdJbWFnZShlLDAsMCxlLndpZHRoLGUuaGVpZ2h0LDAsMCx0aGlzLnJlc3VsdENhbnZhc18ud2lkdGgsdGhpcy5yZXN1bHRDYW52YXNfLmhlaWdodCksdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8mJnRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLnJ1blBvc3RQcm9jZXNzaW5nKHRoaXMucmVzdWx0Q3R4XyxlKSx0aGlzLnJlc3VsdEN0eF8ucmVzdG9yZSgpLHIuZW5xdWV1ZShuZXcgVmlkZW9GcmFtZSh0aGlzLnJlc3VsdENhbnZhc18se3RpbWVzdGFtcDp0LGFscGhhOiJkaXNjYXJkIn0pKSxlLmNsb3NlKCl9cHJvY2Vzc1NvdXJjZShyKXtpZih0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXy53aWR0aCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLmhlaWdodCksdGhpcy5zZWdtZW50YXRpb25NYXNrQ3R4Xy5kcmF3SW1hZ2UociwwLDAsci53aWR0aCxyLmhlaWdodCwwLDAsdGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXy53aWR0aCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLmhlaWdodCksdGhpcy5wcm9jZXNzRnJhbWVDYil7bGV0IGU9dGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTt0aGlzLnByb2Nlc3NGcmFtZUNiKGUpfX1mbHVzaCgpe31nZXRUcmFuc2Zvcm1lclR5cGUoKXtyZXR1cm4iQmFja2dyb3VuZFRyYW5zZm9ybWVyIn1zZXRWaWRlb0JHUmVhZGFibGUocil7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8gaW5zdGFuY2VvZiBfZT90aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXy5zZXRWaWRlb1JlYWRhYmxlKHIpLnRoZW4oKCk9PntlKCl9KS5jYXRjaChzPT57dChzKX0pOnQoInBvc3QgcHJvY2VzcyBpcyBub3QgdmlkZW8iKX0pfXNldFZpcnR1YWxCR0ltYWdlKHIpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfIGluc3RhbmNlb2YgWmU/KHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLnNldFZpcnR1YWxCR0ltYWdlKHIpLGUoKSk6dCgicG9zdCBwcm9jZXNzIGlzIG5vdCB2aWRlbyIpfSl9c2V0U2VnbWVudGF0aW9uTWFza0ltYWdlKHIpeyhyLmhlaWdodCE9dGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXy5oZWlnaHR8fHIud2lkdGghPXRoaXMuc2VnbWVudGF0aW9uUmVzdWx0c0NhbnZhc18ud2lkdGgpJiYodGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXy53aWR0aD1yLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uUmVzdWx0c0NhbnZhc18uaGVpZ2h0PXIuaGVpZ2h0KSx0aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXy53aWR0aCx0aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDYW52YXNfLmhlaWdodCksdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ3R4Xy5kcmF3SW1hZ2UociwwLDApO2xldCBlPXRoaXMuc2VnbWVudGF0aW9uUmVzdWx0c0N0eF8uZ2V0SW1hZ2VEYXRhKDAsMCx0aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uUmVzdWx0c0NhbnZhc18uaGVpZ2h0KSx0PXRoaXMuc2VnbWVudGF0aW9uUmVzdWx0c0NhbnZhc18ud2lkdGgqdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXy5oZWlnaHQ7Zm9yKGxldCBzPTA7czx0O3MrKyllLmRhdGFbcyo0XTwxMDAmJihlLmRhdGFbcyo0XT0wKTt0aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ2FudmFzXy53aWR0aCx0aGlzLnNlZ21lbnRhdGlvblJlc3VsdHNDYW52YXNfLmhlaWdodCksdGhpcy5zZWdtZW50YXRpb25SZXN1bHRzQ3R4Xy5wdXRJbWFnZURhdGEoZSwwLDApLHIuY2xvc2UoKX19O2xldCBiZT12ZTtiZS5TRUxGSUVfV0lEVEg9MjU2LGJlLlNFTEZJRV9ISUdIVD0xNDQ7ZnVuY3Rpb24gTXIocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJiJtZXNzYWdlImluIHImJnR5cGVvZiByLm1lc3NhZ2U9PSJzdHJpbmcifWZ1bmN0aW9uIGtyKHIpe2lmKE1yKHIpKXJldHVybiByO3RyeXtyZXR1cm4gbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHIpKX1jYXRjaHtyZXR1cm4gbmV3IEVycm9yKFN0cmluZyhyKSl9fWZ1bmN0aW9uIEEocil7cmV0dXJuIHR5cGVvZiByPT0idW5kZWZpbmVkIj8iIjprcihyKS5tZXNzYWdlfWlmKHR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iKXtsZXQgcj1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgocyxuKT0+e2U9bmV3IHhyLGUub24oImVycm9yIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfZXJyb3JfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigid2FybiIsaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToibWVkaWFfcHJvY2Vzc29yX3dhcm5fZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigicGlwZWxpbmVJbmZvIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfcGlwZWxpbmVfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksdD1uZXcgYmUsdC5pbml0KGk9Pntwb3N0TWVzc2FnZShpLFtpXSl9KTtsZXQgbz1bXTtvLnB1c2godCksZS5zZXRUcmFuc2Zvcm1lcnMobykudGhlbigoKT0+e3MoKX0pLmNhdGNoKGk9PntuKGkpfSl9KX0sZSx0O29ubWVzc2FnZT1hc3luYyBzPT57aWYocy5kYXRhIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe3QmJnQuc2V0U2VnbWVudGF0aW9uTWFza0ltYWdlKHMuZGF0YSk7cmV0dXJufWNvbnN0e29wZXJhdGlvbjpufT1zLmRhdGE7aWYobj09PSJpbml0Iil7Y29uc3R7bWV0YURhdGE6b309cy5kYXRhO3R5cGVvZiBvPT0ic3RyaW5nIiYmZHIoSlNPTi5wYXJzZShvKSkscigpLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpBKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX1lbHNlIGlmKG49PT0idHJhbnNmb3JtIil7Y29uc3R7cmVhZGFibGU6byx3cml0YWJsZTppfT1zLmRhdGE7ZS50cmFuc2Zvcm0obyxpKS50aGVuKCgpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pLmNhdGNoKGE9Pntjb25zdCBsPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6QShhKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkobCkpfSl9ZWxzZSBpZihuPT09ImRlc3Ryb3kiKXQuY2xvc2UoKS5maW5hbGx5KCgpPT57ZS5kZXN0cm95KCkudGhlbigoKT0+e2NvbnN0IG89e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShvKSl9KS5jYXRjaChvPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOkEobyl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pfSk7ZWxzZSBpZihuPT09InNldFRyYWNrRXhwZWN0ZWRSYXRlIil7ZS5zZXRUcmFja0V4cGVjdGVkUmF0ZShzLmRhdGEucmF0ZSk7Y29uc3Qgbz17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KG8pKX1lbHNlIGlmKG49PT0ic2V0QmFja2dyb3VuZE9wdGlvbnMiKXtjb25zdHtiYWNrZ3JvdW5kT3B0aW9uczpvfT1zLmRhdGE7dC5zZXRCYWNrZ3JvdW5kT3B0aW9ucyhKU09OLnBhcnNlKG8pKS50aGVuKCgpPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pLmNhdGNoKGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6QShpKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSl9ZWxzZSBpZihuPT09InNldFZpZGVvQkdSZWFkYWJsZSIpe2NvbnN0e3JlYWRhYmxlOm99PXMuZGF0YTt0LnNldFZpZGVvQkdSZWFkYWJsZShvKS50aGVuKCgpPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pLmNhdGNoKGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6QShpKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSl9ZWxzZSBpZihuPT09InNldFZpcnR1YWxCR0ltYWdlIil7Y29uc3R7aW1hZ2U6b309cy5kYXRhO3Quc2V0VmlydHVhbEJHSW1hZ2UobykudGhlbigoKT0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KS5jYXRjaChpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOkEoaSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pfX19fSkoKTsK",Ni=typeof window!="undefined"&&window.Blob&&new Blob([atob(Ei)],{type:"text/javascript;charset=utf-8"});function e2(){const S=Ni&&(window.URL||window.webkitURL).createObjectURL(Ni);try{return S?new Worker(S,{}):new Worker("data:application/javascript;base64,"+Ei,{type:"module"})}finally{S&&(window.URL||window.webkitURL).revokeObjectURL(S)}}class Yi{static createVideoReadable(v){return new Promise((G,L)=>{const I=document.createElement("video");let A=new AbortController,Q=new AbortController;I.addEventListener("canplay",()=>{A.abort(),I.muted=!0,I.loop=!0,I.play().then(()=>{try{const U=I.captureStream(),dt=new MediaStreamTrackProcessor(U.getVideoTracks()[0]);G(dt.readable)}catch(U){L(U)}})},{once:!0,signal:Q.signal}),I.addEventListener("error",U=>{Q.abort(),L("loading error:"+U)},{once:!0,signal:A.signal}),I.crossOrigin="anonymous",I.src=v})}static createImageCanvas(v){return new Promise((G,L)=>{var I=new Image;I.onload=function(){createImageBitmap(I).then(A=>{I.remove(),G(A)}).catch(A=>{L(A)})},I.onerror=function(A){L(A)},I.crossOrigin="anonymous",I.src=v})}}class n2 extends $r{constructor(){super(),this.worker_=new e2,this.trackExpectedRate_=-1,this.workerInited_=!1,this.mediapipeHelper_=new zr,this.innerEmitty_=new $r,this.worker_.addEventListener("message",v=>{if(v.data instanceof ImageBitmap)this.mediapipeHelper_.send(v.data).then(()=>{v.data.close()}).catch(G=>{let L={error:G,eventMetaData:{transformerIndex:-1},function:"transform"};this.emit("error",L)});else{let G=JSON.parse(v.data);if(G.callbackType==="success"||G.callbackType==="error")G.message==="init"?this.innerEmitty_.emit("initResults",v.data):G.message==="transform"?this.innerEmitty_.emit("transformResults",v.data):G.message==="destroy"?this.innerEmitty_.emit("destroyResults",v.data):G.message==="setBackgroundOptions"?this.innerEmitty_.emit("setBackgroundOptionsResults",v.data):G.message==="setVideoBGReadable"?this.innerEmitty_.emit("setVideoBGReadableResults",v.data):G.message==="setVirtualBGImage"&&this.innerEmitty_.emit("setVirtualBGImageResults",v.data);else if(G.callbackType==="media_processor_error_event")this.emit("error",G.message);else if(G.callbackType==="media_processor_warn_event")this.emit("warn",G.message);else if(G.callbackType==="media_processor_pipeline_event"){this.emit("pipelineInfo",G.message);let L=G.message;(L.message==="pipeline_ended"||L.message==="pipeline_ended_with_error")&&this.mediapipeHelper_.close().finally(()=>{this.worker_&&(this.cleanInnerEmitty(),this.worker_.terminate(),this.workerInited_=!1,this.worker_=void 0)})}}})}cleanInnerEmitty(){let v="Worker ended";this.innerEmitty_.listenerCount("initResults")&&this.innerEmitty_.emit("initResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("destroyResults")&&this.innerEmitty_.emit("destroyResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setBackgroundOptionsResults")&&this.innerEmitty_.emit("setBackgroundOptionsResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVideoBGReadableResults")&&this.innerEmitty_.emit("setVideoBGReadableResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVirtualBGImageResults")&&this.innerEmitty_.emit("setVirtualBGImageResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("transformResults")&&this.innerEmitty_.emit("transformResults",JSON.stringify({error:v}))}init(v){return new Promise((G,L)=>{if(!this.worker_){L("worker is off");return}let I={modelSelection:1,selfieMode:!1};this.mediapipeHelper_.initialize({mediaPipeModelConfigArray:[{assetsUri:v.mediapipeBaseAssetsUri,modelType:"selfie_segmentation",options:I,listener:A=>{let Q=A;this.worker_&&this.worker_.postMessage(Q.segmentationMask,[Q.segmentationMask])}}]}).then(()=>{let A=JSON.stringify(zo());if(typeof A!="string"&&(A=JSON.stringify({})),!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"init",metaData:A}),this.innerEmitty_.once("initResults").then(Q=>{let U=JSON.parse(Q);U.callbackType==="success"?(this.workerInited_=!0,this.trackExpectedRate_!=-1&&this.postTrackExpectedRate(),this.setBackgroundOptions(v).then(()=>{G()}).catch(dt=>{L(dt)})):L(U.error)}).catch(Q=>{L(Q)})}).catch(A=>{L(A)})})}transform(v,G){return new Promise(async(L,I)=>{if(!this.worker_){I("worker is off");return}this.worker_.postMessage({operation:"transform",readable:v,writable:G},[v,G]),this.innerEmitty_.once("transformResults").then(A=>{let Q=JSON.parse(A);Q.callbackType==="success"?L():I(Q.error)}).catch(A=>{I(A)})})}destroy(){return new Promise(async(v,G)=>{if(!this.worker_){v();return}this.worker_.postMessage({operation:"destroy"}),this.innerEmitty_.once("destroyResults").then(L=>{let I=JSON.parse(L);I.callbackType==="success"?this.mediapipeHelper_.close().then(()=>{v()}).catch(A=>{G(A)}):G(I.error)}).catch(L=>{G(L)})})}setTrackExpectedRate(v){this.trackExpectedRate_=v,this.postTrackExpectedRate()}postTrackExpectedRate(){this.workerInited_&&this.worker_.postMessage({operation:"setTrackExpectedRate",rate:this.trackExpectedRate_})}setBackgroundOptions(v){return new Promise((G,L)=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setBackgroundOptions",backgroundOptions:JSON.stringify(v)}),this.innerEmitty_.once("setBackgroundOptionsResults").then(I=>{let A=JSON.parse(I);A.callbackType==="success"?v.transformerType==="VideoBackground"?Yi.createVideoReadable(v.backgroundAssetUri).then(Q=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setVideoBGReadable",readable:Q},[Q]),this.innerEmitty_.once("setVideoBGReadableResults").then(U=>{let dt=JSON.parse(U);dt.callbackType==="success"?G():L(dt.error)}).catch(U=>{L(U)})}).catch(Q=>{L(Q)}):v.transformerType==="VirtualBackground"?Yi.createImageCanvas(v.backgroundAssetUri).then(Q=>{if(!this.worker_){L("worker is off");return}this.worker_.postMessage({operation:"setVirtualBGImage",image:Q},[Q]),this.innerEmitty_.once("setVirtualBGImageResults").then(U=>{let dt=JSON.parse(U);dt.callbackType==="success"?G():L(dt.error)}).catch(U=>{L(U)})}).catch(Q=>{L(Q)}):G():L(A.error)}).catch(I=>{L(I)})})}}class qr extends $r{constructor(){super(),this.worker=new n2,this.connector=new $o(this.worker)}async init(v){await this.worker.init(v),this.worker.onAny((G,L)=>this.emit(G,L))}async setBackgroundOptions(v){await this.worker.setBackgroundOptions(v)}setTrackExpectedRate(v){this.worker.setTrackExpectedRate(v)}getConnector(){return this.connector}static async create(v){const G=new this;return await G.init(v),G}}let ir;async function r2(S){return await qr.create(S)}function i2(){return ir}function o2(S){S=S,ir.setTrackExpectedRate(S)}function u2(S){return new Promise(async(v,G)=>{ir=await qr.create(S),v(ir.getConnector())})}function s2(S){return new Promise((v,G)=>{ir?ir.setBackgroundOptions(S).then(()=>{v()}).catch(L=>{G(L)}):G("media processor is not set")})}fn.BlurRadius=Mn,fn.MediapipeHelper=zr,fn.VonageFacedetection=Sr,fn.VonageFacemash=Vr,fn.VonageHands=Gr,fn.VonageHolistic=Wr,fn.VonageMediaProcessor=qr,fn.VonageObjectron=Tr,fn.VonagePose=Ir,fn.VonageSelfiesegmentation=wr,fn.createVonageMediaProcessor=r2,fn.createVonageMediaProcessorConnector=u2,fn.getVonageEventEmitter=i2,fn.isSupported=qo,fn.setBackgroundOptions=s2,fn.setTrackExpectedRate=o2,Object.defineProperties(fn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|