@id3/face-pad
Advanced tools
Comparing version 1.5.10 to 1.5.11
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("downloadjs"),require("@id3/facedetector"),require("@angular/common"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("@id3/face-pad",["exports","@angular/core","@angular/common/http","rxjs","rxjs/operators","downloadjs","@id3/facedetector","@angular/common","@angular/platform-browser"],t):t(((e=e||self).id3=e.id3||{},e.id3["face-pad"]={}),e.ng.core,e.ng.common.http,e.rxjs,e.rxjs.operators,e.Downloadjs,e.FaceDetector,e.ng.common,e.ng.platformBrowser)}(this,function(e,t,i,n,a,o,r,s,c){"use strict";function p(e,t,i,n){return new(i||(i=Promise))(function(a,o){function r(e){try{c(n.next(e))}catch(e){o(e)}}function s(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){e.done?a(e.value):new i(function(t){t(e.value)}).then(r,s)}c((n=n.apply(e,t||[])).next())})}function d(e,t){var i,n,a,o,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=2&o[0]?n.return:o[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;switch(n=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return r.label++,{value:o[1],done:!1};case 5:r.label++,n=o[1],o=[0];continue;case 7:o=r.ops.pop(),r.trys.pop();continue;default:if(!(a=(a=r.trys).length>0&&a[a.length-1])&&(6===o[0]||2===o[0])){r=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){r.label=o[1];break}if(6===o[0]&&r.label<a[1]){r.label=a[1],a=o;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(o);break}a[2]&&r.ops.pop(),r.trys.pop();continue}o=t.call(e,r)}catch(e){o=[6,e],n=0}finally{i=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}o=o&&o.hasOwnProperty("default")?o.default:o;var l={REQUEST_PERMISSIONS:0,INITIAL:1,STARTED:2,PROCESS:3,SUCCESS:4,ERROR_KEY:5,ERROR_SESSION:6,ERROR_NO_FACE:7,ERROR_MULTIPLE_FACE:8,ERROR_NO_INTERNET_CONNECTION:9,ERROR_USER_TOO_FAR:10,ERROR_USER_NOT_CENTER:11,MATCH_READY:12,MATCH_SUCCESS:13,MATCH_ERROR:14};l[l.REQUEST_PERMISSIONS]="REQUEST_PERMISSIONS",l[l.INITIAL]="INITIAL",l[l.STARTED]="STARTED",l[l.PROCESS]="PROCESS",l[l.SUCCESS]="SUCCESS",l[l.ERROR_KEY]="ERROR_KEY",l[l.ERROR_SESSION]="ERROR_SESSION",l[l.ERROR_NO_FACE]="ERROR_NO_FACE",l[l.ERROR_MULTIPLE_FACE]="ERROR_MULTIPLE_FACE",l[l.ERROR_NO_INTERNET_CONNECTION]="ERROR_NO_INTERNET_CONNECTION",l[l.ERROR_USER_TOO_FAR]="ERROR_USER_TOO_FAR",l[l.ERROR_USER_NOT_CENTER]="ERROR_USER_NOT_CENTER",l[l.MATCH_READY]="MATCH_READY",l[l.MATCH_SUCCESS]="MATCH_SUCCESS",l[l.MATCH_ERROR]="MATCH_ERROR";var h=function(){this.autoMatchingEnabled=!1,this.downloadFinalPictureOnSuccessEnabled=!1,this.formatFinalPicture=!1,this.padFrequency=100,this.circleEnabled=!1,this.faceTrackingEnabled=!1,this.circleRadius=200,this.frameWidth=120,this.resultPictureWidth=600,this.faceTrackingOptionDesign=!1},S=function(){this.endSessionEventEmitter=new t.EventEmitter,this.sessionExpiredEventEmitter=new t.EventEmitter,this.internetLostEventEmitter=new t.EventEmitter,this.colorExcellentConnection="#08FF00",this.colorGoodConnection="#08FF00",this.colorMediumConnection="#FFA600",this.colorBadConnection="#FF0000",this.defaultColor="#C0C0C0",this.highLimit=40,this.mediumLimit=100,this.badLimit=150},u=function(){this.faceDetectedEventEmitter=new t.EventEmitter,this.detectionFailureEventEmitter=new t.EventEmitter,this.faceMatchingEventEmitter=new t.EventEmitter},g=function(){this.messages=new Map,this.mapLanguage=new Map},E=function(){this.videoWidth=800,this.videoHeight=600,this.videoConstraints={audio:!1,video:{height:{min:480}}},this.cameraEventEmitter=new t.EventEmitter},m=function(){},f=function(){},v=function(){function e(){this.faceApiBaseUrl="https://web-components.id3.eu",this.pingBaseUrl="https://web-components.id3.eu",this.faceParameters="/api/parameters",this.faceRotateAndCrop="/api/face/rotate-and-crop",this.faceMatching="/api/face/match/pictures",this.apiKey="",this.processState=l.REQUEST_PERMISSIONS,this.componentOptions=new h,this.sessionState=new S,this.faceState=new u,this.messageState=new g,this.videoState=new E,this.padCircleState=new m,this.trackerState=new f,this.changeStateEventEmitter=new t.EventEmitter}return e.prototype.getUrlParameters=function(){return this.faceApiBaseUrl+this.faceParameters},e.prototype.getUrlRotateAndCrop=function(){return this.faceApiBaseUrl+this.faceRotateAndCrop},e.prototype.getUrlMatching=function(){return this.faceApiBaseUrl+this.faceMatching},e.prototype.initApiParameters=function(e){this.faceParameters=e||this.faceParameters},e.prototype.initApiFace=function(e,t){this.faceRotateAndCrop=e||this.faceRotateAndCrop,this.faceMatching=t||this.faceMatching},e.prototype.initApiBase=function(e,t,i){this.apiKey=e||this.apiKey,this.faceApiBaseUrl=t||this.faceApiBaseUrl,this.pingBaseUrl=i||this.pingBaseUrl},e.prototype.initComponentOptions=function(e,t,i,n,a,o,r,s,c,p,d){this.componentOptions.autoMatchingEnabled=e,this.componentOptions.downloadFinalPictureOnSuccessEnabled=t,this.componentOptions.formatFinalPicture=i,this.componentOptions.padFrequency=n||this.componentOptions.padFrequency,this.componentOptions.circleEnabled=a,this.componentOptions.faceTrackingEnabled=o,this.componentOptions.circleRadius=r||this.componentOptions.circleRadius,this.componentOptions.frameWidth=s||this.componentOptions.frameWidth,this.componentOptions.colorProgressCircle=c||this.componentOptions.colorProgressCircle,this.componentOptions.resultPictureWidth=p||this.componentOptions.resultPictureWidth,this.componentOptions.faceTrackingOptionDesign=d},e.prototype.initVideoState=function(e,t){this.videoState.videoHeight=e,this.videoState.videoWidth=t},e.prototype.changeProcessState=function(e){this.processState=e,this.changeStateEventEmitter.emit(l[e])},e.prototype.clearState=function(){clearInterval(this.sessionState.padContinueInterval),this.sessionState.padContinueInterval=void 0,this.sessionState.processInstruction=void 0,this.trackerState.xCoord=void 0,this.trackerState.yCoord=void 0,this.trackerState.wCoord=void 0,this.trackerState.hCoord=void 0,this.sessionState.endSessionEventEmitter.emit(!0)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),R=function(){function e(e){this.padState=e}return e.prototype.connect=function(e){var t=this,i=this.padState.faceApiBaseUrl.replace("http","ws");return new Promise(function(n,a){t.ws=new WebSocket(i+"/pad/session"),t.ws.onopen=function(){console.log("Info: Connection PAD Established."),n(!0)},t.ws.onmessage=e,t.ws.onclose=function(e){console.log("Info: Closing PAD Connection."),a(!1)}})},e.prototype.disconnect=function(){null!=this.ws&&(this.ws.close(),this.ws=null)},e.prototype.isConnected=function(){return null!=this.ws&&this.ws.readyState===this.ws.OPEN},e.prototype.sendMessage=function(e){null!=this.ws?this.ws.bufferedAmount>2e5?console.log("Image not sent : Web socket buffer is too big. We have to wait the previous message to be send before sending a new message."):this.ws.send(JSON.stringify(e)):console.warn("connection to web socket not established, please connect.")},e.prototype.waitForSocketConnection=function(e,t){var i=this;setTimeout(function(){1===e.readyState?(console.log("Connection is made"),null!=t&&t()):(console.log("wait for connection..."),i.waitForSocketConnection(e,t))},5)},e.prototype.startPingServer=function(){var e=this,t=this.padState.pingBaseUrl.replace("http","ws");return new Promise(function(i,n){e.pingWebSocket=new WebSocket(t+"/ping"),e.pingWebSocket.onopen=function(){console.log("Info: Connection Ping Established."),e.pingServer(),i(!0)},e.pingWebSocket.onclose=function(e){console.log("Info: Closing Ping Connection."),n(!1)}})},e.prototype.pingServer=function(){var e=this;1===this.pingWebSocket.readyState?(this.pingWebSocket.send(JSON.stringify(Date.now())),this.pingWebSocket.addEventListener("message",function(t){e.padState.sessionState.latency=Date.now()-t.data,setTimeout(function(){e.pingWebSocket.send(JSON.stringify(Date.now()))},2e3)})):this.startPingServer()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),C=function(){function e(e,t){this.httpClient=e,this.padState=t}return e.prototype.loadParameters=function(){var e=this,t=new i.HttpHeaders;return t=(t=t.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey),this.httpClient.get(this.padState.getUrlParameters(),{headers:t}).pipe(a.map(function(t){return e.padState.parameters=t,t},function(e){console.error(e)}))},e.prototype.getParameters=function(){return this.padState.parameters?n.of(this.padState.parameters):this.loadParameters()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.HttpClient),t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),b=function(){function e(){}return e.b64toBlob=function(e){for(var t=atob(e.split(",")[1]),i=new ArrayBuffer(t.length),n=new Uint8Array(i),a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return new Blob([i],{type:"image/png"})},e.downloadPicture=function(e){return p(this,void 0,void 0,function(){var t,i;return d(this,function(n){switch(n.label){case 0:return[4,new Response(e).arrayBuffer()];case 1:return t=n.sent(),i="data:image/jpeg;base64,"+this.arrayBufferToBase64(t),o(i,"face-result.jpeg","image/jpeg"),[2]}})})},e.arrayBufferToBase64=function(e){for(var t="",i=new Uint8Array(e),n=i.byteLength,a=0;a<n;a++)t+=String.fromCharCode(i[a]);return window.btoa(t)},e}(),y=function(){function e(e,t){this.httpClient=e,this.padState=t}return Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),e.prototype.rotateAndCropFinalPicture=function(){var e=this,n=new t.EventEmitter,a=new i.HttpHeaders;a=(a=a.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey);var o=new FormData;return o.append("picture",this.padState.photoPADStartOriginal),this.httpClient.post(this.padState.getUrlRotateAndCrop(),o,{headers:a}).subscribe(function(t){if(t.length>0){var i=b.b64toBlob("data:image/png;base64,"+t[0].picture);e.padState.generatedPicture=i,e.componentOptions.autoMatchingEnabled?e.padState.changeProcessState(l.MATCH_READY):e.componentOptions.downloadFinalPictureOnSuccessEnabled&&b.downloadPicture(e.padState.generatedPicture).then(),n.emit(i)}else{var a="No picture generated from the original picture by the rotate-and-crop method";n.error(a),console.warn(a)}},function(t){if(417===t.status)e.padState.changeProcessState(l.ERROR_MULTIPLE_FACE),e.faceState.detectionFailureEventEmitter.emit("ERROR_MULTIPLE_FACE"),n.error(l.ERROR_MULTIPLE_FACE);else if(404===t.status)e.padState.changeProcessState(l.ERROR_NO_FACE),e.faceState.detectionFailureEventEmitter.emit("ERROR_NO_FACE"),n.error(l.ERROR_NO_FACE);else if(0===t.status)e.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),e.sessionState.internetLostEventEmitter.emit(),n.error(l.ERROR_NO_INTERNET_CONNECTION);else{n.error("No picture generated from the original picture by the rotate-and-crop method"),console.error("No picture generated from the original picture by the rotate-and-crop method"+t)}e.padState.clearState()}),n},e.prototype.manageFinalPicture=function(){var e=this;this.componentOptions.formatFinalPicture?this.rotateAndCropFinalPicture().subscribe(function(t){e.faceState.faceDetectedEventEmitter.emit(t)},function(t){e.faceState.faceDetectedEventEmitter.error(t)}):(this.padState.generatedPicture=this.padState.photoPADStartOriginal,this.faceState.faceDetectedEventEmitter.emit(this.padState.generatedPicture),!this.componentOptions.autoMatchingEnabled&&this.componentOptions.downloadFinalPictureOnSuccessEnabled?b.downloadPicture(this.padState.generatedPicture).then():this.componentOptions.autoMatchingEnabled&&this.padState.changeProcessState(l.MATCH_READY))},e.prototype.compareWithReference=function(e){var t=this,n=new i.HttpHeaders;n=(n=n.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey);var a=URL.createObjectURL(e.target.files[0]),o=new Image;o.onload=function(){var e=500/o.width,i=document.createElement("canvas");i.width=500,i.height=o.height*e,i.getContext("2d").drawImage(o,0,0,i.width,i.height),i.toBlob(function(e){return p(t,void 0,void 0,function(){var t,i=this;return d(this,function(a){return(t=new FormData).append("reference",e),t.append("probe",this.padState.photoPADStartOriginal),this.httpClient.post(this.padState.getUrlMatching(),t,{headers:n}).subscribe(function(e){i.faceState.faceMatchingEventEmitter.emit(e),e.decision?i.padState.changeProcessState(l.MATCH_SUCCESS):i.padState.changeProcessState(l.MATCH_ERROR),e.decision&&i.componentOptions.downloadFinalPictureOnSuccessEnabled&&b.downloadPicture(i.padState.generatedPicture).then()},function(e){i.padState.changeProcessState(l.MATCH_ERROR),i.faceState.faceMatchingEventEmitter.error("An error occured during the Matching process. Please retry later.")}),[2]})})},"image/jpeg")},o.src=a},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.HttpClient),t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),L=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Press on Start button when you are ready"],["PROCESS_FACE_CENTER_LABEL","Face detected, but not centered. Please look straight to the camera"],["PROCESS_NO_FACE_LABEL","No face detected. Please look straight to the camera."],["PROCESS_MULTIPLE_FACE_LABEL","Multiple faces detected. Only one person is allowed in the detection."],["TURN_FACE_LABEL","Now, please turn your face (look at the right or at the left)"],["EXPIRED_SESSION_ERROR_LABEL","Session has expired. Please try again."],["NO_FACE_ERROR_LABEL","No face detected. Please try again."],["NO_INTERNET_CONNECTION_LABEL","Internet connection lost. Please try again"],["MULTIPLE_FACE_ERROR_LABEL","Multiple faces detected. Please try again."],["MATCHING_SUCCESS_LABEL","Detected face successfully match the reference picture."],["MATCHING_READY_LABEL",'Picture is ready to be compared with a reference picture.Please click on the "Compare" button to upload the reference picture.'],["MATCHING_ERROR_LABEL","Detected face does not match the reference picture"],["SUCCESS_LABEL","Live face successfully detected."],["START_BUTTON_LABEL","Start"],["RESTART_BUTTON_LABEL","Restart"],["COMPARE_BUTTON_LABEL","Compare"],["ENABLE_CAM_BUTTON_LABEL","Start the webcam"],["RETRY_BUTTON_LABEL","Retry"],["USER_TOO_FAR_LABEL","Too far away, please move closer"],["USER_NOT_CENTER_LABEL","Please, move on the target area"]]),e}(),_=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Cliquez sur Démarrer lorsque vous êtes prêt"],["PROCESS_FACE_CENTER_LABEL","Visage detecté, mais non centré. Veuillez regarder la caméra en mettant votre visage bien en face"],["PROCESS_NO_FACE_LABEL","Pas de visage detecté. Veuillez vous positionner au centre de l'écran."],["PROCESS_MULTIPLE_FACE_LABEL","Plusieurs visages detectés. La detection ne fonctionne qu'avec un seul visage."],["TURN_FACE_LABEL","Maintenant, tournez lentement la tête (vers la droite ou vers la gauche)"],["EXPIRED_SESSION_ERROR_LABEL","La session a expiré. Veuillez réessayer"],["NO_FACE_ERROR_LABEL","Pas de visage detecté. Veuillez réessayer"],["NO_INTERNET_CONNECTION_LABEL","Connection internet perdue. Veuillez réessayer"],["MULTIPLE_FACE_ERROR_LABEL","Plusieurs visages detectés. Veuillez réessayer"],["MATCHING_SUCCESS_LABEL","Le visage correspond bien à la photo de référence"],["MATCHING_READY_LABEL",'La photo est prête à être comparée avec une référence.Veuillez cliquer sur le bouton "Verifier" puis choisir une photo de référence.'],["MATCHING_ERROR_LABEL","Le visage ne correspond pas à la photo de référence"],["SUCCESS_LABEL","La detection du visage a réussi."],["START_BUTTON_LABEL","Démarrer"],["RESTART_BUTTON_LABEL","Recommencer"],["COMPARE_BUTTON_LABEL","Vérifier"],["ENABLE_CAM_BUTTON_LABEL","Activer la webcam"],["RETRY_BUTTON_LABEL","Réessayer"],["USER_TOO_FAR_LABEL","Vous êtes trop loin, veuillez vous rapprocher de la caméra"],["USER_NOT_CENTER_LABEL","Veuillez vous positionner à l'intérieur de la zone cible"]]),e}(),A=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Pressione no botão Iniciar quando estiver pronto"],["PROCESS_FACE_CENTER_LABEL","Rosto detectado, mas não centrado. Por favor, olhe diretamente para a câmera"],["PROCESS_NO_FACE_LABEL","Nenhum rosto detectado. Por favor, olhe diretamente para a câmera."],["PROCESS_MULTIPLE_FACE_LABEL","Múltiplos rostos detectados. Apenas uma pessoa é permitida na detecção."],["TURN_FACE_LABEL","Agora, por favor, vire seu rosto (olhe para a direita ou para a esquerda)"],["EXPIRED_SESSION_ERROR_LABEL","Sessão expirou. Por favor, tente novamente."],["NO_FACE_ERROR_LABEL","Nenhum rosto detectado. Por favor, tente novamente."],["NO_INTERNET_CONNECTION_LABEL","Conexão perdida com a internet. Por favor, tente novamente."],["MULTIPLE_FACE_ERROR_LABEL","Múltiplos rostos detectados. Por favor, tente novamente."],["MATCHING_SUCCESS_LABEL","A face detectada corresponde com sucesso à imagem de referência."],["MATCHING_READY_LABEL",'A imagem está pronta para ser comparada com uma imagem de referência.Por favor, clique no botão "Comparar" para carregar a imagem de referência.'],["MATCHING_ERROR_LABEL","Detected face does not match the reference picture"],["SUCCESS_LABEL","O rosto detectado não corresponde à imagem de referência"],["START_BUTTON_LABEL","Iniciar"],["RESTART_BUTTON_LABEL","Começar de novo"],["COMPARE_BUTTON_LABEL","Comparar"],["ENABLE_CAM_BUTTON_LABEL","Comece a webcam"],["RETRY_BUTTON_LABEL","Tente novamente"],["USER_TOO_FAR_LABEL","Você está longe demais, por favor, aproxime-se da câmera"],["USER_NOT_CENTER_LABEL","Por favor posicione-se dentro da área alvo"]]),e}(),O=function(){function e(e){this.padState=e,this.messageState.mapLanguage.set("fr",_.messages),this.messageState.mapLanguage.set("en",L.messages),this.messageState.mapLanguage.set("pt",A.messages)}return Object.defineProperty(e.prototype,"messageState",{get:function(){return this.padState.messageState},enumerable:!0,configurable:!0}),e.prototype.getMessage=function(e){return!this.messageState.messages.get(e)&&this.messageState.languageFile?this.messageState.languageFile.messages.get(e):this.messageState.messages.get(e)},e.prototype.initMessage=function(e,t,i,n,a,o,r,s,c,p,d,l,h,S,u,g,E,m,f,v){this.messageState.messages.set("START_TIPS_LABEL",e),this.messageState.messages.set("PROCESS_FACE_CENTER_LABEL",t),this.messageState.messages.set("PROCESS_NO_FACE_LABEL",i),this.messageState.messages.set("PROCESS_MULTIPLE_FACE_LABEL",n),this.messageState.messages.set("TURN_FACE_LABEL",a),this.messageState.messages.set("EXPIRED_SESSION_ERROR_LABEL",o),this.messageState.messages.set("NO_FACE_ERROR_LABEL",r),this.messageState.messages.set("MULTIPLE_FACE_ERROR_LABEL",s),this.messageState.messages.set("SUCCESS_LABEL",c),this.messageState.messages.set("START_BUTTON_LABEL",p),this.messageState.messages.set("RESTART_BUTTON_LABEL",d),this.messageState.messages.set("COMPARE_BUTTON_LABEL",l),this.messageState.messages.set("ENABLE_CAM_BUTTON_LABEL",h),this.messageState.messages.set("RETRY_BUTTON_LABEL",S),this.messageState.messages.set("MATCHING_SUCCESS_LABEL",u),this.messageState.messages.set("MATCHING_READY_LABEL",g),this.messageState.messages.set("MATCHING_ERROR_LABEL",E),this.messageState.messages.set("NO_INTERNET_CONNECTION_LABEL",m),this.messageState.messages.set("USER_TOO_FAR_LABEL",f),this.messageState.messages.set("USER_NOT_CENTER_LABEL",v)},e.prototype.initLanguage=function(){this.messageState.languageFile=this.messageState.mapLanguage.get(navigator.language.substr(0,2)),this.messageState.languageFile||(this.messageState.languageFile=L)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),I=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackerState",{get:function(){return this.padState.trackerState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.faceTracker=function(){var e=this,t=this.videoState.videoPAD.nativeElement,i=this.videoState.canvasResult.nativeElement,n=i.getContext("2d");i.width=this.videoState.videoWidth,i.height=this.videoState.videoHeight,this.faceDetector=new r({video:t,flipLeftRight:!1,flipUpsideDown:!1}),this.faceDetector.startDetecting(),this.faceDetector.setOnFaceLostCallback(function(e,t){n.clearRect(0,0,i.width,i.height)}),this.faceDetector.setOnFaceUpdatedCallback(function(t){n.clearRect(0,0,i.width,i.height),e.componentOptions.faceTrackingOptionDesign?(n.strokeStyle="rgba(0,200,200,0)",n.fillStyle="rgba(0,200,200,0)"):(n.strokeStyle="rgba(0,221,52,1.0)",n.fillStyle="rgba(0,221,52,0.08)"),n.lineWidth=2,t.forEach(function(t){n.beginPath();var a=t.width*i.width/2,o=1.5*t.height*i.height/2;n.ellipse(t.x*i.width+a,t.y*i.height+o-o/2,a,o,0,0,2*Math.PI),n.stroke(),n.fill(),e.componentOptions.faceTrackingOptionDesign&&(n.strokeStyle="rgba(0,200,200,0)",n.lineWidth="10",n.fillStyle="rgba(0, 0, 0, 0.7)",n.beginPath(),n.moveTo(0,0),n.lineTo(0,i.height),n.lineTo(i.width/2,i.height),n.ellipse(t.x*i.width+a,t.y*i.height+o-o/2,a,o,0,Math.PI/2,Math.PI/2.000001),n.lineTo(i.height/2,i.height),n.lineTo(i.width,i.height),n.lineTo(i.width,0),n.lineTo(i.width/2,0),n.lineTo(i.width/2,0),n.lineTo(0,0),n.stroke(),n.fill()),e.trackerState.xCoord=t.x*i.width,e.trackerState.yCoord=t.y*i.height,e.trackerState.wCoord=t.width*i.width,e.trackerState.hCoord=t.height*i.height})})},e.prototype.faceTrackingReadyToStart=function(){return this.componentOptions.faceTrackingEnabled&&(!this.faceDetector||!this.faceDetector.isRunning())},e.prototype.faceTrackingHasToBeDrawn=function(){return this.componentOptions.faceTrackingEnabled&&this.faceDetector.isRunning()&&this.trackerState.xCoord&&!this.componentOptions.circleEnabled},e.prototype.faceTrackingReady=function(){return this.componentOptions.faceTrackingEnabled&&this.faceDetector.isRunning()&&this.trackerState.xCoord},e.prototype.stopTracking=function(){this.faceDetector&&this.faceDetector.stop()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),T=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"padCircleState",{get:function(){return this.padState.padCircleState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),e.prototype.progressCircle=function(){var e=this,t=this.videoState.canvasResult.nativeElement;t.width=this.videoState.videoWidth,t.height=this.videoState.videoHeight;var i=t.getContext("2d"),n=t.width/2,a=t.height/2;i.lineCap="round";var o=0,r=setInterval(function(){i.clearRect(0,0,t.width,t.height),e.grayScale(e.componentOptions.circleRadius,i,t,n,a),i.beginPath(),""!==e.componentOptions.colorProgressCircle?i.strokeStyle=e.componentOptions.colorProgressCircle:i.strokeStyle="#007bff",i.lineWidth="10",i.arc(n,a,e.componentOptions.circleRadius,Math.PI/180*270,Math.PI/180*(270+o)),i.stroke(),e.sessionState.processCompletion>=100?(i.arc(n,a,e.componentOptions.circleRadius,Math.PI/180*(270+o),Math.PI/180*630),i.stroke(),e.sessionState.processCompletion=0,o=0,clearInterval(r),e.padCircleState.isCircleRunning=!1):o<e.sessionState.processCompletion/100*360?o+=10:e.padState.processState!==l.ERROR_NO_FACE&&e.padState.processState!==l.ERROR_NO_INTERNET_CONNECTION&&e.padState.processState!==l.ERROR_SESSION&&e.padState.processState!==l.ERROR_MULTIPLE_FACE||(i.clearRect(0,0,t.width,t.height),e.grayScale(e.componentOptions.circleRadius,i,t,n,a),e.sessionState.processCompletion=0,o=0,clearInterval(r),e.padCircleState.isCircleRunning=!1)},60)},e.prototype.grayScale=function(e,t,i,n,a){t.strokeStyle="rgba(0,200,200,0)",t.lineWidth="10",t.fillStyle="rgba(0, 0, 0, 0.7)",t.beginPath(),t.moveTo(0,0),t.lineTo(0,i.height),t.lineTo(n,i.height),t.lineTo(n,i.height-e/2),t.arc(n,a,e,Math.PI/2,Math.PI/2.000001),t.lineTo(n,i.height),t.lineTo(i.width,i.height),t.lineTo(i.width,0),t.lineTo(n,0),t.lineTo(n,e/2),t.lineTo(n,0),t.lineTo(0,0),t.stroke(),t.fill()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),P=function(){function e(e,t,i,n,a,o){this.padState=e,this.messageService=t,this.faceService=i,this.padSessionWebSocketService=n,this.trackerService=a,this.padCircleService=o}return Object.defineProperty(e.prototype,"processCompletion",{get:function(){return this.sessionState.processCompletion},set:function(e){this.sessionState.processCompletion=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeadSize",{get:function(){return this.padState.parameters.minHeadSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"padCircleState",{get:function(){return this.padState.padCircleState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackerState",{get:function(){return this.padState.trackerState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),e.prototype.processPadSessionResponse=function(e){var t=this;this.processCompletion=e.processCompletion,e.result?(this.padState.changeProcessState(l.SUCCESS),this.padState.clearState(),this.faceService.manageFinalPicture()):(this.sessionState.processInstruction="",e.errorType||this.padState.processState!==l.STARTED?"INVALID_YAW"===e.errorType||"INVALID_PITCH"===e.errorType?(this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_FACE_CENTER_LABEL"),this.sessionState.padStartTimeOut=setTimeout(function(){return t.prepareCallPADStart()},500)):"INVALID_KEY"===e.errorType?this.padState.changeProcessState(l.ERROR_KEY):"INVALID_FACE"===e.errorType?this.padState.processState===l.PROCESS?(0===e.faceCount?(this.padState.changeProcessState(l.ERROR_NO_FACE),this.faceState.detectionFailureEventEmitter.emit("ERROR_NO_FACE")):e.faceCount>1&&(this.padState.changeProcessState(l.ERROR_MULTIPLE_FACE),this.faceState.detectionFailureEventEmitter.emit("ERROR_MULTIPLE_FACE")),this.padState.clearState()):this.padState.processState===l.STARTED&&(0===e.faceCount?this.componentOptions.circleEnabled?this.sessionState.processInstruction=this.messageService.getMessage("USER_NOT_CENTER_LABEL"):this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_NO_FACE_LABEL"):e.faceCount>1&&(this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_MULTIPLE_FACE_LABEL")),setTimeout(function(){return t.prepareCallPADStart()},500)):"INVALID_SESSION"===e.errorType&&(this.padState.changeProcessState(l.ERROR_SESSION),this.padState.clearState(),this.sessionState.sessionExpiredEventEmitter.emit()):(this.padState.changeProcessState(l.PROCESS),this.sessionState.padContinueInterval=setInterval(function(){return t.prepareCallPADContinue()},this.componentOptions.padFrequency)))},e.prototype.prepareCallPADStart=function(){var e=this;this.padSessionWebSocketService.isConnected()?this.callPADStart():this.padSessionWebSocketService.connect(function(t){return e.processPadSessionResponse(JSON.parse(t.data))}).then(function(t){e.callPADStart()}).catch(function(t){e.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),e.sessionState.internetLostEventEmitter.emit(),e.padState.clearState()})},e.prototype.callPADStart=function(){var e=this;try{this.trackerService.faceTrackingReadyToStart()?this.trackerService.faceTracker():this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled&&(this.padCircleState.isCircleRunning||(this.padCircleService.progressCircle(),this.padCircleState.isCircleRunning=!0));var t=this.componentOptions.frameWidth/this.videoState.videoPAD.nativeElement.clientWidth;this.padState.changeProcessState(l.STARTED);var i=document.createElement("canvas");if(this.trackerService.faceTrackingHasToBeDrawn()){i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight;var n=1.5*this.trackerState.wCoord*this.videoState.ratioWidth,a=(this.trackerState.xCoord-(n-this.trackerState.wCoord))*this.videoState.ratioWidth,o=1.5*this.trackerState.hCoord*this.videoState.ratioHeight,r=(this.trackerState.yCoord-(o-this.trackerState.hCoord))*this.videoState.ratioHeight;i.height*this.trackerState.hCoord/this.videoState.videoHeight<this.minHeadSize?this.padState.changeProcessState(l.ERROR_USER_TOO_FAR):(i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+a,r,n,o,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg"))}else this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled?(i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,this.videoState.width/2-2*this.componentOptions.circleRadius*this.videoState.ratioWidth/2,this.videoState.height/2-2*this.componentOptions.circleRadius*this.videoState.ratioHeight/2,2*this.componentOptions.circleRadius*this.videoState.ratioWidth,2*this.componentOptions.circleRadius*this.videoState.ratioHeight,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg")):(i.width=this.componentOptions.frameWidth,i.height=this.videoState.videoPAD.nativeElement.clientHeight*t,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg"));var s=this.componentOptions.resultPictureWidth/this.videoState.videoPAD.nativeElement.videoWidth,c=document.createElement("canvas");this.trackerService.faceTrackingReady()?(c.width=1.5*this.trackerState.wCoord,c.height=1.5*this.trackerState.hCoord,this.trackerState.xCoord-=c.width-this.trackerState.wCoord,this.trackerState.yCoord-=c.height-this.trackerState.hCoord,c.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+this.trackerState.xCoord,this.trackerState.yCoord,c.width,c.height,0,0,c.width,c.height)):(c.width=this.componentOptions.resultPictureWidth,c.height=this.videoState.videoPAD.nativeElement.videoHeight*s,c.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,c.width,c.height)),c.toBlob(function(t){e.padState.photoPADStartOriginal=t,e.padState.changeStateEventEmitter.emit("PAD Start photo original blob generated")},"image/jpeg")}catch(e){console.error(e),this.padState.changeStateEventEmitter.emit("Exception at prepareCallPADStart(): "+JSON.stringify(e))}},e.prototype.doPADStart=function(){return p(this,void 0,void 0,function(){var e;return d(this,function(t){switch(t.label){case 0:return[4,new Response(this.sessionState.photoPADStart).arrayBuffer()];case 1:return e=t.sent(),this.padSessionWebSocketService.sendMessage({faceImage:b.arrayBufferToBase64(e),typeMessagePad:"START",apiKey:this.padState.apiKey}),[2]}})})},e.prototype.prepareCallPADContinue=function(){var e=this;if(this.padSessionWebSocketService.isConnected())try{var t=this.componentOptions.frameWidth/this.videoState.videoPAD.nativeElement.clientWidth,i=document.createElement("canvas");if(this.trackerService.faceTrackingReady()){i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight;var n=1.5*this.trackerState.wCoord*this.videoState.ratioWidth,a=(this.trackerState.xCoord-(n-this.trackerState.wCoord))*this.videoState.ratioWidth,o=1.5*this.trackerState.hCoord*this.videoState.ratioHeight,r=(this.trackerState.yCoord-(o-this.trackerState.hCoord))*this.videoState.ratioHeight;i.height*this.trackerState.hCoord/this.videoState.videoHeight<this.minHeadSize?this.sessionState.processInstruction=this.messageService.getMessage("USER_TOO_FAR_LABEL"):(i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+a,r,n,o,0,0,i.width,i.height),this.toBlob(i))}else this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled?(i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,this.videoState.width/2-2*this.componentOptions.circleRadius*this.videoState.ratioWidth/2,this.videoState.height/2-2*this.componentOptions.circleRadius*this.videoState.ratioHeight/2,2*this.componentOptions.circleRadius*this.videoState.ratioWidth,2*this.componentOptions.circleRadius*this.videoState.ratioHeight,0,0,i.width,i.height),this.toBlob(i)):(i.width=this.componentOptions.frameWidth,i.height=this.videoState.videoPAD.nativeElement.clientHeight*t,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,i.width,i.height),this.toBlob(i))}catch(e){this.padState.changeStateEventEmitter.emit("Exception at prepareCallPADContinue(): "+JSON.stringify(e))}else this.padState.clearState(),this.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),this.sessionState.internetLostEventEmitter.emit(),setTimeout(function(){return e.initPadSource()},5e3)},e.prototype.toBlob=function(e){var t=this;e.toBlob(function(e){return p(t,void 0,void 0,function(){var t;return d(this,function(i){switch(i.label){case 0:return this.padState.changeStateEventEmitter.emit("PAD Continue photo blob generated"),this.sessionState.photoPADContinue=e,[4,new Response(this.sessionState.photoPADContinue).arrayBuffer()];case 1:return t=i.sent(),this.padSessionWebSocketService.sendMessage({faceImage:b.arrayBufferToBase64(t),typeMessagePad:"CONTINUE",apiKey:this.padState.apiKey}),[2]}})})},"image/jpeg")},e.prototype.initPadSource=function(){return p(this,void 0,void 0,function(){var e,t,i=this;return d(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),e=this.videoState,[4,navigator.mediaDevices.getUserMedia(this.videoState.videoConstraints)];case 1:return e.videoPADStream=n.sent(),this.videoState.videoPAD&&(this.videoState.videoPAD.nativeElement.srcObject=this.videoState.videoPADStream),this.handleSuccess(),this.padState.changeProcessState(l.INITIAL),window.addEventListener("beforeunload",function(){return i.leaving()}),[3,3];case 2:return t=n.sent(),console.log("Error : "+t),[3,3];case 3:return[2]}})})},e.prototype.leaving=function(){this.videoState.videoPADStream.stop()},e.prototype.handleSuccess=function(){var e=this.videoState.videoPADStream.getVideoTracks();this.videoState.cameraEventEmitter.emit("Got stream with constraints: "+JSON.stringify(this.videoState.videoConstraints)),this.videoState.cameraEventEmitter.emit("Using video device: "+JSON.stringify(e[0].label))},e.prototype.updateNetworkStatus=function(){var e=this;setInterval(function(){e.padState.sessionState.latency<e.padState.sessionState.highLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection)):e.padState.sessionState.latency>e.padState.sessionState.highLimit&&e.padState.sessionState.latency<e.padState.sessionState.mediumLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection)):e.padState.sessionState.latency>e.padState.sessionState.mediumLimit&&e.padState.sessionState.latency<e.padState.sessionState.badLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorMediumConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorMediumConnection)):(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorBadConnection))},2e3)},e.prototype.isRequestPermissionState=function(){return this.padState.processState===l.REQUEST_PERMISSIONS},e.prototype.isInitialState=function(){return this.padState.processState===l.INITIAL},e.prototype.isStartedState=function(){return this.padState.processState===l.STARTED},e.prototype.isProcessingState=function(){return this.padState.processState===l.PROCESS},e.prototype.isErrorSessionState=function(){return this.padState.processState===l.ERROR_SESSION},e.prototype.isErrorNoFaceState=function(){return this.padState.processState===l.ERROR_NO_FACE},e.prototype.isErrorNoInternetConnection=function(){return this.padState.processState===l.ERROR_NO_INTERNET_CONNECTION},e.prototype.isErrorUserTooFar=function(){return this.padState.processState===l.ERROR_USER_TOO_FAR},e.prototype.isErrorUserNotCenter=function(){return this.padState.processState===l.ERROR_USER_NOT_CENTER},e.prototype.isErrorMultipleFaceState=function(){return this.padState.processState===l.ERROR_MULTIPLE_FACE},e.prototype.isSuccessState=function(){return this.padState.processState===l.SUCCESS},e.prototype.isInvalidKeyState=function(){return this.padState.processState===l.ERROR_KEY},e.prototype.isMatchingReadyState=function(){return this.padState.processState===l.MATCH_READY},e.prototype.isMatchingSuccessState=function(){return this.padState.processState===l.MATCH_SUCCESS},e.prototype.isMatchingErrorState=function(){return this.padState.processState===l.MATCH_ERROR},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v},{type:O},{type:y},{type:R},{type:I},{type:T}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v),t.ɵɵinject(O),t.ɵɵinject(y),t.ɵɵinject(R),t.ɵɵinject(I),t.ɵɵinject(T))},token:e,providedIn:"root"}),e}(),N=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.initDatasFromVideoPAD=function(){var e=this;this.videoState.videoPAD.nativeElement.addEventListener("loadedmetadata",function(t){e.videoState.width=e.videoState.videoPAD.nativeElement.videoWidth,e.videoState.height=e.videoState.videoPAD.nativeElement.videoHeight,e.videoState.ratioWidth=e.videoState.width/e.videoState.videoWidth,e.videoState.ratioHeight=e.videoState.height/e.videoState.videoHeight},!1)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),w=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.init=function(){if(this.videoState.canvasResult.nativeElement.clientHeight>this.videoState.canvasResult.nativeElement.clientWidth&&this.videoState.videoWidth>this.videoState.videoHeight){var e=this.videoState.videoWidth;this.videoState.videoWidth=this.videoState.videoHeight,this.videoState.videoHeight=e}},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),B=function(){function e(e,i,n,a,o,r,s,c,p){this.padSessionWebSocketService=e,this.padState=i,this.parametersService=n,this.faceService=a,this.messageService=o,this.padSessionService=r,this.trackerService=s,this.videoService=c,this.deviceService=p,this.downloadFinalPictureOnSuccess=!1,this.enableAutoMatching=!1,this.autoStart=!1,this.faceTrackingEnabled=!1,this.faceTrackingOptionDesign=!1,this.mirror=!1,this.circleEnabled=!1,this.circleRadius=200,this.formatFinalPicture=!1,this.resultPictureWidth=600,this.allowsMultipleRetries=!1,this.videoWidth=800,this.videoHeight=600,this.frameWidth=120,this.messagesEnabled=!0,this.padFrequency=100,this.faceDetectedHandler=new t.EventEmitter,this.detectionFailureHandler=new t.EventEmitter,this.internetLostHandler=new t.EventEmitter,this.cameraHandler=new t.EventEmitter,this.sessionExpiredHandler=new t.EventEmitter,this.changeStateHandler=new t.EventEmitter,this.matchingHandler=new t.EventEmitter}return Object.defineProperty(e.prototype,"minHeadSize",{get:function(){return this.padState.parameters.minHeadSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"processState",{get:function(){return this.padState.processState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"messageState",{get:function(){return this.padState.messageState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.messageService.initLanguage(),this.messageService.initMessage(this.startTipsLabel,this.processFaceCenterLabel,this.processNoFaceLabel,this.processMultipleFaceLabel,this.turnFaceLabel,this.expiredSessionErrorLabel,this.noFaceErrorLabel,this.multipleFaceErrorLabel,this.successLabel,this.startButtonLabel,this.restartButtonLabel,this.compareButtonLabel,this.enableCamButtonLabel,this.retryButtonLabel,this.matchingSuccessLabel,this.matchingReadyLabel,this.matchingErrorLabel,this.noInternetConnectionLabel,this.userTooFarLabel,this.userNotCenterLabel),this.padSessionService.updateNetworkStatus(),this.sessionState.endSessionEventEmitter.subscribe(function(t){e.ngOnDestroy()}),this.padState.changeStateEventEmitter.subscribe(function(t){e.changeStateHandler.emit(t)}),this.faceState.faceDetectedEventEmitter.subscribe(function(t){e.faceDetectedHandler.emit(t)}),this.faceState.detectionFailureEventEmitter.subscribe(function(t){e.detectionFailureHandler.emit(t)}),this.faceState.faceMatchingEventEmitter.subscribe(function(t){e.matchingHandler.emit(t)}),this.sessionState.sessionExpiredEventEmitter.subscribe(function(t){e.sessionExpiredHandler.emit(t)}),this.sessionState.internetLostEventEmitter.subscribe(function(t){e.internetLostHandler.emit(t)}),this.videoState.cameraEventEmitter.subscribe(function(t){e.cameraHandler.emit(t)}),this.padState.initApiBase(this.apiKey,this.wsEndpoint,this.pingBaseUrl?this.pingBaseUrl:this.wsEndpoint),this.padSessionWebSocketService.startPingServer().then()},e.prototype.ngOnDestroy=function(){clearTimeout(this.sessionState.padStartTimeOut),this.padSessionWebSocketService.disconnect(),this.trackerService.stopTracking()},e.prototype.ngAfterViewInit=function(){this.videoState.videoPAD=this.videoPAD,this.videoState.canvasResult=this.canvasResult,this.padState.initApiFace(this.wsFormatPicture,this.wsFaceVerification),this.padState.initComponentOptions(this.enableAutoMatching,this.downloadFinalPictureOnSuccess,this.formatFinalPicture,this.padFrequency,this.circleEnabled,this.faceTrackingEnabled,this.circleRadius,this.frameWidth,this.colorProgressCircle,this.resultPictureWidth,this.faceTrackingOptionDesign),this.padState.initApiParameters(this.wsImageSize),this.padState.initVideoState(this.videoHeight,this.videoWidth),this.parametersService.getParameters().subscribe(),this.autoStart&&(this.initPadSource(),this.videoService.initDatasFromVideoPAD())},e.prototype.initPadSource=function(){this.padSessionService.initPadSource().then()},e.prototype.initDatasFromVideoPAD=function(){this.videoService.initDatasFromVideoPAD()},e.prototype.startPAD=function(){this.deviceService.init(),this.padSessionService.prepareCallPADStart()},e.prototype.emitChangeStateEvent=function(e){this.changeStateHandler.emit(e)},e.prototype.resetUI=function(){this.padState.changeProcessState(l.INITIAL)},e.prototype.compareWithReference=function(e){if(e||(e=this.padState.generatedPicture),e)document.getElementById("id3-fileForMatching").click();else{var t="PAD Result picture is missing. You have to execute the entire PAD process before calling the Matching Javascript function.\n";t+="IMPORTANT NOTE : If you are using the pureJS component, you have to provide the picture in argument (mandatory).",console.error(t),this.matchingHandler&&this.matchingHandler.error(t)}},e.prototype.handleReferenceFile=function(e){this.faceService.compareWithReference(e)},e.decorators=[{type:t.Component,args:[{selector:"id3-face-pad",template:'<id3-face-pad-messages *ngIf="messagesEnabled" class="show-small-screen" [startTipsLabel]="messageService.getMessage(\'START_TIPS_LABEL\')"\n [turnFaceLabel]="messageService.getMessage(\'TURN_FACE_LABEL\')" [expiredSessionErrorLabel]="messageService.getMessage(\'EXPIRED_SESSION_ERROR_LABEL\')"\n [noFaceErrorLabel]="messageService.getMessage(\'NO_FACE_ERROR_LABEL\')" [noInternetConnectionLabel]="messageService.getMessage(\'NO_INTERNET_CONNECTION_LABEL\')"\n [multipleFaceErrorLabel]="messageService.getMessage(\'MULTIPLE_FACE_ERROR_LABEL\')" [successLabel]="messageService.getMessage(\'SUCCESS_LABEL\')"\n [processInstruction]="sessionState.processInstruction" [padSessionService]="padSessionService" [matchingSuccessLabel]="messageService.getMessage(\'MATCHING_SUCCESS_LABEL\')"\n [matchingErrorLabel]="messageService.getMessage(\'MATCHING_ERROR_LABEL\')" [matchingReadyLabel]="messageService.getMessage(\'MATCHING_READY_LABEL\')"\n [userTooFarLabel]="messageService.getMessage(\'USER_TOO_FAR_LABEL\')" [userNotCenterLabel]="messageService.getMessage(\'USER_NOT_CENTER_LABEL\')">\n</id3-face-pad-messages>\n\n<input #fileForMatch id="id3-fileForMatching" type="file" (click)="fileForMatch.value=null;" name="fileForMatch" class="d-none" (change)="handleReferenceFile($event)"/>\n<div class="padContainer" [style.max-height]="videoHeight + \'px\'" [style.max-width]="videoWidth + \'px\'">\n <canvas class="canvas {{mirror && !circleEnabled ? \'mirror\': \'\'}}" #resultCanvas></canvas>\n <video class="liveStream {{mirror ? \'mirror\': \'\'}}" #videoPAD autoplay playsinline [style.maxHeight]="videoState.videoHeight + \'px\'"></video>\n <div class="id3-pad-overlay">\n <div class="extras">\n <img class="text-left" id="id3Logo" src="/assets/images/id3_logo_white_40.png" height="40" width="40" *ngIf="apiKey === \'test-token-id3-webcapture\'">\n <id3-network-status ></id3-network-status>\n </div>\n <div id="mainContent" class="pad-content d-block">\n\n <id3-face-pad-messages *ngIf="messagesEnabled" class="show-big-screen" [startTipsLabel]="messageService.getMessage(\'START_TIPS_LABEL\')"\n [turnFaceLabel]="messageService.getMessage(\'TURN_FACE_LABEL\')" [expiredSessionErrorLabel]="messageService.getMessage(\'EXPIRED_SESSION_ERROR_LABEL\')"\n [noFaceErrorLabel]="messageService.getMessage(\'NO_FACE_ERROR_LABEL\')" [noInternetConnectionLabel]="messageService.getMessage(\'NO_INTERNET_CONNECTION_LABEL\')"\n [multipleFaceErrorLabel]="messageService.getMessage(\'MULTIPLE_FACE_ERROR_LABEL\')" [successLabel]="messageService.getMessage(\'SUCCESS_LABEL\')"\n [processInstruction]="sessionState.processInstruction" [padSessionService]="padSessionService" [matchingSuccessLabel]="messageService.getMessage(\'MATCHING_SUCCESS_LABEL\')"\n [matchingErrorLabel]="messageService.getMessage(\'MATCHING_ERROR_LABEL\')" [matchingReadyLabel]="messageService.getMessage(\'MATCHING_READY_LABEL\')"\n [userTooFarLabel]="messageService.getMessage(\'USER_TOO_FAR_LABEL\')" [userNotCenterLabel]="messageService.getMessage(\'USER_NOT_CENTER_LABEL\')">\n </id3-face-pad-messages>\n\n <br>\n <div class="d-flex">\n <h4 id="padAlert" class="text-white"></h4>\n </div>\n </div>\n <div id="mainButtons" class="pad-buttons d-block">\n <button type="button" *ngIf="padSessionService.isRequestPermissionState()" (click)="initPadSource(); initDatasFromVideoPAD()" class="btn btn-primary btn-id3 mt-5">\n <em class="pi pi-caret-right"></em>{{messageService.getMessage(\'ENABLE_CAM_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isInitialState()" (click)="startPAD()" class="btn btn-primary btn-id3 mt-5">\n <em class="pi pi-caret-right"></em> {{messageService.getMessage(\'START_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())"\n (click)="resetUI()" class="btn btn-primary btn-id3 mt-3">\n <em class="pi pi-caret-right"></em> {{messageService.getMessage(\'RETRY_BUTTON_LABEL\')}}\n </button>\n\n <button type="button" *ngIf="padSessionService.isMatchingReadyState()" class="btn btn-primary btn-id3 mt-3" (click)="compareWithReference()">\n <em class="pi pi-caret-right"></em> {{messageService.getMessage(\'COMPARE_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()" class="btn btn-primary btn-id3 mt-3" (click)="resetUI()">\n <em class="pi pi-caret-right"></em> {{messageService.getMessage(\'RESTART_BUTTON_LABEL\')}}\n </button>\n\n </div>\n </div>\n </div>',styles:['.padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:"PT Sans",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}']}]}],e.ctorParameters=function(){return[{type:R},{type:v},{type:C},{type:y},{type:O},{type:P},{type:I},{type:N},{type:w}]},e.propDecorators={canvasResult:[{type:t.ViewChild,args:["resultCanvas",{static:!1}]}],videoPAD:[{type:t.ViewChild,args:["videoPAD",{static:!1}]}],fileForMatching:[{type:t.ViewChild,args:["fileForMatching",{static:!1}]}],wsEndpoint:[{type:t.Input}],pingBaseUrl:[{type:t.Input}],wsImageSize:[{type:t.Input}],apiKey:[{type:t.Input}],wsFormatPicture:[{type:t.Input}],wsFaceVerification:[{type:t.Input}],downloadFinalPictureOnSuccess:[{type:t.Input}],enableAutoMatching:[{type:t.Input}],autoStart:[{type:t.Input}],faceTrackingEnabled:[{type:t.Input}],faceTrackingOptionDesign:[{type:t.Input}],mirror:[{type:t.Input}],circleEnabled:[{type:t.Input}],colorProgressCircle:[{type:t.Input}],circleRadius:[{type:t.Input}],formatFinalPicture:[{type:t.Input}],resultPictureWidth:[{type:t.Input}],allowsMultipleRetries:[{type:t.Input}],videoWidth:[{type:t.Input}],videoHeight:[{type:t.Input}],frameWidth:[{type:t.Input}],messagesEnabled:[{type:t.Input}],padFrequency:[{type:t.Input}],startTipsLabel:[{type:t.Input}],processFaceCenterLabel:[{type:t.Input}],processNoFaceLabel:[{type:t.Input}],processMultipleFaceLabel:[{type:t.Input}],turnFaceLabel:[{type:t.Input}],expiredSessionErrorLabel:[{type:t.Input}],noFaceErrorLabel:[{type:t.Input}],multipleFaceErrorLabel:[{type:t.Input}],successLabel:[{type:t.Input}],startButtonLabel:[{type:t.Input}],restartButtonLabel:[{type:t.Input}],compareButtonLabel:[{type:t.Input}],enableCamButtonLabel:[{type:t.Input}],retryButtonLabel:[{type:t.Input}],matchingSuccessLabel:[{type:t.Input}],matchingReadyLabel:[{type:t.Input}],matchingErrorLabel:[{type:t.Input}],noInternetConnectionLabel:[{type:t.Input}],userTooFarLabel:[{type:t.Input}],userNotCenterLabel:[{type:t.Input}],faceDetectedHandler:[{type:t.Output}],detectionFailureHandler:[{type:t.Output}],internetLostHandler:[{type:t.Output}],cameraHandler:[{type:t.Output}],sessionExpiredHandler:[{type:t.Output}],changeStateHandler:[{type:t.Output}],matchingHandler:[{type:t.Output}],compareWithReference:[{type:t.Input}]},e}(),M=function(){function e(){this.processInstruction=""}return e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Component,args:[{selector:"id3-face-pad-messages",template:'<div class="mt-2">\n <div *ngIf="padSessionService.isInitialState()" class="alert alert-primary" role="alert">\n {{startTipsLabel}}\n </div>\n <div *ngIf="padSessionService.isStartedState() && processInstruction !== undefined || (padSessionService.isProcessingState() && processInstruction.length>0)" class="alert alert-danger" role="alert">\n {{processInstruction}}\n </div>\n <div *ngIf="padSessionService.isProcessingState() && processInstruction.length==0" class="alert alert-primary" role="alert">\n {{turnFaceLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorSessionState()" class="alert alert-danger" role="alert">\n {{expiredSessionErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorNoFaceState()" class="alert alert-danger" role="alert">\n {{noFaceErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorNoInternetConnection()" class="alert alert-danger" role="alert">\n {{noInternetConnectionLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorUserTooFar()" class="alert alert-primary" role="alert">\n {{userTooFarLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorUserNotCenter()" class="alert alert-danger" role="alert">\n {{userNotCenterLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorMultipleFaceState()" class="alert alert-danger" role="alert">\n {{multipleFaceErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isSuccessState()" class="alert alert-success" role="alert">\n {{successLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingReadyState()" class="alert alert-primary" role="alert">\n {{matchingReadyLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingSuccessState()" class="alert alert-success" role="alert">\n {{matchingSuccessLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingErrorState()" class="alert alert-danger" role="alert">\n {{matchingErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isInvalidKeyState()" class="alert alert-danger" role="alert">\n The API Key is invalid. Please check your API key.\n </div>\n</div>'}]}],e.ctorParameters=function(){return[]},e.propDecorators={padSessionService:[{type:t.Input}],startTipsLabel:[{type:t.Input}],turnFaceLabel:[{type:t.Input}],expiredSessionErrorLabel:[{type:t.Input}],noFaceErrorLabel:[{type:t.Input}],noInternetConnectionLabel:[{type:t.Input}],userTooFarLabel:[{type:t.Input}],multipleFaceErrorLabel:[{type:t.Input}],successLabel:[{type:t.Input}],matchingSuccessLabel:[{type:t.Input}],matchingReadyLabel:[{type:t.Input}],matchingErrorLabel:[{type:t.Input}],userNotCenterLabel:[{type:t.Input}],processInstruction:[{type:t.Input}]},e}(),F=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Component,args:[{selector:"id3-network-status",template:'<svg class="clientConnectionLogo" version="1.0" xmlns="http://www.w3.org/2000/svg"\n width="60" height="60" viewBox="0 0 1280.000000 720.000000"\n preserveAspectRatio="xMidYMid meet">\n <g transform="translate(0.000000,720.000000) scale(0.100000,-0.100000)"\n stroke="none">\n <path id="excellentConnection" fill="#C0C0C0" d="M6169 6226 c-2 -2 -51 -7 -109 -10 -439 -29 -987 -166 -1450 -363 -519 -221 -1027 -554 -1389 -911 -82 -81 -102 -107 -120 -157 -60 -160 18 -347 181 -436 59 -32 69 -34 158 -34 86 0 100 3 147 29 29 16 92 65 140 110 395 364 836 637 1336 825 152 57 374 124 497 151 372 81 500 94 900 95 309 0 362 -2 510 -23 303 -43 520 -95 805 -193 512 -175 1010 -472 1409 -841 137 -126 188 -152 301 -153 71 0 88 4 147 33 71 35 141 103 174 169 15 31 19 60 19 153 0 144 -7 159 -128 278 -328 322 -794 638 -1252 849 -504 232 -1051 376 -1610 423 -113 9 -657 14 -666 6z"/>\n <path id="goodConnection" fill="#C0C0C0" d="M6195 4939 c-787 -66 -1561 -412 -2102 -941 -111 -108 -128 -145 -128 -273 0 -89 3 -105 27 -150 36 -67 107 -139 171 -172 40 -20 71 -27 132 -31 121 -6 169 16 297 134 123 114 297 247 428 329 224 139 526 268 760 325 47 11 101 25 120 30 19 5 100 19 180 32 207 32 550 32 762 0 561 -86 1063 -325 1473 -702 131 -120 182 -145 295 -145 72 0 93 4 141 28 63 30 146 112 178 174 46 91 43 224 -6 315 -50 92 -339 338 -576 492 -467 302 -966 482 -1522 546 -126 15 -499 20 -630 9z"/>\n <path id="mediumConnection" fill="#C0C0C0" d="M6230 3653 c-103 -11 -321 -60 -439 -99 -316 -106 -596 -274 -819 -493 -118 -116 -137 -154 -136 -271 1 -69 6 -96 26 -140 53 -115 155 -197 273 -220 51 -10 71 -9 124 5 78 20 127 50 211 130 271 257 616 395 989 395 387 0 722 -136 1017 -412 100 -93 146 -113 264 -113 105 0 160 24 239 103 77 78 106 145 106 252 0 118 -27 171 -145 283 -330 315 -769 520 -1230 577 -78 9 -399 12 -480 3z"/>\n <path id="lowConnection" fill="#C0C0C0" d="M6270 2447 c-135 -37 -242 -101 -342 -204 -226 -234 -276 -555 -132 -852 40 -82 60 -108 138 -186 103 -102 185 -154 301 -191 97 -31 258 -43 358 -25 241 42 470 233 565 471 107 270 39 583 -172 790 -78 77 -183 143 -285 181 -77 29 -99 32 -216 36 -112 3 -142 0 -215 -20z"/>\n </g>\n</svg>',styles:[".clientConnectionLogo{top:0;right:0;position:absolute}"]}]}],e.ctorParameters=function(){return[]},e}(),D=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[B,M,F],imports:[i.HttpClientModule,s.CommonModule,c.BrowserModule],exports:[B],entryComponents:[B]}]}],e}();e.FacePadComponent=B,e.FacePadModule=D,e.PadSessionWebSocketService=R,e.PadState=v,e.ParametersService=C,e.ɵa=y,e.ɵb=O,e.ɵc=P,e.ɵd=I,e.ɵe=T,e.ɵf=N,e.ɵg=w,e.ɵh=M,e.ɵi=F,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("downloadjs"),require("@id3/facedetector"),require("@angular/common"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("@id3/face-pad",["exports","@angular/core","@angular/common/http","rxjs","rxjs/operators","downloadjs","@id3/facedetector","@angular/common","@angular/platform-browser"],t):t(((e=e||self).id3=e.id3||{},e.id3["face-pad"]={}),e.ng.core,e.ng.common.http,e.rxjs,e.rxjs.operators,e.Downloadjs,e.FaceDetector,e.ng.common,e.ng.platformBrowser)}(this,function(e,t,i,n,a,o,r,s,c){"use strict";function p(e,t,i,n){return new(i||(i=Promise))(function(a,o){function r(e){try{c(n.next(e))}catch(e){o(e)}}function s(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){e.done?a(e.value):new i(function(t){t(e.value)}).then(r,s)}c((n=n.apply(e,t||[])).next())})}function d(e,t){var i,n,a,o,r={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(a=2&o[0]?n.return:o[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;switch(n=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return r.label++,{value:o[1],done:!1};case 5:r.label++,n=o[1],o=[0];continue;case 7:o=r.ops.pop(),r.trys.pop();continue;default:if(!(a=(a=r.trys).length>0&&a[a.length-1])&&(6===o[0]||2===o[0])){r=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){r.label=o[1];break}if(6===o[0]&&r.label<a[1]){r.label=a[1],a=o;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(o);break}a[2]&&r.ops.pop(),r.trys.pop();continue}o=t.call(e,r)}catch(e){o=[6,e],n=0}finally{i=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}o=o&&o.hasOwnProperty("default")?o.default:o;var l={REQUEST_PERMISSIONS:0,INITIAL:1,STARTED:2,PROCESS:3,SUCCESS:4,ERROR_KEY:5,ERROR_SESSION:6,ERROR_NO_FACE:7,ERROR_MULTIPLE_FACE:8,ERROR_NO_INTERNET_CONNECTION:9,ERROR_USER_TOO_FAR:10,ERROR_USER_NOT_CENTER:11,MATCH_READY:12,MATCH_SUCCESS:13,MATCH_ERROR:14};l[l.REQUEST_PERMISSIONS]="REQUEST_PERMISSIONS",l[l.INITIAL]="INITIAL",l[l.STARTED]="STARTED",l[l.PROCESS]="PROCESS",l[l.SUCCESS]="SUCCESS",l[l.ERROR_KEY]="ERROR_KEY",l[l.ERROR_SESSION]="ERROR_SESSION",l[l.ERROR_NO_FACE]="ERROR_NO_FACE",l[l.ERROR_MULTIPLE_FACE]="ERROR_MULTIPLE_FACE",l[l.ERROR_NO_INTERNET_CONNECTION]="ERROR_NO_INTERNET_CONNECTION",l[l.ERROR_USER_TOO_FAR]="ERROR_USER_TOO_FAR",l[l.ERROR_USER_NOT_CENTER]="ERROR_USER_NOT_CENTER",l[l.MATCH_READY]="MATCH_READY",l[l.MATCH_SUCCESS]="MATCH_SUCCESS",l[l.MATCH_ERROR]="MATCH_ERROR";var h=function(){this.autoMatchingEnabled=!1,this.downloadFinalPictureOnSuccessEnabled=!1,this.formatFinalPicture=!1,this.padFrequency=100,this.circleEnabled=!1,this.faceTrackingEnabled=!1,this.circleRadius=200,this.frameWidth=120,this.resultPictureWidth=600,this.faceTrackingOptionDesign=!1},S=function(){this.endSessionEventEmitter=new t.EventEmitter,this.sessionExpiredEventEmitter=new t.EventEmitter,this.internetLostEventEmitter=new t.EventEmitter,this.colorExcellentConnection="#08FF00",this.colorGoodConnection="#08FF00",this.colorMediumConnection="#FFA600",this.colorBadConnection="#FF0000",this.defaultColor="#C0C0C0",this.highLimit=40,this.mediumLimit=100,this.badLimit=150},u=function(){this.faceDetectedEventEmitter=new t.EventEmitter,this.detectionFailureEventEmitter=new t.EventEmitter,this.faceMatchingEventEmitter=new t.EventEmitter},g=function(){this.messages=new Map,this.mapLanguage=new Map},E=function(){this.videoWidth=800,this.videoHeight=600,this.videoConstraints={audio:!1,video:{height:{min:480}}},this.cameraEventEmitter=new t.EventEmitter},m=function(){},f=function(){},v=function(){function e(){this.faceApiBaseUrl="https://web-components.id3.eu",this.pingBaseUrl="https://web-components.id3.eu",this.faceParameters="/api/parameters",this.faceRotateAndCrop="/api/face/rotate-and-crop",this.faceMatching="/api/face/match/pictures",this.apiKey="",this.processState=l.REQUEST_PERMISSIONS,this.componentOptions=new h,this.sessionState=new S,this.faceState=new u,this.messageState=new g,this.videoState=new E,this.padCircleState=new m,this.trackerState=new f,this.changeStateEventEmitter=new t.EventEmitter}return e.prototype.getUrlParameters=function(){return this.faceApiBaseUrl+this.faceParameters},e.prototype.getUrlRotateAndCrop=function(){return this.faceApiBaseUrl+this.faceRotateAndCrop},e.prototype.getUrlMatching=function(){return this.faceApiBaseUrl+this.faceMatching},e.prototype.initApiParameters=function(e){this.faceParameters=e||this.faceParameters},e.prototype.initApiFace=function(e,t){this.faceRotateAndCrop=e||this.faceRotateAndCrop,this.faceMatching=t||this.faceMatching},e.prototype.initApiBase=function(e,t,i){this.apiKey=e||this.apiKey,this.faceApiBaseUrl=t||this.faceApiBaseUrl,this.pingBaseUrl=i||this.pingBaseUrl},e.prototype.initComponentOptions=function(e,t,i,n,a,o,r,s,c,p,d){this.componentOptions.autoMatchingEnabled=e,this.componentOptions.downloadFinalPictureOnSuccessEnabled=t,this.componentOptions.formatFinalPicture=i,this.componentOptions.padFrequency=n||this.componentOptions.padFrequency,this.componentOptions.circleEnabled=a,this.componentOptions.faceTrackingEnabled=o,this.componentOptions.circleRadius=r||this.componentOptions.circleRadius,this.componentOptions.frameWidth=s||this.componentOptions.frameWidth,this.componentOptions.colorProgressCircle=c||this.componentOptions.colorProgressCircle,this.componentOptions.resultPictureWidth=p||this.componentOptions.resultPictureWidth,this.componentOptions.faceTrackingOptionDesign=d},e.prototype.initVideoState=function(e,t){this.videoState.videoHeight=e,this.videoState.videoWidth=t},e.prototype.changeProcessState=function(e){this.processState=e,this.changeStateEventEmitter.emit(l[e])},e.prototype.clearState=function(){clearInterval(this.sessionState.padContinueInterval),this.sessionState.padContinueInterval=void 0,this.sessionState.processInstruction=void 0,this.trackerState.xCoord=void 0,this.trackerState.yCoord=void 0,this.trackerState.wCoord=void 0,this.trackerState.hCoord=void 0,this.sessionState.endSessionEventEmitter.emit(!0)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),R=function(){function e(e){this.padState=e}return e.prototype.connect=function(e){var t=this,i=this.padState.faceApiBaseUrl.replace("http","ws");return new Promise(function(n,a){t.ws=new WebSocket(i+"/pad/session"),t.ws.onopen=function(){console.log("Info: Connection PAD Established."),n(!0)},t.ws.onmessage=e,t.ws.onclose=function(e){console.log("Info: Closing PAD Connection."),a(!1)}})},e.prototype.disconnect=function(){null!=this.ws&&(this.ws.close(),this.ws=null)},e.prototype.isConnected=function(){return null!=this.ws&&this.ws.readyState===this.ws.OPEN},e.prototype.sendMessage=function(e){null!=this.ws?this.ws.bufferedAmount>2e5?console.log("Image not sent : Web socket buffer is too big. We have to wait the previous message to be send before sending a new message."):this.ws.send(JSON.stringify(e)):console.warn("connection to web socket not established, please connect.")},e.prototype.waitForSocketConnection=function(e,t){var i=this;setTimeout(function(){1===e.readyState?(console.log("Connection is made"),null!=t&&t()):(console.log("wait for connection..."),i.waitForSocketConnection(e,t))},5)},e.prototype.startPingServer=function(){var e=this,t=this.padState.pingBaseUrl.replace("http","ws");return new Promise(function(i,n){e.pingWebSocket=new WebSocket(t+"/ping"),e.pingWebSocket.onopen=function(){console.log("Info: Connection Ping Established."),e.pingServer(),i(!0)},e.pingWebSocket.onclose=function(e){console.log("Info: Closing Ping Connection."),n(!1)}})},e.prototype.pingServer=function(){var e=this;1===this.pingWebSocket.readyState?(this.pingWebSocket.send(JSON.stringify(Date.now())),this.pingWebSocket.addEventListener("message",function(t){e.padState.sessionState.latency=Date.now()-t.data,setTimeout(function(){e.pingWebSocket.send(JSON.stringify(Date.now()))},2e3)})):this.startPingServer()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),C=function(){function e(e,t){this.httpClient=e,this.padState=t}return e.prototype.loadParameters=function(){var e=this,t=new i.HttpHeaders;return t=(t=t.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey),this.httpClient.get(this.padState.getUrlParameters(),{headers:t}).pipe(a.map(function(t){return e.padState.parameters=t,t},function(e){console.error(e)}))},e.prototype.getParameters=function(){return this.padState.parameters?n.of(this.padState.parameters):this.loadParameters()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.HttpClient),t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),b=function(){function e(){}return e.b64toBlob=function(e){for(var t=atob(e.split(",")[1]),i=new ArrayBuffer(t.length),n=new Uint8Array(i),a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return new Blob([i],{type:"image/png"})},e.downloadPicture=function(e){return p(this,void 0,void 0,function(){var t,i;return d(this,function(n){switch(n.label){case 0:return[4,new Response(e).arrayBuffer()];case 1:return t=n.sent(),i="data:image/jpeg;base64,"+this.arrayBufferToBase64(t),o(i,"face-result.jpeg","image/jpeg"),[2]}})})},e.arrayBufferToBase64=function(e){for(var t="",i=new Uint8Array(e),n=i.byteLength,a=0;a<n;a++)t+=String.fromCharCode(i[a]);return window.btoa(t)},e}(),y=function(){function e(e,t){this.httpClient=e,this.padState=t}return Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),e.prototype.rotateAndCropFinalPicture=function(){var e=this,n=new t.EventEmitter,a=new i.HttpHeaders;a=(a=a.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey);var o=new FormData;return o.append("picture",this.padState.photoPADStartOriginal),this.httpClient.post(this.padState.getUrlRotateAndCrop(),o,{headers:a}).subscribe(function(t){if(t.length>0){var i=b.b64toBlob("data:image/png;base64,"+t[0].picture);e.padState.generatedPicture=i,e.componentOptions.autoMatchingEnabled?e.padState.changeProcessState(l.MATCH_READY):e.componentOptions.downloadFinalPictureOnSuccessEnabled&&b.downloadPicture(e.padState.generatedPicture).then(),n.emit(i)}else{var a="No picture generated from the original picture by the rotate-and-crop method";n.error(a),console.warn(a)}},function(t){if(417===t.status)e.padState.changeProcessState(l.ERROR_MULTIPLE_FACE),e.faceState.detectionFailureEventEmitter.emit("ERROR_MULTIPLE_FACE"),n.error(l.ERROR_MULTIPLE_FACE);else if(404===t.status)e.padState.changeProcessState(l.ERROR_NO_FACE),e.faceState.detectionFailureEventEmitter.emit("ERROR_NO_FACE"),n.error(l.ERROR_NO_FACE);else if(0===t.status)e.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),e.sessionState.internetLostEventEmitter.emit(),n.error(l.ERROR_NO_INTERNET_CONNECTION);else{n.error("No picture generated from the original picture by the rotate-and-crop method"),console.error("No picture generated from the original picture by the rotate-and-crop method"+t)}e.padState.clearState()}),n},e.prototype.manageFinalPicture=function(){var e=this;this.componentOptions.formatFinalPicture?this.rotateAndCropFinalPicture().subscribe(function(t){e.faceState.faceDetectedEventEmitter.emit(t)},function(t){e.faceState.faceDetectedEventEmitter.error(t)}):(this.padState.generatedPicture=this.padState.photoPADStartOriginal,this.faceState.faceDetectedEventEmitter.emit(this.padState.generatedPicture),!this.componentOptions.autoMatchingEnabled&&this.componentOptions.downloadFinalPictureOnSuccessEnabled?b.downloadPicture(this.padState.generatedPicture).then():this.componentOptions.autoMatchingEnabled&&this.padState.changeProcessState(l.MATCH_READY))},e.prototype.compareWithReference=function(e){var t=this,n=new i.HttpHeaders;n=(n=n.append("Accept","application/json")).append("ApiKeyAuth",this.padState.apiKey);var a=URL.createObjectURL(e.target.files[0]),o=new Image;o.onload=function(){var e=500/o.width,i=document.createElement("canvas");i.width=500,i.height=o.height*e,i.getContext("2d").drawImage(o,0,0,i.width,i.height),i.toBlob(function(e){return p(t,void 0,void 0,function(){var t,i=this;return d(this,function(a){return(t=new FormData).append("reference",e),t.append("probe",this.padState.photoPADStartOriginal),this.httpClient.post(this.padState.getUrlMatching(),t,{headers:n}).subscribe(function(e){i.faceState.faceMatchingEventEmitter.emit(e),e.decision?i.padState.changeProcessState(l.MATCH_SUCCESS):i.padState.changeProcessState(l.MATCH_ERROR),e.decision&&i.componentOptions.downloadFinalPictureOnSuccessEnabled&&b.downloadPicture(i.padState.generatedPicture).then()},function(e){i.padState.changeProcessState(l.MATCH_ERROR),i.faceState.faceMatchingEventEmitter.error("An error occured during the Matching process. Please retry later.")}),[2]})})},"image/jpeg")},o.src=a},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.HttpClient),t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),L=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Press on Start button when you are ready"],["PROCESS_FACE_CENTER_LABEL","Face detected, but not centered. Please look straight to the camera"],["PROCESS_NO_FACE_LABEL","No face detected. Please look straight to the camera."],["PROCESS_MULTIPLE_FACE_LABEL","Multiple faces detected. Only one person is allowed in the detection."],["TURN_FACE_LABEL","Now, please turn your face (look at the right or at the left)"],["EXPIRED_SESSION_ERROR_LABEL","Session has expired. Please try again."],["NO_FACE_ERROR_LABEL","No face detected. Please try again."],["NO_INTERNET_CONNECTION_LABEL","Internet connection lost. Please try again"],["MULTIPLE_FACE_ERROR_LABEL","Multiple faces detected. Please try again."],["MATCHING_SUCCESS_LABEL","Detected face successfully match the reference picture."],["MATCHING_READY_LABEL",'Picture is ready to be compared with a reference picture.Please click on the "Compare" button to upload the reference picture.'],["MATCHING_ERROR_LABEL","Detected face does not match the reference picture"],["SUCCESS_LABEL","Live face successfully detected."],["START_BUTTON_LABEL","Start"],["RESTART_BUTTON_LABEL","Restart"],["COMPARE_BUTTON_LABEL","Compare"],["ENABLE_CAM_BUTTON_LABEL","Start the webcam"],["RETRY_BUTTON_LABEL","Retry"],["USER_TOO_FAR_LABEL","Too far away, please move closer"],["USER_NOT_CENTER_LABEL","Please, move on the target area"]]),e}(),_=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Cliquez sur Démarrer lorsque vous êtes prêt"],["PROCESS_FACE_CENTER_LABEL","Visage detecté, mais non centré. Veuillez regarder la caméra en mettant votre visage bien en face"],["PROCESS_NO_FACE_LABEL","Pas de visage detecté. Veuillez vous positionner au centre de l'écran."],["PROCESS_MULTIPLE_FACE_LABEL","Plusieurs visages detectés. La detection ne fonctionne qu'avec un seul visage."],["TURN_FACE_LABEL","Maintenant, tournez lentement la tête (vers la droite ou vers la gauche)"],["EXPIRED_SESSION_ERROR_LABEL","La session a expiré. Veuillez réessayer"],["NO_FACE_ERROR_LABEL","Pas de visage detecté. Veuillez réessayer"],["NO_INTERNET_CONNECTION_LABEL","Connection internet perdue. Veuillez réessayer"],["MULTIPLE_FACE_ERROR_LABEL","Plusieurs visages detectés. Veuillez réessayer"],["MATCHING_SUCCESS_LABEL","Le visage correspond bien à la photo de référence"],["MATCHING_READY_LABEL",'La photo est prête à être comparée avec une référence.Veuillez cliquer sur le bouton "Verifier" puis choisir une photo de référence.'],["MATCHING_ERROR_LABEL","Le visage ne correspond pas à la photo de référence"],["SUCCESS_LABEL","La detection du visage a réussi."],["START_BUTTON_LABEL","Démarrer"],["RESTART_BUTTON_LABEL","Recommencer"],["COMPARE_BUTTON_LABEL","Vérifier"],["ENABLE_CAM_BUTTON_LABEL","Activer la webcam"],["RETRY_BUTTON_LABEL","Réessayer"],["USER_TOO_FAR_LABEL","Vous êtes trop loin, veuillez vous rapprocher de la caméra"],["USER_NOT_CENTER_LABEL","Veuillez vous positionner à l'intérieur de la zone cible"]]),e}(),A=function(){function e(){}return e.messages=new Map([["START_TIPS_LABEL","Pressione no botão Iniciar quando estiver pronto"],["PROCESS_FACE_CENTER_LABEL","Rosto detectado, mas não centrado. Por favor, olhe diretamente para a câmera"],["PROCESS_NO_FACE_LABEL","Nenhum rosto detectado. Por favor, olhe diretamente para a câmera."],["PROCESS_MULTIPLE_FACE_LABEL","Múltiplos rostos detectados. Apenas uma pessoa é permitida na detecção."],["TURN_FACE_LABEL","Agora, por favor, vire seu rosto (olhe para a direita ou para a esquerda)"],["EXPIRED_SESSION_ERROR_LABEL","Sessão expirou. Por favor, tente novamente."],["NO_FACE_ERROR_LABEL","Nenhum rosto detectado. Por favor, tente novamente."],["NO_INTERNET_CONNECTION_LABEL","Conexão perdida com a internet. Por favor, tente novamente."],["MULTIPLE_FACE_ERROR_LABEL","Múltiplos rostos detectados. Por favor, tente novamente."],["MATCHING_SUCCESS_LABEL","A face detectada corresponde com sucesso à imagem de referência."],["MATCHING_READY_LABEL",'A imagem está pronta para ser comparada com uma imagem de referência.Por favor, clique no botão "Comparar" para carregar a imagem de referência.'],["MATCHING_ERROR_LABEL","Detected face does not match the reference picture"],["SUCCESS_LABEL","O rosto detectado não corresponde à imagem de referência"],["START_BUTTON_LABEL","Iniciar"],["RESTART_BUTTON_LABEL","Começar de novo"],["COMPARE_BUTTON_LABEL","Comparar"],["ENABLE_CAM_BUTTON_LABEL","Comece a webcam"],["RETRY_BUTTON_LABEL","Tente novamente"],["USER_TOO_FAR_LABEL","Você está longe demais, por favor, aproxime-se da câmera"],["USER_NOT_CENTER_LABEL","Por favor posicione-se dentro da área alvo"]]),e}(),O=function(){function e(e){this.padState=e,this.messageState.mapLanguage.set("fr",_.messages),this.messageState.mapLanguage.set("en",L.messages),this.messageState.mapLanguage.set("pt",A.messages)}return Object.defineProperty(e.prototype,"messageState",{get:function(){return this.padState.messageState},enumerable:!0,configurable:!0}),e.prototype.getMessage=function(e){return!this.messageState.messages.get(e)&&this.messageState.languageFile?this.messageState.languageFile.get(e):this.messageState.messages.get(e)},e.prototype.initMessage=function(e,t,i,n,a,o,r,s,c,p,d,l,h,S,u,g,E,m,f,v){this.messageState.messages.set("START_TIPS_LABEL",e),this.messageState.messages.set("PROCESS_FACE_CENTER_LABEL",t),this.messageState.messages.set("PROCESS_NO_FACE_LABEL",i),this.messageState.messages.set("PROCESS_MULTIPLE_FACE_LABEL",n),this.messageState.messages.set("TURN_FACE_LABEL",a),this.messageState.messages.set("EXPIRED_SESSION_ERROR_LABEL",o),this.messageState.messages.set("NO_FACE_ERROR_LABEL",r),this.messageState.messages.set("MULTIPLE_FACE_ERROR_LABEL",s),this.messageState.messages.set("SUCCESS_LABEL",c),this.messageState.messages.set("START_BUTTON_LABEL",p),this.messageState.messages.set("RESTART_BUTTON_LABEL",d),this.messageState.messages.set("COMPARE_BUTTON_LABEL",l),this.messageState.messages.set("ENABLE_CAM_BUTTON_LABEL",h),this.messageState.messages.set("RETRY_BUTTON_LABEL",S),this.messageState.messages.set("MATCHING_SUCCESS_LABEL",u),this.messageState.messages.set("MATCHING_READY_LABEL",g),this.messageState.messages.set("MATCHING_ERROR_LABEL",E),this.messageState.messages.set("NO_INTERNET_CONNECTION_LABEL",m),this.messageState.messages.set("USER_TOO_FAR_LABEL",f),this.messageState.messages.set("USER_NOT_CENTER_LABEL",v)},e.prototype.initLanguage=function(){this.messageState.languageFile=this.messageState.mapLanguage.get(navigator.language.substr(0,2)),this.messageState.languageFile||(this.messageState.languageFile=L.messages)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),I=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackerState",{get:function(){return this.padState.trackerState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.faceTracker=function(){var e=this,t=this.videoState.videoPAD.nativeElement,i=this.videoState.canvasResult.nativeElement,n=i.getContext("2d");i.width=this.videoState.videoWidth,i.height=this.videoState.videoHeight,this.faceDetector=new r({video:t,flipLeftRight:!1,flipUpsideDown:!1}),this.faceDetector.startDetecting(),this.faceDetector.setOnFaceLostCallback(function(e,t){n.clearRect(0,0,i.width,i.height)}),this.faceDetector.setOnFaceUpdatedCallback(function(t){n.clearRect(0,0,i.width,i.height),e.componentOptions.faceTrackingOptionDesign?(n.strokeStyle="rgba(0,200,200,0)",n.fillStyle="rgba(0,200,200,0)"):(n.strokeStyle="rgba(0,221,52,1.0)",n.fillStyle="rgba(0,221,52,0.08)"),n.lineWidth=2,t.forEach(function(t){n.beginPath();var a=t.width*i.width/2,o=1.5*t.height*i.height/2;n.ellipse(t.x*i.width+a,t.y*i.height+o-o/2,a,o,0,0,2*Math.PI),n.stroke(),n.fill(),e.componentOptions.faceTrackingOptionDesign&&(n.strokeStyle="rgba(0,200,200,0)",n.lineWidth="10",n.fillStyle="rgba(0, 0, 0, 0.7)",n.beginPath(),n.moveTo(0,0),n.lineTo(0,i.height),n.lineTo(i.width/2,i.height),n.ellipse(t.x*i.width+a,t.y*i.height+o-o/2,a,o,0,Math.PI/2,Math.PI/2.000001),n.lineTo(i.height/2,i.height),n.lineTo(i.width,i.height),n.lineTo(i.width,0),n.lineTo(i.width/2,0),n.lineTo(i.width/2,0),n.lineTo(0,0),n.stroke(),n.fill()),e.trackerState.xCoord=t.x*i.width,e.trackerState.yCoord=t.y*i.height,e.trackerState.wCoord=t.width*i.width,e.trackerState.hCoord=t.height*i.height})})},e.prototype.faceTrackingReadyToStart=function(){return this.componentOptions.faceTrackingEnabled&&(!this.faceDetector||!this.faceDetector.isRunning())},e.prototype.faceTrackingHasToBeDrawn=function(){return this.componentOptions.faceTrackingEnabled&&this.faceDetector.isRunning()&&this.trackerState.xCoord&&!this.componentOptions.circleEnabled},e.prototype.faceTrackingReady=function(){return this.componentOptions.faceTrackingEnabled&&this.faceDetector.isRunning()&&this.trackerState.xCoord},e.prototype.stopTracking=function(){this.faceDetector&&this.faceDetector.stop()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),T=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"padCircleState",{get:function(){return this.padState.padCircleState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),e.prototype.progressCircle=function(){var e=this,t=this.videoState.canvasResult.nativeElement;t.width=this.videoState.width,t.height=this.videoState.height;var i=t.getContext("2d"),n=t.width/2,a=t.height/2;i.lineCap="round";var o=0,r=setInterval(function(){i.clearRect(0,0,t.width,t.height),e.grayScale(e.componentOptions.circleRadius,i,t,n,a),i.beginPath(),""!==e.componentOptions.colorProgressCircle?i.strokeStyle=e.componentOptions.colorProgressCircle:i.strokeStyle="#007bff",i.lineWidth="10",i.arc(n,a,e.componentOptions.circleRadius,Math.PI/180*270,Math.PI/180*(270+o)),i.stroke(),e.sessionState.processCompletion>=100?(i.arc(n,a,e.componentOptions.circleRadius,Math.PI/180*(270+o),Math.PI/180*630),i.stroke(),e.sessionState.processCompletion=0,o=0,clearInterval(r),e.padCircleState.isCircleRunning=!1):o<e.sessionState.processCompletion/100*360?o+=10:e.padState.processState!==l.ERROR_NO_FACE&&e.padState.processState!==l.ERROR_NO_INTERNET_CONNECTION&&e.padState.processState!==l.ERROR_SESSION&&e.padState.processState!==l.ERROR_MULTIPLE_FACE||(i.clearRect(0,0,t.width,t.height),e.grayScale(e.componentOptions.circleRadius,i,t,n,a),e.sessionState.processCompletion=0,o=0,clearInterval(r),e.padCircleState.isCircleRunning=!1)},60)},e.prototype.grayScale=function(e,t,i,n,a){t.strokeStyle="rgba(0,200,200,0)",t.lineWidth="10",t.fillStyle="rgba(0, 0, 0, 0.7)",t.beginPath(),t.moveTo(0,0),t.lineTo(0,i.height),t.lineTo(n,i.height),t.lineTo(n,i.height-e/2),t.arc(n,a,e,Math.PI/2,Math.PI/2.000001),t.lineTo(n,i.height),t.lineTo(i.width,i.height),t.lineTo(i.width,0),t.lineTo(n,0),t.lineTo(n,e/2),t.lineTo(n,0),t.lineTo(0,0),t.stroke(),t.fill()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),P=function(){function e(e,t,i,n,a,o){this.padState=e,this.messageService=t,this.faceService=i,this.padSessionWebSocketService=n,this.trackerService=a,this.padCircleService=o}return Object.defineProperty(e.prototype,"processCompletion",{get:function(){return this.sessionState.processCompletion},set:function(e){this.sessionState.processCompletion=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentOptions",{get:function(){return this.padState.componentOptions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeadSize",{get:function(){return this.padState.parameters.minHeadSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"padCircleState",{get:function(){return this.padState.padCircleState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trackerState",{get:function(){return this.padState.trackerState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),e.prototype.processPadSessionResponse=function(e){var t=this;this.processCompletion=e.processCompletion,e.result?(this.padState.changeProcessState(l.SUCCESS),this.padState.clearState(),this.faceService.manageFinalPicture()):(this.sessionState.processInstruction="",e.errorType||this.padState.processState!==l.STARTED?"INVALID_YAW"===e.errorType||"INVALID_PITCH"===e.errorType?(this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_FACE_CENTER_LABEL"),this.sessionState.padStartTimeOut=setTimeout(function(){return t.prepareCallPADStart()},500)):"INVALID_KEY"===e.errorType?this.padState.changeProcessState(l.ERROR_KEY):"INVALID_FACE"===e.errorType?this.padState.processState===l.PROCESS?(0===e.faceCount?(this.padState.changeProcessState(l.ERROR_NO_FACE),this.faceState.detectionFailureEventEmitter.emit("ERROR_NO_FACE")):e.faceCount>1&&(this.padState.changeProcessState(l.ERROR_MULTIPLE_FACE),this.faceState.detectionFailureEventEmitter.emit("ERROR_MULTIPLE_FACE")),this.padState.clearState()):this.padState.processState===l.STARTED&&(0===e.faceCount?this.componentOptions.circleEnabled?this.sessionState.processInstruction=this.messageService.getMessage("USER_NOT_CENTER_LABEL"):this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_NO_FACE_LABEL"):e.faceCount>1&&(this.sessionState.processInstruction=this.messageService.getMessage("PROCESS_MULTIPLE_FACE_LABEL")),setTimeout(function(){return t.prepareCallPADStart()},500)):"INVALID_SESSION"===e.errorType&&(this.padState.changeProcessState(l.ERROR_SESSION),this.padState.clearState(),this.sessionState.sessionExpiredEventEmitter.emit()):(this.padState.changeProcessState(l.PROCESS),this.sessionState.padContinueInterval=setInterval(function(){return t.prepareCallPADContinue()},this.componentOptions.padFrequency)))},e.prototype.prepareCallPADStart=function(){var e=this;this.padSessionWebSocketService.isConnected()?this.callPADStart():this.padSessionWebSocketService.connect(function(t){return e.processPadSessionResponse(JSON.parse(t.data))}).then(function(t){e.callPADStart()}).catch(function(t){e.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),e.sessionState.internetLostEventEmitter.emit(),e.padState.clearState()})},e.prototype.callPADStart=function(){var e=this;try{this.trackerService.faceTrackingReadyToStart()?this.trackerService.faceTracker():this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled&&(this.padCircleState.isCircleRunning||(this.padCircleService.progressCircle(),this.padCircleState.isCircleRunning=!0));var t=this.componentOptions.frameWidth/this.videoState.videoPAD.nativeElement.clientWidth;this.padState.changeProcessState(l.STARTED);var i=document.createElement("canvas");if(this.trackerService.faceTrackingHasToBeDrawn()){i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight;var n=1.5*this.trackerState.wCoord*this.videoState.ratioWidth,a=(this.trackerState.xCoord-(n-this.trackerState.wCoord))*this.videoState.ratioWidth,o=1.5*this.trackerState.hCoord*this.videoState.ratioHeight,r=(this.trackerState.yCoord-(o-this.trackerState.hCoord))*this.videoState.ratioHeight;i.height*this.trackerState.hCoord/this.videoState.videoHeight<this.minHeadSize?this.padState.changeProcessState(l.ERROR_USER_TOO_FAR):(i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+a,r,n,o,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg"))}else this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled?(i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,this.videoState.width/2-2*this.componentOptions.circleRadius*this.videoState.ratioWidth/2,this.videoState.height/2-2*this.componentOptions.circleRadius*this.videoState.ratioHeight/2,2*this.componentOptions.circleRadius*this.videoState.ratioWidth,2*this.componentOptions.circleRadius*this.videoState.ratioHeight,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg")):(i.width=this.componentOptions.frameWidth,i.height=this.videoState.videoPAD.nativeElement.clientHeight*t,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,i.width,i.height),i.toBlob(function(t){e.sessionState.photoPADStart=t,e.padState.changeStateEventEmitter.emit("PAD Start photo blob generated"),e.doPADStart()},"image/jpeg"));var s=this.componentOptions.resultPictureWidth/this.videoState.videoPAD.nativeElement.videoWidth,c=document.createElement("canvas");this.trackerService.faceTrackingReady()?(c.width=1.5*this.trackerState.wCoord,c.height=1.5*this.trackerState.hCoord,this.trackerState.xCoord-=c.width-this.trackerState.wCoord,this.trackerState.yCoord-=c.height-this.trackerState.hCoord,c.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+this.trackerState.xCoord,this.trackerState.yCoord,c.width,c.height,0,0,c.width,c.height)):(c.width=this.componentOptions.resultPictureWidth,c.height=this.videoState.videoPAD.nativeElement.videoHeight*s,c.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,c.width,c.height)),c.toBlob(function(t){e.padState.photoPADStartOriginal=t,e.padState.changeStateEventEmitter.emit("PAD Start photo original blob generated")},"image/jpeg")}catch(e){console.error(e),this.padState.changeStateEventEmitter.emit("Exception at prepareCallPADStart(): "+JSON.stringify(e))}},e.prototype.doPADStart=function(){return p(this,void 0,void 0,function(){var e;return d(this,function(t){switch(t.label){case 0:return[4,new Response(this.sessionState.photoPADStart).arrayBuffer()];case 1:return e=t.sent(),this.padSessionWebSocketService.sendMessage({faceImage:b.arrayBufferToBase64(e),typeMessagePad:"START",apiKey:this.padState.apiKey}),[2]}})})},e.prototype.prepareCallPADContinue=function(){var e=this;if(this.padSessionWebSocketService.isConnected())try{var t=this.componentOptions.frameWidth/this.videoState.videoPAD.nativeElement.clientWidth,i=document.createElement("canvas");if(this.trackerService.faceTrackingReady()){i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight;var n=1.5*this.trackerState.wCoord*this.videoState.ratioWidth,a=(this.trackerState.xCoord-(n-this.trackerState.wCoord))*this.videoState.ratioWidth,o=1.5*this.trackerState.hCoord*this.videoState.ratioHeight,r=(this.trackerState.yCoord-(o-this.trackerState.hCoord))*this.videoState.ratioHeight;i.height*this.trackerState.hCoord/this.videoState.videoHeight<this.minHeadSize?this.sessionState.processInstruction=this.messageService.getMessage("USER_TOO_FAR_LABEL"):(i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,+a,r,n,o,0,0,i.width,i.height),this.toBlob(i))}else this.componentOptions.circleEnabled&&!this.componentOptions.faceTrackingEnabled?(i.width=3*this.minHeadSize*this.videoState.ratioWidth,i.height=3*this.minHeadSize*this.videoState.ratioHeight,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,this.videoState.width/2-2*this.componentOptions.circleRadius*this.videoState.ratioWidth/2,this.videoState.height/2-2*this.componentOptions.circleRadius*this.videoState.ratioHeight/2,2*this.componentOptions.circleRadius*this.videoState.ratioWidth,2*this.componentOptions.circleRadius*this.videoState.ratioHeight,0,0,i.width,i.height),this.toBlob(i)):(i.width=this.componentOptions.frameWidth,i.height=this.videoState.videoPAD.nativeElement.clientHeight*t,i.getContext("2d").drawImage(this.videoState.videoPAD.nativeElement,0,0,i.width,i.height),this.toBlob(i))}catch(e){this.padState.changeStateEventEmitter.emit("Exception at prepareCallPADContinue(): "+JSON.stringify(e))}else this.padState.clearState(),this.padState.changeProcessState(l.ERROR_NO_INTERNET_CONNECTION),this.sessionState.internetLostEventEmitter.emit(),setTimeout(function(){return e.initPadSource()},5e3)},e.prototype.toBlob=function(e){var t=this;e.toBlob(function(e){return p(t,void 0,void 0,function(){var t;return d(this,function(i){switch(i.label){case 0:return this.padState.changeStateEventEmitter.emit("PAD Continue photo blob generated"),this.sessionState.photoPADContinue=e,[4,new Response(this.sessionState.photoPADContinue).arrayBuffer()];case 1:return t=i.sent(),this.padSessionWebSocketService.sendMessage({faceImage:b.arrayBufferToBase64(t),typeMessagePad:"CONTINUE",apiKey:this.padState.apiKey}),[2]}})})},"image/jpeg")},e.prototype.initPadSource=function(){return p(this,void 0,void 0,function(){var e,t,i=this;return d(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),e=this.videoState,[4,navigator.mediaDevices.getUserMedia(this.videoState.videoConstraints)];case 1:return e.videoPADStream=n.sent(),this.videoState.videoPAD&&(this.videoState.videoPAD.nativeElement.srcObject=this.videoState.videoPADStream),this.handleSuccess(),this.padState.changeProcessState(l.INITIAL),window.addEventListener("beforeunload",function(){return i.leaving()}),[3,3];case 2:return t=n.sent(),console.log("Error : "+t),[3,3];case 3:return[2]}})})},e.prototype.leaving=function(){this.videoState.videoPADStream.stop()},e.prototype.handleSuccess=function(){var e=this.videoState.videoPADStream.getVideoTracks();this.videoState.cameraEventEmitter.emit("Got stream with constraints: "+JSON.stringify(this.videoState.videoConstraints)),this.videoState.cameraEventEmitter.emit("Using video device: "+JSON.stringify(e[0].label))},e.prototype.updateNetworkStatus=function(){var e=this;setInterval(function(){e.padState.sessionState.latency<e.padState.sessionState.highLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorExcellentConnection)):e.padState.sessionState.latency>e.padState.sessionState.highLimit&&e.padState.sessionState.latency<e.padState.sessionState.mediumLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorGoodConnection)):e.padState.sessionState.latency>e.padState.sessionState.mediumLimit&&e.padState.sessionState.latency<e.padState.sessionState.badLimit?(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.colorMediumConnection),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorMediumConnection)):(document.getElementById("excellentConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("goodConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("mediumConnection").setAttribute("fill",e.padState.sessionState.defaultColor),document.getElementById("lowConnection").setAttribute("fill",e.padState.sessionState.colorBadConnection))},2e3)},e.prototype.isRequestPermissionState=function(){return this.padState.processState===l.REQUEST_PERMISSIONS},e.prototype.isInitialState=function(){return this.padState.processState===l.INITIAL},e.prototype.isStartedState=function(){return this.padState.processState===l.STARTED},e.prototype.isProcessingState=function(){return this.padState.processState===l.PROCESS},e.prototype.isErrorSessionState=function(){return this.padState.processState===l.ERROR_SESSION},e.prototype.isErrorNoFaceState=function(){return this.padState.processState===l.ERROR_NO_FACE},e.prototype.isErrorNoInternetConnection=function(){return this.padState.processState===l.ERROR_NO_INTERNET_CONNECTION},e.prototype.isErrorUserTooFar=function(){return this.padState.processState===l.ERROR_USER_TOO_FAR},e.prototype.isErrorUserNotCenter=function(){return this.padState.processState===l.ERROR_USER_NOT_CENTER},e.prototype.isErrorMultipleFaceState=function(){return this.padState.processState===l.ERROR_MULTIPLE_FACE},e.prototype.isSuccessState=function(){return this.padState.processState===l.SUCCESS},e.prototype.isInvalidKeyState=function(){return this.padState.processState===l.ERROR_KEY},e.prototype.isMatchingReadyState=function(){return this.padState.processState===l.MATCH_READY},e.prototype.isMatchingSuccessState=function(){return this.padState.processState===l.MATCH_SUCCESS},e.prototype.isMatchingErrorState=function(){return this.padState.processState===l.MATCH_ERROR},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v},{type:O},{type:y},{type:R},{type:I},{type:T}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v),t.ɵɵinject(O),t.ɵɵinject(y),t.ɵɵinject(R),t.ɵɵinject(I),t.ɵɵinject(T))},token:e,providedIn:"root"}),e}(),N=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.initDatasFromVideoPAD=function(){var e=this;this.videoState.videoPAD.nativeElement.addEventListener("loadedmetadata",function(t){e.videoState.width=e.videoState.videoPAD.nativeElement.videoWidth,e.videoState.height=e.videoState.videoPAD.nativeElement.videoHeight,e.videoState.ratioWidth=e.videoState.width/e.videoState.videoWidth,e.videoState.ratioHeight=e.videoState.height/e.videoState.videoHeight},!1)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),w=function(){function e(e){this.padState=e}return Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.isMobileDevice=function(){return window.matchMedia("only screen and (max-width: 760px)").matches},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:v}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(v))},token:e,providedIn:"root"}),e}(),B=function(){function e(e,i,n,a,o,r,s,c,p){this.padSessionWebSocketService=e,this.padState=i,this.parametersService=n,this.faceService=a,this.messageService=o,this.padSessionService=r,this.trackerService=s,this.videoService=c,this.deviceService=p,this.downloadFinalPictureOnSuccess=!1,this.enableAutoMatching=!1,this.autoStart=!1,this.faceTrackingEnabled=!1,this.faceTrackingOptionDesign=!1,this.mirror=!1,this.circleEnabled=!1,this.circleRadius=200,this.formatFinalPicture=!1,this.resultPictureWidth=600,this.allowsMultipleRetries=!1,this.videoWidth=800,this.videoHeight=600,this.frameWidth=120,this.messagesEnabled=!0,this.padFrequency=100,this.faceDetectedHandler=new t.EventEmitter,this.detectionFailureHandler=new t.EventEmitter,this.internetLostHandler=new t.EventEmitter,this.cameraHandler=new t.EventEmitter,this.sessionExpiredHandler=new t.EventEmitter,this.changeStateHandler=new t.EventEmitter,this.matchingHandler=new t.EventEmitter}return Object.defineProperty(e.prototype,"minHeadSize",{get:function(){return this.padState.parameters.minHeadSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"processState",{get:function(){return this.padState.processState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sessionState",{get:function(){return this.padState.sessionState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"messageState",{get:function(){return this.padState.messageState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"faceState",{get:function(){return this.padState.faceState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"videoState",{get:function(){return this.padState.videoState},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.messageService.initLanguage(),this.messageService.initMessage(this.startTipsLabel,this.processFaceCenterLabel,this.processNoFaceLabel,this.processMultipleFaceLabel,this.turnFaceLabel,this.expiredSessionErrorLabel,this.noFaceErrorLabel,this.multipleFaceErrorLabel,this.successLabel,this.startButtonLabel,this.restartButtonLabel,this.compareButtonLabel,this.enableCamButtonLabel,this.retryButtonLabel,this.matchingSuccessLabel,this.matchingReadyLabel,this.matchingErrorLabel,this.noInternetConnectionLabel,this.userTooFarLabel,this.userNotCenterLabel),this.padSessionService.updateNetworkStatus(),this.sessionState.endSessionEventEmitter.subscribe(function(t){e.ngOnDestroy()}),this.padState.changeStateEventEmitter.subscribe(function(t){e.changeStateHandler.emit(t)}),this.faceState.faceDetectedEventEmitter.subscribe(function(t){e.faceDetectedHandler.emit(t)}),this.faceState.detectionFailureEventEmitter.subscribe(function(t){e.detectionFailureHandler.emit(t)}),this.faceState.faceMatchingEventEmitter.subscribe(function(t){e.matchingHandler.emit(t)}),this.sessionState.sessionExpiredEventEmitter.subscribe(function(t){e.sessionExpiredHandler.emit(t)}),this.sessionState.internetLostEventEmitter.subscribe(function(t){e.internetLostHandler.emit(t)}),this.videoState.cameraEventEmitter.subscribe(function(t){e.cameraHandler.emit(t)}),this.padState.initApiBase(this.apiKey,this.wsEndpoint,this.pingBaseUrl?this.pingBaseUrl:this.wsEndpoint),this.padSessionWebSocketService.startPingServer().then()},e.prototype.ngOnDestroy=function(){clearTimeout(this.sessionState.padStartTimeOut),this.padSessionWebSocketService.disconnect(),this.trackerService.stopTracking()},e.prototype.ngAfterViewInit=function(){this.videoState.videoPAD=this.videoPAD,this.videoState.canvasResult=this.canvasResult,this.padState.initApiFace(this.wsFormatPicture,this.wsFaceVerification),this.padState.initComponentOptions(this.enableAutoMatching,this.downloadFinalPictureOnSuccess,this.formatFinalPicture,this.padFrequency,this.circleEnabled,this.faceTrackingEnabled,this.circleRadius,this.frameWidth,this.colorProgressCircle,this.resultPictureWidth,this.faceTrackingOptionDesign),this.padState.initApiParameters(this.wsImageSize),this.padState.initVideoState(this.deviceService.isMobileDevice()?this.videoPAD.nativeElement.clientHeight:this.videoHeight,this.videoWidth),this.parametersService.getParameters().subscribe(),this.autoStart&&(this.initPadSource(),this.videoService.initDatasFromVideoPAD())},e.prototype.initPadSource=function(){this.padSessionService.initPadSource().then()},e.prototype.initDatasFromVideoPAD=function(){this.videoService.initDatasFromVideoPAD()},e.prototype.startPAD=function(){this.padSessionService.prepareCallPADStart()},e.prototype.emitChangeStateEvent=function(e){this.changeStateHandler.emit(e)},e.prototype.resetUI=function(){this.padState.changeProcessState(l.INITIAL)},e.prototype.compareWithReference=function(e){if(e||(e=this.padState.generatedPicture),e)document.getElementById("id3-fileForMatching").click();else{var t="PAD Result picture is missing. You have to execute the entire PAD process before calling the Matching Javascript function.\n";t+="IMPORTANT NOTE : If you are using the pureJS component, you have to provide the picture in argument (mandatory).",console.error(t),this.matchingHandler&&this.matchingHandler.error(t)}},e.prototype.handleReferenceFile=function(e){this.faceService.compareWithReference(e)},e.prototype.getVideoMaxHeight=function(){return this.deviceService.isMobileDevice()?"none":this.videoHeight+"px"},e.decorators=[{type:t.Component,args:[{selector:"id3-face-pad",template:'<id3-face-pad-messages *ngIf="messagesEnabled" class="show-small-screen" [startTipsLabel]="messageService.getMessage(\'START_TIPS_LABEL\')"\n [turnFaceLabel]="messageService.getMessage(\'TURN_FACE_LABEL\')" [expiredSessionErrorLabel]="messageService.getMessage(\'EXPIRED_SESSION_ERROR_LABEL\')"\n [noFaceErrorLabel]="messageService.getMessage(\'NO_FACE_ERROR_LABEL\')" [noInternetConnectionLabel]="messageService.getMessage(\'NO_INTERNET_CONNECTION_LABEL\')"\n [multipleFaceErrorLabel]="messageService.getMessage(\'MULTIPLE_FACE_ERROR_LABEL\')" [successLabel]="messageService.getMessage(\'SUCCESS_LABEL\')"\n [processInstruction]="sessionState.processInstruction" [padSessionService]="padSessionService" [matchingSuccessLabel]="messageService.getMessage(\'MATCHING_SUCCESS_LABEL\')"\n [matchingErrorLabel]="messageService.getMessage(\'MATCHING_ERROR_LABEL\')" [matchingReadyLabel]="messageService.getMessage(\'MATCHING_READY_LABEL\')"\n [userTooFarLabel]="messageService.getMessage(\'USER_TOO_FAR_LABEL\')" [userNotCenterLabel]="messageService.getMessage(\'USER_NOT_CENTER_LABEL\')">\n</id3-face-pad-messages>\n\n<input #fileForMatch id="id3-fileForMatching" type="file" (click)="fileForMatch.value=null;" name="fileForMatch" class="d-none" (change)="handleReferenceFile($event)"/>\n<div class="padContainer" [style.max-height]="getVideoMaxHeight()" [style.max-width]="videoWidth + \'px\'">\n <canvas class="canvas {{mirror && !circleEnabled ? \'mirror\': \'\'}}" #resultCanvas></canvas>\n <video class="liveStream {{mirror ? \'mirror\': \'\'}}" #videoPAD autoplay playsinline [style.maxHeight]="getVideoMaxHeight()"></video>\n <div class="id3-pad-overlay">\n <div class="extras">\n <img class="text-left" id="id3Logo" src="/assets/images/id3_logo_white_40.png" height="40" width="40" *ngIf="apiKey === \'test-token-id3-webcapture\'">\n <id3-network-status ></id3-network-status>\n </div>\n <div id="mainContent" class="pad-content d-block">\n\n <id3-face-pad-messages *ngIf="messagesEnabled" class="show-big-screen" [startTipsLabel]="messageService.getMessage(\'START_TIPS_LABEL\')"\n [turnFaceLabel]="messageService.getMessage(\'TURN_FACE_LABEL\')" [expiredSessionErrorLabel]="messageService.getMessage(\'EXPIRED_SESSION_ERROR_LABEL\')"\n [noFaceErrorLabel]="messageService.getMessage(\'NO_FACE_ERROR_LABEL\')" [noInternetConnectionLabel]="messageService.getMessage(\'NO_INTERNET_CONNECTION_LABEL\')"\n [multipleFaceErrorLabel]="messageService.getMessage(\'MULTIPLE_FACE_ERROR_LABEL\')" [successLabel]="messageService.getMessage(\'SUCCESS_LABEL\')"\n [processInstruction]="sessionState.processInstruction" [padSessionService]="padSessionService" [matchingSuccessLabel]="messageService.getMessage(\'MATCHING_SUCCESS_LABEL\')"\n [matchingErrorLabel]="messageService.getMessage(\'MATCHING_ERROR_LABEL\')" [matchingReadyLabel]="messageService.getMessage(\'MATCHING_READY_LABEL\')"\n [userTooFarLabel]="messageService.getMessage(\'USER_TOO_FAR_LABEL\')" [userNotCenterLabel]="messageService.getMessage(\'USER_NOT_CENTER_LABEL\')">\n </id3-face-pad-messages>\n\n <br>\n <div class="d-flex">\n <h4 id="padAlert" class="text-white"></h4>\n </div>\n </div>\n <div id="mainButtons" class="pad-buttons d-block">\n <button type="button" *ngIf="padSessionService.isRequestPermissionState()" (click)="initPadSource(); initDatasFromVideoPAD()" class="btn btn-primary btn-id3 mt-5">\n <em class="pi pi-caret-right v-align-top"></em>{{messageService.getMessage(\'ENABLE_CAM_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isInitialState()" (click)="startPAD()" class="btn btn-primary btn-id3 mt-5">\n <em class="pi pi-caret-right v-align-top"></em> {{messageService.getMessage(\'START_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())"\n (click)="resetUI()" class="btn btn-primary btn-id3 mt-3">\n <em class="pi pi-caret-right v-align-top"></em> {{messageService.getMessage(\'RETRY_BUTTON_LABEL\')}}\n </button>\n\n <button type="button" *ngIf="padSessionService.isMatchingReadyState()" class="btn btn-primary btn-id3 mt-3" (click)="compareWithReference()">\n <em class="pi pi-caret-right v-align-top"></em> {{messageService.getMessage(\'COMPARE_BUTTON_LABEL\')}}\n </button>\n <button type="button" *ngIf="padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()" class="btn btn-primary btn-id3 mt-3" (click)="resetUI()">\n <em class="pi pi-caret-right v-align-top"></em> {{messageService.getMessage(\'RESTART_BUTTON_LABEL\')}}\n </button>\n\n </div>\n </div>\n </div>',styles:['.padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:"PT Sans",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}']}]}],e.ctorParameters=function(){return[{type:R},{type:v},{type:C},{type:y},{type:O},{type:P},{type:I},{type:N},{type:w}]},e.propDecorators={canvasResult:[{type:t.ViewChild,args:["resultCanvas",{static:!1}]}],videoPAD:[{type:t.ViewChild,args:["videoPAD",{static:!1}]}],fileForMatching:[{type:t.ViewChild,args:["fileForMatching",{static:!1}]}],wsEndpoint:[{type:t.Input}],pingBaseUrl:[{type:t.Input}],wsImageSize:[{type:t.Input}],apiKey:[{type:t.Input}],wsFormatPicture:[{type:t.Input}],wsFaceVerification:[{type:t.Input}],downloadFinalPictureOnSuccess:[{type:t.Input}],enableAutoMatching:[{type:t.Input}],autoStart:[{type:t.Input}],faceTrackingEnabled:[{type:t.Input}],faceTrackingOptionDesign:[{type:t.Input}],mirror:[{type:t.Input}],circleEnabled:[{type:t.Input}],colorProgressCircle:[{type:t.Input}],circleRadius:[{type:t.Input}],formatFinalPicture:[{type:t.Input}],resultPictureWidth:[{type:t.Input}],allowsMultipleRetries:[{type:t.Input}],videoWidth:[{type:t.Input}],videoHeight:[{type:t.Input}],frameWidth:[{type:t.Input}],messagesEnabled:[{type:t.Input}],padFrequency:[{type:t.Input}],startTipsLabel:[{type:t.Input}],processFaceCenterLabel:[{type:t.Input}],processNoFaceLabel:[{type:t.Input}],processMultipleFaceLabel:[{type:t.Input}],turnFaceLabel:[{type:t.Input}],expiredSessionErrorLabel:[{type:t.Input}],noFaceErrorLabel:[{type:t.Input}],multipleFaceErrorLabel:[{type:t.Input}],successLabel:[{type:t.Input}],startButtonLabel:[{type:t.Input}],restartButtonLabel:[{type:t.Input}],compareButtonLabel:[{type:t.Input}],enableCamButtonLabel:[{type:t.Input}],retryButtonLabel:[{type:t.Input}],matchingSuccessLabel:[{type:t.Input}],matchingReadyLabel:[{type:t.Input}],matchingErrorLabel:[{type:t.Input}],noInternetConnectionLabel:[{type:t.Input}],userTooFarLabel:[{type:t.Input}],userNotCenterLabel:[{type:t.Input}],faceDetectedHandler:[{type:t.Output}],detectionFailureHandler:[{type:t.Output}],internetLostHandler:[{type:t.Output}],cameraHandler:[{type:t.Output}],sessionExpiredHandler:[{type:t.Output}],changeStateHandler:[{type:t.Output}],matchingHandler:[{type:t.Output}],compareWithReference:[{type:t.Input}]},e}(),M=function(){function e(){this.processInstruction=""}return e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Component,args:[{selector:"id3-face-pad-messages",template:'<div class="mt-2">\n <div *ngIf="padSessionService.isInitialState()" class="alert alert-primary" role="alert">\n {{startTipsLabel}}\n </div>\n <div *ngIf="padSessionService.isStartedState() && processInstruction !== undefined || (padSessionService.isProcessingState() && processInstruction.length>0)" class="alert alert-danger" role="alert">\n {{processInstruction}}\n </div>\n <div *ngIf="padSessionService.isProcessingState() && processInstruction.length==0" class="alert alert-primary" role="alert">\n {{turnFaceLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorSessionState()" class="alert alert-danger" role="alert">\n {{expiredSessionErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorNoFaceState()" class="alert alert-danger" role="alert">\n {{noFaceErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorNoInternetConnection()" class="alert alert-danger" role="alert">\n {{noInternetConnectionLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorUserTooFar()" class="alert alert-primary" role="alert">\n {{userTooFarLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorUserNotCenter()" class="alert alert-danger" role="alert">\n {{userNotCenterLabel}}\n </div>\n <div *ngIf="padSessionService.isErrorMultipleFaceState()" class="alert alert-danger" role="alert">\n {{multipleFaceErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isSuccessState()" class="alert alert-success" role="alert">\n {{successLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingReadyState()" class="alert alert-primary" role="alert">\n {{matchingReadyLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingSuccessState()" class="alert alert-success" role="alert">\n {{matchingSuccessLabel}}\n </div>\n <div *ngIf="padSessionService.isMatchingErrorState()" class="alert alert-danger" role="alert">\n {{matchingErrorLabel}}\n </div>\n <div *ngIf="padSessionService.isInvalidKeyState()" class="alert alert-danger" role="alert">\n The API Key is invalid. Please check your API key.\n </div>\n</div>'}]}],e.ctorParameters=function(){return[]},e.propDecorators={padSessionService:[{type:t.Input}],startTipsLabel:[{type:t.Input}],turnFaceLabel:[{type:t.Input}],expiredSessionErrorLabel:[{type:t.Input}],noFaceErrorLabel:[{type:t.Input}],noInternetConnectionLabel:[{type:t.Input}],userTooFarLabel:[{type:t.Input}],multipleFaceErrorLabel:[{type:t.Input}],successLabel:[{type:t.Input}],matchingSuccessLabel:[{type:t.Input}],matchingReadyLabel:[{type:t.Input}],matchingErrorLabel:[{type:t.Input}],userNotCenterLabel:[{type:t.Input}],processInstruction:[{type:t.Input}]},e}(),F=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Component,args:[{selector:"id3-network-status",template:'<svg class="clientConnectionLogo" version="1.0" xmlns="http://www.w3.org/2000/svg"\n width="60" height="60" viewBox="0 0 1280.000000 720.000000"\n preserveAspectRatio="xMidYMid meet">\n <g transform="translate(0.000000,720.000000) scale(0.100000,-0.100000)"\n stroke="none">\n <path id="excellentConnection" fill="#C0C0C0" d="M6169 6226 c-2 -2 -51 -7 -109 -10 -439 -29 -987 -166 -1450 -363 -519 -221 -1027 -554 -1389 -911 -82 -81 -102 -107 -120 -157 -60 -160 18 -347 181 -436 59 -32 69 -34 158 -34 86 0 100 3 147 29 29 16 92 65 140 110 395 364 836 637 1336 825 152 57 374 124 497 151 372 81 500 94 900 95 309 0 362 -2 510 -23 303 -43 520 -95 805 -193 512 -175 1010 -472 1409 -841 137 -126 188 -152 301 -153 71 0 88 4 147 33 71 35 141 103 174 169 15 31 19 60 19 153 0 144 -7 159 -128 278 -328 322 -794 638 -1252 849 -504 232 -1051 376 -1610 423 -113 9 -657 14 -666 6z"/>\n <path id="goodConnection" fill="#C0C0C0" d="M6195 4939 c-787 -66 -1561 -412 -2102 -941 -111 -108 -128 -145 -128 -273 0 -89 3 -105 27 -150 36 -67 107 -139 171 -172 40 -20 71 -27 132 -31 121 -6 169 16 297 134 123 114 297 247 428 329 224 139 526 268 760 325 47 11 101 25 120 30 19 5 100 19 180 32 207 32 550 32 762 0 561 -86 1063 -325 1473 -702 131 -120 182 -145 295 -145 72 0 93 4 141 28 63 30 146 112 178 174 46 91 43 224 -6 315 -50 92 -339 338 -576 492 -467 302 -966 482 -1522 546 -126 15 -499 20 -630 9z"/>\n <path id="mediumConnection" fill="#C0C0C0" d="M6230 3653 c-103 -11 -321 -60 -439 -99 -316 -106 -596 -274 -819 -493 -118 -116 -137 -154 -136 -271 1 -69 6 -96 26 -140 53 -115 155 -197 273 -220 51 -10 71 -9 124 5 78 20 127 50 211 130 271 257 616 395 989 395 387 0 722 -136 1017 -412 100 -93 146 -113 264 -113 105 0 160 24 239 103 77 78 106 145 106 252 0 118 -27 171 -145 283 -330 315 -769 520 -1230 577 -78 9 -399 12 -480 3z"/>\n <path id="lowConnection" fill="#C0C0C0" d="M6270 2447 c-135 -37 -242 -101 -342 -204 -226 -234 -276 -555 -132 -852 40 -82 60 -108 138 -186 103 -102 185 -154 301 -191 97 -31 258 -43 358 -25 241 42 470 233 565 471 107 270 39 583 -172 790 -78 77 -183 143 -285 181 -77 29 -99 32 -216 36 -112 3 -142 0 -215 -20z"/>\n </g>\n</svg>',styles:[".clientConnectionLogo{top:0;right:0;position:absolute}"]}]}],e.ctorParameters=function(){return[]},e}(),D=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[B,M,F],imports:[i.HttpClientModule,s.CommonModule,c.BrowserModule],exports:[B],entryComponents:[B]}]}],e}();e.FacePadComponent=B,e.FacePadModule=D,e.PadSessionWebSocketService=R,e.PadState=v,e.ParametersService=C,e.ɵa=y,e.ɵb=O,e.ɵc=P,e.ɵd=I,e.ɵe=T,e.ɵf=N,e.ɵg=w,e.ɵh=M,e.ɵi=F,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=id3-face-pad.umd.min.js.map |
@@ -183,3 +183,3 @@ /** | ||
this.padState.initApiParameters(this.wsImageSize); | ||
this.padState.initVideoState(this.videoHeight, this.videoWidth); | ||
this.padState.initVideoState(this.deviceService.isMobileDevice() ? this.videoPAD.nativeElement.clientHeight : this.videoHeight, this.videoWidth); | ||
this.parametersService.getParameters().subscribe(); | ||
@@ -208,3 +208,2 @@ if (this.autoStart) { | ||
startPAD() { | ||
this.deviceService.init(); | ||
this.padSessionService.prepareCallPADStart(); | ||
@@ -254,2 +253,11 @@ } | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
getVideoMaxHeight() { | ||
if (this.deviceService.isMobileDevice()) { | ||
return 'none'; | ||
} | ||
return this.videoHeight + 'px'; | ||
} | ||
} | ||
@@ -259,3 +267,3 @@ FacePadComponent.decorators = [ | ||
selector: 'id3-face-pad', | ||
template: "<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"videoHeight + 'px'\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"videoState.videoHeight + 'px'\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>", | ||
template: "<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"getVideoMaxHeight()\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"getVideoMaxHeight()\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>", | ||
styles: [".padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:\"PT Sans\",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}"] | ||
@@ -527,2 +535,2 @@ }] } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZmFjZS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQU8vRCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7Ozs7Ozs7SUFFM0IsWUFBb0IsMEJBQXNELEVBQ3RELFFBQWtCLEVBQ2xCLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN6QixjQUE4QixFQUM5QixpQkFBb0MsRUFDbkMsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsYUFBNEI7UUFSNUIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUN0RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHNC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Q0FDZ0M7O0lBRWhDLHdDQUMwQjs7SUFFMUIsOENBQ2tDOztJQUVsQyw4Q0FDZ0M7O0lBRWhDLGlEQUNxQzs7SUFFckMsc0NBQ3dCOztJQUV4Qix1Q0FDeUI7O0lBRXpCLHNDQUN3Qjs7SUFFeEIsMkNBQzhCOzs7OztJQUU5Qix3Q0FDMkI7O0lBRTNCLDBDQUM4Qjs7SUFFOUIsa0RBQ3NDOztJQUV0Qyw4Q0FDa0M7O0lBRWxDLG9EQUN3Qzs7SUFFeEMseUNBQzZCOztJQUU3QixvREFDd0M7O0lBRXhDLDRDQUNnQzs7SUFFaEMsa0RBQ3NDOztJQUV0Qyx3Q0FDNEI7O0lBRTVCLDRDQUNnQzs7SUFFaEMsOENBQ2tDOztJQUVsQyw4Q0FDa0M7O0lBRWxDLGdEQUNvQzs7SUFFcEMsNENBQ2dDOztJQUVoQyxnREFDb0M7O0lBRXBDLDhDQUNrQzs7SUFFbEMsOENBQ2tDOztJQUVsQyxxREFDeUM7O0lBRXpDLDJDQUMrQjs7SUFFL0IsOENBQ2tDOzs7OztJQUVsQywrQ0FDcUU7Ozs7O0lBRXJFLG1EQUM0RTs7Ozs7SUFFNUUsK0NBQ3VFOzs7OztJQUV2RSx5Q0FDaUU7Ozs7O0lBRWpFLGlEQUMwRTs7Ozs7SUFFMUUsOENBQ3NFOzs7OztJQUV0RSwyQ0FDZ0U7Ozs7O0lBdktwRCxzREFBOEQ7Ozs7O0lBQzlELG9DQUEwQjs7Ozs7SUFDMUIsNkNBQTRDOzs7OztJQUM1Qyx1Q0FBZ0M7O0lBQ2hDLDBDQUFxQzs7SUFDckMsNkNBQTJDOzs7OztJQUMzQywwQ0FBc0M7Ozs7O0lBQ3RDLHdDQUFrQzs7Ozs7SUFDbEMseUNBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHsgUGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLXdlYi1zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQYWRTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge1BhcmFtZXRlcnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvZmFjZS9mYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU3RhdGV9IGZyb20gJy4uL3N0YXRlL21lc3NhZ2Uuc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQge0ZhY2VTdGF0ZX0gZnJvbSAnLi4vc3RhdGUvZmFjZS5zdGF0ZSc7XG5pbXBvcnQge1BhZFNlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge1RyYWNrZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RyYWNrZXIvdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7VmlkZW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3ZpZGVvL3ZpZGVvLnNlcnZpY2UnO1xuaW1wb3J0IHtEZXZpY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2RldmljZS9kZXZpY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkMy1mYWNlLXBhZCcsXG4gIHRlbXBsYXRlVXJsOiAnZmFjZS1wYWQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmYWNlLXBhZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFjZVBhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlOiBQYWRTZXNzaW9uV2ViU29ja2V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYWRTdGF0ZTogUGFkU3RhdGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2U6IFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZhY2VTZXJ2aWNlOiBGYWNlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHBhZFNlc3Npb25TZXJ2aWNlOiBQYWRTZXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFja2VyU2VydmljZTogVHJhY2tlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlkZW9TZXJ2aWNlOiBWaWRlb1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSkge31cblxuICBAVmlld0NoaWxkKCdyZXN1bHRDYW52YXMnLCB7c3RhdGljOiBmYWxzZX0pIGNhbnZhc1Jlc3VsdDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd2aWRlb1BBRCcsIHtzdGF0aWM6IGZhbHNlfSkgdmlkZW9QQUQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUZvck1hdGNoaW5nJywge3N0YXRpYzogZmFsc2V9KSBmaWxlRm9yTWF0Y2hpbmc6IEVsZW1lbnRSZWY7XG5cblxuICAvLyBUT0RPIHJlbmFtZVxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRW5kcG9pbnQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHBpbmdCYXNlVXJsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSB3c0ltYWdlU2l6ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcGlLZXk6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRm9ybWF0UGljdHVyZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgd3NGYWNlVmVyaWZpY2F0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRvd25sb2FkRmluYWxQaWN0dXJlT25TdWNjZXNzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUF1dG9NYXRjaGluZyA9IGZhbHNlO1xuICAvLyAgVE9ETyByZW5hbWUgZW5kXG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBhdXRvU3RhcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ09wdGlvbkRlc2lnbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaXJyb3IgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2lyY2xlRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvclByb2dyZXNzQ2lyY2xlOiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNpcmNsZVJhZGl1cyA9IDIwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybWF0RmluYWxQaWN0dXJlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFBpY3R1cmVXaWR0aCA9IDYwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dzTXVsdGlwbGVSZXRyaWVzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvV2lkdGggPSA4MDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvSGVpZ2h0ID0gNjAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmcmFtZVdpZHRoID0gMTIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlc0VuYWJsZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgcGFkRnJlcXVlbmN5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydFRpcHNMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzRmFjZUNlbnRlckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByb2Nlc3NOb0ZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHVybkZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBleHBpcmVkU2Vzc2lvbkVycm9yTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbm9GYWNlRXJyb3JMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZUZhY2VFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydEJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW5hYmxlQ2FtQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmV0cnlCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1N1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1JlYWR5TGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF0Y2hpbmdFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdXNlclRvb0ZhckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHVzZXJOb3RDZW50ZXJMYWJlbDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGZhY2VEZXRlY3RlZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxCbG9iPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBkZXRlY3Rpb25GYWlsdXJlSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGludGVybmV0TG9zdEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNhbWVyYUhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIHNlc3Npb25FeHBpcmVkSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNoYW5nZVN0YXRlSGFuZGxlcjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHByaXZhdGUgbWF0Y2hpbmdIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXQgbWluSGVhZFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYXJhbWV0ZXJzLm1pbkhlYWRTaXplO1xuICB9XG5cbiAgZ2V0IHByb2Nlc3NTdGF0ZSgpOiBQcm9jZXNzU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZTtcbiAgfVxuXG4gIGdldCBzZXNzaW9uU3RhdGUoKTogU2Vzc2lvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5zZXNzaW9uU3RhdGU7XG4gIH1cblxuICBnZXQgbWVzc2FnZVN0YXRlKCk6IE1lc3NhZ2VTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMucGFkU3RhdGUubWVzc2FnZVN0YXRlO1xuICB9XG5cbiAgZ2V0IGZhY2VTdGF0ZSgpOiBGYWNlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLmZhY2VTdGF0ZTtcbiAgfVxuXG4gIGdldCB2aWRlb1N0YXRlKCk6IFZpZGVvU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnZpZGVvU3RhdGU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluaXRMYW5ndWFnZSgpO1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5pdE1lc3NhZ2UodGhpcy5zdGFydFRpcHNMYWJlbCwgdGhpcy5wcm9jZXNzRmFjZUNlbnRlckxhYmVsLCB0aGlzLnByb2Nlc3NOb0ZhY2VMYWJlbCxcbiAgICAgICAgdGhpcy5wcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWwsIHRoaXMudHVybkZhY2VMYWJlbCwgdGhpcy5leHBpcmVkU2Vzc2lvbkVycm9yTGFiZWwsIHRoaXMubm9GYWNlRXJyb3JMYWJlbCxcbiAgICAgICAgdGhpcy5tdWx0aXBsZUZhY2VFcnJvckxhYmVsLCB0aGlzLnN1Y2Nlc3NMYWJlbCwgdGhpcy5zdGFydEJ1dHRvbkxhYmVsLCB0aGlzLnJlc3RhcnRCdXR0b25MYWJlbCwgdGhpcy5jb21wYXJlQnV0dG9uTGFiZWwsXG4gICAgICAgIHRoaXMuZW5hYmxlQ2FtQnV0dG9uTGFiZWwsIHRoaXMucmV0cnlCdXR0b25MYWJlbCwgdGhpcy5tYXRjaGluZ1N1Y2Nlc3NMYWJlbCwgdGhpcy5tYXRjaGluZ1JlYWR5TGFiZWwsIHRoaXMubWF0Y2hpbmdFcnJvckxhYmVsLFxuICAgICAgICB0aGlzLm5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWwsIHRoaXMudXNlclRvb0ZhckxhYmVsLCB0aGlzLnVzZXJOb3RDZW50ZXJMYWJlbCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLnVwZGF0ZU5ldHdvcmtTdGF0dXMoKTtcblxuICAgIHRoaXMuc2Vzc2lvblN0YXRlLmVuZFNlc3Npb25FdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgfSk7XG4gICAgdGhpcy5wYWRTdGF0ZS5jaGFuZ2VTdGF0ZUV2ZW50RW1pdHRlci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlRGV0ZWN0ZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmZhY2VEZXRlY3RlZEhhbmRsZXIuZW1pdChyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuZmFjZVN0YXRlLmRldGVjdGlvbkZhaWx1cmVFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmRldGVjdGlvbkZhaWx1cmVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlTWF0Y2hpbmdFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm1hdGNoaW5nSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2Vzc2lvbkV4cGlyZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnNlc3Npb25FeHBpcmVkSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuaW50ZXJuZXRMb3N0RXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5pbnRlcm5ldExvc3RIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FtZXJhRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICAvLyBpZiB0aGUgcGluZ0Jhc2VVcmwgaXMgbm90IGRlZmluZWQsIHdlIHVzZSB0aGUgd3NFbmRwb2ludCBmb3IgdGhlIHBpbmcgc2VydmVyXG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpQmFzZSh0aGlzLmFwaUtleSwgdGhpcy53c0VuZHBvaW50LCB0aGlzLnBpbmdCYXNlVXJsID8gdGhpcy5waW5nQmFzZVVybCA6IHRoaXMud3NFbmRwb2ludCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlLnN0YXJ0UGluZ1NlcnZlcigpLnRoZW4oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlc3Npb25TdGF0ZS5wYWRTdGFydFRpbWVPdXQpO1xuICAgIHRoaXMucGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMudHJhY2tlclNlcnZpY2Uuc3RvcFRyYWNraW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1N0YXRlLnZpZGVvUEFEID0gdGhpcy52aWRlb1BBRDtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FudmFzUmVzdWx0ID0gdGhpcy5jYW52YXNSZXN1bHQ7XG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpRmFjZSh0aGlzLndzRm9ybWF0UGljdHVyZSwgdGhpcy53c0ZhY2VWZXJpZmljYXRpb24pO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdENvbXBvbmVudE9wdGlvbnModGhpcy5lbmFibGVBdXRvTWF0Y2hpbmcsIHRoaXMuZG93bmxvYWRGaW5hbFBpY3R1cmVPblN1Y2Nlc3MsIHRoaXMuZm9ybWF0RmluYWxQaWN0dXJlLFxuICAgICAgICB0aGlzLnBhZEZyZXF1ZW5jeSwgdGhpcy5jaXJjbGVFbmFibGVkLCB0aGlzLmZhY2VUcmFja2luZ0VuYWJsZWQsIHRoaXMuY2lyY2xlUmFkaXVzLCB0aGlzLmZyYW1lV2lkdGgsXG4gICAgICAgIHRoaXMuY29sb3JQcm9ncmVzc0NpcmNsZSwgdGhpcy5yZXN1bHRQaWN0dXJlV2lkdGgsIHRoaXMuZmFjZVRyYWNraW5nT3B0aW9uRGVzaWduKTtcbiAgICB0aGlzLnBhZFN0YXRlLmluaXRBcGlQYXJhbWV0ZXJzKHRoaXMud3NJbWFnZVNpemUpO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdFZpZGVvU3RhdGUodGhpcy52aWRlb0hlaWdodCwgdGhpcy52aWRlb1dpZHRoKTtcbiAgICB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKS5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5hdXRvU3RhcnQpIHtcbiAgICAgIHRoaXMuaW5pdFBhZFNvdXJjZSgpO1xuICAgICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFBhZFNvdXJjZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLmluaXRQYWRTb3VyY2UoKS50aGVuKCk7XG4gIH1cblxuICBpbml0RGF0YXNGcm9tVmlkZW9QQUQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gIH1cblxuICAvLyBQYWQgU3RhcnQgbWV0aG9kc1xuICBwdWJsaWMgc3RhcnRQQUQoKTogYW55IHtcbiAgICB0aGlzLmRldmljZVNlcnZpY2UuaW5pdCgpO1xuICAgIHRoaXMucGFkU2Vzc2lvblNlcnZpY2UucHJlcGFyZUNhbGxQQURTdGFydCgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRDaGFuZ2VTdGF0ZUV2ZW50KG1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVN0YXRlSGFuZGxlci5lbWl0KG1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0VUkoKTogdm9pZCAge1xuICAgIHRoaXMucGFkU3RhdGUuY2hhbmdlUHJvY2Vzc1N0YXRlKFByb2Nlc3NTdGF0ZS5JTklUSUFMKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlV2l0aFJlZmVyZW5jZShwaWN0dXJlVG9Db21wYXJlPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFwaWN0dXJlVG9Db21wYXJlKSB7XG4gICAgICBwaWN0dXJlVG9Db21wYXJlID0gdGhpcy5wYWRTdGF0ZS5nZW5lcmF0ZWRQaWN0dXJlO1xuICAgIH1cbiAgICBpZiAoIXBpY3R1cmVUb0NvbXBhcmUpIHtcbiAgICAgIGxldCBlcnIgPSAnUEFEIFJlc3VsdCBwaWN0dXJlIGlzIG1pc3NpbmcuIFlvdSBoYXZlIHRvIGV4ZWN1dGUgdGhlIGVudGlyZSAnICtcbiAgICAgICdQQUQgcHJvY2VzcyBiZWZvcmUgY2FsbGluZyB0aGUgTWF0Y2hpbmcgSmF2YXNjcmlwdCBmdW5jdGlvbi5cXG4nO1xuICAgICAgZXJyICs9ICdJTVBPUlRBTlQgTk9URSA6IElmIHlvdSBhcmUgdXNpbmcgdGhlIHB1cmVKUyBjb21wb25lbnQsIHlvdSBoYXZlIHRvIHByb3ZpZGUgdGhlIHBpY3R1cmUgaW4gYXJndW1lbnQgKG1hbmRhdG9yeSkuJztcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIGlmICh0aGlzLm1hdGNoaW5nSGFuZGxlcikge1xuICAgICAgICB0aGlzLm1hdGNoaW5nSGFuZGxlci5lcnJvcihlcnIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWQzLWZpbGVGb3JNYXRjaGluZycpLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZVJlZmVyZW5jZUZpbGUoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2VTZXJ2aWNlLmNvbXBhcmVXaXRoUmVmZXJlbmNlKGV2ZW50KTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZmFjZS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQU8vRCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7Ozs7Ozs7SUFFM0IsWUFBb0IsMEJBQXNELEVBQ3RELFFBQWtCLEVBQ2xCLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN6QixjQUE4QixFQUM5QixpQkFBb0MsRUFDbkMsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsYUFBNEI7UUFSNUIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUN0RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHNC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IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHsgUGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLXdlYi1zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQYWRTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge1BhcmFtZXRlcnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvZmFjZS9mYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU3RhdGV9IGZyb20gJy4uL3N0YXRlL21lc3NhZ2Uuc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQge0ZhY2VTdGF0ZX0gZnJvbSAnLi4vc3RhdGUvZmFjZS5zdGF0ZSc7XG5pbXBvcnQge1BhZFNlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge1RyYWNrZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RyYWNrZXIvdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7VmlkZW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3ZpZGVvL3ZpZGVvLnNlcnZpY2UnO1xuaW1wb3J0IHtEZXZpY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2RldmljZS9kZXZpY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkMy1mYWNlLXBhZCcsXG4gIHRlbXBsYXRlVXJsOiAnZmFjZS1wYWQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmYWNlLXBhZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFjZVBhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlOiBQYWRTZXNzaW9uV2ViU29ja2V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYWRTdGF0ZTogUGFkU3RhdGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2U6IFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZhY2VTZXJ2aWNlOiBGYWNlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHBhZFNlc3Npb25TZXJ2aWNlOiBQYWRTZXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFja2VyU2VydmljZTogVHJhY2tlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlkZW9TZXJ2aWNlOiBWaWRlb1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSkge31cblxuICBAVmlld0NoaWxkKCdyZXN1bHRDYW52YXMnLCB7c3RhdGljOiBmYWxzZX0pIGNhbnZhc1Jlc3VsdDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd2aWRlb1BBRCcsIHtzdGF0aWM6IGZhbHNlfSkgdmlkZW9QQUQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUZvck1hdGNoaW5nJywge3N0YXRpYzogZmFsc2V9KSBmaWxlRm9yTWF0Y2hpbmc6IEVsZW1lbnRSZWY7XG5cblxuICAvLyBUT0RPIHJlbmFtZVxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRW5kcG9pbnQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHBpbmdCYXNlVXJsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSB3c0ltYWdlU2l6ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcGlLZXk6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRm9ybWF0UGljdHVyZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgd3NGYWNlVmVyaWZpY2F0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRvd25sb2FkRmluYWxQaWN0dXJlT25TdWNjZXNzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUF1dG9NYXRjaGluZyA9IGZhbHNlO1xuICAvLyAgVE9ETyByZW5hbWUgZW5kXG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBhdXRvU3RhcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ09wdGlvbkRlc2lnbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaXJyb3IgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2lyY2xlRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvclByb2dyZXNzQ2lyY2xlOiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNpcmNsZVJhZGl1cyA9IDIwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybWF0RmluYWxQaWN0dXJlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFBpY3R1cmVXaWR0aCA9IDYwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dzTXVsdGlwbGVSZXRyaWVzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvV2lkdGggPSA4MDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvSGVpZ2h0ID0gNjAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmcmFtZVdpZHRoID0gMTIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlc0VuYWJsZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgcGFkRnJlcXVlbmN5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydFRpcHNMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzRmFjZUNlbnRlckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByb2Nlc3NOb0ZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHVybkZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBleHBpcmVkU2Vzc2lvbkVycm9yTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbm9GYWNlRXJyb3JMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZUZhY2VFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydEJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW5hYmxlQ2FtQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmV0cnlCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1N1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1JlYWR5TGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF0Y2hpbmdFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdXNlclRvb0ZhckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHVzZXJOb3RDZW50ZXJMYWJlbDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGZhY2VEZXRlY3RlZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxCbG9iPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBkZXRlY3Rpb25GYWlsdXJlSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGludGVybmV0TG9zdEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNhbWVyYUhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIHNlc3Npb25FeHBpcmVkSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNoYW5nZVN0YXRlSGFuZGxlcjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHByaXZhdGUgbWF0Y2hpbmdIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXQgbWluSGVhZFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYXJhbWV0ZXJzLm1pbkhlYWRTaXplO1xuICB9XG5cbiAgZ2V0IHByb2Nlc3NTdGF0ZSgpOiBQcm9jZXNzU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZTtcbiAgfVxuXG4gIGdldCBzZXNzaW9uU3RhdGUoKTogU2Vzc2lvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5zZXNzaW9uU3RhdGU7XG4gIH1cblxuICBnZXQgbWVzc2FnZVN0YXRlKCk6IE1lc3NhZ2VTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMucGFkU3RhdGUubWVzc2FnZVN0YXRlO1xuICB9XG5cbiAgZ2V0IGZhY2VTdGF0ZSgpOiBGYWNlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLmZhY2VTdGF0ZTtcbiAgfVxuXG4gIGdldCB2aWRlb1N0YXRlKCk6IFZpZGVvU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnZpZGVvU3RhdGU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluaXRMYW5ndWFnZSgpO1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5pdE1lc3NhZ2UodGhpcy5zdGFydFRpcHNMYWJlbCwgdGhpcy5wcm9jZXNzRmFjZUNlbnRlckxhYmVsLCB0aGlzLnByb2Nlc3NOb0ZhY2VMYWJlbCxcbiAgICAgICAgdGhpcy5wcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWwsIHRoaXMudHVybkZhY2VMYWJlbCwgdGhpcy5leHBpcmVkU2Vzc2lvbkVycm9yTGFiZWwsIHRoaXMubm9GYWNlRXJyb3JMYWJlbCxcbiAgICAgICAgdGhpcy5tdWx0aXBsZUZhY2VFcnJvckxhYmVsLCB0aGlzLnN1Y2Nlc3NMYWJlbCwgdGhpcy5zdGFydEJ1dHRvbkxhYmVsLCB0aGlzLnJlc3RhcnRCdXR0b25MYWJlbCwgdGhpcy5jb21wYXJlQnV0dG9uTGFiZWwsXG4gICAgICAgIHRoaXMuZW5hYmxlQ2FtQnV0dG9uTGFiZWwsIHRoaXMucmV0cnlCdXR0b25MYWJlbCwgdGhpcy5tYXRjaGluZ1N1Y2Nlc3NMYWJlbCwgdGhpcy5tYXRjaGluZ1JlYWR5TGFiZWwsIHRoaXMubWF0Y2hpbmdFcnJvckxhYmVsLFxuICAgICAgICB0aGlzLm5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWwsIHRoaXMudXNlclRvb0ZhckxhYmVsLCB0aGlzLnVzZXJOb3RDZW50ZXJMYWJlbCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLnVwZGF0ZU5ldHdvcmtTdGF0dXMoKTtcblxuICAgIHRoaXMuc2Vzc2lvblN0YXRlLmVuZFNlc3Npb25FdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgfSk7XG4gICAgdGhpcy5wYWRTdGF0ZS5jaGFuZ2VTdGF0ZUV2ZW50RW1pdHRlci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlRGV0ZWN0ZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmZhY2VEZXRlY3RlZEhhbmRsZXIuZW1pdChyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuZmFjZVN0YXRlLmRldGVjdGlvbkZhaWx1cmVFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmRldGVjdGlvbkZhaWx1cmVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlTWF0Y2hpbmdFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm1hdGNoaW5nSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2Vzc2lvbkV4cGlyZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnNlc3Npb25FeHBpcmVkSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuaW50ZXJuZXRMb3N0RXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5pbnRlcm5ldExvc3RIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FtZXJhRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICAvLyBpZiB0aGUgcGluZ0Jhc2VVcmwgaXMgbm90IGRlZmluZWQsIHdlIHVzZSB0aGUgd3NFbmRwb2ludCBmb3IgdGhlIHBpbmcgc2VydmVyXG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpQmFzZSh0aGlzLmFwaUtleSwgdGhpcy53c0VuZHBvaW50LCB0aGlzLnBpbmdCYXNlVXJsID8gdGhpcy5waW5nQmFzZVVybCA6IHRoaXMud3NFbmRwb2ludCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlLnN0YXJ0UGluZ1NlcnZlcigpLnRoZW4oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlc3Npb25TdGF0ZS5wYWRTdGFydFRpbWVPdXQpO1xuICAgIHRoaXMucGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMudHJhY2tlclNlcnZpY2Uuc3RvcFRyYWNraW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1N0YXRlLnZpZGVvUEFEID0gdGhpcy52aWRlb1BBRDtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FudmFzUmVzdWx0ID0gdGhpcy5jYW52YXNSZXN1bHQ7XG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpRmFjZSh0aGlzLndzRm9ybWF0UGljdHVyZSwgdGhpcy53c0ZhY2VWZXJpZmljYXRpb24pO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdENvbXBvbmVudE9wdGlvbnModGhpcy5lbmFibGVBdXRvTWF0Y2hpbmcsIHRoaXMuZG93bmxvYWRGaW5hbFBpY3R1cmVPblN1Y2Nlc3MsIHRoaXMuZm9ybWF0RmluYWxQaWN0dXJlLFxuICAgICAgICB0aGlzLnBhZEZyZXF1ZW5jeSwgdGhpcy5jaXJjbGVFbmFibGVkLCB0aGlzLmZhY2VUcmFja2luZ0VuYWJsZWQsIHRoaXMuY2lyY2xlUmFkaXVzLCB0aGlzLmZyYW1lV2lkdGgsXG4gICAgICAgIHRoaXMuY29sb3JQcm9ncmVzc0NpcmNsZSwgdGhpcy5yZXN1bHRQaWN0dXJlV2lkdGgsIHRoaXMuZmFjZVRyYWNraW5nT3B0aW9uRGVzaWduKTtcbiAgICB0aGlzLnBhZFN0YXRlLmluaXRBcGlQYXJhbWV0ZXJzKHRoaXMud3NJbWFnZVNpemUpO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdFZpZGVvU3RhdGUodGhpcy5kZXZpY2VTZXJ2aWNlLmlzTW9iaWxlRGV2aWNlKCkgPyB0aGlzLnZpZGVvUEFELm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IDogdGhpcy52aWRlb0hlaWdodCwgdGhpcy52aWRlb1dpZHRoKTtcbiAgICB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKS5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5hdXRvU3RhcnQpIHtcbiAgICAgIHRoaXMuaW5pdFBhZFNvdXJjZSgpO1xuICAgICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFBhZFNvdXJjZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLmluaXRQYWRTb3VyY2UoKS50aGVuKCk7XG4gIH1cblxuICBpbml0RGF0YXNGcm9tVmlkZW9QQUQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gIH1cblxuICAvLyBQYWQgU3RhcnQgbWV0aG9kc1xuICBwdWJsaWMgc3RhcnRQQUQoKTogYW55IHtcbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLnByZXBhcmVDYWxsUEFEU3RhcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhbmdlU3RhdGVFdmVudChtZXNzYWdlKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VTdGF0ZUhhbmRsZXIuZW1pdChtZXNzYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFVJKCk6IHZvaWQgIHtcbiAgICB0aGlzLnBhZFN0YXRlLmNoYW5nZVByb2Nlc3NTdGF0ZShQcm9jZXNzU3RhdGUuSU5JVElBTCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29tcGFyZVdpdGhSZWZlcmVuY2UocGljdHVyZVRvQ29tcGFyZT86IGFueSk6IHZvaWQge1xuICAgIGlmICghcGljdHVyZVRvQ29tcGFyZSkge1xuICAgICAgcGljdHVyZVRvQ29tcGFyZSA9IHRoaXMucGFkU3RhdGUuZ2VuZXJhdGVkUGljdHVyZTtcbiAgICB9XG4gICAgaWYgKCFwaWN0dXJlVG9Db21wYXJlKSB7XG4gICAgICBsZXQgZXJyID0gJ1BBRCBSZXN1bHQgcGljdHVyZSBpcyBtaXNzaW5nLiBZb3UgaGF2ZSB0byBleGVjdXRlIHRoZSBlbnRpcmUgJyArXG4gICAgICAnUEFEIHByb2Nlc3MgYmVmb3JlIGNhbGxpbmcgdGhlIE1hdGNoaW5nIEphdmFzY3JpcHQgZnVuY3Rpb24uXFxuJztcbiAgICAgIGVyciArPSAnSU1QT1JUQU5UIE5PVEUgOiBJZiB5b3UgYXJlIHVzaW5nIHRoZSBwdXJlSlMgY29tcG9uZW50LCB5b3UgaGF2ZSB0byBwcm92aWRlIHRoZSBwaWN0dXJlIGluIGFyZ3VtZW50IChtYW5kYXRvcnkpLic7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICBpZiAodGhpcy5tYXRjaGluZ0hhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5tYXRjaGluZ0hhbmRsZXIuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkMy1maWxlRm9yTWF0Y2hpbmcnKS5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSZWZlcmVuY2VGaWxlKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mYWNlU2VydmljZS5jb21wYXJlV2l0aFJlZmVyZW5jZShldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmlkZW9NYXhIZWlnaHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kZXZpY2VTZXJ2aWNlLmlzTW9iaWxlRGV2aWNlKCkpIHtcbiAgICAgIHJldHVybiAnbm9uZSc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZpZGVvSGVpZ2h0ICsgJ3B4JztcbiAgfVxufVxuIl19 |
@@ -25,10 +25,4 @@ /** | ||
*/ | ||
init() { | ||
if (this.videoState.canvasResult.nativeElement.clientHeight > this.videoState.canvasResult.nativeElement.clientWidth && | ||
this.videoState.videoWidth > this.videoState.videoHeight) { | ||
/** @type {?} */ | ||
const videoWidth = this.videoState.videoWidth; | ||
this.videoState.videoWidth = this.videoState.videoHeight; | ||
this.videoState.videoHeight = videoWidth; | ||
} | ||
isMobileDevice() { | ||
return window.matchMedia('only screen and (max-width: 760px)').matches; | ||
} | ||
@@ -53,2 +47,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaWQzL2ZhY2UtcGFkLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZGV2aWNlL2RldmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxhQUFhOzs7O0lBRXRCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDOzs7O0lBRTNDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQzs7OztJQUVNLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDaEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7O2tCQUNyRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztTQUM1QztJQUNMLENBQUM7OztZQWxCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFMTyxRQUFROzs7Ozs7OztJQVFBLGlDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgPiB0aGlzLnZpZGVvU3RhdGUuY2FudmFzUmVzdWx0Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMudmlkZW9TdGF0ZS52aWRlb1dpZHRoID4gIHRoaXMudmlkZW9TdGF0ZS52aWRlb0hlaWdodCkge1xuICAgICAgICAgICAgY29uc3QgdmlkZW9XaWR0aCA9IHRoaXMudmlkZW9TdGF0ZS52aWRlb1dpZHRoO1xuICAgICAgICAgICAgdGhpcy52aWRlb1N0YXRlLnZpZGVvV2lkdGggPSB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQgPSB2aWRlb1dpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaWQzL2ZhY2UtcGFkLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZGV2aWNlL2RldmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxhQUFhOzs7O0lBRXRCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDOzs7O0lBRTNDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQzs7OztJQUVNLGNBQWM7UUFDakIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzNFLENBQUM7OztZQWJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQUxPLFFBQVE7Ozs7Ozs7O0lBUUEsaUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFkU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge1ZpZGVvU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3ZpZGVvLnN0YXRlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFkU3RhdGU6IFBhZFN0YXRlKSB7IH1cblxuICAgIGdldCB2aWRlb1N0YXRlKCk6IFZpZGVvU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS52aWRlb1N0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc01vYmlsZURldmljZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCdvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzYwcHgpJykubWF0Y2hlcztcbiAgICB9XG59XG4iXX0= |
@@ -34,3 +34,3 @@ /** | ||
if (!this.messageState.messages.get(label) && this.messageState.languageFile) { | ||
return this.messageState.languageFile.messages.get(label); | ||
return this.messageState.languageFile.get(label); | ||
} | ||
@@ -92,3 +92,3 @@ else { | ||
if (!this.messageState.languageFile) { | ||
this.messageState.languageFile = LanguageEn; | ||
this.messageState.languageFile = LanguageEn.messages; | ||
} | ||
@@ -114,2 +114,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSzlDLE1BQU0sT0FBTyxjQUFjOzs7O0lBRXZCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7OztJQUVELElBQUksWUFBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO1lBQzFFLE9BQU8sSUFB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QUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7O0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQzs7O1lBdERKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQVJPLFFBQVE7Ozs7Ozs7O0lBV0Esa0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFkU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge01lc3NhZ2VTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUvbWVzc2FnZS5zdGF0ZSc7XG5pbXBvcnQge0xhbmd1YWdlRW59IGZyb20gJy4uLy4uL2kxOG4vZW4uaTE4bic7XG5pbXBvcnQge0xhbmd1YWdlRnJ9IGZyb20gJy4uLy4uL2kxOG4vZnIuaTE4bic7XG5pbXBvcnQge0xhbmd1YWdlUHR9IGZyb20gJy4uLy4uL2kxOG4vcHQuaTE4bic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWRTdGF0ZTogUGFkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2Uuc2V0KCdmcicsIExhbmd1YWdlRnIubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5zZXQoJ2VuJywgTGFuZ3VhZ2VFbi5tZXNzYWdlcyk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1hcExhbmd1YWdlLnNldCgncHQnLCBMYW5ndWFnZVB0Lm1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBnZXQgbWVzc2FnZVN0YXRlKCk6IE1lc3NhZ2VTdGF0ZSB7XG4gICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUubWVzc2FnZVN0YXRlO1xuICAgIH1cblxuICAgIGdldE1lc3NhZ2UobGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuZ2V0KGxhYmVsKSAmJiB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUubWVzc2FnZXMuZ2V0KGxhYmVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5nZXQobGFiZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRNZXNzYWdlKHN0YXJ0VGlwc0xhYmVsOiBzdHJpbmcsIHByb2Nlc3NGYWNlQ2VudGVyTGFiZWw6IHN0cmluZywgcHJvY2Vzc05vRmFjZUxhYmVsOiBzdHJpbmcsIHByb2Nlc3NNdWx0aXBsZUZhY2VMYWJlbDogc3RyaW5nLCB0dXJuRmFjZUxhYmVsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZWRTZXNzaW9uRXJyb3JMYWJlbDogc3RyaW5nLCBub0ZhY2VFcnJvckxhYmVsOiBzdHJpbmcsIG11bHRpcGxlRmFjZUVycm9yTGFiZWw6IHN0cmluZywgc3VjY2Vzc0xhYmVsOiBzdHJpbmcsIHN0YXJ0QnV0dG9uTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgcmVzdGFydEJ1dHRvbkxhYmVsOiBzdHJpbmcsIGNvbXBhcmVCdXR0b25MYWJlbDogc3RyaW5nLCBlbmFibGVDYW1CdXR0b25MYWJlbDogc3RyaW5nLCByZXRyeUJ1dHRvbkxhYmVsOiBzdHJpbmcsIG1hdGNoaW5nU3VjY2Vzc0xhYmVsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIG1hdGNoaW5nUmVhZHlMYWJlbDogc3RyaW5nLCBtYXRjaGluZ0Vycm9yTGFiZWw6IHN0cmluZywgbm9JbnRlcm5ldENvbm5lY3Rpb25MYWJlbDogc3RyaW5nLCB1c2VyVG9vRmFyTGFiZWw6IHN0cmluZywgdXNlck5vdENlbnRlckxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdTVEFSVF9USVBTX0xBQkVMJywgc3RhcnRUaXBzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfRkFDRV9DRU5URVJfTEFCRUwnLCBwcm9jZXNzRmFjZUNlbnRlckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdQUk9DRVNTX05PX0ZBQ0VfTEFCRUwnLCBwcm9jZXNzTm9GYWNlTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfTVVMVElQTEVfRkFDRV9MQUJFTCcsIHByb2Nlc3NNdWx0aXBsZUZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnVFVSTl9GQUNFX0xBQkVMJywgdHVybkZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnRVhQSVJFRF9TRVNTSU9OX0VSUk9SX0xBQkVMJywgZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdOT19GQUNFX0VSUk9SX0xBQkVMJywgbm9GYWNlRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTVVMVElQTEVfRkFDRV9FUlJPUl9MQUJFTCcsIG11bHRpcGxlRmFjZUVycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NVQ0NFU1NfTEFCRUwnLCBzdWNjZXNzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NUQVJUX0JVVFRPTl9MQUJFTCcsIHN0YXJ0QnV0dG9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1JFU1RBUlRfQlVUVE9OX0xBQkVMJywgcmVzdGFydEJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdDT01QQVJFX0JVVFRPTl9MQUJFTCcsIGNvbXBhcmVCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnRU5BQkxFX0NBTV9CVVRUT05fTEFCRUwnLCBlbmFibGVDYW1CdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUkVUUllfQlVUVE9OX0xBQkVMJywgcmV0cnlCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTUFUQ0hJTkdfU1VDQ0VTU19MQUJFTCcsIG1hdGNoaW5nU3VjY2Vzc0xhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19SRUFEWV9MQUJFTCcsIG1hdGNoaW5nUmVhZHlMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTUFUQ0hJTkdfRVJST1JfTEFCRUwnLCBtYXRjaGluZ0Vycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ05PX0lOVEVSTkVUX0NPTk5FQ1RJT05fTEFCRUwnLCBub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdVU0VSX1RPT19GQVJfTEFCRUwnLCB1c2VyVG9vRmFyTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1VTRVJfTk9UX0NFTlRFUl9MQUJFTCcsIHVzZXJOb3RDZW50ZXJMYWJlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRMYW5ndWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlID0gdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2UuZ2V0KG5hdmlnYXRvci5sYW5ndWFnZS5zdWJzdHIoMCwgMikpO1xuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlID0gTGFuZ3VhZ2VFbjtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSzlDLE1BQU0sT0FBTyxjQUFjOzs7O0lBRXZCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7OztJQUVELElBQUksWUFBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO1lBQzFFLE9BQU8sSUFB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QUFDLG9CQUFvQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Ozs7SUFFTSxZQUFZO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQzs7O1lBdERKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQVJPLFFBQVE7Ozs7Ozs7O0lBV0Esa0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFkU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge01lc3NhZ2VTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUvbWVzc2FnZS5zdGF0ZSc7XG5pbXBvcnQge0xhbmd1YWdlRW59IGZyb20gJy4uLy4uL2kxOG4vZW4uaTE4bic7XG5pbXBvcnQge0xhbmd1YWdlRnJ9IGZyb20gJy4uLy4uL2kxOG4vZnIuaTE4bic7XG5pbXBvcnQge0xhbmd1YWdlUHR9IGZyb20gJy4uLy4uL2kxOG4vcHQuaTE4bic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWRTdGF0ZTogUGFkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2Uuc2V0KCdmcicsIExhbmd1YWdlRnIubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5zZXQoJ2VuJywgTGFuZ3VhZ2VFbi5tZXNzYWdlcyk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1hcExhbmd1YWdlLnNldCgncHQnLCBMYW5ndWFnZVB0Lm1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBnZXQgbWVzc2FnZVN0YXRlKCk6IE1lc3NhZ2VTdGF0ZSB7XG4gICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUubWVzc2FnZVN0YXRlO1xuICAgIH1cblxuICAgIGdldE1lc3NhZ2UobGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuZ2V0KGxhYmVsKSAmJiB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUuZ2V0KGxhYmVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5nZXQobGFiZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRNZXNzYWdlKHN0YXJ0VGlwc0xhYmVsOiBzdHJpbmcsIHByb2Nlc3NGYWNlQ2VudGVyTGFiZWw6IHN0cmluZywgcHJvY2Vzc05vRmFjZUxhYmVsOiBzdHJpbmcsIHByb2Nlc3NNdWx0aXBsZUZhY2VMYWJlbDogc3RyaW5nLCB0dXJuRmFjZUxhYmVsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZWRTZXNzaW9uRXJyb3JMYWJlbDogc3RyaW5nLCBub0ZhY2VFcnJvckxhYmVsOiBzdHJpbmcsIG11bHRpcGxlRmFjZUVycm9yTGFiZWw6IHN0cmluZywgc3VjY2Vzc0xhYmVsOiBzdHJpbmcsIHN0YXJ0QnV0dG9uTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgcmVzdGFydEJ1dHRvbkxhYmVsOiBzdHJpbmcsIGNvbXBhcmVCdXR0b25MYWJlbDogc3RyaW5nLCBlbmFibGVDYW1CdXR0b25MYWJlbDogc3RyaW5nLCByZXRyeUJ1dHRvbkxhYmVsOiBzdHJpbmcsIG1hdGNoaW5nU3VjY2Vzc0xhYmVsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIG1hdGNoaW5nUmVhZHlMYWJlbDogc3RyaW5nLCBtYXRjaGluZ0Vycm9yTGFiZWw6IHN0cmluZywgbm9JbnRlcm5ldENvbm5lY3Rpb25MYWJlbDogc3RyaW5nLCB1c2VyVG9vRmFyTGFiZWw6IHN0cmluZywgdXNlck5vdENlbnRlckxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdTVEFSVF9USVBTX0xBQkVMJywgc3RhcnRUaXBzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfRkFDRV9DRU5URVJfTEFCRUwnLCBwcm9jZXNzRmFjZUNlbnRlckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdQUk9DRVNTX05PX0ZBQ0VfTEFCRUwnLCBwcm9jZXNzTm9GYWNlTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfTVVMVElQTEVfRkFDRV9MQUJFTCcsIHByb2Nlc3NNdWx0aXBsZUZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnVFVSTl9GQUNFX0xBQkVMJywgdHVybkZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnRVhQSVJFRF9TRVNTSU9OX0VSUk9SX0xBQkVMJywgZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdOT19GQUNFX0VSUk9SX0xBQkVMJywgbm9GYWNlRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTVVMVElQTEVfRkFDRV9FUlJPUl9MQUJFTCcsIG11bHRpcGxlRmFjZUVycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NVQ0NFU1NfTEFCRUwnLCBzdWNjZXNzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NUQVJUX0JVVFRPTl9MQUJFTCcsIHN0YXJ0QnV0dG9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1JFU1RBUlRfQlVUVE9OX0xBQkVMJywgcmVzdGFydEJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdDT01QQVJFX0JVVFRPTl9MQUJFTCcsIGNvbXBhcmVCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnRU5BQkxFX0NBTV9CVVRUT05fTEFCRUwnLCBlbmFibGVDYW1CdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUkVUUllfQlVUVE9OX0xBQkVMJywgcmV0cnlCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTUFUQ0hJTkdfU1VDQ0VTU19MQUJFTCcsIG1hdGNoaW5nU3VjY2Vzc0xhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19SRUFEWV9MQUJFTCcsIG1hdGNoaW5nUmVhZHlMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTUFUQ0hJTkdfRVJST1JfTEFCRUwnLCBtYXRjaGluZ0Vycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ05PX0lOVEVSTkVUX0NPTk5FQ1RJT05fTEFCRUwnLCBub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdVU0VSX1RPT19GQVJfTEFCRUwnLCB1c2VyVG9vRmFyTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1VTRVJfTk9UX0NFTlRFUl9MQUJFTCcsIHVzZXJOb3RDZW50ZXJMYWJlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRMYW5ndWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlID0gdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2UuZ2V0KG5hdmlnYXRvci5sYW5ndWFnZS5zdWJzdHIoMCwgMikpO1xuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlID0gTGFuZ3VhZ2VFbi5tZXNzYWdlcztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19 |
@@ -47,4 +47,4 @@ /** | ||
const canvas = this.videoState.canvasResult.nativeElement; | ||
canvas.width = this.videoState.videoWidth; | ||
canvas.height = this.videoState.videoHeight; | ||
canvas.width = this.videoState.width; | ||
canvas.height = this.videoState.height; | ||
/** @type {?} */ | ||
@@ -147,2 +147,2 @@ const ctx = canvas.getContext('2d'); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkLWNpcmNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL3BhZC1jaXJjbGUvcGFkLWNpcmNsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQVV2RCxNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBRXpCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDOzs7O0lBRTNDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQzs7OztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUN4QyxDQUFDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDOzs7O0lBRU0sY0FBYzs7Y0FDWCxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsYUFBYTtRQUN6RCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7O2NBRXRDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzs7Y0FDN0IsSUFBSSxHQUFHLE1BQU0s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LE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNiLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7OztZQTNGTixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFWTyxRQUFROzs7Ozs7OztJQWFBLG9DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtQcm9jZXNzU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge0NvbXBvbmVudE9wdGlvbnN9IGZyb20gJy4uLy4uL3N0YXRlL2NvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7UGFkQ2lyY2xlU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC1jaXJjbGUuc3RhdGUnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFkQ2lyY2xlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50T3B0aW9ucygpOiBDb21wb25lbnRPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUuY29tcG9uZW50T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgcGFkQ2lyY2xlU3RhdGUoKTogUGFkQ2lyY2xlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYWRDaXJjbGVTdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgc2Vzc2lvblN0YXRlKCk6IFNlc3Npb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnNlc3Npb25TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvZ3Jlc3NDaXJjbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy52aWRlb1N0YXRlLnZpZGVvV2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGNvbnN0IHBvc1ggPSBjYW52YXMud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBwb3NZID0gY2FudmFzLmhlaWdodCAvIDI7XG4gICAgICAgIGN0eC5saW5lQ2FwID0gJ3JvdW5kJztcbiAgICAgICAgbGV0IGluY3JlbWVudCA9IDA7XG5cbiAgICAgICAgY29uc3QgYXJjSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICB0aGlzLmdyYXlTY2FsZSh0aGlzLmNvbXBvbmVudE9wdGlvbnMuY2lyY2xlUmFkaXVzLCBjdHgsIGNhbnZhcywgcG9zWCwgcG9zWSk7XG5cbiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudE9wdGlvbnMuY29sb3JQcm9ncmVzc0NpcmNsZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmNvbXBvbmVudE9wdGlvbnMuY29sb3JQcm9ncmVzc0NpcmNsZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyMwMDdiZmYnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9ICcxMCc7XG4gICAgICAgICAgICBjdHguYXJjKHBvc1gsIHBvc1ksIHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIChNYXRoLlBJIC8gMTgwKSAqIDI3MCwgKE1hdGguUEkgLyAxODApICogKDI3MCArIGluY3JlbWVudCkpO1xuICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZXNzaW9uU3RhdGUucHJvY2Vzc0NvbXBsZXRpb24gPj0gMTAwKSB7XG4gICAgICAgICAgICAgICAgY3R4LmFyYyhwb3NYLCBwb3NZLCB0aGlzLmNvbXBvbmVudE9wdGlvbnMuY2lyY2xlUmFkaXVzLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgaW5jcmVtZW50KSwgKE1hdGguUEkgLyAxODApICogKDI3MCArIDM2MCkpO1xuICAgICAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMDtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGFyY0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZENpcmNsZVN0YXRlLmlzQ2lyY2xlUnVubmluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluY3JlbWVudCA8ICgzNjAgKiAodGhpcy5zZXNzaW9uU3RhdGUucHJvY2Vzc0NvbXBsZXRpb24gLyAxMDApKSkge1xuICAgICAgICAgICAgICAgIGluY3JlbWVudCArPSAxMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9OT19GQUNFIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9OT19JTlRFUk5FVF9DT05ORUNUSU9OIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9TRVNTSU9OIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9NVUxUSVBMRV9GQUNFKSB7XG4gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JheVNjYWxlKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMDtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGFyY0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZENpcmNsZVN0YXRlLmlzQ2lyY2xlUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA2MCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncmF5U2NhbGUoY2lyY2xlUmFkaXVzLCBjdHgsIGNhbnZhcywgcG9zWCwgcG9zWSk6IHZvaWQge1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgwLDIwMCwyMDAsMCknO1xuICAgICAgICBjdHgubGluZVdpZHRoID0gJzEwJztcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDAuNyknO1xuICAgICAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgICAgIGN0eC5tb3ZlVG8oMCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8oMCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2FudmFzLmhlaWdodCAtIChjaXJjbGVSYWRpdXMgLyAyKSk7XG4gICAgICAgIGN0eC5hcmMocG9zWCwgcG9zWSwgY2lyY2xlUmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSAvIDIuMDAwMDAxKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2lyY2xlUmFkaXVzIC8gMik7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8oMCwgMCk7XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgY3R4LmZpbGwoKTtcbiAgICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkLWNpcmNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL3BhZC1jaXJjbGUvcGFkLWNpcmNsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQVV2RCxNQUFNLE9BQU8sZ0JBQWdCOzs7O0lBRXpCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDOzs7O0lBRTNDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQzs7OztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUN4QyxDQUFDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDOzs7O0lBRU0sY0FBYzs7Y0FDWCxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsYUFBYTtRQUN6RCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7O2NBRWpDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzs7Y0FDN0IsSUFBSSxHQUFHLE1BQU0s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LE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNiLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7OztZQTNGTixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7WUFWTyxRQUFROzs7Ozs7OztJQWFBLG9DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtQcm9jZXNzU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge0NvbXBvbmVudE9wdGlvbnN9IGZyb20gJy4uLy4uL3N0YXRlL2NvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7UGFkQ2lyY2xlU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC1jaXJjbGUuc3RhdGUnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFkQ2lyY2xlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50T3B0aW9ucygpOiBDb21wb25lbnRPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUuY29tcG9uZW50T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgcGFkQ2lyY2xlU3RhdGUoKTogUGFkQ2lyY2xlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYWRDaXJjbGVTdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgc2Vzc2lvblN0YXRlKCk6IFNlc3Npb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnNlc3Npb25TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvZ3Jlc3NDaXJjbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy52aWRlb1N0YXRlLndpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy52aWRlb1N0YXRlLmhlaWdodDtcblxuICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgY29uc3QgcG9zWCA9IGNhbnZhcy53aWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IHBvc1kgPSBjYW52YXMuaGVpZ2h0IC8gMjtcbiAgICAgICAgY3R4LmxpbmVDYXAgPSAncm91bmQnO1xuICAgICAgICBsZXQgaW5jcmVtZW50ID0gMDtcblxuICAgICAgICBjb25zdCBhcmNJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgICAgIHRoaXMuZ3JheVNjYWxlKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTtcblxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jb2xvclByb2dyZXNzQ2lyY2xlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IHRoaXMuY29tcG9uZW50T3B0aW9ucy5jb2xvclByb2dyZXNzQ2lyY2xlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzAwN2JmZic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdHgubGluZVdpZHRoID0gJzEwJztcbiAgICAgICAgICAgIGN0eC5hcmMocG9zWCwgcG9zWSwgdGhpcy5jb21wb25lbnRPcHRpb25zLmNpcmNsZVJhZGl1cywgKE1hdGguUEkgLyAxODApICogMjcwLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgaW5jcmVtZW50KSk7XG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICBjdHguYXJjKHBvc1gsIHBvc1ksIHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIChNYXRoLlBJIC8gMTgwKSAqICgyNzAgKyBpbmNyZW1lbnQpLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgMzYwKSk7XG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0YXRlLnByb2Nlc3NDb21wbGV0aW9uID0gMDtcbiAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoYXJjSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFkQ2lyY2xlU3RhdGUuaXNDaXJjbGVSdW5uaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5jcmVtZW50IDwgKDM2MCAqICh0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiAvIDEwMCkpKSB7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ICs9IDEwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX05PX0ZBQ0UgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX05PX0lOVEVSTkVUX0NPTk5FQ1RJT04gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX1NFU1NJT04gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX01VTFRJUExFX0ZBQ0UpIHtcbiAgICAgICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmF5U2NhbGUodGhpcy5jb21wb25lbnRPcHRpb25zLmNpcmNsZVJhZGl1cywgY3R4LCBjYW52YXMsIHBvc1gsIHBvc1kpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0YXRlLnByb2Nlc3NDb21wbGV0aW9uID0gMDtcbiAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoYXJjSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFkQ2lyY2xlU3RhdGUuaXNDaXJjbGVSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDYwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdyYXlTY2FsZShjaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTogdm9pZCB7XG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsMjAwLDIwMCwwKSc7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSAnMTAnO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMCwgMCwgMC43KSc7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4Lm1vdmVUbygwLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbygwLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0IC0gKGNpcmNsZVJhZGl1cyAvIDIpKTtcbiAgICAgICAgY3R4LmFyYyhwb3NYLCBwb3NZLCBjaXJjbGVSYWRpdXMsIE1hdGguUEkgLyAyLCBNYXRoLlBJIC8gMi4wMDAwMDEpO1xuICAgICAgICBjdHgubGluZVRvKHBvc1gsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8oY2FudmFzLndpZHRoLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjaXJjbGVSYWRpdXMgLyAyKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbygwLCAwKTtcbiAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICBjdHguZmlsbCgpO1xuICAgICAgfVxuXG59XG4iXX0= |
@@ -206,3 +206,3 @@ /** | ||
this.padState.initApiParameters(this.wsImageSize); | ||
this.padState.initVideoState(this.videoHeight, this.videoWidth); | ||
this.padState.initVideoState(this.deviceService.isMobileDevice() ? this.videoPAD.nativeElement.clientHeight : this.videoHeight, this.videoWidth); | ||
this.parametersService.getParameters().subscribe(); | ||
@@ -243,3 +243,2 @@ if (this.autoStart) { | ||
function () { | ||
this.deviceService.init(); | ||
this.padSessionService.prepareCallPADStart(); | ||
@@ -304,6 +303,18 @@ }; | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
FacePadComponent.prototype.getVideoMaxHeight = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (this.deviceService.isMobileDevice()) { | ||
return 'none'; | ||
} | ||
return this.videoHeight + 'px'; | ||
}; | ||
FacePadComponent.decorators = [ | ||
{ type: Component, args: [{ | ||
selector: 'id3-face-pad', | ||
template: "<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"videoHeight + 'px'\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"videoState.videoHeight + 'px'\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>", | ||
template: "<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"getVideoMaxHeight()\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"getVideoMaxHeight()\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>", | ||
styles: [".padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:\"PT Sans\",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}"] | ||
@@ -578,2 +589,2 @@ }] } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZmFjZS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRDtJQU9FLDBCQUFvQiwwQkFBc0QsRUFDdEQsUUFBa0IsRUFDbEIsaUJBQW9DLEVBQ3BDLFdBQXdCLEVBQ3pCLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNuQyxjQUE4QixFQUM5QixZQUEwQixFQUMxQixhQUE0QjtRQVI1QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNw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ZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHsgUGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLXdlYi1zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQYWRTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge1BhcmFtZXRlcnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvZmFjZS9mYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU3RhdGV9IGZyb20gJy4uL3N0YXRlL21lc3NhZ2Uuc3RhdGUnO1xuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQge0ZhY2VTdGF0ZX0gZnJvbSAnLi4vc3RhdGUvZmFjZS5zdGF0ZSc7XG5pbXBvcnQge1BhZFNlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BhZC1zZXNzaW9uL3BhZC1zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge1RyYWNrZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RyYWNrZXIvdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7VmlkZW9TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3ZpZGVvL3ZpZGVvLnNlcnZpY2UnO1xuaW1wb3J0IHtEZXZpY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2RldmljZS9kZXZpY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkMy1mYWNlLXBhZCcsXG4gIHRlbXBsYXRlVXJsOiAnZmFjZS1wYWQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmYWNlLXBhZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFjZVBhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlOiBQYWRTZXNzaW9uV2ViU29ja2V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYWRTdGF0ZTogUGFkU3RhdGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2U6IFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZhY2VTZXJ2aWNlOiBGYWNlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHBhZFNlc3Npb25TZXJ2aWNlOiBQYWRTZXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFja2VyU2VydmljZTogVHJhY2tlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlkZW9TZXJ2aWNlOiBWaWRlb1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSkge31cblxuICBAVmlld0NoaWxkKCdyZXN1bHRDYW52YXMnLCB7c3RhdGljOiBmYWxzZX0pIGNhbnZhc1Jlc3VsdDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd2aWRlb1BBRCcsIHtzdGF0aWM6IGZhbHNlfSkgdmlkZW9QQUQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUZvck1hdGNoaW5nJywge3N0YXRpYzogZmFsc2V9KSBmaWxlRm9yTWF0Y2hpbmc6IEVsZW1lbnRSZWY7XG5cblxuICAvLyBUT0RPIHJlbmFtZVxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRW5kcG9pbnQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHBpbmdCYXNlVXJsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSB3c0ltYWdlU2l6ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcGlLZXk6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRm9ybWF0UGljdHVyZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgd3NGYWNlVmVyaWZpY2F0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRvd25sb2FkRmluYWxQaWN0dXJlT25TdWNjZXNzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUF1dG9NYXRjaGluZyA9IGZhbHNlO1xuICAvLyAgVE9ETyByZW5hbWUgZW5kXG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBhdXRvU3RhcnQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGZhY2VUcmFja2luZ09wdGlvbkRlc2lnbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaXJyb3IgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2lyY2xlRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvclByb2dyZXNzQ2lyY2xlOiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNpcmNsZVJhZGl1cyA9IDIwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybWF0RmluYWxQaWN0dXJlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFBpY3R1cmVXaWR0aCA9IDYwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dzTXVsdGlwbGVSZXRyaWVzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvV2lkdGggPSA4MDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZGVvSGVpZ2h0ID0gNjAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmcmFtZVdpZHRoID0gMTIwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlc0VuYWJsZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgcGFkRnJlcXVlbmN5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydFRpcHNMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzRmFjZUNlbnRlckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByb2Nlc3NOb0ZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHVybkZhY2VMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBleHBpcmVkU2Vzc2lvbkVycm9yTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbm9GYWNlRXJyb3JMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZUZhY2VFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydEJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW5hYmxlQ2FtQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmV0cnlCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1N1Y2Nlc3NMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXRjaGluZ1JlYWR5TGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF0Y2hpbmdFcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdXNlclRvb0ZhckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHVzZXJOb3RDZW50ZXJMYWJlbDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGZhY2VEZXRlY3RlZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxCbG9iPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBkZXRlY3Rpb25GYWlsdXJlSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGludGVybmV0TG9zdEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNhbWVyYUhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIHNlc3Npb25FeHBpcmVkSGFuZGxlcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIGNoYW5nZVN0YXRlSGFuZGxlcjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHByaXZhdGUgbWF0Y2hpbmdIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXQgbWluSGVhZFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYXJhbWV0ZXJzLm1pbkhlYWRTaXplO1xuICB9XG5cbiAgZ2V0IHByb2Nlc3NTdGF0ZSgpOiBQcm9jZXNzU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZTtcbiAgfVxuXG4gIGdldCBzZXNzaW9uU3RhdGUoKTogU2Vzc2lvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5zZXNzaW9uU3RhdGU7XG4gIH1cblxuICBnZXQgbWVzc2FnZVN0YXRlKCk6IE1lc3NhZ2VTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMucGFkU3RhdGUubWVzc2FnZVN0YXRlO1xuICB9XG5cbiAgZ2V0IGZhY2VTdGF0ZSgpOiBGYWNlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLmZhY2VTdGF0ZTtcbiAgfVxuXG4gIGdldCB2aWRlb1N0YXRlKCk6IFZpZGVvU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnZpZGVvU3RhdGU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluaXRMYW5ndWFnZSgpO1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5pdE1lc3NhZ2UodGhpcy5zdGFydFRpcHNMYWJlbCwgdGhpcy5wcm9jZXNzRmFjZUNlbnRlckxhYmVsLCB0aGlzLnByb2Nlc3NOb0ZhY2VMYWJlbCxcbiAgICAgICAgdGhpcy5wcm9jZXNzTXVsdGlwbGVGYWNlTGFiZWwsIHRoaXMudHVybkZhY2VMYWJlbCwgdGhpcy5leHBpcmVkU2Vzc2lvbkVycm9yTGFiZWwsIHRoaXMubm9GYWNlRXJyb3JMYWJlbCxcbiAgICAgICAgdGhpcy5tdWx0aXBsZUZhY2VFcnJvckxhYmVsLCB0aGlzLnN1Y2Nlc3NMYWJlbCwgdGhpcy5zdGFydEJ1dHRvbkxhYmVsLCB0aGlzLnJlc3RhcnRCdXR0b25MYWJlbCwgdGhpcy5jb21wYXJlQnV0dG9uTGFiZWwsXG4gICAgICAgIHRoaXMuZW5hYmxlQ2FtQnV0dG9uTGFiZWwsIHRoaXMucmV0cnlCdXR0b25MYWJlbCwgdGhpcy5tYXRjaGluZ1N1Y2Nlc3NMYWJlbCwgdGhpcy5tYXRjaGluZ1JlYWR5TGFiZWwsIHRoaXMubWF0Y2hpbmdFcnJvckxhYmVsLFxuICAgICAgICB0aGlzLm5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWwsIHRoaXMudXNlclRvb0ZhckxhYmVsLCB0aGlzLnVzZXJOb3RDZW50ZXJMYWJlbCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLnVwZGF0ZU5ldHdvcmtTdGF0dXMoKTtcblxuICAgIHRoaXMuc2Vzc2lvblN0YXRlLmVuZFNlc3Npb25FdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgfSk7XG4gICAgdGhpcy5wYWRTdGF0ZS5jaGFuZ2VTdGF0ZUV2ZW50RW1pdHRlci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdGVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlRGV0ZWN0ZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmZhY2VEZXRlY3RlZEhhbmRsZXIuZW1pdChyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuZmFjZVN0YXRlLmRldGVjdGlvbkZhaWx1cmVFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmRldGVjdGlvbkZhaWx1cmVIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5mYWNlTWF0Y2hpbmdFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm1hdGNoaW5nSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2Vzc2lvbkV4cGlyZWRFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnNlc3Npb25FeHBpcmVkSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuaW50ZXJuZXRMb3N0RXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5pbnRlcm5ldExvc3RIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FtZXJhRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICAvLyBpZiB0aGUgcGluZ0Jhc2VVcmwgaXMgbm90IGRlZmluZWQsIHdlIHVzZSB0aGUgd3NFbmRwb2ludCBmb3IgdGhlIHBpbmcgc2VydmVyXG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpQmFzZSh0aGlzLmFwaUtleSwgdGhpcy53c0VuZHBvaW50LCB0aGlzLnBpbmdCYXNlVXJsID8gdGhpcy5waW5nQmFzZVVybCA6IHRoaXMud3NFbmRwb2ludCk7XG5cbiAgICB0aGlzLnBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlLnN0YXJ0UGluZ1NlcnZlcigpLnRoZW4oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlc3Npb25TdGF0ZS5wYWRTdGFydFRpbWVPdXQpO1xuICAgIHRoaXMucGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMudHJhY2tlclNlcnZpY2Uuc3RvcFRyYWNraW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1N0YXRlLnZpZGVvUEFEID0gdGhpcy52aWRlb1BBRDtcbiAgICB0aGlzLnZpZGVvU3RhdGUuY2FudmFzUmVzdWx0ID0gdGhpcy5jYW52YXNSZXN1bHQ7XG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpRmFjZSh0aGlzLndzRm9ybWF0UGljdHVyZSwgdGhpcy53c0ZhY2VWZXJpZmljYXRpb24pO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdENvbXBvbmVudE9wdGlvbnModGhpcy5lbmFibGVBdXRvTWF0Y2hpbmcsIHRoaXMuZG93bmxvYWRGaW5hbFBpY3R1cmVPblN1Y2Nlc3MsIHRoaXMuZm9ybWF0RmluYWxQaWN0dXJlLFxuICAgICAgICB0aGlzLnBhZEZyZXF1ZW5jeSwgdGhpcy5jaXJjbGVFbmFibGVkLCB0aGlzLmZhY2VUcmFja2luZ0VuYWJsZWQsIHRoaXMuY2lyY2xlUmFkaXVzLCB0aGlzLmZyYW1lV2lkdGgsXG4gICAgICAgIHRoaXMuY29sb3JQcm9ncmVzc0NpcmNsZSwgdGhpcy5yZXN1bHRQaWN0dXJlV2lkdGgsIHRoaXMuZmFjZVRyYWNraW5nT3B0aW9uRGVzaWduKTtcbiAgICB0aGlzLnBhZFN0YXRlLmluaXRBcGlQYXJhbWV0ZXJzKHRoaXMud3NJbWFnZVNpemUpO1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdFZpZGVvU3RhdGUodGhpcy52aWRlb0hlaWdodCwgdGhpcy52aWRlb1dpZHRoKTtcbiAgICB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKS5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5hdXRvU3RhcnQpIHtcbiAgICAgIHRoaXMuaW5pdFBhZFNvdXJjZSgpO1xuICAgICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFBhZFNvdXJjZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZFNlc3Npb25TZXJ2aWNlLmluaXRQYWRTb3VyY2UoKS50aGVuKCk7XG4gIH1cblxuICBpbml0RGF0YXNGcm9tVmlkZW9QQUQoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1NlcnZpY2UuaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk7XG4gIH1cblxuICAvLyBQYWQgU3RhcnQgbWV0aG9kc1xuICBwdWJsaWMgc3RhcnRQQUQoKTogYW55IHtcbiAgICB0aGlzLmRldmljZVNlcnZpY2UuaW5pdCgpO1xuICAgIHRoaXMucGFkU2Vzc2lvblNlcnZpY2UucHJlcGFyZUNhbGxQQURTdGFydCgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRDaGFuZ2VTdGF0ZUV2ZW50KG1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVN0YXRlSGFuZGxlci5lbWl0KG1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0VUkoKTogdm9pZCAge1xuICAgIHRoaXMucGFkU3RhdGUuY2hhbmdlUHJvY2Vzc1N0YXRlKFByb2Nlc3NTdGF0ZS5JTklUSUFMKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb21wYXJlV2l0aFJlZmVyZW5jZShwaWN0dXJlVG9Db21wYXJlPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFwaWN0dXJlVG9Db21wYXJlKSB7XG4gICAgICBwaWN0dXJlVG9Db21wYXJlID0gdGhpcy5wYWRTdGF0ZS5nZW5lcmF0ZWRQaWN0dXJlO1xuICAgIH1cbiAgICBpZiAoIXBpY3R1cmVUb0NvbXBhcmUpIHtcbiAgICAgIGxldCBlcnIgPSAnUEFEIFJlc3VsdCBwaWN0dXJlIGlzIG1pc3NpbmcuIFlvdSBoYXZlIHRvIGV4ZWN1dGUgdGhlIGVudGlyZSAnICtcbiAgICAgICdQQUQgcHJvY2VzcyBiZWZvcmUgY2FsbGluZyB0aGUgTWF0Y2hpbmcgSmF2YXNjcmlwdCBmdW5jdGlvbi5cXG4nO1xuICAgICAgZXJyICs9ICdJTVBPUlRBTlQgTk9URSA6IElmIHlvdSBhcmUgdXNpbmcgdGhlIHB1cmVKUyBjb21wb25lbnQsIHlvdSBoYXZlIHRvIHByb3ZpZGUgdGhlIHBpY3R1cmUgaW4gYXJndW1lbnQgKG1hbmRhdG9yeSkuJztcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIGlmICh0aGlzLm1hdGNoaW5nSGFuZGxlcikge1xuICAgICAgICB0aGlzLm1hdGNoaW5nSGFuZGxlci5lcnJvcihlcnIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWQzLWZpbGVGb3JNYXRjaGluZycpLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZVJlZmVyZW5jZUZpbGUoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2VTZXJ2aWNlLmNvbXBhcmVXaXRoUmVmZXJlbmNlKGV2ZW50KTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1wYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZmFjZS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRDtJQU9FLDBCQUFvQiwwQkFBc0QsRUFDdEQsUUFBa0IsRUFDbEIsaUJBQW9DLEVBQ3BDLFdBQXdCLEVBQ3pCLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNuQyxjQUE4QixFQUM5QixZQUEwQixFQUMxQixhQUE0QjtRQVI1QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNw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Ozs7SUFFdEUsMkNBQ2dFOzs7OztJQXZLcEQsc0RBQThEOzs7OztJQUM5RCxvQ0FBMEI7Ozs7O0lBQzFCLDZDQUE0Qzs7Ozs7SUFDNUMsdUNBQWdDOztJQUNoQywwQ0FBcUM7O0lBQ3JDLDZDQUEyQzs7Ozs7SUFDM0MsMENBQXNDOzs7OztJQUN0Qyx3Q0FBa0M7Ozs7O0lBQ2xDLHlDQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9jZXNzU3RhdGUgfSBmcm9tICcuLi9zdGF0ZS9wcm9jZXNzLXN0YXRlJztcbmltcG9ydCB7IFBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9wYWQtc2Vzc2lvbi9wYWQtc2Vzc2lvbi13ZWItc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFkU3RhdGUgfSBmcm9tICcuLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtQYXJhbWV0ZXJzU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQge0ZhY2VTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2ZhY2UvZmFjZS5zZXJ2aWNlJztcbmltcG9ydCB7U2Vzc2lvblN0YXRlfSBmcm9tICcuLi9zdGF0ZS9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7TWVzc2FnZVN0YXRlfSBmcm9tICcuLi9zdGF0ZS9tZXNzYWdlLnN0YXRlJztcbmltcG9ydCB7TWVzc2FnZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtGYWNlU3RhdGV9IGZyb20gJy4uL3N0YXRlL2ZhY2Uuc3RhdGUnO1xuaW1wb3J0IHtQYWRTZXNzaW9uU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9wYWQtc2Vzc2lvbi9wYWQtc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7VmlkZW9TdGF0ZX0gZnJvbSAnLi4vc3RhdGUvdmlkZW8uc3RhdGUnO1xuaW1wb3J0IHtUcmFja2VyU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS90cmFja2VyL3RyYWNrZXIuc2VydmljZSc7XG5pbXBvcnQge1ZpZGVvU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS92aWRlby92aWRlby5zZXJ2aWNlJztcbmltcG9ydCB7RGV2aWNlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9kZXZpY2UvZGV2aWNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZDMtZmFjZS1wYWQnLFxuICB0ZW1wbGF0ZVVybDogJ2ZhY2UtcGFkLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZmFjZS1wYWQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhY2VQYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWRTZXNzaW9uV2ViU29ja2V0U2VydmljZTogUGFkU2Vzc2lvbldlYlNvY2tldFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGFkU3RhdGU6IFBhZFN0YXRlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlOiBQYXJhbWV0ZXJzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYWNlU2VydmljZTogRmFjZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBwYWRTZXNzaW9uU2VydmljZTogUGFkU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhY2tlclNlcnZpY2U6IFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHZpZGVvU2VydmljZTogVmlkZW9TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZVNlcnZpY2UpIHt9XG5cbiAgQFZpZXdDaGlsZCgncmVzdWx0Q2FudmFzJywge3N0YXRpYzogZmFsc2V9KSBjYW52YXNSZXN1bHQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndmlkZW9QQUQnLCB7c3RhdGljOiBmYWxzZX0pIHZpZGVvUEFEOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVGb3JNYXRjaGluZycsIHtzdGF0aWM6IGZhbHNlfSkgZmlsZUZvck1hdGNoaW5nOiBFbGVtZW50UmVmO1xuXG5cbiAgLy8gVE9ETyByZW5hbWVcbiAgQElucHV0KClcbiAgcHJpdmF0ZSB3c0VuZHBvaW50OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBwaW5nQmFzZVVybDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgd3NJbWFnZVNpemU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSB3c0Zvcm1hdFBpY3R1cmU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHdzRmFjZVZlcmlmaWNhdGlvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkb3dubG9hZEZpbmFsUGljdHVyZU9uU3VjY2VzcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmFibGVBdXRvTWF0Y2hpbmcgPSBmYWxzZTtcbiAgLy8gIFRPRE8gcmVuYW1lIGVuZFxuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgYXV0b1N0YXJ0ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBmYWNlVHJhY2tpbmdFbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBmYWNlVHJhY2tpbmdPcHRpb25EZXNpZ24gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWlycm9yID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNpcmNsZUVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sb3JQcm9ncmVzc0NpcmNsZTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjaXJjbGVSYWRpdXMgPSAyMDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1hdEZpbmFsUGljdHVyZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN1bHRQaWN0dXJlV2lkdGggPSA2MDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93c011bHRpcGxlUmV0cmllcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWRlb1dpZHRoID0gODAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWRlb0hlaWdodCA9IDYwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZnJhbWVXaWR0aCA9IDEyMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZXNFbmFibGVkID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIHBhZEZyZXF1ZW5jeSA9IDEwMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhcnRUaXBzTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcHJvY2Vzc0ZhY2VDZW50ZXJMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcm9jZXNzTm9GYWNlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHR1cm5GYWNlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5vRmFjZUVycm9yTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbXVsdGlwbGVGYWNlRXJyb3JMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWNjZXNzTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0YXJ0QnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29tcGFyZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUNhbUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJldHJ5QnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF0Y2hpbmdTdWNjZXNzTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF0Y2hpbmdSZWFkeUxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1hdGNoaW5nRXJyb3JMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHVzZXJUb29GYXJMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB1c2VyTm90Q2VudGVyTGFiZWw6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBmYWNlRGV0ZWN0ZWRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8QmxvYj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHByaXZhdGUgZGV0ZWN0aW9uRmFpbHVyZUhhbmRsZXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBpbnRlcm5ldExvc3RIYW5kbGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBjYW1lcmFIYW5kbGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBzZXNzaW9uRXhwaXJlZEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHJpdmF0ZSBjaGFuZ2VTdGF0ZUhhbmRsZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwcml2YXRlIG1hdGNoaW5nSGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0IG1pbkhlYWRTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFkU3RhdGUucGFyYW1ldGVycy5taW5IZWFkU2l6ZTtcbiAgfVxuXG4gIGdldCBwcm9jZXNzU3RhdGUoKTogUHJvY2Vzc1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGU7XG4gIH1cblxuICBnZXQgc2Vzc2lvblN0YXRlKCk6IFNlc3Npb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMucGFkU3RhdGUuc2Vzc2lvblN0YXRlO1xuICB9XG5cbiAgZ2V0IG1lc3NhZ2VTdGF0ZSgpOiBNZXNzYWdlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLm1lc3NhZ2VTdGF0ZTtcbiAgfVxuXG4gIGdldCBmYWNlU3RhdGUoKTogRmFjZVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5mYWNlU3RhdGU7XG4gIH1cblxuICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS52aWRlb1N0YXRlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5pbml0TGFuZ3VhZ2UoKTtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluaXRNZXNzYWdlKHRoaXMuc3RhcnRUaXBzTGFiZWwsIHRoaXMucHJvY2Vzc0ZhY2VDZW50ZXJMYWJlbCwgdGhpcy5wcm9jZXNzTm9GYWNlTGFiZWwsXG4gICAgICAgIHRoaXMucHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsLCB0aGlzLnR1cm5GYWNlTGFiZWwsIHRoaXMuZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsLCB0aGlzLm5vRmFjZUVycm9yTGFiZWwsXG4gICAgICAgIHRoaXMubXVsdGlwbGVGYWNlRXJyb3JMYWJlbCwgdGhpcy5zdWNjZXNzTGFiZWwsIHRoaXMuc3RhcnRCdXR0b25MYWJlbCwgdGhpcy5yZXN0YXJ0QnV0dG9uTGFiZWwsIHRoaXMuY29tcGFyZUJ1dHRvbkxhYmVsLFxuICAgICAgICB0aGlzLmVuYWJsZUNhbUJ1dHRvbkxhYmVsLCB0aGlzLnJldHJ5QnV0dG9uTGFiZWwsIHRoaXMubWF0Y2hpbmdTdWNjZXNzTGFiZWwsIHRoaXMubWF0Y2hpbmdSZWFkeUxhYmVsLCB0aGlzLm1hdGNoaW5nRXJyb3JMYWJlbCxcbiAgICAgICAgdGhpcy5ub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsLCB0aGlzLnVzZXJUb29GYXJMYWJlbCwgdGhpcy51c2VyTm90Q2VudGVyTGFiZWwpO1xuXG4gICAgdGhpcy5wYWRTZXNzaW9uU2VydmljZS51cGRhdGVOZXR3b3JrU3RhdHVzKCk7XG5cbiAgICB0aGlzLnNlc3Npb25TdGF0ZS5lbmRTZXNzaW9uRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICAgIH0pO1xuICAgIHRoaXMucGFkU3RhdGUuY2hhbmdlU3RhdGVFdmVudEVtaXR0ZXIuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmNoYW5nZVN0YXRlSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5mYWNlU3RhdGUuZmFjZURldGVjdGVkRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5mYWNlRGV0ZWN0ZWRIYW5kbGVyLmVtaXQocmVzKTtcbiAgICB9KTtcbiAgICB0aGlzLmZhY2VTdGF0ZS5kZXRlY3Rpb25GYWlsdXJlRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5kZXRlY3Rpb25GYWlsdXJlSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5mYWNlU3RhdGUuZmFjZU1hdGNoaW5nRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5tYXRjaGluZ0hhbmRsZXIuZW1pdChyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuc2Vzc2lvblN0YXRlLnNlc3Npb25FeHBpcmVkRXZlbnRFbWl0dGVyLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5zZXNzaW9uRXhwaXJlZEhhbmRsZXIuZW1pdChyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuc2Vzc2lvblN0YXRlLmludGVybmV0TG9zdEV2ZW50RW1pdHRlci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuaW50ZXJuZXRMb3N0SGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy52aWRlb1N0YXRlLmNhbWVyYUV2ZW50RW1pdHRlci5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2FtZXJhSGFuZGxlci5lbWl0KHJlcyk7XG4gICAgfSk7XG4gICAgLy8gaWYgdGhlIHBpbmdCYXNlVXJsIGlzIG5vdCBkZWZpbmVkLCB3ZSB1c2UgdGhlIHdzRW5kcG9pbnQgZm9yIHRoZSBwaW5nIHNlcnZlclxuICAgIHRoaXMucGFkU3RhdGUuaW5pdEFwaUJhc2UodGhpcy5hcGlLZXksIHRoaXMud3NFbmRwb2ludCwgdGhpcy5waW5nQmFzZVVybCA/IHRoaXMucGluZ0Jhc2VVcmwgOiB0aGlzLndzRW5kcG9pbnQpO1xuXG4gICAgdGhpcy5wYWRTZXNzaW9uV2ViU29ja2V0U2VydmljZS5zdGFydFBpbmdTZXJ2ZXIoKS50aGVuKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zZXNzaW9uU3RhdGUucGFkU3RhcnRUaW1lT3V0KTtcbiAgICB0aGlzLnBhZFNlc3Npb25XZWJTb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnRyYWNrZXJTZXJ2aWNlLnN0b3BUcmFja2luZygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlkZW9TdGF0ZS52aWRlb1BBRCA9IHRoaXMudmlkZW9QQUQ7XG4gICAgdGhpcy52aWRlb1N0YXRlLmNhbnZhc1Jlc3VsdCA9IHRoaXMuY2FudmFzUmVzdWx0O1xuICAgIHRoaXMucGFkU3RhdGUuaW5pdEFwaUZhY2UodGhpcy53c0Zvcm1hdFBpY3R1cmUsIHRoaXMud3NGYWNlVmVyaWZpY2F0aW9uKTtcbiAgICB0aGlzLnBhZFN0YXRlLmluaXRDb21wb25lbnRPcHRpb25zKHRoaXMuZW5hYmxlQXV0b01hdGNoaW5nLCB0aGlzLmRvd25sb2FkRmluYWxQaWN0dXJlT25TdWNjZXNzLCB0aGlzLmZvcm1hdEZpbmFsUGljdHVyZSxcbiAgICAgICAgdGhpcy5wYWRGcmVxdWVuY3ksIHRoaXMuY2lyY2xlRW5hYmxlZCwgdGhpcy5mYWNlVHJhY2tpbmdFbmFibGVkLCB0aGlzLmNpcmNsZVJhZGl1cywgdGhpcy5mcmFtZVdpZHRoLFxuICAgICAgICB0aGlzLmNvbG9yUHJvZ3Jlc3NDaXJjbGUsIHRoaXMucmVzdWx0UGljdHVyZVdpZHRoLCB0aGlzLmZhY2VUcmFja2luZ09wdGlvbkRlc2lnbik7XG4gICAgdGhpcy5wYWRTdGF0ZS5pbml0QXBpUGFyYW1ldGVycyh0aGlzLndzSW1hZ2VTaXplKTtcbiAgICB0aGlzLnBhZFN0YXRlLmluaXRWaWRlb1N0YXRlKHRoaXMuZGV2aWNlU2VydmljZS5pc01vYmlsZURldmljZSgpID8gdGhpcy52aWRlb1BBRC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCA6IHRoaXMudmlkZW9IZWlnaHQsIHRoaXMudmlkZW9XaWR0aCk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJzKCkuc3Vic2NyaWJlKCk7XG4gICAgaWYgKHRoaXMuYXV0b1N0YXJ0KSB7XG4gICAgICB0aGlzLmluaXRQYWRTb3VyY2UoKTtcbiAgICAgIHRoaXMudmlkZW9TZXJ2aWNlLmluaXREYXRhc0Zyb21WaWRlb1BBRCgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRQYWRTb3VyY2UoKTogdm9pZCB7XG4gICAgdGhpcy5wYWRTZXNzaW9uU2VydmljZS5pbml0UGFkU291cmNlKCkudGhlbigpO1xuICB9XG5cbiAgaW5pdERhdGFzRnJvbVZpZGVvUEFEKCk6IHZvaWQge1xuICAgIHRoaXMudmlkZW9TZXJ2aWNlLmluaXREYXRhc0Zyb21WaWRlb1BBRCgpO1xuICB9XG5cbiAgLy8gUGFkIFN0YXJ0IG1ldGhvZHNcbiAgcHVibGljIHN0YXJ0UEFEKCk6IGFueSB7XG4gICAgdGhpcy5wYWRTZXNzaW9uU2VydmljZS5wcmVwYXJlQ2FsbFBBRFN0YXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENoYW5nZVN0YXRlRXZlbnQobWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlU3RhdGVIYW5kbGVyLmVtaXQobWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRVSSgpOiB2b2lkICB7XG4gICAgdGhpcy5wYWRTdGF0ZS5jaGFuZ2VQcm9jZXNzU3RhdGUoUHJvY2Vzc1N0YXRlLklOSVRJQUwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbXBhcmVXaXRoUmVmZXJlbmNlKHBpY3R1cmVUb0NvbXBhcmU/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXBpY3R1cmVUb0NvbXBhcmUpIHtcbiAgICAgIHBpY3R1cmVUb0NvbXBhcmUgPSB0aGlzLnBhZFN0YXRlLmdlbmVyYXRlZFBpY3R1cmU7XG4gICAgfVxuICAgIGlmICghcGljdHVyZVRvQ29tcGFyZSkge1xuICAgICAgbGV0IGVyciA9ICdQQUQgUmVzdWx0IHBpY3R1cmUgaXMgbWlzc2luZy4gWW91IGhhdmUgdG8gZXhlY3V0ZSB0aGUgZW50aXJlICcgK1xuICAgICAgJ1BBRCBwcm9jZXNzIGJlZm9yZSBjYWxsaW5nIHRoZSBNYXRjaGluZyBKYXZhc2NyaXB0IGZ1bmN0aW9uLlxcbic7XG4gICAgICBlcnIgKz0gJ0lNUE9SVEFOVCBOT1RFIDogSWYgeW91IGFyZSB1c2luZyB0aGUgcHVyZUpTIGNvbXBvbmVudCwgeW91IGhhdmUgdG8gcHJvdmlkZSB0aGUgcGljdHVyZSBpbiBhcmd1bWVudCAobWFuZGF0b3J5KS4nO1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgaWYgKHRoaXMubWF0Y2hpbmdIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMubWF0Y2hpbmdIYW5kbGVyLmVycm9yKGVycik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZDMtZmlsZUZvck1hdGNoaW5nJykuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlUmVmZXJlbmNlRmlsZShldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZmFjZVNlcnZpY2UuY29tcGFyZVdpdGhSZWZlcmVuY2UoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldFZpZGVvTWF4SGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGV2aWNlU2VydmljZS5pc01vYmlsZURldmljZSgpKSB7XG4gICAgICByZXR1cm4gJ25vbmUnO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy52aWRlb0hlaWdodCArICdweCc7XG4gIH1cbn1cbiJdfQ== |
@@ -26,13 +26,7 @@ /** | ||
*/ | ||
DeviceService.prototype.init = /** | ||
DeviceService.prototype.isMobileDevice = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (this.videoState.canvasResult.nativeElement.clientHeight > this.videoState.canvasResult.nativeElement.clientWidth && | ||
this.videoState.videoWidth > this.videoState.videoHeight) { | ||
/** @type {?} */ | ||
var videoWidth = this.videoState.videoWidth; | ||
this.videoState.videoWidth = this.videoState.videoHeight; | ||
this.videoState.videoHeight = videoWidth; | ||
} | ||
return window.matchMedia('only screen and (max-width: 760px)').matches; | ||
}; | ||
@@ -59,2 +53,2 @@ DeviceService.decorators = [ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaWQzL2ZhY2UtcGFkLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZGV2aWNlL2RldmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRy9DO0lBS0ksdUJBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDO0lBRTNDLHNCQUFJLHFDQUFVOzs7O1FBQWQ7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUM7OztPQUFBOzs7O0lBRU0sNEJBQUk7OztJQUFYO1FBQ0ksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQ2hILElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFOztnQkFDckQsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTtZQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7U0FDNUM7SUFDTCxDQUFDOztnQkFsQkosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7OztnQkFMTyxRQUFROzs7d0JBRGhCO0NBdUJDLEFBbkJELElBbUJDO1NBaEJZLGFBQWE7Ozs7OztJQUVWLGlDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgPiB0aGlzLnZpZGVvU3RhdGUuY2FudmFzUmVzdWx0Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMudmlkZW9TdGF0ZS52aWRlb1dpZHRoID4gIHRoaXMudmlkZW9TdGF0ZS52aWRlb0hlaWdodCkge1xuICAgICAgICAgICAgY29uc3QgdmlkZW9XaWR0aCA9IHRoaXMudmlkZW9TdGF0ZS52aWRlb1dpZHRoO1xuICAgICAgICAgICAgdGhpcy52aWRlb1N0YXRlLnZpZGVvV2lkdGggPSB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQgPSB2aWRlb1dpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaWQzL2ZhY2UtcGFkLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2UvZGV2aWNlL2RldmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRy9DO0lBS0ksdUJBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDO0lBRTNDLHNCQUFJLHFDQUFVOzs7O1FBQWQ7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUM7OztPQUFBOzs7O0lBRU0sc0NBQWM7OztJQUFyQjtRQUNJLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMzRSxDQUFDOztnQkFiSixVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzs7O2dCQUxPLFFBQVE7Ozt3QkFEaEI7Q0FrQkMsQUFkRCxJQWNDO1NBWFksYUFBYTs7Ozs7O0lBRVYsaUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGFkU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC5zdGF0ZSc7XG5pbXBvcnQge1ZpZGVvU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3ZpZGVvLnN0YXRlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFkU3RhdGU6IFBhZFN0YXRlKSB7IH1cblxuICAgIGdldCB2aWRlb1N0YXRlKCk6IFZpZGVvU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS52aWRlb1N0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc01vYmlsZURldmljZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCdvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzYwcHgpJykubWF0Y2hlcztcbiAgICB9XG59XG4iXX0= |
@@ -39,3 +39,3 @@ /** | ||
if (!this.messageState.messages.get(label) && this.messageState.languageFile) { | ||
return this.messageState.languageFile.messages.get(label); | ||
return this.messageState.languageFile.get(label); | ||
} | ||
@@ -123,3 +123,3 @@ else { | ||
if (!this.messageState.languageFile) { | ||
this.messageState.languageFile = LanguageEn; | ||
this.messageState.languageFile = LanguageEn.messages; | ||
} | ||
@@ -147,2 +147,2 @@ }; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRTlDO0lBS0ksd0JBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELHNCQUFJLHdDQUFZOzs7O1FBQWhCO1lBQ0csT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTs7Ozs7SUFFRCxtQ0FBVTs7OztJQUFWLFVBQVcsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO1lBQzFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFTSxvQ0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBbEIsVUFBbUIsY0FBc0IsRUFBRSxzQkFBOEIsRUFBRSxrQkFBMEIsRUFBRSx3QkFBZ0MsRUFBRSxhQUFxQixFQUMzSSx3QkFBZ0MsRUFBRSxnQkFBd0IsRUFBRSxzQkFBOEIsRUFBRSxZQUFvQixFQUFFLGdCQUF3QixFQUMxSSxrQkFBMEIsRUFBRSxrQkFBMEIsRUFBRSxvQkFBNEIsRUFBRSxnQkFBd0IsRUFBRSxvQkFBNEIsRUFDNUksa0JBQTBCLEVBQUUsa0JBQTBCLEVBQUUseUJBQWlDLEVBQUUsZUFBdUIsRUFBRSxrQkFBMEI7UUFDN0osSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7O0lBRU0scUNBQVk7OztJQUFuQjtRQUNJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQzs7Z0JBdERKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBUk8sUUFBUTs7O3lCQURoQjtDQStEQyxBQXhERCxJQXdEQztTQXJEWSxjQUFjOzs7Ozs7SUFFWCxrQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQYWRTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUvcGFkLnN0YXRlJztcbmltcG9ydCB7TWVzc2FnZVN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9tZXNzYWdlLnN0YXRlJztcbmltcG9ydCB7TGFuZ3VhZ2VFbn0gZnJvbSAnLi4vLi4vaTE4bi9lbi5pMThuJztcbmltcG9ydCB7TGFuZ3VhZ2VGcn0gZnJvbSAnLi4vLi4vaTE4bi9mci5pMThuJztcbmltcG9ydCB7TGFuZ3VhZ2VQdH0gZnJvbSAnLi4vLi4vaTE4bi9wdC5pMThuJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5zZXQoJ2ZyJywgTGFuZ3VhZ2VGci5tZXNzYWdlcyk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1hcExhbmd1YWdlLnNldCgnZW4nLCBMYW5ndWFnZUVuLm1lc3NhZ2VzKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2Uuc2V0KCdwdCcsIExhbmd1YWdlUHQubWVzc2FnZXMpO1xuICAgIH1cblxuICAgIGdldCBtZXNzYWdlU3RhdGUoKTogTWVzc2FnZVN0YXRlIHtcbiAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5tZXNzYWdlU3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0TWVzc2FnZShsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5nZXQobGFiZWwpICYmIHRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZS5tZXNzYWdlcy5nZXQobGFiZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLmdldChsYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdE1lc3NhZ2Uoc3RhcnRUaXBzTGFiZWw6IHN0cmluZywgcHJvY2Vzc0ZhY2VDZW50ZXJMYWJlbDogc3RyaW5nLCBwcm9jZXNzTm9GYWNlTGFiZWw6IHN0cmluZywgcHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsOiBzdHJpbmcsIHR1cm5GYWNlTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsOiBzdHJpbmcsIG5vRmFjZUVycm9yTGFiZWw6IHN0cmluZywgbXVsdGlwbGVGYWNlRXJyb3JMYWJlbDogc3RyaW5nLCBzdWNjZXNzTGFiZWw6IHN0cmluZywgc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICByZXN0YXJ0QnV0dG9uTGFiZWw6IHN0cmluZywgY29tcGFyZUJ1dHRvbkxhYmVsOiBzdHJpbmcsIGVuYWJsZUNhbUJ1dHRvbkxhYmVsOiBzdHJpbmcsIHJldHJ5QnV0dG9uTGFiZWw6IHN0cmluZywgbWF0Y2hpbmdTdWNjZXNzTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hpbmdSZWFkeUxhYmVsOiBzdHJpbmcsIG1hdGNoaW5nRXJyb3JMYWJlbDogc3RyaW5nLCBub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsOiBzdHJpbmcsIHVzZXJUb29GYXJMYWJlbDogc3RyaW5nLCB1c2VyTm90Q2VudGVyTGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NUQVJUX1RJUFNfTEFCRUwnLCBzdGFydFRpcHNMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUFJPQ0VTU19GQUNFX0NFTlRFUl9MQUJFTCcsIHByb2Nlc3NGYWNlQ2VudGVyTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfTk9fRkFDRV9MQUJFTCcsIHByb2Nlc3NOb0ZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUFJPQ0VTU19NVUxUSVBMRV9GQUNFX0xBQkVMJywgcHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdUVVJOX0ZBQ0VfTEFCRUwnLCB0dXJuRmFjZUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdFWFBJUkVEX1NFU1NJT05fRVJST1JfTEFCRUwnLCBleHBpcmVkU2Vzc2lvbkVycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ05PX0ZBQ0VfRVJST1JfTEFCRUwnLCBub0ZhY2VFcnJvckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNVUxUSVBMRV9GQUNFX0VSUk9SX0xBQkVMJywgbXVsdGlwbGVGYWNlRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnU1VDQ0VTU19MQUJFTCcsIHN1Y2Nlc3NMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnU1RBUlRfQlVUVE9OX0xBQkVMJywgc3RhcnRCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUkVTVEFSVF9CVVRUT05fTEFCRUwnLCByZXN0YXJ0QnV0dG9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ0NPTVBBUkVfQlVUVE9OX0xBQkVMJywgY29tcGFyZUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdFTkFCTEVfQ0FNX0JVVFRPTl9MQUJFTCcsIGVuYWJsZUNhbUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdSRVRSWV9CVVRUT05fTEFCRUwnLCByZXRyeUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19TVUNDRVNTX0xBQkVMJywgbWF0Y2hpbmdTdWNjZXNzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ01BVENISU5HX1JFQURZX0xBQkVMJywgbWF0Y2hpbmdSZWFkeUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19FUlJPUl9MQUJFTCcsIG1hdGNoaW5nRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTk9fSU5URVJORVRfQ09OTkVDVElPTl9MQUJFTCcsIG5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1VTRVJfVE9PX0ZBUl9MQUJFTCcsIHVzZXJUb29GYXJMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnVVNFUl9OT1RfQ0VOVEVSX0xBQkVMJywgdXNlck5vdENlbnRlckxhYmVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdExhbmd1YWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUgPSB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5nZXQobmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cigwLCAyKSk7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUgPSBMYW5ndWFnZUVuO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRTlDO0lBS0ksd0JBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELHNCQUFJLHdDQUFZOzs7O1FBQWhCO1lBQ0csT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTs7Ozs7SUFFRCxtQ0FBVTs7OztJQUFWLFVBQVcsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFO1lBQzFFLE9B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SUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Ozs7SUFFTSxxQ0FBWTs7O0lBQW5CO1FBQ0ksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQzs7Z0JBdERKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBUk8sUUFBUTs7O3lCQURoQjtDQStEQyxBQXhERCxJQXdEQztTQXJEWSxjQUFjOzs7Ozs7SUFFWCxrQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQYWRTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUvcGFkLnN0YXRlJztcbmltcG9ydCB7TWVzc2FnZVN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9tZXNzYWdlLnN0YXRlJztcbmltcG9ydCB7TGFuZ3VhZ2VFbn0gZnJvbSAnLi4vLi4vaTE4bi9lbi5pMThuJztcbmltcG9ydCB7TGFuZ3VhZ2VGcn0gZnJvbSAnLi4vLi4vaTE4bi9mci5pMThuJztcbmltcG9ydCB7TGFuZ3VhZ2VQdH0gZnJvbSAnLi4vLi4vaTE4bi9wdC5pMThuJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5zZXQoJ2ZyJywgTGFuZ3VhZ2VGci5tZXNzYWdlcyk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1hcExhbmd1YWdlLnNldCgnZW4nLCBMYW5ndWFnZUVuLm1lc3NhZ2VzKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWFwTGFuZ3VhZ2Uuc2V0KCdwdCcsIExhbmd1YWdlUHQubWVzc2FnZXMpO1xuICAgIH1cblxuICAgIGdldCBtZXNzYWdlU3RhdGUoKTogTWVzc2FnZVN0YXRlIHtcbiAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5tZXNzYWdlU3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0TWVzc2FnZShsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5nZXQobGFiZWwpICYmIHRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVN0YXRlLmxhbmd1YWdlRmlsZS5nZXQobGFiZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLmdldChsYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdE1lc3NhZ2Uoc3RhcnRUaXBzTGFiZWw6IHN0cmluZywgcHJvY2Vzc0ZhY2VDZW50ZXJMYWJlbDogc3RyaW5nLCBwcm9jZXNzTm9GYWNlTGFiZWw6IHN0cmluZywgcHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsOiBzdHJpbmcsIHR1cm5GYWNlTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlZFNlc3Npb25FcnJvckxhYmVsOiBzdHJpbmcsIG5vRmFjZUVycm9yTGFiZWw6IHN0cmluZywgbXVsdGlwbGVGYWNlRXJyb3JMYWJlbDogc3RyaW5nLCBzdWNjZXNzTGFiZWw6IHN0cmluZywgc3RhcnRCdXR0b25MYWJlbDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICByZXN0YXJ0QnV0dG9uTGFiZWw6IHN0cmluZywgY29tcGFyZUJ1dHRvbkxhYmVsOiBzdHJpbmcsIGVuYWJsZUNhbUJ1dHRvbkxhYmVsOiBzdHJpbmcsIHJldHJ5QnV0dG9uTGFiZWw6IHN0cmluZywgbWF0Y2hpbmdTdWNjZXNzTGFiZWw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hpbmdSZWFkeUxhYmVsOiBzdHJpbmcsIG1hdGNoaW5nRXJyb3JMYWJlbDogc3RyaW5nLCBub0ludGVybmV0Q29ubmVjdGlvbkxhYmVsOiBzdHJpbmcsIHVzZXJUb29GYXJMYWJlbDogc3RyaW5nLCB1c2VyTm90Q2VudGVyTGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1NUQVJUX1RJUFNfTEFCRUwnLCBzdGFydFRpcHNMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUFJPQ0VTU19GQUNFX0NFTlRFUl9MQUJFTCcsIHByb2Nlc3NGYWNlQ2VudGVyTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1BST0NFU1NfTk9fRkFDRV9MQUJFTCcsIHByb2Nlc3NOb0ZhY2VMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUFJPQ0VTU19NVUxUSVBMRV9GQUNFX0xBQkVMJywgcHJvY2Vzc011bHRpcGxlRmFjZUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdUVVJOX0ZBQ0VfTEFCRUwnLCB0dXJuRmFjZUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdFWFBJUkVEX1NFU1NJT05fRVJST1JfTEFCRUwnLCBleHBpcmVkU2Vzc2lvbkVycm9yTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ05PX0ZBQ0VfRVJST1JfTEFCRUwnLCBub0ZhY2VFcnJvckxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNVUxUSVBMRV9GQUNFX0VSUk9SX0xBQkVMJywgbXVsdGlwbGVGYWNlRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnU1VDQ0VTU19MQUJFTCcsIHN1Y2Nlc3NMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnU1RBUlRfQlVUVE9OX0xBQkVMJywgc3RhcnRCdXR0b25MYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnUkVTVEFSVF9CVVRUT05fTEFCRUwnLCByZXN0YXJ0QnV0dG9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ0NPTVBBUkVfQlVUVE9OX0xBQkVMJywgY29tcGFyZUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdFTkFCTEVfQ0FNX0JVVFRPTl9MQUJFTCcsIGVuYWJsZUNhbUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdSRVRSWV9CVVRUT05fTEFCRUwnLCByZXRyeUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19TVUNDRVNTX0xBQkVMJywgbWF0Y2hpbmdTdWNjZXNzTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ01BVENISU5HX1JFQURZX0xBQkVMJywgbWF0Y2hpbmdSZWFkeUxhYmVsKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3RhdGUubWVzc2FnZXMuc2V0KCdNQVRDSElOR19FUlJPUl9MQUJFTCcsIG1hdGNoaW5nRXJyb3JMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnTk9fSU5URVJORVRfQ09OTkVDVElPTl9MQUJFTCcsIG5vSW50ZXJuZXRDb25uZWN0aW9uTGFiZWwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5tZXNzYWdlcy5zZXQoJ1VTRVJfVE9PX0ZBUl9MQUJFTCcsIHVzZXJUb29GYXJMYWJlbCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0YXRlLm1lc3NhZ2VzLnNldCgnVVNFUl9OT1RfQ0VOVEVSX0xBQkVMJywgdXNlck5vdENlbnRlckxhYmVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdExhbmd1YWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUgPSB0aGlzLm1lc3NhZ2VTdGF0ZS5tYXBMYW5ndWFnZS5nZXQobmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cigwLCAyKSk7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlU3RhdGUubGFuZ3VhZ2VGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTdGF0ZS5sYW5ndWFnZUZpbGUgPSBMYW5ndWFnZUVuLm1lc3NhZ2VzO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0= |
@@ -64,4 +64,4 @@ /** | ||
var canvas = this.videoState.canvasResult.nativeElement; | ||
canvas.width = this.videoState.videoWidth; | ||
canvas.height = this.videoState.videoHeight; | ||
canvas.width = this.videoState.width; | ||
canvas.height = this.videoState.height; | ||
/** @type {?} */ | ||
@@ -175,2 +175,2 @@ var ctx = canvas.getContext('2d'); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkLWNpcmNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL3BhZC1jaXJjbGUvcGFkLWNpcmNsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQU92RDtJQUtJLDBCQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUksQ0FBQztJQUUzQyxzQkFBSSx3Q0FBVTs7OztRQUFkO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFnQjs7OztRQUFwQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDRDQUFjOzs7O1FBQWxCO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUN4QyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDBDQUFZOzs7O1FBQWhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTs7OztJQUVNLHlDQUFjOzs7SUFBckI7UUFBQSxpQkErQ0M7O1lBOUNTLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhO1FBQ3pELE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDMUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzs7WUFFdEMsR0FB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Q0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2IsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2IsQ0FBQzs7Z0JBM0ZOLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBVk8sUUFBUTs7OzJCQURoQjtDQXNHQyxBQTdGRCxJQTZGQztTQTFGWSxnQkFBZ0I7Ozs7OztJQUViLG9DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtQcm9jZXNzU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge0NvbXBvbmVudE9wdGlvbnN9IGZyb20gJy4uLy4uL3N0YXRlL2NvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7UGFkQ2lyY2xlU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC1jaXJjbGUuc3RhdGUnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFkQ2lyY2xlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50T3B0aW9ucygpOiBDb21wb25lbnRPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUuY29tcG9uZW50T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgcGFkQ2lyY2xlU3RhdGUoKTogUGFkQ2lyY2xlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYWRDaXJjbGVTdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgc2Vzc2lvblN0YXRlKCk6IFNlc3Npb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnNlc3Npb25TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvZ3Jlc3NDaXJjbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy52aWRlb1N0YXRlLnZpZGVvV2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLnZpZGVvU3RhdGUudmlkZW9IZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGNvbnN0IHBvc1ggPSBjYW52YXMud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBwb3NZID0gY2FudmFzLmhlaWdodCAvIDI7XG4gICAgICAgIGN0eC5saW5lQ2FwID0gJ3JvdW5kJztcbiAgICAgICAgbGV0IGluY3JlbWVudCA9IDA7XG5cbiAgICAgICAgY29uc3QgYXJjSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICB0aGlzLmdyYXlTY2FsZSh0aGlzLmNvbXBvbmVudE9wdGlvbnMuY2lyY2xlUmFkaXVzLCBjdHgsIGNhbnZhcywgcG9zWCwgcG9zWSk7XG5cbiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudE9wdGlvbnMuY29sb3JQcm9ncmVzc0NpcmNsZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmNvbXBvbmVudE9wdGlvbnMuY29sb3JQcm9ncmVzc0NpcmNsZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyMwMDdiZmYnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9ICcxMCc7XG4gICAgICAgICAgICBjdHguYXJjKHBvc1gsIHBvc1ksIHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIChNYXRoLlBJIC8gMTgwKSAqIDI3MCwgKE1hdGguUEkgLyAxODApICogKDI3MCArIGluY3JlbWVudCkpO1xuICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZXNzaW9uU3RhdGUucHJvY2Vzc0NvbXBsZXRpb24gPj0gMTAwKSB7XG4gICAgICAgICAgICAgICAgY3R4LmFyYyhwb3NYLCBwb3NZLCB0aGlzLmNvbXBvbmVudE9wdGlvbnMuY2lyY2xlUmFkaXVzLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgaW5jcmVtZW50KSwgKE1hdGguUEkgLyAxODApICogKDI3MCArIDM2MCkpO1xuICAgICAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMDtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGFyY0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZENpcmNsZVN0YXRlLmlzQ2lyY2xlUnVubmluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluY3JlbWVudCA8ICgzNjAgKiAodGhpcy5zZXNzaW9uU3RhdGUucHJvY2Vzc0NvbXBsZXRpb24gLyAxMDApKSkge1xuICAgICAgICAgICAgICAgIGluY3JlbWVudCArPSAxMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9OT19GQUNFIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9OT19JTlRFUk5FVF9DT05ORUNUSU9OIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9TRVNTSU9OIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wYWRTdGF0ZS5wcm9jZXNzU3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5FUlJPUl9NVUxUSVBMRV9GQUNFKSB7XG4gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JheVNjYWxlKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMDtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGFyY0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZENpcmNsZVN0YXRlLmlzQ2lyY2xlUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA2MCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncmF5U2NhbGUoY2lyY2xlUmFkaXVzLCBjdHgsIGNhbnZhcywgcG9zWCwgcG9zWSk6IHZvaWQge1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgwLDIwMCwyMDAsMCknO1xuICAgICAgICBjdHgubGluZVdpZHRoID0gJzEwJztcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDAuNyknO1xuICAgICAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgICAgIGN0eC5tb3ZlVG8oMCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8oMCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2FudmFzLmhlaWdodCAtIChjaXJjbGVSYWRpdXMgLyAyKSk7XG4gICAgICAgIGN0eC5hcmMocG9zWCwgcG9zWSwgY2lyY2xlUmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSAvIDIuMDAwMDAxKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgY2lyY2xlUmFkaXVzIC8gMik7XG4gICAgICAgIGN0eC5saW5lVG8ocG9zWCwgMCk7XG4gICAgICAgIGN0eC5saW5lVG8oMCwgMCk7XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgY3R4LmZpbGwoKTtcbiAgICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkLWNpcmNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGlkMy9mYWNlLXBhZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL3BhZC1jaXJjbGUvcGFkLWNpcmNsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQU92RDtJQUtJLDBCQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUksQ0FBQztJQUUzQyxzQkFBSSx3Q0FBVTs7OztRQUFkO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDhDQUFnQjs7OztRQUFwQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDRDQUFjOzs7O1FBQWxCO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUN4QyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLDBDQUFZOzs7O1FBQWhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN0QyxDQUFDOzs7T0FBQTs7OztJQUVNLHlDQUFjOzs7SUFBckI7UUFBQSxpQkErQ0M7O1lBOUNTLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhO1FBQ3pELE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDckMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQzs7WUFFakMsR0FB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Q0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2IsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2IsQ0FBQzs7Z0JBM0ZOLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBVk8sUUFBUTs7OzJCQURoQjtDQXNHQyxBQTdGRCxJQTZGQztTQTFGWSxnQkFBZ0I7Ozs7OztJQUViLG9DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BhZFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS9wYWQuc3RhdGUnO1xuaW1wb3J0IHtQcm9jZXNzU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Byb2Nlc3Mtc3RhdGUnO1xuaW1wb3J0IHtWaWRlb1N0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZS92aWRlby5zdGF0ZSc7XG5pbXBvcnQge0NvbXBvbmVudE9wdGlvbnN9IGZyb20gJy4uLy4uL3N0YXRlL2NvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7UGFkQ2lyY2xlU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3BhZC1jaXJjbGUuc3RhdGUnO1xuaW1wb3J0IHtTZXNzaW9uU3RhdGV9IGZyb20gJy4uLy4uL3N0YXRlL3Nlc3Npb24uc3RhdGUnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFkQ2lyY2xlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZFN0YXRlOiBQYWRTdGF0ZSkgeyB9XG5cbiAgICBnZXQgdmlkZW9TdGF0ZSgpOiBWaWRlb1N0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUudmlkZW9TdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcG9uZW50T3B0aW9ucygpOiBDb21wb25lbnRPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFkU3RhdGUuY29tcG9uZW50T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgcGFkQ2lyY2xlU3RhdGUoKTogUGFkQ2lyY2xlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWRTdGF0ZS5wYWRDaXJjbGVTdGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgc2Vzc2lvblN0YXRlKCk6IFNlc3Npb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZFN0YXRlLnNlc3Npb25TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvZ3Jlc3NDaXJjbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMudmlkZW9TdGF0ZS5jYW52YXNSZXN1bHQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy52aWRlb1N0YXRlLndpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy52aWRlb1N0YXRlLmhlaWdodDtcblxuICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgY29uc3QgcG9zWCA9IGNhbnZhcy53aWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IHBvc1kgPSBjYW52YXMuaGVpZ2h0IC8gMjtcbiAgICAgICAgY3R4LmxpbmVDYXAgPSAncm91bmQnO1xuICAgICAgICBsZXQgaW5jcmVtZW50ID0gMDtcblxuICAgICAgICBjb25zdCBhcmNJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgICAgIHRoaXMuZ3JheVNjYWxlKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTtcblxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50T3B0aW9ucy5jb2xvclByb2dyZXNzQ2lyY2xlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IHRoaXMuY29tcG9uZW50T3B0aW9ucy5jb2xvclByb2dyZXNzQ2lyY2xlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzAwN2JmZic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdHgubGluZVdpZHRoID0gJzEwJztcbiAgICAgICAgICAgIGN0eC5hcmMocG9zWCwgcG9zWSwgdGhpcy5jb21wb25lbnRPcHRpb25zLmNpcmNsZVJhZGl1cywgKE1hdGguUEkgLyAxODApICogMjcwLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgaW5jcmVtZW50KSk7XG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICBjdHguYXJjKHBvc1gsIHBvc1ksIHRoaXMuY29tcG9uZW50T3B0aW9ucy5jaXJjbGVSYWRpdXMsIChNYXRoLlBJIC8gMTgwKSAqICgyNzAgKyBpbmNyZW1lbnQpLCAoTWF0aC5QSSAvIDE4MCkgKiAoMjcwICsgMzYwKSk7XG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0YXRlLnByb2Nlc3NDb21wbGV0aW9uID0gMDtcbiAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoYXJjSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFkQ2lyY2xlU3RhdGUuaXNDaXJjbGVSdW5uaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5jcmVtZW50IDwgKDM2MCAqICh0aGlzLnNlc3Npb25TdGF0ZS5wcm9jZXNzQ29tcGxldGlvbiAvIDEwMCkpKSB7XG4gICAgICAgICAgICAgICAgaW5jcmVtZW50ICs9IDEwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX05PX0ZBQ0UgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX05PX0lOVEVSTkVUX0NPTk5FQ1RJT04gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX1NFU1NJT04gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhZFN0YXRlLnByb2Nlc3NTdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLkVSUk9SX01VTFRJUExFX0ZBQ0UpIHtcbiAgICAgICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmF5U2NhbGUodGhpcy5jb21wb25lbnRPcHRpb25zLmNpcmNsZVJhZGl1cywgY3R4LCBjYW52YXMsIHBvc1gsIHBvc1kpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0YXRlLnByb2Nlc3NDb21wbGV0aW9uID0gMDtcbiAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoYXJjSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFkQ2lyY2xlU3RhdGUuaXNDaXJjbGVSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDYwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdyYXlTY2FsZShjaXJjbGVSYWRpdXMsIGN0eCwgY2FudmFzLCBwb3NYLCBwb3NZKTogdm9pZCB7XG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsMjAwLDIwMCwwKSc7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSAnMTAnO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMCwgMCwgMC43KSc7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4Lm1vdmVUbygwLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbygwLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjYW52YXMuaGVpZ2h0IC0gKGNpcmNsZVJhZGl1cyAvIDIpKTtcbiAgICAgICAgY3R4LmFyYyhwb3NYLCBwb3NZLCBjaXJjbGVSYWRpdXMsIE1hdGguUEkgLyAyLCBNYXRoLlBJIC8gMi4wMDAwMDEpO1xuICAgICAgICBjdHgubGluZVRvKHBvc1gsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGN0eC5saW5lVG8oY2FudmFzLndpZHRoLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCBjaXJjbGVSYWRpdXMgLyAyKTtcbiAgICAgICAgY3R4LmxpbmVUbyhwb3NYLCAwKTtcbiAgICAgICAgY3R4LmxpbmVUbygwLCAwKTtcbiAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICBjdHguZmlsbCgpO1xuICAgICAgfVxuXG59XG4iXX0= |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"PadSessionWebSocketService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"sendMessage":[{"__symbolic":"method"}],"waitForSocketConnection":[{"__symbolic":"method"}],"startPingServer":[{"__symbolic":"method"}],"pingServer":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ParametersService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":34},{"__symbolic":"reference","name":"PadState"}]}],"loadParameters":[{"__symbolic":"method"}],"getParameters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"PadState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"getUrlParameters":[{"__symbolic":"method"}],"getUrlRotateAndCrop":[{"__symbolic":"method"}],"getUrlMatching":[{"__symbolic":"method"}],"initApiParameters":[{"__symbolic":"method"}],"initApiFace":[{"__symbolic":"method"}],"initApiBase":[{"__symbolic":"method"}],"initComponentOptions":[{"__symbolic":"method"}],"initVideoState":[{"__symbolic":"method"}],"changeProcessState":[{"__symbolic":"method"}],"clearState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"FacePadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"id3-face-pad","template":"<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"videoHeight + 'px'\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"videoState.videoHeight + 'px'\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>","styles":[".padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:\"PT Sans\",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadSessionWebSocketService"},{"__symbolic":"reference","name":"PadState"},{"__symbolic":"reference","name":"ParametersService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}]}],"canvasResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":["resultCanvas",{"static":false}]}]}],"videoPAD":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["videoPAD",{"static":false}]}]}],"fileForMatching":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["fileForMatching",{"static":false}]}]}],"wsEndpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"pingBaseUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"wsImageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"apiKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"wsFormatPicture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"wsFaceVerification":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"downloadFinalPictureOnSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"enableAutoMatching":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"autoStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"faceTrackingEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"faceTrackingOptionDesign":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"mirror":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"circleEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"colorProgressCircle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"circleRadius":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"formatFinalPicture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"resultPictureWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"allowsMultipleRetries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":3}}]}],"videoWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"videoHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"frameWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"messagesEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"padFrequency":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"startTipsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"processFaceCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"processNoFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"processMultipleFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"turnFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":3}}]}],"expiredSessionErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":3}}]}],"noFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3}}]}],"multipleFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":132,"character":3}}]}],"successLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"startButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":138,"character":3}}]}],"restartButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"compareButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":144,"character":3}}]}],"enableCamButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3}}]}],"retryButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"matchingSuccessLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":3}}]}],"matchingReadyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"matchingErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"noInternetConnectionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":162,"character":3}}]}],"userTooFarLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":165,"character":3}}]}],"userNotCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":168,"character":3}}]}],"faceDetectedHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":171,"character":3}}]}],"detectionFailureHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":174,"character":3}}]}],"internetLostHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":177,"character":3}}]}],"cameraHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":180,"character":3}}]}],"sessionExpiredHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":183,"character":3}}]}],"changeStateHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":186,"character":3}}]}],"matchingHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":189,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initPadSource":[{"__symbolic":"method"}],"initDatasFromVideoPAD":[{"__symbolic":"method"}],"startPAD":[{"__symbolic":"method"}],"emitChangeStateEvent":[{"__symbolic":"method"}],"resetUI":[{"__symbolic":"method"}],"compareWithReference":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":300,"character":3}}]}],"handleReferenceFile":[{"__symbolic":"method"}]}},"FacePadModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FacePadComponent"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":13,"character":4}],"exports":[{"__symbolic":"reference","name":"FacePadComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FacePadComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":15,"character":36},{"__symbolic":"reference","name":"PadState"}]}],"rotateAndCropFinalPicture":[{"__symbolic":"method"}],"manageFinalPicture":[{"__symbolic":"method"}],"compareWithReference":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"getMessage":[{"__symbolic":"method"}],"initMessage":[{"__symbolic":"method"}],"initLanguage":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"PadSessionWebSocketService"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}],"processPadSessionResponse":[{"__symbolic":"method"}],"prepareCallPADStart":[{"__symbolic":"method"}],"callPADStart":[{"__symbolic":"method"}],"doPADStart":[{"__symbolic":"method"}],"prepareCallPADContinue":[{"__symbolic":"method"}],"toBlob":[{"__symbolic":"method"}],"initPadSource":[{"__symbolic":"method"}],"leaving":[{"__symbolic":"method"}],"handleSuccess":[{"__symbolic":"method"}],"updateNetworkStatus":[{"__symbolic":"method"}],"isRequestPermissionState":[{"__symbolic":"method"}],"isInitialState":[{"__symbolic":"method"}],"isStartedState":[{"__symbolic":"method"}],"isProcessingState":[{"__symbolic":"method"}],"isErrorSessionState":[{"__symbolic":"method"}],"isErrorNoFaceState":[{"__symbolic":"method"}],"isErrorNoInternetConnection":[{"__symbolic":"method"}],"isErrorUserTooFar":[{"__symbolic":"method"}],"isErrorUserNotCenter":[{"__symbolic":"method"}],"isErrorMultipleFaceState":[{"__symbolic":"method"}],"isSuccessState":[{"__symbolic":"method"}],"isInvalidKeyState":[{"__symbolic":"method"}],"isMatchingReadyState":[{"__symbolic":"method"}],"isMatchingSuccessState":[{"__symbolic":"method"}],"isMatchingErrorState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"faceTracker":[{"__symbolic":"method"}],"faceTrackingReadyToStart":[{"__symbolic":"method"}],"faceTrackingHasToBeDrawn":[{"__symbolic":"method"}],"faceTrackingReady":[{"__symbolic":"method"}],"stopTracking":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"progressCircle":[{"__symbolic":"method"}],"grayScale":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"initDatasFromVideoPAD":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"init":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"id3-face-pad-messages","template":"<div class=\"mt-2\">\n <div *ngIf=\"padSessionService.isInitialState()\" class=\"alert alert-primary\" role=\"alert\">\n {{startTipsLabel}}\n </div>\n <div *ngIf=\"padSessionService.isStartedState() && processInstruction !== undefined || (padSessionService.isProcessingState() && processInstruction.length>0)\" class=\"alert alert-danger\" role=\"alert\">\n {{processInstruction}}\n </div>\n <div *ngIf=\"padSessionService.isProcessingState() && processInstruction.length==0\" class=\"alert alert-primary\" role=\"alert\">\n {{turnFaceLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorSessionState()\" class=\"alert alert-danger\" role=\"alert\">\n {{expiredSessionErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorNoFaceState()\" class=\"alert alert-danger\" role=\"alert\">\n {{noFaceErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorNoInternetConnection()\" class=\"alert alert-danger\" role=\"alert\">\n {{noInternetConnectionLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorUserTooFar()\" class=\"alert alert-primary\" role=\"alert\">\n {{userTooFarLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorUserNotCenter()\" class=\"alert alert-danger\" role=\"alert\">\n {{userNotCenterLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorMultipleFaceState()\" class=\"alert alert-danger\" role=\"alert\">\n {{multipleFaceErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isSuccessState()\" class=\"alert alert-success\" role=\"alert\">\n {{successLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"alert alert-primary\" role=\"alert\">\n {{matchingReadyLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingSuccessState()\" class=\"alert alert-success\" role=\"alert\">\n {{matchingSuccessLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingErrorState()\" class=\"alert alert-danger\" role=\"alert\">\n {{matchingErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isInvalidKeyState()\" class=\"alert alert-danger\" role=\"alert\">\n The API Key is invalid. Please check your API key.\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"padSessionService":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"startTipsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"turnFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"expiredSessionErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"noFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"noInternetConnectionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"userTooFarLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"multipleFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"successLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"matchingSuccessLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"matchingReadyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"matchingErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"userNotCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"processInstruction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"id3-network-status","template":"<svg class=\"clientConnectionLogo\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"60\" height=\"60\" viewBox=\"0 0 1280.000000 720.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,720.000000) scale(0.100000,-0.100000)\"\n stroke=\"none\">\n <path id=\"excellentConnection\" fill=\"#C0C0C0\" d=\"M6169 6226 c-2 -2 -51 -7 -109 -10 -439 -29 -987 -166 -1450 -363 -519 -221 -1027 -554 -1389 -911 -82 -81 -102 -107 -120 -157 -60 -160 18 -347 181 -436 59 -32 69 -34 158 -34 86 0 100 3 147 29 29 16 92 65 140 110 395 364 836 637 1336 825 152 57 374 124 497 151 372 81 500 94 900 95 309 0 362 -2 510 -23 303 -43 520 -95 805 -193 512 -175 1010 -472 1409 -841 137 -126 188 -152 301 -153 71 0 88 4 147 33 71 35 141 103 174 169 15 31 19 60 19 153 0 144 -7 159 -128 278 -328 322 -794 638 -1252 849 -504 232 -1051 376 -1610 423 -113 9 -657 14 -666 6z\"/>\n <path id=\"goodConnection\" fill=\"#C0C0C0\" d=\"M6195 4939 c-787 -66 -1561 -412 -2102 -941 -111 -108 -128 -145 -128 -273 0 -89 3 -105 27 -150 36 -67 107 -139 171 -172 40 -20 71 -27 132 -31 121 -6 169 16 297 134 123 114 297 247 428 329 224 139 526 268 760 325 47 11 101 25 120 30 19 5 100 19 180 32 207 32 550 32 762 0 561 -86 1063 -325 1473 -702 131 -120 182 -145 295 -145 72 0 93 4 141 28 63 30 146 112 178 174 46 91 43 224 -6 315 -50 92 -339 338 -576 492 -467 302 -966 482 -1522 546 -126 15 -499 20 -630 9z\"/>\n <path id=\"mediumConnection\" fill=\"#C0C0C0\" d=\"M6230 3653 c-103 -11 -321 -60 -439 -99 -316 -106 -596 -274 -819 -493 -118 -116 -137 -154 -136 -271 1 -69 6 -96 26 -140 53 -115 155 -197 273 -220 51 -10 71 -9 124 5 78 20 127 50 211 130 271 257 616 395 989 395 387 0 722 -136 1017 -412 100 -93 146 -113 264 -113 105 0 160 24 239 103 77 78 106 145 106 252 0 118 -27 171 -145 283 -330 315 -769 520 -1230 577 -78 9 -399 12 -480 3z\"/>\n <path id=\"lowConnection\" fill=\"#C0C0C0\" d=\"M6270 2447 c-135 -37 -242 -101 -342 -204 -226 -234 -276 -555 -132 -852 40 -82 60 -108 138 -186 103 -102 185 -154 301 -191 97 -31 258 -43 358 -25 241 42 470 233 565 471 107 270 39 583 -172 790 -78 77 -183 143 -285 181 -77 29 -99 32 -216 36 -112 3 -142 0 -215 -20z\"/>\n </g>\n</svg>","styles":[".clientConnectionLogo{top:0;right:0;position:absolute}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"PadSessionWebSocketService":"./lib/service/pad-session/pad-session-web-socket.service","ParametersService":"./lib/service/parameters/parameters.service","PadState":"./lib/state/pad.state","FacePadComponent":"./lib/component/face-pad.component","FacePadModule":"./lib/face-pad.module","ɵa":"./lib/service/face/face.service","ɵb":"./lib/service/message/message.service","ɵc":"./lib/service/pad-session/pad-session.service","ɵd":"./lib/service/tracker/tracker.service","ɵe":"./lib/service/pad-circle/pad-circle.service","ɵf":"./lib/service/video/video.service","ɵg":"./lib/service/device/device.service","ɵh":"./lib/component/messages/face-pad-messages.component","ɵi":"./lib/component/network-status/network-status.component"},"importAs":"@id3/face-pad"} | ||
{"__symbolic":"module","version":4,"metadata":{"PadSessionWebSocketService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"sendMessage":[{"__symbolic":"method"}],"waitForSocketConnection":[{"__symbolic":"method"}],"startPingServer":[{"__symbolic":"method"}],"pingServer":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ParametersService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":34},{"__symbolic":"reference","name":"PadState"}]}],"loadParameters":[{"__symbolic":"method"}],"getParameters":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"PadState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"getUrlParameters":[{"__symbolic":"method"}],"getUrlRotateAndCrop":[{"__symbolic":"method"}],"getUrlMatching":[{"__symbolic":"method"}],"initApiParameters":[{"__symbolic":"method"}],"initApiFace":[{"__symbolic":"method"}],"initApiBase":[{"__symbolic":"method"}],"initComponentOptions":[{"__symbolic":"method"}],"initVideoState":[{"__symbolic":"method"}],"changeProcessState":[{"__symbolic":"method"}],"clearState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"FacePadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"id3-face-pad","template":"<id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-small-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n</id3-face-pad-messages>\n\n<input #fileForMatch id=\"id3-fileForMatching\" type=\"file\" (click)=\"fileForMatch.value=null;\" name=\"fileForMatch\" class=\"d-none\" (change)=\"handleReferenceFile($event)\"/>\n<div class=\"padContainer\" [style.max-height]=\"getVideoMaxHeight()\" [style.max-width]=\"videoWidth + 'px'\">\n <canvas class=\"canvas {{mirror && !circleEnabled ? 'mirror': ''}}\" #resultCanvas></canvas>\n <video class=\"liveStream {{mirror ? 'mirror': ''}}\" #videoPAD autoplay playsinline [style.maxHeight]=\"getVideoMaxHeight()\"></video>\n <div class=\"id3-pad-overlay\">\n <div class=\"extras\">\n <img class=\"text-left\" id=\"id3Logo\" src=\"/assets/images/id3_logo_white_40.png\" height=\"40\" width=\"40\" *ngIf=\"apiKey === 'test-token-id3-webcapture'\">\n <id3-network-status ></id3-network-status>\n </div>\n <div id=\"mainContent\" class=\"pad-content d-block\">\n\n <id3-face-pad-messages *ngIf=\"messagesEnabled\" class=\"show-big-screen\" [startTipsLabel]=\"messageService.getMessage('START_TIPS_LABEL')\"\n [turnFaceLabel]=\"messageService.getMessage('TURN_FACE_LABEL')\" [expiredSessionErrorLabel]=\"messageService.getMessage('EXPIRED_SESSION_ERROR_LABEL')\"\n [noFaceErrorLabel]=\"messageService.getMessage('NO_FACE_ERROR_LABEL')\" [noInternetConnectionLabel]=\"messageService.getMessage('NO_INTERNET_CONNECTION_LABEL')\"\n [multipleFaceErrorLabel]=\"messageService.getMessage('MULTIPLE_FACE_ERROR_LABEL')\" [successLabel]=\"messageService.getMessage('SUCCESS_LABEL')\"\n [processInstruction]=\"sessionState.processInstruction\" [padSessionService]=\"padSessionService\" [matchingSuccessLabel]=\"messageService.getMessage('MATCHING_SUCCESS_LABEL')\"\n [matchingErrorLabel]=\"messageService.getMessage('MATCHING_ERROR_LABEL')\" [matchingReadyLabel]=\"messageService.getMessage('MATCHING_READY_LABEL')\"\n [userTooFarLabel]=\"messageService.getMessage('USER_TOO_FAR_LABEL')\" [userNotCenterLabel]=\"messageService.getMessage('USER_NOT_CENTER_LABEL')\">\n </id3-face-pad-messages>\n\n <br>\n <div class=\"d-flex\">\n <h4 id=\"padAlert\" class=\"text-white\"></h4>\n </div>\n </div>\n <div id=\"mainButtons\" class=\"pad-buttons d-block\">\n <button type=\"button\" *ngIf=\"padSessionService.isRequestPermissionState()\" (click)=\"initPadSource(); initDatasFromVideoPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em>{{messageService.getMessage('ENABLE_CAM_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isInitialState()\" (click)=\"startPAD()\" class=\"btn btn-primary btn-id3 mt-5\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('START_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isErrorSessionState() ||\n padSessionService.isErrorNoFaceState() || padSessionService.isErrorNoInternetConnection() ||\n padSessionService.isErrorUserTooFar() || padSessionService.isErrorUserNotCenter() ||\n padSessionService.isErrorMultipleFaceState() || (allowsMultipleRetries && padSessionService.isSuccessState())\"\n (click)=\"resetUI()\" class=\"btn btn-primary btn-id3 mt-3\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RETRY_BUTTON_LABEL')}}\n </button>\n\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"compareWithReference()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('COMPARE_BUTTON_LABEL')}}\n </button>\n <button type=\"button\" *ngIf=\"padSessionService.isMatchingSuccessState()|| padSessionService.isMatchingErrorState()\" class=\"btn btn-primary btn-id3 mt-3\" (click)=\"resetUI()\">\n <em class=\"pi pi-caret-right v-align-top\"></em> {{messageService.getMessage('RESTART_BUTTON_LABEL')}}\n </button>\n\n </div>\n </div>\n </div>","styles":[".padContainer{position:relative;margin:auto}.padContainer .h1,.padContainer .h2,.padContainer .h3,.padContainer .h4,.padContainer .h5,.padContainer .h6,.padContainer h1,.padContainer h2,.padContainer h3,.padContainer h4,.padContainer h5,.padContainer h6{font-family:\"PT Sans\",sans-serif;font-weight:700;font-size:50px}.padContainer .liveStream{z-index:1;top:0;left:0;width:100%;height:auto}.padContainer .btn-id3{border-radius:10px}.padContainer .font-weight-normal{width:250px;text-align:left}.padContainer .id3-pad-overlay{z-index:3;position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;color:#fff;font-size:20px;flex-direction:column;border:1px solid #ddd}.padContainer .extras{position:absolute;display:flex;top:15;right:15;left:15;width:100%;align-items:left}.padContainer .pad-content{display:block;text-align:center}.padContainer .pad-buttons{position:absolute;display:block;text-align:center;bottom:5%}.padContainer .padBehaviorLabel{font-size:20px}.padContainer .breathe{margin:6px 10px}.padContainer .id3-overlay{position:absolute}.padContainer .canvas{z-index:2;top:0;left:0;width:100%;height:100%;position:absolute}.padContainer .mirror{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg)}.padContainer .clientConnectionLogo{top:0;right:0;position:absolute}@media only screen and (max-width:500px){.show-big-screen{display:none}}@media only screen and (min-width:500px){.show-small-screen{display:none}}@media only screen and (min-width:601px){h4{font-size:25px}}@media only screen and (max-width:600px){h1{font-size:27px!important;margin-left:15%}h4{font-size:25px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadSessionWebSocketService"},{"__symbolic":"reference","name":"PadState"},{"__symbolic":"reference","name":"ParametersService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}]}],"canvasResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":["resultCanvas",{"static":false}]}]}],"videoPAD":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["videoPAD",{"static":false}]}]}],"fileForMatching":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["fileForMatching",{"static":false}]}]}],"wsEndpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"pingBaseUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"wsImageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"apiKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"wsFormatPicture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"wsFaceVerification":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"downloadFinalPictureOnSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"enableAutoMatching":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"autoStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"faceTrackingEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"faceTrackingOptionDesign":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"mirror":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"circleEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"colorProgressCircle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"circleRadius":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"formatFinalPicture":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"resultPictureWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"allowsMultipleRetries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":3}}]}],"videoWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"videoHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"frameWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"messagesEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"padFrequency":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"startTipsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"processFaceCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":114,"character":3}}]}],"processNoFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"processMultipleFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"turnFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":3}}]}],"expiredSessionErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":3}}]}],"noFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3}}]}],"multipleFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":132,"character":3}}]}],"successLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"startButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":138,"character":3}}]}],"restartButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"compareButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":144,"character":3}}]}],"enableCamButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3}}]}],"retryButtonLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"matchingSuccessLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":3}}]}],"matchingReadyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"matchingErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"noInternetConnectionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":162,"character":3}}]}],"userTooFarLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":165,"character":3}}]}],"userNotCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":168,"character":3}}]}],"faceDetectedHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":171,"character":3}}]}],"detectionFailureHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":174,"character":3}}]}],"internetLostHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":177,"character":3}}]}],"cameraHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":180,"character":3}}]}],"sessionExpiredHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":183,"character":3}}]}],"changeStateHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":186,"character":3}}]}],"matchingHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":189,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initPadSource":[{"__symbolic":"method"}],"initDatasFromVideoPAD":[{"__symbolic":"method"}],"startPAD":[{"__symbolic":"method"}],"emitChangeStateEvent":[{"__symbolic":"method"}],"resetUI":[{"__symbolic":"method"}],"compareWithReference":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":299,"character":3}}]}],"handleReferenceFile":[{"__symbolic":"method"}],"getVideoMaxHeight":[{"__symbolic":"method"}]}},"FacePadModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FacePadComponent"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":13,"character":4}],"exports":[{"__symbolic":"reference","name":"FacePadComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FacePadComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":15,"character":36},{"__symbolic":"reference","name":"PadState"}]}],"rotateAndCropFinalPicture":[{"__symbolic":"method"}],"manageFinalPicture":[{"__symbolic":"method"}],"compareWithReference":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"getMessage":[{"__symbolic":"method"}],"initMessage":[{"__symbolic":"method"}],"initLanguage":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"PadSessionWebSocketService"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}],"processPadSessionResponse":[{"__symbolic":"method"}],"prepareCallPADStart":[{"__symbolic":"method"}],"callPADStart":[{"__symbolic":"method"}],"doPADStart":[{"__symbolic":"method"}],"prepareCallPADContinue":[{"__symbolic":"method"}],"toBlob":[{"__symbolic":"method"}],"initPadSource":[{"__symbolic":"method"}],"leaving":[{"__symbolic":"method"}],"handleSuccess":[{"__symbolic":"method"}],"updateNetworkStatus":[{"__symbolic":"method"}],"isRequestPermissionState":[{"__symbolic":"method"}],"isInitialState":[{"__symbolic":"method"}],"isStartedState":[{"__symbolic":"method"}],"isProcessingState":[{"__symbolic":"method"}],"isErrorSessionState":[{"__symbolic":"method"}],"isErrorNoFaceState":[{"__symbolic":"method"}],"isErrorNoInternetConnection":[{"__symbolic":"method"}],"isErrorUserTooFar":[{"__symbolic":"method"}],"isErrorUserNotCenter":[{"__symbolic":"method"}],"isErrorMultipleFaceState":[{"__symbolic":"method"}],"isSuccessState":[{"__symbolic":"method"}],"isInvalidKeyState":[{"__symbolic":"method"}],"isMatchingReadyState":[{"__symbolic":"method"}],"isMatchingSuccessState":[{"__symbolic":"method"}],"isMatchingErrorState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"faceTracker":[{"__symbolic":"method"}],"faceTrackingReadyToStart":[{"__symbolic":"method"}],"faceTrackingHasToBeDrawn":[{"__symbolic":"method"}],"faceTrackingReady":[{"__symbolic":"method"}],"stopTracking":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"progressCircle":[{"__symbolic":"method"}],"grayScale":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"initDatasFromVideoPAD":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PadState"}]}],"isMobileDevice":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"id3-face-pad-messages","template":"<div class=\"mt-2\">\n <div *ngIf=\"padSessionService.isInitialState()\" class=\"alert alert-primary\" role=\"alert\">\n {{startTipsLabel}}\n </div>\n <div *ngIf=\"padSessionService.isStartedState() && processInstruction !== undefined || (padSessionService.isProcessingState() && processInstruction.length>0)\" class=\"alert alert-danger\" role=\"alert\">\n {{processInstruction}}\n </div>\n <div *ngIf=\"padSessionService.isProcessingState() && processInstruction.length==0\" class=\"alert alert-primary\" role=\"alert\">\n {{turnFaceLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorSessionState()\" class=\"alert alert-danger\" role=\"alert\">\n {{expiredSessionErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorNoFaceState()\" class=\"alert alert-danger\" role=\"alert\">\n {{noFaceErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorNoInternetConnection()\" class=\"alert alert-danger\" role=\"alert\">\n {{noInternetConnectionLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorUserTooFar()\" class=\"alert alert-primary\" role=\"alert\">\n {{userTooFarLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorUserNotCenter()\" class=\"alert alert-danger\" role=\"alert\">\n {{userNotCenterLabel}}\n </div>\n <div *ngIf=\"padSessionService.isErrorMultipleFaceState()\" class=\"alert alert-danger\" role=\"alert\">\n {{multipleFaceErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isSuccessState()\" class=\"alert alert-success\" role=\"alert\">\n {{successLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingReadyState()\" class=\"alert alert-primary\" role=\"alert\">\n {{matchingReadyLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingSuccessState()\" class=\"alert alert-success\" role=\"alert\">\n {{matchingSuccessLabel}}\n </div>\n <div *ngIf=\"padSessionService.isMatchingErrorState()\" class=\"alert alert-danger\" role=\"alert\">\n {{matchingErrorLabel}}\n </div>\n <div *ngIf=\"padSessionService.isInvalidKeyState()\" class=\"alert alert-danger\" role=\"alert\">\n The API Key is invalid. Please check your API key.\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"padSessionService":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"startTipsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"turnFaceLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"expiredSessionErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"noFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"noInternetConnectionLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"userTooFarLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"multipleFaceErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"successLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"matchingSuccessLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"matchingReadyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"matchingErrorLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"userNotCenterLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"processInstruction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"id3-network-status","template":"<svg class=\"clientConnectionLogo\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"60\" height=\"60\" viewBox=\"0 0 1280.000000 720.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,720.000000) scale(0.100000,-0.100000)\"\n stroke=\"none\">\n <path id=\"excellentConnection\" fill=\"#C0C0C0\" d=\"M6169 6226 c-2 -2 -51 -7 -109 -10 -439 -29 -987 -166 -1450 -363 -519 -221 -1027 -554 -1389 -911 -82 -81 -102 -107 -120 -157 -60 -160 18 -347 181 -436 59 -32 69 -34 158 -34 86 0 100 3 147 29 29 16 92 65 140 110 395 364 836 637 1336 825 152 57 374 124 497 151 372 81 500 94 900 95 309 0 362 -2 510 -23 303 -43 520 -95 805 -193 512 -175 1010 -472 1409 -841 137 -126 188 -152 301 -153 71 0 88 4 147 33 71 35 141 103 174 169 15 31 19 60 19 153 0 144 -7 159 -128 278 -328 322 -794 638 -1252 849 -504 232 -1051 376 -1610 423 -113 9 -657 14 -666 6z\"/>\n <path id=\"goodConnection\" fill=\"#C0C0C0\" d=\"M6195 4939 c-787 -66 -1561 -412 -2102 -941 -111 -108 -128 -145 -128 -273 0 -89 3 -105 27 -150 36 -67 107 -139 171 -172 40 -20 71 -27 132 -31 121 -6 169 16 297 134 123 114 297 247 428 329 224 139 526 268 760 325 47 11 101 25 120 30 19 5 100 19 180 32 207 32 550 32 762 0 561 -86 1063 -325 1473 -702 131 -120 182 -145 295 -145 72 0 93 4 141 28 63 30 146 112 178 174 46 91 43 224 -6 315 -50 92 -339 338 -576 492 -467 302 -966 482 -1522 546 -126 15 -499 20 -630 9z\"/>\n <path id=\"mediumConnection\" fill=\"#C0C0C0\" d=\"M6230 3653 c-103 -11 -321 -60 -439 -99 -316 -106 -596 -274 -819 -493 -118 -116 -137 -154 -136 -271 1 -69 6 -96 26 -140 53 -115 155 -197 273 -220 51 -10 71 -9 124 5 78 20 127 50 211 130 271 257 616 395 989 395 387 0 722 -136 1017 -412 100 -93 146 -113 264 -113 105 0 160 24 239 103 77 78 106 145 106 252 0 118 -27 171 -145 283 -330 315 -769 520 -1230 577 -78 9 -399 12 -480 3z\"/>\n <path id=\"lowConnection\" fill=\"#C0C0C0\" d=\"M6270 2447 c-135 -37 -242 -101 -342 -204 -226 -234 -276 -555 -132 -852 40 -82 60 -108 138 -186 103 -102 185 -154 301 -191 97 -31 258 -43 358 -25 241 42 470 233 565 471 107 270 39 583 -172 790 -78 77 -183 143 -285 181 -77 29 -99 32 -216 36 -112 3 -142 0 -215 -20z\"/>\n </g>\n</svg>","styles":[".clientConnectionLogo{top:0;right:0;position:absolute}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"PadSessionWebSocketService":"./lib/service/pad-session/pad-session-web-socket.service","ParametersService":"./lib/service/parameters/parameters.service","PadState":"./lib/state/pad.state","FacePadComponent":"./lib/component/face-pad.component","FacePadModule":"./lib/face-pad.module","ɵa":"./lib/service/face/face.service","ɵb":"./lib/service/message/message.service","ɵc":"./lib/service/pad-session/pad-session.service","ɵd":"./lib/service/tracker/tracker.service","ɵe":"./lib/service/pad-circle/pad-circle.service","ɵf":"./lib/service/video/video.service","ɵg":"./lib/service/device/device.service","ɵh":"./lib/component/messages/face-pad-messages.component","ɵi":"./lib/component/network-status/network-status.component"},"importAs":"@id3/face-pad"} |
@@ -96,2 +96,3 @@ import { OnInit, ElementRef, AfterViewInit, OnDestroy } from '@angular/core'; | ||
handleReferenceFile(event: any): void; | ||
getVideoMaxHeight(): string; | ||
} |
@@ -7,3 +7,3 @@ import { PadState } from '../../state/pad.state'; | ||
readonly videoState: VideoState; | ||
init(): void; | ||
isMobileDevice(): boolean; | ||
} |
{ | ||
"name": "@id3/face-pad", | ||
"version": "1.5.10", | ||
"version": "1.5.11", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "peerDependencies": { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
14927
1620297