edatalia-websign 3.5.6 → 3.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";async function signDocument(e,t,i,n=null){const o={DEV:"https://firmaronlineapi-dev.azurewebsites.net/eSign/v40/WebSign",SANDBOX:"https://restapi.firmar.info/eSign/v40/WebSign",PRE:"https://restapi.ecosignature.biz/eSign/v40/WebSign",PRO:"https://restapi.firmar.online/eSign/v40/WebSign",DEFAULT:"https://restapi.firmar.info/eSign/v40/WebSign"},r=n||o[i]||o.DEFAULT,a={method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},mode:"cors",body:JSON.stringify(e)};return fetch(r,a)}async function loadPdfLibIncrementalSave(){try{if(void 0!==window.PDFLib)return window.PDFLib;const e=await import("https://esm.sh/pdf-lib-incremental-save@1.17.4");return window.PDFLib=e,e}catch(e){throw new Error("No se pudo cargar pdf-lib-incremental-save: "+e.message)}}function fileToBase64(e){return new Promise(((t,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result.split(",")[1];t(e)},n.onerror=e=>{i(new Error("Error al leer el archivo: "+e.message))},n.readAsDataURL(e)}))}function downloadBlob(e,t="websign-document.pdf"){const i=URL.createObjectURL(e);let n=document.createElement("a");n.download=t,n.href=i,document.body.appendChild(n),n.click(),document.body.removeChild(n)}async function getBase64FromUrl(e){return new Promise(((t,i)=>{fetch(e).then((e=>e.blob().then((e=>{const n=new FileReader;n.onloadend=()=>{t(n.result.split(",")[1])},n.onerror=i,n.readAsDataURL(e)})))).catch((e=>{i(e)}))}))}async function transformFileTo(e,t){switch(t){case"base64":if(e instanceof Object&&e.pdfB64)return e.pdfB64;if(isBase64$1(e))return e;if(e instanceof File)return await fileToBase64(e);break;case"arraybuffer":if(e instanceof Object&&e.pdfB64)return base64ToArrayBuffer(e.pdfB64);if(isBase64$1(e))return base64ToArrayBuffer(e);if(e instanceof File)return fileToArrayBuffer(e);break;case"url":if(e instanceof Object)return e.pdfUrl;break;case"blob":if(isBase64$1(e)){const t=atob(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);const n=new Uint8Array(i);return new Blob([n],{type:"application/pdf"})}}}function isBase64$1(e){return/^[a-zA-Z0-9+/=]+$/.test(e)&&e.length%4==0}function base64ToArrayBuffer(e){let t=window.atob(e),i=t.length,n=new Uint8Array(i);for(let e=0;e<i;e++)n[e]=t.charCodeAt(e);return n.buffer}function fileToArrayBuffer(e){return new Promise(((t,i)=>{const n=new FileReader;n.onloadend=()=>{t(n.result)},n.onerror=e=>{i(new Error("Error al leer el archivo: "+e.message))},n.readAsArrayBuffer(e)}))}async function joinFilesIntoOneToDisplay(e){try{const{PDFDocument:t}=await loadPdfLibIncrementalSave(),i=await t.create();for(let n of e){const e=await n.arrayBuffer(),o=await t.load(e);(await i.copyPages(o,o.getPageIndices())).forEach((e=>i.addPage(e)))}const n=await i.save(),o=new Blob([n],{type:"application/pdf"});return new File([o],"combined.pdf",{type:"application/pdf"})}catch(e){throw new Error("No se han podido mostrar los documentos")}}async function saveIncrementalWithPdfLib(e,t){try{const i=await loadPdfLibIncrementalSave(),{PDFDocument:n,PDFTextField:o,PDFCheckBox:r,PDFRadioGroup:a,PDFDropdown:s,PDFOptionList:c}=i;let l=await t.pdfDocument.getData(),u=await n.load(l,{updateMetadata:!1}),p=u.takeSnapshot();const h=u.getForm();for(const[t,i]of e.entries()){const e=document.querySelector(`[data-element-id="${t}"]`),n=e?.getAttribute("name");if(!n)continue;let l;try{l=h.getField(n)}catch{console.warn(`Campo '${n}' no encontrado en el formulario PDF.`);continue}const u=i?.value;if(u&&l){switch(!0){case l instanceof o:"string"==typeof u&&l.setText(u);break;case l instanceof r:"boolean"==typeof u&&(u?l.check():l.uncheck());break;case l instanceof a:case l instanceof s:case l instanceof c:"string"==typeof u&&l.select(u);break;default:continue}p.markRefForSave(l.acroField.ref)}}h.updateFieldAppearances();const g=await u.saveIncremental(p),m=new Uint8Array(l.byteLength+g.byteLength);return m.set(new Uint8Array(l),0),m.set(g,l.byteLength),m}catch(e){throw console.log(e),new Error("No se han podido actualizar el documento con los cambios del formulario")}}function stringToBase64(e){return btoa(unescape(encodeURIComponent(e)))}var documentUtils=Object.freeze({__proto__:null,fileToBase64:fileToBase64,downloadBlob:downloadBlob,getBase64FromUrl:getBase64FromUrl,transformFileTo:transformFileTo,isBase64:isBase64$1,base64ToArrayBuffer:base64ToArrayBuffer,fileToArrayBuffer:fileToArrayBuffer,joinFilesIntoOneToDisplay:joinFilesIntoOneToDisplay,saveIncrementalWithPdfLib:saveIncrementalWithPdfLib,stringToBase64:stringToBase64}),t;async function getFirstDeviceConnected(){const e=await navigator.hid.getDevices();if(e.length>0)return e[0];try{let e=await com.WacomGSS.STU.UsbDevice.requestDevices();return e.length>0?e[0]:(console.warn("No Wacom devices found."),null)}catch(e){return console.error("Error requesting Wacom devices:",e),null}}async function requestUsbPermission(){try{const e=await navigator.usb.getDevices(),t=[1386,1027,10429,21827,12073];let i=e[0];return i||(i=await navigator.usb.requestDevice({filters:t.map((e=>({vendorId:e})))})),i}catch(e){console.log(e)}}async function getWacomEncodingMode(e,t,i=null){let n;const o=await com.WacomGSS.STU.Protocol.ProtocolHelper.simulateEncodingFlag(e.getProductId(),t.encodingFlag),r=await e.supportsWrite();return n=24===i&&o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:16===i&&o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:1===i?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit,n}function isWacomSupportingColor(e){return e&&e!==com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit}function ButtonEBP(){this.Bounds,this.Type}function STURectangle(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n,this.Contains=function(e){return e.x>=this.x&&e.x<=this.x+this.width&&e.y>=this.y&&e.y<=this.y+this.height}}function tabletToScreen(e,t,i){return{x:e.x*t,y:e.y*i}}function getPenOrientation(e){let t=0,i=0;if(void 0!==e.altitudeAngle&&void 0!==e.azimuthAngle)t=e.altitudeAngle,i=e.azimuthAngle;else{let n=function(e,t){const i=e*Math.PI/180,n=t*Math.PI/180;let o=0;if(0==e)t>0?o=Math.PI/2:t<0&&(o=3*Math.PI/2);else if(0==t)e<0&&(o=Math.PI);else if(90==Math.abs(e)||90==Math.abs(t))o=0;else{const e=Math.tan(i),t=Math.tan(n);o=Math.atan2(t,e),o<0&&(o+=2*Math.PI)}let r=0;r=90==Math.abs(e)||90==Math.abs(t)?0:0==e?Math.PI/2-Math.abs(n):0==t?Math.PI/2-Math.abs(i):Math.atan(1/Math.sqrt(Math.pow(Math.tan(i),2)+Math.pow(Math.tan(n),2)));return{altitudeAngle:r,azimuthAngle:o}}(e.tiltX,e.tiltY);t=n.altitudeAngle,i=n.azimuthAngle}return{altitude:t,azimuth:i,twist:e.twist}}function rgb3216(e,t,i){return(248&e)<<8|(252&t)<<3|(248&i)>>3}function hexToRgb(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function isCompatibleTabletScreen(e){const t=(e.label||"").toLowerCase();return["dtu","nt10","dth","1070","citrix"].some((e=>t.includes(e)))}function requestLocation(e=5e3){return navigator.geolocation?new Promise((t=>{const i=setTimeout((()=>t(null)),e);navigator.geolocation.getCurrentPosition((e=>{clearTimeout(i),t(e)}),(()=>{clearTimeout(i),t(null)}))})):Promise.resolve(null)}async function getBioData(e,t,i,n,o,r,a,s,c,l,u,p,h=null,g=null){n.every((e=>1===e.p))&&(applyPseudoPressure(n),smoothPressure(n));let m=!1;var d=new Array;for(let e=0;e<n.length;e++)(n[e].isDown||m)&&(m=!0,d.push({x:Math.floor(n[e].x),y:Math.floor(n[e].y),press:Math.floor(1e3*n[e].p),sw:"down"==n[e].type||"move"==n[e].type?1:0,time:n[e].t}));const S=`WebSign|${t}|SHA2-512 PDF: ${i}`,f=await buildDigitizerInfo(e,l,u,h);let _="";if(n.length>0){const e={longitude:g&&g.coords.longitude||0,latitude:g&&g.coords.latitude||0,altitude:g&&g.coords.altitude||0,accuracy:g&&g.coords.accuracy||0,time:g&&g.timestamp||0};_=btoa(`<GPS>${e.longitude};${e.latitude};${e.altitude};${e.accuracy};${e.time}</GPS>`)}return[{MAX_X:a,MAX_Y:s,MAX_PRESS:1e3,LCD_WIDTH:a,LCD_HEIGHT:s,LX:0,RX:a,TY:0,BY:s,TIME_START:getDateBioFormat(o),TIME_END:getDateBioFormat(new Date),HARDWARE:btoa(f),SOFTWARE:btoa(S),EXTRA:_,VAR:await getVar(e,p)},d,r]}async function buildDigitizerInfo(e,t,i,n){const o=n?.isSignotecDevice?.(),r=e.signatureType;if(o){const e=t?.information||t;return`${e?.modelName||"Signotec"}|${e?.firmwareVersion||"N/A"}|${e?.serialNumber||"Unknown"}`}if(t&&"dtu"!==r){const{modelName:e,firmwareMajorVersion:n,firmwareMinorVersion:o}=t,{uid:r,uid2:a}=i||{},s=parseInt(o)||0;return`${e}|${`${n}.${s>>4&15}.${15&s}`}|${a}|${r}`}if(n&&"dtu"===r){const{modelName:e,firmwareVersion:i,serialNumber:n}=t||{};return`${e}|${i}|${n}`}if("dtu"===r){const e=await getDeviceSerial(),t=await getDTUScreen();return`${t?.label||"Unknown DTU Device"}|${navigator.userAgent}|${e}`}return`ecoSignatureHTML5|${navigator.userAgent}`}async function getVar(e,t){var i="Variables resueltas:|||";if(e.wacom.enableInitialEbp&&e.wacom.varInitialEbp&&(i+=e.wacom.varInitialEbp+"|||"),e.wacom.enableEbp&&"display"!=e.signatureType){let n,o;n=t?e.wacom.colorEbp:e.wacom.blackAndWhiteEbp,i+=e.wacom.varEbp,o=isBase64(n)?n:await getBase64FromUrl(n),i+="|||URL EBP=[LOCAL]|||SHA2-512 EBP="+await calculateSha2(o)}return btoa(i.replaceAll("|||","\n"))}function isBase64(e){return/^[A-Za-z0-9+/]+={0,2}$/.test(e)&&e.length%4==0}function convertToPlainBioData(e){var t="";t+="MAX_X;MAX_Y;MAX_PRESS;LCD_WIDTH;LCD_HEIGHT;LX;RX;TY;BY;TIME_START;TIME_END;HARDWARE;SOFTWARE;EXTRA;VAR\n",t+=e[0].MAX_X+";"+e[0].MAX_Y+";"+e[0].MAX_PRESS+";"+e[0].LCD_WIDTH+";"+e[0].LCD_HEIGHT+";"+e[0].LX+";"+e[0].RX+";"+e[0].TY+";"+e[0].BY+";"+e[0].TIME_START+";"+e[0].TIME_END+";"+e[0].HARDWARE+";"+e[0].SOFTWARE+";"+e[0].EXTRA+";"+e[0].VAR+"\n",t+="X;Y;PRESS;SW;TIME\n";for(let i=0;i<e[1].length;i++)t+=e[1][i].x+";"+e[1][i].y+";"+e[1][i].press+";"+e[1][i].sw+";"+e[1][i].time+"\n";return t}function getDateBioFormat(e){var t=e.getFullYear(),i=e.getMonth()<9?"0"+(e.getMonth()+1):e.getMonth()+1,n=e.getDate()<10?"0"+e.getDate():e.getDate(),o=e.getHours()<10?"0"+e.getHours():e.getHours(),r=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes(),a=e.getSeconds()<10?"0"+e.getSeconds():e.getSeconds();return"".concat(n).concat("/").concat(i).concat("/").concat(t).concat("@").concat(o).concat(":").concat(r).concat(":").concat(a)}async function calculateSHA512(e,t){try{const t=await crypto.subtle.digest("SHA-512",e);return Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){console.error("Error al calcular el hash:",e),t("Error al calcular el hash, necesario HTTPS")}}async function calculateSha2(e){const t=window.atob(e),i=t.length;let n=new Uint8Array(i);for(var o=0;o<i;o++)n[o]=t.charCodeAt(o);return crypto.subtle.digest("SHA-512",n.buffer).then((e=>Array.prototype.map.call(new Uint8Array(e),(e=>("00"+e.toString(16)).slice(-2))).join("")))}async function getDeviceId(e,t=null,i=null,n=null){switch(e){case"stu":let e="";return i&&i.modelName&&(e=i.modelName),0!==t?.uid2?`${e}-${t?.uid2}`:`${e}-${t?.uid}`;case"display":return getOrCreateDeviceUUID("displayDeviceId",null);case"dtu":if(n){const e=n.getCurrentDeviceInfo().availableDevices;return`${e[0].model}-${e[0].serialNumber}`}return await getDTUDeviceWithScreen();default:return null}}async function getDeviceSerial(){try{const e=(await navigator.usb.getDevices())[0];return e&&e.serialNumber?e.serialNumber:null}catch(e){return console.error("Error al obtener el dispositivo:",e),null}}function normalizeSize(e){return e<=10?e:e>10?e/100:e}function applyPseudoPressure(e){for(const t of e){if(null==t.width||null==t.height)continue;const e=normalizeSize((t.width+t.height)/3);let i=e>1?1:e;const n=.01;i=Math.max(n,i),console.log(i),t.p=i}}function smoothPressure(e,t=1){if(!e||e.length<2)return;const i=e.map((e=>e.p));for(let n=0;n<e.length;n++){let o=0,r=0;for(let e=n-t;e<=n+t;e++)e>=0&&e<i.length&&(o+=i[e],r++);e[n].p=Number((o/r).toFixed(4))}}async function getDTUDeviceWithScreen(){try{const e=await getDeviceSerial();if(!e)return null;const t=await getDTUScreen();if(t){return`${t.label||"Unknown DTU Device"}-${e}`}return null}catch(e){return console.error("Error en la obtención del dispositivo DTU con pantalla:",e),null}}async function getDTUScreen(){try{const e=await window.getScreenDetails();return e.screens.find((e=>isCompatibleTabletScreen(e)))}catch(e){return console.error("Error al obtener los detalles de la pantalla DTU:",e),null}}function getOrCreateDeviceUUID(e,t){let i=localStorage.getItem(e);return i||(i=t&&t.trim()?`${t}-${crypto.randomUUID()}`:crypto.randomUUID(),localStorage.setItem(e,i)),i}function ecoBioPreSignEnc(e,t=null){let i;i=null===t?"-----BEGIN CERTIFICATE-----MIIFmTCCBIGgAwIBAgICMTQwDQYJKoZIhvcNAQEFBQAwgcgxCzAJBgNVBAYTAkVTMREwDwYDVQQIEwhHaXB1emNvYTEWMBQGA1UEBxMNU2FuIFNlYmFzdGlhbjEkMCIGA1UEChMbZWRhdGFsaWEgZGF0YSBzb2x1dGlvbnMsIFNMMSAwHgYDVQQLExdJbm5vdmFjaW9uIHkgVGVjbm9sb2ftYTEgMB4GA1UEAxMXZWRhdGFsaWEgZGF0YSBzb2x1dGlvbnMxJDAiBgkqhkiG9w0BCQETFWVkYXRhbGlhQGVkYXRhbGlhLmNvbTAgFw0xMDAxMDEwMDAwMDBaGA8yMDUwMTIzMTAwMDAwMFowgb4xCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlHdWlwdXpjb2ExFjAUBgNVBAcTDVNhbiBTZWJhc3RpYW4xJDAiBgNVBAoTG2VkYXRhbGlhIGRhdGEgc29sdXRpb25zLCBTTDEVMBMGA1UECxMMZWNvQmlvbWV0cmljMSAwHgYDVQQDExdlZGF0YWxpYSBkYXRhIHNvbHV0aW9uczEkMCIGCSqGSIb3DQEJARMVZWRhdGFsaWFAZWRhdGFsaWEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAplaDksTwFwWVYpCPgPDbwW+u8ugOtSG0Iycfciqj9BJxcv0fqYICWapUHtLLvQLJvRbN+OxLPI0XAygfEbBkWKT9MqRyCw1hB0DRj01+GHSgN1V5chIc1++XSifvIbZDW+rXV3kYEJC1xXvXy2q+Ol75Q61+L98nCANBmDx1hMcxrkumbysvfLJXOQLtglUGjk10E9hsX0nH7PgUxrbuG+Qwi0pMyl3ijmAuSQnNm+4poq7svT9/b8oDleYaaAguu2/1HoBEGYo+nKn2paNfnhxM+Eax0nFo/T4JJ6TJlOUAIlRQTuE1LgLChJM69holeBeVHpEAXGdtrQXbMGgGLwIDAQABo4IBkTCCAY0wIAYDVR0OAQEABBYEFLMOxbM9CYjDC9zvstzWHl7Xchu0MBIGA1UdEwEBAAQIMAYBAQACAQAwDwYDVR0PAQEABAUDAwDwADAuBgNVHRABAQAEJDAigA8yMDEwMDEwMTAwMDAwMFqBDzIwNTAxMjMxMDAwMDAwWjCBygYDVR0gAQEABIG/MIG8MIG5BgNVHSAwgbEwPAYIKwYBBQUHAgEWMGh0dHA6Ly93d3cua3NpdGRpZ2l0YWwuY29tL2NvbnZlbmlvL3BvbF9jZXJ0LnBkZjBxBggrBgEFBQcCAjBlMAQWADAAGl1DZXJ0aWZpY2FkbyBleHBlZGlkbyBjb24gdXRpbGlkYWQgcHJvcGlldGFyaWEgZGUgS1NJIFRlY25vbG9n7WEgRGlnaXRhbC4gd3d3LmtzaXRkaWdpdGFsLmNvbSAwIwYDVR0RAQEABBkwF4EVZWRhdGFsaWFAZWRhdGFsaWEuY29tMAwGA1UdJQEBAAQCMAAwFAYJYIZIAYb4QgEBAQEABAQDAgCgMA0GCSqGSIb3DQEBBQUAA4IBAQDToKovX3vbwsZ80fj8fWLDmdRkKG4FHFkbVMTOYi9MFKvI5jb8E7dOVG/EhJqfQH5CdEiUmpRiWayiTKo0XxDh/IAnqswOU5DMVyjBxbx11vedjALVbndPpXpOCpmgGf7UlPo1mBAPkwKrU3gVyYd9NxpYW414BoXAwTfUOwov57Q3+R/NiVFwFHFXSHxigtzJG5nFY0U2XrcCYWSl7jmdByhKZur0cKnkg+Z9rGETyIJI46DdluCTZvxd30ZXvq+bzMiTXx+QDFg4/zHuhx3V//dsUd2NBv0Ca/njJyK8I2QvQ38IVNfeywPnT5vo01D3qT2UN8jC7wW2mAxmPpzO-----END CERTIFICATE-----":t;const n=btoa(i);return new Promise(((t,i)=>{const r=e,a=[...r.split("\n").slice(0,2).join("\n")].map((e=>e.charCodeAt(0)));let s=new Uint8Array(a);const c=pako.deflate(s),l=btoa(String.fromCharCode.apply(null,Array.from(c)));s=function(e){const t=e.split("\n").filter((e=>e.length>0)),i=t[1].split(";"),n=parseInt(i[0],10),r=parseInt(i[1],10),a=parseInt(i[2],10);let s=[];Array.prototype.push.apply(s,[..."SDI"].map((e=>e.charCodeAt(0)))),s.push(0),Array.prototype.push.apply(s,[..." 10"].map((e=>e.charCodeAt(0)))),s.push(0),s.push(192),s.push(192),s.push(96),s=o(0,s),s=o(n,s),s.push(96),s=o(0,s),s=o(r,s),s.push(96),s=o(0,s),s=o(a,s),s.push(96),s.push(0),s.push(0),s.push(255),s.push(255),s.push(0),s.push(1),s=function(e,t){const i=new Uint32Array(1);i[0]=e;const n=new Uint8Array(i.buffer),o=new Uint8Array(n.length),r=n.length;if(67305985===new Uint32Array(new Uint8Array([1,2,3,4]).buffer)[0]){for(let e=0;e<r;e++)o[r-e-1]=n[e];for(let e=1;e<o.length;e++)t.push(o[e])}else for(let e=0;e<o.length-1;e++)t.push(o[e]);return t}(t.length-3,s);const c=32768;for(let e=3;e<t.length;e++){const i=t[e].split(";");s=o(parseInt(i[0],10)+c,s),s=o(parseInt(i[1],10)+c,s),s=o(parseInt(i[2],10),s),s=o(parseInt(i[4],10),s)}const l=t[1].length;return s=o(l,s),Array.prototype.push.apply(s,[...t[1]].map((e=>e.charCodeAt(0)))),new Uint8Array(s)}(r);const u=pako.deflate(s),p=atob(n).replace(/(-----(BEGIN|END) CERTIFICATE-----|\n)/g,""),h=atob(p),g=(m=h,new Uint8Array([...m].map((e=>e.charCodeAt(0)))).buffer);var m;const d=org.pkijs.fromBER(g),S=new org.pkijs.simpl.CERT({schema:d.result}),f=new org.pkijs.simpl.CMS_ENVELOPED_DATA;f.addRecipientByCertificate(S,{oaepHasAlgorithm:"SHA-512"}),f.encrypt({name:"AES-CBC",length:256},u.buffer).then((()=>{const e=new org.pkijs.simpl.CMS_CONTENT_INFO;e.contentType="1.2.840.113549.1.7.3",e.content=f.toSchema();const i=e.toSchema().toBER(!1),n=String.fromCharCode.apply(null,Array.from(new Uint8Array(i))),o=btoa(n);t({public:l,private:o})})).catch((e=>{i(e)}))}));function o(e,t){const i=new Uint16Array(1);i[0]=e;const n=new Uint8Array(i.buffer);let o=new Uint8Array(n.length);const r=n.length;if(67305985===new Uint32Array(new Uint8Array([1,2,3,4]).buffer)[0])for(let e=0;e<r;e++)o[r-e-1]=n[e];else o=n;for(const e of o)t.push(e);return t}}function pngToJpeg(e){return new Promise(((t,i)=>{var n=new Image;n.onload=function(){var e=document.createElement("canvas");e.width=n.naturalWidth,e.height=n.naturalHeight;var i=e.getContext("2d");i.fillStyle="#ffffff",i.fillRect(0,0,e.width,e.height),i.drawImage(n,0,0,n.naturalWidth,n.naturalHeight);var o=e.toDataURL("image/jpeg",.4);t(o.substr(o.indexOf(",")+1))},n.src=e}))}async function loadImageFromPath(e){const t=new Image;return t.crossOrigin="Anonymous",t.src=e,t.complete||await new Promise((e=>{t.onload=()=>{e(t)},t.onerror=()=>{e()}})),t}async function drawImageToCanvas(e){return new Promise(((t,i)=>{let n=new Image;n.onload=()=>{let e=document.createElement("canvas");e.width=n.width,e.height=n.height,e.getContext("2d").drawImage(n,0,0),t(e)},n.onerror=i,n.src=e}))}function getImageDimensions(e){return new Promise(((t,i)=>{const n=new Image;n.onload=()=>t({width:n.naturalWidth,height:n.naturalHeight}),n.onerror=i,n.src=e}))}!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=e()}window.pako=e()}((function(){return function e(t,i,n){function o(a,s){if(!i[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(r)return r(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=i[a]={exports:{}};t[a][0].call(u.exports,(function(e){var i=t[a][1][e];return o(i||e)}),u,u.exports,e,t,i,n)}return i[a].exports}for(var r="function"==typeof require&&require,a=0;a<n.length;a++)o(n[a]);return o}({1:[function(e,t,i){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;i.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var n in i)i.hasOwnProperty(n)&&(e[n]=i[n])}}return e},i.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,i,n,o){if(t.subarray&&e.subarray)e.set(t.subarray(i,i+n),o);else for(var r=0;r<n;r++)e[o+r]=t[i+r]},flattenChunks:function(e){var t,i,n,o,r,a;for(n=0,t=0,i=e.length;t<i;t++)n+=e[t].length;for(a=new Uint8Array(n),o=0,t=0,i=e.length;t<i;t++)r=e[t],a.set(r,o),o+=r.length;return a}},r={arraySet:function(e,t,i,n,o){for(var r=0;r<n;r++)e[o+r]=t[i+r]},flattenChunks:function(e){return[].concat.apply([],e)}};i.setTyped=function(e){e?(i.Buf8=Uint8Array,i.Buf16=Uint16Array,i.Buf32=Int32Array,i.assign(i,o)):(i.Buf8=Array,i.Buf16=Array,i.Buf32=Array,i.assign(i,r))},i.setTyped(n)},{}],2:[function(e,t,i){function n(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&r))return String.fromCharCode.apply(null,o.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}var o=e("./common"),r=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(e){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){a=!1}for(var s=new o.Buf8(256),c=0;c<256;c++)s[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;s[254]=s[254]=1,i.string2buf=function(e){var t,i,n,r,a,s=e.length,c=0;for(r=0;r<s;r++)55296==(64512&(i=e.charCodeAt(r)))&&r+1<s&&(56320==(64512&(n=e.charCodeAt(r+1)))&&(i=65536+(i-55296<<10)+(n-56320),r++)),c+=i<128?1:i<2048?2:i<65536?3:4;for(t=new o.Buf8(c),a=0,r=0;a<c;r++)55296==(64512&(i=e.charCodeAt(r)))&&r+1<s&&(56320==(64512&(n=e.charCodeAt(r+1)))&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|63&i):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|63&i):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|63&i);return t},i.buf2binstring=function(e){return n(e,e.length)},i.binstring2buf=function(e){for(var t=new o.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t},i.buf2string=function(e,t){var i,o,r,a,c=t||e.length,l=new Array(2*c);for(o=0,i=0;i<c;)if((r=e[i++])<128)l[o++]=r;else if((a=s[r])>4)l[o++]=65533,i+=a-1;else{for(r&=2===a?31:3===a?15:7;a>1&&i<c;)r=r<<6|63&e[i++],a--;a>1?l[o++]=65533:r<65536?l[o++]=r:(r-=65536,l[o++]=55296|r>>10&1023,l[o++]=56320|1023&r)}return n(l,o)},i.utf8border=function(e,t){var i;for((t=t||e.length)>e.length&&(t=e.length),i=t-1;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+s[e[i]]>t?i:t}},{"./common":1}],3:[function(e,t,i){t.exports=function(e,t,i,n){for(var o=65535&e,r=e>>>16&65535,a=0;0!==i;){i-=a=i>2e3?2e3:i;do{r=r+(o=o+t[n++]|0)|0}while(--a);o%=65521,r%=65521}return o|r<<16}},{}],4:[function(e,t,i){var n=function(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t}();t.exports=function(e,t,i,o){var r=n,a=o+i;e^=-1;for(var s=o;s<a;s++)e=e>>>8^r[255&(e^t[s])];return~e}},{}],5:[function(e,t,i){function n(e,t){return e.msg=C[t],t}function o(e){return(e<<1)-(e>4?9:0)}function r(e){for(var t=e.length;--t>=0;)e[t]=0}function a(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(E.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))}function s(e,t){w._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a(e.strm)}function c(e,t){e.pending_buf[e.pending++]=t}function l(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function u(e,t,i,n){var o=e.avail_in;return o>n&&(o=n),0===o?0:(e.avail_in-=o,E.arraySet(t,e.input,e.next_in,o,i),1===e.state.wrap?e.adler=I(e.adler,t,o,i):2===e.state.wrap&&(e.adler=T(e.adler,t,o,i)),e.next_in+=o,e.total_in+=o,o)}function p(e,t){var i,n,o=e.max_chain_length,r=e.strstart,a=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-ie?e.strstart-(e.w_size-ie):0,l=e.window,u=e.w_mask,p=e.prev,h=e.strstart+te,g=l[r+a-1],m=l[r+a];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(l[(i=t)+a]===m&&l[i+a-1]===g&&l[i]===l[r]&&l[++i]===l[r+1]){r+=2,i++;do{}while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<h);if(n=te-(h-r),r=h-te,n>a){if(e.match_start=t,a=n,n>=s)break;g=l[r+a-1],m=l[r+a]}}}while((t=p[t&u])>c&&0!=--o);return a<=e.lookahead?a:e.lookahead}function h(e){var t,i,n,o,r,a=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=a+(a-ie)){E.arraySet(e.window,e.window,a,a,0),e.match_start-=a,e.strstart-=a,e.block_start-=a,t=i=e.hash_size;do{n=e.head[--t],e.head[t]=n>=a?n-a:0}while(--i);t=i=a;do{n=e.prev[--t],e.prev[t]=n>=a?n-a:0}while(--i);o+=a}if(0===e.strm.avail_in)break;if(i=u(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=i,e.lookahead+e.insert>=ee)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=(e.ins_h<<e.hash_shift^e.window[r+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[r+ee-1])&e.hash_mask,e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<ee)););}while(e.lookahead<ie&&0!==e.strm.avail_in)}function g(e,t){for(var i,n;;){if(e.lookahead<ie){if(h(e),e.lookahead<ie&&t===A)return pe;if(0===e.lookahead)break}if(i=0,e.lookahead>=ee&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-ie&&(e.match_length=p(e,i)),e.match_length>=ee)if(n=w._tr_tally(e,e.strstart-e.match_start,e.match_length-ee),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ee){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=w._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=e.strstart<ee-1?e.strstart:ee-1,t===R?(s(e,!0),0===e.strm.avail_out?ge:me):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function m(e,t){for(var i,n,o;;){if(e.lookahead<ie){if(h(e),e.lookahead<ie&&t===A)return pe;if(0===e.lookahead)break}if(i=0,e.lookahead>=ee&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ee-1,0!==i&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-ie&&(e.match_length=p(e,i),e.match_length<=5&&(e.strategy===L||e.match_length===ee&&e.strstart-e.match_start>4096)&&(e.match_length=ee-1)),e.prev_length>=ee&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-ee,n=w._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-ee),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=ee-1,e.strstart++,n&&(s(e,!1),0===e.strm.avail_out))return pe}else if(e.match_available){if((n=w._tr_tally(e,0,e.window[e.strstart-1]))&&s(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return pe}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=w._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ee-1?e.strstart:ee-1,t===R?(s(e,!0),0===e.strm.avail_out?ge:me):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function d(e,t){for(var i,n,o,r,a=e.window;;){if(e.lookahead<=te){if(h(e),e.lookahead<=te&&t===A)return pe;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=ee&&e.strstart>0&&((n=a[o=e.strstart-1])===a[++o]&&n===a[++o]&&n===a[++o])){r=e.strstart+te;do{}while(n===a[++o]&&n===a[++o]&&n===a[++o]&&n===a[++o]&&n===a[++o]&&n===a[++o]&&n===a[++o]&&n===a[++o]&&o<r);e.match_length=te-(r-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ee?(i=w._tr_tally(e,1,e.match_length-ee),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=w._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?ge:me):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function S(e,t){for(var i;;){if(0===e.lookahead&&(h(e),0===e.lookahead)){if(t===A)return pe;break}if(e.match_length=0,i=w._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?ge:me):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function f(e,t,i,n,o){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=o}function _(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=K,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*X),this.dyn_dtree=new E.Buf16(2*(2*Q+1)),this.bl_tree=new E.Buf16(2*(2*Y+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(Z+1),this.heap=new E.Buf16(2*J+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*J+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function y(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=F,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?oe:le,e.adler=2===t.wrap?0:1,t.last_flush=A,w._tr_init(t),D):n(e,U)}function b(e){var t=y(e);return t===D&&function(e){e.window_size=2*e.w_size,r(e.head),e.max_lazy_match=v[e.level].max_lazy,e.good_match=v[e.level].good_length,e.nice_match=v[e.level].nice_length,e.max_chain_length=v[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ee-1,e.match_available=0,e.ins_h=0}(e.state),t}function k(e,t,i,o,r,a){if(!e)return U;var s=1;if(t===B&&(t=6),o<0?(s=0,o=-o):o>15&&(s=2,o-=16),r<1||r>V||i!==K||o<8||o>15||t<0||t>9||a<0||a>W)return n(e,U);8===o&&(o=9);var c=new _;return e.state=c,c.strm=e,c.wrap=s,c.gzhead=null,c.w_bits=o,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=r+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+ee-1)/ee),c.window=new E.Buf8(2*c.w_size),c.head=new E.Buf16(c.hash_size),c.prev=new E.Buf16(c.w_size),c.lit_bufsize=1<<r+6,c.pending_buf_size=4*c.lit_bufsize,c.pending_buf=new E.Buf8(c.pending_buf_size),c.d_buf=1*c.lit_bufsize,c.l_buf=3*c.lit_bufsize,c.level=t,c.strategy=a,c.method=i,b(e)}var v,E=e("../utils/common"),w=e("./trees"),I=e("./adler32"),T=e("./crc32"),C=e("./messages"),A=0,j=1,P=3,R=4,N=5,D=0,O=1,U=-2,x=-3,G=-5,B=-1,L=1,$=2,M=3,W=4,H=0,F=2,K=8,V=9,q=15,z=8,J=286,Q=30,Y=19,X=2*J+1,Z=15,ee=3,te=258,ie=te+ee+1,ne=32,oe=42,re=69,ae=73,se=91,ce=103,le=113,ue=666,pe=1,he=2,ge=3,me=4,de=3;v=[new f(0,0,0,0,(function(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(h(e),0===e.lookahead&&t===A)return pe;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+i;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,s(e,!1),0===e.strm.avail_out))return pe;if(e.strstart-e.block_start>=e.w_size-ie&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?ge:me):(e.strstart>e.block_start&&(s(e,!1),e.strm.avail_out),pe)})),new f(4,4,8,4,g),new f(4,5,16,8,g),new f(4,6,32,32,g),new f(4,4,16,16,m),new f(8,16,32,32,m),new f(8,16,128,128,m),new f(8,32,128,256,m),new f(32,128,258,1024,m),new f(32,258,258,4096,m)],i.deflateInit=function(e,t){return k(e,t,K,q,z,H)},i.deflateInit2=k,i.deflateReset=b,i.deflateResetKeep=y,i.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?U:(e.state.gzhead=t,D):U},i.deflate=function(e,t){var i,s,u,p;if(!e||!e.state||t>N||t<0)return e?n(e,U):U;if(s=e.state,!e.output||!e.input&&0!==e.avail_in||s.status===ue&&t!==R)return n(e,0===e.avail_out?G:U);if(s.strm=e,i=s.last_flush,s.last_flush=t,s.status===oe)if(2===s.wrap)e.adler=0,c(s,31),c(s,139),c(s,8),s.gzhead?(c(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),c(s,255&s.gzhead.time),c(s,s.gzhead.time>>8&255),c(s,s.gzhead.time>>16&255),c(s,s.gzhead.time>>24&255),c(s,9===s.level?2:s.strategy>=$||s.level<2?4:0),c(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(c(s,255&s.gzhead.extra.length),c(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=T(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=re):(c(s,0),c(s,0),c(s,0),c(s,0),c(s,0),c(s,9===s.level?2:s.strategy>=$||s.level<2?4:0),c(s,de),s.status=le);else{var h=K+(s.w_bits-8<<4)<<8;h|=(s.strategy>=$||s.level<2?0:s.level<6?1:6===s.level?2:3)<<6,0!==s.strstart&&(h|=ne),h+=31-h%31,s.status=le,l(s,h),0!==s.strstart&&(l(s,e.adler>>>16),l(s,65535&e.adler)),e.adler=1}if(s.status===re)if(s.gzhead.extra){for(u=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending!==s.pending_buf_size));)c(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=ae)}else s.status=ae;if(s.status===ae)if(s.gzhead.name){u=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending===s.pending_buf_size)){p=1;break}p=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,c(s,p)}while(0!==p);s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),0===p&&(s.gzindex=0,s.status=se)}else s.status=se;if(s.status===se)if(s.gzhead.comment){u=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending===s.pending_buf_size)){p=1;break}p=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,c(s,p)}while(0!==p);s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),0===p&&(s.status=ce)}else s.status=ce;if(s.status===ce&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(e),s.pending+2<=s.pending_buf_size&&(c(s,255&e.adler),c(s,e.adler>>8&255),e.adler=0,s.status=le)):s.status=le),0!==s.pending){if(a(e),0===e.avail_out)return s.last_flush=-1,D}else if(0===e.avail_in&&o(t)<=o(i)&&t!==R)return n(e,G);if(s.status===ue&&0!==e.avail_in)return n(e,G);if(0!==e.avail_in||0!==s.lookahead||t!==A&&s.status!==ue){var g=s.strategy===$?S(s,t):s.strategy===M?d(s,t):v[s.level].func(s,t);if(g!==ge&&g!==me||(s.status=ue),g===pe||g===ge)return 0===e.avail_out&&(s.last_flush=-1),D;if(g===he&&(t===j?w._tr_align(s):t!==N&&(w._tr_stored_block(s,0,0,!1),t===P&&(r(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(e),0===e.avail_out))return s.last_flush=-1,D}return t!==R?D:s.wrap<=0?O:(2===s.wrap?(c(s,255&e.adler),c(s,e.adler>>8&255),c(s,e.adler>>16&255),c(s,e.adler>>24&255),c(s,255&e.total_in),c(s,e.total_in>>8&255),c(s,e.total_in>>16&255),c(s,e.total_in>>24&255)):(l(s,e.adler>>>16),l(s,65535&e.adler)),a(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?D:O)},i.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==oe&&t!==re&&t!==ae&&t!==se&&t!==ce&&t!==le&&t!==ue?n(e,U):(e.state=null,t===le?n(e,x):D):U},i.deflateSetDictionary=function(e,t){var i,n,o,a,s,c,l,u,p=t.length;if(!e||!e.state)return U;if(2===(a=(i=e.state).wrap)||1===a&&i.status!==oe||i.lookahead)return U;for(1===a&&(e.adler=I(e.adler,t,p,0)),i.wrap=0,p>=i.w_size&&(0===a&&(r(i.head),i.strstart=0,i.block_start=0,i.insert=0),u=new E.Buf8(i.w_size),E.arraySet(u,t,p-i.w_size,i.w_size,0),t=u,p=i.w_size),s=e.avail_in,c=e.next_in,l=e.input,e.avail_in=p,e.next_in=0,e.input=t,h(i);i.lookahead>=ee;){n=i.strstart,o=i.lookahead-(ee-1);do{i.ins_h=(i.ins_h<<i.hash_shift^i.window[n+ee-1])&i.hash_mask,i.prev[n&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=n,n++}while(--o);i.strstart=n,i.lookahead=ee-1,h(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ee-1,i.match_available=0,e.next_in=c,e.input=l,e.avail_in=s,i.wrap=a,D},i.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":4,"./messages":6,"./trees":7}],6:[function(e,t,i){t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],7:[function(e,t,i){function n(e){for(var t=e.length;--t>=0;)e[t]=0}function o(e,t,i,n,o){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=o,this.has_stree=e&&e.length}function r(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function a(e){return e<256?z[e]:z[256+(e>>>7)]}function s(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function c(e,t,i){e.bi_valid>x-i?(e.bi_buf|=t<<e.bi_valid&65535,s(e,e.bi_buf),e.bi_buf=t>>x-e.bi_valid,e.bi_valid+=i-x):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function l(e,t,i){c(e,i[2*t],i[2*t+1])}function u(e,t){var i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1}function p(e,t,i){var n,o,r=new Array(U+1),a=0;for(n=1;n<=U;n++)r[n]=a=a+i[n-1]<<1;for(o=0;o<=t;o++){var s=e[2*o+1];0!==s&&(e[2*o]=u(r[s]++,s))}}function h(e){var t;for(t=0;t<R;t++)e.dyn_ltree[2*t]=0;for(t=0;t<N;t++)e.dyn_dtree[2*t]=0;for(t=0;t<D;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*B]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function g(e){e.bi_valid>8?s(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function m(e,t,i,n){var o=2*t,r=2*i;return e[o]<e[r]||e[o]===e[r]&&n[t]<=n[i]}function d(e,t,i){for(var n=e.heap[i],o=i<<1;o<=e.heap_len&&(o<e.heap_len&&m(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!m(t,n,e.heap[o],e.depth));)e.heap[i]=e.heap[o],i=o,o<<=1;e.heap[i]=n}function S(e,t,i){var n,o,r,s,u=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*u]<<8|e.pending_buf[e.d_buf+2*u+1],o=e.pending_buf[e.l_buf+u],u++,0===n?l(e,o,t):(l(e,(r=J[o])+P+1,t),0!==(s=W[r])&&c(e,o-=Q[r],s),l(e,r=a(--n),i),0!==(s=H[r])&&c(e,n-=Y[r],s))}while(u<e.last_lit);l(e,B,t)}function f(e,t){var i,n,o,r=t.dyn_tree,a=t.stat_desc.static_tree,s=t.stat_desc.has_stree,c=t.stat_desc.elems,l=-1;for(e.heap_len=0,e.heap_max=O,i=0;i<c;i++)0!==r[2*i]?(e.heap[++e.heap_len]=l=i,e.depth[i]=0):r[2*i+1]=0;for(;e.heap_len<2;)r[2*(o=e.heap[++e.heap_len]=l<2?++l:0)]=1,e.depth[o]=0,e.opt_len--,s&&(e.static_len-=a[2*o+1]);for(t.max_code=l,i=e.heap_len>>1;i>=1;i--)d(e,r,i);o=c;do{i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],d(e,r,1),n=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=n,r[2*o]=r[2*i]+r[2*n],e.depth[o]=(e.depth[i]>=e.depth[n]?e.depth[i]:e.depth[n])+1,r[2*i+1]=r[2*n+1]=o,e.heap[1]=o++,d(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var i,n,o,r,a,s,c=t.dyn_tree,l=t.max_code,u=t.stat_desc.static_tree,p=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,g=t.stat_desc.extra_base,m=t.stat_desc.max_length,d=0;for(r=0;r<=U;r++)e.bl_count[r]=0;for(c[2*e.heap[e.heap_max]+1]=0,i=e.heap_max+1;i<O;i++)(r=c[2*c[2*(n=e.heap[i])+1]+1]+1)>m&&(r=m,d++),c[2*n+1]=r,n>l||(e.bl_count[r]++,a=0,n>=g&&(a=h[n-g]),s=c[2*n],e.opt_len+=s*(r+a),p&&(e.static_len+=s*(u[2*n+1]+a)));if(0!==d){do{for(r=m-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[m]--,d-=2}while(d>0);for(r=m;0!==r;r--)for(n=e.bl_count[r];0!==n;)(o=e.heap[--i])>l||(c[2*o+1]!==r&&(e.opt_len+=(r-c[2*o+1])*c[2*o],c[2*o+1]=r),n--)}}(e,t),p(r,l,e.bl_count)}function _(e,t,i){var n,o,r=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(i+1)+1]=65535,n=0;n<=i;n++)o=a,a=t[2*(n+1)+1],++s<c&&o===a||(s<l?e.bl_tree[2*o]+=s:0!==o?(o!==r&&e.bl_tree[2*o]++,e.bl_tree[2*L]++):s<=10?e.bl_tree[2*$]++:e.bl_tree[2*M]++,s=0,r=o,0===a?(c=138,l=3):o===a?(c=6,l=3):(c=7,l=4))}function y(e,t,i){var n,o,r=-1,a=t[1],s=0,u=7,p=4;for(0===a&&(u=138,p=3),n=0;n<=i;n++)if(o=a,a=t[2*(n+1)+1],!(++s<u&&o===a)){if(s<p)do{l(e,o,e.bl_tree)}while(0!=--s);else 0!==o?(o!==r&&(l(e,o,e.bl_tree),s--),l(e,L,e.bl_tree),c(e,s-3,2)):s<=10?(l(e,$,e.bl_tree),c(e,s-3,3)):(l(e,M,e.bl_tree),c(e,s-11,7));s=0,r=o,0===a?(u=138,p=3):o===a?(u=6,p=3):(u=7,p=4)}}function b(e,t,i,n){c(e,(T<<1)+(n?1:0),3),function(e,t,i,n){g(e),n&&(s(e,i),s(e,~i)),k.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}(e,t,i,!0)}var k=e("../utils/common"),v=4,E=0,w=1,I=2,T=0,C=1,A=2,j=29,P=256,R=P+1+j,N=30,D=19,O=2*R+1,U=15,x=16,G=7,B=256,L=16,$=17,M=18,W=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],H=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],F=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],V=new Array(2*(R+2));n(V);var q=new Array(2*N);n(q);var z=new Array(512);n(z);var J=new Array(256);n(J);var Q=new Array(j);n(Q);var Y=new Array(N);n(Y);var X,Z,ee,te=!1;i._tr_init=function(e){te||(function(){var e,t,i,n,r,a=new Array(U+1);for(i=0,n=0;n<j-1;n++)for(Q[n]=i,e=0;e<1<<W[n];e++)J[i++]=n;for(J[i-1]=n,r=0,n=0;n<16;n++)for(Y[n]=r,e=0;e<1<<H[n];e++)z[r++]=n;for(r>>=7;n<N;n++)for(Y[n]=r<<7,e=0;e<1<<H[n]-7;e++)z[256+r++]=n;for(t=0;t<=U;t++)a[t]=0;for(e=0;e<=143;)V[2*e+1]=8,e++,a[8]++;for(;e<=255;)V[2*e+1]=9,e++,a[9]++;for(;e<=279;)V[2*e+1]=7,e++,a[7]++;for(;e<=287;)V[2*e+1]=8,e++,a[8]++;for(p(V,R+1,a),e=0;e<N;e++)q[2*e+1]=5,q[2*e]=u(e,5);X=new o(V,W,P+1,R,U),Z=new o(q,H,0,N,U),ee=new o(new Array(0),F,0,D,G)}(),te=!0),e.l_desc=new r(e.dyn_ltree,X),e.d_desc=new r(e.dyn_dtree,Z),e.bl_desc=new r(e.bl_tree,ee),e.bi_buf=0,e.bi_valid=0,h(e)},i._tr_stored_block=b,i._tr_flush_block=function(e,t,i,n){var o,r,a=0;e.level>0?(e.strm.data_type===I&&(e.strm.data_type=function(e){var t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return E;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return w;for(t=32;t<P;t++)if(0!==e.dyn_ltree[2*t])return w;return E}(e)),f(e,e.l_desc),f(e,e.d_desc),a=function(e){var t;for(_(e,e.dyn_ltree,e.l_desc.max_code),_(e,e.dyn_dtree,e.d_desc.max_code),f(e,e.bl_desc),t=D-1;t>=3&&0===e.bl_tree[2*K[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(r=e.static_len+3+7>>>3)<=o&&(o=r)):o=r=i+5,i+4<=o&&-1!==t?b(e,t,i,n):e.strategy===v||r===o?(c(e,(C<<1)+(n?1:0),3),S(e,V,q)):(c(e,(A<<1)+(n?1:0),3),function(e,t,i,n){var o;for(c(e,t-257,5),c(e,i-1,5),c(e,n-4,4),o=0;o<n;o++)c(e,e.bl_tree[2*K[o]+1],3);y(e,e.dyn_ltree,t-1),y(e,e.dyn_dtree,i-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),S(e,e.dyn_ltree,e.dyn_dtree)),h(e),n&&g(e)},i._tr_tally=function(e,t,i){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(J[i]+P+1)]++,e.dyn_dtree[2*a(t)]++),e.last_lit===e.lit_bufsize-1},i._tr_align=function(e){c(e,C<<1,3),l(e,B,V),function(e){16===e.bi_valid?(s(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":1}],8:[function(e,t,i){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],"/lib/deflate.js":[function(e,t,i){function n(e){if(!(this instanceof n))return new n(e);this.options=a.assign({level:h,method:m,chunkSize:16384,windowBits:15,memLevel:8,strategy:g,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var i=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==p)throw new Error(c[i]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var o;if(o="string"==typeof t.dictionary?s.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(i=r.deflateSetDictionary(this.strm,o))!==p)throw new Error(c[i]);this._dict_set=!0}}function o(e,t){var i=new n(t);if(i.push(e,!0),i.err)throw i.msg;return i.result}var r=e("./zlib/deflate"),a=e("./utils/common"),s=e("./utils/strings"),c=e("./zlib/messages"),l=e("./zlib/zstream"),u=Object.prototype.toString,p=0,h=-1,g=0,m=8;n.prototype.push=function(e,t){var i,n,o=this.strm,c=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,"string"==typeof e?o.input=s.string2buf(e):"[object ArrayBuffer]"===u.call(e)?o.input=new Uint8Array(e):o.input=e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(c),o.next_out=0,o.avail_out=c),1!==(i=r.deflate(o,n))&&i!==p)return this.onEnd(i),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==i);return 4===n?(i=r.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===p):2!==n||(this.onEnd(p),o.avail_out=0,!0)},n.prototype.onData=function(e){this.chunks.push(e)},n.prototype.onEnd=function(e){e===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},i.Deflate=n,i.deflate=o,i.deflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},i.gzip=function(e,t){return(t=t||{}).gzip=!0,o(e,t)}},{"./utils/common":1,"./utils/strings":2,"./zlib/deflate":5,"./zlib/messages":6,"./zlib/zstream":8}]},{},[])("/lib/deflate.js")})),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.asn1)e.org.pkijs.asn1={};else if("object"!=typeof e.org.pkijs.asn1)throw new Error("Name org.pkijs.asn1 already exists and it's not an object but "+typeof e.org.pkijs.asn1);window.org=e.org;var t={};function i(e,t){for(var i=0,n=e.length-1;n>=0;n--)i+=e[e.length-1-n]*Math.pow(2,t*n);return i}function n(e,t,i){i=i||-1;for(var n=0,o=Math.pow(2,t),r=1;r<8;r++){if(e<o){var a;if(i<0)a=new ArrayBuffer(r),n=r;else{if(i<r)return new ArrayBuffer(0);a=new ArrayBuffer(i),n=i}for(var s=new Uint8Array(a),c=r-1;c>=0;c--){var l=Math.pow(2,c*t);s[n-c-1]=Math.floor(e/l),e-=s[n-c-1]*l}return a}o*=Math.pow(2,t)}}function o(e){for(var t=e<0?-1*e:e,i=128,o=1;o<8;o++){if(t<=i){if(e<0){var r=n(i-t,8,o);return(s=new Uint8Array(r))[0]|=128,r}var s;r=n(t,8,o);if(128&(s=new Uint8Array(r))[0]){var c=a(r),l=new Uint8Array(c);r=new ArrayBuffer(r.byteLength+1),s=new Uint8Array(r);for(var u=0;u<c.byteLength;u++)s[u+1]=l[u];s[0]=0}return r}i*=Math.pow(2,8)}return new ArrayBuffer(0)}function r(){var e=new Uint8Array(this.value_hex);if(this.value_hex.byteLength>=2){var t=255==e[0]&&128&e[1],n=0==e[0]&&!(128&e[1]);(t||n)&&this.warnings.push("Needlessly long format")}for(var o=new ArrayBuffer(this.value_hex.byteLength),r=new Uint8Array(o),a=0;a<this.value_hex.byteLength;a++)r[a]=0;r[0]=128&e[0];for(var s=i(r,8),c=new ArrayBuffer(this.value_hex.byteLength),l=new Uint8Array(c),u=0;u<this.value_hex.byteLength;u++)l[u]=e[u];return l[0]&=127,i(l,8)-s}function a(e){if(!1===l(e,0,e.byteLength))return new ArrayBuffer(0);for(var t=new Uint8Array(e),i=new ArrayBuffer(e.byteLength),n=new Uint8Array(i),o=0;o<e.byteLength;o++)n[o]=t[o];return i}function s(e,t,i){if(!1===l(e,t,i))return new ArrayBuffer(0);for(var n=new Uint8Array(e,t,i),o=new ArrayBuffer(i),r=new Uint8Array(o),a=0;a<i;a++)r[a]=n[a];return o}function c(e,t){for(var i=new Uint8Array(e),n=new Uint8Array(t),o=new ArrayBuffer(e.byteLength+t.byteLength),r=new Uint8Array(o),a=0;a<e.byteLength;a++)r[a]=i[a];for(var s=0;s<t.byteLength;s++)r[e.byteLength+s]=n[s];return o}function l(e,t,i){return e instanceof ArrayBuffer!=!1&&(0!==e.byteLength&&(!(t<0)&&(!(i<0)&&!(e.byteLength-t-i<0))))}function u(t,i,n){var o=i;var r=new e.org.pkijs.asn1.ASN1_block;if(!1===l(t,i,n))return r.error="Wrong input parameters",{offset:-1,result:r};if(0==new Uint8Array(t,i,n).length)return this.error="Zero buffer length",{offset:-1,result:r};var c=r.id_block.fromBER(t,i,n);if(r.warnings.concat(r.id_block.warnings),-1==c)return r.error=r.id_block.error,{offset:-1,result:r};if(i=c,n-=r.id_block.block_length,c=r.len_block.fromBER(t,i,n),r.warnings.concat(r.len_block.warnings),-1==c)return r.error=r.len_block.error,{offset:-1,result:r};if(i=c,n-=r.len_block.block_length,0==r.id_block.is_constructed&&1==r.len_block.is_indefinite_form)return r.error=new String("Indefinite length form used for primitive encoding form"),{offset:-1,result:r};var u=e.org.pkijs.asn1.ASN1_block;if(1===r.id_block.tag_class){if(r.id_block.tag_number>=37&&0==r.id_block.is_hex_only)return r.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:r};switch(r.id_block.tag_number){case 0:if(1==r.id_block.is_constructed&&r.len_block.length>0)return r.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:r};u=e.org.pkijs.asn1.EOC;break;case 1:u=e.org.pkijs.asn1.BOOLEAN;break;case 2:u=e.org.pkijs.asn1.INTEGER;break;case 3:u=e.org.pkijs.asn1.BITSTRING;break;case 4:u=e.org.pkijs.asn1.OCTETSTRING;break;case 5:u=e.org.pkijs.asn1.NULL;break;case 6:u=e.org.pkijs.asn1.OID;break;case 10:u=e.org.pkijs.asn1.ENUMERATED;break;case 12:u=e.org.pkijs.asn1.UTF8STRING;break;case 14:u=e.org.pkijs.asn1.TIME;break;case 15:return r.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:r};case 16:u=e.org.pkijs.asn1.SEQUENCE;break;case 17:u=e.org.pkijs.asn1.SET;break;case 18:u=e.org.pkijs.asn1.NUMERICSTRING;break;case 19:u=e.org.pkijs.asn1.PRINTABLESTRING;break;case 20:u=e.org.pkijs.asn1.TELETEXSTRING;break;case 21:u=e.org.pkijs.asn1.VIDEOTEXSTRING;break;case 22:u=e.org.pkijs.asn1.IA5STRING;break;case 23:u=e.org.pkijs.asn1.UTCTIME;break;case 24:u=e.org.pkijs.asn1.GENERALIZEDTIME;break;case 25:u=e.org.pkijs.asn1.GRAPHICSTRING;break;case 26:u=e.org.pkijs.asn1.VISIBLESTRING;break;case 27:u=e.org.pkijs.asn1.GENERALSTRING;break;case 28:u=e.org.pkijs.asn1.UNIVERSALSTRING;break;case 29:u=e.org.pkijs.asn1.CHARACTERSTRING;break;case 30:u=e.org.pkijs.asn1.BMPSTRING;break;case 31:u=e.org.pkijs.asn1.DATE;break;case 32:u=e.org.pkijs.asn1.TIMEOFDAY;break;case 33:u=e.org.pkijs.asn1.DATETIME;break;case 34:u=e.org.pkijs.asn1.DURATION;break;default:var p;(p=1==r.id_block.is_constructed?new e.org.pkijs.asn1.ASN1_CONSTRUCTED:new e.org.pkijs.asn1.ASN1_PRIMITIVE).id_block=r.id_block,p.len_block=r.len_block,p.warnings=r.warnings,c=(r=p).fromBER(t,i,n)}}else u=1==r.id_block.is_constructed?e.org.pkijs.asn1.ASN1_CONSTRUCTED:e.org.pkijs.asn1.ASN1_PRIMITIVE;return r=function(e,t){if(e instanceof t)return e;var i=new t;return i.id_block=e.id_block,i.len_block=e.len_block,i.warnings=e.warnings,i.value_before_decode=a(e.value_before_decode),i}(r,u),c=r.fromBER(t,i,1==r.len_block.is_indefinite_form?n:r.len_block.length),r.value_before_decode=s(t,o,r.block_length),{offset:c,result:r}}t.base_block=function(){arguments[0]instanceof Object?(this.block_length=e.org.pkijs.getValue(arguments[0],"block_length",0),this.error=e.org.pkijs.getValue(arguments[0],"error",new String),this.warnings=e.org.pkijs.getValue(arguments[0],"warnings",new Array),this.value_before_decode="value_before_decode"in arguments[0]?a(arguments[0].value_before_decode):new ArrayBuffer(0)):(this.block_length=0,this.error=new String,this.warnings=new Array,this.value_before_decode=new ArrayBuffer(0))},t.base_block.prototype.block_name=function(){return"base_block"},t.base_block.prototype.toJSON=function(){return{block_name:t.base_block.prototype.block_name.call(this),block_length:this.block_length,error:this.error,warnings:this.warnings,value_before_decode:e.org.pkijs.bufferToHexCodes(this.value_before_decode,0,this.value_before_decode.byteLength)}},t.hex_block=function(){t.base_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0)):(this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.hex_block.prototype=new t.base_block,t.hex_block.constructor=t.hex_block,t.hex_block.prototype.block_name=function(){return"hex_block"},t.hex_block.prototype.fromBER=function(e,t,i){if(!1===l.call(this,e,t,i))return-1;var n=new Uint8Array(e,t,i);if(0==n.length)return this.warnings.push("Zero buffer length"),t;this.value_hex=new ArrayBuffer(i);for(var o=new Uint8Array(this.value_hex),r=0;r<n.length;r++)o[r]=n[r];return this.block_length=i,t+i},t.hex_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0!==this.is_hex_only)return this.error='Flag "is_hex_only" is not set, abort',new ArrayBuffer(0);var t=new ArrayBuffer(this.value_hex.byteLength);if(!0===e)return t;for(var i=new Uint8Array(t),n=new Uint8Array(this.value_hex),o=0;o<n.length;o++)i[o]=n[o];return t},t.hex_block.prototype.toJSON=function(){var i=t.base_block.prototype.toJSON.call(this);return i.block_name=t.hex_block.prototype.block_name.call(this),i.is_hex_only=this.is_hex_only,i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i},t.identification_block=function(){t.hex_block.call(this,arguments[0]),this.tag_class=-1,this.tag_number=-1,this.is_constructed=!1,arguments[0]instanceof Object&&"id_block"in arguments[0]&&(this.is_hex_only=e.org.pkijs.getValue(arguments[0].id_block,"is_hex_only",!1),this.value_hex=e.org.pkijs.getValue(arguments[0].id_block,"value_hex",new ArrayBuffer(0)),this.tag_class=e.org.pkijs.getValue(arguments[0].id_block,"tag_class",-1),this.tag_number=e.org.pkijs.getValue(arguments[0].id_block,"tag_number",-1),this.is_constructed=e.org.pkijs.getValue(arguments[0].id_block,"is_constructed",!1))},t.identification_block.prototype=new t.hex_block,t.identification_block.constructor=t.identification_block,t.identification_block.prototype.block_name=function(){return"identification_block"},t.identification_block.prototype.toBER=function(e){void 0===e&&(e=!1);var t=0;switch(this.tag_class){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",new ArrayBuffer(0)}if(this.is_constructed&&(t|=32),this.tag_number<31&&!this.is_hex_only){var i=new ArrayBuffer(1),o=new Uint8Array(i);if(!e){var r=this.tag_number;t|=r&=31,o[0]=t}return i}if(!1===this.is_hex_only){var a=n(this.tag_number,7),s=new Uint8Array(a),c=a.byteLength;i=new ArrayBuffer(c+1);if((o=new Uint8Array(i))[0]=31|t,!e){for(var l=0;l<c-1;l++)o[l+1]=128|s[l];o[c]=s[c-1]}return i}i=new ArrayBuffer(this.value_hex.byteLength+1);if((o=new Uint8Array(i))[0]=31|t,!1===e){var u=new Uint8Array(this.value_hex);for(l=0;l<u.length-1;l++)o[l+1]=128|u[l];o[this.value_hex.byteLength]=u[u.length-1]}return i},t.identification_block.prototype.fromBER=function(e,t,n){if(!1===l.call(this,e,t,n))return-1;var o=new Uint8Array(e,t,n);if(0==o.length)return this.error="Zero buffer length",-1;switch(192&o[0]){case 0:this.tag_class=1;break;case 64:this.tag_class=2;break;case 128:this.tag_class=3;break;case 192:this.tag_class=4;break;default:return this.error="Unknown tag class",-1}this.is_constructed=!(32&~o[0]),this.is_hex_only=!1;var r=31&o[0];if(31!=r)this.tag_number=r,this.block_length=1;else{var a=1;this.value_hex=new ArrayBuffer(255);for(var s=255,c=new Uint8Array(this.value_hex);128&o[a];){if(c[a-1]=127&o[a],++a>=o.length)return this.error="End of input reached before message was fully decoded",-1;if(a==s){s+=255;for(var u=new ArrayBuffer(s),p=new Uint8Array(u),h=0;h<c.length;h++)p[h]=c[h];this.value_hex=new ArrayBuffer(s),c=new Uint8Array(this.value_hex)}}this.block_length=a+1,c[a-1]=127&o[a];for(u=new ArrayBuffer(a),p=new Uint8Array(u),h=0;h<a;h++)p[h]=c[h];this.value_hex=new ArrayBuffer(a),(c=new Uint8Array(this.value_hex)).set(p),this.block_length<=9?this.tag_number=i(c,7):(this.is_hex_only=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(1==this.tag_class&&this.is_constructed)switch(this.tag_number){case 1:case 2:case 5:case 6:case 9:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.block_length},t.identification_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.identification_block.prototype.block_name.call(this),e.tag_class=this.tag_class,e.tag_number=this.tag_number,e.is_constructed=this.is_constructed,e},t.length_block=function(){t.base_block.call(this,arguments[0]),this.is_indefinite_form=!1,this.long_form_used=!1,this.length=0,arguments[0]instanceof Object&&"len_block"in arguments[0]&&(this.is_indefinite_form=e.org.pkijs.getValue(arguments[0].len_block,"is_indefinite_form",!1),this.long_form_used=e.org.pkijs.getValue(arguments[0].len_block,"long_form_used",!1),this.length=e.org.pkijs.getValue(arguments[0].len_block,"length",0))},t.length_block.prototype=new t.base_block,t.length_block.constructor=t.length_block,t.length_block.prototype.block_name=function(){return"length_block"},t.length_block.prototype.fromBER=function(e,t,n){if(!1===l.call(this,e,t,n))return-1;var o=new Uint8Array(e,t,n);if(0==o.length)return this.error="Zero buffer length",-1;if(255==o[0])return this.error="Length block 0xFF is reserved by standard",-1;if(this.is_indefinite_form=128==o[0],1==this.is_indefinite_form)return this.block_length=1,t+this.block_length;if(this.long_form_used=!!(128&o[0]),0==this.long_form_used)return this.length=o[0],this.block_length=1,t+this.block_length;var r=127&o[0];if(r>8)return this.error="Too big integer",-1;if(r+1>o.length)return this.error="End of input reached before message was fully decoded",-1;for(var a=new Uint8Array(r),s=0;s<r;s++)a[s]=o[s+1];return 0==a[r-1]&&this.warnings.push("Needlessly long encoded length"),this.length=i(a,8),this.long_form_used&&this.length<=127&&this.warnings.push("Unneccesary usage of long length form"),this.block_length=r+1,t+this.block_length},t.length_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),this.length>127&&(this.long_form_used=!0),this.is_indefinite_form){var t=new ArrayBuffer(1);if(!1===e)(a=new Uint8Array(t))[0]=128;return t}if(!0===this.long_form_used){var i=n(this.length,8);if(i.byteLength>127)return this.error="Too big length",new ArrayBuffer(0);t=new ArrayBuffer(i.byteLength+1);if(!0===e)return t;var o=new Uint8Array(i);(a=new Uint8Array(t))[0]=128|i.byteLength;for(var r=0;r<i.byteLength;r++)a[r+1]=o[r];return t}var a;t=new ArrayBuffer(1);return!1===e&&((a=new Uint8Array(t))[0]=this.length),t},t.length_block.prototype.toJSON=function(){var e=t.base_block.prototype.toJSON.call(this);return e.block_name=t.length_block.prototype.block_name.call(this),e.is_indefinite_form=this.is_indefinite_form,e.long_form_used=this.long_form_used,e.length=this.length,e},t.value_block=function(){t.base_block.call(this,arguments[0])},t.value_block.prototype=new t.base_block,t.value_block.constructor=t.value_block,t.value_block.prototype.block_name=function(){return"value_block"},t.value_block.prototype.toJSON=function(){var e=t.base_block.prototype.toJSON.call(this);return e.block_name=t.value_block.prototype.block_name.call(this),e},e.org.pkijs.asn1.ASN1_block=function(){t.base_block.call(this,arguments[0]),arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1),"primitive_schema"in arguments[0]&&(this.primitive_schema=arguments[0].primitive_schema)),this.id_block=new t.identification_block(arguments[0]),this.len_block=new t.length_block(arguments[0]),this.value_block=new t.value_block(arguments[0])},e.org.pkijs.asn1.ASN1_block.prototype=new t.base_block,e.org.pkijs.asn1.ASN1_block.constructor=e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_block.prototype.block_name=function(){return"ASN1_block"},e.org.pkijs.asn1.ASN1_block.prototype.fromBER=function(e,t,i){var n=this.value_block.fromBER(e,t,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==n?(this.error=this.value_block.error,n):(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),n)},e.org.pkijs.asn1.ASN1_block.prototype.toBER=function(e){var t;void 0===e&&(e=!1);var i=this.id_block.toBER(e),n=this.value_block.toBER(!0);if(this.len_block.length=n.byteLength,t=c(i,this.len_block.toBER(e)),t=c(t,!1===e?this.value_block.toBER(e):new ArrayBuffer(this.len_block.length)),!0===this.len_block.is_indefinite_form){var o=new ArrayBuffer(2);if(!1===e){var r=new Uint8Array(o);r[0]=0,r[1]=0}t=c(t,o)}return t},e.org.pkijs.asn1.ASN1_block.prototype.toJSON=function(){var i=t.base_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.ASN1_block.prototype.block_name.call(this),i.id_block=this.id_block.toJSON(),i.len_block=this.len_block.toJSON(),i.value_block=this.value_block.toJSON(),"name"in this&&(i.name=this.name),"optional"in this&&(i.optional=this.optional),"primitive_schema"in this&&(i.primitive_schema=this.primitive_schema.toJSON()),i},t.ASN1_PRIMITIVE_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!0)):(this.value_hex=new ArrayBuffer(0),this.is_hex_only=!0)},t.ASN1_PRIMITIVE_value_block.prototype=new t.value_block,t.ASN1_PRIMITIVE_value_block.constructor=t.ASN1_PRIMITIVE_value_block,t.ASN1_PRIMITIVE_value_block.prototype.fromBER=function(e,t,i){if(!1===l.call(this,e,t,i))return-1;var n=new Uint8Array(e,t,i);if(0==n.length)return this.warnings.push("Zero buffer length"),t;this.value_hex=new ArrayBuffer(n.length);for(var o=new Uint8Array(this.value_hex),r=0;r<n.length;r++)o[r]=n[r];return this.block_length=i,t+i},t.ASN1_PRIMITIVE_value_block.prototype.toBER=function(e){return a(this.value_hex)},t.ASN1_PRIMITIVE_value_block.prototype.block_name=function(){return"ASN1_PRIMITIVE_value_block"},t.ASN1_PRIMITIVE_value_block.prototype.toJSON=function(){var i=t.value_block.prototype.toJSON.call(this);return i.block_name=t.ASN1_PRIMITIVE_value_block.prototype.block_name.call(this),i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i.is_hex_only=this.is_hex_only,i},e.org.pkijs.asn1.ASN1_PRIMITIVE=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.is_constructed=!1,this.value_block=new t.ASN1_PRIMITIVE_value_block(arguments[0])},e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_PRIMITIVE.constructor=e.org.pkijs.asn1.ASN1_PRIMITIVE,e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.block_name=function(){return"PRIMITIVE"},e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.block_name.call(this),t},t.ASN1_CONSTRUCTED_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value=e.org.pkijs.getValue(arguments[0],"value",new Array),this.is_indefinite_form=e.org.pkijs.getValue(arguments[0],"is_indefinite_form",!1)):(this.value=new Array,this.is_indefinite_form=!1)},t.ASN1_CONSTRUCTED_value_block.prototype=new t.value_block,t.ASN1_CONSTRUCTED_value_block.constructor=t.ASN1_CONSTRUCTED_value_block,t.ASN1_CONSTRUCTED_value_block.prototype.fromBER=function(t,i,n){var o=i,r=n;if(!1===l.call(this,t,i,n))return-1;if(0==new Uint8Array(t,i,n).length)return this.warnings.push("Zero buffer length"),i;for(var a,c,p=i;a=this.is_indefinite_form,c=n,(1==a?1:c)>0;){var h=u(t,p,n);if(-1==h.offset)return this.error=h.result.error,this.warnings.concat(h.result.warnings),-1;if(p=h.offset,this.block_length+=h.result.block_length,n-=h.result.block_length,this.value.push(h.result),1==this.is_indefinite_form&&h.result.block_name()==e.org.pkijs.asn1.EOC.prototype.block_name())break}return 1==this.is_indefinite_form&&(this.value[this.value.length-1].block_name()==e.org.pkijs.asn1.EOC.prototype.block_name()?this.value.pop():this.warnings.push("No EOC block encoded")),this.value_before_decode=s(t,o,r),p},t.ASN1_CONSTRUCTED_value_block.prototype.toBER=function(e){void 0===e&&(e=!1);for(var t=new ArrayBuffer(0),i=0;i<this.value.length;i++){t=c(t,this.value[i].toBER(e))}return t},t.ASN1_CONSTRUCTED_value_block.prototype.block_name=function(){return"ASN1_CONSTRUCTED_value_block"},t.ASN1_CONSTRUCTED_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);e.block_name=t.ASN1_CONSTRUCTED_value_block.prototype.block_name.call(this),e.is_indefinite_form=this.is_indefinite_form,e.value=new Array;for(var i=0;i<this.value.length;i++)e.value.push(this.value[i].toJSON());return e},e.org.pkijs.asn1.ASN1_CONSTRUCTED=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.is_constructed=!0,this.value_block=new t.ASN1_CONSTRUCTED_value_block(arguments[0])},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_CONSTRUCTED.constructor=e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.block_name=function(){return"CONSTRUCTED"},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.fromBER=function(e,t,i){this.value_block.is_indefinite_form=this.len_block.is_indefinite_form;var n=this.value_block.fromBER(e,t,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==n?(this.error=this.value_block.error,n):(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),n)},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.block_name.call(this),t},t.EOC_value_block=function(){t.value_block.call(this,arguments[0])},t.EOC_value_block.prototype=new t.value_block,t.EOC_value_block.constructor=t.EOC_value_block,t.EOC_value_block.prototype.fromBER=function(e,t,i){return t},t.EOC_value_block.prototype.toBER=function(e){return new ArrayBuffer(0)},t.EOC_value_block.prototype.block_name=function(){return"EOC_value_block"},t.EOC_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);return e.block_name=t.EOC_value_block.prototype.block_name.call(this),e},e.org.pkijs.asn1.EOC=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.EOC_value_block,this.id_block.tag_class=1,this.id_block.tag_number=0},e.org.pkijs.asn1.EOC.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.EOC.constructor=t.EOC_value_block,e.org.pkijs.asn1.EOC.prototype.block_name=function(){return"END_OF_CONTENT"},e.org.pkijs.asn1.EOC.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.EOC.prototype.block_name.call(this),t},t.BOOLEAN_value_block=function(){(t.value_block.call(this,arguments[0]),arguments[0]instanceof Object)?(this.value=e.org.pkijs.getValue(arguments[0],"value",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),"value_hex"in arguments[0]?this.value_hex=a(arguments[0].value_hex):(this.value_hex=new ArrayBuffer(1),!0===this.value&&(new Uint8Array(this.value_hex)[0]=255))):(this.value=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(1))},t.BOOLEAN_value_block.prototype=new t.value_block,t.BOOLEAN_value_block.constructor=t.BOOLEAN_value_block,t.BOOLEAN_value_block.prototype.fromBER=function(e,t,i){if(!1===l.call(this,e,t,i))return-1;var n=new Uint8Array(e,t,i);i>1&&this.warnings.push("BOOLEAN value encoded in more then 1 octet"),this.value=0!=n[0],this.is_hex_only=!0,this.value_hex=new ArrayBuffer(n.length);for(var o=new Uint8Array(this.value_hex),r=0;r<n.length;r++)o[r]=n[r];return this.block_length=i,t+i},t.BOOLEAN_value_block.prototype.toBER=function(e){return this.value_hex},t.BOOLEAN_value_block.prototype.block_name=function(){return"BOOLEAN_value_block"},t.BOOLEAN_value_block.prototype.toJSON=function(){var i=t.value_block.prototype.toJSON.call(this);return i.block_name=t.BOOLEAN_value_block.prototype.block_name.call(this),i.value=this.value,i.is_hex_only=this.is_hex_only,i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i},e.org.pkijs.asn1.BOOLEAN=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BOOLEAN_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=1},e.org.pkijs.asn1.BOOLEAN.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BOOLEAN.constructor=t.BOOLEAN_value_block,e.org.pkijs.asn1.BOOLEAN.prototype.block_name=function(){return"BOOLEAN"},e.org.pkijs.asn1.BOOLEAN.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BOOLEAN.prototype.block_name.call(this),t},e.org.pkijs.asn1.SEQUENCE=function(){e.org.pkijs.asn1.ASN1_CONSTRUCTED.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=16},e.org.pkijs.asn1.SEQUENCE.prototype=new e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.SEQUENCE.constructor=e.org.pkijs.asn1.SEQUENCE,e.org.pkijs.asn1.SEQUENCE.prototype.block_name=function(){return"SEQUENCE"},e.org.pkijs.asn1.SEQUENCE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.SEQUENCE.prototype.block_name.call(this),t},e.org.pkijs.asn1.SET=function(){e.org.pkijs.asn1.ASN1_CONSTRUCTED.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=17},e.org.pkijs.asn1.SET.prototype=new e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.SET.constructor=e.org.pkijs.asn1.SET,e.org.pkijs.asn1.SET.prototype.block_name=function(){return"SET"},e.org.pkijs.asn1.SET.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.SET.prototype.block_name.call(this),t},e.org.pkijs.asn1.NULL=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=5},e.org.pkijs.asn1.NULL.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.NULL.constructor=e.org.pkijs.asn1.NULL,e.org.pkijs.asn1.NULL.prototype.block_name=function(){return"NULL"},e.org.pkijs.asn1.NULL.prototype.fromBER=function(e,t,i){return this.len_block.length>0&&this.warnings.push("Non-zero length of value block for NULL type"),0===this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0===this.len_block.error.length&&(this.block_length+=this.len_block.block_length),this.block_length+=i,t+i},e.org.pkijs.asn1.NULL.prototype.toBER=function(e){void 0===e&&(e=!1);var t=new ArrayBuffer(2);if(!0===e)return t;var i=new Uint8Array(t);return i[0]=5,i[1]=0,t},e.org.pkijs.asn1.NULL.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.NULL.prototype.block_name.call(this),t},t.OCTETSTRING_value_block=function(){t.ASN1_CONSTRUCTED_value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.is_constructed=e.org.pkijs.getValue(arguments[0],"is_constructed",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0)):(this.is_constructed=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.OCTETSTRING_value_block.prototype=new t.ASN1_CONSTRUCTED_value_block,t.OCTETSTRING_value_block.constructor=t.OCTETSTRING_value_block,t.OCTETSTRING_value_block.prototype.fromBER=function(i,n,o){var r=0;if(1==this.is_constructed){if(this.is_hex_only=!1,-1==(r=t.ASN1_CONSTRUCTED_value_block.prototype.fromBER.call(this,i,n,o)))return r;for(var a=0;a<this.value.length;a++){var s=this.value[a].block_name();if(s==e.org.pkijs.asn1.EOC.prototype.block_name()){if(1==this.is_indefinite_form)break;return this.error="EOC is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(s!=e.org.pkijs.asn1.OCTETSTRING.prototype.block_name())return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.is_hex_only=!0,r=t.hex_block.prototype.fromBER.call(this,i,n,o),this.block_length=o;return r},t.OCTETSTRING_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0===this.is_constructed)return t.ASN1_CONSTRUCTED_value_block.prototype.toBER.call(this,e);var i=new ArrayBuffer(this.value_hex.byteLength);return!0===e||0==this.value_hex.byteLength?i:i=a(this.value_hex)},t.OCTETSTRING_value_block.prototype.block_name=function(){return"OCTETSTRING_value_block"},t.OCTETSTRING_value_block.prototype.toJSON=function(){var i=t.ASN1_CONSTRUCTED_value_block.prototype.toJSON.call(this);return i.block_name=t.OCTETSTRING_value_block.prototype.block_name.call(this),i.is_constructed=this.is_constructed,i.is_hex_only=this.is_hex_only,i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i},e.org.pkijs.asn1.OCTETSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.OCTETSTRING_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=4},e.org.pkijs.asn1.OCTETSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.OCTETSTRING.constructor=e.org.pkijs.asn1.OCTETSTRING,e.org.pkijs.asn1.OCTETSTRING.prototype.fromBER=function(t,i,n){return this.value_block.is_constructed=this.id_block.is_constructed,this.value_block.is_indefinite_form=this.len_block.is_indefinite_form,0==n?(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),i):e.org.pkijs.asn1.ASN1_block.prototype.fromBER.call(this,t,i,n)},e.org.pkijs.asn1.OCTETSTRING.prototype.block_name=function(){return"OCTETSTRING"},e.org.pkijs.asn1.OCTETSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.OCTETSTRING.prototype.block_name.call(this),t},e.org.pkijs.asn1.OCTETSTRING.prototype.isEqual=function(t){return t instanceof e.org.pkijs.asn1.OCTETSTRING!=0&&JSON.stringify(this)==JSON.stringify(t)},t.BITSTRING_value_block=function(){t.ASN1_CONSTRUCTED_value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.unused_bits=e.org.pkijs.getValue(arguments[0],"unused_bits",0),this.is_constructed=e.org.pkijs.getValue(arguments[0],"is_constructed",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0),this.block_length=this.value_hex.byteLength):(this.unused_bits=0,this.is_constructed=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.BITSTRING_value_block.prototype=new t.ASN1_CONSTRUCTED_value_block,t.BITSTRING_value_block.constructor=t.BITSTRING_value_block,t.BITSTRING_value_block.prototype.fromBER=function(i,n,o){if(0==o)return n;var r=-1;if(1==this.is_constructed){if(-1==(r=t.ASN1_CONSTRUCTED_value_block.prototype.fromBER.call(this,i,n,o)))return r;for(var a=0;a<this.value.length;a++){var s=this.value[a].block_name();if(s==e.org.pkijs.asn1.EOC.prototype.block_name()){if(1==this.is_indefinite_form)break;return this.error="EOC is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(s!=e.org.pkijs.asn1.BITSTRING.prototype.block_name())return this.error="BIT STRING may consists of BIT STRINGs only",-1;if(this.unused_bits>0&&this.value[a].unused_bits>0)return this.error='Usign of "unused bits" inside constructive BIT STRING allowed for least one only',-1;if(this.unused_bits=this.value[a].unused_bits,this.unused_bits>7)return this.error="Unused bits for BITSTRING must be in range 0-7",-1}return r}if(!1===l.call(this,i,n,o))return-1;var c=new Uint8Array(i,n,o);if(this.unused_bits=c[0],this.unused_bits>7)return this.error="Unused bits for BITSTRING must be in range 0-7",-1;this.value_hex=new ArrayBuffer(c.length-1);var u=new Uint8Array(this.value_hex);for(a=0;a<o-1;a++)u[a]=c[a+1];return this.block_length=c.length,n+o},t.BITSTRING_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0===this.is_constructed)return t.ASN1_CONSTRUCTED_value_block.prototype.toBER.call(this,e);if(!0===e)return new ArrayBuffer(this.value_hex.byteLength+1);if(0==this.value_hex.byteLength)return new ArrayBuffer(0);var i=new Uint8Array(this.value_hex),n=new ArrayBuffer(this.value_hex.byteLength+1),o=new Uint8Array(n);o[0]=this.unused_bits;for(var r=0;r<this.value_hex.byteLength;r++)o[r+1]=i[r];return n},t.BITSTRING_value_block.prototype.block_name=function(){return"BITSTRING_value_block"},t.BITSTRING_value_block.prototype.toJSON=function(){var i=t.ASN1_CONSTRUCTED_value_block.prototype.toJSON.call(this);return i.block_name=t.BITSTRING_value_block.prototype.block_name.call(this),i.unused_bits=this.unused_bits,i.is_constructed=this.is_constructed,i.is_hex_only=this.is_hex_only,i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i},e.org.pkijs.asn1.BITSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BITSTRING_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=3},e.org.pkijs.asn1.BITSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BITSTRING.constructor=e.org.pkijs.asn1.BITSTRING,e.org.pkijs.asn1.BITSTRING.prototype.block_name=function(){return"BITSTRING"},e.org.pkijs.asn1.BITSTRING.prototype.fromBER=function(t,i,n){return 0==n?i:(this.value_block.is_constructed=this.id_block.is_constructed,this.value_block.is_indefinite_form=this.len_block.is_indefinite_form,e.org.pkijs.asn1.ASN1_block.prototype.fromBER.call(this,t,i,n))},e.org.pkijs.asn1.BITSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BITSTRING.prototype.block_name.call(this),t},t.INTEGER_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_dec=e.org.pkijs.getValue(arguments[0],"value",0),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),"value_hex"in arguments[0]?(this.value_hex=a(arguments[0].value_hex),this.value_hex.byteLength>=4?this.is_hex_only=!0:this.value_dec=r.call(this)):this.value_hex=o(this.value_dec)):(this.value_dec=0,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.INTEGER_value_block.prototype=new t.value_block,t.INTEGER_value_block.constructor=t.INTEGER_value_block,t.INTEGER_value_block.prototype.fromBER=function(e,i,n){var o=t.hex_block.prototype.fromBER.call(this,e,i,n);return-1==o?o:(this.value_hex.byteLength>4?(this.warnings.push("Too big INTEGER for decoding, hex only"),this.is_hex_only=!0):this.value_dec=r.call(this),this.block_length=n,i+n)},t.INTEGER_value_block.prototype.toBER=function(e){if(!1===this.is_hex_only){var t=o(this.value_dec);return 0==t.byteLength?(this.error="Error during encoding INTEGER value",new ArrayBuffer(0)):a(t)}return a(this.value_hex)},t.INTEGER_value_block.prototype.block_name=function(){return"INTEGER_value_block"},t.INTEGER_value_block.prototype.toJSON=function(){var i=t.value_block.prototype.toJSON.call(this);return i.block_name=t.INTEGER_value_block.prototype.block_name.call(this),i.value_dec=this.value_dec,i.is_hex_only=this.is_hex_only,i.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),i},e.org.pkijs.asn1.INTEGER=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.INTEGER_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=2},e.org.pkijs.asn1.INTEGER.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.INTEGER.constructor=e.org.pkijs.asn1.INTEGER,e.org.pkijs.asn1.INTEGER.prototype.block_name=function(){return"INTEGER"},e.org.pkijs.asn1.INTEGER.prototype.isEqual=function(){return arguments[0]instanceof e.org.pkijs.asn1.INTEGER?this.value_block.is_hex_only&&arguments[0].value_block.is_hex_only?e.org.pkijs.isEqual_buffer(this.value_block.value_hex,arguments[0].value_block.value_hex):this.value_block.is_hex_only===arguments[0].value_block.is_hex_only&&this.value_block.value_dec==arguments[0].value_block.value_dec:arguments[0]instanceof ArrayBuffer&&e.org.pkijs.isEqual_buffer(this.value_block.value_hex,arguments[0])},e.org.pkijs.asn1.INTEGER.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.INTEGER.prototype.block_name.call(this),t},e.org.pkijs.asn1.ENUMERATED=function(){e.org.pkijs.asn1.INTEGER.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=10},e.org.pkijs.asn1.ENUMERATED.prototype=new e.org.pkijs.asn1.INTEGER,e.org.pkijs.asn1.ENUMERATED.constructor=e.org.pkijs.asn1.ENUMERATED,e.org.pkijs.asn1.ENUMERATED.prototype.block_name=function(){return"ENUMERATED"},e.org.pkijs.asn1.ENUMERATED.prototype.toJSON=function(){var t=e.org.pkijs.asn1.INTEGER.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ENUMERATED.prototype.block_name.call(this),t},t.SID_value_block=function(){t.hex_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_dec=e.org.pkijs.getValue(arguments[0],"value_dec",-1),this.is_first_sid=e.org.pkijs.getValue(arguments[0],"is_first_sid",!1)):(this.value_dec=-1,this.is_first_sid=!1)},t.SID_value_block.prototype=new t.hex_block,t.SID_value_block.constructor=t.SID_value_block,t.SID_value_block.prototype.block_name=function(){return"sid_block"},t.SID_value_block.prototype.fromBER=function(e,t,n){if(0==n)return t;if(!1===l.call(this,e,t,n))return-1;var o=new Uint8Array(e,t,n);this.value_hex=new ArrayBuffer(n);for(var r=new Uint8Array(this.value_hex),s=0;s<n&&(r[s]=127&o[s],this.block_length++,128&o[s]);s++);var c=new ArrayBuffer(this.block_length),u=new Uint8Array(c);for(s=0;s<this.block_length;s++)u[s]=r[s];return this.value_hex=a(c),r=new Uint8Array(this.value_hex),128&o[this.block_length-1]?(this.error="End of input reached before message was fully decoded",-1):(0==r[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.block_length<=8?this.value_dec=i(r,7):(this.is_hex_only=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.block_length)},t.SID_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),this.is_hex_only){if(!0===e)return new ArrayBuffer(this.value_hex.byteLength);for(var t=new Uint8Array(this.value_hex),i=new ArrayBuffer(this.block_length),o=new Uint8Array(i),r=0;r<this.block_length-1;r++)o[r]=128|t[r];return o[this.block_length-1]=t[this.block_length-1],i}var a=n(this.value_dec,7);if(0===a.byteLength)return this.error="Error during encoding SID value",new ArrayBuffer(0);i=new ArrayBuffer(a.byteLength);if(!1===e){var s=new Uint8Array(a);for(o=new Uint8Array(i),r=0;r<a.byteLength-1;r++)o[r]=128|s[r];o[a.byteLength-1]=s[a.byteLength-1]}return i},t.SID_value_block.prototype.toString=function(){var e="";if(!0===this.is_hex_only)e=function(e,t,i){if(!1===l(e,t,i))return"";for(var n="",o=new Uint8Array(e,t,i),r=0;r<o.length;r++){var a=o[r].toString(16).toUpperCase();n=n+(1===a.length?" 0":" ")+a}return n}(this.value_hex);else if(this.is_first_sid){var t=this.value_dec;this.value_dec<=39?e="0.":this.value_dec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.value_dec.toString();return e},t.SID_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.SID_value_block.prototype.block_name.call(this),e.value_dec=this.value_dec,e.is_first_sid=this.is_first_sid,e},t.OID_value_block=function(){t.value_block.call(this,arguments[0]),this.value=new Array,arguments[0]instanceof Object&&this.fromString(e.org.pkijs.getValue(arguments[0],"value",""))},t.OID_value_block.prototype=new t.value_block,t.OID_value_block.constructor=t.OID_value_block,t.OID_value_block.prototype.fromBER=function(e,i,n){for(var o=i;n>0;){var r=new t.SID_value_block;if(-1==(o=r.fromBER(e,o,n)))return this.block_length=0,this.error=r.error,o;0==this.value.length&&(r.is_first_sid=!0),this.block_length+=r.block_length,n-=r.block_length,this.value.push(r)}return o},t.OID_value_block.prototype.toBER=function(e){void 0===e&&(e=!1);for(var t=new ArrayBuffer(0),i=0;i<this.value.length;i++){var n=this.value[i].toBER(e);if(0===n.byteLength)return this.error=this.value[i].error,new ArrayBuffer(0);t=c(t,n)}return t},t.OID_value_block.prototype.fromString=function(e){this.value=new Array;var i=0,n=0,o="",r=!1;do{if(o=-1===(n=e.indexOf(".",i))?e.substr(i):e.substr(i,n-i),i=n+1,r){var a=0;switch((c=this.value[0]).value_dec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:return this.value=new Array,!1}var s=parseInt(o,10);if(isNaN(s))return!0;c.value_dec=s+a,r=!1}else{var c;if((c=new t.SID_value_block).value_dec=parseInt(o,10),isNaN(c.value_dec))return!0;0===this.value.length&&(c.is_first_sid=!0,r=!0),this.value.push(c)}}while(-1!==n);return!0},t.OID_value_block.prototype.toString=function(){for(var e="",t=!1,i=0;i<this.value.length;i++){t=this.value[i].is_hex_only;var n=this.value[i].toString();0!==i&&(e+="."),t?(n="{"+n+"}",this.value[i].is_first_sid?e="2.{"+n+" - 80}":e+=n):e+=n}return e},t.OID_value_block.prototype.block_name=function(){return"OID_value_block"},t.OID_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);e.block_name=t.OID_value_block.prototype.block_name.call(this),e.value=t.OID_value_block.prototype.toString.call(this),e.sid_array=new Array;for(var i=0;i<this.value.length;i++)e.sid_array.push(this.value[i].toJSON());return e},e.org.pkijs.asn1.OID=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.OID_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=6},e.org.pkijs.asn1.OID.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.OID.constructor=e.org.pkijs.asn1.OID,e.org.pkijs.asn1.OID.prototype.block_name=function(){return"OID"},e.org.pkijs.asn1.OID.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.OID.prototype.block_name.call(this),t},t.UTF8STRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.UTF8STRING_value_block.prototype=new t.hex_block,t.UTF8STRING_value_block.constructor=t.UTF8STRING_value_block,t.UTF8STRING_value_block.prototype.block_name=function(){return"UTF8STRING_value_block"},t.UTF8STRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.UTF8STRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.UTF8STRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.UTF8STRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.UTF8STRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=12},e.org.pkijs.asn1.UTF8STRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.UTF8STRING.constructor=e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.UTF8STRING.prototype.block_name=function(){return"UTF8STRING"},e.org.pkijs.asn1.UTF8STRING.prototype.fromBER=function(t,i,n){var o=this.value_block.fromBER(t,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UTF8STRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UTF8STRING.prototype.fromBuffer=function(e){this.value_block.value=String.fromCharCode.apply(null,new Uint8Array(e));try{this.value_block.value=decodeURIComponent(escape(this.value_block.value))}catch(e){this.warnings.push('Error during "decodeURIComponent": '+e+", using raw string")}},e.org.pkijs.asn1.UTF8STRING.prototype.fromString=function(e){var t=unescape(encodeURIComponent(e)),i=t.length;this.value_block.value_hex=new ArrayBuffer(i);for(var n=new Uint8Array(this.value_block.value_hex),o=0;o<i;o++)n[o]=t.charCodeAt(o);this.value_block.value=e},e.org.pkijs.asn1.UTF8STRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UTF8STRING.prototype.block_name.call(this),t},t.BMPSTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.BMPSTRING_value_block.prototype=new t.hex_block,t.BMPSTRING_value_block.constructor=t.BMPSTRING_value_block,t.BMPSTRING_value_block.prototype.block_name=function(){return"BMPSTRING_value_block"},t.BMPSTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.BMPSTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.BMPSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BMPSTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.BMPSTRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=30},e.org.pkijs.asn1.BMPSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BMPSTRING.constructor=e.org.pkijs.asn1.BMPSTRING,e.org.pkijs.asn1.BMPSTRING.prototype.block_name=function(){return"BMPSTRING"},e.org.pkijs.asn1.BMPSTRING.prototype.fromBER=function(t,i,n){var o=this.value_block.fromBER(t,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.BMPSTRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.BMPSTRING.prototype.fromBuffer=function(t){for(var i=e.org.pkijs.copyBuffer(t),n=new Uint8Array(i),o=0;o<n.length;o+=2){var r=n[o];n[o]=n[o+1],n[o+1]=r}this.value_block.value=String.fromCharCode.apply(null,new Uint16Array(i))},e.org.pkijs.asn1.BMPSTRING.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(2*t);for(var i=new Uint8Array(this.value_block.value_hex),o=0;o<t;o++){var r=n(e.charCodeAt(o),8),a=new Uint8Array(r);if(!(a.length>2))for(var s=2-a.length,c=a.length-1;c>=0;c--)i[2*o+c+s]=a[c]}this.value_block.value=e},e.org.pkijs.asn1.BMPSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BMPSTRING.prototype.block_name.call(this),t},t.UNIVERSALSTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.UNIVERSALSTRING_value_block.prototype=new t.hex_block,t.UNIVERSALSTRING_value_block.constructor=t.UNIVERSALSTRING_value_block,t.UNIVERSALSTRING_value_block.prototype.block_name=function(){return"UNIVERSALSTRING_value_block"},t.UNIVERSALSTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.UNIVERSALSTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.UNIVERSALSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.UNIVERSALSTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=28},e.org.pkijs.asn1.UNIVERSALSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.UNIVERSALSTRING.constructor=e.org.pkijs.asn1.UNIVERSALSTRING,e.org.pkijs.asn1.UNIVERSALSTRING.prototype.block_name=function(){return"UNIVERSALSTRING"},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBER=function(t,i,n){var o=this.value_block.fromBER(t,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBuffer=function(t){for(var i=e.org.pkijs.copyBuffer(t),n=new Uint8Array(i),o=0;o<n.length;o+=4)n[o]=n[o+3],n[o+1]=n[o+2],n[o+2]=0,n[o+3]=0;this.value_block.value=String.fromCharCode.apply(null,new Uint32Array(i))},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(4*t);for(var i=new Uint8Array(this.value_block.value_hex),o=0;o<t;o++){var r=n(e.charCodeAt(o),8),a=new Uint8Array(r);if(!(a.length>4))for(var s=4-a.length,c=a.length-1;c>=0;c--)i[4*o+c+s]=a[c]}this.value_block.value=e},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UNIVERSALSTRING.prototype.block_name.call(this),t},t.SIMPLESTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.value="",this.is_hex_only=!0},t.SIMPLESTRING_value_block.prototype=new t.hex_block,t.SIMPLESTRING_value_block.constructor=t.SIMPLESTRING_value_block,t.SIMPLESTRING_value_block.prototype.block_name=function(){return"SIMPLESTRING_value_block"},t.SIMPLESTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.SIMPLESTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},t.SIMPLESTRING_block=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.SIMPLESTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&t.SIMPLESTRING_block.prototype.fromString.call(this,arguments[0].value)},t.SIMPLESTRING_block.prototype=new e.org.pkijs.asn1.ASN1_block,t.SIMPLESTRING_block.constructor=t.SIMPLESTRING_block,t.SIMPLESTRING_block.prototype.block_name=function(){return"SIMPLESTRING"},t.SIMPLESTRING_block.prototype.fromBER=function(e,i,n){var o=this.value_block.fromBER(e,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(t.SIMPLESTRING_block.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},t.SIMPLESTRING_block.prototype.fromBuffer=function(e){this.value_block.value=String.fromCharCode.apply(null,new Uint8Array(e))},t.SIMPLESTRING_block.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(t);for(var i=new Uint8Array(this.value_block.value_hex),n=0;n<t;n++)i[n]=e.charCodeAt(n);this.value_block.value=e},t.SIMPLESTRING_block.prototype.toJSON=function(){var i=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return i.block_name=t.SIMPLESTRING_block.prototype.block_name.call(this),i},e.org.pkijs.asn1.NUMERICSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=18},e.org.pkijs.asn1.NUMERICSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.NUMERICSTRING.constructor=e.org.pkijs.asn1.NUMERICSTRING,e.org.pkijs.asn1.NUMERICSTRING.prototype.block_name=function(){return"NUMERICSTRING"},e.org.pkijs.asn1.NUMERICSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.NUMERICSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.PRINTABLESTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=19},e.org.pkijs.asn1.PRINTABLESTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.PRINTABLESTRING.constructor=e.org.pkijs.asn1.PRINTABLESTRING,e.org.pkijs.asn1.PRINTABLESTRING.prototype.block_name=function(){return"PRINTABLESTRING"},e.org.pkijs.asn1.PRINTABLESTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.PRINTABLESTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.TELETEXSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=20},e.org.pkijs.asn1.TELETEXSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.TELETEXSTRING.constructor=e.org.pkijs.asn1.TELETEXSTRING,e.org.pkijs.asn1.TELETEXSTRING.prototype.block_name=function(){return"TELETEXSTRING"},e.org.pkijs.asn1.TELETEXSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.TELETEXSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.VIDEOTEXSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=21},e.org.pkijs.asn1.VIDEOTEXSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.VIDEOTEXSTRING.constructor=e.org.pkijs.asn1.VIDEOTEXSTRING,e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.block_name=function(){return"VIDEOTEXSTRING"},e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.IA5STRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=22},e.org.pkijs.asn1.IA5STRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.IA5STRING.constructor=e.org.pkijs.asn1.IA5STRING,e.org.pkijs.asn1.IA5STRING.prototype.block_name=function(){return"IA5STRING"},e.org.pkijs.asn1.IA5STRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.IA5STRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.GRAPHICSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=25},e.org.pkijs.asn1.GRAPHICSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.GRAPHICSTRING.constructor=e.org.pkijs.asn1.GRAPHICSTRING,e.org.pkijs.asn1.GRAPHICSTRING.prototype.block_name=function(){return"GRAPHICSTRING"},e.org.pkijs.asn1.GRAPHICSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.GRAPHICSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.VISIBLESTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=26},e.org.pkijs.asn1.VISIBLESTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.VISIBLESTRING.constructor=e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.VISIBLESTRING.prototype.block_name=function(){return"VISIBLESTRING"},e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.VISIBLESTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.GENERALSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=27},e.org.pkijs.asn1.GENERALSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.GENERALSTRING.constructor=e.org.pkijs.asn1.GENERALSTRING,e.org.pkijs.asn1.GENERALSTRING.prototype.block_name=function(){return"GENERALSTRING"},e.org.pkijs.asn1.GENERALSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.GENERALSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.CHARACTERSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=29},e.org.pkijs.asn1.CHARACTERSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.CHARACTERSTRING.constructor=e.org.pkijs.asn1.CHARACTERSTRING,e.org.pkijs.asn1.CHARACTERSTRING.prototype.block_name=function(){return"CHARACTERSTRING"},e.org.pkijs.asn1.CHARACTERSTRING.prototype.toJSON=function(){var i=t.SIMPLESTRING_block.prototype.toJSON.call(this);return i.block_name=e.org.pkijs.asn1.CHARACTERSTRING.prototype.block_name.call(this),i},e.org.pkijs.asn1.UTCTIME=function(){if(e.org.pkijs.asn1.VISIBLESTRING.call(this,arguments[0]),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,arguments[0]instanceof Object&&"value"in arguments[0]){e.org.pkijs.asn1.UTCTIME.prototype.fromString.call(this,arguments[0].value),this.value_block.value_hex=new ArrayBuffer(arguments[0].value.length);for(var t=new Uint8Array(this.value_block.value_hex),i=0;i<arguments[0].value.length;i++)t[i]=arguments[0].value.charCodeAt(i)}arguments[0]instanceof Object&&"value_date"in arguments[0]&&(e.org.pkijs.asn1.UTCTIME.prototype.fromDate.call(this,arguments[0].value_date),this.value_block.value_hex=e.org.pkijs.asn1.UTCTIME.prototype.toBuffer.call(this)),this.id_block.tag_class=1,this.id_block.tag_number=23},e.org.pkijs.asn1.UTCTIME.prototype=new e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.UTCTIME.constructor=e.org.pkijs.asn1.UTCTIME,e.org.pkijs.asn1.UTCTIME.prototype.fromBER=function(t,i,n){var o=this.value_block.fromBER(t,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UTCTIME.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UTCTIME.prototype.fromBuffer=function(t){e.org.pkijs.asn1.UTCTIME.prototype.fromString.call(this,String.fromCharCode.apply(null,new Uint8Array(t)))},e.org.pkijs.asn1.UTCTIME.prototype.toBuffer=function(){for(var t=e.org.pkijs.asn1.UTCTIME.prototype.toString.call(this),i=new ArrayBuffer(t.length),n=new Uint8Array(i),o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return i},e.org.pkijs.asn1.UTCTIME.prototype.fromDate=function(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()},e.org.pkijs.asn1.UTCTIME.prototype.toDate=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))},e.org.pkijs.asn1.UTCTIME.prototype.fromString=function(e){var t=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/gi.exec(e);if(null!==t){var i=parseInt(t[1],10);this.year=i>=50?1900+i:2e3+i,this.month=parseInt(t[2],10),this.day=parseInt(t[3],10),this.hour=parseInt(t[4],10),this.minute=parseInt(t[5],10),this.second=parseInt(t[6],10)}else this.error="Wrong input string for convertion"},e.org.pkijs.asn1.UTCTIME.prototype.toString=function(){var t=new Array(7);return t[0]=e.org.pkijs.padNumber(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=e.org.pkijs.padNumber(this.month,2),t[2]=e.org.pkijs.padNumber(this.day,2),t[3]=e.org.pkijs.padNumber(this.hour,2),t[4]=e.org.pkijs.padNumber(this.minute,2),t[5]=e.org.pkijs.padNumber(this.second,2),t[6]="Z",t.join("")},e.org.pkijs.asn1.UTCTIME.prototype.block_name=function(){return"UTCTIME"},e.org.pkijs.asn1.UTCTIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UTCTIME.prototype.block_name.call(this),t.year=this.year,t.month=this.month,t.day=this.day,t.hour=this.hour,t.minute=this.minute,t.second=this.second,t},e.org.pkijs.asn1.GENERALIZEDTIME=function(){if(e.org.pkijs.asn1.VISIBLESTRING.call(this,arguments[0]),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,this.millisecond=0,arguments[0]instanceof Object&&"value"in arguments[0]){e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString.call(this,arguments[0].value),this.value_block.value_hex=new ArrayBuffer(arguments[0].value.length);for(var t=new Uint8Array(this.value_block.value_hex),i=0;i<arguments[0].value.length;i++)t[i]=arguments[0].value.charCodeAt(i)}arguments[0]instanceof Object&&"value_date"in arguments[0]&&(e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromDate.call(this,arguments[0].value_date),this.value_block.value_hex=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toBuffer.call(this)),this.id_block.tag_class=1,this.id_block.tag_number=24},e.org.pkijs.asn1.GENERALIZEDTIME.prototype=new e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.GENERALIZEDTIME.constructor=e.org.pkijs.asn1.GENERALIZEDTIME,e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBER=function(t,i,n){var o=this.value_block.fromBER(t,i,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBuffer=function(t){e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString.call(this,String.fromCharCode.apply(null,new Uint8Array(t)))},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toBuffer=function(){for(var t=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toString.call(this),i=new ArrayBuffer(t.length),n=new Uint8Array(i),o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return i},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromDate=function(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds(),this.millisecond=e.getUTCMilliseconds()},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toDate=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString=function(e){var t,i=!1,n="",o="",r=0,a=0,s=0;if("Z"==e[e.length-1])n=e.substr(0,e.length-1),i=!0;else{var c=new Number(e[e.length-1]);if(isNaN(c.valueOf()))throw new Error("Wrong input string for convertion");n=e}if(i){if(-1!=n.indexOf("+"))throw new Error("Wrong input string for convertion");if(-1!=n.indexOf("-"))throw new Error("Wrong input string for convertion")}else{var l=1,u=n.indexOf("+"),p="";if(-1==u&&(u=n.indexOf("-"),l=-1),-1!=u){if(p=n.substr(u+1),n=n.substr(0,u),2!=p.length&&4!=p.length)throw new Error("Wrong input string for convertion");c=new Number(p.substr(0,2));if(isNaN(c.valueOf()))throw new Error("Wrong input string for convertion");if(a=l*c,4==p.length){if(c=new Number(p.substr(2,2)),isNaN(c.valueOf()))throw new Error("Wrong input string for convertion");s=l*c}}}var h=n.indexOf(".");if(-1==h&&(h=n.indexOf(",")),-1!=h){var g=new Number("0"+n.substr(h));if(isNaN(g.valueOf()))throw new Error("Wrong input string for convertion");r=g.valueOf(),o=n.substr(0,h)}else o=n;switch(!0){case 8==o.length:if(t=/(\d{4})(\d{2})(\d{2})/gi,-1!==h)throw new Error("Wrong input string for convertion");break;case 10==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})/gi,-1!==h){var m=60*r;this.minute=Math.floor(m),m=60*(m-this.minute),this.second=Math.floor(m),m=1e3*(m-this.second),this.millisecond=Math.floor(m)}break;case 12==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==h){m=60*r;this.second=Math.floor(m),m=1e3*(m-this.second),this.millisecond=Math.floor(m)}break;case 14==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==h){m=1e3*r;this.millisecond=Math.floor(m)}break;default:throw new Error("Wrong input string for convertion")}var d=t.exec(o);if(null==d)throw new Error("Wrong input string for convertion");for(var S=1;S<d.length;S++)switch(S){case 1:this.year=parseInt(d[S],10);break;case 2:this.month=parseInt(d[S],10);break;case 3:this.day=parseInt(d[S],10);break;case 4:this.hour=parseInt(d[S],10)+a;break;case 5:this.minute=parseInt(d[S],10)+s;break;case 6:this.second=parseInt(d[S],10);break;default:throw new Error("Wrong input string for convertion")}if(0==i){var f=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=f.getUTCFullYear(),this.month=f.getUTCMonth(),this.day=f.getUTCDay(),this.hour=f.getUTCHours(),this.minute=f.getUTCMinutes(),this.second=f.getUTCSeconds(),this.millisecond=f.getUTCMilliseconds()}},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toString=function(){var t=new Array;return t.push(e.org.pkijs.padNumber(this.year,4)),t.push(e.org.pkijs.padNumber(this.month,2)),t.push(e.org.pkijs.padNumber(this.day,2)),t.push(e.org.pkijs.padNumber(this.hour,2)),t.push(e.org.pkijs.padNumber(this.minute,2)),t.push(e.org.pkijs.padNumber(this.second,2)),0!=this.millisecond&&(t.push("."),t.push(e.org.pkijs.padNumber(this.millisecond,3))),t.push("Z"),t.join("")},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.block_name=function(){return"GENERALIZEDTIME"},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.block_name.call(this),t.year=this.year,t.month=this.month,t.day=this.day,t.hour=this.hour,t.minute=this.minute,t.second=this.second,t.millisecond=this.millisecond,t},e.org.pkijs.asn1.DATE=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=31},e.org.pkijs.asn1.DATE.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DATE.constructor=e.org.pkijs.asn1.DATE,e.org.pkijs.asn1.DATE.prototype.block_name=function(){return"DATE"},e.org.pkijs.asn1.DATE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DATE.prototype.block_name.call(this),t},e.org.pkijs.asn1.TIMEOFDAY=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=32},e.org.pkijs.asn1.TIMEOFDAY.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.TIMEOFDAY.constructor=e.org.pkijs.asn1.TIMEOFDAY,e.org.pkijs.asn1.TIMEOFDAY.prototype.block_name=function(){return"TIMEOFDAY"},e.org.pkijs.asn1.TIMEOFDAY.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.TIMEOFDAY.prototype.block_name.call(this),t},e.org.pkijs.asn1.DATETIME=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=33},e.org.pkijs.asn1.DATETIME.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DATETIME.constructor=e.org.pkijs.asn1.DATETIME,e.org.pkijs.asn1.DATETIME.prototype.block_name=function(){return"DATETIME"},e.org.pkijs.asn1.DATETIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DATETIME.prototype.block_name.call(this),t},e.org.pkijs.asn1.DURATION=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=34},e.org.pkijs.asn1.DURATION.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DURATION.constructor=e.org.pkijs.asn1.DURATION,e.org.pkijs.asn1.DURATION.prototype.block_name=function(){return"DURATION"},e.org.pkijs.asn1.DURATION.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DURATION.prototype.block_name.call(this),t},e.org.pkijs.asn1.TIME=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=14},e.org.pkijs.asn1.TIME.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.TIME.constructor=e.org.pkijs.asn1.TIME,e.org.pkijs.asn1.TIME.prototype.block_name=function(){return"TIME"},e.org.pkijs.asn1.TIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.TIME.prototype.block_name.call(this),t},e.org.pkijs.asn1.CHOICE=function(){arguments[0]instanceof Object&&(this.value=e.org.pkijs.getValue(arguments[0],"value",new Array),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1))},e.org.pkijs.asn1.ANY=function(){arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1))},e.org.pkijs.asn1.REPEATED=function(){arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1),this.value=e.org.pkijs.getValue(arguments[0],"value",new e.org.pkijs.asn1.ANY),this.local=e.org.pkijs.getValue(arguments[0],"local",!1))},e.org.pkijs.fromBER=function(t){if(0==t.byteLength){var i=new e.org.pkijs.asn1.ASN1_block;return i.error="Input buffer has zero length",{offset:-1,result:i}}return u(t,0,t.byteLength)},e.org.pkijs.compareSchema=function(t,i,n){if(n instanceof e.org.pkijs.asn1.CHOICE){for(var o=0;o<n.value.length;o++){if(!0===(p=e.org.pkijs.compareSchema(t,i,n.value[o])).verified)return{verified:!0,result:t}}var r={verified:!1,result:{error:"Wrong values for CHOICE type"}};return n.hasOwnProperty("name")&&(r.name=n.name),r}if(n instanceof e.org.pkijs.asn1.ANY)return n.hasOwnProperty("name")&&(t[n.name]=i),{verified:!0,result:t};if(t instanceof Object==!1)return{verified:!1,result:{error:"Wrong root object"}};if(i instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(n instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("id_block"in n==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("fromBER"in n.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("toBER"in n.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};var a=n.id_block.toBER(!1);if(0===a.byteLength)return{verified:!1,result:{error:"Error encoding id_block for ASN.1 schema"}};if(-1===n.id_block.fromBER(a,0,a.byteLength))return{verified:!1,result:{error:"Error decoding id_block for ASN.1 schema"}};if(!1===n.id_block.hasOwnProperty("tag_class"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.id_block.tag_class!==i.id_block.tag_class)return{verified:!1,result:t};if(!1===n.id_block.hasOwnProperty("tag_number"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.id_block.tag_number!==i.id_block.tag_number)return{verified:!1,result:t};if(!1===n.id_block.hasOwnProperty("is_constructed"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.id_block.is_constructed!==i.id_block.is_constructed)return{verified:!1,result:t};if("is_hex_only"in n.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(n.id_block.is_hex_only!==i.id_block.is_hex_only)return{verified:!1,result:t};if(!0===n.id_block.is_hex_only){if("value_hex"in n.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};var s=new Uint8Array(n.id_block.value_hex),c=new Uint8Array(i.id_block.value_hex);if(s.length!==c.length)return{verified:!1,result:t};for(var l=0;l<s.length;l++)if(s[l]!==c[1])return{verified:!1,result:t}}if(n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&(t[n.name]=i)),!0===n.id_block.is_constructed){var u=0,p={verified:!1},h=n.value_block.value.length;if(h>0&&n.value_block.value[0]instanceof e.org.pkijs.asn1.REPEATED&&(h=i.value_block.value.length),0===h)return{verified:!0,result:t};if(0===i.value_block.value.length&&0!==n.value_block.value.length){var g=!0;for(l=0;l<n.value_block.value.length;l++)g=g&&(n.value_block.value[l].optional||!1);return!0===g?{verified:!0,result:t}:(n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&delete t[n.name]),t.error="Inconsistent object length",{verified:!1,result:t})}for(l=0;l<h;l++)if(l-u>=i.value_block.value.length){if(!1===n.value_block.value[l].optional){r={verified:!1,result:t};return t.error="Inconsistent length between ASN.1 data and schema",n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&(delete t[n.name],r.name=n.name)),r}}else if(n.value_block.value[0]instanceof e.org.pkijs.asn1.REPEATED){if(!1===(p=e.org.pkijs.compareSchema(t,i.value_block.value[l],n.value_block.value[0].value)).verified){if(!0!==n.value_block.value[0].optional)return n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&delete t[n.name]),p;u++}if("name"in n.value_block.value[0]&&n.value_block.value[0].name.length>0){var m={};void 0===(m="local"in n.value_block.value[0]&&!0===n.value_block.value[0].local?i:t)[n.value_block.value[0].name]&&(m[n.value_block.value[0].name]=new Array),m[n.value_block.value[0].name].push(i.value_block.value[l])}}else if(!1===(p=e.org.pkijs.compareSchema(t,i.value_block.value[l-u],n.value_block.value[l])).verified){if(!0!==n.value_block.value[l].optional)return n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&delete t[n.name]),p;u++}if(!1===p.verified){r={verified:!1,result:t};return n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&(delete t[n.name],r.name=n.name)),r}return{verified:!0,result:t}}if("primitive_schema"in n&&"value_hex"in i.value_block){var d=e.org.pkijs.fromBER(i.value_block.value_hex);if(-1===d.offset){r={verified:!1,result:d.result};return n.hasOwnProperty("name")&&(n.name=n.name.replace(/^\s+|\s+$/g,""),""!==n.name&&(delete t[n.name],r.name=n.name)),r}return e.org.pkijs.compareSchema(t,d.result,n.primitive_schema)}return{verified:!0,result:t}},e.org.pkijs.verifySchema=function(t,i){if(i instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};var n=e.org.pkijs.fromBER(t);return-1===n.offset?{verified:!1,result:n.result}:e.org.pkijs.compareSchema(n.result,n.result,i)},e.org.pkijs.fromJSON=function(e){}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.cms)e.org.pkijs.schema.cms={};else if("object"!=typeof e.org.pkijs.schema.cms)throw new Error("Name org.pkijs.schema.cms already exists and it's not an object but "+typeof e.org.pkijs.schema.cms);e.org.pkijs.schema.CMS_CONTENT_INFO=function(t,i){var n=e.org.pkijs.getNames(arguments[0]);return void 0===i&&(i=!1),new e.org.pkijs.asn1.SEQUENCE({name:n.block_name||"ContentInfo",optional:i,value:[new e.org.pkijs.asn1.OID({name:n.contentType||"contentType"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY({name:n.content||"content"})]})]})},e.org.pkijs.schema.cms.OtherCertificateFormat=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.otherCertFormat||"otherCertFormat"}),new e.org.pkijs.asn1.ANY({name:t.otherCert||"otherCert"})]})},e.org.pkijs.schema.CMS_CERTIFICATE_SET=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SET({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.certificates||"",value:new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.CERT(),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.ANY]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.ANY]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY]})]})})]})},e.org.pkijs.schema.cms.OtherRevocationInfoFormat=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.otherRevInfoFormat||"otherRevInfoFormat"}),new e.org.pkijs.asn1.ANY({name:t.otherRevInfo||"otherRevInfo"})]})},e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SET({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.crls||"",value:new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.CRL(),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY]})]})})]})},e.org.pkijs.schema.cms.IssuerAndSerialNumber=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.RDN(t.issuer||{}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||""})]})},e.org.pkijs.schema.cms.Attribute=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.attrType||""}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.attrValues||"",value:new e.org.pkijs.asn1.ANY})]})]})},e.org.pkijs.schema.cms.RSAES_OAEP_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.maskGenAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.pSourceAlgorithm||{})]})]})},e.org.pkijs.schema.cms.SignedUnsignedAttributes=function(t,i){var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:n.block_name||"",optional:!0,id_block:{tag_class:3,tag_number:i},value:[new e.org.pkijs.asn1.REPEATED({name:n.attributes||"",value:e.org.pkijs.schema.cms.Attribute()})]})},e.org.pkijs.schema.CMS_SIGNER_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:"SignerInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"SignerInfo.version"}),new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber(t.sid||{names:{block_name:"SignerInfo.sid"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:t.sid||"SignerInfo.sid",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.OCTETSTRING]})]}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.digestAlgorithm||{names:{block_name:"SignerInfo.digestAlgorithm"}}),e.org.pkijs.schema.cms.SignedUnsignedAttributes(t.signedAttrs||{names:{block_name:"SignerInfo.signedAttrs"}},0),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{names:{block_name:"SignerInfo.signatureAlgorithm"}}),new e.org.pkijs.asn1.OCTETSTRING({name:t.signature||"SignerInfo.signature"}),e.org.pkijs.schema.cms.SignedUnsignedAttributes(t.unsignedAttrs||{names:{block_name:"SignerInfo.unsignedAttrs"}},1)]})},e.org.pkijs.schema.cms.EncapsulatedContentInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.eContentType||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY({name:t.eContent||""})]})]})},e.org.pkijs.schema.CMS_SIGNED_DATA=function(t,i){return t=e.org.pkijs.getNames(arguments[0]),void 0===i&&(i=!1),new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"SignedData",optional:i,value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"SignedData.version"}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.digestAlgorithms||"SignedData.digestAlgorithms",value:e.org.pkijs.schema.ALGORITHM_IDENTIFIER()})]}),e.org.pkijs.schema.cms.EncapsulatedContentInfo(t.encapContentInfo||{names:{block_name:"SignedData.encapContentInfo"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.CMS_CERTIFICATE_SET(t.certificates||{names:{certificates:"SignedData.certificates"}}).value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES(t.crls||{names:{crls:"SignedData.crls"}}).value_block.value}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.signerInfos||"SignedData.signerInfos",value:e.org.pkijs.schema.CMS_SIGNER_INFO()})]})]})},e.org.pkijs.schema.cms.ECC_CMS_SharedInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.entityUInfo||"",id_block:{tag_class:3,tag_number:0},optional:!0,value:[new e.org.pkijs.asn1.OCTETSTRING]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.suppPubInfo||"",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING]})]})},e.org.pkijs.schema.cms.PBKDF2_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.salt_primitive||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.salt_constructed||{})]}),new e.org.pkijs.asn1.INTEGER({name:t.iterationCount||""}),new e.org.pkijs.asn1.INTEGER({name:t.keyLength||"",optional:!0}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.prf||{names:{optional:!0}})]})},e.org.pkijs.schema.cms.PBES2_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyDerivationFunc||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.encryptionScheme||{})]})},e.org.pkijs.schema.cms.RecipientIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.OCTETSTRING]})]})},e.org.pkijs.schema.cms.KeyTransRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.RecipientIdentifier(t.rid||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.OriginatorPublicKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.algorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.publicKey||""})]})},e.org.pkijs.schema.cms.OriginatorIdentifierOrKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},name:t.block_name||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},name:t.block_name||"",value:e.org.pkijs.schema.cms.OriginatorPublicKey().value_block.value})]})},e.org.pkijs.schema.cms.OtherKeyAttribute=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({optional:t.optional||!0,name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.keyAttrId||""}),new e.org.pkijs.asn1.ANY({optional:!0,name:t.keyAttr||""})]})},e.org.pkijs.schema.cms.RecipientKeyIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.subjectKeyIdentifier||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({optional:!0,name:t.date||""}),e.org.pkijs.schema.cms.OtherKeyAttribute(t.other||{})]})},e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber(t.issuerAndSerialNumber||{names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.cms.RecipientKeyIdentifier(t.rKeyId||{names:{block_name:t.block_name||""}}).value_block.value})]})},e.org.pkijs.schema.cms.RecipientEncryptedKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier(t.rid||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.RecipientEncryptedKeys=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.RecipientEncryptedKeys||"",value:e.org.pkijs.schema.cms.RecipientEncryptedKey()})]})},e.org.pkijs.schema.cms.KeyAgreeRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.cms.OriginatorIdentifierOrKey(t.originator||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.ukm||""})]}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),e.org.pkijs.schema.cms.RecipientEncryptedKeys(t.recipientEncryptedKeys||{})]})},e.org.pkijs.schema.cms.KEKIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.keyIdentifier||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({optional:!0,name:t.date||""}),e.org.pkijs.schema.cms.OtherKeyAttribute(t.other||{})]})},e.org.pkijs.schema.cms.KEKRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.KEKIdentifier(t.kekid||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.PasswordRecipientinfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.keyDerivationAlgorithm||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.ALGORITHM_IDENTIFIER().value_block.value}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.OtherRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.oriType||""}),new e.org.pkijs.asn1.ANY({name:t.oriValue||""})]})},e.org.pkijs.schema.CMS_RECIPIENT_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.KeyTransRecipientInfo({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.cms.KeyAgreeRecipientInfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:2},value:e.org.pkijs.schema.cms.KEKRecipientInfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:3},value:e.org.pkijs.schema.cms.PasswordRecipientinfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:4},value:e.org.pkijs.schema.cms.OtherRecipientInfo().value_block.value})]})},e.org.pkijs.schema.cms.OriginatorInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.certs||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.CMS_CERTIFICATE_SET().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.crls||"",optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES().value_block.value})]})},e.org.pkijs.schema.cms.EncryptedContentInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.contentType||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.contentEncryptionAlgorithm||{}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.encryptedContent||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({value:new e.org.pkijs.asn1.OCTETSTRING})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.encryptedContent||"",id_block:{tag_class:3,tag_number:0}})]})]})},e.org.pkijs.schema.CMS_ENVELOPED_DATA=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.originatorInfo||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.cms.OriginatorInfo().value_block.value}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.recipientInfos||"",value:e.org.pkijs.schema.CMS_RECIPIENT_INFO()})]}),e.org.pkijs.schema.cms.EncryptedContentInfo(t.encryptedContentInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.unprotectedAttrs||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})},e.org.pkijs.schema.CMS_ENCRYPTED_DATA=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.EncryptedContentInfo(t.encryptedContentInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.unprotectedAttrs||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.cms)e.org.pkijs.simpl.cms={};else if("object"!=typeof e.org.pkijs.simpl.cms)throw new Error("Name org.pkijs.simpl.cms already exists and it's not an object but "+typeof e.org.pkijs.simpl.cms);if(void 0===e.org.pkijs.simpl.x509)e.org.pkijs.simpl.x509={};else if("object"!=typeof e.org.pkijs.simpl.x509)throw new Error("Name org.pkijs.simpl.x509 already exists and it's not an object but "+typeof e.org.pkijs.simpl.x509);e.org.pkijs.simpl.cms.kdfWithCounter=function(t,i,n,o){switch(t.toUpperCase()){case"SHA-1":case"SHA-256":case"SHA-384":case"SHA-512":break;default:return Promise.reject("Unknown hash function: "+t)}if(i instanceof ArrayBuffer==!1)return Promise.reject('Please set "Zbuffer" as "ArrayBuffer"');if(0===i.byteLength)return Promise.reject('"Zbuffer" has zero length, error');if(o instanceof ArrayBuffer==!1)return Promise.reject('Please set "SharedInfo" as "ArrayBuffer"');if(n>255)return Promise.reject('Please set "Counter" variable to value less or equal to 255');var r=new ArrayBuffer(4),a=new Uint8Array(r);a[0]=0,a[1]=0,a[2]=0,a[3]=n;var s=new ArrayBuffer(0),c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):(s=e.org.pkijs.concat_buffers(s,i),s=e.org.pkijs.concat_buffers(s,r),s=e.org.pkijs.concat_buffers(s,o),c.digest({name:t},s).then((function(e){return{counter:n,result:e}})))},e.org.pkijs.simpl.cms.kdf=function(t,i,n,o){var r=0,a=1,s=new Array;switch(t.toUpperCase()){case"SHA-1":r=160;break;case"SHA-256":r=256;break;case"SHA-384":r=384;break;case"SHA-512":r=512;break;default:return Promise.reject("Unknown hash function: "+t)}if(i instanceof ArrayBuffer==!1)return Promise.reject('Please set "Zbuffer" as "ArrayBuffer"');if(0===i.byteLength)return Promise.reject('"Zbuffer" has zero length, error');if(o instanceof ArrayBuffer==!1)return Promise.reject('Please set "SharedInfo" as "ArrayBuffer"');var c=n/r;Math.floor(c)>0&&c-(a=Math.floor(c))>0&&a++;for(var l=1;l<=a;l++)s.push(e.org.pkijs.simpl.cms.kdfWithCounter(t,i,l,o));return Promise.all(s).then((function(e){for(var t=new ArrayBuffer(0),i=1,o=!0;o;){o=!1;for(var r=0;r<e.length;r++)if(e[r].counter===i){t=org.pkijs.concat_buffers(t,e[r].result),o=!0;break}i++}if(n>>=3,t.byteLength>n){var a=new ArrayBuffer(n),s=new Uint8Array(a),c=new Uint8Array(t);for(r=0;r<n;r++)s[r]=c[r];return a}return t}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_CONTENT_INFO=function(){this.contentType="",this.content=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.contentType=arguments[0].contentType||"",this.content=arguments[0].content||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_CONTENT_INFO());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_CONTENT_INFO");this.contentType=i.result.contentType.value_block.toString(),this.content=i.result.content},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.contentType}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.content]})]})},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.toJSON=function(){var t={contentType:this.contentType};return this.content instanceof e.org.pkijs.asn1.ANY||(t.content=this.content.toJSON()),t},e.org.pkijs.simpl.cms.OtherCertificateFormat=function(){this.otherCertFormat="",this.otherCert=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.otherCertFormat=arguments[0].contentType||"",this.otherCert=arguments[0].content||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherCertificateFormat());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OtherCertificateFormat");this.otherCertFormat=i.result.otherCertFormat.value_block.toString(),this.otherCert=i.result.otherCert},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.otherCertFormat}),this.otherCert]})},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.toJSON=function(){var t={otherCertFormat:this.otherCertFormat};return this.otherCert instanceof e.org.pkijs.asn1.ANY||(t.otherCert=this.otherCert.toJSON()),t},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat=function(){this.otherRevInfoFormat="",this.otherRevInfo=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.otherRevInfoFormat=arguments[0].otherRevInfoFormat||"",this.otherRevInfo=arguments[0].otherRevInfo||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherRevocationInfoFormat());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OtherRevocationInfoFormat");this.otherRevInfoFormat=i.result.otherRevInfoFormat.value_block.toString(),this.otherRevInfo=i.result.otherRevInfo},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.otherRevInfoFormat}),this.otherRevInfo]})},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.toJSON=function(){var t={otherRevInfoFormat:this.otherRevInfoFormat};return this.otherRevInfo instanceof e.org.pkijs.asn1.ANY||(t.otherRevInfo=this.otherRevInfo.toJSON()),t},e.org.pkijs.simpl.CMS_CERTIFICATE_SET=function(){this.certificates=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certificates=arguments[0].certificates||new Array)},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_CERTIFICATE_SET());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_CERTIFICATE_SET");for(var n=i.result.certificates,o=0;o<n;o++)1===n[o].id_block.tag_class?this.certificates.push(new e.org.pkijs.simpl.CERT({schema:n[o]})):this.certificates.push(n[o])},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.certificates.length;i++)this.certificates[i]instanceof e.org.pkijs.simpl.CERT?t.push(this.certificates[i].toSchema()):t.push(this.certificates[i]);return new e.org.pkijs.asn1.SET({value:t})},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.toJSON=function(){var e={};e.certificates=new Array;for(var t=0;t<this.certificates.length;t++)e.certificates.push(this.certificates[t].toJSON());return e},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES=function(){this.crls=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.crls=arguments[0].crls||new Array)},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_REVOCATION_INFO_CHOICES");for(var n=i.result.crls,o=0;o<n;o++)1===n.id_block.tag_class?this.crls.push(new e.org.pkijs.simpl.CRL({schema:n[o]})):this.crls.push(n[o])},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.crls.length;i++)this.crls[i]instanceof e.org.pkijs.simpl.CRL?t.push(this.crls[i].toSchema()):t.push(this.crls[i]);return new e.org.pkijs.asn1.SET({value:t})},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.toJSON=function(){var e={};e.crls=new Array;for(var t=0;t<this.crls.length;t++)e.crls.push(this.crls[t].toJSON());return e},e.org.pkijs.simpl.cms.IssuerAndSerialNumber=function(){this.issuer=new e.org.pkijs.simpl.RDN,this.serialNumber=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{issuer:{names:{block_name:"issuer"}},serialNumber:"serialNumber"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for IssuerAndSerialNumber");this.issuer=new e.org.pkijs.simpl.RDN({schema:i.result.issuer}),this.serialNumber=i.result.serialNumber},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.issuer.toSchema(),this.serialNumber]})},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.toJSON=function(){return{issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()}},e.org.pkijs.simpl.cms.Attribute=function(){this.attrType="",this.attrValues=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.Attribute.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.attrType=arguments[0].attrType||"",this.attrValues=arguments[0].attrValues||new Array)},e.org.pkijs.simpl.cms.Attribute.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.Attribute({names:{attrType:"attrType",attrValues:"attrValues"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for Attribute");switch(this.attrType=i.result.attrType.value_block.toString(),this.attrValues=i.result.attrValues,this.attrType){case"0.4.0.1733.2.5":this.parsedValue=new e.org.pkijs.simpl.cades.ATSHashIndex({schema:this.attrValues[0]});break;case"0.4.0.1733.2.4":this.parsedValue=new e.org.pkijs.simpl.cades.archive_time_stamp_v3({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.14":this.parsedValue=new e.org.pkijs.simpl.cades.signature_time_stamp({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.21":this.parsedValue=new e.org.pkijs.simpl.cades.complete_certificate_references({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.22":this.parsedValue=new e.org.pkijs.simpl.cades.complete_revocation_references({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.25":this.parsedValue=new e.org.pkijs.simpl.cades.CAdES_C_Timestamp({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.23":this.parsedValue=new e.org.pkijs.simpl.cades.certificate_values({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.24":this.parsedValue=new e.org.pkijs.simpl.cades.revocation_values({schema:this.attrValues[0]});break;case"1.2.840.113583.1.1.8":this.parsedValue=new e.org.pkijs.simpl.cades.RevocationInfoArchival({schema:this.attrValues[0]})}},e.org.pkijs.simpl.cms.Attribute.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.attrType}),new e.org.pkijs.asn1.SET({value:this.attrValues})]})},e.org.pkijs.simpl.cms.Attribute.prototype.toJSON=function(){var e={attrType:this.attrType};e.attrValues=new Array;for(var t=0;t<this.attrValues.length;t++)e.attrValues.push(this.attrValues[t].toJSON());return e},e.org.pkijs.simpl.cms.RSAES_OAEP_params=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("hashAlgorithm"in arguments[0]&&(this.hashAlgorithm=arguments[0].hashAlgorithm),"maskGenAlgorithm"in arguments[0]&&(this.maskGenAlgorithm=arguments[0].maskGenAlgorithm),"pSourceAlgorithm"in arguments[0]&&(this.pSourceAlgorithm=arguments[0].pSourceAlgorithm))},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RSAES_OAEP_params({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},maskGenAlgorithm:{names:{block_name:"maskGenAlgorithm"}},pSourceAlgorithm:{names:{block_name:"pSourceAlgorithm"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RSAES_OAEP_params");"hashAlgorithm"in i.result&&(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.hashAlgorithm})),"maskGenAlgorithm"in i.result&&(this.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.maskGenAlgorithm})),"pSourceAlgorithm"in i.result&&(this.pSourceAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.pSourceAlgorithm}))},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.toSchema=function(){var t=new Array;return"hashAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.hashAlgorithm.toSchema()]})),"maskGenAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.maskGenAlgorithm.toSchema()]})),"pSourceAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.pSourceAlgorithm.toSchema()]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.toJSON=function(){var e={};return"hashAlgorithm"in this&&(e.hashAlgorithm=this.hashAlgorithm.toJSON()),"maskGenAlgorithm"in this&&(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),"pSourceAlgorithm"in this&&(e.pSourceAlgorithm=this.pSourceAlgorithm.toJSON()),e},e.org.pkijs.simpl.cms.PBKDF2_params=function(){this.salt=new e.org.pkijs.emptyObject,this.iterationCount=0,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PBKDF2_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.salt=arguments[0].salt||new e.org.pkijs.emptyObject,this.iterationCount=arguments[0].iterationCount||0,"keyLength"in arguments[0]&&(this.keyLength=arguments[0].keyLength),"prf"in arguments[0]&&(this.prf=arguments[0].prf))},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PBKDF2_params({names:{salt_primitive:"salt",salt_constructed:{names:{block_name:"salt"}},iterationCount:"iterationCount",keyLength:"keyLength",prf:{names:{block_name:"prf",optional:!0}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PBKDF2_params");this.salt=i.result.salt,this.iterationCount=i.result.iterationCount.value_block.value_dec,"keyLength"in i.result&&(this.keyLength=i.result.keyLength.value_block.value_dec),"prf"in i.result&&(this.prf=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.prf}))},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.toSchema=function(){var t=new Array;return t.push(this.salt),t.push(new e.org.pkijs.asn1.INTEGER({value:this.iterationCount})),"keyLength"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.keyLength})),"prf"in this&&t.push(this.prf.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.toJSON=function(){var e={salt:this.salt.toJSON(),iterationCount:this.iterationCount};return"keyLength"in this&&(e.keyLength=this.keyLength),"prf"in this&&(e.prf=this.prf.toJSON()),e},e.org.pkijs.simpl.cms.PBES2_params=function(){this.keyDerivationFunc=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptionScheme=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PBES2_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyDerivationFunc=arguments[0].keyDerivationFunc||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptionScheme=arguments[0].encryptionScheme||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER)},e.org.pkijs.simpl.cms.PBES2_params.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PBES2_params({names:{keyDerivationFunc:{names:{block_name:"keyDerivationFunc"}},encryptionScheme:{names:{block_name:"encryptionScheme"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PBES2_params");this.keyDerivationFunc=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyDerivationFunc}),this.encryptionScheme=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.encryptionScheme})},e.org.pkijs.simpl.cms.PBES2_params.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.keyDerivationFunc.toSchema(),this.encryptionScheme.toSchema()]})},e.org.pkijs.simpl.cms.PBES2_params.prototype.toJSON=function(){return{keyDerivationFunc:this.keyDerivationFunc.toJSON(),encryptionScheme:this.encryptionScheme.toJSON()}},e.org.pkijs.simpl.cms.SignedUnsignedAttributes=function(){this.type=0,this.attributes=new Array,this.encoded_value=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||0,this.attributes=arguments[0].attributes||new Array)},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.SignedUnsignedAttributes({names:{attributes:"attributes"}},this.type));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for SignedUnsignedAttributes");if(this.type=i.result.id_block.tag_number,this.encoded_value=i.result.value_before_decode,new Uint8Array(this.encoded_value)[0]=49,"attributes"in i.result!=!1)for(var n=i.result.attributes,o=0;o<n.length;o++)this.attributes.push(new e.org.pkijs.simpl.cms.Attribute({schema:n[o]}));else if(0===this.type)throw new Error("Wrong structure of SignedUnsignedAttributes")},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.attributes.length;i++)t.push(this.attributes[i].toSchema());return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:this.type},value:t})},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.toJSON=function(){var e={type:this.type};e.attributes=new Array;for(var t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON());return e},e.org.pkijs.simpl.CMS_SIGNER_INFO=function(){this.version=0,this.sid=new e.org.pkijs.asn1.ANY,this.digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.sid=arguments[0].sid||new e.org.pkijs.asn1.ANY,this.digestAlgorithm=arguments[0].digestAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"signedAttrs"in arguments[0]&&(this.signedAttrs=arguments[0].signedAttrs),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.OCTETSTRING,"unsignedAttrs"in arguments[0]&&(this.unsignedAttrs=arguments[0].unsignedAttrs))},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_SIGNER_INFO());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_SIGNER_INFO");this.version=i.result["SignerInfo.version"].value_block.value_dec;var n=i.result["SignerInfo.sid"];1===n.id_block.tag_class?this.sid=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:n}):this.sid=n,this.digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result["SignerInfo.digestAlgorithm"]}),"SignerInfo.signedAttrs"in i.result&&(this.signedAttrs=new e.org.pkijs.simpl.cms.SignedUnsignedAttributes({schema:i.result["SignerInfo.signedAttrs"]})),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result["SignerInfo.signatureAlgorithm"]}),this.signature=i.result["SignerInfo.signature"],"SignerInfo.unsignedAttrs"in i.result&&(this.unsignedAttrs=new e.org.pkijs.simpl.cms.SignedUnsignedAttributes,this.unsignedAttrs.type=1,this.unsignedAttrs.fromSchema(i.result["SignerInfo.unsignedAttrs"]))},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),this.sid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?t.push(this.sid.toSchema()):t.push(this.sid),t.push(this.digestAlgorithm.toSchema()),"signedAttrs"in this&&t.push(this.signedAttrs.toSchema()),t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"unsignedAttrs"in this&&t.push(this.unsignedAttrs.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.toJSON=function(){var t={version:this.version};return this.sid instanceof e.org.pkijs.asn1.ANY||(t.sid=this.sid.toJSON()),t.digestAlgorithm=this.digestAlgorithm.toJSON(),"signedAttrs"in this&&(t.signedAttrs=this.signedAttrs.toJSON()),t.signatureAlgorithm=this.signatureAlgorithm.toJSON(),t.signature=this.signature.toJSON(),"unsignedAttrs"in this&&(t.unsignedAttrs=this.unsignedAttrs.toJSON()),t},e.org.pkijs.simpl.cms.EncapsulatedContentInfo=function(){if(this.eContentType="",arguments[0]instanceof Object&&"schema"in arguments[0])e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.fromSchema.call(this,arguments[0].schema);else if(arguments[0]instanceof Object&&(this.eContentType=arguments[0].eContentType||"","eContent"in arguments[0]&&(this.eContent=arguments[0].eContent,1===this.eContent.id_block.tag_class&&4===this.eContent.id_block.tag_number&&!1===this.eContent.id_block.is_constructed))){for(var t=new e.org.pkijs.asn1.OCTETSTRING({id_block:{is_constructed:!0},is_constructed:!0}),i=0,n=this.eContent.value_block.value_hex.byteLength;n>0;){for(var o=new Uint8Array(this.eContent.value_block.value_hex,i,i+65536>this.eContent.value_block.value_hex.byteLength?this.eContent.value_block.value_hex.byteLength-i:65536),r=new ArrayBuffer(o.length),a=new Uint8Array(r),s=0;s<a.length;s++)a[s]=o[s];t.value_block.value.push(new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})),n-=o.length,i+=o.length}this.eContent=t}},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.EncapsulatedContentInfo({names:{eContentType:"eContentType",eContent:"eContent"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for EncapsulatedContentInfo");this.eContentType=i.result.eContentType.value_block.toString(),"eContent"in i.result&&(this.eContent=i.result.eContent)},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.eContentType})),"eContent"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[this.eContent]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.toJSON=function(){var e={eContentType:this.eContentType};return"eContent"in this&&(e.eContent=this.eContent.toJSON()),e},e.org.pkijs.simpl.CMS_SIGNED_DATA=function(){this.version=0,this.digestAlgorithms=new Array,this.encapContentInfo=new e.org.pkijs.simpl.cms.EncapsulatedContentInfo,this.signerInfos=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.digestAlgorithms=arguments[0].digestAlgorithms||new Array,this.encapContentInfo=arguments[0].encapContentInfo||new e.org.pkijs.simpl.cms.EncapsulatedContentInfo,"certificates"in arguments[0]&&(this.certificates=arguments[0].certificates),"crls"in arguments[0]&&(this.crls=arguments[0].crls),this.signerInfos=arguments[0].signerInfos||new Array)},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_SIGNED_DATA());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_SIGNED_DATA");this.version=i.result["SignedData.version"].value_block.value_dec;for(var n=i.result["SignedData.digestAlgorithms"],o=0;o<n.length;o++)this.digestAlgorithms.push(new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n[o]}));if(this.encapContentInfo=new e.org.pkijs.simpl.cms.EncapsulatedContentInfo({schema:i.result["SignedData.encapContentInfo"]}),"SignedData.certificates"in i.result){this.certificates=new Array;for(var r=i.result["SignedData.certificates"],a=0;a<r.length;a++)1===r[a].id_block.tag_class?this.certificates.push(new e.org.pkijs.simpl.CERT({schema:r[a]})):3==r[a].id_block.tag_class&&3==r[a].id_block.tag_number&&(r[a].id_block.tag_class=1,r[a].id_block.tag_number=16,this.certificates.push(new e.org.pkijs.simpl.cms.OtherCertificateFormat({schema:r[a]})))}if("SignedData.crls"in i.result){this.crls=new Array;for(var s=i.result["SignedData.crls"],c=0;c<s.length;c++)1===s[c].id_block.tag_class?this.crls.push(new e.org.pkijs.simpl.CRL({schema:s[c]})):(s[c].id_block.tag_class=1,s[c].id_block.tag_number=16,this.crls.push(new e.org.pkijs.simpl.cms.OtherRevocationInfoFormat({schema:s[c]})))}for(var l=i.result["SignedData.signerInfos"],u=0;u<l.length;u++)this.signerInfos.push(new e.org.pkijs.simpl.CMS_SIGNER_INFO({schema:l[u]}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.toSchema=function(t){void 0===t&&(t=!1);var i=new Array;i.push(new e.org.pkijs.asn1.INTEGER({value:this.version}));for(var n=new Array,o=0;o<this.digestAlgorithms.length;o++)n.push(this.digestAlgorithms[o].toSchema(t));if(i.push(new e.org.pkijs.asn1.SET({value:n})),i.push(this.encapContentInfo.toSchema()),"certificates"in this){for(var r=new Array,a=0;a<this.certificates.length;a++)if(this.certificates[a]instanceof e.org.pkijs.simpl.cms.OtherCertificateFormat){var s=this.certificates[a].toSchema(t);s.id_block.tag_class=3,s.id_block.tag_number=3,r.push(s)}else r.push(this.certificates[a].toSchema(t));i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:r}))}if("crls"in this){for(var c=new Array,l=0;l<this.crls.length;l++)if(this.crls[l]instanceof e.org.pkijs.simpl.cms.OtherRevocationInfoFormat){var u=this.crls[l].toSchema(t);u.id_block.tag_class=3,u.id_block.tag_number=1,c.push(u)}else c.push(this.crls[l].toSchema(t));i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:c}))}for(var p=new Array,h=0;h<this.signerInfos.length;h++)p.push(this.signerInfos[h].toSchema(t));return i.push(new e.org.pkijs.asn1.SET({value:p})),new e.org.pkijs.asn1.SEQUENCE({value:i})},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.verify=function(){var t,i,n=Promise.resolve(),o=this.certificates,r=this.signerInfos,a=this.encapContentInfo,s=new ArrayBuffer(0),c=new ArrayBuffer(0),l="",u=-1,p={},h=new Array,g=new Date,m=!0,d=this,S=!1,f=e.org.pkijs.getCrypto();if(void 0===f)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object&&("signer"in arguments[0]&&(u=arguments[0].signer),"data"in arguments[0]&&(s=arguments[0].data),"trusted_certs"in arguments[0]&&(h=arguments[0].trusted_certs),"checkDate"in arguments[0]&&(g=arguments[0].checkDate),"checkChain"in arguments[0]&&(m=arguments[0].checkChain),"includeSignerCertificate"in arguments[0]&&arguments[0].includeSignerCertificate,"extendedMode"in arguments[0]&&(S=arguments[0].extendedMode)),-1===u)return S?Promise.reject({date:g,code:1,message:"Unable to get signer index from input parameters",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to get signer index from input parameters");if("certificates"in this==!1)return S?Promise.reject({date:g,code:2,message:"No certificates attached to this signed data",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("No certificates attached to this signed data");function _(e){if(!0===e.issuer.isEqual(p.issuer)&&!0===e.serialNumber.isEqual(p.serialNumber))return null;for(var t=!1,i=0;i<e.extensions.length;i++)"2.5.29.19"===e.extensions[i].extnID&&"cA"in e.extensions[i].parsedValue&&!0===e.extensions[i].parsedValue.cA&&(t=!0);return t?e:null}n=this.signerInfos[u].sid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?n.then((function(){for(var t=0;o.length;t++)if(o[t]instanceof e.org.pkijs.simpl.CERT!=0&&o[t].issuer.isEqual(r[u].sid.issuer)&&o[t].serialNumber.isEqual(r[u].sid.serialNumber))return p=o[t],Promise.resolve();return S?Promise.reject({date:g,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")})):n.then((function(){for(var t=new Array,i=0;i<o.length;i++)o[i]instanceof e.org.pkijs.simpl.CERT!=0&&t.push(f.digest({name:"sha-1"},new Uint8Array(o[i].subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex)));return Promise.all(t).then((function(t){for(var i=0;i<o.length;i++)if(o[i]instanceof e.org.pkijs.simpl.CERT!=0&&e.org.pkijs.isEqual_buffer(t[i],r[u].sid.value_block.value_hex))return p=o[i],Promise.resolve();return S?Promise.reject({date:g,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")}),(function(e){return S?Promise.reject({date:g,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")}))})),n=n.then((function(){if("1.2.840.113549.1.9.16.1.4"==a.eContentType){if("eContent"in a==0)return!1;var t,i=e.org.pkijs.fromBER(a.eContent.value_block.value_hex);try{t=new e.org.pkijs.simpl.TST_INFO({schema:i.result})}catch(e){return!1}return 0===s.byteLength?S?Promise.reject({date:g,code:4,message:"Missed detached data input array",signatureVerified:null,signerCertificate:p,signerCertificateVerified:null}):Promise.reject("Missed detached data input array"):t.verify({data:s})}return!0}));for(var y=new Array,b=0;b<this.certificates.length;b++)this.certificates[b]instanceof e.org.pkijs.simpl.CERT!=0&&y.push(_(this.certificates[b]));return m&&(n=n.then((function(t){return 0!=t&&Promise.all(y).then((function(t){for(var i=new Array,n=0;n<t.length;n++)null!==t[n]&&i.push(t[n]);i.push(p);var o=new e.org.pkijs.simpl.CERT_CHAIN({checkDate:g,certs:i,trusted_certs:h});if("crls"in d)for(n=0;n<d.crls.length;n++)d.crls[n]instanceof e.org.pkijs.simpl.CRL?o.crls.push(d.crls[n]):"1.3.6.1.5.5.7.48.1.1"==d.crls[n].otherRevInfoFormat&&o.ocsps.push(new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:d.crls[n].otherRevInfo}));if("ocsps"in d)for(n=0;n<d.ocsps.length;n++)o.ocsps.push(d.ocsps[n]);return o.verify().then((function(e){return!0===e.result?Promise.resolve(!0):S?Promise.reject({date:g,code:5,message:"Validation of signer's certificate failed",signatureVerified:null,signerCertificate:p,signerCertificateVerified:!1}):Promise.reject("Validation of signer's certificate failed")}),(function(e){return S?Promise.reject({date:g,code:5,message:"Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e),signatureVerified:null,signerCertificate:p,signerCertificateVerified:!1}):Promise.reject("Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e))}))}),(function(e){return S?Promise.reject({date:g,code:6,message:"Error during checking certificates for CA flag: "+e,signatureVerified:null,signerCertificate:p,signerCertificateVerified:null}):Promise.reject("Error during checking certificates for CA flag: "+e)}))}))),n=(n=n.then((function(t){if(0==t)return!1;var i=e.org.pkijs.getAlgorithmByOID(r[u].digestAlgorithm.algorithm_id);if("name"in i==!1)return S?Promise.reject({date:g,code:7,message:"Error during checking certificates for CA flag: "+promiseError,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unsupported signature algorithm: "+d.signerInfos[u].digestAlgorithm.algorithm_id);l=i.name}))).then((function(t){if(0==t)return!1;if("eContent"in a)if(1===a.eContent.id_block.tag_class&&4===a.eContent.id_block.tag_number)if(!1===a.eContent.id_block.is_constructed)s=a.eContent.value_block.value_hex;else for(var i=0;i<a.eContent.value_block.value.length;i++)s=e.org.pkijs.concat_buffers(s,a.eContent.value_block.value[i].value_block.value_hex);else s=a.eContent.value_block.value_hex;else if(0===s.byteLength)return S?Promise.reject({date:g,code:8,message:"Missed detached data input array",signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Missed detached data input array");if("signedAttrs"in r[u]){var n=!1,o=!1;for(i=0;i<r[u].signedAttrs.attributes.length&&("1.2.840.113549.1.9.3"==r[u].signedAttrs.attributes[i].attrType&&(n=!0),"1.2.840.113549.1.9.4"==r[u].signedAttrs.attributes[i].attrType&&(o=!0,c=r[u].signedAttrs.attributes[i].attrValues[0].value_block.value_hex),!n||!o);i++);if(0==n)return S?Promise.reject({date:g,code:9,message:'Attribute "content-type" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject('Attribute "content-type" is a mandatory attribute for "signed attributes"');if(0==o)return S?Promise.reject({date:g,code:10,message:'Attribute "message-digest" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject('Attribute "message-digest" is a mandatory attribute for "signed attributes"')}return!0})),n=n.then((function(t){if(0==t)return!1;var i=e.org.pkijs.getAlgorithmByOID(p.signatureAlgorithm.algorithm_id);if("name"in i==!1)return S?Promise.reject({date:g,code:11,message:"Unsupported public key algorithm: "+p.signatureAlgorithm.algorithm_id,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unsupported public key algorithm: "+p.signatureAlgorithm.algorithm_id);var n=i.name,o=e.org.pkijs.getAlgorithmParameters(n,"importkey");if("hash"in o.algorithm&&(o.algorithm.hash.name=l),"ECDSA"===n){if(p.subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var r=e.org.pkijs.getAlgorithmByOID(p.subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in r==!1)return Promise.reject("Unsupported named curve algorithm: "+p.subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());o.algorithm.namedCurve=r.name}var a=p.subjectPublicKeyInfo.toSchema().toBER(!1),s=new Uint8Array(a);return f.importKey("spki",s,o.algorithm,!0,o.usages)})),n=(n=n.then((function(e){return"boolean"!=typeof e&&(t=e,!("signedAttrs"in r[u])||f.digest(l,new Uint8Array(s)))})).then((function(t){return!("signedAttrs"in r[u])||!!e.org.pkijs.isEqual_buffer(t,c)&&(s=r[u].signedAttrs.encoded_value,!0)})).then((function(n){if(0==n)return!1;if("hash"in(i=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify")).algorithm&&(i.algorithm.hash.name=l),"RSA-PSS"===t.algorithm.name){var o;try{o=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r[u].signatureAlgorithm.algorithm_params})}catch(e){return S?Promise.reject({date:g,code:12,message:e,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject(e)}i.algorithm.saltLength="saltLength"in o?o.saltLength:20;var a="SHA-1";if("hashAlgorithm"in o){var c=e.org.pkijs.getAlgorithmByOID(o.hashAlgorithm.algorithm_id);if("name"in c==!1)return S?Promise.reject({date:g,code:13,message:"Unrecognized hash algorithm: "+o.hashAlgorithm.algorithm_id,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unrecognized hash algorithm: "+o.hashAlgorithm.algorithm_id);a=c.name}i.algorithm.hash.name=a}var h=r[u].signature.value_block.value_hex;if("ECDSA"===t.algorithm.name){var m=e.org.pkijs.fromBER(h);h=e.org.pkijs.createECDSASignatureFromCMS(m.result)}return f.verify(i.algorithm,t,new Uint8Array(h),new Uint8Array(s))}))).then((function(e){return S?{date:g,code:14,message:"",signatureVerified:e,signerCertificate:p,signerCertificateVerified:!0}:e}),(function(e){return S?"code"in e?Promise.reject(e):Promise.reject({date:g,code:15,message:"Error during verification: "+e.message,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject(e)}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.sign=function(t,i,n,o){var r=this;o=o||new ArrayBuffer(0);var a="";if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n&&(n="SHA-1"),""===(a=e.org.pkijs.getOIDByAlgorithm({name:n})))return Promise.reject("Unsupported hash algorithm: "+n);for(var s=!1,c=0;c<r.digestAlgorithms.length;c++)if(r.digestAlgorithms[c].algorithm_id===a){s=!0;break}!1===s&&r.digestAlgorithms.push(new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL})),r.signerInfos[i].digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL});var l=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(l.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":r.signerInfos[i].signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(l.algorithm);break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":l.algorithm.saltLength=32;break;case"SHA-384":l.algorithm.saltLength=48;break;case"SHA-512":l.algorithm.saltLength=64}var u={};if("SHA-1"!==n.toUpperCase()){if(""===(a=e.org.pkijs.getOIDByAlgorithm({name:n})))return Promise.reject("Unsupported hash algorithm: "+n);u.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),u.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:u.hashAlgorithm.toSchema()})}20!==l.algorithm.saltLength&&(u.saltLength=l.algorithm.saltLength);var p=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(u);r.signerInfos[i].signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:p.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}if("signedAttrs"in r.signerInfos[i])0!==r.signerInfos[i].signedAttrs.encoded_value.byteLength?o=r.signerInfos[i].signedAttrs.encoded_value:(o=r.signerInfos[i].signedAttrs.toSchema(!0).toBER(!1),new Uint8Array(o)[0]=49);else if("eContent"in r.encapContentInfo)if(1===r.encapContentInfo.eContent.id_block.tag_class&&4===r.encapContentInfo.eContent.id_block.tag_number)if(!1===r.encapContentInfo.eContent.id_block.is_constructed)o=r.encapContentInfo.eContent.value_block.value_hex;else for(c=0;c<r.encapContentInfo.eContent.value_block.value.length;c++)o=e.org.pkijs.concat_buffers(o,r.encapContentInfo.eContent.value_block.value[c].value_block.value_hex);else o=r.encapContentInfo.eContent.value_block.value_hex;else if(0===o.byteLength)return Promise.reject("Missed detached data input array");var h=e.org.pkijs.getCrypto();return void 0===h?Promise.reject("Unable to create WebCrypto object"):h.sign(l.algorithm,t,new Uint8Array(o)).then((function(t){return"ECDSA"===l.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),r.signerInfos[i].signature=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t}),Promise.resolve(t)}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.toJSON=function(){var e={version:this.version};e.digestAlgorithms=new Array;for(var t=0;t<this.digestAlgorithms.length;t++)e.digestAlgorithms.push(this.digestAlgorithms[t].toJSON());if(e.encapContentInfo=this.encapContentInfo.toJSON(),"certificates"in this){e.certificates=new Array;for(t=0;t<this.certificates.length;t++)e.certificates.push(this.certificates[t].toJSON())}if("crls"in this){e.crls=new Array;for(t=0;t<this.crls.length;t++)e.crls.push(this.crls[t].toJSON())}e.signerInfos=new Array;for(t=0;t<this.signerInfos.length;t++)e.signerInfos.push(this.signerInfos[t].toJSON());return e},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo=function(){this.keyInfo=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.suppPubInfo=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyInfo=arguments[0].keyInfo||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"entityUInfo"in arguments[0]&&(this.entityUInfo=arguments[0].entityUInfo),this.suppPubInfo=arguments[0].suppPubInfo||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.ECC_CMS_SharedInfo({names:{keyInfo:{names:{block_name:"keyInfo"}},entityUInfo:"entityUInfo",suppPubInfo:"suppPubInfo"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ECC_CMS_SharedInfo");this.keyInfo=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyInfo}),"entityUInfo"in i.result&&(this.entityUInfo=i.result.entityUInfo.value_block.value[0]),this.suppPubInfo=i.result.suppPubInfo.value_block.value[0]},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.toSchema=function(){var t=new Array;return t.push(this.keyInfo.toSchema()),"entityUInfo"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.entityUInfo]})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.suppPubInfo]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.toJSON=function(){var e={keyInfo:this.keyInfo.toJSON()};return"entityUInfo"in this&&(e.entityUInfo=this.entityUInfo.toJSON()),e.suppPubInfo=this.suppPubInfo.toJSON(),e},e.org.pkijs.simpl.cms.RecipientIdentifier=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientIdentifier({names:{block_name:"block_name"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RecipientIdentifier");1===i.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:i.result.block_name})):(this.variant=2,this.value=i.result.block_name.value_block.value[0])},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.value]});default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.KeyTransRecipientInfo=function(){this.version=-1,this.rid=new e.org.pkijs.emptyObject,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.recipientCertificate=new e.org.pkijs.simpl.CERT,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||-1,this.rid=arguments[0].rid||new e.org.pkijs.emptyObject,this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.recipientCertificate=arguments[0].recipientCertificate||new e.org.pkijs.simpl.CERT)},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyTransRecipientInfo({names:{version:"version",rid:{names:{block_name:"rid"}},keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for KeyTransRecipientInfo");this.version=i.result.version.value_block.value_dec,3===i.result.rid.id_block.tag_class?this.rid=i.result.rid.value_block.value[0]:this.rid=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:i.result.rid}),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyEncryptionAlgorithm}),this.encryptedKey=i.result.encryptedKey},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.toSchema=function(){var t=new Array;return this.rid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?(this.version=0,t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.rid.toSchema())):(this.version=2,t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.rid]}))),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.encryptedKey),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.toJSON=function(){return{version:this.version,rid:this.rid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.OriginatorPublicKey=function(){this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.publicKey=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm=arguments[0].algorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.publicKey=arguments[0].publicKey||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorPublicKey({names:{algorithm:{names:{block_name:"algorithm"}},publicKey:"publicKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OriginatorPublicKey");this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.algorithm}),this.publicKey=i.result.publicKey},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.algorithm.toSchema(),this.publicKey]})},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.toJSON=function(){return{algorithm:this.algorithm.toJSON(),publicKey:this.publicKey.toJSON()}},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorIdentifierOrKey({names:{block_name:"block_name"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OriginatorIdentifierOrKey");1===i.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:i.result.block_name})):0===i.result.block_name.id_block.tag_number?(i.result.block_name.id_block.tag_class=1,i.result.block_name.id_block.tag_number=4,this.variant=2,this.value=i.result.block_name):(i.result.block_name.id_block.tag_class=1,i.result.block_name.id_block.tag_number=16,this.variant=3,this.value=new e.org.pkijs.simpl.cms.OriginatorPublicKey({schema:i.result.block_name}))},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return this.value.id_block.tag_class=3,this.value.id_block.tag_number=0,this.value;case 3:var t=this.value.toSchema();return t.id_block.tag_class=3,t.id_block.tag_number=1,t;default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant&&3!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.OtherKeyAttribute=function(){this.keyAttrId="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyAttrId=arguments[0].keyAttrId||new e.org.pkijs.asn1.OID,"keyAttr"in arguments[0]&&(this.keyAttr=arguments[0].keyAttr))},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherKeyAttribute({names:{keyAttrId:"keyAttrId",keyAttr:"keyAttr"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OtherKeyAttribute");this.keyAttrId=i.result.keyAttrId.value_block.toString(),"keyAttr"in i.result&&(this.keyAttr=i.result.keyAttr)},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.keyAttrId})),"keyAttr"in this&&t.push(this.keyAttr.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.toJSON=function(){var e={keyAttrId:this.keyAttrId};return"keyAttr"in this&&(e.keyAttr=this.keyAttr.toJSON()),e},e.org.pkijs.simpl.cms.RecipientKeyIdentifier=function(){this.subjectKeyIdentifier=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.subjectKeyIdentifier=arguments[0].subjectKeyIdentifier||new e.org.pkijs.asn1.OCTETSTRING,"date"in arguments[0]&&(this.date=arguments[0].date),"other"in arguments[0]&&(this.other=arguments[0].other))},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientKeyIdentifier({names:{subjectKeyIdentifier:"subjectKeyIdentifier",date:"date",other:{names:{block_name:"other"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RecipientKeyIdentifier");this.subjectKeyIdentifier=i.result.subjectKeyIdentifier,"date"in i.result&&(this.date=i.result.date),"other"in i.result&&(this.other=new e.org.pkijs.simpl.cms.OtherKeyAttribute({schema:i.result.other}))},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.toSchema=function(){var t=new Array;return t.push(this.subjectKeyIdentifier),"date"in this&&t.push(this.date),"other"in this&&t.push(this.other.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.toJSON=function(){var e={subjectKeyIdentifier:this.subjectKeyIdentifier.toJSON()};return"date"in this&&(e.date=this.date),"other"in this&&(e.other=this.other.toJSON()),e},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier({names:{block_name:"block_name"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for KeyAgreeRecipientIdentifier");1===i.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:i.result.block_name})):(this.variant=2,i.result.block_name.id_block.tag_class=1,i.result.block_name.id_block.tag_number=16,this.value=new e.org.pkijs.simpl.cms.RecipientKeyIdentifier({schema:i.result.block_name}))},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:this.value.toSchema().value_block.value});default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.RecipientEncryptedKey=function(){this.rid=new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.rid=arguments[0].rid||new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientEncryptedKey({names:{rid:{names:{block_name:"rid"}},encryptedKey:"encryptedKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RecipientEncryptedKey");this.rid=new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier({schema:i.result.rid}),this.encryptedKey=i.result.encryptedKey},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.rid.toSchema(),this.encryptedKey]})},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.toJSON=function(){return{rid:this.rid.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.RecipientEncryptedKeys=function(){this.encryptedKeys=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.encryptedKeys=arguments[0].encryptedKeys||new Array)},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientEncryptedKeys({names:{RecipientEncryptedKeys:"RecipientEncryptedKeys"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RecipientEncryptedKeys");for(var n=i.result.RecipientEncryptedKeys,o=0;o<n.length;o++)this.encryptedKeys.push(new e.org.pkijs.simpl.cms.RecipientEncryptedKey({schema:n[o]}))},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.encryptedKeys.length;i++)t.push(this.encryptedKeys[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.toJSON=function(){var e={};e.encryptedKeys=new Array;for(var t=0;t<this.encryptedKeys.length;t++)e.encryptedKeys.push(this.encryptedKeys[t].toJSON());return e},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo=function(){this.version=0,this.originator=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.recipientEncryptedKeys=new e.org.pkijs.simpl.cms.RecipientEncryptedKeys,this.recipientCertificate=new e.org.pkijs.simpl.CERT,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.originator=arguments[0].originator||new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey,"ukm"in arguments[0]&&(this.ukm=arguments[0].ukm),this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.recipientEncryptedKeys=arguments[0].recipientEncryptedKeys||new e.org.pkijs.simpl.cms.RecipientEncryptedKeys,this.recipientCertificate=arguments[0].recipientCertificate||new e.org.pkijs.simpl.CERT)},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyAgreeRecipientInfo({names:{version:"version",originator:{names:{block_name:"originator"}},ukm:"ukm",keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},recipientEncryptedKeys:{names:{block_name:"recipientEncryptedKeys"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for KeyAgreeRecipientInfo");this.version=i.result.version.value_block.value_dec,this.originator=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey({schema:i.result.originator}),"ukm"in i.result&&(this.ukm=i.result.ukm),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyEncryptionAlgorithm}),this.recipientEncryptedKeys=new e.org.pkijs.simpl.cms.RecipientEncryptedKeys({schema:i.result.recipientEncryptedKeys})},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.originator.toSchema()]})),"ukm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[this.ukm]})),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.recipientEncryptedKeys.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.toJSON=function(){return{version:this.version,originator:this.originator.toJSON(),ukm:this.ukm.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),recipientEncryptedKeys:this.recipientEncryptedKeys.toJSON()}},e.org.pkijs.simpl.cms.KEKIdentifier=function(){this.keyIdentifier=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KEKIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyIdentifier=arguments[0].keyIdentifier||new e.org.pkijs.asn1.OCTETSTRING,"date"in arguments[0]&&(this.date=arguments[0].date),"other"in arguments[0]&&(this.other=arguments[0].other))},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KEKIdentifier({names:{keyIdentifier:"keyIdentifier",date:"date",other:{names:{block_name:"other"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for KEKIdentifier");this.keyIdentifier=i.result.keyIdentifier,"date"in i.result&&(this.date=i.result.date),"other"in i.result&&(this.other=new e.org.pkijs.simpl.cms.OtherKeyAttribute({schema:i.result.other}))},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.toSchema=function(){var t=new Array;return t.push(this.keyIdentifier),"date"in this&&t.push(this.date),"other"in this&&t.push(this.other.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.toJSON=function(){var e={keyIdentifier:this.keyIdentifier.toJSON()};return"date"in this&&(e.date=this.date),"other"in this&&(e.other=this.other.toJSON()),e},e.org.pkijs.simpl.cms.KEKRecipientInfo=function(){this.version=0,this.kekid=new e.org.pkijs.simpl.cms.KEKIdentifier,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.preDefinedKEK=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.kekid=arguments[0].kekid||new e.org.pkijs.simpl.cms.KEKIdentifier,this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.preDefinedKEK=arguments[0].preDefinedKEK||new ArrayBuffer(0))},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KEKRecipientInfo({names:{version:"version",kekid:{names:{block_name:"kekid"}},keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for KEKRecipientInfo");this.version=i.result.version.value_block.value_dec,this.kekid=new e.org.pkijs.simpl.cms.KEKIdentifier({schema:i.result.kekid}),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyEncryptionAlgorithm}),this.encryptedKey=i.result.encryptedKey},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({value:this.version}),this.kekid.toSchema(),this.keyEncryptionAlgorithm.toSchema(),this.encryptedKey]})},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.toJSON=function(){return{version:this.version,kekid:this.originator.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.PasswordRecipientinfo=function(){this.version=-1,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.password=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version="version"in arguments[0]?arguments[0].version:-1,"keyDerivationAlgorithm"in arguments[0]&&(this.keyDerivationAlgorithm=arguments[0].keyDerivationAlgorithm),this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.password=arguments[0].password||new ArrayBuffer(0))},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PasswordRecipientinfo({names:{version:"version",keyDerivationAlgorithm:"keyDerivationAlgorithm",keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PasswordRecipientinfo");this.version=i.result.version.value_block.value_dec,"keyDerivationAlgorithm"in i.result&&(i.result.keyDerivationAlgorithm.id_block.tag_class=1,i.result.keyDerivationAlgorithm.id_block.tag_number=16,this.keyDerivationAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyDerivationAlgorithm})),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.keyEncryptionAlgorithm}),this.encryptedKey=i.result.encryptedKey},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),"keyDerivationAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:this.keyDerivationAlgorithm.toSchema().value_block.value})),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.encryptedKey),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.toJSON=function(){return{version:this.version,keyDerivationAlgorithm:this.keyDerivationAlgorithm.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.OtherRecipientInfo=function(){this.oriType="",this.oriValue=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.oriType=arguments[0].oriType||"",this.oriValue=arguments[0].oriValue||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherRecipientInfo({names:{oriType:"oriType",oriValue:"oriValue"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OtherRecipientInfo");this.oriType=i.result.oriType.value_block.toString(),this.oriValue=i.result.oriValue},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.oriType}),this.oriValue]})},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.toJSON=function(){var t={oriType:this.oriType};return this.oriValue instanceof e.org.pkijs.asn1.ANY||(t.oriValue=this.oriValue.toJSON()),t},e.org.pkijs.simpl.CMS_RECIPIENT_INFO=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_RECIPIENT_INFO({names:{block_name:"block_name"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_RECIPIENT_INFO");if(1===i.result.block_name.id_block.tag_class)this.variant=1,this.value=new e.org.pkijs.simpl.cms.KeyTransRecipientInfo({schema:i.result.block_name});else{var n=i.result.block_name.id_block.tag_number;switch(i.result.block_name.id_block.tag_class=1,i.result.block_name.id_block.tag_number=16,n){case 1:this.variant=2,this.value=new e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo({schema:i.result.block_name});break;case 2:this.variant=3,this.value=new e.org.pkijs.simpl.cms.KEKRecipientInfo({schema:i.result.block_name});break;case 3:this.variant=4,this.value=new e.org.pkijs.simpl.cms.PasswordRecipientinfo({schema:i.result.block_name});break;case 4:this.variant=5,this.value=new e.org.pkijs.simpl.cms.OtherRecipientInfo({schema:i.result.block_name})}}},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.toSchema=function(){var t=this.value.toSchema();switch(this.variant){case 1:return t;case 2:case 3:case 4:return t.id_block.tag_class=3,t.id_block.tag_number=this.variant-1,t;default:return new e.org.pkijs.asn1.ANY}return new e.org.pkijs.asn1.ANY},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.OriginatorInfo=function(){this.certs=new e.org.pkijs.simpl.CMS_CERTIFICATE_SET,this.crls=new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certs=arguments[0].certs||new e.org.pkijs.simpl.CMS_CERTIFICATE_SET,this.crls=arguments[0].crls||new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES)},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorInfo({names:{certs:"certs",crls:"crls"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OriginatorInfo");i.result.certs.id_block.tag_class=1,i.result.certs.id_block.tag_number=17,this.certs=new e.org.pkijs.simpl.CMS_CERTIFICATE_SET({schema:i.result.certs}),i.result.crls.id_block.tag_class=1,i.result.crls.id_block.tag_number=17,this.crls=new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES({schema:i.result.crls})},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:this.certs.toSchema().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:this.crls.toSchema().value_block.value})]})},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.toJSON=function(){return{certs:this.certs.toJSON(),crls:this.crls.toJSON()}},e.org.pkijs.simpl.cms.EncryptedContentInfo=function(){if(this.contentType="",this.contentEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,arguments[0]instanceof Object&&"schema"in arguments[0])e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.fromSchema.call(this,arguments[0].schema);else if(arguments[0]instanceof Object&&(this.contentType=arguments[0].contentType||"",this.contentEncryptionAlgorithm=arguments[0].contentEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"encryptedContent"in arguments[0]&&(this.encryptedContent=arguments[0].encryptedContent,1===this.encryptedContent.id_block.tag_class&&4===this.encryptedContent.id_block.tag_number&&!1===this.encryptedContent.id_block.is_constructed))){for(var t=new e.org.pkijs.asn1.OCTETSTRING({id_block:{is_constructed:!0},is_constructed:!0}),i=0,n=this.encryptedContent.value_block.value_hex.byteLength;n>0;){for(var o=new Uint8Array(this.encryptedContent.value_block.value_hex,i,i+1024>this.encryptedContent.value_block.value_hex.byteLength?this.encryptedContent.value_block.value_hex.byteLength-i:1024),r=new ArrayBuffer(o.length),a=new Uint8Array(r),s=0;s<a.length;s++)a[s]=o[s];t.value_block.value.push(new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})),n-=o.length,i+=o.length}this.encryptedContent=t}},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.EncryptedContentInfo({names:{contentType:"contentType",contentEncryptionAlgorithm:{names:{block_name:"contentEncryptionAlgorithm"}},encryptedContent:"encryptedContent"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for EncryptedContentInfo");this.contentType=i.result.contentType.value_block.toString(),this.contentEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.contentEncryptionAlgorithm}),"encryptedContent"in i.result&&(this.encryptedContent=i.result.encryptedContent,this.encryptedContent.id_block.tag_class=1,this.encryptedContent.id_block.tag_number=4)},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.toSchema=function(){var t={is_indefinite_form:!1},i=new Array;if(i.push(new e.org.pkijs.asn1.OID({value:this.contentType})),i.push(this.contentEncryptionAlgorithm.toSchema()),"encryptedContent"in this){t.is_indefinite_form=this.encryptedContent.id_block.is_constructed;var n=this.encryptedContent;n.id_block.tag_class=3,n.id_block.tag_number=0,n.len_block.is_indefinite_form=this.encryptedContent.id_block.is_constructed,i.push(n)}return new e.org.pkijs.asn1.SEQUENCE({len_block:t,value:i})},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.toJSON=function(){var e={contentType:this.contentType,contentEncryptionAlgorithm:this.contentEncryptionAlgorithm.toJSON()};return"encryptedContent"in this&&(e.encryptedContent=this.encryptedContent.toJSON()),e},e.org.pkijs.simpl.CMS_ENVELOPED_DATA=function(){this.version=0,this.recipientInfos=new Array,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,"originatorInfo"in arguments[0]&&(this.originatorInfo=arguments[0].originatorInfo),this.recipientInfos=arguments[0].recipientInfos||new Array,this.encryptedContentInfo=arguments[0].encryptedContentInfo||new e.org.pkijs.simpl.cms.EncryptedContentInfo,"unprotectedAttrs"in arguments[0]&&(this.unprotectedAttrs=arguments[0].unprotectedAttrs))},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_ENVELOPED_DATA({names:{version:"version",originatorInfo:"originatorInfo",recipientInfos:"recipientInfos",encryptedContentInfo:{names:{block_name:"encryptedContentInfo"}},unprotectedAttrs:"unprotectedAttrs"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_ENVELOPED_DATA");this.version=i.result.version.value_block.value_dec,"originatorInfo"in i.result&&(i.result.originatorInfo.id_block.tag_class=1,i.result.originatorInfo.id_block.tag_number=16,this.originatorInfo=new e.org.pkijs.simpl.cms.OriginatorInfo({schema:i.result.originatorInfo}));for(var n=i.result.recipientInfos,o=0;o<n.length;o++)this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({schema:n[o]}));if(this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({schema:i.result.encryptedContentInfo}),"unprotectedAttrs"in i.result){this.unprotectedAttrs=new Array;for(var r=i.result.unprotectedAttrs,a=0;a<r.length;a++)this.unprotectedAttrs.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:r[a]}))}},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.toSchema=function(){var t=new Array;t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),"originatorInfo"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:this.originatorInfo.toSchema().value_block.value}));for(var i=new Array,n=0;n<this.recipientInfos.length;n++)i.push(this.recipientInfos[n].toSchema());if(t.push(new e.org.pkijs.asn1.SET({value:i})),t.push(this.encryptedContentInfo.toSchema()),"unprotectedAttrs"in this){for(var o=new Array,r=0;r<this.unprotectedAttrs.length;r++)o.push(this.unprotectedAttrs[r].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:o}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.toJSON=function(){var e={version:this.version};"originatorInfo"in this&&(e.originatorInfo=this.originatorInfo.toJSON()),e.recipientInfos=new Array;for(var t=0;t<this.recipientInfos.length;t++)e.recipientInfos.push(this.recipientInfos[t].toJSON());if(e.encryptedContentInfo=this.encryptedContentInfo.toJSON(),"unprotectedAttrs"in this){e.unprotectedAttrs=new Array;for(t=0;t<this.unprotectedAttrs.length;t++)e.unprotectedAttrs.push(this.unprotectedAttrs[t].toJSON())}return e},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.addRecipientByCertificate=function(t,i,n){var o=i||{};if(-1!==t.subjectPublicKeyInfo.algorithm.algorithm_id.indexOf("1.2.840.113549"))n=1;else{if(-1===t.subjectPublicKeyInfo.algorithm.algorithm_id.indexOf("1.2.840.10045"))throw new Error("Unknown type of certificate's public key: "+t.subjectPublicKeyInfo.algorithm.algorithm_id);n=2}switch("oaepHashAlgorithm"in o==!1&&(o.oaepHashAlgorithm="SHA-512"),"kdfAlgorithm"in o==!1&&(o.kdfAlgorithm="SHA-512"),"kekEncryptionLength"in o==!1&&(o.kekEncryptionLength=256),n){case 1:var r=e.org.pkijs.getOIDByAlgorithm({name:"RSA-OAEP"});if(""===r)throw new Error("Can not find OID for OAEP");var a=e.org.pkijs.getOIDByAlgorithm({name:o.oaepHashAlgorithm});if(""===a)throw new Error("Unknown OAEP hash algorithm: "+o.oaepHashAlgorithm);var s=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),c=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({hashAlgorithm:s,maskGenAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:s.toSchema()})}),l=new e.org.pkijs.simpl.cms.KeyTransRecipientInfo({version:0,rid:new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({issuer:t.issuer,serialNumber:t.serialNumber}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:r,algorithm_params:c.toSchema()}),recipientCertificate:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:1,value:l}));break;case 2:var u=new e.org.pkijs.simpl.cms.RecipientEncryptedKey({rid:new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier({variant:1,value:new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({issuer:t.issuer,serialNumber:t.serialNumber})})}),p=e.org.pkijs.getOIDByAlgorithm({name:"AES-KW",length:o.kekEncryptionLength});if(""===p)throw new Error("Unknown length for key encryption algorithm: "+o.kekEncryptionLength);var h=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:p,algorithm_params:new e.org.pkijs.asn1.NULL}),g=e.org.pkijs.getOIDByAlgorithm({name:"ECDH",kdf:o.kdfAlgorithm});if(""===g)throw new Error("Unknown KDF algorithm: "+o.kdfAlgorithm);var m=new ArrayBuffer(64),d=new Uint8Array(m);e.org.pkijs.getRandomValues(d);l=new e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo({version:3,ukm:new e.org.pkijs.asn1.OCTETSTRING({value_hex:m}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:g,algorithm_params:h.toSchema()}),recipientEncryptedKeys:new e.org.pkijs.simpl.cms.RecipientEncryptedKeys({encryptedKeys:[u]}),recipientCertificate:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:2,value:l}));break;default:throw new Error('Unknown "variant" value: '+n)}return!0},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.addRecipientByPreDefinedData=function(t,i,n){var o=i||{};if(t instanceof ArrayBuffer==!1)throw new Error('Please pass "preDefinedData" in ArrayBuffer type');if(0===t.byteLength)throw new Error("Pre-defined data could have zero length");if("keyIdentifier"in o==!1){var r=new ArrayBuffer(16),a=new Uint8Array(r);e.org.pkijs.getRandomValues(a),o.keyIdentifier=r}switch("hmacHashAlgorithm"in o==!1&&(o.hmacHashAlgorithm="SHA-512"),"iterationCount"in o==!1&&(o.iterationCount=2048),"keyEncryptionAlgorithm"in o==!1&&(o.keyEncryptionAlgorithm={name:"AES-KW",length:256}),"keyEncryptionAlgorithmParams"in o==!1&&(o.keyEncryptionAlgorithmParams=new e.org.pkijs.asn1.NULL),n){case 1:if(""===(h=e.org.pkijs.getOIDByAlgorithm(o.keyEncryptionAlgorithm)))throw new Error('Incorrect value for "keyEncryptionAlgorithm"');var s=new e.org.pkijs.simpl.cms.KEKRecipientInfo({version:4,kekid:new e.org.pkijs.simpl.cms.KEKIdentifier({keyIdentifier:new e.org.pkijs.asn1.OCTETSTRING({value_hex:o.keyIdentifier})}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:o.keyEncryptionAlgorithmParams}),preDefinedKEK:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:3,value:s}));break;case 2:var c=e.org.pkijs.getOIDByAlgorithm({name:"PBKDF2"});if(""===c)throw new Error("Can not find OID for PBKDF2");var l=new ArrayBuffer(64),u=new Uint8Array(l);e.org.pkijs.getRandomValues(u);var p=e.org.pkijs.getOIDByAlgorithm({name:"HMAC",hash:{name:o.hmacHashAlgorithm}});if(""===p)throw new Error('Incorrect value for "hmacHashAlgorithm": '+o.hmacHashAlgorithm);var h,g=new e.org.pkijs.simpl.cms.PBKDF2_params({salt:new e.org.pkijs.asn1.OCTETSTRING({value_hex:l}),iterationCount:o.iterationCount,prf:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:p,algorithm_params:new e.org.pkijs.asn1.NULL})});if(""===(h=e.org.pkijs.getOIDByAlgorithm(o.keyEncryptionAlgorithm)))throw new Error('Incorrect value for "keyEncryptionAlgorithm"');s=new e.org.pkijs.simpl.cms.PasswordRecipientinfo({version:0,keyDerivationAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:c,algorithm_params:g.toSchema()}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:o.keyEncryptionAlgorithmParams}),password:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:4,value:s}));break;default:throw new Error('Unknown value for "variant": '+n)}},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.encrypt=function(t,i){var n=this,o=Promise.resolve(),r=new ArrayBuffer(16),a=new Uint8Array(r);e.org.pkijs.getRandomValues(a);var s,c,l,u=new Uint8Array(i),p=new Array,h=e.org.pkijs.getOIDByAlgorithm(t);if(""===h)return Promise.reject('Wrong "contentEncryptionAlgorithm" value');var g=e.org.pkijs.getCrypto();if(void 0===g)return Promise.reject("Unable to create WebCrypto object");function m(t){var i,o,r,a,c,l=Promise.resolve();return l=(l=(l=(l=(l=(l=(l=(l=(l=l.then((function(i){var o=n.recipientInfos[t].value.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithm_params;if(o instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject('Incorrect "recipientCertificate" for index '+t);switch(o.value_block.toString()){case"1.2.840.10045.3.1.7":r="P-256",a=256;break;case"1.3.132.0.34":r="P-384",a=384;break;case"1.3.132.0.35":r="P-521",a=528;break;default:return Promise.reject("Incorrect curve OID for index "+t)}return r}),(function(e){return Promise.reject(e)}))).then((function(e){return g.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"])}),(function(e){return Promise.reject(e)}))).then((function(e){return i=e.publicKey,o=e.privateKey,g.exportKey("spki",i)}),(function(e){return Promise.reject(e)}))).then((function(e){return c=e,n.recipientInfos[t].value.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"ECDH",namedCurve:r},usages:[]}})}),(function(e){return Promise.reject(e)}))).then((function(e){return g.deriveBits({name:"ECDH",public:e},o,a)}),(function(e){return Promise.reject(e)}))).then((function(i){var o=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params}),r=e.org.pkijs.getAlgorithmByOID(o.algorithm_id);if("name"in r==!1)return Promise.reject("Incorrect OID for key encryption algorithm: "+o.algorithm_id);for(var a=r.length,s=new ArrayBuffer(4),c=new Uint8Array(s),l=3;l>=0;l--)c[l]=a,a>>=8;var u=new e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo({keyInfo:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o.algorithm_id,algorithm_params:new e.org.pkijs.asn1.NULL}),entityUInfo:n.recipientInfos[t].value.ukm,suppPubInfo:new e.org.pkijs.asn1.OCTETSTRING({value_hex:s})}).toSchema().toBER(!1),p=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);return"name"in p==!1?Promise.reject("Incorrect OID for key encryption algorithm: "+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):e.org.pkijs.simpl.cms.kdf(p.kdf,i,r.length,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return g.importKey("raw",e,{name:"AES-KW"},!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return g.wrapKey("raw",s,e,{name:"AES-KW"})}),(function(e){return Promise.reject(e)}))).then((function(i){var o=org.pkijs.fromBER(c),r=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey;r.variant=3,r.value=new e.org.pkijs.simpl.cms.OriginatorPublicKey({schema:o.result}),"algorithm_params"in r.value.algorithm&&delete r.value.algorithm.algorithm_params,n.recipientInfos[t].value.originator=r,n.recipientInfos[t].value.recipientEncryptedKeys.encryptedKeys[0].encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:i})}),(function(e){return Promise.reject(e)}))}function d(t){var i=Promise.resolve();return i=(i=(i=i.then((function(i){var o=n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params,r=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({schema:o}),a=e.org.pkijs.getAlgorithmByOID(r.hashAlgorithm.algorithm_id);return"name"in a==!1?Promise.reject("Incorrect OID for hash algorithm: "+r.hashAlgorithm.algorithm_id):n.recipientInfos[t].value.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"RSA-OAEP",hash:{name:a.name}},usages:["encrypt","wrapKey"]}})}),(function(e){return Promise.reject(e)}))).then((function(e){return g.encrypt({name:"RSA-OAEP"},e,l)}),(function(e){return Promise.reject(e)}))).then((function(i){n.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:i})}),(function(e){return Promise.reject(e)}))}function S(t){var i,o=Promise.resolve();return o=(o=(o=o.then((function(o){return"name"in(i=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==!1?Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):g.importKey("raw",new Uint8Array(n.recipientInfos[t].value.preDefinedKEK),i,!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return g.wrapKey("raw",s,e,i)}),(function(e){return Promise.reject(e)}))).then((function(i){n.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:i})}),(function(e){return Promise.reject(e)}))}function f(t){var i,o,r=Promise.resolve();return r=(r=(r=(r=(r=r.then((function(o){if("keyDerivationAlgorithm"in n.recipientInfos[t].value==!1)return Promise.reject('Please append encoded "keyDerivationAlgorithm"');if("algorithm_params"in n.recipientInfos[t].value.keyDerivationAlgorithm==!1)return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"');try{i=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:n.recipientInfos[t].value.keyDerivationAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"')}}),(function(e){return Promise.reject(e)}))).then((function(e){var i=new Uint8Array(n.recipientInfos[t].value.password);return g.importKey("raw",i,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(r){if("name"in(o=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==!1)return Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);var a="SHA-1";if("prf"in i){var s=e.org.pkijs.getAlgorithmByOID(i.prf.algorithm_id);if("name"in s==!1)return Promise.reject("Incorrect OID for HMAC hash algorithm");a=s.hash.name}var c=new Uint8Array(i.salt.value_block.value_hex),l=i.iterationCount;return g.deriveKey({name:"PBKDF2",hash:{name:a},salt:c,iterations:l},r,o,!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return g.wrapKey("raw",s,e,o)}),(function(e){return Promise.reject(e)}))).then((function(i){n.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:i})}),(function(e){return Promise.reject(e)}))}return o=(o=(o=(o=(o=o.then((function(e){return g.generateKey(t,!0,["encrypt"])}))).then((function(e){return s=e,g.encrypt({name:t.name,iv:a},s,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return c=e,g.exportKey("raw",s)}),(function(e){return Promise.reject(e)})).then((function(e){return l=e,!0}),(function(e){return Promise.reject(e)}))).then((function(t){n.version=2,n.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})}),encryptedContent:new e.org.pkijs.asn1.OCTETSTRING({value_hex:c})})}),(function(e){return Promise.reject(e)}))).then((function(e){for(var t=0;t<n.recipientInfos.length;t++){var i=Promise.resolve();switch(n.recipientInfos[t].variant){case 1:i=d(t);break;case 2:i=m(t);break;case 3:i=S(t);break;case 4:i=f(t);break;default:return Promise.reject("Uknown recipient type in array with index "+t)}p.push(i)}}),(function(e){return Promise.reject(e)})),o=o.then((function(e){return Promise.all(p)}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.decrypt=function(t,i){var n=this,o=Promise.resolve(),r=i||{};if(t+1>this.recipientInfos.length)return Promise.reject('Maximum value for "index" is: '+(n.recipientInfos.length-1));var a=e.org.pkijs.getCrypto();if(void 0===a)return Promise.reject("Unable to create WebCrypto object");return o=(o=o.then((function(i){var o=Promise.resolve();switch(n.recipientInfos[t].variant){case 1:o=function(t){var i=Promise.resolve();return(i=(i=i.then((function(i){if("recipientPrivateKey"in r==0)return Promise.reject('Parameter "recipientPrivateKey" is mandatory for "KeyTransRecipientInfo"');var o=n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params,s=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({schema:o}),c=e.org.pkijs.getAlgorithmByOID(s.hashAlgorithm.algorithm_id);return"name"in c==0?Promise.reject("Incorrect OID for hash algorithm: "+s.hashAlgorithm.algorithm_id):a.importKey("pkcs8",r.recipientPrivateKey,{name:"RSA-OAEP",hash:{name:c.name}},!0,["decrypt"])}),(function(e){return Promise.reject(e)}))).then((function(e){return a.decrypt({name:"RSA-OAEP"},e,n.recipientInfos[t].value.encryptedKey.value_block.value_hex)}),(function(e){return Promise.reject(e)}))).then((function(t){var i=e.org.pkijs.getAlgorithmByOID(n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in i==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.importKey("raw",t,i,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 2:o=function(t){var i,o,s,c,l=Promise.resolve();return(l=(l=(l=(l=(l=l.then((function(n){if("recipientCertificate"in r==0)return Promise.reject('Parameter "recipientCertificate" is mandatory for "KeyAgreeRecipientInfo"');if("recipientPrivateKey"in r==0)return Promise.reject('Parameter "recipientPrivateKey" is mandatory for "KeyAgreeRecipientInfo"');var c=r.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithm_params;if(c instanceof e.org.pkijs.asn1.OID==0)return Promise.reject('Incorrect "recipientCertificate" for index '+t);switch(s=c.value_block.toString()){case"1.2.840.10045.3.1.7":i="P-256",o=256;break;case"1.3.132.0.34":i="P-384",o=384;break;case"1.3.132.0.35":i="P-521",o=528;break;default:return Promise.reject("Incorrect curve OID for index "+t)}return a.importKey("pkcs8",r.recipientPrivateKey,{name:"ECDH",namedCurve:i},!0,["deriveBits"])}),(function(e){return Promise.reject(e)}))).then((function(o){c=o,"algorithm_params"in n.recipientInfos[t].value.originator.value.algorithm==0&&(n.recipientInfos[t].value.originator.value.algorithm.algorithm_params=new e.org.pkijs.asn1.OID({value:s}));var r=n.recipientInfos[t].value.originator.value.toSchema().toBER(!1);return a.importKey("spki",r,{name:"ECDH",namedCurve:i},!0,[])}),(function(e){return Promise.reject(e)}))).then((function(e){return a.deriveBits({name:"ECDH",public:e},c,o)}),(function(e){return Promise.reject(e)}))).then((function(i){var o=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params}),r=e.org.pkijs.getAlgorithmByOID(o.algorithm_id);if("name"in r==0)return Promise.reject("Incorrect OID for key encryption algorithm: "+o.algorithm_id);for(var a=r.length,s=new ArrayBuffer(4),c=new Uint8Array(s),l=3;l>=0;l--)c[l]=a,a>>=8;var u=new e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo({keyInfo:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o.algorithm_id,algorithm_params:new e.org.pkijs.asn1.NULL}),entityUInfo:n.recipientInfos[t].value.ukm,suppPubInfo:new e.org.pkijs.asn1.OCTETSTRING({value_hex:s})}).toSchema().toBER(!1),p=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);return"name"in p==0?Promise.reject("Incorrect OID for key encryption algorithm: "+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):e.org.pkijs.simpl.cms.kdf(p.kdf,i,r.length,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return a.importKey("raw",e,{name:"AES-KW"},!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(i){var o=e.org.pkijs.getAlgorithmByOID(n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in o==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",n.recipientInfos[t].value.recipientEncryptedKeys.encryptedKeys[0].encryptedKey.value_block.value_hex,i,{name:"AES-KW"},o,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 3:o=function(t){var i,o=Promise.resolve();return(o=o.then((function(o){return"preDefinedData"in r==0?Promise.reject('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"'):"name"in(i=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==0?Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):a.importKey("raw",r.preDefinedData,i,!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(o){var r=e.org.pkijs.getAlgorithmByOID(n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in r==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",n.recipientInfos[t].value.encryptedKey.value_block.value_hex,o,i,r,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 4:o=function(t){var i,o,s=Promise.resolve();return(s=(s=s.then((function(o){if("preDefinedData"in r==0)return Promise.reject('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');if("keyDerivationAlgorithm"in n.recipientInfos[t].value==0)return Promise.reject('Please append encoded "keyDerivationAlgorithm"');if("algorithm_params"in n.recipientInfos[t].value.keyDerivationAlgorithm==0)return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"');try{i=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:n.recipientInfos[t].value.keyDerivationAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"')}return a.importKey("raw",r.preDefinedData,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(r){if("name"in(o=e.org.pkijs.getAlgorithmByOID(n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==0)return Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+n.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);var s="SHA-1";if("prf"in i){var c=e.org.pkijs.getAlgorithmByOID(i.prf.algorithm_id);if("name"in c==0)return Promise.reject("Incorrect OID for HMAC hash algorithm");s=c.hash.name}var l=new Uint8Array(i.salt.value_block.value_hex),u=i.iterationCount;return a.deriveKey({name:"PBKDF2",hash:{name:s},salt:l,iterations:u},r,o,!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(i){var r=e.org.pkijs.getAlgorithmByOID(n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in r==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",n.recipientInfos[t].value.encryptedKey.value_block.value_hex,i,o,r,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;default:return Promise.reject("Uknown recipient type in array with index "+t)}return o}),(function(e){return Promise.reject(e)}))).then((function(t){var i=e.org.pkijs.getAlgorithmByOID(n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);if("name"in i==!1)return Promise.reject('Incorrect "contentEncryptionAlgorithm": '+n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);var o=n.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_params.value_block.value_hex,r=new Uint8Array(o),s=new ArrayBuffer(0);if(!1===n.encryptedContentInfo.encryptedContent.id_block.is_constructed)s=n.encryptedContentInfo.encryptedContent.value_block.value_hex;else for(var c=0;c<n.encryptedContentInfo.encryptedContent.value_block.value.length;c++)s=e.org.pkijs.concat_buffers(s,n.encryptedContentInfo.encryptedContent.value_block.value[c].value_block.value_hex);return a.decrypt({name:i.name,iv:r},t,s)}),(function(e){return Promise.reject(e)})),o},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA=function(){this.version=0,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.encryptedContentInfo=arguments[0].encryptedContentInfo||new e.org.pkijs.simpl.cms.EncryptedContentInfo,"unprotectedAttrs"in arguments[0]&&(this.unprotectedAttrs=arguments[0].unprotectedAttrs,this.version=2))},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_ENCRYPTED_DATA({names:{version:"version",encryptedContentInfo:{names:{block_name:"encryptedContentInfo"}},unprotectedAttrs:"unprotectedAttrs"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CMS_ENCRYPTED_DATA");if(this.version=i.result.version.value_block.value_dec,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({schema:i.result.encryptedContentInfo}),"unprotectedAttrs"in i.result){this.unprotectedAttrs=new Array;for(var n=i.result.unprotectedAttrs,o=0;o<n.length;o++)this.unprotectedAttrs.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:n[o]}))}},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.encryptedContentInfo.toSchema()),"unprotectedAttrs"in this){for(var i=new Array,n=0;n<this.unprotectedAttrs.length;n++)i.push(this.unprotectedAttrs[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.toJSON=function(){var e={version:this.version};if(e.encryptedContentInfo=this.encryptedContentInfo.toJSON(),"unprotectedAttrs"in this){e.unprotectedAttrs=new Array;for(var t=0;t<this.unprotectedAttrs.length;t++)e.unprotectedAttrs.push(this.unprotectedAttrs[t].toJSON())}return e},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.encrypt=function(t){if(t instanceof Object==0)return Promise.reject('Parameters must have type "Object"');if("password"in t==0)return Promise.reject('Absent mandatory parameter "password"');if("contentEncryptionAlgorithm"in t==0)return Promise.reject('Absent mandatory parameter "contentEncryptionAlgorithm"');if("hmacHashAlgorithm"in t==0)return Promise.reject('Absent mandatory parameter "hmacHashAlgorithm"');if("iterationCount"in t==0)return Promise.reject('Absent mandatory parameter "iterationCount"');if("contentToEncrypt"in t==0)return Promise.reject('Absent mandatory parameter "contentToEncrypt"');var i=e.org.pkijs.getOIDByAlgorithm(t.contentEncryptionAlgorithm);if(""===i)return Promise.reject('Wrong "contentEncryptionAlgorithm" value');var n=e.org.pkijs.getOIDByAlgorithm({name:"PBKDF2"});if(""===n)return Promise.reject("Can not find OID for PBKDF2");var o=e.org.pkijs.getOIDByAlgorithm({name:"HMAC",hash:{name:t.hmacHashAlgorithm}});if(""===o)return Promise.reject('Incorrect value for "hmacHashAlgorithm": '+t.hmacHashAlgorithm);var r=e.org.pkijs.getCrypto();if(void 0===r)return Promise.reject("Unable to create WebCrypto object");var a=this,s=Promise.resolve(),c=new ArrayBuffer(16),l=new Uint8Array(c);e.org.pkijs.getRandomValues(l);var u=new ArrayBuffer(64),p=new Uint8Array(u);e.org.pkijs.getRandomValues(p);var h=new Uint8Array(t.contentToEncrypt),g=new e.org.pkijs.simpl.cms.PBKDF2_params({salt:new e.org.pkijs.asn1.OCTETSTRING({value_hex:u}),iterationCount:t.iterationCount,prf:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o,algorithm_params:new e.org.pkijs.asn1.NULL})});return s=(s=(s=(s=s.then((function(e){var i=new Uint8Array(t.password);return r.importKey("raw",i,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return r.deriveKey({name:"PBKDF2",hash:{name:t.hmacHashAlgorithm},salt:p,iterations:t.iterationCount},e,t.contentEncryptionAlgorithm,!0,["encrypt"])}),(function(e){return Promise.reject(e)}))).then((function(e){return r.encrypt({name:t.contentEncryptionAlgorithm.name,iv:l},e,h)}),(function(e){return Promise.reject(e)}))).then((function(t){var o=new e.org.pkijs.simpl.cms.PBES2_params({keyDerivationFunc:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:n,algorithm_params:g.toSchema()}),encryptionScheme:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:i,algorithm_params:new e.org.pkijs.asn1.OCTETSTRING({value_hex:c})})});a.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.5.13",algorithm_params:o.toSchema()}),encryptedContent:new e.org.pkijs.asn1.OCTETSTRING({value_hex:t})})}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.decrypt=function(t){if(t instanceof Object==0)return Promise.reject('Parameters must have type "Object"');if("password"in t==0)return Promise.reject('Absent mandatory parameter "password"');if("1.2.840.113549.1.5.13"!==this.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id)return Promise.reject('Unknown "contentEncryptionAlgorithm": '+r.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);var i=e.org.pkijs.getCrypto();if(void 0===i)return Promise.reject("Unable to create WebCrypto object");var n,o,r=this,a=Promise.resolve();try{n=new e.org.pkijs.simpl.cms.PBES2_params({schema:r.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "pbes2Parameters"')}try{o=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:n.keyDerivationFunc.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "pbkdf2Params"')}var s=e.org.pkijs.getAlgorithmByOID(n.encryptionScheme.algorithm_id);if("name"in s==0)return Promise.reject('Incorrect OID for "contentEncryptionAlgorithm": '+n.encryptionScheme.algorithm_id);var c=n.encryptionScheme.algorithm_params.value_block.value_hex,l=new Uint8Array(c),u=o.salt.value_block.value_hex,p=new Uint8Array(u),h=o.iterationCount,g="SHA-1";if("prf"in o){var m=e.org.pkijs.getAlgorithmByOID(o.prf.algorithm_id);if("name"in m==!1)return Promise.reject("Incorrect OID for HMAC hash algorithm");g=m.hash.name}return a=(a=(a=a.then((function(e){return i.importKey("raw",t.password,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return i.deriveKey({name:"PBKDF2",hash:{name:g},salt:p,iterations:h},e,s,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))).then((function(t){var n=new ArrayBuffer(0);if(!1===r.encryptedContentInfo.encryptedContent.id_block.is_constructed)n=r.encryptedContentInfo.encryptedContent.value_block.value_hex;else for(var o=0;o<r.encryptedContentInfo.encryptedContent.value_block.value.length;o++)n=e.org.pkijs.concat_buffers(n,r.encryptedContentInfo.encryptedContent.value_block.value[o].value_block.value_hex);return i.decrypt({name:s.name,iv:l},t,n)}),(function(e){return Promise.reject(e)})),a}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);var t={engine:{name:"none",crypto:null,subtle:null}};if("undefined"!=typeof window&&"crypto"in window){var i=window.crypto,n=null;"webkitSubtle"in window.crypto&&(n=window.crypto.webkitSubtle),"subtle"in window.crypto&&(n=window.crypto.subtle),t.engine={name:"webcrypto",crypto:i,subtle:n}}e.org.pkijs.setEngine=function(e,i,n){t.engine={name:e,crypto:i,subtle:n}},e.org.pkijs.getEngine=function(){return t.engine},e.org.pkijs.emptyObject=function(){this.toJSON=function(){return{}},this.toSchema=function(){return{}}},e.org.pkijs.getNames=function(e){var t={};return e instanceof Object&&(t=e.names||{}),t},e.org.pkijs.inheriteObjectFields=function(e){for(var t in e.prototype)"function"!=typeof e.prototype[t]&&(this[t]=e.prototype[t])},e.org.pkijs.getUTCDate=function(e){var t=e;return new Date(t.getTime()+6e4*t.getTimezoneOffset())},e.org.pkijs.padNumber=function(e,t){for(var i=e.toString(10),n=t-i.length,o=new Array(n),r=0;r<n;r++)o[r]="0";return o.join("").concat(i)},e.org.pkijs.getValue=function(e,t,i){return t in e?e[t]:i},e.org.pkijs.isEqual_view=function(e,t){if(e.length!==t.length)return!1;for(var i=0;i<e.length;i++)if(e[i]!=t[i])return!1;return!0},e.org.pkijs.isEqual_buffer=function(t,i){if(t.byteLength!=i.byteLength)return!1;var n=new Uint8Array(t),o=new Uint8Array(i);return e.org.pkijs.isEqual_view(n,o)},e.org.pkijs.concat_buffers=function(e,t){for(var i=new Uint8Array(e),n=new Uint8Array(t),o=new ArrayBuffer(e.byteLength+t.byteLength),r=new Uint8Array(o),a=0;a<e.byteLength;a++)r[a]=i[a];for(var s=0;s<t.byteLength;s++)r[e.byteLength+s]=n[s];return o},e.org.pkijs.copyBuffer=function(e){for(var t=new ArrayBuffer(e.byteLength),i=new Uint8Array(t),n=new Uint8Array(e),o=0;o<n.length;o++)i[o]=n[o];return t},e.org.pkijs.getCrypto=function(){var e;return null!==t.engine.subtle&&(e=t.engine.subtle),e},e.org.pkijs.stringPrep=function(e){var t=e.replace(/^\s+|\s+$/g,"");return t=(t=t.replace(/\s+/g," ")).toLowerCase()},e.org.pkijs.bufferToHexCodes=function(e,t,i){for(var n="",o=new Uint8Array(e,t,i),r=0;r<o.length;r++){var a=o[r].toString(16).toUpperCase();n=n+(1===a.length?"0":"")+a}return n},e.org.pkijs.bufferFromHexCodes=function(e){for(var t=e.length,i=new ArrayBuffer(t>>1),n=new Uint8Array(i),o={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,a:10,B:11,b:11,C:12,c:12,D:13,d:13,E:14,e:14,F:15,f:15},r=0,a=0,s=0;s<t;s++)s%2?(a|=o[e.charAt(s)],n[r]=a,r++):a=o[e.charAt(s)]<<4;return i},e.org.pkijs.getRandomValues=function(e){if(null!==t.engine.crypto)return t.engine.crypto.getRandomValues(e);throw new Error("No support for Web Cryptography API")},e.org.pkijs.getAlgorithmParameters=function(t,i){var n={algorithm:{},usages:[]};switch(t.toUpperCase()){case"RSASSA-PKCS1-V1_5":switch(i.toLowerCase()){case"generatekey":n={algorithm:{name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["sign","verify"]};break;case"verify":case"sign":case"importkey":n={algorithm:{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},usages:["verify"]};break;default:return{algorithm:{name:"RSASSA-PKCS1-v1_5"},usages:[]}}break;case"RSA-PSS":switch(i.toLowerCase()){case"sign":case"verify":n={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"},saltLength:20},usages:["sign","verify"]};break;case"generatekey":n={algorithm:{name:"RSA-PSS",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},usages:["sign","verify"]};break;case"importkey":n={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"}},usages:["verify"]};break;default:return{algorithm:{name:"RSA-PSS"},usages:[]}}break;case"RSA-OAEP":switch(i.toLowerCase()){case"encrypt":case"decrypt":n={algorithm:{name:"RSA-OAEP"},usages:["encrypt","decrypt"]};break;case"generatekey":n={algorithm:{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"importkey":n={algorithm:{name:"RSA-OAEP",hash:{name:"SHA-256"}},usages:["encrypt"]};break;default:return{algorithm:{name:"RSA-OAEP"},usages:[]}}break;case"ECDSA":switch(i.toLowerCase()){case"generatekey":n={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["sign","verify"]};break;case"importkey":n={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["verify"]};break;case"verify":case"sign":n={algorithm:{name:"ECDSA",hash:{name:"SHA-256"}},usages:["sign"]};break;default:return{algorithm:{name:"ECDSA"},usages:[]}}break;case"ECDH":switch(i.toLowerCase()){case"exportkey":case"importkey":case"generatekey":n={algorithm:{name:"ECDH",namedCurve:"P-256"},usages:["deriveKey","deriveBits"]};break;case"derivekey":case"derivebits":n={algorithm:{name:"ECDH",namedCurve:"P-256",public:[]},usages:["encrypt","decrypt"]};break;default:return{algorithm:{name:"ECDH"},usages:[]}}break;case"AES-CTR":switch(i.toLowerCase()){case"importkey":case"exportkey":case"generatekey":n={algorithm:{name:"AES-CTR",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":n={algorithm:{name:"AES-CTR",counter:new Uint8Array(16),length:10},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-CTR"},usages:[]}}break;case"AES-CBC":switch(i.toLowerCase()){case"importkey":case"exportkey":case"generatekey":n={algorithm:{name:"AES-CBC",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":n={algorithm:{name:"AES-CBC",iv:e.org.pkijs.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-CBC"},usages:[]}}break;case"AES-GCM":switch(i.toLowerCase()){case"importkey":case"exportkey":case"generatekey":n={algorithm:{name:"AES-GCM",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":n={algorithm:{name:"AES-GCM",iv:e.org.pkijs.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-GCM"},usages:[]}}break;case"AES-KW":switch(i.toLowerCase()){case"importkey":case"exportkey":case"generatekey":case"wrapkey":case"unwrapkey":n={algorithm:{name:"AES-KW",length:256},usages:["wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-KW"},usages:[]}}break;case"HMAC":switch(i.toLowerCase()){case"sign":case"verify":n={algorithm:{name:"HMAC"},usages:["sign","verify"]};break;case"importkey":case"exportkey":case"generatekey":n={algorithm:{name:"HMAC",length:32,hash:{name:"SHA-256"}},usages:["sign","verify"]};break;default:return{algorithm:{name:"HMAC"},usages:[]}}break;case"HKDF":if("derivekey"!==i.toLowerCase())return{algorithm:{name:"HKDF"},usages:[]};n={algorithm:{name:"HKDF",hash:"SHA-256",salt:new Uint8Array,info:new Uint8Array},usages:["encrypt","decrypt"]};break;case"PBKDF2":if("derivekey"!==i.toLowerCase())return{algorithm:{name:"PBKDF2"},usages:[]};n={algorithm:{name:"PBKDF2",hash:{name:"SHA-256"},salt:new Uint8Array,iterations:1e3},usages:["encrypt","decrypt"]}}return n},e.org.pkijs.getOIDByAlgorithm=function(e){var t="";switch(e.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.113549.1.1.5";break;case"SHA-256":t="1.2.840.113549.1.1.11";break;case"SHA-384":t="1.2.840.113549.1.1.12";break;case"SHA-512":t="1.2.840.113549.1.1.13"}break;case"RSA-PSS":t="1.2.840.113549.1.1.10";break;case"RSA-OAEP":t="1.2.840.113549.1.1.7";break;case"ECDSA":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.10045.4.1";break;case"SHA-256":t="1.2.840.10045.4.3.2";break;case"SHA-384":t="1.2.840.10045.4.3.3";break;case"SHA-512":t="1.2.840.10045.4.3.4"}break;case"ECDH":switch(e.kdf.toUpperCase()){case"SHA-1":t="1.3.133.16.840.63.0.2";break;case"SHA-256":t="1.3.132.1.11.1";break;case"SHA-384":t="1.3.132.1.11.2";break;case"SHA-512":t="1.3.132.1.11.3"}break;case"AES-CTR":case"AES-CMAC":case"CONCAT":case"HKDF":break;case"AES-CBC":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.2";break;case 192:t="2.16.840.1.101.3.4.1.22";break;case 256:t="2.16.840.1.101.3.4.1.42"}break;case"AES-GCM":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.6";break;case 192:t="2.16.840.1.101.3.4.1.26";break;case 256:t="2.16.840.1.101.3.4.1.46"}break;case"AES-CFB":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.4";break;case 192:t="2.16.840.1.101.3.4.1.24";break;case 256:t="2.16.840.1.101.3.4.1.44"}break;case"AES-KW":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.5";break;case 192:t="2.16.840.1.101.3.4.1.25";break;case 256:t="2.16.840.1.101.3.4.1.45"}break;case"HMAC":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.113549.2.7";break;case"SHA-256":t="1.2.840.113549.2.9";break;case"SHA-384":t="1.2.840.113549.2.10";break;case"SHA-512":t="1.2.840.113549.2.11"}break;case"DH":t="1.2.840.113549.1.9.16.3.5";break;case"SHA-1":t="1.3.14.3.2.26";break;case"SHA-256":t="2.16.840.1.101.3.4.2.1";break;case"SHA-384":t="2.16.840.1.101.3.4.2.2";break;case"SHA-512":t="2.16.840.1.101.3.4.2.3";break;case"PBKDF2":t="1.2.840.113549.1.5.12";break;case"P-256":t="1.2.840.10045.3.1.7";break;case"P-384":t="1.3.132.0.34";break;case"P-521":t="1.3.132.0.35"}return t},e.org.pkijs.getAlgorithmByOID=function(e){var t={};switch(e){case"1.2.840.113549.1.1.5":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};break;case"1.2.840.113549.1.1.11":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};break;case"1.2.840.113549.1.1.12":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};break;case"1.2.840.113549.1.1.13":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};break;case"1.2.840.113549.1.1.10":t={name:"RSA-PSS"};break;case"1.2.840.113549.1.1.7":t={name:"RSA-OAEP"};break;case"1.2.840.10045.4.1":t={name:"ECDSA",hash:{name:"SHA-1"}};break;case"1.2.840.10045.4.3.2":t={name:"ECDSA",hash:{name:"SHA-256"}};break;case"1.2.840.10045.4.3.3":t={name:"ECDSA",hash:{name:"SHA-384"}};break;case"1.2.840.10045.4.3.4":t={name:"ECDSA",hash:{name:"SHA-512"}};break;case"1.3.133.16.840.63.0.2":t={name:"ECDH",kdf:"SHA-1"};break;case"1.3.132.1.11.1":t={name:"ECDH",kdf:"SHA-256"};break;case"1.3.132.1.11.2":t={name:"ECDH",kdf:"SHA-384"};break;case"1.3.132.1.11.3":t={name:"ECDH",kdf:"SHA-512"};break;case"2.16.840.1.101.3.4.1.2":t={name:"AES-CBC",length:128};break;case"2.16.840.1.101.3.4.1.22":t={name:"AES-CBC",length:192};break;case"2.16.840.1.101.3.4.1.42":t={name:"AES-CBC",length:256};break;case"2.16.840.1.101.3.4.1.6":t={name:"AES-GCM",length:128};break;case"2.16.840.1.101.3.4.1.26":t={name:"AES-GCM",length:192};break;case"2.16.840.1.101.3.4.1.46":t={name:"AES-GCM",length:256};break;case"2.16.840.1.101.3.4.1.4":t={name:"AES-CFB",length:128};break;case"2.16.840.1.101.3.4.1.24":t={name:"AES-CFB",length:192};break;case"2.16.840.1.101.3.4.1.44":t={name:"AES-CFB",length:256};break;case"2.16.840.1.101.3.4.1.5":t={name:"AES-KW",length:128};break;case"2.16.840.1.101.3.4.1.25":t={name:"AES-KW",length:192};break;case"2.16.840.1.101.3.4.1.45":t={name:"AES-KW",length:256};break;case"1.2.840.113549.2.7":t={name:"HMAC",hash:{name:"SHA-1"}};break;case"1.2.840.113549.2.9":t={name:"HMAC",hash:{name:"SHA-256"}};break;case"1.2.840.113549.2.10":t={name:"HMAC",hash:{name:"SHA-384"}};break;case"1.2.840.113549.2.11":t={name:"HMAC",hash:{name:"SHA-512"}};break;case"1.2.840.113549.1.9.16.3.5":t={name:"DH"};break;case"1.3.14.3.2.26":t={name:"SHA-1"};break;case"2.16.840.1.101.3.4.2.1":t={name:"SHA-256"};break;case"2.16.840.1.101.3.4.2.2":t={name:"SHA-384"};break;case"2.16.840.1.101.3.4.2.3":t={name:"SHA-512"};break;case"1.2.840.113549.1.5.12":t={name:"PBKDF2"};break;case"1.2.840.10045.3.1.7":t={name:"P-256",size:32};break;case"1.3.132.0.34":t={name:"P-384",size:48};break;case"1.3.132.0.35":t={name:"P-521",size:66}}return t},e.org.pkijs.getHashAlgorithm=function(t){var i="";switch(t.algorithm_id){case"1.2.840.10045.4.1":case"1.2.840.113549.1.1.5":i="SHA-1";break;case"1.2.840.10045.4.3.2":case"1.2.840.113549.1.1.11":i="SHA-256";break;case"1.2.840.10045.4.3.3":case"1.2.840.113549.1.1.12":i="SHA-384";break;case"1.2.840.10045.4.3.4":case"1.2.840.113549.1.1.13":i="SHA-512";break;case"1.2.840.113549.1.1.10":var n;try{if("hashAlgorithm"in(n=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:t.algorithm_params}))){var o=e.org.pkijs.getAlgorithmByOID(n.hashAlgorithm.algorithm_id);if("name"in o==!1)return"";i=o.name}else i="SHA-1"}catch(e){}}return i},e.org.pkijs.createCMSECDSASignature=function(t){if(t.byteLength%2!=0)return new ArrayBuffer(0);var i,n,o=t.byteLength/2,r=new ArrayBuffer(o),a=new Uint8Array(r);a.set(new Uint8Array(t,0,o));var s,c,l=new ArrayBuffer(o),u=new Uint8Array(l);switch(u.set(new Uint8Array(t,o,o)),!0){case!!(128&a[0]):i=new ArrayBuffer(o+1),(n=new Uint8Array(i))[0]=0,n.set(a,1);break;case 0===a[0]&&!(128&a[1]):i=new ArrayBuffer(o-1),(n=new Uint8Array(i)).set(new Uint8Array(t,1,o-1));break;default:i=r,n=a}switch(!0){case!!(128&u[0]):s=new ArrayBuffer(o+1),(c=new Uint8Array(s))[0]=0,c.set(u,1);break;case 0===u[0]&&!(128&u[1]):s=new ArrayBuffer(o-1),(c=new Uint8Array(s)).set(new Uint8Array(t,1,o-1));break;default:s=l,c=u}var p=new e.org.pkijs.asn1.INTEGER;p.value_block.is_hex_only=!0,p.value_block.value_hex=e.org.pkijs.copyBuffer(i);var h=new e.org.pkijs.asn1.INTEGER;return h.value_block.is_hex_only=!0,h.value_block.value_hex=e.org.pkijs.copyBuffer(s),new e.org.pkijs.asn1.SEQUENCE({value:[p,h]}).toBER(!1)},e.org.pkijs.createECDSASignatureFromCMS=function(t){var i,n;if(t instanceof e.org.pkijs.asn1.SEQUENCE==!1)return new ArrayBuffer(0);if(2!==t.value_block.value.length)return new ArrayBuffer(0);if(t.value_block.value[0]instanceof e.org.pkijs.asn1.INTEGER==!1)return new ArrayBuffer(0);if(t.value_block.value[1]instanceof e.org.pkijs.asn1.INTEGER==!1)return new ArrayBuffer(0);function o(e){var t=new Uint8Array(e.value_block.value_hex);switch(e.value_block.value_hex.byteLength){case 32:case 48:case 66:return e.value_block.value_hex;case 33:case 49:case 67:return t.slice(1).buffer;case 31:case 47:case 65:var i=new ArrayBuffer(e.value_block.value_hex.byteLength+1);return new Uint8Array(i).set(t,1),i;default:return new ArrayBuffer(0)}}return n=o(t.value_block.value[0]),i=o(t.value_block.value[1]),e.org.pkijs.concat_buffers(n,i)},e.org.pkijs.getEncryptionAlgorithm=function(e){var t="";switch(e.name.toUpperCase()){case"AES-CBC":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.2";break;case 192:t="2.16.840.1.101.3.4.1.22";break;case 256:t="2.16.840.1.101.3.4.1.42"}break;case"AES-GCM":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.6";break;case 192:t="2.16.840.1.101.3.4.1.26";break;case 256:t="2.16.840.1.101.3.4.1.46"}}return t},e.org.pkijs.getAlgorithmByEncryptionOID=function(e){var t="";switch(e){case"2.16.840.1.101.3.4.1.2":case"2.16.840.1.101.3.4.1.22":case"2.16.840.1.101.3.4.1.42":t="AES-CBC";break;case"2.16.840.1.101.3.4.1.6":case"2.16.840.1.101.3.4.1.26":case"2.16.840.1.101.3.4.1.46":t="AES-GCM"}return t}}("undefined"!=typeof exports?exports:window),eval(function(e,t,i,n,o,r){if(o=function(e){return(e<62?"":o(parseInt(e/62)))+((e%=62)>35?String.fromCharCode(e+29):e.toString(36))},!"".replace(/^/,String)){for(;i--;)r[o(i)]=n[i]||o(i);n=[function(e){return r[e]}],o=function(){return"\\w+"},i=1}for(;i--;)n[i]&&(e=e.replace(new RegExp("\\b"+o(i)+"\\b","g"),n[i]));return e}("A 1b(a,b,c,d,e,f,g,h,i){5 j=1c(a,b,c,d,e,f,i);1d(j,g,h)}A 1c(a,b,c,d,e,f,g){5 h=1e.1v;5 j=1e.1w;5 k=V;5 l=h;5 m=j;5 n=(e===1f||e==F?0:N.O(e));5 o=n+c;5 p=(f===1f||f==F?0:N.O(f));5 q=p+d;5 r=W(a[0].Q);5 s=W(6 1g());5 t=1h();5 u='1x 1y 1z|1.0|'+b;5 v='<1i>'+g.1A+';'+g.1B+';'+g.1C+';'+g.1D+';'+g.Q+'</1i>';5 w='1E;1F;1G;1H;1I;1J;1K;1L;1M;1N;1O;1P;1Q;1R\\n';w+=h+';'+j+';'+k+';'+l+';'+m+';'+n+';'+o+';'+p+';'+q+';'+r+';'+s+';';w+=G.H.J(t)+';'+G.H.J(u)+';'+G.H.J(v)+'\\n';5 x=V;5 y=1;5 z=a[0].Q;w+='X;Y;1S;1T;1U\\n';C(5 i=0;i<a.9;i++)w+=N.O(n+a[i].x)+';'+N.O(p+a[i].y)+';'+x+';'+y+';'+N.O(a[i].Q-z)+'\\n';D G.H.J(w)}A W(a){5 b=6 1g(a);5 c=K(b.1V())+'/'+K(b.1W()+1)+'/'+b.1X();c+='@'+K(b.1Y())+':'+K(b.1Z())+':'+K(b.20());D c}A K(a){D(a.Z().9==1?'0'+a.Z():a.Z())}A 1h(){D 11.21+'|'+11.22+'|'+11.23}A 1d(f,g,h){5 i=F;5 j=F;24{5 k=G.H.1j(f);5 l=k.L(\"\\n\");5 m=l[0]+\"\\n\"+l[1];5 n=m.L('').1k(A(x){D x.M(0)});5 o=6 E(n);5 p=1l.1m(o,{1n:'1o'});i=G.H.J(p);12(h)5 o=1p(k);13{5 n=k.L('').1k(A(x){D x.M(0)});5 o=6 E(n)}5 q=1l.1m(o,{1n:'1o'});5 r=14(G.H.1j(g.25(/(-----(26|27) 28-----|\\n)/g,'')));5 s=R.S.29(r);5 t=6 R.S.15.2a({2b:s.2c});5 u={};u.2d=\"2e-2f\";u.9=2g;5 v=6 R.S.15.2h();v.2i(t,{2j:'2k-V'});v.2l(u,14(q)).2m(A(a){5 b=6 R.S.15.2n();b.2o=\"1.2.2p.2q.1.7.3\";b.2r=v.1q();5 c=b.1q();5 d=c.2s(2t);5 e=2u.2v.2w(F,6 E(d));j=G.H.J(e);16(6 17(F,i,j))},A(a){18.19('2x 2y 2z 1b');18.19(a);16(6 17(f,F,F))})}2A(e){18.19(e.2B);16(6 17(f,F,F))}}A 14(a){5 b=a.9;5 c=6 2C(b);5 d=6 E(c);C(5 i=0;i<b;i++)d[i]=a.M(i);D c}A 1p(b){5 c=b.L(\"\\n\").2D(A(a){D(a.9!=0)});5 d=c[1].L(\";\");5 e=I(d[0]);5 f=I(d[1]);5 g=I(d[2]);5 h=[];5 k=\"2E\";C(5 i=0;i<k.9;++i)h.8(k.M(i));h.8(P);k=\" 10\";C(5 i=0;i<k.9;++i){h.8(k.M(i))}h.8(P);h.8(1r);h.8(1r);h.8(T);h=B(0,h);h=B(e,h);h.8(T);h=B(0,h);h=B(f,h);h.8(T);h=B(0,h);h=B(g,h);h.8(T);h.8(P);h.8(P);h.8(1s);h.8(1s);h.8(P);h.8(2F);h=1t(c.9-3,h);5 l=2G;C(5 j=3;j<c.9;j++){5 m=c[j].L(\";\");h=B(I(m[0])+l,h);h=B(I(m[1])+l,h);h=B(I(m[2]),h);h=B(I(m[4]),h)}5 n=I(c[1].9);h=B(n,h);k=c[1];C(5 i=0;i<k.9;++i)h.8(k.M(i));5 o=6 E(h);D o}A B(a,b){5 c;5 d;c=6 2H(1);c[0]=a;d=6 E(c.U);5 e=6 E(d.9);5 f=d.9;12((6 1a((6 E([1,2,3,4])).U))[0]===1u){C(5 j=0;j<f;j++)e[f-j-1]=d[j]}13 e=d;C(5 j=0;j<e.9;j++)b.8(e[j]);D b}A 1t(a,b){5 c;5 d;c=6 1a(1);c[0]=a;d=6 E(c.U);5 e=6 E(d.9);5 f=d.9;12((6 1a((6 E([1,2,3,4])).U))[0]===1u){C(5 j=0;j<f;j++)e[f-j-1]=d[j];C(5 j=1;j<e.9;j++)b.8(e[j])}13 C(5 j=0;j<e.9-1;j++)b.8(e[j]);D b}",0,168,"|||||var|new||push|length|||||||||||||||||||||||||||function|write2Byte|for|return|Uint8Array|null|jQuery|base64|parseInt|encode|formatFinal|split|charCodeAt|Math|round|0x00|time|org|pkijs|0x60|buffer|512|formatDate|||toString||navigator|if|else|stringToArrayBuffer|simpl|exitCifrado|Array|console|log|Uint32Array|cifrado|generateDataFile|EcoBioPreSignEnc|screen|undefined|Date|getHardware|GPS|decode|map|pako|deflate|to|string|ToISO|toSchema|192|255|write3Byte|0x04030201|width|height|ecoSignature|App|HTML5|longitude|latitude|altitude|accuracy|MAX_X|MAX_Y|MAX_PRESS|LCD_WIDTH|LCD_HEIGHT|LX|RX|TY|BY|TIME_START|TIME_END|HARDWARE|SOFTWARE|EXTRA|PRESS|SW|TIME|getDate|getMonth|getFullYear|getHours|getMinutes|getSeconds|platform|product|userAgent|try|replace|BEGIN|END|CERTIFICATE|fromBER|CERT|schema|result|name|AES|CBC|256|CMS_ENVELOPED_DATA|addRecipientByCertificate|oaepHashAlgorithm|SHA|encrypt|then|CMS_CONTENT_INFO|contentType|840|113549|content|toBER|false|String|fromCharCode|apply|Error|en|el|catch|message|ArrayBuffer|filter|SDI|0x01|32768|Uint16Array".split("|"),0,{})),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.ocsp)e.org.pkijs.schema.ocsp={};else if("object"!=typeof e.org.pkijs.schema.ocsp)throw new Error("Name org.pkijs.schema.ocsp already exists and it's not an object but "+typeof e.org.pkijs.schema.ocsp);if(void 0===e.org.pkijs.schema.tsp)e.org.pkijs.schema.tsp={};else if("object"!=typeof e.org.pkijs.schema.tsp)throw new Error("Name org.pkijs.schema.tsp already exists and it's not an object but "+typeof e.org.pkijs.schema.tsp);e.org.pkijs.schema.ocsp.CertID=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:t.hashAlgorithm||""}}),new e.org.pkijs.asn1.OCTETSTRING({name:t.issuerNameHash||""}),new e.org.pkijs.asn1.OCTETSTRING({name:t.issuerKeyHash||""}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||""})]})},e.org.pkijs.schema.ocsp.Request=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ocsp.CertID(t.reqCert||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:t.singleRequestExtensions||""}})]})]})},e.org.pkijs.schema.ocsp.TBSRequest=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TBSRequest",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.TBSRequest_version||"TBSRequest.version"})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.GENERAL_NAME(t.requestorName||{names:{block_name:"TBSRequest.requestorName"}})]}),new e.org.pkijs.asn1.SEQUENCE({name:t.requestList||"TBSRequest.requestList",value:[new e.org.pkijs.asn1.REPEATED({name:t.requests||"TBSRequest.requests",value:e.org.pkijs.schema.ocsp.Request(t.requestNames||{})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:t.requestExtensions||"TBSRequest.requestExtensions"}})]})]})},e.org.pkijs.schema.ocsp.Signature=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.signature||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:t.certs||"",value:e.org.pkijs.schema.CERT(t.certs||{})})]})]})]})},e.org.pkijs.schema.OCSP_REQUEST=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"OCSPRequest",value:[e.org.pkijs.schema.ocsp.TBSRequest(t.tbsRequest||{names:{block_name:"tbsRequest"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.ocsp.Signature(t.optionalSignature||{names:{block_name:"optionalSignature"}})]})]})},e.org.pkijs.schema.ocsp.ResponderID=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.RDN(t.byName||{names:{block_name:""}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.byKey||""})]})]})},e.org.pkijs.schema.ocsp.ResponseBytes=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.responseType||""}),new e.org.pkijs.asn1.OCTETSTRING({name:t.response||""})]})},e.org.pkijs.schema.OCSP_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"OCSPResponse",value:[new e.org.pkijs.asn1.ENUMERATED({name:t.responseStatus||"responseStatus"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.ocsp.ResponseBytes(t.responseBytes||{names:{block_name:"responseBytes"}})]})]})},e.org.pkijs.schema.ocsp.SingleResponse=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ocsp.CertID(t.certID||{}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.certStatus||"",id_block:{tag_class:3,tag_number:0},len_block_length:1}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.certStatus||"",id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.GENERALIZEDTIME,new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ENUMERATED]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.certStatus||"",id_block:{tag_class:3,tag_number:2},len_block:{length:1}})]}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.thisUpdate||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.nextUpdate||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.EXTENSIONS(t.singleExtensions||{})]})]})},e.org.pkijs.schema.ocsp.ResponseData=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"ResponseData",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"ResponseData.version"})]}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.responderID||"ResponseData.responderID",id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.RDN(t.ResponseData_byName||{names:{block_name:"ResponseData.byName"}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.responderID||"ResponseData.responderID",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.ResponseData_byKey||"ResponseData.byKey"})]})]}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.producedAt||"ResponseData.producedAt"}),new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"ResponseData.responses",value:e.org.pkijs.schema.ocsp.SingleResponse(t.response||{})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:"ResponseData.responseExtensions"}})]})]})},e.org.pkijs.schema.OCSP_BASIC_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"BasicOCSPResponse",value:[e.org.pkijs.schema.ocsp.ResponseData(t.tbsResponseData||{names:{block_name:"BasicOCSPResponse.tbsResponseData"}}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{names:{block_name:"BasicOCSPResponse.signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:t.signature||"BasicOCSPResponse.signature"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"BasicOCSPResponse.certs",value:e.org.pkijs.schema.CERT(t.certs||{})})]})]})]})},e.org.pkijs.schema.tsp.MessageImprint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.hashedMessage||""})]})},e.org.pkijs.schema.TSP_REQUEST=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TimeStampReq",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"TimeStampReq.version"}),e.org.pkijs.schema.tsp.MessageImprint(t.messageImprint||{names:{block_name:"TimeStampReq.messageImprint"}}),new e.org.pkijs.asn1.OID({name:t.reqPolicy||"TimeStampReq.reqPolicy",optional:!0}),new e.org.pkijs.asn1.INTEGER({name:t.nonce||"TimeStampReq.nonce",optional:!0}),new e.org.pkijs.asn1.BOOLEAN({name:t.certReq||"TimeStampReq.certReq",optional:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.extensions||"TimeStampReq.extensions",value:e.org.pkijs.schema.EXTENSION()})]})]})},e.org.pkijs.schema.tsp.Accuracy=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",optional:!0,value:[new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.seconds||""}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.millis||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.micros||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.TST_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TSTInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"TSTInfo.version"}),new e.org.pkijs.asn1.OID({name:t.policy||"TSTInfo.policy"}),e.org.pkijs.schema.tsp.MessageImprint(t.messageImprint||{names:{block_name:"TSTInfo.messageImprint"}}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||"TSTInfo.serialNumber"}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.genTime||"TSTInfo.genTime"}),e.org.pkijs.schema.tsp.Accuracy(t.accuracy||{names:{block_name:"TSTInfo.accuracy"}}),new e.org.pkijs.asn1.BOOLEAN({name:t.ordering||"TSTInfo.ordering",optional:!0}),new e.org.pkijs.asn1.INTEGER({name:t.nonce||"TSTInfo.nonce",optional:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.GENERAL_NAME(t.tsa||{names:{block_name:"TSTInfo.tsa"}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.extensions||"TSTInfo.extensions",value:e.org.pkijs.schema.EXTENSION(t.extension||{})})]})]})},e.org.pkijs.schema.tsp.PKIStatusInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.status||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.statusStrings||"",value:new e.org.pkijs.asn1.UTF8STRING})]}),new e.org.pkijs.asn1.BITSTRING({name:t.failInfo||"",optional:!0})]})},e.org.pkijs.schema.TSP_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TimeStampResp",value:[e.org.pkijs.schema.tsp.PKIStatusInfo(t.status||{names:{block_name:"TimeStampResp.status"}}),e.org.pkijs.schema.CMS_CONTENT_INFO(t.timeStampToken||{names:{block_name:"TimeStampResp.timeStampToken"}},!0)]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.ocsp)e.org.pkijs.simpl.ocsp={};else if("object"!=typeof e.org.pkijs.simpl.ocsp)throw new Error("Name org.pkijs.simpl.ocsp already exists and it's not an object but "+typeof e.org.pkijs.simpl.ocsp);if(void 0===e.org.pkijs.simpl.tsp)e.org.pkijs.simpl.tsp={};else if("object"!=typeof e.org.pkijs.simpl.tsp)throw new Error("Name org.pkijs.simpl.tsp already exists and it's not an object but "+typeof e.org.pkijs.simpl.tsp);e.org.pkijs.simpl.ocsp.CertID=function(){this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuerNameHash=new e.org.pkijs.asn1.OCTETSTRING,this.issuerKeyHash=new e.org.pkijs.asn1.OCTETSTRING,this.serialNumber=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.CertID.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.hashAlgorithm=arguments[0].hashAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuerNameHash=arguments[0].issuerNameHash||new e.org.pkijs.asn1.OCTETSTRING,this.issuerKeyHash=arguments[0].issuerKeyHash||new e.org.pkijs.asn1.OCTETSTRING,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.ocsp.CertID.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.CertID({names:{hashAlgorithm:"hashAlgorithm",issuerNameHash:"issuerNameHash",issuerKeyHash:"issuerKeyHash",serialNumber:"serialNumber"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CertID");this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.hashAlgorithm}),this.issuerNameHash=i.result.issuerNameHash,this.issuerKeyHash=i.result.issuerKeyHash,this.serialNumber=i.result.serialNumber},e.org.pkijs.simpl.ocsp.CertID.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.hashAlgorithm.toSchema(),this.issuerNameHash,this.issuerKeyHash,this.serialNumber]})},e.org.pkijs.simpl.ocsp.CertID.prototype.toJSON=function(){return{hashAlgorithm:this.hashAlgorithm.toJSON(),issuerNameHash:this.issuerNameHash.toJSON(),issuerKeyHash:this.issuerKeyHash.toJSON(),serialNumber:this.serialNumber.toJSON()}},e.org.pkijs.simpl.ocsp.CertID.prototype.isEqual=function(t){return!this.hashAlgorithm.algorithm_id!=t.hashAlgorithm.algorithm_id&&(0!=e.org.pkijs.isEqual_buffer(this.issuerNameHash.value_block.value_hex,t.issuerNameHash.value_block.value_hex)&&(0!=e.org.pkijs.isEqual_buffer(this.issuerKeyHash.value_block.value_hex,t.issuerKeyHash.value_block.value_hex)&&!!this.serialNumber.isEqual(t.serialNumber)))},e.org.pkijs.simpl.ocsp.CertID.prototype.createForCertificate=function(t,i){var n,o,r=this,a=Promise.resolve(),s=e.org.pkijs.getCrypto();return void 0===s?Promise.reject("Unable to create WebCrypto object"):"hashAlgorithm"in i==0?Promise.reject('Parameter "hashAlgorithm" is mandatory for "OCSP_REQUEST.createForCertificate"'):""===(o=e.org.pkijs.getOIDByAlgorithm({name:i.hashAlgorithm}))?Promise.reject('Incorrect "hashAlgorithm": '+this.hashAlgorithm):(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o,algorithm_params:new e.org.pkijs.asn1.NULL}),"issuerCertificate"in i?(n=i.issuerCertificate,this.serialNumber=t.serialNumber,a=(a=a.then((function(e){var t=n.subject.toSchema().toBER(!1);return s.digest({name:i.hashAlgorithm},t)}),(function(e){return Promise.reject(e)}))).then((function(t){r.issuerNameHash=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t});var o=n.subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex;return s.digest({name:i.hashAlgorithm},o)}),(function(e){return Promise.reject(e)})).then((function(t){r.issuerKeyHash=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t})}),(function(e){return Promise.reject(e)}))):Promise.reject('Parameter "issuerCertificate" is mandatory for "OCSP_REQUEST.createForCertificate"'))},e.org.pkijs.simpl.ocsp.Request=function(){this.reqCert=new e.org.pkijs.simpl.ocsp.CertID,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.Request.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.reqCert=arguments[0].reqCert||new e.org.pkijs.simpl.ocsp.CertID,"singleRequestExtensions"in arguments[0]&&(this.singleRequestExtensions=arguments[0].singleRequestExtensions))},e.org.pkijs.simpl.ocsp.Request.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.Request({names:{reqCert:{names:{block_name:"reqCert"}},singleRequestExtensions:{names:{block_name:"singleRequestExtensions"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for Request");if(this.reqCert=new e.org.pkijs.simpl.ocsp.CertID({schema:i.result.reqCert}),"singleRequestExtensions"in i.result){this.singleRequestExtensions=new Array;for(var n=i.result.singleRequestExtensions.value_block.value,o=0;o<n.length;o++)this.singleRequestExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))}},e.org.pkijs.simpl.ocsp.Request.prototype.toSchema=function(){var t=new Array;if(t.push(this.reqCert.toSchema()),"singleRequestExtensions"in this){for(var i=new Array,n=0;n<this.singleRequestExtensions.length;n++)i.push(this.singleRequestExtensions[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.Request.prototype.toJSON=function(){var e={reqCert:this.reqCert.toJSON()};if("singleRequestExtensions"in this){e.singleRequestExtensions=new Array;for(var t=0;t<this.singleRequestExtensions.length;t++)e.singleRequestExtensions.push(this.singleRequestExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.TBSRequest=function(){this.tbs=new ArrayBuffer(0),this.requestList=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.TBSRequest.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),"requestorName"in arguments[0]&&(this.requestorName=arguments[0].requestorName),this.requestList=arguments[0].requestList||new Array,"requestExtensions"in arguments[0]&&(this.requestExtensions=arguments[0].requestExtensions))},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.TBSRequest());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for TBSRequest");this.tbs=i.result.TBSRequest.value_before_decode,"TBSRequest.version"in i.result&&(this.version=i.result["TBSRequest.version"].value_block.value_dec),"TBSRequest.requestorName"in i.result&&(this.requestorName=new e.org.pkijs.simpl.GENERAL_NAME({schema:i.result["TBSRequest.requestorName"]}));for(var n=i.result["TBSRequest.requests"],o=0;o<n.length;o++)this.requestList.push(new e.org.pkijs.simpl.ocsp.Request({schema:n[o]}));if("TBSRequest.requestExtensions"in i.result){this.requestExtensions=new Array;var r=i.result["TBSRequest.requestExtensions"].value_block.value;for(o=0;o<r.length;o++)this.requestExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.toSchema=function(t){var i;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.byteLength)return e.org.pkijs.schema.ocsp.TBSRequest();i=e.org.pkijs.fromBER(this.tbs).result}else{var n=new Array;"version"in this&&n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),"requestorName"in this&&n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[this.requestorName.toSchema()]}));for(var o=new Array,r=0;r<this.requestList.length;r++)o.push(this.requestList[r].toSchema());if(n.push(new e.org.pkijs.asn1.SEQUENCE({value:o})),"requestExtensions"in this){for(var a=new Array,s=0;s<this.requestExtensions.length;s++)a.push(this.requestExtensions[s].toSchema());n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.SEQUENCE({value:a})]}))}i=new e.org.pkijs.asn1.SEQUENCE({value:n})}return i},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.toJSON=function(){var e={};"version"in this&&(e.version=this.version),"requestorName"in this&&(e.requestorName=this.requestorName.toJSON()),e.requestList=new Array;for(var t=0;t<this.requestList.length;t++)e.requestList.push(this.requestList[t].toJSON());if("requestExtensions"in this){e.requestExtensions=new Array;for(t=0;t<this.requestExtensions.length;t++)e.requestExtensions.push(this.requestExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.Signature=function(){this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.Signature.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.BITSTRING,"certs"in arguments[0]&&(this.certs=arguments[0].certs))},e.org.pkijs.simpl.ocsp.Signature.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.Signature({names:{signatureAlgorithm:{names:{block_name:"signatureAlgorithm"}},signature:"signature",certs:"certs"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ocsp.Signature");if(this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.signatureAlgorithm}),this.signature=i.result.signature,"certs"in i.result){this.certs=new Array;for(var n=i.result.certs,o=0;o<n;o++)this.certs.push(new e.org.pkijs.simpl.CERT({schema:n[o]}))}},e.org.pkijs.simpl.ocsp.Signature.prototype.toSchema=function(){var t=new Array;if(t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"certs"in this){for(var i=new Array,n=0;n<this.certs.length;n++)i.push(this.certs[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.Signature.prototype.toJSON=function(){var e={signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};if("certs"in this){e.certs=new Array;for(var t=0;t<this.certs.length;t++)e.certs.push(this.certs[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_REQUEST=function(){this.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_REQUEST.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbsRequest=arguments[0].tbsRequest||new e.org.pkijs.simpl.ocsp.TBSRequest,"optionalSignature"in arguments[0]&&(this.optionalSignature=arguments[0].optionalSignature))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_REQUEST());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OCSP_REQUEST");this.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest({schema:i.result.tbsRequest}),"optionalSignature"in i.result&&(this.optionalSignature=new e.org.pkijs.simpl.ocsp.Signature({schema:i.result.optionalSignature}))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.toSchema=function(t){void 0===t&&(t=!1);var i=new Array;return i.push(this.tbsRequest.toSchema(t)),"optionalSignature"in this&&i.push(this.optionalSignature.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:i})},e.org.pkijs.simpl.OCSP_REQUEST.prototype.sign=function(t,i){var n=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i)i="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:i}))return Promise.reject("Unsupported hash algorithm: "+i);if("optionalSignature"in this==!1)return Promise.reject('Need to create "optionalSignature" field before signing');var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":n.optionalSignature.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==i.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:i});if(""===a)return Promise.reject("Unsupported hash algorithm: "+i);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);n.optionalSignature.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}var c=this.tbsRequest.toSchema(!0).toBER(!1),l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):l.sign(o.algorithm,t,new Uint8Array(c)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),n.optionalSignature.signature=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.toJSON=function(){var e={};"version"in this&&(e.version=this.version),"requestorName"in this&&(e.requestorName=this.requestorName.toJSON()),e.requestList=new Array;for(var t=0;t<this.requestList.length;t++)e.requestList.push(this.requestList[t].toJSON());if("requestExtensions"in this){e.requestExtensions=new Array;for(t=0;t<this.requestExtensions.length;t++)e.requestExtensions.push(this.requestExtensions[t].toJSON())}return"optionalSignature"in this&&(e.optionalSignature=this.optionalSignature.toJSON()),e},e.org.pkijs.simpl.OCSP_REQUEST.prototype.createForCertificate=function(t,i){var n=this,o=Promise.resolve(),r=new e.org.pkijs.simpl.ocsp.CertID;return o=(o=o.then((function(e){return r.createForCertificate(t,i)}))).then((function(t){n.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest({requestList:[new e.org.pkijs.simpl.ocsp.Request({reqCert:r})]})}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.ocsp.ResponseBytes=function(){this.responseType="",this.response=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.responseType=arguments[0].responseType||"",this.response=arguments[0].response||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.ResponseBytes({names:{responseType:"responseType",response:"response"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ResponseBytes");this.responseType=i.result.responseType.value_block.toString(),this.response=i.result.response},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.responseType}),this.response]})},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.toJSON=function(){return{responseType:this.responseType,response:this.response.toJSON()}},e.org.pkijs.simpl.OCSP_RESPONSE=function(){this.responseStatus=new e.org.pkijs.asn1.ENUMERATED,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.responseStatus=arguments[0].responseStatus||new e.org.pkijs.asn1.ENUMERATED,"responseBytes"in arguments[0]&&(this.responseBytes=arguments[0].responseBytes))},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_RESPONSE());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OCSP_RESPONSE");this.responseStatus=i.result.responseStatus,"responseBytes"in i.result&&(this.responseBytes=new e.org.pkijs.simpl.ocsp.ResponseBytes({schema:i.result.responseBytes}))},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.toSchema=function(){var t=new Array;return t.push(this.responseStatus),"responseBytes"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.responseBytes.toSchema()]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.verify=function(){if("responseBytes"in this==!1)return Promise.reject("Empty ResponseBytes field");if("1.3.6.1.5.5.7.48.1.1"===this.responseBytes.responseType){var t=e.org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);return new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:t.result}).verify()}return Promise.reject("Unknown ResponseBytes type: "+this.responseBytes.responseType)},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.sign=function(t,i){if("1.3.6.1.5.5.7.48.1.1"===this.responseBytes.responseType){var n=e.org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);return new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:n.result}).sign(t,i)}return Promise.reject("Unknown ResponseBytes type: "+this.responseBytes.responseType)},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.toJSON=function(){var e={responseStatus:this.responseStatus.toJSON()};return"responseBytes"in this&&(e.responseBytes=this.responseBytes.toJSON()),e},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.getCertificateStatus=function(e,t){var i,n={isForCertificate:!1,status:2};if("responseBytes"in this==0)return n;if("1.3.6.1.5.5.7.48.1.1"!=this.responseBytes.responseType)return n;try{var o=org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);i=new org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:o.result})}catch(e){return n}return i.getCertificateStatus(e,t)},e.org.pkijs.simpl.ocsp.SingleResponse=function(){this.certID=new e.org.pkijs.simpl.ocsp.CertID,this.certStatus=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[]}),this.thisUpdate=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.SingleResponse.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certID=arguments[0].certID||new e.org.pkijs.simpl.ocsp.CertID,this.certStatus=arguments[0].certStatus||new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[]}),this.thisUpdate=arguments[0].thisUpdate||new Date(0,0,0),"nextUpdate"in arguments[0]&&(this.nextUpdate=arguments[0].nextUpdate),"singleExtensions"in arguments[0]&&(this.singleExtensions=arguments[0].singleExtensions))},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.SingleResponse({names:{certID:{names:{block_name:"certID"}},certStatus:"certStatus",thisUpdate:"thisUpdate",nextUpdate:"nextUpdate",singleExtensions:"singleExtensions"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for SingleResponse");if(this.certID=new e.org.pkijs.simpl.ocsp.CertID({schema:i.result.certID}),this.certStatus=i.result.certStatus,this.thisUpdate=i.result.thisUpdate.toDate(),"nextUpdate"in i.result&&(this.nextUpdate=i.result.nextUpdate.toDate()),"singleExtensions"in i.result){this.singleExtensions=new Array;for(var n=i.result.singleExtensions.value_block.value,o=0;o<n.length;o++)this.singleExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))}},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.toSchema=function(){var t=new Array;if(t.push(this.certID.toSchema()),t.push(this.certStatus),t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.thisUpdate})),"nextUpdate"in this&&t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.nextUpdate})),"singleExtensions"in this){for(var i=new Array,n=0;n<this.singleExtensions.length;n++)i.push(this.singleExtensions[n].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.toJSON=function(){var e={certID:this.certID.toJSON(),certStatus:this.certStatus.toJSON(),thisUpdate:this.thisUpdate};if("nextUpdate"in this&&(e.nextUpdate=this.nextUpdate),"singleExtensions"in this){e.singleExtensions=new Array;for(var t=0;t<this.singleExtensions.length;t++)e.singleExtensions.push(this.singleExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.ResponseData=function(){this.tbs=new ArrayBuffer(0),this.responderID=new e.org.pkijs.simpl.RDN,this.producedAt=new Date(0,0,0),this.responses=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.ResponseData.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("version"in arguments[0]&&(this.version=arguments[0].version),this.responderID=arguments[0].responderID||new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:10},value:[]}),this.producedAt=arguments[0].producedAt||new Date(0,0,0),this.responses=arguments[0].responses||new Array,"responseExtensions"in arguments[0]&&(this.responseExtensions=arguments[0].responseExtensions))},e.org.pkijs.simpl.ocsp.ResponseData.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.ResponseData());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ocsp.ResponseData");this.tbs=i.result.ResponseData.value_before_decode,"ResponseData.version"in i.result&&(this.version=i.result["ResponseData.version"].value_block.value_dec),1===i.result["ResponseData.responderID"].id_block.tag_number?this.responderID=new e.org.pkijs.simpl.RDN({schema:i.result["ResponseData.responderID"].value_block.value[0]}):this.responderID=i.result["ResponseData.responderID"].value_block.value[0],this.producedAt=i.result["ResponseData.producedAt"].toDate();for(var n=i.result["ResponseData.responses"],o=0;o<n.length;o++)this.responses.push(new e.org.pkijs.simpl.ocsp.SingleResponse({schema:n[o]}));if("ResponseData.responseExtensions"in i.result){this.responseExtensions=new Array;var r=i.result["ResponseData.responseExtensions"].value_block.value;for(o=0;o<r.length;o++)this.responseExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}},e.org.pkijs.simpl.ocsp.ResponseData.prototype.toSchema=function(t){var i;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.ocsp.ResponseData();i=e.org.pkijs.fromBER(this.tbs).result}else{var n=new Array;"version"in this&&n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),this.responderID instanceof e.org.pkijs.simpl.RDN?n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.responderID.toSchema()]})):n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.responderID]})),n.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.producedAt}));for(var o=new Array,r=0;r<this.responses.length;r++)o.push(this.responses[r].toSchema());if(n.push(new e.org.pkijs.asn1.SEQUENCE({value:o})),"responseExtensions"in this){for(var a=new Array,s=0;s<this.responseExtensions.length;s++)a.push(this.responseExtensions[s].toSchema());n.push(new e.org.pkijs.asn1.SEQUENCE({value:a}))}i=new e.org.pkijs.asn1.SEQUENCE({value:n})}return i},e.org.pkijs.simpl.ocsp.ResponseData.prototype.toJSON=function(){var e={};if("version"in this&&(e.version=this.version),"responderID"in this&&(e.responderID=this.responderID),"producedAt"in this&&(e.producedAt=this.producedAt),"responses"in this){e.responses=new Array;for(var t=0;t<this.responses.length;t++)e.responses.push(this.responses[t].toJSON())}if("responseExtensions"in this){e.responseExtensions=new Array;for(t=0;t<this.responseExtensions.length;t++)e.responseExtensions.push(this.responseExtensions[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE=function(){this.tbsResponseData=new e.org.pkijs.simpl.ocsp.ResponseData,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbsResponseData=arguments[0].tbsResponseData||new e.org.pkijs.simpl.ocsp.ResponseData,this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.BITSTRING,"certs"in arguments[0]&&(this.certs=arguments[0].certs))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_BASIC_RESPONSE());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OCSP_BASIC_RESPONSE");if(this.tbsResponseData=new e.org.pkijs.simpl.ocsp.ResponseData({schema:i.result["BasicOCSPResponse.tbsResponseData"]}),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result["BasicOCSPResponse.signatureAlgorithm"]}),this.signature=i.result["BasicOCSPResponse.signature"],"BasicOCSPResponse.certs"in i.result){this.certs=new Array;for(var n=i.result["BasicOCSPResponse.certs"],o=0;o<n.length;o++)this.certs.push(new e.org.pkijs.simpl.CERT({schema:n[o]}))}},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.toSchema=function(){var t=new Array;if(t.push(this.tbsResponseData.toSchema()),t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"certs"in this){for(var i=new Array,n=0;n<this.certs.length;n++)i.push(this.certs[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.verify=function(){if("certs"in this==!1)return Promise.reject("No certificates attached to the BasicOCSPResponce");var t=this,i=null,n=this.certs;new Uint8Array(this.signature.value_block.value_hex);var o,r=new Uint8Array(this.tbsResponseData.tbs),a=-1,s=Promise.resolve(),c=new Array;arguments[0]instanceof Object&&"trusted_certs"in arguments[0]&&(c=arguments[0].trusted_certs);var l=e.org.pkijs.getCrypto();if(void 0===l)return Promise.reject("Unable to create WebCrypto object");if(""===(o=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm)))return Promise.reject("Unsupported signature algorithm: "+t.signatureAlgorithm.algorithm_id);var u=0,p={};if(this.tbsResponseData.responderID instanceof e.org.pkijs.simpl.RDN)u=0,p=this.tbsResponseData.responderID;else{if(!(this.tbsResponseData.responderID instanceof e.org.pkijs.asn1.OCTETSTRING))return Promise.reject("Wrong value for responderID");u=1,p=this.tbsResponseData.responderID}function h(e){if(!0===e.issuer.isEqual(i.issuer)&&!0===e.serialNumber.isEqual(i.serialNumber))return null;for(var t=!1,n=0;n<e.extensions.length;n++)"2.5.29.19"===e.extensions[n].extnID&&"cA"in e.extensions[n].parsedValue&&!0===e.extensions[n].parsedValue.cA&&(t=!0);return t?e:null}s=0===u?s.then((function(){for(var e=0;e<n.length;e++)if(n[e].subject.isEqual(p)){a=e;break}})):s.then((function(){for(var t=new Array,i=0;i<n.length;i++)t.push(l.digest({name:"sha-1"},new Uint8Array(n[i].subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex)));return Promise.all(t).then((function(t){for(var i=0;i<n.length;i++)if(e.org.pkijs.isEqual_buffer(t[i],p.value_block.value_hex)){a=i;break}}))}));var g=new Array;return s=s.then((function(o){if(-1===a)return Promise.reject("Correct certificate was not found in OCSP response");i=n[a];for(var r=0;r<t.certs.length;r++)g.push(h(t.certs[r]));return Promise.all(g).then((function(n){var o=new Array;o.push(i);for(var r=0;r<n.length;r++)null!==n[r]&&o.push(n[r]);var a=new e.org.pkijs.simpl.CERT_CHAIN({certs:o,trusted_certs:c});return"crls"in t&&(a.crls=t.crls),a.verify().then((function(e){return!0===e.result?Promise.resolve():Promise.reject("Validation of signer's certificate failed")}),(function(e){return Promise.reject("Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e))}))}),(function(e){return Promise.reject("Error during checking certificates for CA flag: "+e)}))})),s=(s=s.then((function(){var t=e.org.pkijs.getAlgorithmByOID(n[a].signatureAlgorithm.algorithm_id);if("name"in t==!1)return Promise.reject("Unsupported public key algorithm: "+n[a].signatureAlgorithm.algorithm_id);var i=t.name,r=e.org.pkijs.getAlgorithmParameters(i,"importkey");if("hash"in r.algorithm&&(r.algorithm.hash.name=o),"ECDSA"===i){if(n[a].subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var s=e.org.pkijs.getAlgorithmByOID(n[a].subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in s==!1)return Promise.reject("Unsupported named curve algorithm: "+n[a].subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());r.algorithm.namedCurve=s.name}var c=n[a].subjectPublicKeyInfo.toSchema().toBER(!1),u=new Uint8Array(c);return l.importKey("spki",u,r.algorithm,!0,r.usages)}))).then((function(i){var n=e.org.pkijs.getAlgorithmParameters(i.algorithm.name,"verify");"hash"in n.algorithm&&(n.algorithm.hash.name=o);var a=t.signature.value_block.value_hex;if("ECDSA"===i.algorithm.name){var s=e.org.pkijs.fromBER(a);a=e.org.pkijs.createECDSASignatureFromCMS(s.result)}if("RSA-PSS"===i.algorithm.name){var c;try{c=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:t.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}n.algorithm.saltLength="saltLength"in c?c.saltLength:20;var u="SHA-1";if("hashAlgorithm"in c){var p=e.org.pkijs.getAlgorithmByOID(c.hashAlgorithm.algorithm_id);if("name"in p==!1)return Promise.reject("Unrecognized hash algorithm: "+c.hashAlgorithm.algorithm_id);u=p.name}n.algorithm.hash.name=u}return l.verify(n.algorithm,i,new Uint8Array(a),r)}))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.sign=function(t,i){var n=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i)i="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:i}))return Promise.reject("Unsupported hash algorithm: "+i);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":n.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==i.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:i});if(""===a)return Promise.reject("Unsupported hash algorithm: "+i);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);n.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}n.tbsResponseData.tbs=n.tbsResponseData.toSchema(!0).toBER(!1);var c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):c.sign(o.algorithm,t,new Uint8Array(n.tbsResponseData.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),n.signature=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.toJSON=function(){var e={tbsResponseData:this.tbsResponseData.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};if("certs"in this){e.certs=new Array;for(var t=0;t<this.certs.length;t++)e.certs.push(this.certs[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.old_getCertificateStatus=function(t){for(var i={isForCertificate:!1,status:2},n=0;n<this.tbsResponseData.responses.length;n++)if(this.tbsResponseData.responses[n].certID.isEqual(t)){if(i.isForCertificate=!0,this.tbsResponseData.responses[n].certStatus instanceof e.org.pkijs.asn1.ASN1_PRIMITIVE)switch(this.tbsResponseData.responses[n].certStatus.id_block.tag_number){case 0:i.status=0;break;case 2:i.status=2}else this.tbsResponseData.responses[n].certStatus instanceof e.org.pkijs.asn1.ASN1_CONSTRUCTED&&1==this.tbsResponseData.responses[n].certStatus.id_block.tag_number&&(i.status=1);return i}return i},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.getCertificateStatus=function(t,i){for(var n=Promise.resolve(),o=this,r={isForCertificate:!1,status:2},a={},s=new Array,c=new Array,l=0;l<this.tbsResponseData.responses.length;l++){var u=org.pkijs.getAlgorithmByOID(this.tbsResponseData.responses[l].certID.hashAlgorithm.algorithm_id);if("name"in u==0)return Promise.reject("Wrong CertID hashing algorithm: "+this.tbsResponseData.responses[l].certID.hashAlgorithm.algorithm_id);if(u.name in a==0){a[u.name]=1;var p=new org.pkijs.simpl.ocsp.CertID;s.push(p),c.push(p.createForCertificate(t,{hashAlgorithm:u.name,issuerCertificate:i}))}}return n=(n=n.then((function(){return Promise.all(c)}))).then((function(){for(var t=0;t<o.tbsResponseData.responses.length;t++)for(var i=0;i<s.length;i++)if(o.tbsResponseData.responses[t].certID.isEqual(s[i])){if(r.isForCertificate=!0,o.tbsResponseData.responses[t].certStatus instanceof e.org.pkijs.asn1.ASN1_PRIMITIVE)switch(o.tbsResponseData.responses[t].certStatus.id_block.tag_number){case 0:r.status=0;break;case 2:r.status=2}else o.tbsResponseData.responses[t].certStatus instanceof e.org.pkijs.asn1.ASN1_CONSTRUCTED&&1==o.tbsResponseData.responses[t].certStatus.id_block.tag_number&&(r.status=1);return r}return r})),n},e.org.pkijs.simpl.tsp.MessageImprint=function(){this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.hashedMessage=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.MessageImprint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.hashAlgorithm=arguments[0].hashAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.hashedMessage=arguments[0].hashedMessage||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.tsp.MessageImprint.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.MessageImprint({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},hashedMessage:"hashedMessage"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for MessageImprint");this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.hashAlgorithm}),this.hashedMessage=i.result.hashedMessage},e.org.pkijs.simpl.tsp.MessageImprint.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.hashAlgorithm.toSchema(),this.hashedMessage]})},e.org.pkijs.simpl.tsp.MessageImprint.prototype.toJSON=function(){return{hashAlgorithm:this.hashAlgorithm.toJSON(),hashedMessage:this.hashedMessage.toJSON()}},e.org.pkijs.simpl.TSP_REQUEST=function(){this.version=0,this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TSP_REQUEST.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.messageImprint=arguments[0].messageImprint||new e.org.pkijs.simpl.tsp.MessageImprint,"reqPolicy"in arguments[0]&&(this.reqPolicy=arguments[0].reqPolicy),"nonce"in arguments[0]&&(this.nonce=arguments[0].nonce),"certReq"in arguments[0]&&(this.certReq=arguments[0].certReq),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions))},e.org.pkijs.simpl.TSP_REQUEST.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TSP_REQUEST());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for TSP_REQUEST");if(this.version=i.result["TimeStampReq.version"].value_block.value_dec,this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint({schema:i.result["TimeStampReq.messageImprint"]}),"TimeStampReq.reqPolicy"in i.result&&(this.reqPolicy=i.result["TimeStampReq.reqPolicy"].value_block.toString()),"TimeStampReq.nonce"in i.result&&(this.nonce=i.result["TimeStampReq.nonce"]),"TimeStampReq.certReq"in i.result&&(this.certReq=i.result["TimeStampReq.certReq"].value_block.value),"TimeStampReq.extensions"in i.result){this.extensions=new Array;for(var n=i.result["TimeStampReq.extensions"],o=0;o<n.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))}},e.org.pkijs.simpl.TSP_REQUEST.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.messageImprint.toSchema()),"reqPolicy"in this&&t.push(new e.org.pkijs.asn1.OID({value:this.reqPolicy})),"nonce"in this&&t.push(this.nonce),"certReq"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.certReq})),"extensions"in this){for(var i=new Array,n=0;n<this.extensions.length;n++)i.push(this.extensions[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TSP_REQUEST.prototype.toJSON=function(){var e={version:this.version,messageImprint:this.messageImprint.toJSON()};if("reqPolicy"in this&&(e.reqPolicy=this.reqPolicy),"nonce"in this&&(e.nonce=this.nonce.toJSON()),"certReq"in this&&(e.certReq=this.certReq),"extensions"in this){e.extensions=new Array;for(var t=0;t<this.extensions.length;t++)e.extensions.push(this.extensions[t].toJSON())}return e},e.org.pkijs.simpl.tsp.Accuracy=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.Accuracy.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("seconds"in arguments[0]&&(this.seconds=arguments[0].seconds),"millis"in arguments[0]&&(this.millis=arguments[0].millis),"micros"in arguments[0]&&(this.micros=arguments[0].micros))},e.org.pkijs.simpl.tsp.Accuracy.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.Accuracy({names:{seconds:"seconds",millis:"millis",micros:"micros"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for tsp.Accuracy");if("seconds"in i.result&&(this.seconds=i.result.seconds.value_block.value_dec),"millis"in i.result){var n=new e.org.pkijs.asn1.INTEGER({value_hex:i.result.millis.value_block.value_hex});this.millis=n.value_block.value_dec}if("micros"in i.result){var o=new e.org.pkijs.asn1.INTEGER({value_hex:i.result.micros.value_block.value_hex});this.micros=o.value_block.value_dec}},e.org.pkijs.simpl.tsp.Accuracy.prototype.toSchema=function(){var t=new Array;if("seconds"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.seconds})),"millis"in this){var i=new e.org.pkijs.asn1.INTEGER({value:this.millis});t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},value_hex:i.value_block.value_hex}))}if("micros"in this){var n=new e.org.pkijs.asn1.INTEGER({value:this.micros});t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:n.value_block.value_hex}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.tsp.Accuracy.prototype.toJSON=function(){var e={};return"seconds"in this&&(e.seconds=this.seconds),"millis"in this&&(e.millis=this.millis),"micros"in this&&(e.micros=this.micros),e},e.org.pkijs.simpl.TST_INFO=function(){this.version=0,this.policy="",this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint,this.serialNumber=new e.org.pkijs.asn1.INTEGER,this.genTime=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TST_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.policy=arguments[0].policy||"",this.messageImprint=arguments[0].messageImprint||new e.org.pkijs.simpl.tsp.MessageImprint,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER,this.genTime=arguments[0].genTime||new Date(0,0,0),"accuracy"in arguments[0]&&(this.accuracy=arguments[0].accuracy),"ordering"in arguments[0]&&(this.ordering=arguments[0].ordering),"nonce"in arguments[0]&&(this.nonce=arguments[0].nonce),"tsa"in arguments[0]&&(this.tsa=arguments[0].tsa),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions))},e.org.pkijs.simpl.TST_INFO.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TST_INFO());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for TST_INFO");if(this.version=i.result["TSTInfo.version"].value_block.value_dec,this.policy=i.result["TSTInfo.policy"].value_block.toString(),this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint({schema:i.result["TSTInfo.messageImprint"]}),this.serialNumber=i.result["TSTInfo.serialNumber"],this.genTime=i.result["TSTInfo.genTime"].toDate(),"TSTInfo.accuracy"in i.result&&(this.accuracy=new e.org.pkijs.simpl.tsp.Accuracy({schema:i.result["TSTInfo.accuracy"]})),"TSTInfo.ordering"in i.result&&(this.ordering=i.result["TSTInfo.ordering"].value_block.value),"TSTInfo.nonce"in i.result&&(this.nonce=i.result["TSTInfo.nonce"]),"TSTInfo.tsa"in i.result&&(this.tsa=new e.org.pkijs.simpl.GENERAL_NAME({schema:i.result["TSTInfo.tsa"]})),"TSTInfo.extensions"in i.result)for(var n=i.result["TSTInfo.extensions"],o=0;o<n.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))},e.org.pkijs.simpl.TST_INFO.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.OID({value:this.policy})),t.push(this.messageImprint.toSchema()),t.push(this.serialNumber),t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.genTime})),"accuracy"in this&&t.push(this.accuracy.toSchema()),"ordering"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.ordering})),"nonce"in this&&t.push(this.nonce),"tsa"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[this.tsa.toSchema()]})),"extensions"in this){for(var i=new Array,n=0;n<this.extensions.length;n++)i.push(this.extensions[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TST_INFO.prototype.toJSON=function(){var e={version:this.version,policy:this.policy,messageImprint:this.messageImprint.toJSON(),serialNumber:this.serialNumber.toJSON(),genTime:this.genTime};if("accuracy"in this&&(e.accuracy=this.accuracy.toJSON()),"ordering"in this&&(e.ordering=this.ordering),"nonce"in this&&(e.nonce=this.nonce.toJSON()),"tsa"in this&&(e.tsa=this.tsa.toJSON()),"extensions"in this){e.extensions=new Array;for(var t=0;t<this.extensions.length;t++)e.extensions.push(this.extensions[t].toJSON())}return e},e.org.pkijs.simpl.TST_INFO.prototype.verify=function(){var t,i=Promise.resolve(),n=this,o=e.org.pkijs.getCrypto();if(void 0===o)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object){if(!("data"in arguments[0]))return Promise.reject('"data" is a mandatory attribute for TST_INFO verification');t=arguments[0].data,"notBefore"in arguments[0]&&arguments[0].notBefore,"notAfter"in arguments[0]&&arguments[0].notAfter}var r=e.org.pkijs.getAlgorithmByOID(n.messageImprint.hashAlgorithm.algorithm_id);if("name"in r==!1)return Promise.reject("Unsupported signature algorithm: "+n.messageImprint.hashAlgorithm.algorithm_id);var a=r.name;return i=i.then((function(){return o.digest(a,new Uint8Array(t))})).then((function(t){return!!e.org.pkijs.isEqual_buffer(t,n.messageImprint.hashedMessage.value_block.value_hex)}))},e.org.pkijs.simpl.tsp.PKIStatusInfo=function(){this.status=2,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.status=e.org.pkijs.getValue(arguments[0],"status",2),"statusStrings"in arguments[0]&&(this.statusStrings=arguments[0].statusStrings),"failInfo"in arguments[0]&&(this.failInfo=arguments[0].failInfo))},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.PKIStatusInfo({names:{status:"status",statusStrings:"statusStrings",failInfo:"failInfo"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PKIStatusInfo");var n=i.result.status;if(!0===n.value_block.is_hex_only||n.value_block.value_dec<0||n.value_block.value_dec>5)throw new Error('PKIStatusInfo "status" has invalid value');this.status=n.value_block.value_dec,"statusStrings"in i.result&&(this.statusStrings=i.result.statusStrings),"failInfo"in i.result&&(this.failInfo=i.result.failInfo)},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.status})),"statusStrings"in this&&t.push(new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:this.statusStrings})),"failInfo"in this&&t.push(this.failInfo),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.toJSON=function(){var e={status:this.status};if("statusStrings"in this){e.statusStrings=new Array;for(var t=0;t<this.statusStrings.length;t++)e.statusStrings.push(this.statusStrings[t].toJSON())}return"failInfo"in this&&(e.failInfo=this.failInfo.toJSON()),e},e.org.pkijs.simpl.TSP_RESPONSE=function(){this.status=new e.org.pkijs.simpl.tsp.PKIStatusInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TSP_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.status=arguments[0].status||new e.org.pkijs.simpl.tsp.PKIStatusInfo,"timeStampToken"in arguments[0]&&(this.timeStampToken=arguments[0].timeStampToken))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TSP_RESPONSE());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for TSP_RESPONSE");this.status=new e.org.pkijs.simpl.tsp.PKIStatusInfo({schema:i.result["TimeStampResp.status"]}),"TimeStampResp.timeStampToken"in i.result&&(this.timeStampToken=new e.org.pkijs.simpl.CMS_CONTENT_INFO({schema:i.result["TimeStampResp.timeStampToken"]}))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.toSchema=function(){var t=new Array;return t.push(this.status.toSchema()),"timeStampToken"in this&&t.push(this.timeStampToken.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TSP_RESPONSE.prototype.verify=function(){var t=new Array,i=new ArrayBuffer(0);return"timeStampToken"in this==!1?Promise.reject("timeStampToken is absent in TSP response"):(arguments[0]instanceof Object&&("trusted_certs"in arguments[0]&&(t=arguments[0].trusted_certs),"data"in arguments[0]&&(i=arguments[0].data)),"1.2.840.113549.1.7.2"!==this.timeStampToken.contentType?Promise.reject("Wrong format of timeStampToken: "+this.timeStampToken.contentType):new e.org.pkijs.simpl.CMS_SIGNED_DATA({schema:this.timeStampToken.content}).verify({signer:0,trusted_certs:t,data:i}))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.sign=function(t,i){return"timeStampToken"in this==!1?Promise.reject("timeStampToken is absent in TSP response"):"1.2.840.113549.1.7.2"!==this.timeStampToken.contentType?Promise.reject("Wrong format of timeStampToken: "+this.timeStampToken.contentType):new e.org.pkijs.simpl.CMS_SIGNED_DATA({schema:this.timeStampToken.content}).sign(t,0,i)},e.org.pkijs.simpl.TSP_RESPONSE.prototype.toJSON=function(){var e={status:this.status};return"timeStampToken"in this&&(e.timeStampToken=this.timeStampToken.toJSON()),e}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.x509)e.org.pkijs.schema.x509={};else if("object"!=typeof e.org.pkijs.schema.x509)throw new Error("Name org.pkijs.schema.x509 already exists and it's not an object but "+typeof e.org.pkijs.schema.x509);var t={};e.org.pkijs.schema.TIME=function(t,i){var n=e.org.pkijs.getNames(arguments[0]),o=i||!1;return new e.org.pkijs.asn1.CHOICE({optional:o,value:[new e.org.pkijs.asn1.UTCTIME({name:n.utcTimeName||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:n.generalTimeName||""})]})},t.tbsCertificate=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"tbsCertificate",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.tbsCertificate_version||"tbsCertificate.version"})]}),new e.org.pkijs.asn1.INTEGER({name:t.tbsCertificate_serialNumber||"tbsCertificate.serialNumber"}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:"tbsCertificate.signature"}}),e.org.pkijs.schema.RDN(t.issuer||{names:{block_name:"tbsCertificate.issuer"}}),new e.org.pkijs.asn1.SEQUENCE({name:t.tbsCertificate_validity||"tbsCertificate.validity",value:[e.org.pkijs.schema.TIME(t.not_before||{names:{utcTimeName:"tbsCertificate.notBefore",generalTimeName:"tbsCertificate.notBefore"}}),e.org.pkijs.schema.TIME(t.not_after||{names:{utcTimeName:"tbsCertificate.notAfter",generalTimeName:"tbsCertificate.notAfter"}})]}),e.org.pkijs.schema.RDN(t.subject||{names:{block_name:"tbsCertificate.subject"}}),e.org.pkijs.schema.PUBLIC_KEY_INFO(t.subjectPublicKeyInfo||{names:{block_name:"tbsCertificate.subjectPublicKeyInfo"}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.tbsCertificate_issuerUniqueID||"tbsCertificate.issuerUniqueID",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.tbsCertificate_subjectUniqueID||"tbsCertificate.subjectUniqueID",optional:!0,id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:"tbsCertificate.extensions"}})]})]})},e.org.pkijs.schema.CERT=function(){var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:i.block_name||"",value:[t.tbsCertificate(i.tbsCertificate),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(i.signatureAlgorithm||{names:{block_name:"signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:i.signatureValue||"signatureValue"})]})},t.tbsCertList=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"tbsCertList",value:[new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.tbsCertList_version||"tbsCertList.version",value:2}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:"tbsCertList.signature"}}),e.org.pkijs.schema.RDN(t.issuer||{names:{block_name:"tbsCertList.issuer"}}),e.org.pkijs.schema.TIME(t.tbsCertList_thisUpdate||{names:{utcTimeName:"tbsCertList.thisUpdate",generalTimeName:"tbsCertList.thisUpdate"}}),e.org.pkijs.schema.TIME(t.tbsCertList_nextUpdate||{names:{utcTimeName:"tbsCertList.nextUpdate",generalTimeName:"tbsCertList.nextUpdate"}},!0),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.tbsCertList_revokedCertificates||"tbsCertList.revokedCertificates",value:new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER,e.org.pkijs.schema.TIME(),e.org.pkijs.schema.EXTENSIONS({},!0)]})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.EXTENSIONS(t.crlExtensions||{names:{block_name:"tbsCertList.extensions"}})]})]})},e.org.pkijs.schema.CRL=function(){var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:i.block_name||"CertificateList",value:[t.tbsCertList(arguments[0]),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(i.signatureAlgorithm||{names:{block_name:"signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:i.signatureValue||"signatureValue"})]})},t.CertificationRequestInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.CertificationRequestInfo||"CertificationRequestInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.CertificationRequestInfo_version||"CertificationRequestInfo.version"}),new e.org.pkijs.schema.RDN(t.subject||{names:{block_name:"CertificationRequestInfo.subject"}}),new e.org.pkijs.schema.PUBLIC_KEY_INFO({names:{block_name:"CertificationRequestInfo.subjectPublicKeyInfo"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({optional:!0,name:t.CertificationRequestInfo_attributes||"CertificationRequestInfo.attributes",value:e.org.pkijs.schema.ATTRIBUTE(t.attributes||{})})]})]})},e.org.pkijs.schema.PKCS10=function(){var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({value:[t.CertificationRequestInfo(i.certificationRequestInfo||{}),new e.org.pkijs.asn1.SEQUENCE({name:i.signatureAlgorithm||"signatureAlgorithm",value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY({optional:!0})]}),new e.org.pkijs.asn1.BITSTRING({name:i.signatureValue||"signatureValue"})]})},e.org.pkijs.schema.PKCS8=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.privateKeyAlgorithm||""),new e.org.pkijs.asn1.OCTETSTRING({name:t.privateKey||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.attributes||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})},t.BuiltInStandardAttributes=function(t){void 0===t&&(t=!1);var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({optional:t,value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:2,tag_number:1},name:i.country_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:2,tag_number:2},name:i.administration_domain_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:0},name:i.network_address||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},name:i.terminal_identifier||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},name:i.private_domain_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:3},name:i.organization_name||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,name:i.numeric_user_identifier||"",id_block:{tag_class:3,tag_number:4},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:i.personal_name||"",id_block:{tag_class:3,tag_number:5},value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:2},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:3},is_hex_only:!0})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:i.organizational_unit_names||"",id_block:{tag_class:3,tag_number:6},value:[new e.org.pkijs.asn1.REPEATED({value:new e.org.pkijs.asn1.PRINTABLESTRING})]})]})},t.BuiltInDomainDefinedAttributes=function(t){return void 0===t&&(t=!1),new e.org.pkijs.asn1.SEQUENCE({optional:t,value:[new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})},t.ExtensionAttributes=function(t){return void 0===t&&(t=!1),new e.org.pkijs.asn1.SET({optional:t,value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:0},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.ANY]})]})},e.org.pkijs.schema.GENERAL_NAME=function(){var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},name:i.block_name||"",value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:i.block_name||"",id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:i.block_name||"",id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},name:i.block_name||"",value:[t.BuiltInStandardAttributes(!1),t.BuiltInDomainDefinedAttributes(!0),t.ExtensionAttributes(!0)]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:4},name:i.block_name||"",value:[e.org.pkijs.schema.RDN(i.directoryName||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:5},name:i.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.TELETEXSTRING,new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.UNIVERSALSTRING,new e.org.pkijs.asn1.UTF8STRING,new e.org.pkijs.asn1.BMPSTRING]})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.TELETEXSTRING,new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.UNIVERSALSTRING,new e.org.pkijs.asn1.UTF8STRING,new e.org.pkijs.asn1.BMPSTRING]})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:i.block_name||"",id_block:{tag_class:3,tag_number:6}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:i.block_name||"",id_block:{tag_class:3,tag_number:7}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:i.block_name||"",id_block:{tag_class:3,tag_number:8}})]})},e.org.pkijs.schema.ALGORITHM_IDENTIFIER=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",optional:t.optional||!1,value:[new e.org.pkijs.asn1.OID({name:t.algorithmIdentifier||""}),new e.org.pkijs.asn1.ANY({name:t.algorithmParams||"",optional:!0})]})},e.org.pkijs.schema.x509.RSAPublicKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.modulus||""}),new e.org.pkijs.asn1.INTEGER({name:t.publicExponent||""})]})},e.org.pkijs.schema.x509.OtherPrimeInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.prime||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.coefficient||""})]})},e.org.pkijs.schema.x509.RSAPrivateKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.INTEGER({name:t.modulus||""}),new e.org.pkijs.asn1.INTEGER({name:t.publicExponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.privateExponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.prime1||""}),new e.org.pkijs.asn1.INTEGER({name:t.prime2||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent1||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent2||""}),new e.org.pkijs.asn1.INTEGER({name:t.coefficient||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.otherPrimeInfos||"",value:e.org.pkijs.schema.x509.OtherPrimeInfo(t.otherPrimeInfo||{})})]})]})},e.org.pkijs.schema.x509.RSASSA_PSS_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.maskGenAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},optional:!0,value:[new e.org.pkijs.asn1.INTEGER({name:t.saltLength||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},optional:!0,value:[new e.org.pkijs.asn1.INTEGER({name:t.trailerField||""})]})]})},e.org.pkijs.schema.PUBLIC_KEY_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.algorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.subjectPublicKey||""})]})},e.org.pkijs.schema.ATTRIBUTE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.type||""}),new e.org.pkijs.asn1.SET({name:t.set_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.values||"",value:new e.org.pkijs.asn1.ANY})]})]})},e.org.pkijs.schema.ATTR_TYPE_AND_VALUE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.type||""}),new e.org.pkijs.asn1.ANY({name:t.value||""})]})},e.org.pkijs.schema.RDN=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.repeated_sequence||"",value:new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.repeated_set||"",value:e.org.pkijs.schema.ATTR_TYPE_AND_VALUE(t.attr_type_and_value||{})})]})})]})},e.org.pkijs.schema.EXTENSION=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.extnID||""}),new e.org.pkijs.asn1.BOOLEAN({name:t.critical||"",optional:!0}),new e.org.pkijs.asn1.OCTETSTRING({name:t.extnValue||""})]})},e.org.pkijs.schema.EXTENSIONS=function(t,i){var n=e.org.pkijs.getNames(arguments[0]),o=i||!1;return new e.org.pkijs.asn1.SEQUENCE({optional:o,name:n.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:n.extensions||"",value:e.org.pkijs.schema.EXTENSION(n.extension||{})})]})},e.org.pkijs.schema.x509.AuthorityKeyIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.keyIdentifier||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.authorityCertIssuer||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.authorityCertSerialNumber||"",optional:!0,id_block:{tag_class:3,tag_number:2}})]})},e.org.pkijs.schema.x509.PrivateKeyUsagePeriod=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.notBefore||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.notAfter||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.x509.AltName=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.altNames||"",value:e.org.pkijs.schema.GENERAL_NAME()})]})},e.org.pkijs.schema.x509.SubjectDirectoryAttributes=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.attributes||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})},e.org.pkijs.schema.x509.GeneralSubtree=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.GENERAL_NAME(t.base||""),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.minimum||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.INTEGER({name:t.maximum||""})]})]})},e.org.pkijs.schema.x509.NameConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.permittedSubtrees||"",value:e.org.pkijs.schema.x509.GeneralSubtree()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.excludedSubtrees||"",value:e.org.pkijs.schema.x509.GeneralSubtree()})]})]})},e.org.pkijs.schema.x509.BasicConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.BOOLEAN({optional:!0,name:t.cA||""}),new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.pathLenConstraint||""})]})},e.org.pkijs.schema.x509.PolicyQualifierInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.policyQualifierId||""}),new e.org.pkijs.asn1.ANY({name:t.qualifier||""})]})},e.org.pkijs.schema.x509.PolicyInformation=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.policyIdentifier||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.policyQualifiers||"",value:e.org.pkijs.schema.x509.PolicyQualifierInfo()})]})]})},e.org.pkijs.schema.x509.CertificatePolicies=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.certificatePolicies||"",value:e.org.pkijs.schema.x509.PolicyInformation()})]})},e.org.pkijs.schema.x509.PolicyMapping=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.issuerDomainPolicy||""}),new e.org.pkijs.asn1.OID({name:t.subjectDomainPolicy||""})]})},e.org.pkijs.schema.x509.PolicyMappings=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.mappings||"",value:e.org.pkijs.schema.x509.PolicyMapping()})]})},e.org.pkijs.schema.x509.PolicyConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.requireExplicitPolicy||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.inhibitPolicyMapping||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.x509.ExtKeyUsage=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.keyPurposes||"",value:new e.org.pkijs.asn1.OID})]})},e.org.pkijs.schema.x509.DistributionPoint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoint_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.RDN().value_block.value})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.reasons||"",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.cRLIssuer||"",optional:!0,id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.REPEATED({name:t.cRLIssuer_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]})]})},e.org.pkijs.schema.x509.CRLDistributionPoints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoints||"",value:e.org.pkijs.schema.x509.DistributionPoint()})]})},e.org.pkijs.schema.x509.AccessDescription=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.accessMethod||""}),e.org.pkijs.schema.GENERAL_NAME(t.accessLocation||"")]})},e.org.pkijs.schema.x509.InfoAccess=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.accessDescriptions||"",value:e.org.pkijs.schema.x509.AccessDescription()})]})},e.org.pkijs.schema.x509.IssuingDistributionPoint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoint_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.RDN().value_block.value})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsUserCerts||"",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsCACerts||"",optional:!0,id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlySomeReasons||"",optional:!0,id_block:{tag_class:3,tag_number:3}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.indirectCRL||"",optional:!0,id_block:{tag_class:3,tag_number:4}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsAttributeCerts||"",optional:!0,id_block:{tag_class:3,tag_number:5}})]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.x509)e.org.pkijs.simpl.x509={};else if("object"!=typeof e.org.pkijs.simpl.x509)throw new Error("Name org.pkijs.simpl.x509 already exists and it's not an object but "+typeof e.org.pkijs.simpl.x509);e.org.pkijs.simpl.TIME=function(){this.type=0,this.value=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TIME.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||0,this.value=arguments[0].value||new Date(0,0,0))},e.org.pkijs.simpl.TIME.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TIME({names:{utcTimeName:"utcTimeName",generalTimeName:"generalTimeName"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for TIME");"utcTimeName"in i.result&&(this.type=0,this.value=i.result.utcTimeName.toDate()),"generalTimeName"in i.result&&(this.type=1,this.value=i.result.generalTimeName.toDate())},e.org.pkijs.simpl.TIME.prototype.toSchema=function(){var t={};return 0===this.type&&(t=new e.org.pkijs.asn1.UTCTIME({value_date:this.value})),1===this.type&&(t=new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.value})),t},e.org.pkijs.simpl.TIME.prototype.toJSON=function(){return{type:this.type,value:this.value}},e.org.pkijs.simpl.GENERAL_NAME=function(){this.NameType=9,this.Name={},arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.GENERAL_NAME.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.NameType=arguments[0].NameType||9,this.Name=arguments[0].Name||{})},e.org.pkijs.simpl.GENERAL_NAME.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.GENERAL_NAME({names:{block_name:"block_name",otherName:"otherName",rfc822Name:"rfc822Name",dNSName:"dNSName",x400Address:"x400Address",directoryName:{names:{block_name:"directoryName"}},ediPartyName:"ediPartyName",uniformResourceIdentifier:"uniformResourceIdentifier",iPAddress:"iPAddress",registeredID:"registeredID"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for GENERAL_NAME");switch(this.NameType=i.result.block_name.id_block.tag_number,this.NameType){case 0:case 3:this.Name=i.result.block_name;break;case 1:case 2:case 6:(o=i.result.block_name).id_block.tag_class=1,o.id_block.tag_number=22;var n=o.toBER(!1);this.Name=e.org.pkijs.fromBER(n).result.value_block.value;break;case 4:this.Name=new e.org.pkijs.simpl.RDN({schema:i.result.directoryName});break;case 5:this.Name=i.result.ediPartyName;break;case 7:this.Name=new e.org.pkijs.asn1.OCTETSTRING({value_hex:i.result.block_name.value_block.value_hex});break;case 8:var o;(o=i.result.block_name).id_block.tag_class=1,o.id_block.tag_number=6;n=o.toBER(!1);this.Name=e.org.pkijs.fromBER(n).result.value_block.toString()}},e.org.pkijs.simpl.GENERAL_NAME.prototype.toSchema=function(t){switch(this.NameType){case 0:case 3:case 5:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:this.NameType},value:[this.Name]});case 1:case 2:case 6:return(i=new e.org.pkijs.asn1.IA5STRING({value:this.Name})).id_block.tag_class=3,i.id_block.tag_number=this.NameType,i;case 4:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:4},value:[this.Name.toSchema()]});case 7:return(i=this.Name).id_block.tag_class=3,i.id_block.tag_number=this.NameType,i;case 8:var i;return(i=new e.org.pkijs.asn1.OID({value:this.Name})).id_block.tag_class=3,i.id_block.tag_number=this.NameType,i;default:return e.org.pkijs.schema.GENERAL_NAME()}},e.org.pkijs.simpl.GENERAL_NAME.prototype.toJSON=function(){var e={NameType:this.NameType};return"string"==typeof this.Name?e.Name=this.Name:e.Name=this.Name.toJSON(),e},e.org.pkijs.simpl.GENERAL_NAMES=function(){this.names=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.GENERAL_NAMES.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.names=arguments[0].names||new Array)},e.org.pkijs.simpl.GENERAL_NAMES.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"names",value:e.org.pkijs.schema.GENERAL_NAME()})]}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for GENERAL_NAMES");for(var n=i.result.names,o=0;o<n.length;o++)this.names.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:n[o]}))},e.org.pkijs.simpl.GENERAL_NAMES.prototype.toSchema=function(t){for(var i=new Array,n=0;n<this.names.length;n++)i.push(this.names[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:i})},e.org.pkijs.simpl.GENERAL_NAMES.prototype.toJSON=function(){for(var e=new Array,t=0;t<this.names.length;t++)e.push(this.names[t].toJSON());return{names:e}},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER=function(){this.algorithm_id="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm_id=arguments[0].algorithm_id||"","algorithm_params"in arguments[0]&&(this.algorithm_params=arguments[0].algorithm_params))},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ALGORITHM_IDENTIFIER({names:{algorithmIdentifier:"algorithm",algorithmParams:"params"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ALGORITHM_IDENTIFIER");this.algorithm_id=i.result.algorithm.value_block.toString(),"params"in i.result&&(this.algorithm_params=i.result.params)},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.algorithm_id})),"algorithm_params"in this&&t.push(this.algorithm_params),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.toJSON=function(){var e={algorithm_id:this.algorithm_id};return"algorithm_params"in this&&(e.algorithm_params=this.algorithm_params.toJSON()),e},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.isEqual=function(t){return t instanceof e.org.pkijs.simpl.ALGORITHM_IDENTIFIER!=0&&(this.algorithm_id==t.algorithm_id&&("algorithm_params"in this?"algorithm_params"in t&&JSON.stringify(this.algorithm_params)==JSON.stringify(t.algorithm_params):!("algorithm_params"in t)))},e.org.pkijs.simpl.x509.RSAPublicKey=function(){this.modulus=new e.org.pkijs.asn1.INTEGER,this.publicExponent=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSAPublicKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.modulus=arguments[0].modulus||new e.org.pkijs.asn1.INTEGER,this.publicExponent=arguments[0].publicExponent||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSAPublicKey({names:{modulus:"modulus",publicExponent:"publicExponent"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RSAPublicKey");this.modulus=i.result.modulus,this.publicExponent=i.result.publicExponent},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.modulus,this.publicExponent]})},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.toJSON=function(){return{modulus:this.modulus.toJSON(),publicExponent:this.publicExponent.toJSON()}},e.org.pkijs.simpl.x509.OtherPrimeInfo=function(){this.prime=new e.org.pkijs.asn1.INTEGER,this.exponent=new e.org.pkijs.asn1.INTEGER,this.coefficient=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.prime=arguments[0].prime||new e.org.pkijs.asn1.INTEGER,this.exponent=arguments[0].exponent||new e.org.pkijs.asn1.INTEGER,this.coefficient=arguments[0].coefficient||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.OtherPrimeInfo({names:{prime:"prime",exponent:"exponent",coefficient:"coefficient"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for OtherPrimeInfo");this.prime=i.result.prime,this.exponent=i.result.exponent,this.coefficient=i.result.coefficient},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.prime,this.exponent,this.coefficient]})},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.toJSON=function(){return{prime:this.prime.toJSON(),exponent:this.exponent.toJSON(),coefficient:this.coefficient.toJSON()}},e.org.pkijs.simpl.x509.RSAPrivateKey=function(){this.version=0,this.modulus=new e.org.pkijs.asn1.INTEGER,this.publicExponent=new e.org.pkijs.asn1.INTEGER,this.privateExponent=new e.org.pkijs.asn1.INTEGER,this.prime1=new e.org.pkijs.asn1.INTEGER,this.prime2=new e.org.pkijs.asn1.INTEGER,this.exponent1=new e.org.pkijs.asn1.INTEGER,this.exponent2=new e.org.pkijs.asn1.INTEGER,this.coefficient=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.modulus=arguments[0].modulus||new e.org.pkijs.asn1.INTEGER,this.publicExponent=arguments[0].publicExponent||new e.org.pkijs.asn1.INTEGER,this.privateExponent=arguments[0].privateExponent||new e.org.pkijs.asn1.INTEGER,this.prime1=arguments[0].prime1||new e.org.pkijs.asn1.INTEGER,this.prime2=arguments[0].prime2||new e.org.pkijs.asn1.INTEGER,this.exponent1=arguments[0].exponent1||new e.org.pkijs.asn1.INTEGER,this.exponent2=arguments[0].exponent2||new e.org.pkijs.asn1.INTEGER,this.coefficient=arguments[0].coefficient||new e.org.pkijs.asn1.INTEGER,"otherPrimeInfos"in arguments[0]&&(this.otherPrimeInfos=arguments[0].otherPrimeInfos||new Array))},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSAPrivateKey({names:{version:"version",modulus:"modulus",publicExponent:"publicExponent",privateExponent:"privateExponent",prime1:"prime1",prime2:"prime2",exponent1:"exponent1",exponent2:"exponent2",coefficient:"coefficient",otherPrimeInfos:"otherPrimeInfos"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RSAPrivateKey");if(this.version=i.result.version.value_block.value_dec,this.modulus=i.result.modulus,this.publicExponent=i.result.publicExponent,this.privateExponent=i.result.privateExponent,this.prime1=i.result.prime1,this.prime2=i.result.prime2,this.exponent1=i.result.exponent1,this.exponent2=i.result.exponent2,this.coefficient=i.result.coefficient,"otherPrimeInfos"in i.result)for(var n=i.result.otherPrimeInfos,o=0;o<n.length;o++)this.otherPrimeInfos.push(new e.org.pkijs.simpl.x509.OtherPrimeInfo({schema:n[o]}))},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.modulus),t.push(this.publicExponent),t.push(this.privateExponent),t.push(this.prime1),t.push(this.prime2),t.push(this.exponent1),t.push(this.exponent2),t.push(this.coefficient),"otherPrimeInfos"in this){for(var i=new Array,n=0;n<this.otherPrimeInfos.length;n++)i.push(this.otherPrimeInfos[n].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.toJSON=function(){var e={version:this.version,modulus:this.modulus.toJSON(),publicExponent:this.publicExponent.toJSON(),privateExponent:this.privateExponent.toJSON(),prime1:this.prime1.toJSON(),prime2:this.prime2.toJSON(),exponent1:this.exponent1.toJSON(),exponent2:this.exponent2.toJSON(),coefficient:this.coefficient.toJSON()};if("otherPrimeInfos"in this){e.otherPrimeInfos=new Array;for(var t=0;t<this.otherPrimeInfos.length;t++)e.otherPrimeInfos.push(this.otherPrimeInfos[t].toJSON())}return e},e.org.pkijs.simpl.x509.RSASSA_PSS_params=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("hashAlgorithm"in arguments[0]&&(this.hashAlgorithm=arguments[0].hashAlgorithm),"maskGenAlgorithm"in arguments[0]&&(this.maskGenAlgorithm=arguments[0].maskGenAlgorithm),"saltLength"in arguments[0]&&(this.saltLength=arguments[0].saltLength),"trailerField"in arguments[0]&&(this.trailerField=arguments[0].trailerField))},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSASSA_PSS_params({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},maskGenAlgorithm:{names:{block_name:"maskGenAlgorithm"}},saltLength:"saltLength",trailerField:"trailerField"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RSASSA_PSS_params");"hashAlgorithm"in i.result&&(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.hashAlgorithm})),"maskGenAlgorithm"in i.result&&(this.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.maskGenAlgorithm})),"saltLength"in i.result&&(this.saltLength=i.result.saltLength.value_block.value_dec),"trailerField"in i.result&&(this.trailerField=i.result.trailerField.value_block.value_dec)},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.toSchema=function(){var t=new Array;return"hashAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.hashAlgorithm.toSchema()]})),"maskGenAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.maskGenAlgorithm.toSchema()]})),"saltLength"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.INTEGER({value:this.saltLength})]})),"trailerField"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.INTEGER({value:this.trailerField})]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.toJSON=function(){var e={};return"hashAlgorithm"in this&&(e.hashAlgorithm=this.hashAlgorithm.toJSON()),"maskGenAlgorithm"in this&&(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),"saltLength"in this&&(e.saltLength=this.saltLength),"trailerField"in this&&(e.trailerField=this.trailerField),e},e.org.pkijs.simpl.PUBLIC_KEY_INFO=function(){this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.subjectPublicKey=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm=arguments[0].algorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.subjectPublicKey=arguments[0].subjectPublicKey||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PUBLIC_KEY_INFO({names:{algorithm:{names:{block_name:"algorithm"}},subjectPublicKey:"subjectPublicKey"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PUBLIC_KEY_INFO");this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.algorithm}),this.subjectPublicKey=i.result.subjectPublicKey},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.algorithm.toSchema(),this.subjectPublicKey]})},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.importKey=function(t){var i=Promise.resolve(),n=this;if(void 0===t)return Promise.reject("Need to provide publicKey input parameter");var o=e.org.pkijs.getCrypto();return void 0===o?Promise.reject("Unable to create WebCrypto object"):i=(i=i.then((function(){return o.exportKey("spki",t)}))).then((function(t){var i=e.org.pkijs.fromBER(t);try{e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema.call(n,i.result)}catch(e){return Promise.reject("Error during initializing object from schema")}}),(function(e){return Promise.reject("Error during exporting public key: "+e)}))},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.toJSON=function(){return{algorithm:this.algorithm.toJSON(),subjectPublicKey:this.subjectPublicKey.toJSON()}},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE=function(){this.type="",this.value={},arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||"",this.value=arguments[0].value||{})},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ATTR_TYPE_AND_VALUE({names:{type:"type",value:"typeValue"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ATTR_TYPE_AND_VALUE");this.type=i.result.type.value_block.toString(),this.value=i.result.typeValue},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.type}),this.value]})},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.isEqual=function(){if(arguments[0]instanceof e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE){if(this.type!==arguments[0].type)return!1;if(this.value instanceof e.org.pkijs.asn1.UTF8STRING&&arguments[0].value instanceof e.org.pkijs.asn1.UTF8STRING||this.value instanceof e.org.pkijs.asn1.BMPSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.BMPSTRING||this.value instanceof e.org.pkijs.asn1.UNIVERSALSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.UNIVERSALSTRING||this.value instanceof e.org.pkijs.asn1.NUMERICSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.NUMERICSTRING||this.value instanceof e.org.pkijs.asn1.PRINTABLESTRING&&arguments[0].value instanceof e.org.pkijs.asn1.PRINTABLESTRING||this.value instanceof e.org.pkijs.asn1.TELETEXSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.TELETEXSTRING||this.value instanceof e.org.pkijs.asn1.VIDEOTEXSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.VIDEOTEXSTRING||this.value instanceof e.org.pkijs.asn1.IA5STRING&&arguments[0].value instanceof e.org.pkijs.asn1.IA5STRING||this.value instanceof e.org.pkijs.asn1.GRAPHICSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.GRAPHICSTRING||this.value instanceof e.org.pkijs.asn1.VISIBLESTRING&&arguments[0].value instanceof e.org.pkijs.asn1.VISIBLESTRING||this.value instanceof e.org.pkijs.asn1.GENERALSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.GENERALSTRING||this.value instanceof e.org.pkijs.asn1.CHARACTERSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.CHARACTERSTRING){var t=e.org.pkijs.stringPrep(this.value.value_block.value),i=e.org.pkijs.stringPrep(arguments[0].value.value_block.value);if(0!==t.localeCompare(i))return!1}else if(!1===e.org.pkijs.isEqual_buffer(this.value.value_before_decode,arguments[0].value.value_before_decode))return!1;return!0}return!1},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.toJSON=function(){var e={type:this.type};return 0!==Object.keys(this.value).length?e.value=this.value.toJSON():e.value=this.value,e},e.org.pkijs.simpl.RDN=function(){this.types_and_values=new Array,this.value_before_decode=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.RDN.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.types_and_values=arguments[0].types_and_values||new Array,this.value_before_decode=arguments[0].value_before_decode||new ArrayBuffer(0))},e.org.pkijs.simpl.RDN.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.RDN({names:{block_name:"RDN",repeated_set:"types_and_values"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for RDN");if("types_and_values"in i.result)for(var n=i.result.types_and_values,o=0;o<n.length;o++)this.types_and_values.push(new e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE({schema:n[o]}));this.value_before_decode=i.result.RDN.value_before_decode},e.org.pkijs.simpl.RDN.prototype.toSchema=function(){if(0===this.value_before_decode.byteLength){for(var t=new Array,i=0;i<this.types_and_values.length;i++)t.push(this.types_and_values[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.SET({value:t})]})}return e.org.pkijs.fromBER(this.value_before_decode).result},e.org.pkijs.simpl.RDN.prototype.isEqual=function(){if(arguments[0]instanceof e.org.pkijs.simpl.RDN){if(this.types_and_values.length!=arguments[0].types_and_values.length)return!1;for(var t=0;t<this.types_and_values.length;t++)if(!1===this.types_and_values[t].isEqual(arguments[0].types_and_values[t]))return!1;return!0}return arguments[0]instanceof ArrayBuffer&&e.org.pkijs.isEqual_buffer(this.value_before_decode,arguments[0])},e.org.pkijs.simpl.RDN.prototype.toJSON=function(){for(var e={types_and_values:new Array},t=0;t<this.types_and_values.length;t++)e.types_and_values.push(this.types_and_values[t].toJSON());return e},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("keyIdentifier"in arguments[0]&&(this.keyIdentifier=arguments[0].keyIdentifier),"authorityCertIssuer"in arguments[0]&&(this.authorityCertIssuer=arguments[0].authorityCertIssuer),"authorityCertSerialNumber"in arguments[0]&&(this.authorityCertSerialNumber=arguments[0].authorityCertSerialNumber))},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AuthorityKeyIdentifier({names:{keyIdentifier:"keyIdentifier",authorityCertIssuer:"authorityCertIssuer",authorityCertSerialNumber:"authorityCertSerialNumber"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for AuthorityKeyIdentifier");if("keyIdentifier"in i.result&&(i.result.keyIdentifier.id_block.tag_class=1,i.result.keyIdentifier.id_block.tag_number=4,this.keyIdentifier=i.result.keyIdentifier),"authorityCertIssuer"in i.result){this.authorityCertIssuer=new Array;for(var n=i.result.authorityCertIssuer,o=0;o<n.length;o++)this.authorityCertIssuer.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:n[o]}))}"authorityCertSerialNumber"in i.result&&(i.result.authorityCertSerialNumber.id_block.tag_class=1,i.result.authorityCertSerialNumber.id_block.tag_number=2,this.authorityCertSerialNumber=i.result.authorityCertSerialNumber)},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.toSchema=function(){var t,i=new Array;"keyIdentifier"in this&&((t=this.keyIdentifier).id_block.tag_class=3,t.id_block.tag_number=0,i.push(t));if("authorityCertIssuer"in this){for(var n=new Array,o=0;o<this.authorityCertIssuer.length;o++)n.push(this.authorityCertIssuer[o].toSchema());i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}"authorityCertSerialNumber"in this&&((t=this.authorityCertSerialNumber).id_block.tag_class=3,t.id_block.tag_number=2,i.push(t));return new e.org.pkijs.asn1.SEQUENCE({value:i})},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.toJSON=function(){var e={};if("keyIdentifier"in this&&(e.keyIdentifier=this.keyIdentifier.toJSON()),"authorityCertIssuer"in this){e.authorityCertIssuer=new Array;for(var t=0;t<this.authorityCertIssuer.length;t++)e.authorityCertIssuer.push(this.authorityCertIssuer[t].toJSON())}return"authorityCertSerialNumber"in this&&(e.authorityCertSerialNumber=this.authorityCertSerialNumber.toJSON()),e},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("notBefore"in arguments[0]&&(this.notBefore=arguments[0].notBefore),"notAfter"in arguments[0]&&(this.notAfter=arguments[0].notAfter))},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PrivateKeyUsagePeriod({names:{notBefore:"notBefore",notAfter:"notAfter"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PrivateKeyUsagePeriod");if("notBefore"in i.result){var n=new e.org.pkijs.asn1.GENERALIZEDTIME;n.fromBuffer(i.result.notBefore.value_block.value_hex),this.notBefore=n.toDate()}if("notAfter"in i.result){var o=new e.org.pkijs.asn1.GENERALIZEDTIME({value_hex:i.result.notAfter.value_block.value_hex});o.fromBuffer(i.result.notAfter.value_block.value_hex),this.notAfter=o.toDate()}},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.toSchema=function(){var t=new Array;return"notBefore"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},value_hex:new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.notBefore}).value_block.value_hex})),"notAfter"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.notAfter}).value_block.value_hex})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.toJSON=function(){var e={};return"notBefore"in this&&(e.notBefore=this.notBefore),"notAfter"in this&&(e.notAfter=this.notAfter),e},e.org.pkijs.simpl.x509.AltName=function(){this.altNames=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AltName.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.altNames=arguments[0].altNames||new Array)},e.org.pkijs.simpl.x509.AltName.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AltName({names:{altNames:"altNames"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for AltName");if("altNames"in i.result)for(var n=i.result.altNames,o=0;o<n.length;o++)this.altNames.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:n[o]}))},e.org.pkijs.simpl.x509.AltName.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.altNames.length;i++)t.push(this.altNames[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.AltName.prototype.toJSON=function(){for(var e={altNames:new Array},t=0;t<this.altNames.length;t++)e.altNames.push(this.altNames[t].toJSON());return e},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes=function(){this.attributes=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.attributes=arguments[0].attributes||new Array)},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.SubjectDirectoryAttributes({names:{attributes:"attributes"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for SubjectDirectoryAttributes");for(var n=i.result.attributes,o=0;o<n.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:n[o]}))},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.attributes.length;i++)t.push(this.attributes[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.toJSON=function(){for(var e={attributes:new Array},t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON());return e},e.org.pkijs.simpl.x509.PolicyMapping=function(){this.issuerDomainPolicy="",this.subjectDomainPolicy="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyMapping.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.issuerDomainPolicy=arguments[0].issuerDomainPolicy||"",this.subjectDomainPolicy=arguments[0].subjectDomainPolicy||"")},e.org.pkijs.simpl.x509.PolicyMapping.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyMapping({names:{issuerDomainPolicy:"issuerDomainPolicy",subjectDomainPolicy:"subjectDomainPolicy"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PolicyMapping");this.issuerDomainPolicy=i.result.issuerDomainPolicy.value_block.toString(),this.subjectDomainPolicy=i.result.subjectDomainPolicy.value_block.toString()},e.org.pkijs.simpl.x509.PolicyMapping.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.issuerDomainPolicy}),new e.org.pkijs.asn1.OID({value:this.subjectDomainPolicy})]})},e.org.pkijs.simpl.x509.PolicyMapping.prototype.toJSON=function(){return{issuerDomainPolicy:this.issuerDomainPolicy,subjectDomainPolicy:this.subjectDomainPolicy}},e.org.pkijs.simpl.x509.PolicyMappings=function(){this.mappings=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyMappings.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.mappings=arguments[0].mappings||new Array)},e.org.pkijs.simpl.x509.PolicyMappings.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyMappings({names:{mappings:"mappings"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PolicyMappings");for(var n=i.result.mappings,o=0;o<n.length;o++)this.mappings.push(new e.org.pkijs.simpl.x509.PolicyMapping({schema:n[o]}))},e.org.pkijs.simpl.x509.PolicyMappings.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.mappings.length;i++)t.push(this.mappings[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyMappings.prototype.toJSON=function(){for(var e={mappings:new Array},t=0;t<this.mappings.length;t++)e.mappings.push(this.mappings[t].toJSON());return e},e.org.pkijs.simpl.x509.GeneralSubtree=function(){this.base=new e.org.pkijs.simpl.GENERAL_NAME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.GeneralSubtree.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.base=arguments[0].base||new e.org.pkijs.simpl.GENERAL_NAME,"minimum"in arguments[0]&&(this.minimum=arguments[0].minimum),"maximum"in arguments[0]&&(this.maximum=arguments[0].maximum))},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.GeneralSubtree({names:{base:{names:{block_name:"base"}},minimum:"minimum",maximum:"maximum"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ");this.base=new e.org.pkijs.simpl.GENERAL_NAME({schema:i.result.base}),"minimum"in i.result&&(i.result.minimum.value_block.is_hex_only?this.minimum=i.result.minimum:this.minimum=i.result.minimum.value_block.value_dec),"maximum"in i.result&&(i.result.maximum.value_block.is_hex_only?this.maximum=i.result.maximum:this.maximum=i.result.maximum.value_block.value_dec)},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.toSchema=function(){var t=new Array;if(t.push(this.base.toSchema()),"minimum"in this){var i=0;i=this.minimum instanceof e.org.pkijs.asn1.INTEGER?this.minimum:new e.org.pkijs.asn1.INTEGER({value:this.minimum}),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[i]}))}if("maximum"in this){var n=0;n=this.maximum instanceof e.org.pkijs.asn1.INTEGER?this.maximum:new e.org.pkijs.asn1.INTEGER({value:this.maximum}),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[n]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.toJSON=function(){var e={base:this.base.toJSON()};return"minimum"in this&&("number"==typeof this.minimum?e.minimum=this.minimum:e.minimum=this.minimum.toJSON()),"maximum"in this&&("number"==typeof this.maximum?e.maximum=this.maximum:e.maximum=this.maximum.toJSON()),e},e.org.pkijs.simpl.x509.NameConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.NameConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("permittedSubtrees"in arguments[0]&&(this.permittedSubtrees=arguments[0].permittedSubtrees),"excludedSubtrees"in arguments[0]&&(this.excludedSubtrees=arguments[0].excludedSubtrees))},e.org.pkijs.simpl.x509.NameConstraints.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.NameConstraints({names:{permittedSubtrees:"permittedSubtrees",excludedSubtrees:"excludedSubtrees"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for NameConstraints");if("permittedSubtrees"in i.result){this.permittedSubtrees=new Array;for(var n=i.result.permittedSubtrees,o=0;o<n.length;o++)this.permittedSubtrees.push(new e.org.pkijs.simpl.x509.GeneralSubtree({schema:n[o]}))}if("excludedSubtrees"in i.result){this.excludedSubtrees=new Array;var r=i.result.excludedSubtrees;for(o=0;o<r.length;o++)this.excludedSubtrees.push(new e.org.pkijs.simpl.x509.GeneralSubtree({schema:r[o]}))}},e.org.pkijs.simpl.x509.NameConstraints.prototype.toSchema=function(){var t=new Array;if("permittedSubtrees"in this){for(var i=new Array,n=0;n<this.permittedSubtrees.length;n++)i.push(this.permittedSubtrees[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}if("excludedSubtrees"in this){var o=new Array;for(n=0;n<this.excludedSubtrees.length;n++)o.push(this.excludedSubtrees[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.SEQUENCE({value:o})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.NameConstraints.prototype.toJSON=function(){var e={};if("permittedSubtrees"in this){e.permittedSubtrees=new Array;for(var t=0;t<this.permittedSubtrees.length;t++)e.permittedSubtrees.push(this.permittedSubtrees[t].toJSON())}if("excludedSubtrees"in this){e.excludedSubtrees=new Array;for(t=0;t<this.excludedSubtrees.length;t++)e.excludedSubtrees.push(this.excludedSubtrees[t].toJSON())}return e},e.org.pkijs.simpl.x509.BasicConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.BasicConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("cA"in arguments[0]&&(this.cA=arguments[0].cA),"pathLenConstraint"in arguments[0]&&(this.pathLenConstraint=arguments[0].pathLenConstraint))},e.org.pkijs.simpl.x509.BasicConstraints.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.BasicConstraints({names:{cA:"cA",pathLenConstraint:"pathLenConstraint"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for BasicConstraints");"cA"in i.result&&(this.cA=i.result.cA.value_block.value),"pathLenConstraint"in i.result&&(this.pathLenConstraint=i.result.pathLenConstraint.value_block.value_dec)},e.org.pkijs.simpl.x509.BasicConstraints.prototype.toSchema=function(){var t=new Array;return"cA"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.cA})),"pathLenConstraint"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.pathLenConstraint})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.BasicConstraints.prototype.toJSON=function(){var e={};return"cA"in this&&(e.cA=this.cA),"pathLenConstraint"in this&&(e.pathLenConstraint=this.pathLenConstraint),e},e.org.pkijs.simpl.x509.PolicyQualifierInfo=function(){this.policyQualifierId="",this.qualifier=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.policyQualifierId=arguments[0].policyQualifierId||"",this.qualifier=arguments[0].qualifier||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyQualifierInfo({names:{policyQualifierId:"policyQualifierId",qualifier:"qualifier"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PolicyQualifierInfo");this.policyQualifierId=i.result.policyQualifierId.value_block.toString(),this.qualifier=i.result.qualifier},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.policyQualifierId}),this.qualifier]})},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.toJSON=function(){return{policyQualifierId:this.policyQualifierId,qualifier:this.qualifier.toJSON()}},e.org.pkijs.simpl.x509.PolicyInformation=function(){this.policyIdentifier="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyInformation.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.policyIdentifier=arguments[0].policyIdentifier||"","policyQualifiers"in arguments[0]&&(this.policyQualifiers=arguments[0].policyQualifiers))},e.org.pkijs.simpl.x509.PolicyInformation.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyInformation({names:{policyIdentifier:"policyIdentifier",policyQualifiers:"policyQualifiers"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PolicyInformation");if(this.policyIdentifier=i.result.policyIdentifier.value_block.toString(),"policyQualifiers"in i.result){this.policyQualifiers=new Array;for(var n=i.result.policyQualifiers,o=0;o<n.length;o++)this.policyQualifiers.push(new e.org.pkijs.simpl.x509.PolicyQualifierInfo({schema:n[o]}))}},e.org.pkijs.simpl.x509.PolicyInformation.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.OID({value:this.policyIdentifier})),"policyQualifiers"in this){for(var i=new Array,n=0;n<this.policyQualifiers.length;n++)i.push(this.policyQualifiers[n].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyInformation.prototype.toJSON=function(){var e={policyIdentifier:this.policyIdentifier};if("policyQualifiers"in this){e.policyQualifiers=new Array;for(var t=0;t<this.policyQualifiers.length;t++)e.policyQualifiers.push(this.policyQualifiers[t].toJSON())}return e},e.org.pkijs.simpl.x509.CertificatePolicies=function(){this.certificatePolicies=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.CertificatePolicies.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certificatePolicies=arguments[0].certificatePolicies||new Array)},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.CertificatePolicies({names:{certificatePolicies:"certificatePolicies"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CertificatePolicies");for(var n=i.result.certificatePolicies,o=0;o<n.length;o++)this.certificatePolicies.push(new e.org.pkijs.simpl.x509.PolicyInformation({schema:n[o]}))},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.certificatePolicies.length;i++)t.push(this.certificatePolicies[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.toJSON=function(){for(var e={certificatePolicies:new Array},t=0;t<this.certificatePolicies.length;t++)e.certificatePolicies.push(this.certificatePolicies[t].toJSON());return e},e.org.pkijs.simpl.x509.PolicyConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.requireExplicitPolicy=arguments[0].requireExplicitPolicy||0,this.inhibitPolicyMapping=arguments[0].inhibitPolicyMapping||0)},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyConstraints({names:{requireExplicitPolicy:"requireExplicitPolicy",inhibitPolicyMapping:"inhibitPolicyMapping"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PolicyConstraints");if("requireExplicitPolicy"in i.result){var n=i.result.requireExplicitPolicy;n.id_block.tag_class=1,n.id_block.tag_number=2;var o=n.toBER(!1),r=e.org.pkijs.fromBER(o);this.requireExplicitPolicy=r.result.value_block.value_dec}if("inhibitPolicyMapping"in i.result){var a=i.result.inhibitPolicyMapping;a.id_block.tag_class=1,a.id_block.tag_number=2;var s=a.toBER(!1),c=e.org.pkijs.fromBER(s);this.inhibitPolicyMapping=c.result.value_block.value_dec}},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.toSchema=function(){var t=new Array;if("requireExplicitPolicy"in this){var i=new e.org.pkijs.asn1.INTEGER({value:this.requireExplicitPolicy});i.id_block.tag_class=3,i.id_block.tag_number=0,t.push(i)}if("inhibitPolicyMapping"in this){var n=new e.org.pkijs.asn1.INTEGER({value:this.inhibitPolicyMapping});n.id_block.tag_class=3,n.id_block.tag_number=1,t.push(n)}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.toJSON=function(){var e={};return"requireExplicitPolicy"in this&&(e.requireExplicitPolicy=this.requireExplicitPolicy),"inhibitPolicyMapping"in this&&(e.inhibitPolicyMapping=this.inhibitPolicyMapping),e},e.org.pkijs.simpl.x509.ExtKeyUsage=function(){this.keyPurposes=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyPurposes=arguments[0].keyPurposes||new Array)},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.ExtKeyUsage({names:{keyPurposes:"keyPurposes"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ExtKeyUsage");i.result.keyPurposes},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.keyPurposes.length;i++)t.push(new e.org.pkijs.asn1.OID({value:this.keyPurposes[i]}));return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.toJSON=function(){for(var e={keyPurposes:new Array},t=0;t<this.keyPurposes.length;t++)e.keyPurposes.push(this.keyPurposes[t]);return e},e.org.pkijs.simpl.x509.DistributionPoint=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.DistributionPoint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("distributionPoint"in arguments[0]&&(this.distributionPoint=arguments[0].distributionPoint),"reasons"in arguments[0]&&(this.reasons=arguments[0].reasons),"cRLIssuer"in arguments[0]&&(this.cRLIssuer=arguments[0].cRLIssuer))},e.org.pkijs.simpl.x509.DistributionPoint.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.DistributionPoint({names:{distributionPoint:"distributionPoint",distributionPoint_names:"distributionPoint_names",reasons:"reasons",cRLIssuer:"cRLIssuer",cRLIssuer_names:"cRLIssuer_names"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for DistributionPoint");if("distributionPoint"in i.result){if(0==i.result.distributionPoint.id_block.tag_number){this.distributionPoint=new Array;for(var n=i.result.distributionPoint_names,o=0;o<n.length;o++)this.distributionPoint.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:n[o]}))}1==i.result.distributionPoint.id_block.tag_number&&(i.result.distributionPoint.id_block.tag_class=1,i.result.distributionPoint.id_block.tag_number=16,this.distributionPoint=new e.org.pkijs.simpl.RDN({schema:i.result.distributionPoint}))}if("reasons"in i.result&&(this.reasons=new e.org.pkijs.asn1.BITSTRING({value_hex:i.result.reasons.value_block.value_hex})),"cRLIssuer"in i.result){this.cRLIssuer=new Array;var r=i.result.cRLIssuer_names;for(o=0;o<r;o++)this.cRLIssuer.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:r[o]}))}},e.org.pkijs.simpl.x509.DistributionPoint.prototype.toSchema=function(){var t=new Array;if("distributionPoint"in this){var i;if(this.distributionPoint instanceof Array){for(var n=new Array,o=0;o<this.distributionPoint.length;o++)n.push(this.distributionPoint[o].toSchema());i=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:n})}else i=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.distributionPoint.toSchema()]});t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[i]}))}if("reasons"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:this.reasons.value_block.value_hex})),"cRLIssuer"in this){var r=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2}});for(o=0;o<this.cRLIssuer.length;o++)r.value_block.value.push(this.cRLIssuer[o].toSchema());t.push(r)}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.DistributionPoint.prototype.toJSON=function(){var e={};if("distributionPoint"in this)if(this.distributionPoint instanceof Array){e.distributionPoint=new Array;for(var t=0;t<this.distributionPoint.length;t++)e.distributionPoint.push(this.distributionPoint[t].toJSON())}else e.distributionPoint=this.distributionPoint.toJSON();if("reasons"in this&&(e.reasons=this.reasons.toJSON()),"cRLIssuer"in this){e.cRLIssuer=new Array;for(t=0;t<this.cRLIssuer.length;t++)e.cRLIssuer.push(this.cRLIssuer[t].toJSON())}return e},e.org.pkijs.simpl.x509.CRLDistributionPoints=function(){this.distributionPoints=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.distributionPoints=arguments[0].distributionPoints||new Array)},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.CRLDistributionPoints({names:{distributionPoints:"distributionPoints"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CRLDistributionPoints");for(var n=i.result.distributionPoints,o=0;o<n.length;o++)this.distributionPoints.push(new e.org.pkijs.simpl.x509.DistributionPoint({schema:n[o]}))},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.distributionPoints.length;i++)t.push(this.distributionPoints[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.toJSON=function(){for(var e={distributionPoints:new Array},t=0;t<this.distributionPoints.length;t++)e.distributionPoints.push(this.distributionPoints[t].toJSON());return e},e.org.pkijs.simpl.x509.AccessDescription=function(){this.accessMethod="",this.accessLocation=new e.org.pkijs.simpl.GENERAL_NAME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AccessDescription.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.accessMethod=arguments[0].accessMethod||"",this.accessLocation=arguments[0].accessLocation||new e.org.pkijs.simpl.GENERAL_NAME)},e.org.pkijs.simpl.x509.AccessDescription.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AccessDescription({names:{accessMethod:"accessMethod",accessLocation:{names:{block_name:"accessLocation"}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for AccessDescription");this.accessMethod=i.result.accessMethod.value_block.toString(),this.accessLocation=new e.org.pkijs.simpl.GENERAL_NAME({schema:i.result.accessLocation})},e.org.pkijs.simpl.x509.AccessDescription.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.accessMethod}),this.accessLocation.toSchema()]})},e.org.pkijs.simpl.x509.AccessDescription.prototype.toJSON=function(){return{accessMethod:this.accessMethod,accessLocation:this.accessLocation.toJSON()}},e.org.pkijs.simpl.x509.InfoAccess=function(){this.accessDescriptions=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.InfoAccess.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.accessDescriptions=arguments[0].accessDescriptions||new Array)},e.org.pkijs.simpl.x509.InfoAccess.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.InfoAccess({names:{accessDescriptions:"accessDescriptions"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for InfoAccess");for(var n=i.result.accessDescriptions,o=0;o<n.length;o++)this.accessDescriptions.push(new e.org.pkijs.simpl.x509.AccessDescription({schema:n[o]}))},e.org.pkijs.simpl.x509.InfoAccess.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.accessDescriptions.length;i++)t.push(this.accessDescriptions[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.InfoAccess.prototype.toJSON=function(){for(var e={accessDescriptions:new Array},t=0;t<this.accessDescriptions.length;t++)e.accessDescriptions.push(this.accessDescriptions[t].toJSON());return e},e.org.pkijs.simpl.x509.IssuingDistributionPoint=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("distributionPoint"in arguments[0]&&(this.distributionPoint=arguments[0].distributionPoint),"onlyContainsUserCerts"in arguments[0]&&(this.onlyContainsUserCerts=arguments[0].onlyContainsUserCerts),"onlyContainsCACerts"in arguments[0]&&(this.onlyContainsCACerts=arguments[0].onlyContainsCACerts),"onlySomeReasons"in arguments[0]&&(this.onlySomeReasons=arguments[0].onlySomeReasons),"indirectCRL"in arguments[0]&&(this.indirectCRL=arguments[0].indirectCRL),"onlyContainsAttributeCerts"in arguments[0]&&(this.onlyContainsAttributeCerts=arguments[0].onlyContainsAttributeCerts))},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.IssuingDistributionPoint({names:{distributionPoint:"distributionPoint",distributionPoint_names:"distributionPoint_names",onlyContainsUserCerts:"onlyContainsUserCerts",onlyContainsCACerts:"onlyContainsCACerts",onlySomeReasons:"onlySomeReasons",indirectCRL:"indirectCRL",onlyContainsAttributeCerts:"onlyContainsAttributeCerts"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for IssuingDistributionPoint");if("distributionPoint"in i.result){if(0==i.result.distributionPoint.id_block.tag_number){this.distributionPoint=new Array;for(var n=i.result.distributionPoint_names,o=0;o<n.length;o++)this.distributionPoint.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:n[o]}))}1==i.result.distributionPoint.id_block.tag_number&&(i.result.distributionPoint.id_block.tag_class=1,i.result.distributionPoint.id_block.tag_number=16,this.distributionPoint=new e.org.pkijs.simpl.RDN({schema:i.result.distributionPoint}))}if("onlyContainsUserCerts"in i.result){var r=new Uint8Array(i.result.onlyContainsUserCerts.value_block.value_hex);this.onlyContainsUserCerts=0!==r[0]}if("onlyContainsCACerts"in i.result){r=new Uint8Array(i.result.onlyContainsCACerts.value_block.value_hex);this.onlyContainsCACerts=0!==r[0]}if("onlySomeReasons"in i.result){r=new Uint8Array(i.result.onlySomeReasons.value_block.value_hex);this.onlySomeReasons=r[0]}if("indirectCRL"in i.result){r=new Uint8Array(i.result.indirectCRL.value_block.value_hex);this.indirectCRL=0!==r[0]}if("onlyContainsAttributeCerts"in i.result){r=new Uint8Array(i.result.onlyContainsAttributeCerts.value_block.value_hex);this.onlyContainsAttributeCerts=0!==r[0]}},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.toSchema=function(){var t=new Array;if("distributionPoint"in this){var i;if(this.distributionPoint instanceof Array){i=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0}});for(var n=0;n<this.distributionPoint.length;n++)i.value_block.value.push(this.distributionPoint[n].toSchema())}else(i=this.distributionPoint.toSchema()).id_block.tag_class=3,i.id_block.tag_number=1;t.push(i)}if("onlyContainsUserCerts"in this){var o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsUserCerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:o}))}if("onlyContainsCACerts"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsCACerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:2},value_hex:o}))}if("onlySomeReasons"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=this.onlySomeReasons,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:3},value_hex:o}))}if("indirectCRL"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.indirectCRL?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:4},value_hex:o}))}if("onlyContainsAttributeCerts"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsAttributeCerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:5},value_hex:o}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.toJSON=function(){var e={};if("distributionPoint"in this)if(this.distributionPoint instanceof Array){e.distributionPoint=new Array;for(var t=0;t<this.distributionPoint.length;t++)e.distributionPoint.push(this.distributionPoint[t].toJSON())}else e.distributionPoint=this.distributionPoint.toJSON();return"onlyContainsUserCerts"in this&&(e.onlyContainsUserCerts=this.onlyContainsUserCerts),"onlyContainsCACerts"in this&&(e.onlyContainsCACerts=this.onlyContainsCACerts),"onlySomeReasons"in this&&(e.onlySomeReasons=this.onlySomeReasons),"indirectCRL"in this&&(e.indirectCRL=this.indirectCRL),"onlyContainsAttributeCerts"in this&&(e.onlyContainsAttributeCerts=this.onlyContainsAttributeCerts),e},e.org.pkijs.simpl.EXTENSION=function(){this.extnID="",this.critical=!1,this.extnValue=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.EXTENSION.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.extnID=arguments[0].extnID||"",this.critical=arguments[0].critical||!1,this.extnValue="extnValue"in arguments[0]?new e.org.pkijs.asn1.OCTETSTRING({value_hex:arguments[0].extnValue}):new e.org.pkijs.asn1.OCTETSTRING,"parsedValue"in arguments[0]&&(this.parsedValue=arguments[0].parsedValue))},e.org.pkijs.simpl.EXTENSION.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.EXTENSION({names:{extnID:"extnID",critical:"critical",extnValue:"extnValue"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for EXTENSION");if(this.extnID=i.result.extnID.value_block.toString(),"critical"in i.result&&(this.critical=i.result.critical.value_block.value),this.extnValue=i.result.extnValue,-1!==(i=e.org.pkijs.fromBER(this.extnValue.value_block.value_hex)).offset)switch(this.extnID){case"2.5.29.9":this.parsedValue=new e.org.pkijs.simpl.x509.SubjectDirectoryAttributes({schema:i.result});break;case"2.5.29.14":case"2.5.29.15":case"2.5.29.20":case"2.5.29.27":case"2.5.29.21":case"2.5.29.24":case"2.5.29.54":this.parsedValue=i.result;break;case"2.5.29.16":this.parsedValue=new e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod({schema:i.result});break;case"2.5.29.17":case"2.5.29.18":this.parsedValue=new e.org.pkijs.simpl.x509.AltName({schema:i.result});break;case"2.5.29.19":this.parsedValue=new e.org.pkijs.simpl.x509.BasicConstraints({schema:i.result});break;case"2.5.29.28":this.parsedValue=new e.org.pkijs.simpl.x509.IssuingDistributionPoint({schema:i.result});break;case"2.5.29.29":this.parsedValue=new e.org.pkijs.simpl.GENERAL_NAMES({schema:i.result});break;case"2.5.29.30":this.parsedValue=new e.org.pkijs.simpl.x509.NameConstraints({schema:i.result});break;case"2.5.29.31":case"2.5.29.46":this.parsedValue=new e.org.pkijs.simpl.x509.CRLDistributionPoints({schema:i.result});break;case"2.5.29.32":this.parsedValue=new e.org.pkijs.simpl.x509.CertificatePolicies({schema:i.result});break;case"2.5.29.33":this.parsedValue=new e.org.pkijs.simpl.x509.PolicyMappings({schema:i.result});break;case"2.5.29.35":this.parsedValue=new e.org.pkijs.simpl.x509.AuthorityKeyIdentifier({schema:i.result});break;case"2.5.29.36":this.parsedValue=new e.org.pkijs.simpl.x509.PolicyConstraints({schema:i.result});break;case"2.5.29.37":this.parsedValue=new e.org.pkijs.simpl.x509.ExtKeyUsage({schema:i.result});break;case"1.3.6.1.5.5.7.1.1":case"1.3.6.1.5.5.7.1.11":this.parsedValue=new e.org.pkijs.simpl.x509.InfoAccess({schema:i.result})}},e.org.pkijs.simpl.EXTENSION.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.extnID})),this.critical&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.critical})),t.push(this.extnValue),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.EXTENSION.prototype.toJSON=function(){var e={extnID:this.extnID,critical:this.critical,extnValue:this.extnValue.toJSON()};return"parsedValue"in this&&(e.parsedValue=this.parsedValue.toJSON()),e},e.org.pkijs.simpl.EXTENSIONS=function(){this.extensions_array=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.EXTENSIONS.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.extensions_array=arguments[0].extensions_array||new Array)},e.org.pkijs.simpl.EXTENSIONS.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.EXTENSIONS({names:{extensions:"extensions"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for EXTENSIONS");for(var n=0;n<i.result.extensions.length;n++)this.extensions_array.push(new e.org.pkijs.simpl.EXTENSION({schema:i.result.extensions[n]}))},e.org.pkijs.simpl.EXTENSIONS.prototype.toSchema=function(){for(var t=new Array,i=0;i<this.extensions_array.length;i++)t.push(this.extensions_array[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.EXTENSIONS.prototype.toJSON=function(){for(var e={extensions_array:new Array},t=0;t<this.extensions_array.length;t++)e.extensions_array.push(this.extensions_array[t].toJSON());return e},e.org.pkijs.simpl.CERT=function(){this.tbs=new ArrayBuffer(0),this.serialNumber=new e.org.pkijs.asn1.INTEGER,this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=new e.org.pkijs.simpl.RDN,this.notBefore=new e.org.pkijs.simpl.TIME,this.notAfter=new e.org.pkijs.simpl.TIME,this.subject=new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CERT.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER,this.signature=arguments[0].signature||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.notBefore=arguments[0].not_before||new e.org.pkijs.simpl.TIME,this.notAfter=arguments[0].not_after||new e.org.pkijs.simpl.TIME,this.subject=arguments[0].subject||new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=arguments[0].subjectPublicKeyInfo||new e.org.pkijs.simpl.PUBLIC_KEY_INFO,"issuerUniqueID"in arguments[0]&&(this.issuerUniqueID=arguments[0].issuerUniqueID),"subjectUniqueID"in arguments[0]&&(this.subjectUniqueID=arguments[0].subjectUniqueID),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.CERT.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CERT({names:{tbsCertificate:{names:{extensions:{names:{extensions:"tbsCertificate.extensions"}}}}}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CERT");if(this.tbs=i.result.tbsCertificate.value_before_decode,"tbsCertificate.version"in i.result&&(this.version=i.result["tbsCertificate.version"].value_block.value_dec),this.serialNumber=i.result["tbsCertificate.serialNumber"],this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result["tbsCertificate.signature"]}),this.issuer=new e.org.pkijs.simpl.RDN({schema:i.result["tbsCertificate.issuer"]}),this.notBefore=new e.org.pkijs.simpl.TIME({schema:i.result["tbsCertificate.notBefore"]}),this.notAfter=new e.org.pkijs.simpl.TIME({schema:i.result["tbsCertificate.notAfter"]}),this.subject=new e.org.pkijs.simpl.RDN({schema:i.result["tbsCertificate.subject"]}),this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO({schema:i.result["tbsCertificate.subjectPublicKeyInfo"]}),"tbsCertificate.issuerUniqueID"in i.result&&(this.issuerUniqueID=i.result["tbsCertificate.issuerUniqueID"].value_block.value_hex),"tbsCertificate.subjectUniqueID"in i.result&&(this.issuerUniqueID=i.result["tbsCertificate.subjectUniqueID"].value_block.value_hex),"tbsCertificate.extensions"in i.result){this.extensions=new Array;for(var n=i.result["tbsCertificate.extensions"],o=0;o<n.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.signatureAlgorithm}),this.signatureValue=i.result.signatureValue},e.org.pkijs.simpl.CERT.prototype.encodeTBS=function(){var t=new Array;if("version"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),t.push(this.serialNumber),t.push(this.signature.toSchema()),t.push(this.issuer.toSchema()),t.push(new e.org.pkijs.asn1.SEQUENCE({value:[this.notBefore.toSchema(),this.notAfter.toSchema()]})),t.push(this.subject.toSchema()),t.push(this.subjectPublicKeyInfo.toSchema()),"issuerUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},value_hex:this.issuerUniqueID})),"subjectUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:2},value_hex:this.subjectUniqueID})),"subjectUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[this.extensions.toSchema()]})),"extensions"in this){for(var i=new Array,n=0;n<this.extensions.length;n++)i.push(this.extensions[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CERT.prototype.toSchema=function(t){void 0===t&&(t=!1);var i={};if(!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.CERT().value[0];i=e.org.pkijs.fromBER(this.tbs).result}else i=e.org.pkijs.simpl.CERT.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[i,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.CERT.prototype.verify=function(){var t=Promise.resolve(),i={},n=this.signatureValue,o=this.tbs,r=this;if(arguments[0]instanceof Object?"issuerCertificate"in arguments[0]&&(i=arguments[0].issuerCertificate.subjectPublicKeyInfo):this.issuer.isEqual(this.subject)&&(i=this.subjectPublicKeyInfo),i instanceof e.org.pkijs.simpl.PUBLIC_KEY_INFO==!1)return Promise.reject("Please provide issuer certificate as a parameter");var a=e.org.pkijs.getCrypto();if(void 0===a)return Promise.reject("Unable to create WebCrypto object");var s=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);return""===s?Promise.reject("Unsupported signature algorithm: "+r.signatureAlgorithm.algorithm_id):t=(t=t.then((function(){var t=e.org.pkijs.getAlgorithmByOID(r.signatureAlgorithm.algorithm_id);if("name"in t==!1)return Promise.reject("Unsupported public key algorithm: "+r.signatureAlgorithm.algorithm_id);var n=t.name,o=e.org.pkijs.getAlgorithmParameters(n,"importkey");if("hash"in o.algorithm&&(o.algorithm.hash.name=s),"ECDSA"===n){if(i.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var c=e.org.pkijs.getAlgorithmByOID(i.algorithm.algorithm_params.value_block.toString());if("name"in c==!1)return Promise.reject("Unsupported named curve algorithm: "+i.algorithm.algorithm_params.value_block.toString());o.algorithm.namedCurve=c.name}var l=i.toSchema().toBER(!1),u=new Uint8Array(l);return a.importKey("spki",u,o.algorithm,!0,o.usages)}))).then((function(t){var i=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify");"hash"in i.algorithm&&(i.algorithm.hash.name=s);var c=n.value_block.value_hex;if("ECDSA"===t.algorithm.name){var l=e.org.pkijs.fromBER(c);c=e.org.pkijs.createECDSASignatureFromCMS(l.result)}if("RSA-PSS"===t.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}i.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}i.algorithm.hash.name=p}return a.verify(i.algorithm,t,new Uint8Array(c),new Uint8Array(o))}))},e.org.pkijs.simpl.CERT.prototype.sign=function(t,i){var n=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i)i="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:i}))return Promise.reject("Unsupported hash algorithm: "+i);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":n.signature.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm),n.signatureAlgorithm.algorithm_id=n.signature.algorithm_id;break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==i.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:i});if(""===a)return Promise.reject("Unsupported hash algorithm: "+i);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);n.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()}),n.signatureAlgorithm=n.signature;break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}n.tbs=e.org.pkijs.simpl.CERT.prototype.encodeTBS.call(this).toBER(!1);var c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):c.sign(o.algorithm,t,new Uint8Array(n.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),n.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CERT.prototype.getPublicKey=function(){var t,i=e.org.pkijs.getCrypto();if(void 0===i)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object){if(!("algorithm"in arguments[0]))return Promise.reject('Absent mandatory parameter "algorithm"');t=arguments[0].algorithm}else{var n=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);if(""===n)return Promise.reject("Unsupported signature algorithm: "+_this.signatureAlgorithm.algorithm_id);var o=e.org.pkijs.getAlgorithmByOID(this.signatureAlgorithm.algorithm_id);if("name"in o==!1)return Promise.reject("Unsupported public key algorithm: "+_this.signatureAlgorithm.algorithm_id);var r=o.name;if("hash"in(t=e.org.pkijs.getAlgorithmParameters(r,"importkey")).algorithm&&(t.algorithm.hash.name=n),"ECDSA"===r){if(subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var a=e.org.pkijs.getAlgorithmByOID(subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in a==!1)return Promise.reject("Unsupported named curve algorithm: "+subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());t.algorithm.namedCurve=a.name}}var s=this.subjectPublicKeyInfo.toSchema().toBER(!1),c=new Uint8Array(s);return i.importKey("spki",c,t.algorithm,!0,t.usages)},e.org.pkijs.simpl.CERT.prototype.getKeyHash=function(){var t=e.org.pkijs.getCrypto();return void 0===t?Promise.reject("Unable to create WebCrypto object"):t.digest({name:"sha-1"},new Uint8Array(this.subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex))},e.org.pkijs.simpl.CERT.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),serialNumber:this.serialNumber.toJSON(),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),notBefore:this.notBefore.toJSON(),notAfter:this.notAfter.toJSON(),subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("version"in this&&(t.version=this.version),"issuerUniqueID"in this&&(t.issuerUniqueID=e.org.pkijs.bufferToHexCodes(this.issuerUniqueID,0,this.issuerUniqueID.byteLength)),"subjectUniqueID"in this&&(t.subjectUniqueID=e.org.pkijs.bufferToHexCodes(this.subjectUniqueID,0,this.subjectUniqueID.byteLength)),"extensions"in this){t.extensions=new Array;for(var i=0;i<this.extensions.length;i++)t.extensions.push(this.extensions[i].toJSON())}return t},e.org.pkijs.simpl.REV_CERT=function(){this.userCertificate=new e.org.pkijs.asn1.INTEGER,this.revocationDate=new e.org.pkijs.simpl.TIME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.REV_CERT.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.userCertificate=arguments[0].userCertificate||new e.org.pkijs.asn1.INTEGER,this.revocationDate=arguments[0].revocationDate||new e.org.pkijs.simpl.TIME,"crlEntryExtensions"in arguments[0]&&(this.crlEntryExtensions=arguments[0].crlEntryExtensions))},e.org.pkijs.simpl.REV_CERT.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({name:"userCertificate"}),e.org.pkijs.schema.TIME({names:{utcTimeName:"revocationDate",generalTimeName:"revocationDate"}}),e.org.pkijs.schema.EXTENSIONS({names:{block_name:"crlEntryExtensions"}},!0)]}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for REV_CERT");if(this.userCertificate=i.result.userCertificate,this.revocationDate=new e.org.pkijs.simpl.TIME({schema:i.result.revocationDate}),"crlEntryExtensions"in i.result){this.crlEntryExtensions=new Array;for(var n=i.result.crlEntryExtensions.value_block.value,o=0;o<n.length;o++)this.crlEntryExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:n[o]}))}},e.org.pkijs.simpl.REV_CERT.prototype.toSchema=function(){var t=new Array;if(t.push(this.userCertificate),t.push(this.revocationDate.toSchema()),"crlEntryExtensions"in this){for(var i=new Array,n=0;n<this.crlEntryExtensions.length;n++)i.push(this.crlEntryExtensions[n].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.REV_CERT.prototype.toJSON=function(){var e={userCertificate:this.userCertificate.toJSON(),revocationDate:this.revocationDate.toJSON};if("crlEntryExtensions"in this){e.crlEntryExtensions=new Array;for(var t=0;t<this.crlEntryExtensions.length;t++)e.crlEntryExtensions.push(this.crlEntryExtensions[t].toJSON())}return e},e.org.pkijs.simpl.CRL=function(){this.tbs=new ArrayBuffer(0),this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=new e.org.pkijs.simpl.RDN,this.thisUpdate=new e.org.pkijs.simpl.TIME,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CRL.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),this.signature=arguments[0].signature||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.thisUpdate=arguments[0].thisUpdate||new e.org.pkijs.simpl.TIME,"nextUpdate"in arguments[0]&&(this.nextUpdate=arguments[0].nextUpdate),"revokedCertificates"in arguments[0]&&(this.revokedCertificates=arguments[0].revokedCertificates),"crlExtensions"in arguments[0]&&(this.crlExtensions=arguments[0].crlExtensions),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=arguments[0].signatureValue||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.CRL.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CRL());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for CRL");if(this.tbs=i.result.tbsCertList.value_before_decode,"tbsCertList.version"in i.result&&(this.version=i.result["tbsCertList.version"].value_block.value_dec),this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result["tbsCertList.signature"]}),this.issuer=new e.org.pkijs.simpl.RDN({schema:i.result["tbsCertList.issuer"]}),this.thisUpdate=new e.org.pkijs.simpl.TIME({schema:i.result["tbsCertList.thisUpdate"]}),"tbsCertList.nextUpdate"in i.result&&(this.nextUpdate=new e.org.pkijs.simpl.TIME({schema:i.result["tbsCertList.nextUpdate"]})),"tbsCertList.revokedCertificates"in i.result){this.revokedCertificates=new Array;for(var n=i.result["tbsCertList.revokedCertificates"],o=0;o<n.length;o++)this.revokedCertificates.push(new e.org.pkijs.simpl.REV_CERT({schema:n[o]}))}if("tbsCertList.extensions"in i.result){this.crlExtensions=new Array;var r=i.result["tbsCertList.extensions"].value_block.value;for(o=0;o<r.length;o++)this.crlExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.signatureAlgorithm}),this.signatureValue=i.result.signatureValue},e.org.pkijs.simpl.CRL.prototype.encodeTBS=function(){var t=new Array;if("version"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.signature.toSchema()),t.push(this.issuer.toSchema()),t.push(this.thisUpdate.toSchema()),"nextUpdate"in this&&t.push(this.nextUpdate.toSchema()),"revokedCertificates"in this){for(var i=new Array,n=0;n<this.revokedCertificates.length;n++)i.push(this.revokedCertificates[n].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:i}))}if("crlExtensions"in this){for(var o=new Array,r=0;r<this.crlExtensions.length;r++)o.push(this.crlExtensions[r].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:o})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CRL.prototype.toSchema=function(t){var i;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.CRL();i=e.org.pkijs.fromBER(this.tbs).result}else i=e.org.pkijs.simpl.CRL.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[i,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.CRL.prototype.verify=function(){var t=Promise.resolve(),i=this.signatureValue,n=this.tbs,o=-1,r=this;if(arguments[0]instanceof Object){if("issuerCertificate"in arguments[0]&&(o=arguments[0].issuerCertificate.subjectPublicKeyInfo,0==this.issuer.isEqual(arguments[0].issuerCertificate.subject)))return Promise.resolve(!1);"publicKeyInfo"in arguments[0]&&(o=arguments[0].publicKeyInfo)}if(o instanceof e.org.pkijs.simpl.PUBLIC_KEY_INFO==!1)return Promise.reject("Issuer's certificate must be provided as an input parameter");if("crlExtensions"in this)for(var a=0;a<this.crlExtensions.length;a++)if(this.crlExtensions[a].critical&&"parsedValue"in this.crlExtensions[a]==0)return Promise.resolve(!1);var s=e.org.pkijs.getCrypto();if(void 0===s)return Promise.reject("Unable to create WebCrypto object");var c=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);return""===c?Promise.reject("Unsupported signature algorithm: "+r.signatureAlgorithm.algorithm_id):t=(t=t.then((function(){var t=e.org.pkijs.getAlgorithmByOID(r.signature.algorithm_id);if("name"in t==="")return Promise.reject("Unsupported public key algorithm: "+r.signature.algorithm_id);var i=t.name,n=e.org.pkijs.getAlgorithmParameters(i,"importkey");if("hash"in n.algorithm&&(n.algorithm.hash.name=c),"ECDSA"===i){if(o.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var a=e.org.pkijs.getAlgorithmByOID(o.algorithm.algorithm_params.value_block.toString());if("name"in a==!1)return Promise.reject("Unsupported named curve algorithm: "+o.algorithm.algorithm_params.value_block.toString());n.algorithm.namedCurve=a.name}var l=o.toSchema().toBER(!1),u=new Uint8Array(l);return s.importKey("spki",u,n.algorithm,!0,n.usages)}))).then((function(t){var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=c);var a=i.value_block.value_hex;if("ECDSA"===t.algorithm.name){var l=e.org.pkijs.fromBER(a);a=e.org.pkijs.createECDSASignatureFromCMS(l.result)}if("RSA-PSS"===t.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}o.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}o.algorithm.hash.name=p}return s.verify(o.algorithm,t,new Uint8Array(a),new Uint8Array(n))}))},e.org.pkijs.simpl.CRL.prototype.sign=function(t,i){var n=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i)i="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:i}))return Promise.reject("Unsupported hash algorithm: "+i);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":n.signature.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm),n.signatureAlgorithm.algorithm_id=n.signature.algorithm_id;break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==i.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:i});if(""===a)return Promise.reject("Unsupported hash algorithm: "+i);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);n.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()}),n.signatureAlgorithm=n.signature;break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}n.tbs=e.org.pkijs.simpl.CRL.prototype.encodeTBS.call(this).toBER(!1);var c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):c.sign(o.algorithm,t,new Uint8Array(n.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),n.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CRL.prototype.isCertificateRevoked=function(){var t={};if(arguments[0]instanceof Object&&"certificate"in arguments[0]&&(t=arguments[0].certificate),t instanceof e.org.pkijs.simpl.CERT==!1)return!1;if(!1===this.issuer.isEqual(t.issuer))return!1;if("revokedCertificates"in this==!1)return!1;for(var i=0;i<this.revokedCertificates.length;i++)if(this.revokedCertificates[i].userCertificate.isEqual(t.serialNumber))return!0;return!1},e.org.pkijs.simpl.CRL.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),thisUpdate:this.thisUpdate.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("version"in this&&(t.version=this.version),"nextUpdate"in this&&(t.nextUpdate=this.nextUpdate.toJSON()),"revokedCertificates"in this){t.revokedCertificates=new Array;for(var i=0;i<this.revokedCertificates.length;i++)t.revokedCertificates.push(this.revokedCertificates[i].toJSON())}if("crlExtensions"in this){t.crlExtensions=new Array;for(i=0;i<this.crlExtensions.length;i++)t.crlExtensions.push(this.crlExtensions[i].toJSON())}return t},e.org.pkijs.simpl.ATTRIBUTE=function(){this.type="",this.values=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ATTRIBUTE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||"",this.values=arguments[0].values||new Array)},e.org.pkijs.simpl.ATTRIBUTE.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ATTRIBUTE({names:{type:"type",values:"values"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for ATTRIBUTE");this.type=i.result.type.value_block.toString(),this.values=i.result.values},e.org.pkijs.simpl.ATTRIBUTE.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.type}),new e.org.pkijs.asn1.SET({value:this.values})]})},e.org.pkijs.simpl.ATTRIBUTE.prototype.toJSON=function(){for(var e={type:this.type,values:new Array},t=0;t<this.values.length;t++)e.values.push(this.values[t].toJSON());return e},e.org.pkijs.simpl.PKCS10=function(){this.tbs=new ArrayBuffer(0),this.version=0,this.subject=new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PKCS10.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),this.version=arguments[0].version||0,this.subject=arguments[0].subject||new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=arguments[0].subjectPublicKeyInfo||new e.org.pkijs.simpl.PUBLIC_KEY_INFO,"attributes"in arguments[0]&&(this.attributes=arguments[0].attributes),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=arguments[0].signatureValue||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.PKCS10.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PKCS10());if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PKCS10");if(this.tbs=i.result.CertificationRequestInfo.value_before_decode,this.version=i.result["CertificationRequestInfo.version"].value_block.value_dec,this.subject=new e.org.pkijs.simpl.RDN({schema:i.result["CertificationRequestInfo.subject"]}),this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO({schema:i.result["CertificationRequestInfo.subjectPublicKeyInfo"]}),"CertificationRequestInfo.attributes"in i.result){this.attributes=new Array;for(var n=i.result["CertificationRequestInfo.attributes"],o=0;o<n.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:n[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.signatureAlgorithm}),this.signatureValue=i.result.signatureValue},e.org.pkijs.simpl.PKCS10.prototype.encodeTBS=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.subject.toSchema()),t.push(this.subjectPublicKeyInfo.toSchema()),"attributes"in this){for(var i=new Array,n=0;n<this.attributes.length;n++)i.push(this.attributes[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.PKCS10.prototype.toSchema=function(t){var i;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.PKCS10();i=e.org.pkijs.fromBER(this.tbs).result}else i=e.org.pkijs.simpl.PKCS10.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[i,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.PKCS10.prototype.verify=function(){var t,i=this,n=Promise.resolve(),o=this.subjectPublicKeyInfo,r=this.signatureValue,a=this.tbs,s=e.org.pkijs.getCrypto();return void 0===s?Promise.reject("Unable to create WebCrypto object"):""===(t=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm))?Promise.reject("Unsupported signature algorithm: "+i.signatureAlgorithm.algorithm_id):n=(n=n.then((function(){var n=e.org.pkijs.getAlgorithmByOID(i.signatureAlgorithm.algorithm_id);if("name"in n==!1)return Promise.reject("Unsupported public key algorithm: "+i.signatureAlgorithm.algorithm_id);var r=n.name,a=e.org.pkijs.getAlgorithmParameters(r,"importkey");if("hash"in a.algorithm&&(a.algorithm.hash.name=t),"ECDSA"===r){if(o.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var c=e.org.pkijs.getAlgorithmByOID(o.algorithm.algorithm_params.value_block.toString());if("name"in c==!1)return Promise.reject("Unsupported named curve algorithm: "+o.algorithm.algorithm_params.value_block.toString());a.algorithm.namedCurve=c.name}var l=o.toSchema().toBER(!1),u=new Uint8Array(l);return s.importKey("spki",u,a.algorithm,!0,a.usages)}))).then((function(n){var o=e.org.pkijs.getAlgorithmParameters(n.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=t);var c=r.value_block.value_hex;if("ECDSA"===n.algorithm.name){var l=e.org.pkijs.fromBER(c);c=e.org.pkijs.createECDSASignatureFromCMS(l.result)}if("RSA-PSS"===n.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:i.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}o.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}o.algorithm.hash.name=p}return s.verify(o.algorithm,n,new Uint8Array(c),new Uint8Array(a))}))},e.org.pkijs.simpl.PKCS10.prototype.sign=function(t,i){var n=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i)i="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:i}))return Promise.reject("Unsupported hash algorithm: "+i);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":n.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==i.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:i});if(""===a)return Promise.reject("Unsupported hash algorithm: "+i);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);n.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}n.tbs=e.org.pkijs.simpl.PKCS10.prototype.encodeTBS.call(this).toBER(!1);var c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):c.sign(o.algorithm,t,new Uint8Array(n.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),n.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.PKCS10.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),version:this.version,subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("attributes"in this){t.attributes=new Array;for(var i=0;i<this.attributes.length;i++)t.attributes.push(this.attributes[i].toJSON())}return t},e.org.pkijs.simpl.PKCS8=function(){this.version=0,this.privateKeyAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.privateKey=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PKCS8.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.privateKeyAlgorithm=arguments[0].privateKeyAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.privateKey=arguments[0].privateKey||new e.org.pkijs.asn1.OCTETSTRING,"attributes"in arguments[0]&&(this.attributes=arguments[0].attributes))},e.org.pkijs.simpl.PKCS8.prototype.fromSchema=function(t){var i=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PKCS8({names:{version:"version",privateKeyAlgorithm:{names:{block_name:"privateKeyAlgorithm"}},privateKey:"privateKey",attributes:"attributes"}}));if(!1===i.verified)throw new Error("Object's schema was not verified against input data for PKCS8");if(this.version=i.result.version.value_block.value_dec,this.privateKeyAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.result.privateKeyAlgorithm}),this.privateKey=i.result.privateKey,"attributes"in i.result){this.attributes=new Array;for(var n=i.result.attributes,o=0;o<n.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:n[o]}))}},e.org.pkijs.simpl.PKCS8.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.privateKeyAlgorithm.toSchema()),t.push(this.privateKey),"attributes"in this){for(var i=new Array,n=0;n<this.attributes.length;n++)i.push(this.attributes[n].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:i}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.PKCS8.prototype.toJSON=function(){var e={version:this.version,privateKeyAlgorithm:this.privateKeyAlgorithm.toJSON(),privateKey:this.privateKey.toJSON()};if("attributes"in this){e.attributes=new Array;for(var t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON())}return e},e.org.pkijs.simpl.CERT_CHAIN=function(){this.trusted_certs=new Array,this.certs=new Array,this.crls=new Array,arguments[0]instanceof Object&&(this.trusted_certs=arguments[0].trusted_certs||new Array,this.certs=arguments[0].certs||new Array,this.crls=arguments[0].crls||new Array)},e.org.pkijs.simpl.CERT_CHAIN.prototype.sort=function(){var e=new Array,t=this.certs.slice(0),i=new Date,n=this;if(0===t.length)return new Promise((function(e,t){t({result:!1,result_code:2,result_message:"Certificate's array can not be empty"})}));for(var o=-1,r=0;r<t.length;r++){var a=!1;if("extensions"in t[r]){for(var s=!1,c=!1,l=!1,u=0;u<t[r].extensions.length;u++){if(!0===t[r].extensions[u].critical&&"parsedValue"in t[r].extensions[u]==!1)return new Promise((function(e,i){i({result:!1,result_code:6,result_message:"Unable to parse critical certificate extension: "+t[r].extensions[u].extnID})}));if("2.5.29.15"===t[r].extensions[u].extnID){c=!0;var p=new Uint8Array(t[r].extensions[u].parsedValue.value_block.value_hex);4&~p[0]||(s=!0),2&~p[0]||(l=!0)}"2.5.29.19"===t[r].extensions[u].extnID&&"cA"in t[r].extensions[u].parsedValue&&!0===t[r].extensions[u].parsedValue.cA&&(a=!0)}if(!0===s&&!1===a)return new Promise((function(e,t){t({result:!1,result_code:3,result_message:'Unable to build certificate chain - using "keyCertSign" flag set without BasicConstaints'})}));if(!0===c&&!0===a&&!1===s)return new Promise((function(e,t){t({result:!1,result_code:4,result_message:'Unable to build certificate chain - "keyCertSign" flag was not set'})}));if(!0===a&&!0===c&&!1===l)return new Promise((function(e,t){t({result:!1,result_code:5,result_message:'Unable to build certificate chain - intermediate certificate must have "cRLSign" key usage flag'})}))}if(!1===a){if(0!==e.length)return new Promise((function(e,t){t({result:!1,result_code:7,result_message:"Unable to build certificate chain - more than one possible end-user certificate"})}));e.push(t[r]),o=r}}if(t.splice(o,1),0===e.length)return new Promise((function(e,t){t({result:!1,result_code:1,result_message:"Can't find end-user certificate"})}));if(0===t.length){if(!0===e[0].issuer.isEqual(e[0].subject))return new Promise((function(t,i){t(e)}));if(0===this.trusted_certs.length)return new Promise((function(e,t){t({result:!1,result_code:70,result_message:"Can't find root certificate"})}));t=n.trusted_certs.splice(0)}var h=e[0];function g(e,t){var o=Promise.resolve();if(o=o.then((function(){if(e.notBefore.value>i||e.notAfter.value<i)return new Promise((function(e,t){t({result:!1,result_code:8,result_message:"Certificate validity period is out of checking date"})}))})),0===n.crls.length)return o.then((function(){return new Promise((function(e,t){e()}))}));function r(e){return n.crls[e].verify({issuerCertificate:t}).then((function(t){return!0===t?new Promise((function(t,i){t(n.crls[e])})):++e<n.crls.length?r(e):new Promise((function(e,t){t({result:!1,result_code:9,result_message:"Unable to find CRL for issuer's certificate"})}))}),(function(e){return new Promise((function(e,t){t({result:!1,result_code:10,result_message:"Unable to find CRL for issuer's certificate"})}))}))}return o=(o=o.then((function(){return r(0)}))).then((function(t){return!0===t.isCertificateRevoked({certificate:e})?new Promise((function(e,t){t({result:!1,result_code:11,result_message:"Subject certificate was revoked"})})):new Promise((function(e,t){e()}))}),(function(e){return new Promise((function(e,t){e()}))}))}function m(e,i){return!0===t[i].subject.isEqual(e.issuer)?e.verify({issuerCertificate:t[i]}).then((function(n){return!0===n?g(e,t[i]).then((function(){return new Promise((function(e,t){e(i)}))}),(function(e){return new Promise((function(t,i){i({result:!1,result_code:16,result_message:e})}))})):i<t.length-1?m(e,i+1):new Promise((function(e,t){t({result:!1,result_code:17,result_message:"Unable to build certificate chain - incomplete certificate chain or signature of some certificate is invalid"})}))}),(function(e){return new Promise((function(e,t){t({result:!1,result_code:18,result_message:"Unable to build certificate chain - error during certificate signature verification"})}))})):i<t.length-1?m(e,i+1):new Promise((function(e,t){t({result:!1,result_code:19,result_message:"Unable to build certificate chain - incomplete certificate chain"})}))}return function i(){return m(h,0).then((function(o){if(e.push(t[o]),h=t[o],t.splice(o,1),!0===h.issuer.isEqual(h.subject)){for(var r=0===n.trusted_certs.length,a=0;a<n.trusted_certs.length;a++)if(!0===h.issuer.isEqual(n.trusted_certs[a].issuer)&&!0===h.subject.isEqual(n.trusted_certs[a].subject)&&!0===h.serialNumber.isEqual(n.trusted_certs[a].serialNumber)){r=!0;break}return!1===r?new Promise((function(e,t){t({result:!1,result_code:22,result_message:'Self-signed root certificate not in "trusted certificates" array'})})):h.verify().then((function(t){return!0===t?g(h,h).then((function(){return new Promise((function(t,i){t(e)}))}),(function(e){return new Promise((function(t,i){i({result:!1,result_code:12,result_message:e})}))})):new Promise((function(e,t){t({result:!1,result_code:13,result_message:"Unable to build certificate chain - signature of root certificate is invalid"})}))}),(function(e){return new Promise((function(t,i){i({result:!1,result_code:14,result_message:e})}))}))}return t.length>0?i():0!==n.trusted_certs.length?(t=n.trusted_certs.splice(0),i()):new Promise((function(e,t){t({result:!1,result_code:23,result_message:"Root certificate not found"})}))}),(function(e){return new Promise((function(t,i){i(e)}))}))}()},e.org.pkijs.simpl.CERT_CHAIN.prototype.verify=function(){if(0===this.certs.length)return new Promise((function(e,t){t("Empty certificate array")}));var t=Promise.resolve(),i=this,n=new Array;n.push("2.5.29.32.0");var o=!1,r=!1,a=!1,s=new Array,c=new Array,l=new Array;arguments[0]instanceof Object&&("initial_policy_set"in arguments[0]&&(n=arguments[0].initial_policy_set),"initial_explicit_policy"in arguments[0]&&(o=arguments[0].initial_explicit_policy),"initial_policy_mapping_inhibit"in arguments[0]&&(r=arguments[0].initial_policy_mapping_inhibit),"initial_inhibit_policy"in arguments[0]&&(a=arguments[0].initial_inhibit_policy),"initial_permitted_subtrees_set"in arguments[0]&&(s=arguments[0].initial_permitted_subtrees_set),"initial_excluded_subtrees_set"in arguments[0]&&(c=arguments[0].initial_excluded_subtrees_set),"initial_required_name_forms"in arguments[0]&&(l=arguments[0].initial_required_name_forms));var u=o,p=r,h=a,g=new Array(3);g[0]=!1,g[1]=!1,g[2]=!1;var m=0,d=0,S=0,f=s,_=c,y=l,b=1;return t=(t=e.org.pkijs.simpl.CERT_CHAIN.prototype.sort.call(this).then((function(e){i.certs=e}))).then((function(){var e=new Array;e.push("2.5.29.32.0");for(var t=new Array,o=new Array(i.certs.length-1),r=0;r<i.certs.length-1;r++)o[r]=!0;t.push(o);for(var a=new Array(i.certs.length-1),s=new Array(i.certs.length-1),c=i.certs.length-2;c>=0;c--,b++)if("extensions"in i.certs[c]){for(var l=0;l<i.certs[c].extensions.length;l++){if("2.5.29.32"===i.certs[c].extensions[l].extnID){s[c]=i.certs[c].extensions[l].parsedValue;for(var f=0;f<i.certs[c].extensions[l].parsedValue.certificatePolicies.length;f++){for(var _=-1,y=0;y<e.length;y++)if(i.certs[c].extensions[l].parsedValue.certificatePolicies[f].policyIdentifier===e[y]){_=y;break}if(-1===_){e.push(i.certs[c].extensions[l].parsedValue.certificatePolicies[f].policyIdentifier);var k=new Array(i.certs.length-1);k[c]=!0,t.push(k)}else t[_][c]=!0}}"2.5.29.33"===i.certs[c].extensions[l].extnID&&(a[c]=i.certs[c].extensions[l].parsedValue),"2.5.29.36"===i.certs[c].extensions[l].extnID&&0==u&&(0===i.certs[c].extensions[l].parsedValue.requireExplicitPolicy?u=!0:!1===g[0]?(g[0]=!0,m=i.certs[c].extensions[l].parsedValue.requireExplicitPolicy):m=m>i.certs[c].extensions[l].parsedValue.requireExplicitPolicy?i.certs[c].extensions[l].parsedValue.requireExplicitPolicy:m,0===i.certs[c].extensions[l].parsedValue.inhibitPolicyMapping?p=!0:!1===g[1]?(g[1]=!0,d=i.certs[c].extensions[l].parsedValue.requireExplicitPolicy):d=d>i.certs[c].extensions[l].parsedValue.requireExplicitPolicy?i.certs[c].extensions[l].parsedValue.requireExplicitPolicy:d),"2.5.29.54"===i.certs[c].extensions[l].extnID&&!1===h&&(0===i.certs[c].extensions[l].parsedValue.value_block.value_dec?h=!0:!1===g[2]?(g[2]=!0,S=i.certs[c].extensions[l].parsedValue.value_block.value_dec):S=S>i.certs[c].extensions[l].parsedValue.value_block.value_dec?i.certs[c].extensions[l].parsedValue.value_block.value_dec:S)}if(!0===h&&delete t[0][c],void 0!==s[c]&&void 0!==a[c]&&!1===p)for(var v=0;v<s[c].certificatePolicies.length;v++){for(var E="",w=0;w<a[c].mappings.length;w++){if(a[c].mappings[w].subjectDomainPolicy===s[c].certificatePolicies[v].policyIdentifier){E=a[c].mappings[w].issuerDomainPolicy;break}if(a[c].mappings[w].issuerDomainPolicy===s[c].certificatePolicies[v].policyIdentifier){E=a[c].mappings[w].subjectDomainPolicy;break}}if(""!==E){for(var I=-1,T=0;T<e.length;T++)if(e[T]===E){I=T;break}-1!==I&&(t[I][c]=!0)}}!1===u&&!0===g[0]&&0===--m&&(u=!0,g[0]=!1),!1===p&&!0===g[1]&&0===--d&&(p=!0,g[1]=!1),!1===h&&!0===g[2]&&0===--S&&(h=!0,g[2]=!1)}var C=new Array;for(c=0;c<t.length;c++){var A=!0;for(l=0;l<i.certs.length-1;l++)if(void 0===t[c][l]){A=!1;break}!0===A&&C.push(e[c])}var j=new Array;for(c=0;c<C.length;c++)for(l=0;l<n.length;l++)if(n[l]===C[c]){j.push(n[l]);break}return{result:j.length>0,result_code:0,result_message:j.length>0?"":'Zero "user_constr_policies" array, no intersections with "auth_constr_policies"',auth_constr_policies:C,user_constr_policies:j,explicit_policy_indicator:u,policy_mappings:a}})),t=t.then((function(t){function n(t,i){var n=e.org.pkijs.stringPrep(t),o=e.org.pkijs.stringPrep(i),r=n.split("."),a=o.split("."),s=r.length,c=a.length;if(0===s||0===c||s<c)return!1;for(var l=0;l<s;l++)if(0===r[l].length)return!1;for(l=0;l<c;l++)if(0===a[l].length){if(0===l){if(1===c)return!1;continue}return!1}for(l=0;l<c;l++)if(0!==a[c-1-l].length&&0!==r[s-1-l].localeCompare(a[c-1-l]))return!1;return!0}function o(t,i){var o=e.org.pkijs.stringPrep(t),r=e.org.pkijs.stringPrep(i),a=o.split("@"),s=r.split("@");if(0===a.length||0===s.length||a.length<s.length)return!1;if(1===s.length){if(n(a[1],s[0])){var c=a[1].split("."),l=s[0].split(".");return 0===l[0].length||c.length===l.length}return!1}return 0===o.localeCompare(r)}function r(t,i){var o=e.org.pkijs.stringPrep(t),r=e.org.pkijs.stringPrep(i),a=o.split("/");if(r.split("/").length>1)return!1;if(a.length>1)for(var s=0;s<a.length;s++)if(a[s].length>0&&":"!==a[s].charAt(a[s].length-1)){o=a[s].split(":")[0];break}if(n(o,r)){var c=o.split("."),l=r.split(".");return 0===l[0].length||c.length===l.length}return!1}function a(e,t){var i=new Uint8Array(e.value_block.value_hex),n=new Uint8Array(t.value_block.value_hex);if(4===i.length&&8===n.length){for(var o=0;o<4;o++)if((i[o]^n[o])&n[o+4])return!1;return!0}if(16===i.length&&32===n.length){for(o=0;o<16;o++)if((i[o]^n[o])&n[o+16])return!1;return!0}return!1}function s(e,t){if(0===e.types_and_values.length||0===t.types_and_values.length)return!0;if(e.types_and_values.length<t.types_and_values.length)return!1;for(var i=!0,n=0,o=0;o<t.types_and_values.length;o++){for(var r=!1,a=n;a<e.types_and_values.length;a++)if(r=e.types_and_values[a].isEqual(t.types_and_values[o]),e.types_and_values[a].type===t.types_and_values[o].type&&(i=i&&r),!0===r){if(0===n||n===a){n=a+1;break}return!1}if(!1===r)return!1}return 0!==n&&i}if(!1===t.result)return t;b=1;for(var c=i.certs.length-2;c>=0;c--,b++){var l=new Array,u=new Array,p=new Array;if("extensions"in i.certs[c])for(var h=0;h<i.certs[c].extensions.length;h++)"2.5.29.30"===i.certs[c].extensions[h].extnID&&("permittedSubtrees"in i.certs[c].extensions[h].parsedValue&&(u=u.concat(i.certs[c].extensions[h].parsedValue.permittedSubtrees)),"excludedSubtrees"in i.certs[c].extensions[h].parsedValue&&(p=p.concat(i.certs[c].extensions[h].parsedValue.excludedSubtrees))),"2.5.29.17"===i.certs[c].extensions[h].extnID&&(l=l.concat(i.certs[c].extensions[h].parsedValue.altNames));var g=y.length<=0;for(h=0;h<y.length;h++)switch(y[h].base.NameType){case 4:if(y[h].base.Name.types_and_values.length!==i.certs[c].subject.types_and_values.length)continue;g=!0;for(var m=0;m<i.certs[c].subject.types_and_values.length;m++)if(i.certs[c].subject.types_and_values[m].type!==y[h].base.Name.types_and_values[m].type){g=!1;break}if(!0===g)break}if(!1===g)return t.result=!1,t.result_code=21,t.result_message="No neccessary name form found",new Promise((function(e,i){i(t)}));var d=new Array;d[0]=new Array,d[1]=new Array,d[2]=new Array,d[3]=new Array,d[4]=new Array;for(h=0;h<f.length;h++)switch(f[h].base.NameType){case 1:d[0].push(f[h]);break;case 2:d[1].push(f[h]);break;case 4:d[2].push(f[h]);break;case 6:d[3].push(f[h]);break;case 7:d[4].push(f[h])}for(var S=0;S<5;S++){var k=!1,v=!1,E=d[S];for(h=0;h<E.length;h++){switch(S){case 0:if(l.length>0)for(m=0;m<l.length;m++)1===l[m].NameType&&(v=!0,k=k||o(l[m].Name,E[h].base.Name));else for(m=0;m<i.certs[c].subject.types_and_values.length;m++)"1.2.840.113549.1.9.1"!==i.certs[c].subject.types_and_values[m].type&&"0.9.2342.19200300.100.1.3"!==i.certs[c].subject.types_and_values[m].type||(v=!0,k=k||o(i.certs[c].subject.types_and_values[m].value.value_block.value,E[h].base.Name));break;case 1:if(l.length>0)for(m=0;m<l.length;m++)2===l[m].NameType&&(v=!0,k=k||n(l[m].Name,E[h].base.Name));break;case 2:v=!0,k=s(i.certs[c].subject,E[h].base.Name);break;case 3:if(l.length>0)for(m=0;m<l.length;m++)6===l[m].NameType&&(v=!0,k=k||r(l[m].Name,E[h].base.Name));break;case 4:if(l.length>0)for(m=0;m<l.length;m++)7===l[m].NameType&&(v=!0,k=k||a(l[m].Name,E[h].base.Name))}if(k)break}if(!1===k&&E.length>0&&v)return t.result=!1,t.result_code=41,t.result_message='Failed to meet "permitted sub-trees" name constraint',new Promise((function(e,i){i(t)}))}var w=!1;for(h=0;h<_.length;h++){switch(_[h].base.NameType){case 1:if(l.length>=0)for(m=0;m<l.length;m++)1===l[m].NameType&&(w=w||o(l[m].Name,_[h].base.Name));else for(m=0;m<i.subject.types_and_values.length;m++)"1.2.840.113549.1.9.1"!==i.subject.types_and_values[m].type&&"0.9.2342.19200300.100.1.3"!==i.subject.types_and_values[m].type||(w=w||o(i.subject.types_and_values[m].value.value_block.value,_[h].base.Name));break;case 2:if(l.length>0)for(m=0;m<l.length;m++)2===l[m].NameType&&(w=w||n(l[m].Name,_[h].base.Name));break;case 4:w=w||s(i.certs[c].subject,_[h].base.Name);break;case 6:if(l.length>0)for(m=0;m<l.length;m++)6===l[m].NameType&&(w=w||r(l[m].Name,_[h].base.Name));break;case 7:if(l.length>0)for(m=0;m<l.length;m++)7===l[m].NameType&&(w=w||a(l[m].Name,_[h].base.Name))}if(w)break}if(!0===w)return t.result=!1,t.result_code=42,t.result_message='Failed to meet "excluded sub-trees" name constraint',new Promise((function(e,i){i(t)}));f=f.concat(u),_=_.concat(p)}return t})),t}}("undefined"!=typeof exports?exports:window);class Performance{static totalTime=0;static async logWithTimeAndBox(e,t,i){if(i){const i=performance.now();await t();const n=((performance.now()-i)/1e3).toFixed(2);Performance.totalTime+=parseFloat(n);const o=[`Function: ${e}`,`Execution Time: ${n} seconds`],r=Math.max(...o.map((e=>e.length))),a=`+${"-".repeat(r+2)}+`,s=[a,...o.map((e=>`| ${e.padEnd(r)} |`)),a].join("\n");console.log(s);const c=`Total Accumulated Time: ${Performance.totalTime.toFixed(2)} seconds`,l=c.length,u=`+${"-".repeat(l+2)}+`,p="",h=[u,`| ${""}${c.padEnd(l)}${p} |`,u].join("\n");console.log("\n"+h)}else await t()}static resetTime(){this.totalTime=0}}t=com$1||(com$1={}),function(e){class t extends Error{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t){let e=arguments[0];super(e),this.message=e}else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e),this.message=e;else super(e),this.message=e}}e.Exception=t,t.__class="com.WacomGSS.Exception",t.__interfaces=["java.io.Serializable"]}(t.WacomGSS||(t.WacomGSS={})),function(e){!function(e){class t extends Error{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t){let e=arguments[0];super(e),this.message=e}else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e),this.message=e;else super(e),this.message=e}}e.RuntimeException=t,t.__class="com.WacomGSS.RuntimeException",t.__interfaces=["java.io.Serializable"]}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.Exception{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.STUException=i,i.__class="com.WacomGSS.STU.STUException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.RSA1024=0]="RSA1024",e[e.RSA1536=1]="RSA1536",e[e.RSA2048=2]="RSA2048"}(t=e.AsymmetricKeyType||(e.AsymmetricKeyType={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.AsymmetricKeyType_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.AsymmetricKeyType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"RSA1024",0),new i(1,"RSA1536",1),new i(2,"RSA2048",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.None=0]="None",e[e.PKCS1=1]="PKCS1",e[e.OAEP=2]="OAEP"}(t=e.AsymmetricPaddingType||(e.AsymmetricPaddingType={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.AsymmetricPaddingType_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.AsymmetricPaddingType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"None",0),new i(1,"PKCS1",1),new i(2,"OAEP",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{}t.STU500=115200,t.STU430_530=460800,e.BaudRate=t,t.__class="com.WacomGSS.STU.Protocol.BaudRate"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Disable=0]="Disable",e[e.Enable=1]="Enable"}(t=e.BootScreenFlag||(e.BootScreenFlag={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.BootScreenFlag_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.BootScreenFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"Disable",0),new i(1,"Enable",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n,o,r,a,s){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||"boolean"!=typeof s&&null!==s)throw new Error("invalid overload");{let s=arguments[7];void 0===this.tabletMaxX&&(this.tabletMaxX=0),void 0===this.tabletMaxY&&(this.tabletMaxY=0),void 0===this.tabletMaxPressure&&(this.tabletMaxPressure=0),void 0===this.screenWidth&&(this.screenWidth=0),void 0===this.screenHeight&&(this.screenHeight=0),void 0===this.maxReportRate&&(this.maxReportRate=0),void 0===this.resolution&&(this.resolution=0),void 0===this.zlibColorSupport&&(this.zlibColorSupport=!1),void 0===this.encodingFlag&&(this.encodingFlag=0),this.tabletMaxX=e,this.tabletMaxY=t,this.tabletMaxPressure=i,this.screenWidth=n,this.screenHeight=o,this.maxReportRate=r,this.resolution=a,this.zlibColorSupport=s,this.encodingFlag=s?1:0}}else void 0===this.tabletMaxX&&(this.tabletMaxX=0),void 0===this.tabletMaxY&&(this.tabletMaxY=0),void 0===this.tabletMaxPressure&&(this.tabletMaxPressure=0),void 0===this.screenWidth&&(this.screenWidth=0),void 0===this.screenHeight&&(this.screenHeight=0),void 0===this.maxReportRate&&(this.maxReportRate=0),void 0===this.resolution&&(this.resolution=0),void 0===this.zlibColorSupport&&(this.zlibColorSupport=!1),void 0===this.encodingFlag&&(this.encodingFlag=0),this.tabletMaxX=e,this.tabletMaxY=t,this.tabletMaxPressure=i,this.screenWidth=n,this.screenHeight=o,this.maxReportRate=r,this.resolution=a,this.zlibColorSupport=!!(1&s),this.encodingFlag=s}getTabletMaxX(){return this.tabletMaxX}getTabletMaxY(){return this.tabletMaxY}getTabletMaxPressure(){return this.tabletMaxPressure}getScreenWidth(){return this.screenWidth}getScreenHeight(){return this.screenHeight}getMaxReportRate(){return this.maxReportRate}getResolution(){return this.resolution}getZlibColorSupport(){return this.zlibColorSupport}getEncodingFlag(){return this.encodingFlag}}e.Capability=t,t.__class="com.WacomGSS.STU.Protocol.Capability"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.HID=0]="HID",e[e.Serial=1]="Serial"}(t=e.DefaultMode||(e.DefaultMode={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.DefaultMode_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.DefaultMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"HID",1),new i(1,"Serial",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof i&&null!==i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==i)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-i<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,i,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}}t.txtError="invalid length",t.myLength=16,e.PublicKey=t,t.__class="com.WacomGSS.STU.Protocol.PublicKey"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.PublicKey{constructor(e,t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof t&&null!==t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==t)throw new Error("invalid overload");super(e)}else super(e,t)}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$()),i.reportId}}i.reportSize=16,t.DevicePublicKey=i,i.__class="com.WacomGSS.STU.Protocol.DevicePublicKey"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof i&&null!==i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==i)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-i<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,i,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}}t.txtError="invalid length",t.myLength=2,e.DHbase=t,t.__class="com.WacomGSS.STU.Protocol.DHbase"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof i&&null!==i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==i)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-i<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,i,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}isEmpty(){let e=!0;for(let t=0;t<this.value.length;t++)if(0!==this.value[t]){e=!1;break}return e}}t.txtError="invalid length",t.myLength=16,e.DHprime=t,t.__class="com.WacomGSS.STU.Protocol.DHprime"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static EncodingFlag_Zlib_$LI$(){return null==t.EncodingFlag_Zlib&&(t.EncodingFlag_Zlib=1),t.EncodingFlag_Zlib}static EncodingFlag_1bit_$LI$(){return null==t.EncodingFlag_1bit&&(t.EncodingFlag_1bit=2),t.EncodingFlag_1bit}static EncodingFlag_16bit_$LI$(){return null==t.EncodingFlag_16bit&&(t.EncodingFlag_16bit=4),t.EncodingFlag_16bit}static EncodingFlag_24bit_$LI$(){return null==t.EncodingFlag_24bit&&(t.EncodingFlag_24bit=8),t.EncodingFlag_24bit}}e.EncodingFlag=t,t.__class="com.WacomGSS.STU.Protocol.EncodingFlag"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.EncodingMode_1bit=0]="EncodingMode_1bit",e[e.EncodingMode_1bit_ZLib=1]="EncodingMode_1bit_ZLib",e[e.EncodingMode_16bit=2]="EncodingMode_16bit",e[e.EncodingMode_24bit=3]="EncodingMode_24bit",e[e.EncodingMode_1bit_Bulk=4]="EncodingMode_1bit_Bulk",e[e.EncodingMode_16bit_Bulk=5]="EncodingMode_16bit_Bulk",e[e.EncodingMode_24bit_Bulk=6]="EncodingMode_24bit_Bulk"}(t=e.EncodingMode||(e.EncodingMode={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}static EncodingMode_Raw_$LI$(){return null==i.EncodingMode_Raw&&(i.EncodingMode_Raw=0),i.EncodingMode_Raw}static EncodingMode_Zlib_$LI$(){return null==i.EncodingMode_Zlib&&(i.EncodingMode_Zlib=1),i.EncodingMode_Zlib}static EncodingMode_16bit_565_$LI$(){return null==i.EncodingMode_16bit_565&&(i.EncodingMode_16bit_565=2),i.EncodingMode_16bit_565}static EncodingMode_Bulk_$LI$(){return null==i.EncodingMode_Bulk&&(i.EncodingMode_Bulk=16),i.EncodingMode_Bulk}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncodingMode_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.EncodingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"EncodingMode_1bit",0),new i(1,"EncodingMode_1bit_ZLib",1),new i(2,"EncodingMode_16bit",2),new i(3,"EncodingMode_24bit",4),new i(4,"EncodingMode_1bit_Bulk",16),new i(5,"EncodingMode_16bit_Bulk",18),new i(6,"EncodingMode_24bit_Bulk",20)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,n,o,r,a,s){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||void 0!==a||void 0!==s)throw new Error("invalid overload");if(void 0===this.encryptionCommandNumber&&(this.encryptionCommandNumber=0),void 0===this.parameter&&(this.parameter=0),void 0===this.lengthOrIndex&&(this.lengthOrIndex=0),void 0===this.data&&(this.data=null),null!=r&&r.length>i.maxDataLength)throw Object.defineProperty(new Error(i.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.encryptionCommandNumber=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),this.parameter=n,this.lengthOrIndex=o,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.maxDataLength),null!=r&&((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(r,0,this.data,0,r.length)}else{if(void 0===this.encryptionCommandNumber&&(this.encryptionCommandNumber=0),void 0===this.parameter&&(this.parameter=0),void 0===this.lengthOrIndex&&(this.lengthOrIndex=0),void 0===this.data&&(this.data=null),null==r&&0!==s)throw Object.defineProperty(new Error(i.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(s<0||s>i.maxDataLength||null!=r&&r.length-a<s)throw Object.defineProperty(new Error(i.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.encryptionCommandNumber=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),this.parameter=n,this.lengthOrIndex=o,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.maxDataLength),null!=r&&((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(r,a,this.data,0,s)}}getEncryptionCommandNumber(){return this.encryptionCommandNumber}getParameter(){return this.parameter}getLengthOrIndex(){return this.lengthOrIndex}getData(){return this.data}}i.maxDataLength=64,i.txtError="invalid data length",t.EncryptionCommand=i,i.__class="com.WacomGSS.STU.Protocol.EncryptionCommand"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.SetEncryptionType=0]="SetEncryptionType",e[e.SetParameterBlock=1]="SetParameterBlock",e[e.GetStatusBlock=2]="GetStatusBlock",e[e.GetParameterBlock=3]="GetParameterBlock",e[e.GenerateSymmetricKey=4]="GenerateSymmetricKey"}(t=e.EncryptionCommandNumber||(e.EncryptionCommandNumber={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncryptionCommandNumber_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.EncryptionCommandNumber",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"SetEncryptionType",1),new i(1,"SetParameterBlock",2),new i(2,"GetStatusBlock",3),new i(3,"GetParameterBlock",4),new i(4,"GenerateSymmetricKey",5)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.RSAe=0]="RSAe",e[e.RSAn=1]="RSAn",e[e.RSAc=2]="RSAc",e[e.RSAm=3]="RSAm"}(t=e.EncryptionCommandParameterBlockIndex||(e.EncryptionCommandParameterBlockIndex={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncryptionCommandParameterBlockIndex_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"RSAe",0),new i(1,"RSAn",1),new i(2,"RSAc",2),new i(3,"RSAm",3)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(e,t,i,n,o,r,a,s,c,l){void 0===this.symmetricKeyType&&(this.symmetricKeyType=0),void 0===this.asymmetricPaddingType&&(this.asymmetricPaddingType=0),void 0===this.asymmetricKeyType&&(this.asymmetricKeyType=0),void 0===this.statusCodeRSAe&&(this.statusCodeRSAe=0),void 0===this.statusCodeRSAn&&(this.statusCodeRSAn=0),void 0===this.statusCodeRSAc&&(this.statusCodeRSAc=0),void 0===this.lastResultCode&&(this.lastResultCode=0),void 0===this.rng&&(this.rng=!1),void 0===this.sha1&&(this.sha1=!1),void 0===this.aes&&(this.aes=!1),this.symmetricKeyType=e,this.asymmetricPaddingType=t,this.asymmetricKeyType=i,this.statusCodeRSAe=n,this.statusCodeRSAn=o,this.statusCodeRSAc=r,this.lastResultCode=a,this.rng=s,this.sha1=c,this.aes=l}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()),i.reportId}getSymmetricKeyType(){return this.symmetricKeyType}getAsymmetricPaddingType(){return this.asymmetricPaddingType}getAsymmetricKeyType(){return this.asymmetricKeyType}getStatusCodeRSAe(){return this.statusCodeRSAe}getStatusCodeRSAn(){return this.statusCodeRSAn}getStatusCodeRSAc(){return this.statusCodeRSAc}getLastResultCode(){return this.lastResultCode}getRng(){return this.rng}getSha1(){return this.sha1}getAes(){return this.aes}}i.reportSize=16,t.EncryptionStatus=i,i.__class="com.WacomGSS.STU.Protocol.EncryptionStatus"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Commit=0]="Commit",e[e.Abandon=1]="Abandon"}(t=e.EndImageDataFlag||(e.EndImageDataFlag={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EndImageDataFlag_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.EndImageDataFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"Commit",0),new i(1,"Abandon",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static None_$LI$(){return null==t.None&&(t.None=0),t.None}static WrongReportId_$LI$(){return null==t.WrongReportId&&(t.WrongReportId=1),t.WrongReportId}static WrongState_$LI$(){return null==t.WrongState&&(t.WrongState=2),t.WrongState}static Crc_$LI$(){return null==t.Crc&&(t.Crc=3),t.Crc}static BadParameter_$LI$(){return null==t.BadParameter&&(t.BadParameter=4),t.BadParameter}static GraphicsImageTooLong_$LI$(){return null==t.GraphicsImageTooLong&&(t.GraphicsImageTooLong=17),t.GraphicsImageTooLong}static GraphicsZlibError_$LI$(){return null==t.GraphicsZlibError&&(t.GraphicsZlibError=18),t.GraphicsZlibError}static GraphicsWrongParameters_$LI$(){return null==t.GraphicsWrongParameters&&(t.GraphicsWrongParameters=21),t.GraphicsWrongParameters}static PadNotExist_$LI$(){return null==t.PadNotExist&&(t.PadNotExist=32),t.PadNotExist}static RomSizeOverflow_$LI$(){return null==t.RomSizeOverflow&&(t.RomSizeOverflow=51),t.RomSizeOverflow}static RomInvalidParameter_$LI$(){return null==t.RomInvalidParameter&&(t.RomInvalidParameter=52),t.RomInvalidParameter}static RomErrorCRC_$LI$(){return null==t.RomErrorCRC&&(t.RomErrorCRC=53),t.RomErrorCRC}}e.ErrorCode=t,t.__class="com.WacomGSS.STU.Protocol.ErrorCode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static None_$LI$(){return null==t.None&&(t.None=0),t.None}static BadParameter_$LI$(){return null==t.BadParameter&&(t.BadParameter=1),t.BadParameter}static ParameterTooLong_$LI$(){return null==t.ParameterTooLong&&(t.ParameterTooLong=2),t.ParameterTooLong}static PublicKeyNotReady_$LI$(){return null==t.PublicKeyNotReady&&(t.PublicKeyNotReady=3),t.PublicKeyNotReady}static PublicExponentNotReady_$LI$(){return null==t.PublicExponentNotReady&&(t.PublicExponentNotReady=4),t.PublicExponentNotReady}static SpecifiedKeyInUse_$LI$(){return null==t.SpecifiedKeyInUse&&(t.SpecifiedKeyInUse=5),t.SpecifiedKeyInUse}static SpecifiedKeyNotInUse_$LI$(){return null==t.SpecifiedKeyNotInUse&&(t.SpecifiedKeyNotInUse=6),t.SpecifiedKeyNotInUse}static BadCommandCode_$LI$(){return null==t.BadCommandCode&&(t.BadCommandCode=7),t.BadCommandCode}static CommandPending_$LI$(){return null==t.CommandPending&&(t.CommandPending=8),t.CommandPending}static SpecifiedKeyExists_$LI$(){return null==t.SpecifiedKeyExists&&(t.SpecifiedKeyExists=9),t.SpecifiedKeyExists}static SpecifiedKeyNotExist_$LI$(){return null==t.SpecifiedKeyNotExist&&(t.SpecifiedKeyNotExist=10),t.SpecifiedKeyNotExist}static NotInitialized_$LI$(){return null==t.NotInitialized&&(t.NotInitialized=11),t.NotInitialized}}e.ErrorCodeRSA=t,t.__class="com.WacomGSS.STU.Protocol.ErrorCodeRSA"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),i.reportId}}i.reportSize=9,t.EventData=i,i.__class="com.WacomGSS.STU.Protocol.EventData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),i.reportId}}i.reportSize=16,i.encryptedSize=16,t.EventDataEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.EventDataEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,n){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPad||null===t)||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];void 0===this.screenSelected&&(this.screenSelected=0),void 0===this.keyNumber&&(this.keyNumber=0),this.screenSelected=e.screenSelected,this.keyNumber=e.keyNumber}}else{if(void 0===this.screenSelected&&(this.screenSelected=0),void 0===this.keyNumber&&(this.keyNumber=0),t[n]!==i.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataKeyPad with wrong EventData");++n,this.screenSelected=t[n+0],this.keyNumber=t[n+1]}}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),i.reportId}static operationModeType_$LI$(){return null==i.operationModeType&&(i.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$()),i.operationModeType}getScreenSelected(){return this.screenSelected}getKeyNumber(){return this.keyNumber}}i.reportSize=9,t.EventDataKeyPad=i,i.__class="com.WacomGSS.STU.Protocol.EventDataKeyPad"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.EventDataKeyPad{constructor(t,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPad||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted||null===t)||void 0!==i)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),i.reportId}getSessionId(){return this.sessionId}}i.reportSize=16,i.encryptedSize=16,t.EventDataKeyPadEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,n){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPad||null===t)||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];void 0===this.keyInput&&(this.keyInput=0),this.pin=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(13),this.keyInput=e.keyInput,((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e.pin,0,this.pin,0,e.pin.length)}}else{if(void 0===this.keyInput&&(this.keyInput=0),this.pin=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(13),t[n]!==i.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataPinPad with wrong EventData");++n,this.keyInput=t[n+0],this.pin[0]=t[n+1]>>4&15,this.pin[1]=15&t[n+1],this.pin[2]=t[n+2]>>4&15,this.pin[3]=15&t[n+2],this.pin[4]=t[n+3]>>4&15,this.pin[5]=15&t[n+3],this.pin[6]=t[n+4]>>4&15,this.pin[7]=15&t[n+4],this.pin[8]=t[n+5]>>4&15,this.pin[9]=15&t[n+5],this.pin[10]=t[n+6]>>4&15,this.pin[11]=15&t[n+6],this.pin[12]=t[n+7]>>4&15}}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),i.reportId}static operationModeType_$LI$(){return null==i.operationModeType&&(i.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$()),i.operationModeType}getKeyInput(){return this.keyInput}getPIN(){const e={str:"",toString:function(){return this.str}};for(let i=0;i<this.pin.length;++i)switch(this.pin[i]){case 15:i=this.pin.length;break;case 10:(t=e).str=t.str.concat("*");break;case 11:(e=>{e.str=e.str.concat("#")})(e);break;case 12:(e=>{e.str=e.str.concat(".")})(e);break;default:0<=this.pin[i]&&this.pin[i]<=9&&(e=>{e.str=e.str.concat(String.fromCharCode("0".charCodeAt(0)+this.pin[i]))})(e)}var t;return e.str}}i.reportSize=9,t.EventDataPinPad=i,i.__class="com.WacomGSS.STU.Protocol.EventDataPinPad"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.EventDataPinPad{constructor(t,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPad||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPadEncrypted||null===t)||void 0!==i)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),i.reportId}getSessionId(){return this.sessionId}}i.reportSize=16,i.encryptedSize=16,t.EventDataPinPadEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.EventDataPinPadEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,n){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignature||null===t)||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];void 0===this.keyValue&&(this.keyValue=0),this.keyValue=e.keyValue}}else{if(void 0===this.keyValue&&(this.keyValue=0),t[n]!==i.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataSignature with wrong EventData");++n,this.keyValue=t[n+0]}}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),i.reportId}static operationModeType_$LI$(){return null==i.operationModeType&&(i.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$()),i.operationModeType}getKeyValue(){return this.keyValue}}i.reportSize=9,t.EventDataSignature=i,i.__class="com.WacomGSS.STU.Protocol.EventDataSignature"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.EventDataSignature{constructor(t,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignature||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignatureEncrypted||null===t)||void 0!==i)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),i.reportId}getSessionId(){return this.sessionId}}i.reportSize=16,i.encryptedSize=16,t.EventDataSignatureEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.EventDataSignatureEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n){void 0===this.upperLeftXpixel&&(this.upperLeftXpixel=0),void 0===this.upperLeftYpixel&&(this.upperLeftYpixel=0),void 0===this.lowerRightXpixel&&(this.lowerRightXpixel=0),void 0===this.lowerRightYpixel&&(this.lowerRightYpixel=0),this.upperLeftXpixel=e,this.upperLeftYpixel=t,this.lowerRightXpixel=i,this.lowerRightYpixel=n}getUpperLeftXpixel(){return this.upperLeftXpixel}getUpperLeftYpixel(){return this.upperLeftYpixel}getLowerRightXpixel(){return this.lowerRightXpixel}getLowerRightYpixel(){return this.lowerRightYpixel}}e.Rectangle=t,t.__class="com.WacomGSS.STU.Protocol.Rectangle"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.Rectangle{constructor(e,t,i,n){super(e,t,i,n)}}t.HandwritingDisplayArea=i,i.__class="com.WacomGSS.STU.Protocol.HandwritingDisplayArea"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.penColor&&(this.penColor=0),void 0===this.penThickness&&(this.penThickness=0),this.penColor=e,this.penThickness=t}getPenColor(){return this.penColor}getPenThickness(){return this.penThickness}}e.HandwritingThicknessColor=t,t.__class="com.WacomGSS.STU.Protocol.HandwritingThicknessColor"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.penColor&&(this.penColor=0),void 0===this.penThickness&&(this.penThickness=0),this.penColor=e,this.penThickness=t}getPenColor(){return this.penColor}getPenThickness(){return this.penThickness}}e.HandwritingThicknessColor24=t,t.__class="com.WacomGSS.STU.Protocol.HandwritingThicknessColor24"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i){void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.bcdDevice&&(this.bcdDevice=0),this.idVendor=e,this.idProduct=t,this.bcdDevice=i}getIdVendor(){return this.idVendor}getIdProduct(){return this.idProduct}getBcdDevice(){return this.bcdDevice}}e.HidInformation=t,t.__class="com.WacomGSS.STU.Protocol.HidInformation"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,i,n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==i||void 0!==n)throw new Error("invalid overload");if(void 0===this.data&&(this.data=null),e.length>t.maxLength_$LI$())throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.data=e.slice(0)}else{if(void 0===this.data&&(this.data=null),n<0||n>t.maxLength_$LI$()||e.length-i<n)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,i,this.data,0,n)}}static maxLength_$LI$(){return null==t.maxLength&&(t.maxLength=t.maxLengthSerial),t.maxLength}getData(){return this.data.slice(0)}}t.txtError="invalid length",t.maxLengthHID=253,t.maxLengthSerial=2557,e.ImageDataBlock=t,t.__class="com.WacomGSS.STU.Protocol.ImageDataBlock"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n,o){void 0===this.modelName&&(this.modelName=null),void 0===this.firmwareMajorVersion&&(this.firmwareMajorVersion=0),void 0===this.firmwareMinorVersion&&(this.firmwareMinorVersion=0),void 0===this.secureIc&&(this.secureIc=0),void 0===this.secureIcVersion&&(this.secureIcVersion=null),this.modelName=e,this.firmwareMajorVersion=t,this.firmwareMinorVersion=i,this.secureIc=n,this.secureIcVersion=o.slice(0)}getModelName(){return this.modelName}getFirmwareMajorVersion(){return this.firmwareMajorVersion}getFirmwareMinorVersion(){return this.firmwareMinorVersion}getSecureIc(){return this.secureIc}getSecureIcVersion(){return this.secureIcVersion}}e.Information=t,t.__class="com.WacomGSS.STU.Protocol.Information"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Off=0]="Off",e[e.On=1]="On"}(t=e.InkingMode||(e.InkingMode={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.InkingMode_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.InkingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"Off",0),new i(1,"On",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(){void 0===this.inkThreshold&&(this.inkThreshold=null),void 0===this.inkState&&(this.inkState=null),this.inkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(e.WacomGSS.STU.Protocol.ProtocolHelper.k_factoryDefaultInkThreshold_$LI$()),this.inkState=e.WacomGSS.STU.Protocol.InkState.InkState_Up}setInkThreshold(t){this.inkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(t)}getInkThreshold(){return new e.WacomGSS.STU.Protocol.InkThreshold(this.inkThreshold)}setInkState(e){this.inkState=e}clear(){this.inkState=e.WacomGSS.STU.Protocol.InkState.InkState_Up}currentState(){return this.inkState}nextState(t,i){return this.inkState=e.WacomGSS.STU.Protocol.ProtocolHelper.getNextInkState(this.inkState,t,i,this.inkThreshold),this.inkState}}t.InkingState=i,i.__class="com.WacomGSS.STU.Protocol.InkingState"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.InkState_isOff=0]="InkState_isOff",e[e.InkState_isOn=1]="InkState_isOn",e[e.InkState_isInk=2]="InkState_isInk",e[e.InkState_isFirst=3]="InkState_isFirst",e[e.InkState_isLast=4]="InkState_isLast",e[e.InkState_Up=5]="InkState_Up",e[e.InkState_Down=6]="InkState_Down",e[e.InkState_Inking=7]="InkState_Inking",e[e.InkState_First=8]="InkState_First",e[e.InkState_Last=9]="InkState_Last"}(t=e.InkState||(e.InkState={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.InkState_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.InkState",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"InkState_isOff",1),new i(1,"InkState_isOn",2),new i(2,"InkState_isInk",4),new i(3,"InkState_isFirst",8),new i(4,"InkState_isLast",16),new i(5,"InkState_Up",1),new i(6,"InkState_Down",2),new i(7,"InkState_Inking",6),new i(8,"InkState_First",14),new i(9,"InkState_Last",17)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,i){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.InkThreshold||null===t)||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];void 0===this.onPressureMark&&(this.onPressureMark=0),void 0===this.offPressureMark&&(this.offPressureMark=0),this.onPressureMark=e.onPressureMark,this.offPressureMark=e.offPressureMark}}else void 0===this.onPressureMark&&(this.onPressureMark=0),void 0===this.offPressureMark&&(this.offPressureMark=0),this.onPressureMark=t,this.offPressureMark=i}getOnPressureMark(){return this.onPressureMark}getOffPressureMark(){return this.offPressureMark}}t.InkThreshold=i,i.__class="com.WacomGSS.STU.Protocol.InkThreshold"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.screenSelect&&(this.screenSelect=0),void 0===this.idAfterSelect&&(this.idAfterSelect=0),this.screenSelect=e,this.idAfterSelect=t}getScreenSelect(){return this.screenSelect}getIdAfterSelect(){return this.idAfterSelect}}e.OperationMode_KeyPad=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_KeyPad"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n,o,r,a){void 0===this.screenSelect&&(this.screenSelect=0),void 0===this.pinBypass&&(this.pinBypass=0),void 0===this.minDigit&&(this.minDigit=0),void 0===this.maxDigit&&(this.maxDigit=0),void 0===this.numberHiddenMode&&(this.numberHiddenMode=0),void 0===this.idAfterEnter&&(this.idAfterEnter=0),void 0===this.idAfterCancel&&(this.idAfterCancel=0),this.screenSelect=e,this.pinBypass=t,this.minDigit=i,this.maxDigit=n,this.numberHiddenMode=o,this.idAfterEnter=r,this.idAfterCancel=a}getScreenSelect(){return this.screenSelect}getPinBypass(){return this.pinBypass}getMinDigit(){return this.minDigit}getMaxDigit(){return this.maxDigit}getNumberHiddenMode(){return this.numberHiddenMode}getIdAfterEnter(){return this.idAfterEnter}getIdAfterCancel(){return this.idAfterCancel}}e.OperationMode_PinPad=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_PinPad"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n){if(this.numberOfKeys=3,void 0===this.signatureScreen&&(this.signatureScreen=0),void 0===this.keyDefinition&&(this.keyDefinition=null),void 0===this.idAfterEnter&&(this.idAfterEnter=0),void 0===this.idAfterCancel&&(this.idAfterCancel=0),null==t||t.length!==this.numberOfKeys)throw Object.defineProperty(new Error("invalid keyDefinition"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.signatureScreen=e,this.keyDefinition=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.numberOfKeys),this.idAfterEnter=i,this.idAfterCancel=n,((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t,0,this.keyDefinition,0,this.numberOfKeys)}getSignatureScreen(){return this.signatureScreen}getKeyDefinition(){return this.keyDefinition}getIdAfterEnter(){return this.idAfterEnter}getIdAfterCancel(){return this.idAfterCancel}}e.OperationMode_Signature=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_Signature"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i,n){if(this.maxNumberOfSlides=10,void 0===this.workingMode&&(this.workingMode=0),void 0===this.numberOfSlides&&(this.numberOfSlides=0),void 0===this.slideNumber&&(this.slideNumber=null),void 0===this.interval&&(this.interval=0),null==i||i.length>this.maxNumberOfSlides)throw Object.defineProperty(new Error("invalid slideNumber"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.workingMode=e,this.slideNumber=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.maxNumberOfSlides),this.numberOfSlides=t,this.interval=n,((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(i,0,this.slideNumber,0,i.length)}getWorkingMode(){return this.workingMode}getSlideNumber(){return this.slideNumber}getNumberOfSlides(){return this.numberOfSlides}getInterval(){return this.interval}}e.OperationMode_SlideShow=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_SlideShow"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t){if(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t){if(void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),null==t||t.length!==i.dataBytes+2||t[0]!==e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$())throw Object.defineProperty(new Error("invalid raw"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.operationModeType=t[1],this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t,2,this.data,0,i.dataBytes)}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode||null===t){let e=arguments[0];{let t=e.operationModeType;void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e.data,0,this.data,0,e.data.length)})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_PinPad||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getScreenSelect(),this.data[1]=t.getPinBypass(),this.data[2]=t.getMinDigit(),this.data[3]=t.getMaxDigit(),this.data[4]=t.getNumberHiddenMode(),this.data[5]=t.getIdAfterEnter(),this.data[6]=t.getIdAfterCancel()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_KeyPad||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getScreenSelect(),this.data[1]=t.getIdAfterSelect()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_Signature||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getSignatureScreen(),this.data[1]=t.getKeyDefinition()[0],this.data[2]=t.getKeyDefinition()[1],this.data[3]=t.getKeyDefinition()[2],this.data[4]=t.getIdAfterEnter(),this.data[5]=t.getIdAfterCancel()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_SlideShow||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.SlideShow_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{const e=t.getSlideNumber();this.data[0]=t.getWorkingMode(),this.data[1]=t.getNumberOfSlides(),this.data[2]=(15&e[0])<<4|15&e[1],this.data[3]=(15&e[2])<<4|15&e[3],this.data[4]=(15&e[4])<<4|15&e[5],this.data[5]=(15&e[6])<<4|15&e[7],this.data[6]=(15&e[8])<<4|15&e[9],this.data[7]=t.getInterval()>>24&255,this.data[8]=t.getInterval()>>16&255,this.data[9]=t.getInterval()>>8&255,this.data[10]=255&t.getInterval()})()}else{if("number"!=typeof t&&null!==t)throw new Error("invalid overload");{let e=arguments[0];void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=e,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.dataBytes)}}}getOperationModeType(){return this.operationModeType}getData(){return this.data}static initializeNormal(){return new i(e.WacomGSS.STU.Protocol.OperationModeType.Normal_$LI$())}static initializePinPad(e){return new i(e)}static initializeKeyPad(e){return new i(e)}static initializeSignature(e){return new i(e)}static initializeSlideShow(e){return new i(e)}}i.dataBytes=11,t.OperationMode=i,i.__class="com.WacomGSS.STU.Protocol.OperationMode"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Normal_$LI$(){return null==t.Normal&&(t.Normal=0),t.Normal}static PinPad_$LI$(){return null==t.PinPad&&(t.PinPad=1),t.PinPad}static SlideShow_$LI$(){return null==t.SlideShow&&(t.SlideShow=2),t.SlideShow}static KeyPad_$LI$(){return null==t.KeyPad&&(t.KeyPad=3),t.KeyPad}static Signature_$LI$(){return null==t.Signature&&(t.Signature=4),t.Signature}static MessageBox_$LI$(){return null==t.MessageBox&&(t.MessageBox=5),t.MessageBox}}e.OperationModeType=t,t.__class="com.WacomGSS.STU.Protocol.OperationModeType"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,i,n,o,r){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||void 0!==i||void 0!==n||void 0!==o||void 0!==r)throw new Error("invalid overload");{let e=arguments[0];{let t=e.getRdy(),i=e.getSw(),n=e.getPressure(),o=e.getX(),r=e.getY();void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0),this.rdy=t,this.sw=i,this.pressure=n,this.x=o,this.y=r}void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0)}}else void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0),this.rdy=t,this.sw=i,this.pressure=n,this.x=o,this.y=r}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenData_$LI$()),i.reportId}getRdy(){return this.rdy}getSw(){return this.sw}getPressure(){return this.pressure}getX(){return this.x}getY(){return this.y}}i.reportSize=6,t.PenData=i,i.__class="com.WacomGSS.STU.Protocol.PenData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(t,i,n){if(("number"==typeof t||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.PenData||null===i)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.PenData||null===n))void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null),this.sessionId=t,this.penData1=i,this.penData2=n;else{if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataEncrypted||null===t)||void 0!==i||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];{let t=e.getSessionId(),i=e.getPenData1(),n=e.getPenData2();void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null),this.sessionId=t,this.penData1=i,this.penData2=n}void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null)}}}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataEncrypted_$LI$()),i.reportId}getSessionId(){return this.sessionId}getPenData1(){return this.penData1}getPenData2(){return this.penData2}}i.reportSize=16,i.encryptedSize=16,t.PenDataEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.PenDataEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.PenDataEncrypted{constructor(e,t,i){super(e),void 0===this.option1&&(this.option1=0),void 0===this.option2&&(this.option2=0),this.option1=t,this.option2=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataEncryptedOption_$LI$()),i.reportId}getOption1(){return this.option1}getOption2(){return this.option2}getPenDataOption1(){return new e.WacomGSS.STU.Protocol.PenDataOption(this.getPenData1(),this.getOption1())}getPenDataOption2(){return new e.WacomGSS.STU.Protocol.PenDataOption(this.getPenData2(),this.getOption2())}}i.reportSize=20,t.PenDataEncryptedOption=i,i.__class="com.WacomGSS.STU.Protocol.PenDataEncryptedOption"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.PenData{constructor(t,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataOption||null===t)||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];super(e),void 0===this.option&&(this.option=0),this.option=e.getOption()}}else super(t),void 0===this.option&&(this.option=0),this.option=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataOption_$LI$()),i.reportId}getOption(){return this.option}}i.reportSize=8,t.PenDataOption=i,i.__class="com.WacomGSS.STU.Protocol.PenDataOption"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.None=0]="None",e[e.TimeCount=1]="TimeCount",e[e.SequenceNumber=2]="SequenceNumber",e[e.TimeCountSequence=3]="TimeCountSequence"}(t=e.PenDataOptionMode||(e.PenDataOptionMode={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.PenDataOptionMode_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.PenDataOptionMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"None",0),new i(1,"TimeCount",1),new i(2,"SequenceNumber",2),new i(3,"TimeCountSequence",3)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.PenData{constructor(t,i,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequence||null===t)||void 0!==i||void 0!==n)throw new Error("invalid overload");super(t),void 0===this.timeCount&&(this.timeCount=0),void 0===this.sequence&&(this.sequence=0),this.timeCount=t.getTimeCount(),this.sequence=t.getSequence()}else super(t),void 0===this.timeCount&&(this.timeCount=0),void 0===this.sequence&&(this.sequence=0),this.timeCount=i,this.sequence=n}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequence_$LI$()),i.reportId}getTimeCount(){return this.timeCount}getSequence(){return this.sequence}}i.reportSize=10,t.PenDataTimeCountSequence=i,i.__class="com.WacomGSS.STU.Protocol.PenDataTimeCountSequence"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.Protocol.PenDataTimeCountSequence{constructor(t,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequence||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted||null===t)||void 0!==i)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.getSessionId()}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=i}static reportId_$LI$(){return null==i.reportId&&(i.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequenceEncrypted_$LI$()),i.reportId}getSessionId(){return this.sessionId}}i.reportSize=16,i.encryptedSize=16,t.PenDataTimeCountSequenceEncrypted=i,i.__class="com.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return i.I$byte(e)<<8|i.I$byte(t)}static I$byte$byte$byte$byte(e,t,n,o){return i.I$byte(e)<<24|i.I$byte(t)<<16|i.I$byte(n)<<8|i.I$byte(o)}static I(t,i,n,o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||void 0!==n||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==i||void 0!==n||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.Protocol.I$byte(t)}return e.WacomGSS.STU.Protocol.Protocol.I$byte$byte(t,i)}return e.WacomGSS.STU.Protocol.Protocol.I$byte$byte$byte$byte(t,i,n,o)}static S(e,t){return 65535&i.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}async getStatus(){let t=[e.WacomGSS.STU.Protocol.ReportId.Status_$LI$(),0,0,0,0],n=await this.intf.get(t);return new e.WacomGSS.STU.Protocol.Status(n[1],n[2],i.S(n[3],n[4]))}async setReset(t){const i=[e.WacomGSS.STU.Protocol.ReportId.Reset_$LI$(),e.WacomGSS.STU.Protocol.ResetFlag._$wrappers[t].getValue()];await this.intf.set(i)}async getHidInformation(){let t=[e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$(),0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HidInformation(i.S(t[1],t[2]),i.S(t[3],t[4]),i.S(t[5],t[6]))}async getDefaultMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),0,0];return t=await this.intf.get(t),t[1]}async setDefaultMode(t){const i=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),e.WacomGSS.STU.Protocol.DefaultMode._$wrappers[t].getValue(),0];await this.intf.set(i)}async getInformation(){let t=[e.WacomGSS.STU.Protocol.ReportId.Information_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];t=await this.intf.get(t);const n={str:"",toString:function(){return this.str}};for(let e=0;e<9&&0!==t[1+e];++e)(o=n).str=o.str.concat(String.fromCharCode(i.I$byte(t[1+e])));var o;return new e.WacomGSS.STU.Protocol.Information(n.str,i.I$byte(t[10]),i.I$byte(t[11]),t[12],[i.I$byte(t[13]),i.I$byte(t[14]),i.I$byte(t[15]),i.I$byte(t[16])])}async getCapability(){let t=[e.WacomGSS.STU.Protocol.ReportId.Capability_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),t.length>11?new e.WacomGSS.STU.Protocol.Capability(i.I$byte$byte(t[1],t[2]),i.I$byte$byte(t[3],t[4]),i.I$byte$byte(t[5],t[6]),i.I$byte$byte(t[7],t[8]),i.I$byte$byte(t[9],t[10]),i.I$byte(t[11]),i.I$byte$byte(t[12],t[13]),t[14]):new e.WacomGSS.STU.Protocol.Capability(i.I$byte$byte(t[1],t[2]),i.I$byte$byte(t[3],t[4]),i.I$byte$byte(t[5],t[6]),i.I$byte$byte(t[7],t[8]),i.I$byte$byte(t[9],t[10]),0,0,0)}async getUid(){let t=[e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),0,0,0,0];return t=await this.intf.get(t),i.I$byte$byte$byte$byte(t[1],t[2],t[3],t[4])}async setUid(t){const n=[e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),i.B3(t),i.B2(t),i.B1(t),i.B0(t)];await this.intf.set(n)}async getUid2(){let t=[e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$(),0,0,0,0,0,0,0,0,0,0];t=await this.intf.get(t);const n={str:"",toString:function(){return this.str}};for(let e=0;e<10&&0!==t[1+e];++e)(o=n).str=o.str.concat(String.fromCharCode(i.I$byte(t[1+e])));var o;return n.str}async getEserial(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(14);t[0]=e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$(),t=await this.intf.get(t);const n={str:"",toString:function(){return this.str}};for(let e=0;e<13&&0!==t[1+e];++e)(o=n).str=o.str.concat(String.fromCharCode(i.I$byte(t[1+e])));var o;return n.str}async getHostPublicKey(){let t=[e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.PublicKey(t,1)}async setHostPublicKey(t){const i=t.getValue(),n=[e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]];await this.intf.set(n)}async getDevicePublicKey(){let t=[e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.DevicePublicKey(t,1)}async setStartCapture(t){const n=[e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),i.B3(t),i.B2(t),i.B1(t),i.B0(t)];await this.intf.set(n)}async setEndCapture(){const t=[e.WacomGSS.STU.Protocol.ReportId.EndCapture_$LI$(),0];await this.intf.set(t)}async getDHprime(){const t=[e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];let i=await this.intf.get(t);return new e.WacomGSS.STU.Protocol.DHprime(i,1)}async setDHprime(t){const i=t.getValue(),n=[e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]];await this.intf.set(n)}async getDHbase(){let t=[e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.DHbase(t,1)}async setDHbase(t){const i=t.getValue(),n=[e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),i[0],i[1]];await this.intf.set(n)}async setClearScreen(){const t=[e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$(),0];await this.intf.set(t)}async setClearScreenArea(t){const n=[e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$(),0,1,i.B0(t.getUpperLeftXpixel()),i.B1(t.getUpperLeftXpixel()),i.B0(t.getUpperLeftYpixel()),i.B1(t.getUpperLeftYpixel()),i.B0(t.getLowerRightXpixel()),i.B1(t.getLowerRightXpixel()),i.B0(t.getLowerRightYpixel()),i.B1(t.getLowerRightYpixel())];await this.intf.set(n)}async getInkingMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$(),0];return t=await this.intf.get(t),t[1]}async setInkingMode(t){const i=[e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$(),e.WacomGSS.STU.Protocol.InkingMode._$wrappers[t].getValue()];await this.intf.set(i)}async getInkThreshold(){let t=[e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.InkThreshold(i.I$byte$byte(t[2],t[1]),i.I$byte$byte(t[4],t[3]))}async setInkThreshold(t){const n=[e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),i.B0(t.getOnPressureMark()),i.B1(t.getOnPressureMark()),i.B0(t.getOffPressureMark()),i.B1(t.getOffPressureMark())];await this.intf.set(n)}async setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(t){const i=[e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t].getValue()];await this.intf.set(i)}async setStartImageData(e){if("number"==typeof e||null===e)return await this.setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(e);if("number"==typeof e||null===e)return await this.setStartImageData$int(e);throw new Error("invalid overload")}async setStartImageData$int(t){const n=[e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),i.B0(t)];await this.intf.set(n)}async setStartImageDataArea(t,n){const o=[e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$(),e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t].getValue(),1,i.B0(n.getUpperLeftXpixel()),i.B1(n.getUpperLeftXpixel()),i.B0(n.getUpperLeftYpixel()),i.B1(n.getUpperLeftYpixel()),i.B0(n.getLowerRightXpixel()),i.B1(n.getLowerRightXpixel()),i.B0(n.getLowerRightYpixel()),i.B1(n.getLowerRightYpixel())];await this.intf.set(o)}async setImageDataBlock(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.getData().length>e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID?2560:256),o=t.getData();n[0]=e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),n[1]=i.B0(o.length),n[2]=i.B1(o.length);for(let e=0;e<o.length;e++)n[e+3]=o[e];await this.intf.set(n)}async setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(t){const i=[e.WacomGSS.STU.Protocol.ReportId.EndImageData_$LI$(),e.WacomGSS.STU.Protocol.EndImageDataFlag._$wrappers[t].getValue()];await this.intf.set(i)}async setEndImageData(e){if("number"==typeof e||null===e)return await this.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e);if(void 0===e)return await this.setEndImageData$();throw new Error("invalid overload")}async setEndImageData$(){await this.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}async getHandwritingThicknessColor(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$(),0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HandwritingThicknessColor(i.I$byte$byte(t[2],t[1]),i.I$byte(t[3]))}async setHandwritingThicknessColor(t){const n=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$(),i.B0(t.getPenColor()),i.B1(t.getPenColor()),i.B0(t.getPenThickness())];await this.intf.set(n)}async getHandwritingThicknessColor24(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$(),0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HandwritingThicknessColor24(i.I$byte$byte$byte$byte(0,t[3],t[2],t[1]),i.I$byte(t[4]))}async setHandwritingThicknessColor24(t){const n=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$(),i.B0(t.getPenColor()),i.B1(t.getPenColor()),i.B2(t.getPenColor()),i.B0(t.getPenThickness())];await this.intf.set(n)}async getBackgroundColor(){let t=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$(),0,0];return t=await this.intf.get(t),i.I$byte$byte(t[2],t[1])}async setBackgroundColor(t){const n=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$(),i.B0(t),i.B1(t)];await this.intf.set(n)}async getBackgroundColor24(){let t=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$(),0,0,0];return t=await this.intf.get(t),i.I$byte$byte$byte$byte(0,t[3],t[2],t[1])}async setBackgroundColor24(t){const n=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$(),i.B0(t),i.B1(t),i.B2(t)];await this.intf.set(n)}async getScreenContrast(){let t=[e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),0,0];return t=await this.intf.get(t),i.I$byte$byte(t[2],t[1])}async setScreenContrast(t){const n=[e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),i.B0(t),i.B1(t)];await this.intf.set(n)}async getHandwritingDisplayArea(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$(),0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.Rectangle(i.I$byte$byte(t[2],t[1]),i.I$byte$byte(t[4],t[3]),i.I$byte$byte(t[6],t[5]),i.I$byte$byte(t[8],t[7]))}async setHandwritingDisplayArea(t){const n=[e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$(),i.B0(t.getUpperLeftXpixel()),i.B1(t.getUpperLeftXpixel()),i.B0(t.getUpperLeftYpixel()),i.B1(t.getUpperLeftYpixel()),i.B0(t.getLowerRightXpixel()),i.B1(t.getLowerRightXpixel()),i.B0(t.getLowerRightYpixel()),i.B1(t.getLowerRightYpixel())];await this.intf.set(n)}async getBacklightBrightness(){let t=[e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),0,0];return t=await this.intf.get(t),i.I$byte$byte(t[2],t[1])}async setBacklightBrightness(t){const n=[e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),i.B0(t),i.B1(t)];await this.intf.set(n)}async getPenDataOptionMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$(),0];return t=await this.intf.get(t),t[1]}async setPenDataOptionMode(t){const i=[e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$(),e.WacomGSS.STU.Protocol.PenDataOptionMode._$wrappers[t].getValue()];await this.intf.set(i)}async getEncryptionStatus(){let t=[e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.EncryptionStatus(t[1],t[2]>>6&3,63&t[2],t[4],t[5],t[6],t[7],!!(4&t[8]),!!(2&t[8]),!!(1&t[8]))}async getEncryptionCommand(t){let i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(68);return i[0]=e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),i[1]=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),i=await this.intf.get(i),new e.WacomGSS.STU.Protocol.EncryptionCommand(t,i[2],i[3],i,4,e.WacomGSS.STU.Protocol.EncryptionCommand.maxDataLength)}async setEncryptionCommand(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(68);i[0]=e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),i[1]=t.getEncryptionCommandNumber(),i[2]=t.getParameter(),i[3]=t.getLengthOrIndex(),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t.getData(),0,i,4,e.WacomGSS.STU.Protocol.EncryptionCommand.maxDataLength),await this.intf.set(i)}static initializeSetEncryptionType(t,i,n){const o=(3&e.WacomGSS.STU.Protocol.AsymmetricPaddingType._$wrappers[i].getValue())<<6|3&e.WacomGSS.STU.Protocol.AsymmetricKeyType._$wrappers[n].getValue();return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.SetEncryptionType,e.WacomGSS.STU.Protocol.SymmetricKeyType._$wrappers[t].getValue(),o,null)}static initializeSetParameterBlock(t,i){return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.SetParameterBlock,e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex._$wrappers[t].getValue(),255&i.length,i)}static initializeGenerateSymmetricKey(){return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GenerateSymmetricKey,0,0,null)}static initializeGetParameterBlock(t,i){if(i<0||i>255)throw Object.defineProperty(new Error("offset out of range"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GetParameterBlock,e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex._$wrappers[t].getValue(),255&i,null)}static decodePenData(t,n){return new e.WacomGSS.STU.Protocol.PenData(t[n+0]>>7&1,t[n+0]>>4&7,(15&t[n+0])<<8|i.I$byte(t[n+1]),i.I$byte$byte(t[n+2],t[n+3]),i.I$byte$byte(t[n+4],t[n+5]))}static decodePenDataOption(t,n){return new e.WacomGSS.STU.Protocol.PenDataOption(i.decodePenData(t,n),i.I$byte$byte(t[n+6],t[n+7]))}static decodeDevicePublicKey(t,i){return new e.WacomGSS.STU.Protocol.DevicePublicKey(t,i)}static decodePenDataEncrypted(t,n){const o=i.I$byte$byte$byte$byte(t[n+0],t[n+1],t[n+2],t[n+3]),r=i.decodePenData(t,n+4),a=i.decodePenData(t,n+10);return new e.WacomGSS.STU.Protocol.PenDataEncrypted(o,r,a)}static decodePenDataEncryptedOption(t,n){const o=i.I$byte$byte(t[n+16],t[n+17]),r=i.I$byte$byte(t[n+18],t[n+19]);return new e.WacomGSS.STU.Protocol.PenDataEncryptedOption(i.decodePenDataEncrypted(t,n),o,r)}static decodePenDataTimeCountSequence(t,n){return new e.WacomGSS.STU.Protocol.PenDataTimeCountSequence(i.decodePenData(t,n),i.I$byte$byte(t[n+6],t[n+7]),i.I$byte$byte(t[n+8],t[n+9]))}static decodePenDataTimeCountSequenceEncrypted(t,n){return new e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted(i.decodePenDataTimeCountSequence(t,n),i.I$byte$byte$byte$byte(t[n+12],t[n+13],t[n+14],t[n+15]))}static decodeEncryptionStatus(t,i){return new e.WacomGSS.STU.Protocol.EncryptionStatus(t[i+0],t[i+1]>>6&3,63&t[i+1],t[i+3],t[i+4],t[i+5],t[i+6],!!(4&t[i+7]),!!(2&t[i+7]),!!(1&t[i+7]))}static decodeEventDataPinPad(t,i){return new e.WacomGSS.STU.Protocol.EventDataPinPad(t,i)}static decodeEventDataKeyPad(t,i){return new e.WacomGSS.STU.Protocol.EventDataKeyPad(t,i)}static decodeEventDataSignature(t,i){return new e.WacomGSS.STU.Protocol.EventDataSignature(t,i)}static decodeEventDataPinPadEncrypted(t,n){const o=i.I$byte$byte$byte$byte(t[n+1],t[n+2],t[n+3],t[n+4]);return new e.WacomGSS.STU.Protocol.EventDataPinPadEncrypted(i.decodeEventDataPinPad(t,n+7),o)}static decodeEventDataKeyPadEncrypted(t,n){const o=i.I$byte$byte$byte$byte(t[n+1],t[n+2],t[n+3],t[n+4]);return new e.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted(i.decodeEventDataKeyPad(t,n+7),o)}static decodeEventDataSignatureEncrypted(t,n){const o=i.I$byte$byte$byte$byte(t[n+1],t[n+2],t[n+3],t[n+4]);return new e.WacomGSS.STU.Protocol.EventDataSignatureEncrypted(i.decodeEventDataSignature(t,n+4),o)}async getReportSizeCollection(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(512);t[0]=e.WacomGSS.STU.Protocol.ReportId.ReportSizeCollection_$LI$(),t=await this.intf.get(t);const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(256);n[0]=0;for(let e=1;e<=255;++e)n[e]=i.I$byte$byte(t[0+2*e],t[1+2*e]);return n}async getReportRate(){let t=[e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),0];return t=await this.intf.get(t),i.I$byte(t[1])}async setReportRate(t){const n=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),i.B0(t)];await this.intf.set(n)}async getRenderingMode(){return e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),cmd=await this.intf.get(cmd),cmd[1]}async setRenderingMode(t){const i=[e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.RenderingMode._$wrappers[t].getValue()];await this.intf.set(i)}async getBootScreen(){let t=[e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),0];return t=await this.intf.get(t),t[1]}async setBootScreen(t){const i=[e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.BootScreenFlag._$wrappers[t].getValue()];await this.intf.set(i)}async getOperationMode(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.OperationMode.dataBytes+2);return t[0]=e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.OperationMode(t)}async setOperationMode(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.OperationMode.dataBytes+2);i[0]=e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),i[1]=t.getOperationModeType(),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t.getData(),0,i,2,e.WacomGSS.STU.Protocol.OperationMode.dataBytes),await this.intf.set(i)}async setRomStartImageData(t){const i=[0,0,0,0,0,0,0];i[0]=e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),i[1]=e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t.getEncodingMode()].getValue(),i[2]=t.getOperationModeType(),i[3]=(t.getImageType()?128:0)|127&t.getImageNumber(),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t.getData(),0,i,4,e.WacomGSS.STU.Protocol.RomStartImageData.dataBytes),await this.intf.set(i)}async getRomImageHash(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.RomImageHash.myLength_$LI$());t[0]=e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),t=await this.intf.get(t);const i=t[1],n=!!(128&t[2]),o=127&t[2],r=t[3];return new e.WacomGSS.STU.Protocol.RomImageHash(i,n,o,r,t,4)}async setRomImageHash(t,i,n){const o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.RomImageHash.myLength_$LI$());o[0]=e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),o[1]=t,o[2]=(i?128:0)|127&n,await this.intf.set(o)}async setRomImageDelete(t,i,n){const o=[e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$(),t,(i?128:0)|127&n];await this.intf.set(o)}async getCurrentImageArea(){const t=[0,0,0,0,0,0,0,0,0];return t[0]=e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$(),await this.intf.get(t),new e.WacomGSS.STU.Protocol.Rectangle(t[1]|t[2]<<8,t[3]|t[4]<<8,t[5]|t[6]<<8,t[7]|t[8]<<8)}async setRomImageDisplay(t,i,n){const o=[e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$(),t,(i?128:0)|127&n];await this.intf.set(o)}}t.Protocol=i,i.__class="com.WacomGSS.STU.Protocol.Protocol"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{static I(e){return 255&e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static sendTable_$LI$(){return null==i.sendTable&&(i.sendTable=[new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Status_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.Reset_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Information_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Capability_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$()),i.OpStatus_Ready|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$()),i.OpStatus_Ready|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.EndCapture_$LI$()),i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()),i.OpStatus_Image),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.EndImageData_$LI$()),i.OpStatus_Image),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.GetReport_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.PinOperationMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.PinOperationMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$()),i.OpStatus_Ready),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageOccupancy_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageOccupancy_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Set|i.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$()),i.OpStatus_Ready|i.OpStatus_Capture),new i.SendEntry(i.OpDirection_Get|i.I(e.WacomGSS.STU.Protocol.ReportId.ReportSizeCollection_$LI$()),i.OpStatus_Ready|i.OpStatus_Image|i.OpStatus_Capture|i.OpStatus_Calculation|i.OpStatus_Image_Boot|i.OpStatus_RomBusy)]),i.sendTable}static opStatus_from_StatusCode(t){let n;switch(t){case e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$():n=i.OpStatus_Ready;break;case e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$():n=i.OpStatus_Image;break;case e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$():n=i.OpStatus_Capture;break;case e.WacomGSS.STU.Protocol.StatusCode.Calculation_$LI$():n=i.OpStatus_Calculation;break;case e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$():n=i.OpStatus_Image_Boot;break;case e.WacomGSS.STU.Protocol.StatusCode.RomBusy_$LI$():n=i.OpStatus_RomBusy;break;case e.WacomGSS.STU.Protocol.StatusCode.SystemReset_$LI$():n=i.OpStatus_SystemReset;break;default:throw Object.defineProperty(new Error("Invalid status value"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]})}return n}static opBitsFromReport(e,t){const n=i.I(e)|t;for(let e=0;e<i.sendTable_$LI$().length;++e)if(i.sendTable_$LI$()[e].first===n)return i.sendTable_$LI$()[e].second;throw Object.defineProperty(new Error("combination of reportId and opDirection is invalid"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]})}static statusCanSend(e,t,n){const o=i.opBitsFromReport(t,n);return!!(i.opStatus_from_StatusCode(e)&o)}static async delay(e){return new Promise((t=>setTimeout(t,e)))}static async waitForStatusToSend(t,n,o,r,a){const s=i.opBitsFromReport(n,o);for(;;){const c=await t.getStatus();if(i.opStatus_from_StatusCode(c.getStatusCode())&s)break;if(0===r)throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet to accept ReportId="+n+" opDirection="+o);--r,await this.delay(a)}}static async waitForStatus(t,i,n,o){for(;;){const r=await t.getStatus();if(await r.getStatusCode()===i)break;if(0===n)throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet status "+i);--n,await this.delay(o)}}static supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(e){return!e.isEmpty()}static async supportsEncryption(t){if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.DHprime||null===t)return e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t);if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)return e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(t);throw new Error("invalid overload")}static async supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(e){const t=await e.getDHprime();return i.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t)}static async setHostPublicKeyAndPollForDevicePublicKey(t,n,o,r){return await t.setHostPublicKey(n),await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$(),i.OpDirection_Get,o,r),t.getDevicePublicKey()}static async generateSymmetricKeyAndWaitForEncryptionStatus(t,n,o,r){await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),i.OpDirection_Set,n,o);const a=t.getInterface().interfaceQueue();await t.setEncryptionCommand(e.WacomGSS.STU.Protocol.Protocol.initializeGenerateSymmetricKey());{const i=await t.getEncryptionStatus();if(i.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCodeRSA.None_$LI$())return i}let s;for(;null!=(s=await a.wait_until_getReport(r));)if(s.length>=e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize&&s[0]===e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$())return await e.WacomGSS.STU.Protocol.Protocol.decodeEncryptionStatus(s,1);throw new e.WacomGSS.STU.TimeoutException("Time out waiting for report EncryptionStatus")}static simulateEncodingFlag(t,i){if(!(i&(e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$())))switch(t){case e.WacomGSS.STU.UsbDevice.ProductId_540_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_530V_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_530_$LI$():i=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_Zlib_$LI$();break;case e.WacomGSS.STU.UsbDevice.ProductId_520A_$LI$():i=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$();break;case e.WacomGSS.STU.UsbDevice.ProductId_500_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_430V_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_430_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_300_$LI$():default:i=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$()}return i}static encodingFlagSupportsColor(t){return!!(t&(e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()))}static resizeAndFlatten(t,n,o,r,a,s,c,l,u,p,h,g){let m=null;if(r!==s||a!==c){let i,l,g,d,S,f,_,y;switch(u){case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Stretch:i=0,l=0,g=s,d=c,S=0,f=0,_=r,y=a;break;case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Clip:if(r>s){switch(15&h){default:case 0:S=0;break;case 1:S=(r-s)/2|0;break;case 2:S=r-s-1}_=S+s,i=0,g=s}else S=0,_=r,i=(s-r)/2|0,g=i+r;if(a>c){switch(h>>4&15){default:case 0:f=0;break;case 1:f=(a-c)/2|0;break;case 2:f=a-c-1}y=f+c,l=0,d=c}else f=0,y=a,l=(c-a)/2|0,d=l+a;break;default:case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Fit:{const e=Math.fround(r/a);let t,n;e>Math.fround(s/c)?(t=s,n=Math.round(Math.fround(t/e))):(n=c,t=Math.round(Math.fround(n*e))),i=(s-t)/2|0,l=(c-n)/2|0,g=i+t,d=l+n,S=0,f=0,_=r,y=a}}S+=n,f+=o,_+=n,y+=o,n=o=0;let b=document.createElement("canvas");b.width=g+i,b.height=d+l;let k=b.getContext("2d");p&&(k.fillStyle=p,k.fillRect(0,0,b.width,b.height)),k.drawImage(t,S,f,_,y,i,l,g,d),m=b}else m=t;switch(l){case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk:}let d=m.getContext("2d").getImageData(0,0,m.width,m.height);!g||l!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit&&l!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib&&l!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk||(d=monochrome(d,220,"none"));let S=d.data,f=[];for(var _=0;_<S.byteLength;_+=4)f.push([S[_],S[_+1],S[_+2]]);const y=f.map((function(e){return e[0]<<16|e[1]<<8|e[2]}));return i.flatten(y,0,0,s,c,l)}static flatten(t,n,o,r,a,s){switch(s){case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk:return i.flattenMonochrome(t,r,a,r);case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:return i.flattenColor16_565(t,r,a,r);case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:return i.flattenColor24(t,r,a,r)}}static flattenMonochrome(e,t,n,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*n)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})((((-8&t)+(7&t?8:0))/8|0)*n);(e=>{for(let t=0;t<e.length;t++)e[t]=255})(r);let a=0,s=0;for(let c=0;c<n;++c){let n=0;for(let o=0;o<t;++o){const t=e[a+o],c=i.isInk(t);r[s]&=~(c<<7-n%8),n++%8==7&&++s}a+=o,7&n&&++s}return r}static rgb16_565(e){return e>>8&63488|e>>5&2016|e>>3&31}static flattenColor16_565(e,t,n,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*n)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(2*t*n);for(let a=0,s=0,c=0;c<n;++c,a+=o)for(let n=0;n<t;++n){const t=e[a+n],o=i.rgb16_565(t);r[s++]=i.B1(o),r[s++]=i.B0(o)}return r}static flattenColor24(e,t,n,o,r){return i.flattenColor24(null,o,r,o)}static flattenColor24(e,t,n,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*n)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(3*t*n);for(let a=0,s=0,c=0;c<n;++c,a+=o)for(let n=0;n<t;++n){const t=e[a+n];r[s++]=i.B0(t),r[s++]=i.B1(t),r[s++]=i.B2(t)}return r}static async writeImageCommon(t,n,o,r,a,s){if(await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),i.OpDirection_Set,a,s),n===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk||n===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk||n===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk)await t.getInterface().write(r);else{let i=0,n=r.length;for(;0!==n;){const a=n>o?o:n,s=new e.WacomGSS.STU.Protocol.ImageDataBlock(r,i,a);await t.setImageDataBlock(s),i+=a,n-=a}}await t.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,n,o,r,a,s){await i.waitForStatusToSend(t,await e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),i.OpDirection_Set,a,s),await t.setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(n),await i.writeImageCommon(t,n,o,r,a,s)}static async writeImage(t,i,n,o,r,a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||!(null!=o&&o instanceof Array&&(0==o.length||null==o[0]||"number"==typeof o[0])||null===o)||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof i&&null!==i||!(null!=n&&n instanceof Array&&(0==n.length||null==n[0]||"number"==typeof n[0])||null===n)||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||void 0!==a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof i&&null!==i||!(null!=n&&n instanceof Array&&(0==n.length||null==n[0]||"number"==typeof n[0])||null===n)||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||void 0!==a)throw new Error("invalid overload");return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(t,i,n,o,r)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$byte_A$int$long(t,i,n,o,r)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,i,n,o,r,a)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$byte_A$int$long(t,n,o,r,a){await i.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,n,e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID,o,r,a)}static async writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,n,o,r,a,s,c){await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),i.OpDirection_Set,s,c),await t.setStartImageDataArea(n,o),await i.writeImageCommon(t,n,r,a,s,c)}static async writeImageArea(t,i,n,o,r,a,s){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof i&&null!==i||!(null!=n&&n instanceof e.WacomGSS.STU.Protocol.Rectangle||null===n)||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof i&&null!==i||!(null!=n&&n instanceof e.WacomGSS.STU.Protocol.Rectangle||null===n)||!(null!=o&&o instanceof Array&&(0==o.length||null==o[0]||"number"==typeof o[0])||null===o)||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||void 0!==s)throw new Error("invalid overload");return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$byte_A$int$long(t,i,n,o,r,a)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,i,n,o,r,a,s)}static async writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$byte_A$int$long(t,n,o,r,a,s){await i.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,n,o,e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID,r,a,s)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(t,n,o,r,a){if(await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),i.OpDirection_Set,r,a),await t.setStartImageData$int(n),await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),i.OpDirection_Set,r,a),n&e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[e.WacomGSS.STU.Protocol.EncodingMode].EncodingMode_Bulk)await t.getInterface().write(o);else{let i=0,n=o.length;for(;0!==n;){const r=n>e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID?e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID:n,a=new e.WacomGSS.STU.Protocol.ImageDataBlock(o,i,r);await t.setImageDataBlock(a),i+=r,n-=r}}await t.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}static isInk(e){return e<=14211289?1:0}static clamp(e){return Math.min(Math.max(Math.round(e),0),255)}static rgb16_565(e){return e>>8&63488|e>>5&2016|e>>3&31}static flattenColor16_565(e,t,n,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*n)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(2*t*n);for(let a=0,s=0,c=0;c<n;++c,a+=o)for(let n=0;n<t;++n){const t=e[a+n],o=i.rgb16_565(t);r[s++]=i.B1(o),r[s++]=i.B0(o)}return r}static flattenColor24(e,t,n,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*n)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(3*t*n);for(let a=0,s=0,c=0;c<n;++c,a+=o)for(let n=0;n<t;++n){const t=e[a+n];r[s++]=i.B0(t),r[s++]=i.B1(t),r[s++]=i.B2(t)}return r}static k_factoryDefaultInkThreshold_$LI$(){return null==i.k_factoryDefaultInkThreshold&&(i.k_factoryDefaultInkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(21,17)),i.k_factoryDefaultInkThreshold}static getNextInkState(t,i,n,o){return 0===i||!(e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isOff].getValue())&&n<o.getOffPressureMark()||e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isOff].getValue()&&n<o.getOnPressureMark()?e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isInk].getValue()?e.WacomGSS.STU.Protocol.InkState.InkState_Last:e.WacomGSS.STU.Protocol.InkState.InkState_Up:t!==e.WacomGSS.STU.Protocol.InkState.InkState_Up?t===e.WacomGSS.STU.Protocol.InkState.InkState_Down?e.WacomGSS.STU.Protocol.InkState.InkState_First:e.WacomGSS.STU.Protocol.InkState.InkState_Inking:e.WacomGSS.STU.Protocol.InkState.InkState_Down}static async writeRomImage(t,n,o,r,a,s){await i.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),i.OpDirection_Set,a,s),await t.setRomStartImageData(n),await i.writeImageCommon(t,n.getEncodingMode(),o,r,a,s)}static makeLegacyGetReport(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+1);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(i,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_GetFeature_$LI$()),i[6]=t,i}static makeLegacySetReport(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+t.length);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(i,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_SetFeature_$LI$()),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t,0,i,e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE,t.length),i}static makeLegacyWrite(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+t.length);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(i,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_Write_$LI$()),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t,0,i,e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE,t.length),i}static waitForReturn(t,i,n){for(;;){const o=t.wait_until_getReport(i);if(null==o)break;const r=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_ReturnValue(o);if(r.getPacketId()===e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.ReturnValue_$LI$()){if(!(r.getReturnValueStatus()&e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus.Error_$LI$()))return o;throw new e.WacomGSS.STU.Protocol.SendException(r.getReturnValueStatus(),n)}}throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet")}static checkReturnValueStatus(t){const i=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_returnValueStatus(t);if(i!==e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus.Success_$LI$())throw new e.WacomGSS.STU.Protocol.SendException(i,new e.WacomGSS.STU.Protocol.SendHint)}}i.OpDirection_Get=256,i.OpDirection_Set=512,i.OpStatus_Ready=1,i.OpStatus_Image=2,i.OpStatus_Capture=4,i.OpStatus_Calculation=8,i.OpStatus_Image_Boot=16,i.OpStatus_RomBusy=32,i.OpStatus_SystemReset=128,t.ProtocolHelper=i,i.__class="com.WacomGSS.STU.Protocol.ProtocolHelper",function(e){class t{constructor(e,t){void 0===this.first&&(this.first=0),void 0===this.second&&(this.second=0),this.first=e,this.second=t}}e.SendEntry=t,t.__class="com.WacomGSS.STU.Protocol.ProtocolHelper.SendEntry",function(e){e[e.Stretch=0]="Stretch",e[e.Fit=1]="Fit",e[e.Clip=2]="Clip"}(e.Scale||(e.Scale={}));class i{constructor(){}}i.Left=0,i.Center=1,i.Right=2,i.Top=0,i.Middle=16,i.Bottom=32,e.Clip=i,i.__class="com.WacomGSS.STU.Protocol.ProtocolHelper.Clip"}(i=t.ProtocolHelper||(t.ProtocolHelper={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={}));for(var com$1,bayerThresholdMap=[[15,135,45,165],[195,75,225,105],[60,180,30,150],[240,120,210,90]],lumR=[],lumG=[],lumB=[],i=0;i<256;i++)lumR[i]=.299*i,lumG[i]=.587*i,lumB[i]=.114*i;function monochrome(e,t,i){for(var n=e.data.length,o=0;o<=n;o+=4)e.data[o]=Math.floor(lumR[e.data[o]]+lumG[e.data[o+1]]+lumB[e.data[o+2]]);for(var r,a,s=e.width,c=0;c<=n;c+=4){if("none"===i)e.data[c]=e.data[c]<t?0:255;else if("bayer"===i){var l=c/4%s,u=Math.floor(c/4/s),p=Math.floor((e.data[c]+bayerThresholdMap[l%4][u%4])/2);e.data[c]=p<t?0:255}else"floydsteinberg"===i?(r=e.data[c]<129?0:255,a=Math.floor((e.data[c]-r)/16),e.data[c]=r,e.data[c+4]+=7*a,e.data[c+4*s-4]+=3*a,e.data[c+4*s]+=5*a,e.data[c+4*s+4]+=1*a):(r=e.data[c]<129?0:255,a=Math.floor((e.data[c]-r)/8),e.data[c]=r,e.data[c+4]+=a,e.data[c+8]+=a,e.data[c+4*s-4]+=a,e.data[c+4*s]+=a,e.data[c+4*s+4]+=a,e.data[c+8*s]+=a);e.data[c+1]=e.data[c+2]=e.data[c]}return e}function toHex(e,t){var i=e.toString(16);return"0000000000000000".substr(0,t-i.length)+i}function toHex2(e){return toHex(e,2)}function arrayToHex(e){for(var t="",i=0;i<e.length;++i)t+=toHex2(e[i]);return t}function hexToArray(e){for(var t=new Array,i=0;i<e.length;i+=2)t.push(parseInt("0x"+e.substr(i,2),16));return t}function padLeft(e,t,i){return void 0===i&&(i=" "),t>(e=e.toString()).length&&(e=Array(t+1-e.length).join(i)+e),e}function base64UrlDecode(e){e=atob(e.replace(/-/g,"+").replace(/_/g,"/"));for(var t=new Array(e.length),i=0;i<e.length;++i)t[i]=e.charCodeAt(i);return t}function powMod(e,t,i){return t<=BigInt(0)?BigInt(1):t===BigInt(1)?e%i:t%BigInt(2)===BigInt(0)?powMod(e*e%i,t/BigInt(2)|BigInt(0),i)%i:powMod(e*e%i,t/BigInt(2)|BigInt(0),i)*e%i}!function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Legacy=0]="Legacy",e[e.WILL=1]="WILL"}(t=e.RenderingMode||(e.RenderingMode={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.RenderingMode_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.RenderingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"Legacy",0),new i(1,"WILL",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(){void 0===this.handlers&&(this.handlers=null),this.handlers=[]}addReportHandler(e){this.handlers.push(e)}removeReportHandler(e){(t=>{let i=t.indexOf(e);i>=0&&t.splice(i,1)})(this.handlers)}static copy(e,t,i){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i);return((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,t,n,0,i),n}decodeTls(t,n,o){const r=new i.decodeTls_RetVal(o),a=n.length-o;if(a>=6){const s=i.copy(n,o,6),c=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_size(s);if(a>=c)switch(e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_packetId(s)){case e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_PenData_$LI$():try{t.onPenData(e.WacomGSS.STU.Protocol.Protocol.decodePenData(n,o+6)),r.success=!0,r.offset=o+6+8}catch(e){}r.success=!0,r.offset=o+c;break;case e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_EventData_$LI$():try{switch(n[o+6]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():t.onEventDataPinPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPad(n,o+6));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():t.onEventDataKeyPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPad(n,o+6));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():t.onEventDataSignature(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignature(n,o+6))}}catch(e){}r.success=!0,r.offset=o+c}}return r}handleReport(t,n,o){let r=0;for(let a=0;a<this.handlers.length;a++){let s=this.handlers[a];r=0;e:for(;r<t.length;)if(o){const e=this.decodeTls(s,t,r);if(!e.success)break;r=e.offset}else switch(t[r]){case e.WacomGSS.STU.Protocol.ReportId.PenData_$LI$():if(r+e.WacomGSS.STU.Protocol.PenData.reportSize>t.length)break e;++r;try{s.onPenData(e.WacomGSS.STU.Protocol.Protocol.decodePenData(t,r),n)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenData.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataOption_$LI$():if(r+e.WacomGSS.STU.Protocol.PenDataOption.reportSize>t.length)break e;++r;try{s.onPenDataOption(e.WacomGSS.STU.Protocol.Protocol.decodePenDataOption(t,r),n)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenDataOption.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize>t.length)break e;++r;const o=i.copy(t,r,e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize);let a=i.copy(o,0,e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodePenDataEncrypted(o,0),n)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.PenDataEncryptedOption_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize>t.length)break e;++r;const o=i.copy(t,r,e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize);let a=i.copy(o,0,e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataEncryptedOption(e.WacomGSS.STU.Protocol.Protocol.decodePenDataEncryptedOption(o,0),n)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$():if(r+e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize>t.length)break e;++r;try{s.onEncryptionStatus(e.WacomGSS.STU.Protocol.Protocol.decodeEncryptionStatus(t,r))}catch(e){}r+=e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$():if(r+e.WacomGSS.STU.Protocol.DevicePublicKey.reportSize>t.length)break e;++r;try{s.onDevicePublicKey(e.WacomGSS.STU.Protocol.Protocol.decodeDevicePublicKey(t,r))}catch(e){}r+=e.WacomGSS.STU.Protocol.DevicePublicKey.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequence_$LI$():if(r+e.WacomGSS.STU.Protocol.PenDataTimeCountSequence.reportSize>t.length)break e;++r;try{s.onPenDataTimeCountSequence(e.WacomGSS.STU.Protocol.Protocol.decodePenDataTimeCountSequence(t,r),n)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenDataTimeCountSequence.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequenceEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize>t.length)break e;++r;const o=i.copy(t,r,e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize);let a=i.copy(o,0,e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataTimeCountSequenceEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodePenDataTimeCountSequenceEncrypted(o,0),n)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$():if(r+e.WacomGSS.STU.Protocol.EventData.reportSize>t.length)break e;++r;try{switch(t[r]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():s.onEventDataPinPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPad(t,r));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():s.onEventDataKeyPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPad(t,r));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():s.onEventDataSignature(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignature(t,r))}}catch(e){}r+=e.WacomGSS.STU.Protocol.EventData.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize>t.length)break e;++r;const n=i.copy(t,r,e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize);let o=i.copy(n,0,e.WacomGSS.STU.Protocol.EventDataEncrypted.encryptedSize);try{o=s.onDecrypt(o)}catch(e){}if(null!=o&&o.length===e.WacomGSS.STU.Protocol.EventDataEncrypted.encryptedSize){for(let e=0;e<o.length;++e)n[e]=o[e];try{switch(n[4]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():s.onEventDataPinPadEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPadEncrypted(n,0));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():s.onEventDataKeyPadEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPadEncrypted(n,0));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():s.onEventDataSignatureEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignatureEncrypted(n,0))}}catch(e){}}r+=e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize}break;default:break e}}return r!==t.length?i.copy(t,r,t.length-r):null}}t.ReportHandler=i,i.__class="com.WacomGSS.STU.Protocol.ReportHandler",function(e){class t{constructor(e){void 0===this.success&&(this.success=!1),void 0===this.offset&&(this.offset=0),this.success=!1,this.offset=e}}e.decodeTls_RetVal=t,t.__class="com.WacomGSS.STU.Protocol.ReportHandler.decodeTls_RetVal"}(i=t.ReportHandler||(t.ReportHandler={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static PenData_$LI$(){return null==t.PenData&&(t.PenData=1),t.PenData}static Status_$LI$(){return null==t.Status&&(t.Status=3),t.Status}static Reset_$LI$(){return null==t.Reset&&(t.Reset=4),t.Reset}static HidInformation_$LI$(){return null==t.HidInformation&&(t.HidInformation=6),t.HidInformation}static Information_$LI$(){return null==t.Information&&(t.Information=8),t.Information}static Capability_$LI$(){return null==t.Capability&&(t.Capability=9),t.Capability}static Uid_$LI$(){return null==t.Uid&&(t.Uid=10),t.Uid}static Uid2_$LI$(){return null==t.Uid2&&(t.Uid2=11),t.Uid2}static DefaultMode_$LI$(){return null==t.DefaultMode&&(t.DefaultMode=12),t.DefaultMode}static ReportRate_$LI$(){return null==t.ReportRate&&(t.ReportRate=13),t.ReportRate}static RenderingMode_$LI$(){return null==t.RenderingMode&&(t.RenderingMode=14),t.RenderingMode}static Eserial_$LI$(){return null==t.Eserial&&(t.Eserial=15),t.Eserial}static PenDataEncrypted_$LI$(){return null==t.PenDataEncrypted&&(t.PenDataEncrypted=16),t.PenDataEncrypted}static HostPublicKey_$LI$(){return null==t.HostPublicKey&&(t.HostPublicKey=19),t.HostPublicKey}static DevicePublicKey_$LI$(){return null==t.DevicePublicKey&&(t.DevicePublicKey=20),t.DevicePublicKey}static StartCapture_$LI$(){return null==t.StartCapture&&(t.StartCapture=21),t.StartCapture}static EndCapture_$LI$(){return null==t.EndCapture&&(t.EndCapture=22),t.EndCapture}static DHprime_$LI$(){return null==t.DHprime&&(t.DHprime=26),t.DHprime}static DHbase_$LI$(){return null==t.DHbase&&(t.DHbase=27),t.DHbase}static ClearScreen_$LI$(){return null==t.ClearScreen&&(t.ClearScreen=32),t.ClearScreen}static InkingMode_$LI$(){return null==t.InkingMode&&(t.InkingMode=33),t.InkingMode}static InkThreshold_$LI$(){return null==t.InkThreshold&&(t.InkThreshold=34),t.InkThreshold}static ClearScreenArea_$LI$(){return null==t.ClearScreenArea&&(t.ClearScreenArea=35),t.ClearScreenArea}static StartImageDataArea_$LI$(){return null==t.StartImageDataArea&&(t.StartImageDataArea=36),t.StartImageDataArea}static StartImageData_$LI$(){return null==t.StartImageData&&(t.StartImageData=37),t.StartImageData}static ImageDataBlock_$LI$(){return null==t.ImageDataBlock&&(t.ImageDataBlock=38),t.ImageDataBlock}static EndImageData_$LI$(){return null==t.EndImageData&&(t.EndImageData=39),t.EndImageData}static HandwritingThicknessColor_$LI$(){return null==t.HandwritingThicknessColor&&(t.HandwritingThicknessColor=40),t.HandwritingThicknessColor}static BackgroundColor_$LI$(){return null==t.BackgroundColor&&(t.BackgroundColor=41),t.BackgroundColor}static HandwritingDisplayArea_$LI$(){return null==t.HandwritingDisplayArea&&(t.HandwritingDisplayArea=42),t.HandwritingDisplayArea}static BacklightBrightness_$LI$(){return null==t.BacklightBrightness&&(t.BacklightBrightness=43),t.BacklightBrightness}static ScreenContrast_$LI$(){return null==t.ScreenContrast&&(t.ScreenContrast=44),t.ScreenContrast}static HandwritingThicknessColor24_$LI$(){return null==t.HandwritingThicknessColor24&&(t.HandwritingThicknessColor24=45),t.HandwritingThicknessColor24}static BackgroundColor24_$LI$(){return null==t.BackgroundColor24&&(t.BackgroundColor24=46),t.BackgroundColor24}static BootScreen_$LI$(){return null==t.BootScreen&&(t.BootScreen=47),t.BootScreen}static PenDataOption_$LI$(){return null==t.PenDataOption&&(t.PenDataOption=48),t.PenDataOption}static PenDataEncryptedOption_$LI$(){return null==t.PenDataEncryptedOption&&(t.PenDataEncryptedOption=49),t.PenDataEncryptedOption}static PenDataOptionMode_$LI$(){return null==t.PenDataOptionMode&&(t.PenDataOptionMode=50),t.PenDataOptionMode}static PenDataTimeCountSequenceEncrypted_$LI$(){return null==t.PenDataTimeCountSequenceEncrypted&&(t.PenDataTimeCountSequenceEncrypted=51),t.PenDataTimeCountSequenceEncrypted}static PenDataTimeCountSequence_$LI$(){return null==t.PenDataTimeCountSequence&&(t.PenDataTimeCountSequence=52),t.PenDataTimeCountSequence}static EncryptionCommand_$LI$(){return null==t.EncryptionCommand&&(t.EncryptionCommand=64),t.EncryptionCommand}static EncryptionStatus_$LI$(){return null==t.EncryptionStatus&&(t.EncryptionStatus=80),t.EncryptionStatus}static GetReport_$LI$(){return null==t.GetReport&&(t.GetReport=128),t.GetReport}static SetResult_$LI$(){return null==t.SetResult&&(t.SetResult=129),t.SetResult}static PinPadData_$LI$(){return null==t.PinPadData&&(t.PinPadData=144),t.PinPadData}static PinPadDataEncrypted_$LI$(){return null==t.PinPadDataEncrypted&&(t.PinPadDataEncrypted=145),t.PinPadDataEncrypted}static PinOperationMode_$LI$(){return null==t.PinOperationMode&&(t.PinOperationMode=146),t.PinOperationMode}static OperationMode_$LI$(){return null==t.OperationMode&&(t.OperationMode=147),t.OperationMode}static RomStartImageData_$LI$(){return null==t.RomStartImageData&&(t.RomStartImageData=148),t.RomStartImageData}static RomImageOccupancy_$LI$(){return null==t.RomImageOccupancy&&(t.RomImageOccupancy=149),t.RomImageOccupancy}static RomImageHash_$LI$(){return null==t.RomImageHash&&(t.RomImageHash=150),t.RomImageHash}static RomImageDelete_$LI$(){return null==t.RomImageDelete&&(t.RomImageDelete=151),t.RomImageDelete}static CurrentImageArea_$LI$(){return null==t.CurrentImageArea&&(t.CurrentImageArea=152),t.CurrentImageArea}static EventData_$LI$(){return null==t.EventData&&(t.EventData=153),t.EventData}static EventDataEncrypted_$LI$(){return null==t.EventDataEncrypted&&(t.EventDataEncrypted=154),t.EventDataEncrypted}static RomImageDisplay_$LI$(){return null==t.RomImageDisplay&&(t.RomImageDisplay=155),t.RomImageDisplay}static ReportSizeCollection_$LI$(){return null==t.ReportSizeCollection&&(t.ReportSizeCollection=255),t.ReportSizeCollection}}e.ReportId=t,t.__class="com.WacomGSS.STU.Protocol.ReportId"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Software=0]="Software",e[e.Hardware=1]="Hardware"}(t=e.ResetFlag||(e.ResetFlag={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ResetFlag_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.ResetFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"Software",0),new i(1,"Hardware",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static All_$LI$(){return null==t.All&&(t.All=0),t.All}static PinPad_All_$LI$(){return null==t.PinPad_All&&(t.PinPad_All=1),t.PinPad_All}static SlideShow_All_$LI$(){return null==t.SlideShow_All&&(t.SlideShow_All=2),t.SlideShow_All}static KeyPad_All_$LI$(){return null==t.KeyPad_All&&(t.KeyPad_All=3),t.KeyPad_All}static Signature_All_$LI$(){return null==t.Signature_All&&(t.Signature_All=4),t.Signature_All}static MessageBox_All_$LI$(){return null==t.MessageBox_All&&(t.MessageBox_All=5),t.MessageBox_All}static PinPad_Number_$LI$(){return null==t.PinPad_Number&&(t.PinPad_Number=6),t.PinPad_Number}static SlideShow_Number_$LI$(){return null==t.SlideShow_Number&&(t.SlideShow_Number=7),t.SlideShow_Number}static KeyPad_Number_$LI$(){return null==t.KeyPad_Number&&(t.KeyPad_Number=8),t.KeyPad_Number}static Signature_Number_$LI$(){return null==t.Signature_Number&&(t.Signature_Number=9),t.Signature_Number}static MessageBox_Number_$LI$(){return null==t.MessageBox_Number&&(t.MessageBox_Number=10),t.MessageBox_Number}}e.RomImageDeleteMode=t,t.__class="com.WacomGSS.STU.Protocol.RomImageDeleteMode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,i,n,o,r,a){if(void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.imageType&&(this.imageType=!1),void 0===this.imageNumber&&(this.imageNumber=0),void 0===this.result&&(this.result=0),void 0===this.hash&&(this.hash=null),null==r||r.length!==t.myLength_$LI$()||a+t.hashSize>t.myLength_$LI$())throw Object.defineProperty(new Error("invalid RomImageHash"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.hash=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.hashSize),this.operationModeType=e,this.imageType=i,this.imageNumber=n,this.result=o,((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(r,a,this.hash,0,t.hashSize)}static myLength_$LI$(){return null==t.myLength&&(t.myLength=t.hashSize+4),t.myLength}getOperationModeType(){return this.operationModeType}getImageType(){return this.imageType}getImageNumber(){return this.imageNumber}getResult(){return this.result}getHash(){return this.hash}}t.hashSize=16,e.RomImageHash=t,t.__class="com.WacomGSS.STU.Protocol.RomImageHash"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(e,t,i,n,o,r,a){void 0===this.encodingMode&&(this.encodingMode=null),void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.imageType&&(this.imageType=!1),void 0===this.imageNumber&&(this.imageNumber=0),void 0===this.data&&(this.data=null),this.encodingMode=e,this.operationModeType=t,this.imageType=i,this.imageNumber=n,this.data=[o,r,a]}getEncodingMode(){return this.encodingMode}getOperationModeType(){return this.operationModeType}getImageType(){return this.imageType}getImageNumber(){return this.imageNumber}getData(){return this.data}static initializePinPad(t,n,o,r,a){return new i(t,e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$(),n,o,r,a,0)}static initializeSlideShow(t,n){return new i(t,e.WacomGSS.STU.Protocol.OperationModeType.SlideShow_$LI$(),!1,n,0,0,0)}static initializeKeyPad(t,n,o,r,a){if(null==a||a.length!==i.keyPadKeyEnabledLength)throw Object.defineProperty(new Error("invalid keyEnabled"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const s=r,c=0|(a[8]?1:0),l=(a[7]?128:0)|(a[6]?64:0)|(a[5]?32:0)|(a[4]?16:0)|(a[3]?8:0)|(a[2]?4:0)|(a[1]?2:0)|(a[0]?1:0);return new i(t,e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$(),n,o,s,c,l)}static initializeSignature(t,n,o,r){if(null==r||r.length!==i.sigKeyEnabledLength)throw Object.defineProperty(new Error("invalid keyEnabled"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const a=(r[2]?4:0)|(r[1]?2:0)|(r[0]?1:0);return new i(t,e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$(),n,o,a,0,0)}static initializeMessageBox(t,n){return new i(t,e.WacomGSS.STU.Protocol.OperationModeType.MessageBox_$LI$(),!1,n,0,0,0)}}i.keyPadKeyEnabledLength=9,i.sigKeyEnabledLength=3,i.dataBytes=3,t.RomStartImageData=i,i.__class="com.WacomGSS.STU.Protocol.RomStartImageData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){super(),Object.setPrototypeOf(this,i.prototype),void 0===this.returnValueStatus&&(this.returnValueStatus=0),void 0===this.sendHint&&(this.sendHint=null),this.returnValueStatus=e,this.sendHint=(e=>{if(null!=e.clone)return e.clone();{let t=Object.create(e);for(let i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}})(t)}getReturnValueStatus(){return this.returnValueStatus}getSendHint(){return(e=>{if(null!=e.clone)return e.clone();{let t=Object.create(e);for(let i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}})(this.sendHint)}}t.SendException=i,i.__class="com.WacomGSS.STU.Protocol.SendException",i.__interfaces=["java.io.Serializable"]}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t){if(void 0!==e||void 0!==t)throw new Error("invalid overload");void 0===this.packetId&&(this.packetId=0),void 0===this.reportId&&(this.reportId=0),this.packetId=0,this.reportId=0}else void 0===this.packetId&&(this.packetId=0),void 0===this.reportId&&(this.reportId=0),this.packetId=e,this.reportId=t}getPacketId(){return this.packetId}getReportId(){return this.reportId}clone(){return new t(this.packetId,this.reportId)}}e.SendHint=t,t.__class="com.WacomGSS.STU.Protocol.SendHint",t.__interfaces=["java.lang.Cloneable"]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,i){void 0===this.statusCode&&(this.statusCode=0),void 0===this.lastResultCode&&(this.lastResultCode=0),void 0===this.statusWord&&(this.statusWord=0),this.statusCode=e,this.lastResultCode=t,this.statusWord=i}getStatusCode(){return this.statusCode}getLastResultCode(){return this.lastResultCode}getStatusWord(){return this.statusWord}}e.Status=t,t.__class="com.WacomGSS.STU.Protocol.Status"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Ready_$LI$(){return null==t.Ready&&(t.Ready=0),t.Ready}static Image_$LI$(){return null==t.Image&&(t.Image=1),t.Image}static Capture_$LI$(){return null==t.Capture&&(t.Capture=2),t.Capture}static Calculation_$LI$(){return null==t.Calculation&&(t.Calculation=3),t.Calculation}static Image_Boot_$LI$(){return null==t.Image_Boot&&(t.Image_Boot=4),t.Image_Boot}static RomBusy_$LI$(){return null==t.RomBusy&&(t.RomBusy=5),t.RomBusy}static SystemReset_$LI$(){return null==t.SystemReset&&(t.SystemReset=255),t.SystemReset}}e.StatusCode=t,t.__class="com.WacomGSS.STU.Protocol.StatusCode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Ready_$LI$(){return null==t.Ready&&(t.Ready=0),t.Ready}static Calculating_$LI$(){return null==t.Calculating&&(t.Calculating=250),t.Calculating}static Even_$LI$(){return null==t.Even&&(t.Even=251),t.Even}static Long_$LI$(){return null==t.Long&&(t.Long=252),t.Long}static Short_$LI$(){return null==t.Short&&(t.Short=253),t.Short}static Invalid_$LI$(){return null==t.Invalid&&(t.Invalid=254),t.Invalid}static NotReady_$LI$(){return null==t.NotReady&&(t.NotReady=255),t.NotReady}}e.StatusCodeRSA=t,t.__class="com.WacomGSS.STU.Protocol.StatusCodeRSA"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.AES128=0]="AES128",e[e.AES192=1]="AES192",e[e.AES256=2]="AES256"}(t=e.SymmetricKeyType||(e.SymmetricKeyType={}));class i{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.SymmetricKeyType_$WRAPPER=i,t.__class="com.WacomGSS.STU.Protocol.SymmetricKeyType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new i(0,"AES128",0),new i(1,"AES192",1),new i(2,"AES256",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return i.I$byte(e)<<8|i.I$byte(t)}static I$byte$byte$byte$byte(e,t,n,o){return i.I$byte(e)<<24|i.I$byte(t)<<16|i.I$byte(n)<<8|i.I$byte(o)}static I(t,i,n,o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||void 0!==n||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==i||void 0!==n||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte(t)}return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte$byte(t,i)}return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte$byte$byte$byte(t,i,n,o)}static S(e,t){return 65535&i.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}static makeSendHint(t){const n=t.length>=6?i.decodeReport_packetId(t):0,o=t.length>=7&&(n===i.PacketId.Legacy_GetFeature_$LI$()||n===i.PacketId.Legacy_SetFeature_$LI$())?t[6]:0;return new e.WacomGSS.STU.Protocol.SendHint(n,o)}static setPacketHeader(e,t){e[0]=i.B3(e.length),e[1]=i.B2(e.length),e[2]=i.B1(e.length),e[3]=i.B0(e.length),e[4]=i.B1(t),e[5]=i.B0(t)}static decodeReport_size(e){return i.I$byte$byte$byte$byte(e[0],e[1],e[2],e[3])}static decodeReport_packetId(e){return i.S(e[4],e[5])}static decodeReport_returnValueStatus(e){return i.S(e[6],e[7])}static decodeReport_ReturnValue(e){return new i.ReturnValue(i.decodeReport_size(e),i.decodeReport_packetId(e),i.decodeReport_returnValueStatus(e))}static decodeReport_ReturnValue_ProtocolVersion(e){const t=i.S(e[8],e[9]),n=(e.length-10)/2|0,o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n);for(let t=0;t<n;++t)o[t]=i.S(e[10+2*t],e[11+2*t]);return new i.ReturnValue_ProtocolVersion(i.decodeReport_ReturnValue(e),t,o)}static decodeReport_ReturnValue_Pending(e){const t=i.S(e[8],e[9]),n=e[10];return new i.ReturnValue_Pending(i.decodeReport_ReturnValue(e),t,n)}static decodeReport_ReturnValue_GenerateCSR(e){const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.length-8);return((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,8,t,0,t.length),new i.ReturnValue_GenerateCSR(i.decodeReport_ReturnValue(e),t)}static decodeReport_ReturnValue_CurrentCertificate(e){const t=e[8],n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.length-9);return((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(e,9,n,0,n.length),new i.ReturnValue_CurrentCertificate(i.decodeReport_ReturnValue(e),t,n)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue(e,t){i.decodeReport_ReturnValue(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_ProtocolVersion(e,t){i.decodeReport_ReturnValue_ProtocolVersion(e)}static decodeReport(t,i){if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_ProtocolVersion||null===i))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_ProtocolVersion(t,i);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_Pending||null===i))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_Pending(t,i);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_GenerateCSR||null===i))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_GenerateCSR(t,i);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_CurrentCertificate||null===i))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_CurrentCertificate(t,i);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue||null===i))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue(t,i);throw new Error("invalid overload")}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_Pending(e,t){i.decodeReport_ReturnValue_Pending(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_GenerateCSR(e,t){i.decodeReport_ReturnValue_GenerateCSR(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_CurrentCertificate(e,t){i.decodeReport_ReturnValue_CurrentCertificate(e)}sendProtocolVersion(e){const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE+2);i.setPacketHeader(t,i.PacketId.ProtocolVersion_$LI$()),t[6]=i.B1(e),t[7]=i.B0(e);const n=this.intf.send$byte_A(t);return i.decodeReport_ReturnValue_ProtocolVersion(n)}sendGenerateCSR(t,n,o,r,a,s,c,l,u){const p=[n.split("").map((e=>e.charCodeAt(0))),o.split("").map((e=>e.charCodeAt(0))),r.split("").map((e=>e.charCodeAt(0))),a.split("").map((e=>e.charCodeAt(0))),s.split("").map((e=>e.charCodeAt(0))),c.split("").map((e=>e.charCodeAt(0))),l.split("").map((e=>e.charCodeAt(0))),u.split("").map((e=>e.charCodeAt(0)))],h=n.length+o.length+r.length+a.length+s.length+c.length+l.length+u.length,g=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE+2+8+h);i.setPacketHeader(g,i.PacketId.GenerateCSR_$LI$()),g[6]=i.B1(t),g[7]=i.B0(t);let m=8;for(let e=0;e<p.length;++e)((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(p[m],0,g,m,p[m].length),m+=p[m].length,g[m++]=0;return this.intf.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(g,e.WacomGSS.STU.InterfaceTLS.InterfaceQueueSelector.tag)}sendGenerateCSR_Cancel(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE);i.setPacketHeader(e,i.PacketId.GenerateCSR_Cancel_$LI$());const t=this.intf.send$byte_A(e);return i.decodeReport_ReturnValue(t)}sendImportCertificate(t,n){const o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE+1+n.length);i.setPacketHeader(o,i.PacketId.ImportCertificate_$LI$()),o[6]=e.WacomGSS.STU.Protocol.TlsProtocol.ClientAuthentication._$wrappers[t].getValue(),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(n,0,o,7,n.length);const r=this.intf.send$byte_A(o);return i.decodeReport_ReturnValue(r)}sendDestroyCertificate(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE);i.setPacketHeader(e,i.PacketId.DestroyCertificate_$LI$());const t=this.intf.send$byte_A(e);return i.decodeReport_ReturnValue(t)}sendUpdateCRL(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE+t.length);return i.setPacketHeader(n,i.PacketId.UpdateCRL_$LI$()),((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(t,0,n,6,t.length),this.intf.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(n,e.WacomGSS.STU.InterfaceTLS.InterfaceQueueSelector.tag)}sendDeleteCRL(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE);i.setPacketHeader(e,i.PacketId.DeleteCRL_$LI$());const t=this.intf.send$byte_A(e);return i.decodeReport_ReturnValue(t)}sendCurrentCertificate(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i.PACKET_HEADER_SIZE);i.setPacketHeader(e,i.PacketId.CurrentCertificate_$LI$());const t=this.intf.send$byte_A(e);return i.decodeReport_ReturnValue_CurrentCertificate(t)}}i.PACKET_HEADER_SIZE=6,t.TlsProtocol=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocol",function(e){class t{constructor(){}static ProtocolVersion_$LI$(){return null==t.ProtocolVersion&&(t.ProtocolVersion=1),t.ProtocolVersion}static GenerateCSR_$LI$(){return null==t.GenerateCSR&&(t.GenerateCSR=16),t.GenerateCSR}static GenerateCSR_Cancel_$LI$(){return null==t.GenerateCSR_Cancel&&(t.GenerateCSR_Cancel=17),t.GenerateCSR_Cancel}static ImportCertificate_$LI$(){return null==t.ImportCertificate&&(t.ImportCertificate=18),t.ImportCertificate}static DestroyCertificate_$LI$(){return null==t.DestroyCertificate&&(t.DestroyCertificate=19),t.DestroyCertificate}static UpdateCRL_$LI$(){return null==t.UpdateCRL&&(t.UpdateCRL=20),t.UpdateCRL}static DeleteCRL_$LI$(){return null==t.DeleteCRL&&(t.DeleteCRL=21),t.DeleteCRL}static CurrentCertificate_$LI$(){return null==t.CurrentCertificate&&(t.CurrentCertificate=22),t.CurrentCertificate}static ReturnValue_$LI$(){return null==t.ReturnValue&&(t.ReturnValue=128),t.ReturnValue}static Legacy_GetFeature_$LI$(){return null==t.Legacy_GetFeature&&(t.Legacy_GetFeature=258),t.Legacy_GetFeature}static Legacy_SetFeature_$LI$(){return null==t.Legacy_SetFeature&&(t.Legacy_SetFeature=259),t.Legacy_SetFeature}static Legacy_PenData_$LI$(){return null==t.Legacy_PenData&&(t.Legacy_PenData=260),t.Legacy_PenData}static Legacy_EventData_$LI$(){return null==t.Legacy_EventData&&(t.Legacy_EventData=261),t.Legacy_EventData}static Legacy_Write_$LI$(){return null==t.Legacy_Write&&(t.Legacy_Write=262),t.Legacy_Write}}e.PacketId=t,t.__class="com.WacomGSS.STU.Protocol.TlsProtocol.PacketId";class i{constructor(){}static Success_$LI$(){return null==i.Success&&(i.Success=0),i.Success}static Pending_$LI$(){return null==i.Pending&&(i.Pending=16385),i.Pending}static Pending_CSR_$LI$(){return null==i.Pending_CSR&&(i.Pending_CSR=16386),i.Pending_CSR}static CSR_$LI$(){return null==i.CSR&&(i.CSR=16387),i.CSR}static Pending_CRL_$LI$(){return null==i.Pending_CRL&&(i.Pending_CRL=16388),i.Pending_CRL}static Error_$LI$(){return null==i.Error&&(i.Error=32768),i.Error}static Error_Busy_$LI$(){return null==i.Error_Busy&&(i.Error_Busy=32769),i.Error_Busy}static Error_Unspecified_$LI$(){return null==i.Error_Unspecified&&(i.Error_Unspecified=65535),i.Error_Unspecified}}e.ReturnValueStatus=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus";class n{constructor(e,t,i){void 0===this.size&&(this.size=0),void 0===this.packetId&&(this.packetId=0),void 0===this.returnValueStatus&&(this.returnValueStatus=0),this.size=e,this.packetId=t,this.returnValueStatus=i}getSize(){return this.size}getPacketId(){return this.packetId}getReturnValueStatus(){return this.returnValueStatus}}let o;e.ReturnValue=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue",function(e){e[e.Single=0]="Single",e[e.Mutual=1]="Mutual"}(o=e.ClientAuthentication||(e.ClientAuthentication={}));class r{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ClientAuthentication_$WRAPPER=r,o.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ClientAuthentication",o.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],o._$wrappers=[new r(0,"Single",0),new r(1,"Mutual",1)];class a extends e.ReturnValue{constructor(e,t,i){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.activeLevel&&(this.activeLevel=0),void 0===this.supportedLevels&&(this.supportedLevels=null),this.activeLevel=t,this.supportedLevels=i.slice(0)}getActiveLevel(){return this.activeLevel}getSupportedLevels(){return this.supportedLevels.slice(0)}}e.ReturnValue_ProtocolVersion=a,a.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_ProtocolVersion";class s extends e.ReturnValue{constructor(e,t,i){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.counter&&(this.counter=0),void 0===this.statusFlags&&(this.statusFlags=0),this.counter=t,this.statusFlags=i}getCounter(){return this.counter}getStatusFlags(){return this.statusFlags}}e.ReturnValue_Pending=s,s.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_Pending";class c extends e.ReturnValue{constructor(e,t){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.csr&&(this.csr=null),this.csr=t.slice(0)}getCSR(){return this.csr.slice(0)}}e.ReturnValue_GenerateCSR=c,c.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_GenerateCSR";class l extends e.ReturnValue{constructor(e,t,i){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.certificateIndex&&(this.certificateIndex=0),void 0===this.certificateDER&&(this.certificateDER=null),this.certificateIndex=t,this.certificateDER=i.slice(0)}getCertificateIndex(){return this.certificateIndex}getCertificateDER(){return this.certificateDER.slice(0)}}e.ReturnValue_CurrentCertificate=l,l.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_CurrentCertificate"}(i=t.TlsProtocol||(t.TlsProtocol={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class i{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return i.I$byte(e)<<8|i.I$byte(t)}static I$byte$byte$byte$byte(e,t,n,o){return i.I$byte(e)<<24|i.I$byte(t)<<16|i.I$byte(n)<<8|i.I$byte(o)}static I(t,i,n,o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof n&&null!==n||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||void 0!==n||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==i||void 0!==n||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte(t)}return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte$byte(t,i)}return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte$byte$byte$byte(t,i,n,o)}static S(e,t){return 65535&i.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}getDescriptor(){const e=[i.ReportId.Descriptor_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.intf.getOOB(e);const t={str:"",toString:function(){return this.str}};for(let o=0;o<7&&0!==e[15+o];++o)(n=t).str=n.str.concat(String.fromCharCode(i.I$byte(e[15+o])));var n;return new i.Descriptor(i.I$byte$byte$byte$byte(e[1],e[2],e[3],e[4]),i.S(e[5],e[6]),i.S(e[7],e[8]),i.S(e[9],e[10]),i.S(e[11],e[12]),t.str)}getStatus(){const e=[i.ReportId.Status_$LI$(),0,0,0,0,0,0];return this.intf.getOOB(e),new i.Status(i.S(e[1],e[2]),i.I$byte$byte$byte$byte(e[3],e[4],e[5],e[6]))}getFactoryReset(){const e=[i.ReportId.FactoryReset_$LI$(),0,0,0,0];return this.intf.getOOB(e),i.I$byte$byte$byte$byte(e[1],e[2],e[3],e[4])}setFactoryReset(e){const t=[i.ReportId.FactoryReset_$LI$(),i.B3(e),i.B2(e),i.B1(e),i.B0(e)];this.intf.setOOB(t)}setFirmwareUpdate(e){const t=[i.ReportId.FirmwareUpdate_$LI$(),i.B3(e),i.B2(e),i.B1(e),i.B0(e)];this.intf.setOOB(t)}setReset(t){const n=[i.ReportId.Reset_$LI$(),e.WacomGSS.STU.Protocol.TlsProtocolOOB.ResetFlag._$wrappers[t].getValue()];this.intf.setOOB(n)}getReportSizeCollection(){let e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(512);e[0]=i.ReportId.ReportSizeCollection_$LI$(),e=this.intf.getOOB(e);const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(256);t[0]=0;for(let n=1;n<=255;++n)t[n]=i.I$byte$byte(e[0+2*n],e[1+2*n]);return t}}t.TlsProtocolOOB=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB",function(e){class t{constructor(){}static Descriptor_$LI$(){return null==t.Descriptor&&(t.Descriptor=1),t.Descriptor}static Status_$LI$(){return null==t.Status&&(t.Status=2),t.Status}static Reset_$LI$(){return null==t.Reset&&(t.Reset=3),t.Reset}static FactoryResetKey_$LI$(){return null==t.FactoryResetKey&&(t.FactoryResetKey=14),t.FactoryResetKey}static FactoryReset_$LI$(){return null==t.FactoryReset&&(t.FactoryReset=15),t.FactoryReset}static FirmwareUpdate_$LI$(){return null==t.FirmwareUpdate&&(t.FirmwareUpdate=128),t.FirmwareUpdate}static ReportSizeCollection_$LI$(){return null==t.ReportSizeCollection&&(t.ReportSizeCollection=255),t.ReportSizeCollection}}e.ReportId=t,t.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.ReportId";class i{constructor(e,t,i,n,o,r){void 0===this.descriptorFlags&&(this.descriptorFlags=0),void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.firmwareRevisionMajor&&(this.firmwareRevisionMajor=0),void 0===this.firmwareRevisionMinor&&(this.firmwareRevisionMinor=0),void 0===this.modelName&&(this.modelName=null),this.descriptorFlags=e,this.idVendor=t,this.idProduct=i,this.firmwareRevisionMajor=n,this.firmwareRevisionMinor=o,this.modelName=r}getDescriptorFlags(){return this.descriptorFlags}getIdVendor(){return this.idVendor}getIdProduct(){return this.idProduct}getFirmwareRevisionMajor(){return this.firmwareRevisionMajor}getFirmwareRevisionMinor(){return this.firmwareRevisionMinor}getModelName(){return this.modelName}}e.Descriptor=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.Descriptor";class n{constructor(e,t){void 0===this.oobStatus&&(this.oobStatus=0),void 0===this.oobExtendedStatus&&(this.oobExtendedStatus=0),this.oobStatus=e,this.oobExtendedStatus=t}getOobStatus(){return this.oobStatus}getOobExtendedStatus(){return this.oobExtendedStatus}}let o;e.Status=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.Status",function(e){e[e.Connection=0]="Connection",e[e.Software=1]="Software",e[e.Hardware=2]="Hardware"}(o=e.ResetFlag||(e.ResetFlag={}));class r{constructor(e,t,i){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=i}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ResetFlag_$WRAPPER=r,o.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.ResetFlag",o.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],o._$wrappers=[new r(0,"Connection",0),new r(1,"Software",1),new r(2,"Hardware",2)]}(i=t.TlsProtocolOOB||(t.TlsProtocolOOB={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{static getProperty(e){return null}static setProperty$java_lang_String$boolean(e,t){}static setProperty$java_lang_String$byte(e,t){}static setProperty$java_lang_String$char(e,t){}static setProperty$java_lang_String$short(e,t){}static setProperty$java_lang_String$int(e,t){}static setProperty$java_lang_String$long(e,t){}static setProperty$java_lang_String$float(e,t){}static setProperty$java_lang_String$double(e,t){}static setProperty$java_lang_String$java_lang_String(e,t){}static setProperty(t,i){if("string"!=typeof t&&null!==t||"string"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||!(null!=i&&i instanceof Array&&(0==i.length||null==i[0]||"number"==typeof i[0])||null===i)){if("string"!=typeof t&&null!==t||"boolean"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"string"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||"number"!=typeof i&&null!==i){if("string"!=typeof t&&null!==t||null==i&&null!==i)throw new Error("invalid overload");return e.WacomGSS.STU.Component.setProperty$java_lang_String$java_lang_Object(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$double(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$float(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$long(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$int(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$short(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$char(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$byte(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$boolean(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$byte_A(t,i)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$java_lang_String(t,i)}static setProperty$java_lang_String$byte_A(e,t){}static setProperty$java_lang_String$java_lang_Object(e,t){}static getComponentFiles(){return null}static diagnosticInformation(e){return null}}t.Component=i,i.__class="com.WacomGSS.STU.Component",function(e){class t{constructor(e,t){void 0===this.name&&(this.name=null),void 0===this.version&&(this.version=null),this.name=e,this.version=t}getName(){return this.name}getVersion(){return this.version}}e.ComponentFile=t,t.__class="com.WacomGSS.STU.Component.ComponentFile"}(i=t.Component||(t.Component={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.DeviceRemovedException=i,i.__class="com.WacomGSS.STU.DeviceRemovedException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.ErrorCodeException=i,i.__class="com.WacomGSS.STU.ErrorCodeException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{constructor(e){void 0===this.handlers&&(this.handlers=null),this.handlers=[],e.setRunnable(this)}run(t,i){0!=this.handlers.length&&new e.WacomGSS.STU.InterfaceHandler.InterfaceDispatch(this.handlers,t,i).run()}stop(){try{this.handlers.length=0,this.interfaceQueue.set_predicate(!0),this.interfaceQueue.notifyAll_getReport()}finally{}}addInterfaceHandler(e){this.handlers.push(e)}removeInterfaceHandler(e){(t=>{let i=t.indexOf(e);i>=0&&t.splice(i,1)})(this.handlers)}}t.InterfaceHandler=i,i.__class="com.WacomGSS.STU.InterfaceHandler",i.__interfaces=["java.lang.Runnable"],function(t){class i{constructor(t,i,n){if((null!=t&&t instanceof Array||null===t)&&(null!=i&&i instanceof Array&&(0==i.length||null==i[0]||"number"==typeof i[0])||null===i))void 0===this.handlers&&(this.handlers=null),void 0===this.report&&(this.report=null),this.handlers=t.slice(0),this.report=new e.WacomGSS.STU.Report(i),this.time=n;else{if(!(null!=t&&t instanceof Array||null===t)||!(null!=i&&i instanceof e.WacomGSS.STU.STUException||null===i))throw new Error("invalid overload");{let i=arguments[1];void 0===this.handlers&&(this.handlers=null),void 0===this.report&&(this.report=null),this.handlers=t.slice(0),this.report=new e.WacomGSS.STU.Report(i)}}}run(){if(null!=this.handlers)for(let e=0;e<this.handlers.length;e++){let t=this.handlers[e];try{t.onReport(this.report,this.time)}catch(e){}}}}t.InterfaceDispatch=i,i.__class="com.WacomGSS.STU.InterfaceHandler.InterfaceDispatch",i.__interfaces=["java.lang.Runnable"]}(i=t.InterfaceHandler||(t.InterfaceHandler={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){class t{constructor(){this.reports=[],this.promise=null,this.outsideResolve}getReport(e,t){this.promise?(this.outsideResolve(e),this.promise=null):this.runnable&&this.runnable.run(e,t)}setRunnable(e){this.runnable=e}clear(){}isEmpty(){return!0}notify_getReport(){}notifyAll_getReport(){}try_getReport(){return this.reports.length>0?this.reports.shift():null}async wait_until_getReport(e){return this.promise=new Promise(((e,t)=>{this.outsideResolve=e})),this.promise}get_predicate(){return!1}set_predicate(e){}wait_getReport_predicate(){return null}}e.InterfaceQueue=t,t.__class="com.WacomGSS.STU.InterfaceQueue"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){!function(e){e[e.OOB=0]="OOB",e[e.SSL=1]="SSL"}(e.ConnectOption||(e.ConnectOption={})),function(e){e[e.tag=0]="tag"}(e.InterfaceQueueSelector||(e.InterfaceQueueSelector={}))}(e.InterfaceTLS||(e.InterfaceTLS={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.IOErrorException=i,i.__class="com.WacomGSS.STU.IOErrorException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.NotConnectedException=i,i.__class="com.WacomGSS.STU.NotConnectedException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.NotSupportedException=i,i.__class="com.WacomGSS.STU.NotSupportedException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{constructor(t){if(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)void 0===this.report&&(this.report=null),void 0===this.e&&(this.e=null),this.report=t.slice(0),this.e=null;else{if(!(null!=t&&t instanceof e.WacomGSS.STU.STUException||null===t))throw new Error("invalid overload");{let e=arguments[0];void 0===this.report&&(this.report=null),void 0===this.e&&(this.e=null),this.report=null,this.e=e}}}getReport(){if(null!=this.e)throw this.e;return this.report.slice(0)}}t.Report=i,i.__class="com.WacomGSS.STU.Report"})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.SetErrorException=i,i.__class="com.WacomGSS.STU.SetErrorException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{constructor(t,n){if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler")>=0||null===t)&&(null!=n&&null!=n.constructor&&null!=n.constructor.__interfaces&&n.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler2")>=0||null===n))void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=i.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=t,this.encryptionHandler2=n})();else if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler")>=0||null===t)&&void 0===n)void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=i.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=t,this.encryptionHandler2=null})();else if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler2")>=0||null===t)&&void 0===n){let t=arguments[0];void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=i.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=null,this.encryptionHandler2=t})()}else{if(void 0!==t||void 0!==n)throw new Error("invalid overload");void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=i.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0}}static I(e){return 255&e}async connect2(t){let i=0;try{try{this.isTls=null!=t&&t instanceof e.WacomGSS.STU.TlsInterface;const i=new e.WacomGSS.STU.Protocol.Protocol(t);this.status=await i.getStatus(),this.protocol=i,this.reportCountLengths=t.getReportCountLengths(),null!=this.reportCountLengths?this.maxImageBlockSize=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]-3:this.maxImageBlockSize=e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID;const n=this.status.getStatusCode();if(n!==e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$()){n===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()?this.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon):n===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()?await this.endCapture():e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$();try{await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())}catch(t){this.protocol.setReset(e.WacomGSS.STU.Protocol.ResetFlag.Software),await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())}this.status=await this.protocol.getStatus()}0!=this.tabletHandlers.length&&(this.interfaceHandler=new e.WacomGSS.STU.InterfaceHandler(t.interfaceQueue()),this.interfaceHandler.addInterfaceHandler(this))}catch(e){throw t.disconnect(),e}}catch(t){null!=t&&t instanceof e.WacomGSS.STU.STUException&&(i=-1),null!=t&&t instanceof e.WacomGSS.RuntimeException&&(i=-100),(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error)&&(i=-666)}return i}async initializeEncryption1(){if(this.encryptionHandler.requireDH()){const t=await this.protocol.getDHprime();if(await this.checkErrorCode(),!e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t))throw new e.WacomGSS.STU.NotSupportedException("Tablet does not have encryption enabled");const i=await this.protocol.getDHbase();await this.checkErrorCode(),await this.encryptionHandler.setDH(t.getValue(),i.getValue())}await this.reinitializeEncryption1()}async reinitializeEncryption1(){const t=new e.WacomGSS.STU.Protocol.PublicKey(this.encryptionHandler.generateHostPublicKey());await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const i=await e.WacomGSS.STU.Protocol.ProtocolHelper.setHostPublicKeyAndPollForDevicePublicKey(this.protocol,t,this.retries,this.sleepBetweenRetries);await this.checkErrorCode(),this.encryptionHandler.computeSharedKey(i.getValue())}async initializeEncryption2(t){switch(t||(this.symmetricKeyType=this.encryptionHandler2.getSymmetricKeyType(),this.asymmetricPaddingType=this.encryptionHandler2.getAsymmetricPaddingType(),this.asymmetricKeyType=this.encryptionHandler2.getAsymmetricKeyType()),this.asymmetricKeyType){case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA1024:this.asymmetricKeySizeBytes=128;break;case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA1536:this.asymmetricKeySizeBytes=192;break;case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA2048:this.asymmetricKeySizeBytes=256;break;default:throw new e.WacomGSS.RuntimeException("asymmetricKeyType unknown")}{await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const t=await e.WacomGSS.STU.Protocol.Protocol.initializeSetEncryptionType(this.symmetricKeyType,this.asymmetricPaddingType,this.asymmetricKeyType);await this.protocol.setEncryptionCommand(t)}{this.publicExponent=await this.encryptionHandler2.getPublicExponent(),this.publicKey=await this.encryptionHandler2.generatePublicKey();let t=e.WacomGSS.STU.Protocol.Protocol.initializeSetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAe,this.publicExponent);await this.protocol.setEncryptionCommand(t);{let i=this.publicKey.length,n=0;for(;0!==i;){const o=i>64?64:i,r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(o);((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(this.publicKey,n,r,0,o),t=e.WacomGSS.STU.Protocol.Protocol.initializeSetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAn,r),await this.protocol.setEncryptionCommand(t),i-=o,n+=o}}}{const t=await this.protocol.getEncryptionStatus();if(t.getStatusCodeRSAe()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$()||t.getStatusCodeRSAn()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$())throw new e.WacomGSS.RuntimeException("failed to upload public exponent and public key to tablet")}await this.reinitializeEncryption2()}async reinitializeEncryption2(t){{const t=await e.WacomGSS.STU.Protocol.ProtocolHelper.generateSymmetricKeyAndWaitForEncryptionStatus(this.protocol,this.retries,this.sleepBetweenRetries,this.retries*this.sleepBetweenRetries);if(t.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCodeRSA.None_$LI$())throw new e.WacomGSS.RuntimeException("EncryptionStatus.lastResultCode != ErrorCodeRSA_None after generateSymmetricKeyAndWaitForEncryptionStatus()");t.getStatusCodeRSAc()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$()&&new e.WacomGSS.RuntimeException("EncryptionStatus.statusCodeRSAc != StatusCodeRSA.Ready after generateSymmetricKeyAndWaitForEncryptionStatus()")}const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.asymmetricKeySizeBytes);{let t=0,n=0;for(t=0;t<i.length;++n){let o=await e.WacomGSS.STU.Protocol.Protocol.initializeGetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAc,n);await this.protocol.setEncryptionCommand(o),o=await this.protocol.getEncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GetParameterBlock);const r=o.getData();if(null==r||0===r.length)throw new e.WacomGSS.RuntimeException("EncryptionCommand.data returned zero-length byte array");((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(r,0,i,t,r.length),t+=r.length}}await this.encryptionHandler2.computeSessionKey(i)}async waitForStatusToSend(t,i){await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatusToSend(this.protocol,t,i,this.retries,this.sleepBetweenRetries)}async waitForStatus(t){await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatus(this.protocol,t,this.retries,this.sleepBetweenRetries)}async clear(){this.sessionId=0,null!=this.encryptionHandler&&this.encryptionHandler.clearKeys(),null!=this.encryptionHandler2&&this.encryptionHandler2.clearKeys()}async checkErrorCode(){if(this.status=await this.protocol.getStatus(),this.status.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCode.None_$LI$())throw new e.WacomGSS.STU.ErrorCodeException}checkSupported(t){if(!this.isSupported(t))throw new e.WacomGSS.STU.NotSupportedException("ReportId="+t)}checkProtocol(){if(null==this.protocol)throw new e.WacomGSS.STU.NotConnectedException}onDecrypt(t){switch(this.encryptionType){case e.WacomGSS.STU.Tablet.EncryptionType.v1:if(null==this.encryptionHandler)throw new e.WacomGSS.RuntimeException("onDecrypt but no encryptionHandler");return this.encryptionHandler.decrypt(t);case e.WacomGSS.STU.Tablet.EncryptionType.v2:if(null==this.encryptionHandler2)throw new e.WacomGSS.RuntimeException("onDecrypt but no encryptionHandler2");return this.encryptionHandler2.decrypt(t);case e.WacomGSS.STU.Tablet.EncryptionType.None:case e.WacomGSS.STU.Tablet.EncryptionType.Unknown:}throw new e.WacomGSS.RuntimeException("Unexpected call to onDecrypt")}getEncryptionHandler(){return this.encryptionHandler}setEncryptionHandler(t){if(this.isConnected())throw new e.WacomGSS.RuntimeException("cannot set EncryptionHandler while connected");this.encryptionHandler=t}getEncryptionHandler2(){return this.encryptionHandler2}setEncryptionHandler2(t){if(this.isConnected())throw new e.WacomGSS.RuntimeException("cannot set EncryptionHandler2 while connected");this.encryptionHandler2=t}tlsConnect(t){return this.disconnect(),new e.WacomGSS.STU.TlsInterface,-1}async usbConnect(t){await this.disconnect();const i=new e.WacomGSS.STU.UsbInterface;await i.connect(t),await this.connect2(i)}getProtocol(){return new e.WacomGSS.STU.Protocol.Protocol(new i.TabletInterface(this))}isEmpty(){return null==this.protocol}isConnected(){return null!=this.protocol&&this.protocol.getInterface().isConnected()}async disconnect(){if(null!=this.protocol&&this.protocol.getInterface().disconnect(),this.clear(),this.protocol=null,this.status=null,this.encryptionType=i.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,this.maxImageBlockSize=0,null!=this.interfaceHandler){this.interfaceHandler.removeInterfaceHandler(this);try{this.interfaceHandler.stop()}catch(e){}this.interfaceHandler=null}null!=this.encryptionHandler&&this.encryptionHandler.reset(),null!=this.encryptionHandler2&&this.encryptionHandler2.reset()}interfaceQueue(){return this.checkProtocol(),this.protocol.getInterface().interfaceQueue()}addTabletHandler(t){this.tabletHandlers.push(t),null==this.interfaceHandler&&null!=this.protocol&&(this.interfaceHandler=new e.WacomGSS.STU.InterfaceHandler(this.protocol.getInterface().interfaceQueue()),this.interfaceHandler.addInterfaceHandler(this))}removeTabletHandler(e){if((t=>{let i=t.indexOf(e);i>=0&&t.splice(i,1)})(this.tabletHandlers),0==this.tabletHandlers.length&&null!=this.interfaceHandler){this.interfaceHandler.removeInterfaceHandler(this);try{this.interfaceHandler.stop()}catch(e){}this.interfaceHandler=null}}queueNotifyAll(){this.checkProtocol(),this.protocol.getInterface().queueNotifyAll()}supportsWrite(){return this.checkProtocol(),this.protocol.getInterface().supportsWrite()}getReportCountLengths(){return this.checkProtocol(),this.reportCountLengths=this.protocol.getInterface().getReportCountLengths(),this.reportCountLengths}getProductId(){return this.checkProtocol(),this.protocol.getInterface().getProductId()}isSupported(e){return this.checkProtocol(),null==this.reportCountLengths||null!=this.reportCountLengths[i.I(e)]}async getStatus(){return this.checkProtocol(),this.status=await this.protocol.getStatus(),this.status}async reset(){this.clear(),this.checkProtocol(),await this.protocol.setReset(e.WacomGSS.STU.Protocol.ResetFlag.Software),await this.checkErrorCode()}async getInformation(){this.checkProtocol();const e=await this.protocol.getInformation();return await this.checkErrorCode(),e}async getHidInformation(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$());const t=await this.protocol.getHidInformation();return await this.checkErrorCode(),t}async getDefaultMode(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$());const t=await this.protocol.getDefaultMode();return await this.checkErrorCode(),t}async setDefaultMode(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setDefaultMode(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getCapability(){this.checkProtocol();const e=await this.protocol.getCapability();return await this.checkErrorCode(),e}async getUid(){this.checkProtocol();const e=await this.protocol.getUid();return await this.checkErrorCode(),e}async setUid(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setUid(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getUid2(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$());const t=await this.protocol.getUid2();return await this.checkErrorCode(),t}async getEserial(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$());const t=await this.protocol.getEserial();return await this.checkErrorCode(),t}async setClearScreenArea(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$()),await this.protocol.setClearScreenArea(t),await await this.checkErrorCode()}async writeImageArea(t,n,o){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$());const r=new i.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(this.protocol,t,n,this.maxImageBlockSize,o,this.retries,this.sleepBetweenRetries),await this.checkErrorCode(),await r.restore(),await r.close()}async getHostPublicKey(){this.checkProtocol();const e=await this.protocol.getHostPublicKey();return await this.checkErrorCode(),e}async getDevicePublicKey(){this.checkProtocol();const e=await this.protocol.getDevicePublicKey();return await this.checkErrorCode(),e}async restartCapture(t){switch(this.encryptionType){case e.WacomGSS.STU.Tablet.EncryptionType.v1:await this.reinitializeEncryption1();break;case e.WacomGSS.STU.Tablet.EncryptionType.v2:await this.reinitializeEncryption2();break;case e.WacomGSS.STU.Tablet.EncryptionType.Unknown:case e.WacomGSS.STU.Tablet.EncryptionType.None:default:throw new e.WacomGSS.RuntimeException("unexpected restartCapture with invalid encryptionType setting")}e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(this.status.getStatusCode(),e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set)||await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setStartCapture(t),await this.checkErrorCode(),this.sessionId=t,await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatus(this.protocol,e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$(),this.retries,this.sleepBetweenRetries)}async startCapture(t,n){if(this.checkProtocol(),null==this.encryptionHandler&&null==this.encryptionHandler2)throw new e.WacomGSS.RuntimeException("cannot startCapture without an EncryptionHandler or EncryptionHandler2");if(this.encryptionType===i.EncryptionType.None)throw new e.WacomGSS.STU.NotSupportedException("ReportId.StartCapture");if(this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()&&(this.sessionId=0,await this.endCapture()),this.encryptionType==i.EncryptionType.Unknown)if(this.encryptionType=i.EncryptionType.None,null!=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()]){if(null==this.encryptionHandler2)throw new e.WacomGSS.STU.NotSupportedException("Cannot call startCapture on this tablet without an encryptionHandler2 set");this.encryptionType=i.EncryptionType.v2}else{if(!await e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(this.protocol))throw new e.WacomGSS.STU.NotSupportedException("startCapture");if(null==this.encryptionHandler)throw new e.WacomGSS.STU.NotSupportedException("Cannot call startCapture on this tablet without an encryptionHandler set");this.encryptionType=i.EncryptionType.v1}this.encryptionType==i.EncryptionType.v2?await this.initializeEncryption2(n):await this.initializeEncryption1(),e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(this.status.getStatusCode(),e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set)||await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setStartCapture(t),await this.checkErrorCode(),this.sessionId=t,await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$())}async endCapture(){await new Promise((e=>setTimeout(e,100))),this.checkProtocol(),this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()&&(this.sessionId=0,await this.protocol.setEndCapture(),await this.checkErrorCode(),this.status.getStatusCode()!==e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$()&&(this.status=await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())))}async getDHprime(){this.checkProtocol();const e=await this.protocol.getDHprime();return await this.checkErrorCode(),e}async setDHprime(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),null!=this.encryptionHandler&&this.encryptionHandler.reset(),await this.protocol.setDHprime(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getDHbase(){this.checkProtocol();const e=await this.protocol.getDHbase();return await this.checkErrorCode(),e}async setDHbase(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),null!=this.encryptionHandler&&this.encryptionHandler.reset(),await this.protocol.setDHbase(t),await this.checkErrorCode(),await n.restore(),await n.close()}async setClearScreen(){const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setClearScreen(),await this.checkErrorCode(),await t.restore(),await t.close()}async getInkingMode(){this.checkProtocol();const e=await this.protocol.getInkingMode();return await this.checkErrorCode(),e}async setInkingMode(e){this.checkProtocol(),await this.protocol.setInkingMode(e),await this.checkErrorCode()}async getInkThreshold(){this.checkProtocol();const e=await this.protocol.getInkThreshold();return await this.checkErrorCode(),e}async setInkThreshold(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setInkThreshold(t),await this.checkErrorCode(),await n.restore(),await n.close()}async writeImage$com_WacomGSS_STU_Protocol_EncodingMode$byte_A(t,n){const o=new i.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(this.protocol,t,this.maxImageBlockSize,n,this.retries,this.sleepBetweenRetries),await await this.checkErrorCode(),await o.restore(),await o.close()}async writeImage(e,t){if("number"!=typeof e&&null!==e||!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)){if("number"!=typeof e&&null!==e||!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t))throw new Error("invalid overload");return await this.writeImage$int$byte_A(e,t)}return await this.writeImage$com_WacomGSS_STU_Protocol_EncodingMode$byte_A(e,t)}async writeImage$int$byte_A(t,n){const o=new i.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(this.protocol,t,n,this.retries,this.sleepBetweenRetries),await await this.checkErrorCode(),await o.restore(),await o.close()}async endImageData(){this.checkProtocol(),this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()&&(await this.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon),await await this.checkErrorCode())}async getHandwritingThicknessColor(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$());const t=await this.protocol.getHandwritingThicknessColor();return await this.checkErrorCode(),t}async setHandwritingThicknessColor(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),await this.protocol.setHandwritingThicknessColor(t),await this.checkErrorCode()}async getBackgroundColor(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$());const t=await this.protocol.getBackgroundColor();return await this.checkErrorCode(),t}async setBackgroundColor(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),await this.protocol.setBackgroundColor(t),await this.checkErrorCode()}async getHandwritingDisplayArea(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$());const t=await this.protocol.getHandwritingDisplayArea();return await this.checkErrorCode(),t}async setHandwritingDisplayArea(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),await this.protocol.setHandwritingDisplayArea(t),await this.checkErrorCode()}async getBacklightBrightness(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$());const t=await this.protocol.getBacklightBrightness();return await this.checkErrorCode(),t}async setBacklightBrightness(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setBacklightBrightness(t),await this.checkErrorCode()}async getScreenContrast(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$());const t=await this.protocol.getScreenContrast();return await this.checkErrorCode(),t}async setScreenContrast(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setScreenContrast(t),await this.checkErrorCode()}async getPenDataOptionMode(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$());const t=await this.protocol.getPenDataOptionMode();return await this.checkErrorCode(),t}async setPenDataOptionMode(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),await this.protocol.setPenDataOptionMode(t),await this.checkErrorCode()}async getEncryptionStatus(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$());const t=await this.protocol.getEncryptionStatus();return await this.checkErrorCode(),t}async getReportRate(){const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getReportRate();return await this.checkErrorCode(),await t.restore(),n}async setReportRate(t){const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setReportRate(t),await this.checkErrorCode(),await n.restore(),await n.close()}async setRenderingMode(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$());const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRenderingMode(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getRenderingMode(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$());const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getRenderingMode();return await this.checkErrorCode(),await t.restore(),n}async setBootScreen(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$());const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setBootScreen(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getBootScreen(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$());const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getBootScreen();return await this.checkErrorCode(),await t.restore(),n}async setOperationMode(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$());const n=new i.StateHandler;await n.init(this,e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setOperationMode(t),await this.checkErrorCode(),await n.restore(),await n.close()}async getOperationMode(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$());const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getOperationMode();return await this.checkErrorCode(),await t.restore(),n}async writeRomImage(t,n){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$());const o=new i.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const r=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]>3?this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]-3:e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID;await e.WacomGSS.STU.Protocol.ProtocolHelper.writeRomImage(this.protocol,t,r,n,this.retries,this.sleepBetweenRetries),await this.checkErrorCode(),await o.restore(),await o.close()}async setRomImageHash(t,n,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$());const r=new i.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageHash(t,n,o),await await this.checkErrorCode(),await await r.restore(),await r.close()}async getRomImageHash(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$());const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getRomImageHash();return await this.checkErrorCode(),await t.restore(),n}async setRomImageDelete(t,n,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$());const r=new i.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageDelete(t,n,o),await this.checkErrorCode(),await r.restore(),await r.close()}async getCurrentImageArea(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$());const t=new i.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const n=await this.protocol.getCurrentImageArea();return await this.checkErrorCode(),await t.restore(),n}async setRomImageDisplay(t,n,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$());const r=new i.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageDisplay(t,n,o),await this.checkErrorCode(),await r.restore(),await r.close()}onReport(e,t){let i=null;try{i=e.getReport()}catch(e){this.onGetReportException(e)}null!=i&&(i=this.reportHandler.handleReport(i,t,this.isTls),null!=i&&this.onUnhandledReportData(i))}onPenData(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenData(e,t)}catch(e){}}}onPenDataOption(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenDataOption(e,t)}catch(e){}}}onPenDataEncrypted(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenDataEncrypted(e,t)}catch(e){}}}onPenDataEncryptedOption(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenDataEncryptedOption(e,t)}catch(e){}}}onPenDataTimeCountSequence(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenDataTimeCountSequence(e,t)}catch(e){}}}onPenDataTimeCountSequenceEncrypted(e,t){for(let i=0;i<this.tabletHandlers.length;i++){let n=this.tabletHandlers[i];try{n.onPenDataTimeCountSequenceEncrypted(e,t)}catch(e){}}}onEventDataPinPad(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataPinPad(e)}catch(e){}}}onEventDataKeyPad(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataKeyPad(e)}catch(e){}}}onEventDataSignature(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataSignature(e)}catch(e){}}}onEventDataPinPadEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataPinPadEncrypted(e)}catch(e){}}}onEventDataKeyPadEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataKeyPadEncrypted(e)}catch(e){}}}onEventDataSignatureEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEventDataSignatureEncrypted(e)}catch(e){}}}onDevicePublicKey(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onDevicePublicKey(e)}catch(e){}}}onEncryptionStatus(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onEncryptionStatus(e)}catch(e){}}}onGetReportException(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onGetReportException(e)}catch(e){}}}onUnhandledReportData(e){for(let t=0;t<this.tabletHandlers.length;t++){let i=this.tabletHandlers[t];try{i.onUnhandledReportData(e.slice(0))}catch(e){}}}}t.Tablet=i,i.__class="com.WacomGSS.STU.Tablet",i.__interfaces=["com.WacomGSS.STU.IInterfaceHandler","com.WacomGSS.STU.Protocol.IReportHandler"],function(t){!function(e){e[e.Unknown=0]="Unknown",e[e.None=1]="None",e[e.v1=2]="v1",e[e.v2=3]="v2"}(t.EncryptionType||(t.EncryptionType={}));class i{constructor(e){this.__parent=e}isConnected(){return this.__parent.protocol.getInterface().isConnected()}disconnect(){this.__parent.clear(),this.disconnect()}get(e){return this.__parent.protocol.getInterface().get(e)}set(e){this.__parent.clear(),this.__parent.protocol.getInterface().set(e)}supportsWrite(){return this.__parent.protocol.getInterface().supportsWrite()}write(e){this.__parent.clear(),this.__parent.protocol.getInterface().write(e)}interfaceQueue(){return this.__parent.protocol.getInterface().interfaceQueue()}queueNotifyAll(){this.__parent.protocol.getInterface().queueNotifyAll()}getReportCountLengths(){return this.__parent.protocol.getInterface().getReportCountLengths()}async getProductId(){return await this.__parent.protocol.getInterface().getProductId()}}t.TabletInterface=i,i.__class="com.WacomGSS.STU.Tablet.TabletInterface",i.__interfaces=["com.WacomGSS.STU.Interface"];class n{async init(t,i,n){this.__parent=t,this.encryptionEnabled=!1,this.sessionId=0,t.checkProtocol(),null==t.status&&(t.status=await t.protocol.getStatus()),e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(t.status.getStatusCode(),i,n)||(t.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()?(this.encryptionEnabled=!0,this.sessionId=t.sessionId,await t.endCapture()):t.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()?await t.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon):(t.status.getStatusCode(),e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$()),await t.waitForStatusToSend(i,n))}async close(){await this.restore()}async restore(){this.encryptionEnabled&&(this.encryptionEnabled=!1,await this.__parent.startCapture(this.sessionId,!0))}}t.StateHandler=n,n.__class="com.WacomGSS.STU.Tablet.StateHandler",n.__interfaces=["java.lang.AutoCloseable"]}(i=t.Tablet||(t.Tablet={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.TimeoutException=i,i.__class="com.WacomGSS.STU.TimeoutException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){class t{static getTlsDevices(){return null}}e.TlsDevice=t,t.__class="com.WacomGSS.STU.TlsDevice"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{connect(e,t){return-1}get(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const i=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacyGetReport(t[0]),n=this.send$byte_A(i);if(e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(n),n.length!==t.length+8)throw new e.WacomGSS.STU.STUException("report size doesn't match expected get size");((e,t,i,n,o)=>{if(e!==i||n>=t+o)for(;--o>=0;)i[n++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)i[n++]=r[e]}})(n,8,t,0,t.length)}return t}set(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const i=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacySetReport(t),n=this.send$byte_A(i);e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(n)}}supportsWrite(){return!0}write(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const i=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacyWrite(t),n=this.send$byte_A(i);e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(n)}}send$byte_A(i){const n=e.WacomGSS.STU.Protocol.TlsProtocol.makeSendHint(i),o=this.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(i,t.InterfaceTLS.InterfaceQueueSelector.tag);return e.WacomGSS.STU.Protocol.ProtocolHelper.waitForReturn(o,2e3,n)}getProductId(){return new e.WacomGSS.STU.Protocol.TlsProtocolOOB(this).getDescriptor().getIdProduct()}getReportCountLengths(){return new e.WacomGSS.STU.Protocol.Protocol(this).getReportSizeCollection()}disconnect(){}isConnected(){return!1}interfaceQueue(){return null}queueNotifyAll(){}getPeerCertificate(){return 0}isConnectedOOB(){return!1}getOOB(e){return null}setOOB(e){}send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(e,t){return null}send(e,t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof t&&null!==t){if((null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)&&void 0===t)return this.send$byte_A(e);throw new Error("invalid overload")}return this.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(e,t)}constructor(){}}t.TlsInterface=i,i.__class="com.WacomGSS.STU.TlsInterface",i.__interfaces=["com.WacomGSS.STU.InterfaceTLS","com.WacomGSS.STU.Interface"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){var t=function(){function e(e,t,i){void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.bcdDevice&&(this.bcdDevice=0),this.idVendor=e,this.idProduct=t,this.bcdDevice=i}return e.VendorId_Wacom_$LI$=function(){return null==e.VendorId_Wacom&&(e.VendorId_Wacom=1386),e.VendorId_Wacom},e.ProductId_500_$LI$=function(){return null==e.ProductId_500&&(e.ProductId_500=161),e.ProductId_500},e.ProductId_300_$LI$=function(){return null==e.ProductId_300&&(e.ProductId_300=162),e.ProductId_300},e.ProductId_520A_$LI$=function(){return null==e.ProductId_520A&&(e.ProductId_520A=163),e.ProductId_520A},e.ProductId_430_$LI$=function(){return null==e.ProductId_430&&(e.ProductId_430=164),e.ProductId_430},e.ProductId_530_$LI$=function(){return null==e.ProductId_530&&(e.ProductId_530=165),e.ProductId_530},e.ProductId_430V_$LI$=function(){return null==e.ProductId_430V&&(e.ProductId_430V=166),e.ProductId_430V},e.ProductId_530V_$LI$=function(){return null==e.ProductId_530V&&(e.ProductId_530V=167),e.ProductId_530V},e.ProductId_540_$LI$=function(){return null==e.ProductId_540&&(e.ProductId_540=168),e.ProductId_540},e.ProductId_min_$LI$=function(){return null==e.ProductId_min&&(e.ProductId_min=161),e.ProductId_min},e.ProductId_max_$LI$=function(){return null==e.ProductId_max&&(e.ProductId_max=175),e.ProductId_max},e.prototype.getIdVendor=function(){return this.idVendor},e.prototype.getIdProduct=function(){return this.idProduct},e.prototype.getBcdDevice=function(){return this.bcdDevice},e.getUsbDevices=function(){const t=[];return navigator.hid.getDevices().then((i=>{i.forEach((i=>{t.push(new e(i.idVendor,i.idProduct,i.bcdDevice))}))})),t},e.requestDevices=async function(){return navigator.hid.requestDevice({filters:[{vendorId:1386,productId:161},{vendorId:1386,productId:162},{vendorId:1386,productId:163},{vendorId:1386,productId:164},{vendorId:1386,productId:165},{vendorId:1386,productId:166},{vendorId:1386,productId:168},{vendorId:1386,productId:169}]})},e}();e.UsbDevice=t,t.__class="com.WacomGSS.STU.UsbDevice"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i{constructor(){this.connected=!1}handleConnectedDevice(e){this.usbDevice.addEventListener("inputreport",this.handleInputReport),this.connected=!0,console.log("Device connected: "+this.usbDevice.productName)}handleDisconnectedDevice(e){this.connected=!1,this.usbDevice.removeEventListener("inputreport",this.handleInputReport),console.log("Device disconnected: "+this.usbDevice.productName)}handleInputReport(e){const t=new Uint8Array(e.data.buffer);let i=Array.from(t);i.unshift(e.reportId),this.interfaceQueue.getReport(i,performance.now())}connect(t,i){return new Promise(((i,n)=>(this.usbDevice=t,this.usbDevice.open().then((()=>{this.usbDevice.interfaceQueue=new e.WacomGSS.STU.InterfaceQueue,this.handleConnectedDevice(),i()}),(e=>{n(e)})))))}async disconnect(){this.usbDevice&&(await this.usbDevice.close(),this.handleDisconnectedDevice())}isConnected(){return this.connected}async get(e){let t,i=await this.usbDevice.receiveFeatureReport(e[0]),n=[];for(t=0;t<i.byteLength;t++)n.push(i.getUint8(t));return n}async set(e){let t=new Uint8Array(e.slice(1));await this.usbDevice.sendFeatureReport(e[0],t.buffer)}supportsWrite(){return!1}async write(e){let t=new Uint8Array(e.length-1);await this.usbDevice.sendFeatureReport(e[0],t.buffer)}interfaceQueue(){return this.usbDevice.interfaceQueue}queueNotifyAll(){}getReportCountLengths(){const e=[];for(let t of this.usbDevice.collections){for(let i of t.inputReports)e[i.reportId]=i.items[0].reportCount;for(let i of t.outputReports)e[i.reportId]=i.items[0].reportCount;for(let i of t.featureReports)e[i.reportId]=i.items[0].reportCount}return e}getProductId(){return this.usbDevice.productId}}t.UsbInterface=i,i.__class="com.WacomGSS.STU.UsbInterface",i.__interfaces=["com.WacomGSS.STU.Interface"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class i extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.WriteNotSupportedException=i,i.__class="com.WacomGSS.STU.WriteNotSupportedException",i.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),window.com=com$1;class MyEncryptionHandler$1{constructor(){this.clearKeys()}reset(){this.clearKeys()}clearKeys(){this.bigint_p=null,this.bigint_g=null,this.sjcl_keyAES=null}requireDH(){return null==this.bigint_p||null==this.bigint_g}setDH(e,t){var i=e,n=t;this.bigint_p=BigInt("0x"+arrayToHex(i)),this.bigint_g=BigInt("0x"+arrayToHex(n))}generateHostPublicKey(){let e=new Uint8Array(64);return window.crypto.getRandomValues(e),this.bigint_a=BigInt("0x"+arrayToHex(e)),hexToArray(padLeft(powMod(this.bigint_g,this.bigint_a,this.bigint_p).toString(16),32,"0"))}computeSharedKey(e){var t=padLeft(powMod(BigInt("0x"+arrayToHex(e)),this.bigint_a,this.bigint_p).toString(16),32,"0");this.sjcl_keyAES=new sjcl.cipher.aes(sjcl.codec.hex.toBits(t))}decrypt(e){var t=arrayToHex(e),i=sjcl.codec.hex.toBits(t),n=this.sjcl_keyAES.decrypt(i);return hexToArray(sjcl.codec.hex.fromBits(n))}}class MyEncryptionHandler2$1{constructor(){this.clearKeys()}reset(){this.clearKeys()}clearKeys(){this.privateKey=null,this.keyAES=null,this.exponent=null,this.modulus=null}getSymmetricKeyType(){return com.WacomGSS.STU.Protocol.SymmetricKeyType.AES256}getAsymmetricPaddingType(){return com.WacomGSS.STU.Protocol.AsymmetricPaddingType.OAEP}getAsymmetricKeyType(){return com.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA2048}async getPublicExponent(){const e=await window.crypto.subtle.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},!0,["encrypt","decrypt"]);this.privateKey=e.privateKey;const t=await window.crypto.subtle.exportKey("jwk",e.publicKey);return this.modulus=base64UrlDecode(t.n),this.exponent=base64UrlDecode(t.e),this.exponent}async generatePublicKey(){return this.modulus}async computeSessionKey(e){const t=await window.crypto.subtle.decrypt({name:"RSA-OAEP"},this.privateKey,Uint8Array.from(e)),i=padLeft(BigInt("0x"+arrayToHex(new Uint8Array(t))).toString(16),64,"0");this.keyAES=new sjcl.cipher.aes(sjcl.codec.hex.toBits(i))}decrypt(e){var t=arrayToHex(e),i=sjcl.codec.hex.toBits(t),n=this.keyAES.decrypt(i);return hexToArray(sjcl.codec.hex.fromBits(n))}}window.MyEncryptionHandler=MyEncryptionHandler$1,window.MyEncryptionHandler2=MyEncryptionHandler2$1;class EdataliaWacom{constructor(e,t,i,n,o,r,a,s,c,l,u){this.init(e,t,i,n,o,r,a,s,c,l,u)}init(e,t,i,n,o,r,a,s,c,l,u){this.wacomConfig=e,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.mouseCanvas=t,this.wacomCanvas=null,this.onAccept=i,this.onCancel=n,this.onReset=o,this.onError=r,this.onDown=a,this.onUp=s,this.onMove=c,this.onUpdatePoints=l,this.onWacomImageLoaded=u,this.wasPenDown=!1}setEdataliaEbp(e){this.edataliaEbp=e}async initWacom(){const e=await this.connectDevice();return e&&this.wacomConfig.enableEbp?await this.drawLoadingScreen():this.edataliaEbp||this.clearWacomScreen(),await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.On),e}async connectDevice(){if(this.wacomTablet)return;const e=await getFirstDeviceConnected();if(e){this.wacomTablet=new com.WacomGSS.STU.Tablet,this.wacomTablet.addTabletHandler(this),this.wacomTablet.setEncryptionHandler(new MyEncryptionHandler),this.wacomTablet.setEncryptionHandler2(new MyEncryptionHandler2);try{this.wacomUIDs={};let t=0,i=0;await this.wacomTablet.usbConnect(e),this.wacomCapability=await this.wacomTablet.getCapability(),this.wacomInformation=await this.wacomTablet.getInformation(),this.wacomInkThreshold=await this.wacomTablet.getInkThreshold();try{i=await this.wacomTablet.getUid2()}catch(e){}try{t=await this.wacomTablet.getUid()}catch(e){}this.wacomUIDs.uid=t,this.wacomUIDs.uid2=i;try{this.isSetPenDataOptionModeSupported()&&await this.wacomTablet.setPenDataOptionMode(com.WacomGSS.STU.Protocol.PenDataOptionMode.TimeCountSequence)}catch(e){console.log(e)}this.wacomCanvasScaleX=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=this.mouseCanvas.height/this.wacomCapability.tabletMaxY,this.wacomEncodingMode=await getWacomEncodingMode(this.wacomTablet,this.wacomCapability,this.wacomConfig.requestedEncodingBits),this.wacomSupportsColor=await isWacomSupportingColor(this.wacomEncodingMode),console.log("wacomSupportsColor")}catch(e){console.log(e)}return this.wacomTablet}this.onError({type:"no-device"})}async drawScreenSaver(){if(console.log("drawScreenSaver"),!this.wacomTablet||!this.wacomCapability||!this.wacomConfig.enableScreenSaver)return;if(await this.drawLoadingScreen(),this.wacomCanvasScreenSaver)return void await this.wacomTablet.writeImage(this.wacomEncodingMode,this.wacomCanvasScreenSaver);const e=document.createElement("canvas");var t=e.getContext("2d");let i;if(e.width=this.wacomCapability.screenWidth,e.height=this.wacomCapability.screenHeight,i=this.wacomSupportsColor?await loadImageFromPath(this.wacomConfig.colorScreenSaver):await loadImageFromPath(this.wacomConfig.blackAndWhiteScreenSaver),!i)return;t.drawImage(i,0,0,e.width,e.height);const n=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvasScreenSaver=n,await this.drawWacomCanvasOnWacom(n)}convertCanvasToWacomCanvasImage(e){return com.WacomGSS.STU.Protocol.ProtocolHelper.resizeAndFlatten(e,0,0,e.width,e.height,this.wacomCapability.screenWidth,this.wacomCapability.screenHeight,this.wacomEncodingMode,com.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Stretch,"white",!1,!1)}async drawWacomCanvasOnWacom(e){this.wacomTablet&&this.wacomCapability&&(await Performance.logWithTimeAndBox("drawWacomCanvasOnWacom(wacom)",(async()=>{await this.wacomTablet.writeImage(this.wacomEncodingMode,e)}),this.wacomConfig.doPerformance),this.onWacomImageLoaded())}async drawInitialEbp(e){if(!this.wacomTablet||!this.wacomCapability||!this.wacomConfig.enableInitialEbp)return;this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomCapability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height;const t=this.convertCanvasToWacomCanvasImage(e);this.drawWacomCanvasOnWacom(t),await this.prepareInitialEbpState()}async prepareInitialEbpState(){const e=new com.WacomGSS.STU.Protocol.Rectangle(0,0,this.wacomCapability.screenWidth-1,this.wacomCapability.screenHeight-1);this.isSetHandwritingDisplayAreaSupported()&&await this.wacomTablet.setHandwritingDisplayArea(e),await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.Off)}async drawSignatureEbp(e,t){const i=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomCapability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height,this.wacomCanvasSignature=i,this.drawWacomCanvasOnWacom(i),await this.prepareSignatureEbpState(t)}async clearSignature(){this.drawWacomCanvasOnWacom(this.wacomCanvasSignature)}async prepareSignatureEbpState(e){if(await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.On),this.wacomConfig.signatureColorHex){let e=await this.wacomTablet.getHandwritingThicknessColor(),t=hexToRgb(this.wacomConfig.signatureColorHex);e.penColor=rgb3216(t.r,t.g,t.b),await this.wacomTablet.setHandwritingThicknessColor(e)}this.lastTypeButtonClicked=null;const t=new com.WacomGSS.STU.Protocol.Rectangle(e.x,e.y,e.x+e.width-1,e.y+e.height-1);this.signatureAreaEbp=e,this.isSetHandwritingDisplayAreaSupported()&&await this.wacomTablet.setHandwritingDisplayArea(t)}async clearWacomScreen(){this.wacomTablet&&await this.wacomTablet.setClearScreen()}async disconnect(){if(this.wacomTablet)try{await this.wacomTablet.disconnect()}catch(e){console.log(e)}}onPenDataOption(e,t){this.onPenData(e,t)}onPenDataTimeCountSequence(e,t){this.onPenData(e,t)}onPenDataTimeCountSequenceEncrypted(e,t){this.onPenDataTimeCountSequence(e,t)}onPenDataEncryptedOption(e,t){this.onPenData(e.penData1,t),this.onPenData(e.penData2,t)}onPenDataEncrypted(e,t){this.onPenData(e.penData1,t),this.onPenData(e.penData2,t)}onPenData(e,t){let i=-1;e.timeCount||(e.timeCount=Math.trunc(t)%1e6),void 0===this.deferredDown&&(this.deferredDown=!1),void 0===this.isDrawing&&(this.isDrawing=!1),void 0===this.buttonClicked&&(this.buttonClicked=!1);const n=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,o=this.mouseCanvas.height/this.wacomCapability.tabletMaxY;let r=tabletToScreen(e,n,o),a=tabletToScreen(e,n,o);this.wacomConfig.enableEbp&&(a=tabletToScreen(e,this.wacomCanvasScaleX,this.wacomCanvasScaleY),r.x=a.x*this.canvasWidthRatio,r.y=a.y*this.canvasHeightRatio,i=this.edataliaEbp.getButtonType(this.initialEbpState,a));const s=e.pressure>this.wacomInkThreshold.onPressureMark,c=e.pressure/this.wacomCapability.tabletMaxPressure,l=!!this.initialEbpState||!!this.signatureAreaEbp&&!this.signatureAreaEbp.Contains(a),u=()=>{this.isDrawing=!0,this.deferredDown=!1,this.lastPoint={x:r.x,y:r.y};var e=new PointerEvent("pointerdown",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,offsetX:r.x,offsetY:r.y,clientX:r.x,clientY:r.y,pressure:c});this.onDown&&this.onDown(e)},p=()=>{var e=new PointerEvent("pointermove",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,offsetX:r.x,offsetY:r.y,clientX:r.x,clientY:r.y,pressure:c});this.onMove&&this.onMove(e),this.lastPoint={x:r.x,y:r.y}},h=e=>{var t=e||this.lastPoint||{x:r.x,y:r.y},i=new PointerEvent("pointerup",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:0,offsetX:t.x,offsetY:t.y,clientX:t.x,clientY:t.y,pressure:0});this.onUp&&this.onUp(i)},g=()=>{this.isDrawing&&h(this.lastPoint),this.isDrawing=!1,this.lastPoint=null};if(s&&l&&-1===i)return this.isDrawing&&g(),this.deferredDown=!0,void(this.wasPenDown=s);if(this.wasPenDown)if(s){if(l)return this.isDrawing&&g(),this.deferredDown=!0,void(this.wasPenDown=s);this.deferredDown&&!this.isDrawing&&-1===i&&u(),-1===i&&p()}else{if(i>-1)return i===this.lastTypeButtonClicked&&(this.buttonClicked=!0,this.onUpButtonPoint=this.wacomConfig.enableEbp?a:r,this.handleEbpTypeButtonClick(i)),this.isDrawing=!1,this.lastPoint=null,this.deferredDown=!1,void(this.wasPenDown=!1);if(l)return g(),this.deferredDown=!1,void(this.wasPenDown=!1);if(this.deferredDown)return this.deferredDown=!1,this.isDrawing=!1,this.lastPoint=null,void(this.wasPenDown=!1);h(null),this.isDrawing=!1,this.lastPoint=null}else if(s){if(this.lastTypeButtonClicked=i,-1===i){if(l)return this.deferredDown=!0,void(this.wasPenDown=s);u()}}else this.onUpdatePoints&&this.onUpdatePoints(e);this.wasPenDown=s}async handleEbpTypeButtonClick(e){switch(this.onUpButtonPoint&&"UTF-8"===document.characterSet&&await this.drawButtonPointer(this.onUpButtonPoint),e){case 0:const t=document.getElementById("websignpdfjs-ok-btn");t?this.handleSimulatedButtonClick(t):this.onAccept();break;case 1:this.onCancel();break;case 2:this.onReset();break;default:console.warn(`Unhandled button type: ${e}`)}}async drawButtonPointer(e){try{if(!this.wacomConfig.enableEbp)return;if(this.onUpButtonPoint=null,!this.isImageDataAreaSupported())return;const t=this.createIconCanvas(),i='900 30pt "Arial"';await this.loadFont(i);const n=t.getContext("2d"),{size:o,metrics:r}=this.getTextMetrics(n,i,"◉");this.resizeCanvas(t,o),this.fillCanvas(n,"white");const{x:a,y:s}=this.calculateIconPosition(e.x,e.y,o);this.drawIconBackground(n,this.wacomCanvas,a,s,o);const c="◉";this.drawIcon(n,c,i,o,r);const l=this.createImageFromCanvas(t,o,o),u=new com.WacomGSS.STU.Protocol.Rectangle(a,s,a+o-1,s+o-1);await this.wacomTablet.writeImageArea(this.wacomEncodingMode,u,l)}catch(e){console.warn("Could not display button pointer, review encoding, should be UTF-8: "+e)}}async drawLoadingScreen(){if(!this.isImageDataAreaSupported()||"UTF-8"!==document.characterSet)return;const e=this.createIconCanvas(),t='900 60pt "Arial"';await this.loadFont(t);const i=e.getContext("2d"),{size:n,metrics:o}=this.getTextMetrics(i,t,"⏳"),r=n+6;this.resizeCanvas(e,r),this.fillCanvas(i,"white");const a=Math.floor(this.wacomCapability.screenWidth/2-n/2),s=Math.floor(this.wacomCapability.screenHeight/2-n/2);this.wacomCanvas&&this.drawIconBackground(i,this.wacomCanvas,a,s,n);this.drawIconCentered(i,"⏳",t,o,e.width,e.height),this.drawCircularOutline(i,e,r,3);const c=this.createImageFromCanvas(e,e.width,e.height),l=new com.WacomGSS.STU.Protocol.Rectangle(a,s,a+e.width-1,s+e.height-1);await this.wacomTablet.writeImageArea(this.wacomEncodingMode,l,c)}isImageDataAreaSupported(){return this.wacomTablet.isSupported(com.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$())}isSetPenDataOptionModeSupported(){return this.wacomTablet.isSupported(50)}isSetHandwritingDisplayAreaSupported(){return this.wacomTablet.isSupported(42)}createIconCanvas(){const e=document.createElement("canvas");return e.width=this.wacomCapability.screenWidth,e.height=this.wacomCapability.screenHeight,e}async loadFont(e){await document.fonts.load(e)}getTextMetrics(e,t,i){e.font=t;const n=e.measureText(i),o=n.width,r=n.fontBoundingBoxAscent+n.fontBoundingBoxDescent;return{size:Math.max(o,r),metrics:n}}resizeCanvas(e,t){e.width=t,e.height=t}fillCanvas(e,t){e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)}calculateIconPosition(e,t,i){return{x:e+i-1>=this.wacomCapability.screenWidth?this.wacomCapability.screenWidth-i-1:Math.floor(e-i/2),y:t+i-1>=this.wacomCapability.screenHeight?this.wacomCapability.screenHeight-i-1:Math.floor(t-i/2)}}drawIconBackground(e,t,i,n,o){e.drawImage(t,i,n,o,o,0,0,o,o)}drawIcon(e,t,i,n,o){e.fillStyle="black",e.font=i;const r=(n+o.fontBoundingBoxAscent)/2-2;e.fillText(t,0,r)}drawIconCentered(e,t,i,n,o,r){e.fillStyle="black",e.font=i;const a=(o-n.width)/2,s=r/2+(n.fontBoundingBoxAscent-n.fontBoundingBoxDescent)/2;e.fillText(t,a,s)}drawCircularOutline(e,t,i,n){e.strokeStyle="black",e.lineWidth=n,e.beginPath(),e.arc(t.width/2,t.height/2,(i-2*n)/2,0,2*Math.PI),e.stroke()}createImageFromCanvas(e,t,i){return com.WacomGSS.STU.Protocol.ProtocolHelper.resizeAndFlatten(e,0,0,t,i,t,i,this.wacomEncodingMode,0,"white",!1,!1)}handleSimulatedButtonClick(e){if("function"==typeof e.onclick)e.onclick();else{const t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(t)}}getWacomInfo(){return this.wacomInformation}getWacomUids(){return this.wacomUIDs}}function getElement(e,t){return null==e?document.getElementById(t):e.template.querySelector(`.${t}`)}function isMobile(){return window.matchMedia("(max-width: 768px)").matches}function ensureMinContainerSize(e,t,i){if(isMobile()||!e)return;const n=e.getBoundingClientRect();n.width<t&&(e.style.width=`${t}px`),n.height<i&&(e.style.height=`${i}px`)}function createWebSignContainers(e="100%",t="100%",i=null,n=null,o=null,r=null){const a=window.matchMedia("(max-width: 768px)").matches,s=getElement(r,"web-sign");if(!s)return void console.error("No se encontró el elemento con id 'web-sign'.");const c=s.parentElement.getBoundingClientRect();function l(e,t){if("string"==typeof e&&e.endsWith("%")){const i=parseFloat(e),n="width"===t?c.width:c.height;return n?n*i/100+"px":e}return e}let u=l(a?"95%":i||"100%","width");const p=parseFloat(u);let h;if(a||p&&!(p<300)||(u="300px"),n){h=l(n,"height");const e=parseFloat(h);a||e&&!(e<150)||(h="150px")}else{const e=parseFloat(u);e>0?h=`${(e/1.6).toFixed(2)}px`:(requestAnimationFrame((()=>{const e=s.parentElement.getBoundingClientRect().width;e>0?s.style.height=`${(e/1.6).toFixed(2)}px`:(s.style.width="300px",s.style.height="150px")})),h="150px")}if(document.getElementById("websign-container"))return void Object.assign(s.style,{width:u,height:"certificate"===o?"auto":h,position:"relative",display:"block"});const g=document.createElement("div");g.id="websign-container",Object.assign(g.style,{width:e,height:t});const m=document.createElement("fieldset");m.id="fieldset-container",Object.assign(m.style,{width:u,height:"auto",padding:"5px",margin:"0",border:"1px solid #ccc",borderRadius:"4px",display:"certificate"===o?"block":"none",justifyContent:"center",alignItems:"center",flexDirection:"column"}),Object.assign(s.style,{width:u,height:"certificate"===o?"auto":h,position:"relative",display:"block"});const d=s.parentNode,S=s.nextSibling;m.appendChild(s),g.appendChild(m),S?d.insertBefore(g,S):d.appendChild(g)}function getOverlayHost(e=null){const t=document.getElementById("fieldset-container");if(t)return t;const i=getElement(e,"web-sign");return i?i.parentElement:null}function ensureOverlayStyles(){if(document.getElementById("websign-overlay-styles"))return;const e=document.createElement("style");e.id="websign-overlay-styles",e.textContent='\n @keyframes websign-spin { to { transform: rotate(360deg); } }\n @keyframes websign-fade-in { from { opacity: 0; } to { opacity: 1; } }\n\n .ws-overlay {\n position: absolute; inset: 0;\n display: flex; align-items: center; justify-content: center;\n background: rgba(16, 24, 40, 0.72); /* más opaco, profesional */\n backdrop-filter: blur(2px);\n z-index: 9999; pointer-events: auto;\n animation: websign-fade-in 160ms ease-out both;\n }\n .ws-card {\n display: flex; flex-direction: column; align-items: center; gap: 12px;\n padding: 18px 22px;\n background: rgba(255,255,255,0.94);\n border-radius: 12px;\n box-shadow: 0 8px 28px rgba(16,24,40,0.3);\n max-width: min(90vw, 480px);\n text-align: center;\n }\n .ws-spinner {\n width: 32px; height: 32px; border-radius: 50%;\n border: 3px solid rgba(16,24,40,0.18);\n border-top-color: rgba(16,24,40,0.75);\n animation: websign-spin 800ms linear infinite;\n }\n .ws-title {\n font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;\n font-size: 16px; font-weight: 700; color: #0F172A; /* slate-900 */\n margin: 0;\n }\n .ws-subtitle {\n font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;\n font-size: 13px; font-weight: 500; color: #334155; /* slate-700 */\n margin: 0;\n }\n ',document.head.appendChild(e)}function showWaitingOverlay(e="Esperando al firmante",t="Mantén esta ventana abierta mientras comienza la firma...",i=null,n=null,o=null,r="Empezar firma",a="Cancelar"){ensureOverlayStyles();const s=getOverlayHost(i);if(!s)return void console.error("No se encontró contenedor para el overlay (fieldset-container).");const c=getComputedStyle(s).position;"static"!==c&&c||(s.style.position="relative");let l=s.querySelector('[data-websign-overlay="true"]');if(l){const i=l.querySelector(".ws-title"),n=l.querySelector(".ws-subtitle");return i&&(i.textContent=e),n&&(n.textContent=t||""),void(l.style.display="flex")}l=document.createElement("div"),l.setAttribute("data-websign-overlay","true"),l.className="ws-overlay",l.setAttribute("role","status"),l.setAttribute("aria-live","polite");const u=document.createElement("div");u.className="ws-card";const p=document.createElement("div");p.className="ws-spinner",p.setAttribute("aria-hidden","true");const h=document.createElement("h2");h.className="ws-title",h.textContent=e;const g=document.createElement("p");if(g.className="ws-subtitle",g.textContent=t||"",u.appendChild(p),u.appendChild(h),t&&u.appendChild(g),o){const e=document.createElement("button");e.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-2px;margin-right:6px"><path d="M17 3a2.85 2.85 0 0 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/><path d="m15 5 4 4"/></svg>${r}`,e.className="ws-start-capture-btn",Object.assign(e.style,{marginTop:"18px",padding:"8px 22px",background:"#0057a2",color:"#fff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"bold",cursor:"pointer",display:"inline-flex",alignItems:"center"}),e.addEventListener("click",(async()=>{e.disabled=!0,e.style.opacity="0.6";try{await o()}catch(t){e.disabled=!1,e.style.opacity="1",console.warn("Error al iniciar captura:",t)}})),u.appendChild(e)}if(n){const e=document.createElement("button");e.textContent=a,e.className="ws-cancel-btn",Object.assign(e.style,{marginTop:"8px",padding:"6px 18px",background:"transparent",color:"#666",border:"none",borderRadius:"4px",fontSize:"13px",cursor:"pointer",textDecoration:"underline"}),e.addEventListener("click",(()=>{destroyWaitingOverlay(i),n()})),u.appendChild(e)}l.appendChild(u),s.appendChild(l)}function destroyWaitingOverlay(e=null){const t=getOverlayHost(e);if(!t)return;const i=t.querySelector('[data-websign-overlay="true"]');i&&i.remove()}class EdataliaWacomBridge{constructor(e,t,i,n,o,r,a,s,c,l,u,p=null,h){this.eventHandlers={penData:null,connected:null,deviceConnected:null,error:null,captureStopped:null,restartButtonClicked:null,captureStarted:null},this.init(e,t,i,n,o,r,a,s,c,l,u,p,h)}init(e,t,i,n,o,r,a,s,c,l,u,p,h){this.wacomConfig=e,this.webSignBridge=h,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.wacomUIDs={},this.mouseCanvas=t,this.wacomCanvas=null,this.onAccept=i,this.onCancel=n,this.onReset=o,this.onError=r,this.onDown=a,this.onUp=s,this.onMove=c,this.onUpdatePoints=l,this.onWacomImageLoaded=u,this.wasPenDown=!1,this.penDataCount=0,this.isDrawing=!1,this.lastPoint=null,this.lastTypeButtonClicked=-1,this.signatureAreaEbp=null,this.pdf=p,this.pdfAlreadyOpen=!1,this.alreadyRestarted=!1,this.cleanup(),this.eventHandlers.penData=e=>{this.displayPenDataOnCanvas(e)},this.eventHandlers.connected=()=>{console.log("Bridge conectado")},this.eventHandlers.deviceConnected=e=>{console.log("Dispositivo conectado:",e),this.signotec="signotec"===e.deviceType,this.dtu="dtu"===e.deviceType},this.eventHandlers.error=e=>{console.error("Error del bridge:",e)},this.eventHandlers.captureStopped=e=>{"confirmed"===e.reason?this.onAccept():"cancelled"===e.reason&&this.onCancel()},this.eventHandlers.restartButtonClicked=e=>{this.onReset()},this.eventHandlers.captureStarted=()=>{destroyWaitingOverlay()},this.webSignBridge.on("penData",this.eventHandlers.penData),this.webSignBridge.on("connected",this.eventHandlers.connected),this.webSignBridge.on("deviceConnected",this.eventHandlers.deviceConnected),this.webSignBridge.on("captureStarted",this.eventHandlers.captureStarted),this.webSignBridge.on("error",this.eventHandlers.error),this.webSignBridge.on("captureStopped",this.eventHandlers.captureStopped),this.webSignBridge.on("restartButtonClicked",this.eventHandlers.restartButtonClicked)}setEdataliaEbp(e){this.edataliaEbp=e}sleep(e){return new Promise((t=>setTimeout(t,e)))}async initWacomBridge(){if(!this.webSignBridge.isConnected())try{await this.webSignBridge.connect(),await this.drawLoadingScreen()}catch(e){return console.error("No se pudo conectar al bridge:",e),null}try{await this.webSignBridge.disconnectDevice()}catch(e){}const e=await this.webSignBridge.getAvailableDevices();if(!(e&&e.length>0))return console.warn("No se encontraron dispositivos"),this.onError({type:"no-device"}),null;await this.webSignBridge.connectToDevice(e[0].id,e[0].type),this.wacomInformation=this.webSignBridge.getDeviceInfo();const t=await this.webSignBridge.getSerialNumber();if(this.wacomUIDs.uid=t.serialNumber,this.wacomUIDs.uid2=0,this.wacomInformation&&this.wacomInformation.capability?(this.wacomCapability=this.wacomInformation.capability,this.wacomSupportsColor=this.wacomInformation.capability.supportsColor||!1,this.wacomCanvasScaleX=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=this.mouseCanvas.height/this.wacomCapability.tabletMaxY,console.log("wacomSupportsColor:",this.wacomSupportsColor)):(console.warn("No se pudo obtener información del dispositivo"),this.wacomSupportsColor=!1),e&&this.wacomConfig.enableEbp?await this.drawLoadingScreen():this.edataliaEbp||await this.webSignBridge.clearDisplay(),this.signotec||this.dtu||await this.webSignBridge.setInkingMode(!0),(this.signotec&&!this.wacomConfig.enableEbp||this.dtu&&!this.wacomConfig.enableEbp)&&await this.webSignBridge.loadPDF(this.pdf),this.wacomConfig.signatureColorHex&&!this.signotec&&!this.dtu)try{await this.webSignBridge.setHandwritingThicknessColor(2,this.wacomConfig.signatureColorHex)}catch(e){console.warn("No se pudo configurar el color de la firma:",e)}return e}async writeImage(e){this.signotec||this.dtu||await this.webSignBridge.writeImage(e)}async drawLoadingScreen(){if(this.signotec||this.dtu)return;if(!this.wacomInformation||!this.wacomInformation.capability)return;const e=document.createElement("canvas");e.width=this.wacomInformation.capability.screenWidth,e.height=this.wacomInformation.capability.screenHeight;const t='900 60pt "Arial"';await this.loadFont(t);const i=e.getContext("2d"),{size:n,metrics:o}=this.getTextMetrics(i,t,"⏳"),r=n+6;this.resizeCanvas(e,r),this.fillCanvas(i,"white");const a=128,s=Math.floor((this.wacomInformation.capability.screenWidth-a)/2),c=Math.floor((this.wacomInformation.capability.screenHeight-a)/2);this.resizeCanvas(e,a),this.fillCanvas(i,"white");this.drawIconCentered(i,"⏳",t,o,e.width,e.height),this.drawCircularOutline(i,e,a,3);const l=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImageArea(l,s,c,a,a)}async drawScreenSaver(){if(this.signotec||this.dtu)return;if(console.log("drawScreenSaver - Bridge"),!this.webSignBridge.isConnected()||!this.wacomConfig.enableScreenSaver)return;if(await this.drawLoadingScreen(),!this.wacomInformation||!this.wacomInformation.capability)return;if(this.wacomCanvasScreenSaver){const e=this.wacomCanvasScreenSaver.toDataURL("image/png").split(",")[1];return void await this.webSignBridge.writeImageROM(e)}const e=document.createElement("canvas"),t=e.getContext("2d");let i;if(e.width=this.wacomInformation.capability.screenWidth,e.height=this.wacomInformation.capability.screenHeight,i=this.wacomInformation.capability.supportsColor?await loadImageFromPath(this.wacomConfig.colorScreenSaver):await loadImageFromPath(this.wacomConfig.blackAndWhiteScreenSaver),!i)return void console.warn("No se pudo cargar la imagen del screensaver");t.drawImage(i,0,0,e.width,e.height),this.wacomCanvasScreenSaver=e;const n=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImageROM(n),this.onWacomImageLoaded()}convertCanvasToWacomCanvasImage(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");return i.globalCompositeOperation="source-over",i.fillStyle="white",i.fillRect(0,0,t.width,t.height),i.drawImage(e,0,0,e.width,e.height),t}async drawSignatureEbp(e,t,i){const n=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvas=e,this.ebpCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomInformation.capability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomInformation.capability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height,this.wacomCanvasSignature=n;const o=e.toDataURL("image/png").split(",")[1];if(await this.writeImage(o),this.onWacomImageLoaded(),(this.signotec||this.dtu)&&!this.pdfAlreadyOpen){this.pdfAlreadyOpen=!0;const e={pdfData:this.pdf,widgetX:100,widgetY:200,widgetWidth:300,widgetHeight:150,widgetPage:1};e.ebpImageData=o,e.ebpSignatureArea={x:t.x,y:t.y,width:t.width,height:t.height},i&&i.length>0&&(e.ebpButtons=i.map((e=>({bounds:{x:e.Bounds.x,y:e.Bounds.y,width:e.Bounds.width,height:e.Bounds.height},type:e.Type})))),this.wacomConfig.varEbp&&(e.ebpVariables=this.wacomConfig.varEbp),await this.webSignBridge.sendCustomCommand("setDisplayPDF",e)}await this.prepareSignatureEbpState(t)}async prepareSignatureEbpState(e){this.signatureAreaEbp=e,this.signotec||this.dtu||await this.webSignBridge.setInkingMode(!0),this.lastTypeButtonClicked=null,!e||this.signotec||this.dtu||await this.webSignBridge.setHandwritingDisplayArea(e.x,e.y,e.width,e.height),console.log("Área de escritura configurada en dispositivo Wacom o Signotec")}displayPenDataOnCanvas(e){if(!e||"number"!=typeof e.x||"number"!=typeof e.y)return;void 0===this.deferredDown&&(this.deferredDown=!1),void 0===this.isDrawing&&(this.isDrawing=!1),void 0===this.buttonClicked&&(this.buttonClicked=!1),this.penDataCount=(this.penDataCount||0)+1;let t,i,n=-1;e.timeCount||(e.timeCount=Math.trunc(Date.now())%1e6);let o,r,a=this.wacomInformation&&this.wacomInformation.capability||{};if(this.signotec){if(this.wacomConfig.enableEbp&&this.signatureAreaEbp){const n=400,o=300,r=8244,a=3e4,s=6e3,c=22050,l=this.mouseCanvas.getBoundingClientRect(),u=l.width||this.mouseCanvas.width,p=l.height||this.mouseCanvas.height,h=r,g=r+(a-r)*(u/n),m=s,d=s+(c-s)*(p/o)+400;t=(e.x-h)/(g-h)*u,i=(e.y-m)/(d-m)*p}else t=e.x/43835*this.mouseCanvas.width,i=e.y/27300*this.mouseCanvas.height;o={x:t,y:i},r={x:t,y:i}}else if(this.dtu){const t=this.signatureAreaEbp;if(t&&this.wacomCanvasScaleX&&this.wacomCanvasScaleY)r={x:t.x+e.x,y:t.y+e.y},o=tabletToScreen(r,this.wacomCanvasScaleX,this.wacomCanvasScaleY);else{const t=this.wacomInformation&&this.wacomInformation.capability||{},i=this.mouseCanvas.width/(t.tabletMaxX||65535),n=this.mouseCanvas.height/(t.tabletMaxY||65535);o=tabletToScreen(e,i,n),r={x:o.x/(this.wacomCanvasScaleX||1),y:o.y/(this.wacomCanvasScaleY||1)}}}else if(a&&"number"==typeof a.tabletMaxX&&"number"==typeof a.tabletMaxY){const t=this.mouseCanvas.width/(a.tabletMaxX||65535),i=this.mouseCanvas.height/(a.tabletMaxY||65535);o=tabletToScreen(e,t,i),r=tabletToScreen(e,t,i)}else t=e.x/65535*this.mouseCanvas.width,i=e.y/65535*this.mouseCanvas.height;this.wacomConfig.enableEbp&&this.wacomCanvasScaleX&&this.wacomCanvasScaleY&&(this.signotec?r={x:o.x/this.wacomCanvasScaleX,y:o.y/this.wacomCanvasScaleY}:this.dtu||(r=tabletToScreen(e,this.wacomCanvasScaleX,this.wacomCanvasScaleY)),o.x=r.x*this.canvasWidthRatio,o.y=r.y*this.canvasHeightRatio,n=this.edataliaEbp&&"function"==typeof this.edataliaEbp.getButtonType?this.edataliaEbp.getButtonType(this.initialEbpState,r):-1);const s=e.pressure>50;let c=e.pressure/(a.tabletMaxPressure||1023);this.dtu&&(c=Math.min(e.pressure/(a.tabletMaxPressure||1023)/100));const l=!!this.initialEbpState||!!this.signatureAreaEbp&&!this.signatureAreaEbp.Contains(r),u=()=>{this.isDrawing=!0,this.deferredDown=!1,this.lastPoint={x:o.x,y:o.y};const e=this.mouseCanvas.getBoundingClientRect(),t=e.left+o.x,i=e.top+o.y,n=new PointerEvent("pointerdown",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,clientX:t,clientY:i,pressure:c});n._customOffsetX=o.x,n._customOffsetY=o.y,this.onDown?.(n)},p=()=>{const e=this.mouseCanvas.getBoundingClientRect(),t=e.left+o.x,i=e.top+o.y,n=new PointerEvent("pointermove",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,clientX:t,clientY:i,pressure:c});n._customOffsetX=o.x,n._customOffsetY=o.y,this.onMove?.(n),this.lastPoint={x:o.x,y:o.y}},h=e=>{const t=e||this.lastPoint||{x:o.x,y:o.y},i=this.mouseCanvas.getBoundingClientRect(),n=i.left+t.x,r=i.top+t.y,a=new PointerEvent("pointerup",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:0,clientX:n,clientY:r,pressure:0});a._customOffsetX=t.x,a._customOffsetY=t.y,this.onUp?.(a)},g=()=>{this.isDrawing&&h(this.lastPoint),this.isDrawing=!1,this.lastPoint=null};if(s&&l&&-1===n)return this.isDrawing&&g(),this.deferredDown=!0,void(this.wasPenDown=s);if(this.wasPenDown)if(s){if(l)return this.isDrawing&&g(),this.deferredDown=!0,void(this.wasPenDown=!0);this.deferredDown&&!this.isDrawing&&-1===n&&u(),-1===n&&p()}else{if(n>-1)return n===this.lastTypeButtonClicked&&(this.buttonClicked=!0,this.onUpButtonPoint=this.wacomConfig?.enableEbp?r:o,this.handleEbpTypeButtonClick(n)),this.wasPenDown=!1,void(this.deferredDown=!1);if(l)return g(),this.deferredDown=!1,void(this.wasPenDown=!1);if(this.deferredDown)return this.deferredDown=!1,this.wasPenDown=!1,this.isDrawing=!1,void(this.lastPoint=null);g()}else if(s){if(this.lastTypeButtonClicked=n,-1===n){if(l)return this.deferredDown=!0,void(this.wasPenDown=!0);u()}}else this.onUpdatePoints?.(e);this.wasPenDown=s}async handleEbpTypeButtonClick(e){switch(this.onUpButtonPoint&&"UTF-8"===document.characterSet&&await this.drawButtonPointer(this.onUpButtonPoint),e){case 0:const t=document.getElementById("websignpdfjs-ok-btn");t?this.handleSimulatedButtonClick(t):this.onAccept();break;case 1:this.onCancel();break;case 2:this.onReset();break;default:console.warn(`Unhandled button type: ${e}`)}}async drawButtonPointer(e){try{if(!this.wacomConfig.enableEbp)return;this.onUpButtonPoint=null,console.log(`Botón presionado en posición: x=${e.x}, y=${e.y}`)}catch(e){console.warn("Could not display button pointer: "+e)}}async loadFont(e){if(document.fonts&&document.fonts.load)try{await document.fonts.load(e)}catch(e){console.warn("Could not load font:",e)}}getTextMetrics(e,t,i){e.font=t;const n=e.measureText(i);return{size:Math.max(n.width,n.fontBoundingBoxAscent+n.fontBoundingBoxDescent),metrics:n}}resizeCanvas(e,t){e.width=t,e.height=t}fillCanvas(e,t){e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)}drawIconBackground(e,t,i,n,o){e.drawImage(t,i,n,o,o,0,0,o,o)}drawIconCentered(e,t,i,n,o,r){e.fillStyle="black",e.font=i;const a=(o-n.width)/2,s=r/2+(n.fontBoundingBoxAscent-n.fontBoundingBoxDescent)/2;e.fillText(t,a,s)}drawCircularOutline(e,t,i,n){e.strokeStyle="black",e.lineWidth=n,e.beginPath(),e.arc(t.width/2,t.height/2,(i-n)/2,0,2*Math.PI),e.stroke()}handleSimulatedButtonClick(e){if("function"==typeof e.onclick)e.onclick();else{const t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(t)}}async drawInitialEbp(e){try{if(!this.wacomConfig.enableInitialEbp)return;if(!this.wacomInformation||!this.wacomInformation.capability)return;this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomInformation.capability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomInformation.capability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height;const t=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImage(t),await this.prepareInitialEbpState(),this.initialEbpState=!0,console.log("EBP inicial dibujado en el dispositivo")}catch(e){throw console.error("Error al dibujar EBP inicial en el dispositivo:",e),e}}async prepareInitialEbpState(){this.wacomInformation&&this.wacomInformation.capability&&(await this.webSignBridge.setHandwritingDisplayArea(0,0,this.wacomInformation.capability.screenWidth,this.wacomInformation.capability.screenHeight),await this.webSignBridge.setInkingMode(!1),console.log("Estado inicial EBP configurado: inkingMode OFF"))}async clearDeviceDisplay(){await this.webSignBridge.clearDeviceDisplay()}async restartSignature(){try{if(await this.drawLoadingScreen(),this.isDrawing=!1,this.lastPoint=null,this.wasPenDown=!1,this.penDataCount=0,this.ebpCanvas&&this.wacomConfig.enableEbp&&!this.signotec&&!this.dtu){const e=this.ebpCanvas.toDataURL("image/png").split(",")[1];await this.writeImage(e),console.log("Imagen EBP reescrita después del restart")}else this.webSignBridge.isWacomDevice()?await this.webSignBridge.clearDeviceDisplay():await this.webSignBridge.restartSignature();console.log("Firma reiniciada exitosamente en el dispositivo")}catch(e){throw console.error("Error al reiniciar firma en el dispositivo:",e),e}}async disconnect(){this.webSignBridge.isDeviceConnected()&&await this.webSignBridge.disconnectDevice()}cleanup(){this.eventHandlers.penData&&this.webSignBridge.off("penData",this.eventHandlers.penData),this.eventHandlers.connected&&this.webSignBridge.off("connected",this.eventHandlers.connected),this.eventHandlers.deviceConnected&&this.webSignBridge.off("deviceConnected",this.eventHandlers.deviceConnected),this.eventHandlers.error&&this.webSignBridge.off("error",this.eventHandlers.error),this.webSignBridge.off("captureStopped",this.eventHandlers.captureStopped),this.webSignBridge.off("restartButtonClicked",this.eventHandlers.restartButtonClicked),this.webSignBridge.off("captureStarted",this.eventHandlers.captureStarted)}destroy(){this.cleanup(),this.webSignBridge=null,this.wacomConfig=null,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.mouseCanvas=null,this.wacomCanvas=null,this.ebpCanvas=null,this.signatureAreaEbp=null,this.onAccept=null,this.onCancel=null,this.onReset=null,this.onError=null,this.onDown=null,this.onUp=null,this.onMove=null,this.onUpdatePoints=null,this.onWacomImageLoaded=null,this.eventHandlers={penData:null,connected:null,deviceConnected:null,error:null}}getWacomInfo(){return this.wacomInformation.information}getWacomUids(){return this.wacomUIDs}}function checkSupportingWindowPointerEvents(){const e=void 0!==typeof window.PointerEvent;console.info("Supports Pointer Events:",e);const t=!!e&&void 0!==window.PointerEvent.prototype.getCoalescedEvents;console.info("Supports Coalesced Events:",t),t||console.warn("This web browser does not support getCoalescedEvents, the captured data won't be precisse enough for signature verification.")}function base64ToUint8Array(e){const t=atob(e),i=t.length,n=new Uint8Array(i);for(let e=0;e<i;e++)n[e]=t.charCodeAt(e);return n}class BinaryReader{constructor(e){this.view=new DataView(e),this.offset=0,this.littleEndian=!0}readByte(){const e=this.view.getUint8(this.offset);return this.offset+=1,e}readBytes(e){const t=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,t}readInt32(){const e=this.view.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}readChars(e){let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(this.readByte());return t}get length(){return this.view.byteLength}get position(){return this.offset}set position(e){this.offset=e}}function convertToCSSColor(e,t="#000000"){if(isNaN(e))return t;const i=e>>16&255,n=e>>8&255;return`#${(255&e).toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}function readBinaryString(e,t){return e.readByte(),e.readChars(t).replace(/\0+$/,"")}class EBPDefinition{constructor(e,t){this.ebpB64=e,this.variables=t}}class EBPScreen{constructor(){this.BMPB64="",this.signatureAreaRect=null,this.buttons=[]}}class EBPScreenButton{constructor(e,t){this.rect=e,this.type=t}}const EBPDrawableElements={TRECTANGLE:"TRECTANGLE",TTEXT:"TTEXT",TBACKGROUND:"TBACKGROUND",TPASTER:"TPASTER"};class EBPConfiguration{constructor(e){this._configuration={};const t=e.split(/\r\n|\r|\n/).filter((e=>""!==e.trim()));let i="";for(let e of t)if(e=e.trim(),e.startsWith("[")&&e.endsWith("]"))i=e.substring(1,e.length-1),this._configuration[i]={};else{const[t,n]=e.split("=",2);""!==i&&(this._configuration[i][t]=n)}}get sections(){return Object.keys(this._configuration).map((e=>new ConfigurationSection(e,this._configuration[e])))}getSection(e){return new ConfigurationSection(e,this._configuration[e])}}class ConfigurationSection{constructor(e,t){this.name=e,this._data=t}get EBPElementType(){const e=this.name.toUpperCase().split(" ")[0];return Object.values(EBPDrawableElements).includes(e),e}getString(e,t=""){return this._data.hasOwnProperty(e)?this._data[e]:t}getInt32(e,t=0){const i=parseInt(this.getString(e,""),10);return isNaN(i)?t:i}}function drawText(e,t,i,n,o,r){let a;e.textAlign=n,a="center"===n?t.left+t.width/2:"right"===n?t.left+t.width:t.left;const s=splitTextByWidth(e,i,t.width);let c=t.top+o;for(let i of s){if(c>t.top+t.height)break;e.fillText(i,a,c),c+=r}}function splitTextByWidth(e,t,i){const n=t.split(" ");let o=[],r="";for(let t of n){let n=r?r+" "+t:t;e.measureText(n).width>i&&r?(o.push(r),r=t):r=n}return r&&o.push(r),o}function drawRectangle(e,t,i,n,o,r,a){if(e.lineWidth=r,e.strokeStyle=a,i){const i=(t.width+t.height)/2*(n/100);roundRect(e,t.left,t.top,t.width,t.height,i,!1),e.fillStyle=o,roundRect(e,t.left+r,t.top+r,t.width-2*r,t.height-2*r,i,!0)}else e.strokeRect(t.left,t.top,t.width,t.height),e.fillStyle=o,e.fillRect(t.left+r,t.top+r,t.width-2*r,t.height-2*r)}function roundRect(e,t,i,n,o,r,a){e.beginPath(),e.moveTo(t+r,i),e.lineTo(t+n-r,i),e.quadraticCurveTo(t+n,i,t+n,i+r),e.lineTo(t+n,i+o-r),e.quadraticCurveTo(t+n,i+o,t+n-r,i+o),e.lineTo(t+r,i+o),e.quadraticCurveTo(t,i+o,t,i+o-r),e.lineTo(t,i+r),e.quadraticCurveTo(t,i,t+r,i),e.closePath(),a?e.fill():e.stroke()}class EBPEngine{async getEBPScreen(e){const t=new EBPScreen,i=this.parseEBPVariables(e.variables),n=base64ToUint8Array(e.ebpB64),o=new BinaryReader(n.buffer);if("Imagen ecoBiometric"!==readBinaryString(o,50))throw new Error("Invalid EBP");o.readBytes(9);const r=o.readInt32(),a=this.getPicturesPositions(o);o.position=r;const s=o.length-o.position,c=o.readChars(s),l=new EBPConfiguration(c).sections,u=l.find((e=>e.EBPElementType===EBPDrawableElements.TBACKGROUND)),p=u.getInt32("Width"),h=u.getInt32("Height"),g=document.createElement("canvas");g.width=p,g.height=h;const m=g.getContext("2d");m.fillStyle="#FFFFFF",m.fillRect(0,0,g.width,g.height);for(let e of l){e.getInt32("ID",-1);const n=1===e.getInt32("FontBold"),r=1===e.getInt32("FontItalic"),s=e.getString("FontName","MS Sans Serif"),c=e.getInt32("FontSize",12)+4,l=n?"bold":"normal",u=r?"italic":"normal";m.font=`${u} ${l} ${c}px ${s}`;const h=convertToCSSColor(e.getInt32("PenColor"));m.strokeStyle=h;const g=e.getInt32("PenWidth");m.lineWidth=g;let d=e.getInt32("TextAlignment"),S="left";1===d?S="right":2===d&&(S="center");const f={left:e.getInt32("AnchorX"),top:e.getInt32("AnchorY"),width:Math.max(e.getInt32("Width")-1,0),height:Math.max(e.getInt32("Height")-1,0)};let _=e.getString("Text","").replace(/\t/g,"\r\n");switch(_=this.replaceVariables(_,i),e.EBPElementType){case EBPDrawableElements.TRECTANGLE:if(drawRectangle(m,f,0!==e.getInt32("Rounded"),e.getInt32("Curvature"),convertToCSSColor(e.getInt32("BrushColor",16777215)),g,convertToCSSColor(e.getInt32("PenColor",0))),_){const t=e.getInt32("FrameMargins",5),i={left:f.left+t,top:f.top+t,width:f.width-t,height:f.height-t};m.fillStyle=convertToCSSColor(e.getInt32("FontColor",0)),drawText(m,i,_,S,c,1.2*c)}break;case EBPDrawableElements.TTEXT:f.width=p-f.left,m.fillStyle=convertToCSSColor(e.getInt32("FontColor",0)),drawText(m,f,_,S,c,1.2*c);break;case EBPDrawableElements.TPASTER:{const t=e.name.toUpperCase();if(a[t]){const e=a[t].position,i=a[t].length,n=o.position;o.position=e;const r=o.readBytes(i),s=new Blob([r],{type:"image/png"}),c=await createImageBitmap(s);m.drawImage(c,f.left,f.top,f.width,f.height),o.position=n}break}}const y=e.getInt32("Boton_Tipo",-1);if(y>=0){const i={x:e.getInt32("Left"),y:e.getInt32("Top"),width:e.getInt32("Width"),height:e.getInt32("Height")};t.buttons.push(new EBPScreenButton(i,y))}1===e.getInt32("Zona_Firma")&&(t.signatureAreaRect={x:e.getInt32("Left"),y:e.getInt32("Top"),width:e.getInt32("Width"),height:e.getInt32("Height")})}const d=g.toDataURL("image/png",1);return t.BMPB64=d.split(",")[1],t}replaceVariables(e,t){for(let i in t){const n=new RegExp(`##${i}##`,"g");e=e.replace(n,t[i])}return e=e.replace(/##[^#]+##/g,"")}parseEBPVariables(e){const t={};if(!e)return t;const i=e.split("|||");for(const e of i){if(!e)continue;const i=e.indexOf("=");let n,o;-1===i?(n=e.trim(),o=""):(n=e.slice(0,i).trim(),o=e.slice(i+1).trim(),""!==o&&"null"!==o.toLowerCase()&&"undefined"!==o.toLowerCase()||(o="")),n&&(t[n]=o)}return t}getPicturesPositions(e){const t=[],i=[],n=[];for(let i=0;i<100;i++)t.push(e.readInt32());for(let t=0;t<100;t++)i.push(e.readInt32());for(let t=0;t<100;t++)n.push(readBinaryString(e,50));const o={};let r=0;for(;r<n.length&&n[r];)o[n[r].toUpperCase()]={position:i[r],length:t[r]},r++;return o}}class EdataliaEbp{constructor(e,t,i,n){this.initialEbpLocalUrl=e,this.signatureEbpLocalUrl=t,this.varInitialEbp=i,this.varSignatureEbp=n,this.initialEbpImageBase64=null,this.signatureEbpImageBase64=null,this.initialEbpButtons=null,this.signatureEbpButtons=null}async getInitialEbp(){let e;if(this.initialEbpImageBase64&&this.initialEbpButtons)console.log("returning initial ebp from caché class");else{e=this.isBase64(this.initialEbpLocalUrl)?this.initialEbpLocalUrl:await getBase64FromUrl(this.initialEbpLocalUrl);const t=this.varInitialEbp,i=new EBPDefinition(e,t),n=new EBPEngine,o=await n.getEBPScreen(i);this.initialEbpButtons=this.getSignatureEbpButtonsFromResponse(o),this.initialEbpImageBase64="data:image/png;base64,"+o.BMPB64}return{initialEbpImageBase64:this.initialEbpImageBase64,initialEbpButtons:this.initialEbpButtons}}async getSignatureEbp(){let e;if(this.signatureEbpImageBase64&&this.signatureEbpButtons)console.log("returning signature ebp from caché class");else{e=this.isBase64(this.signatureEbpLocalUrl)?this.signatureEbpLocalUrl:await getBase64FromUrl(this.signatureEbpLocalUrl);const t=this.varSignatureEbp,i=new EBPDefinition(e,t),n=new EBPEngine,o=await n.getEBPScreen(i);this.signatureEbpButtons=this.getSignatureEbpButtonsFromResponse(o),this.signatureAreaEbp=this.getSignatureAreaEbpFromResponse(o),this.signatureEbpImageBase64="data:image/png;base64,"+o.BMPB64}return{signatureEbpImageBase64:this.signatureEbpImageBase64,signatureEbpButtons:this.signatureEbpButtons,signatureAreaEbp:this.signatureAreaEbp}}hideEbpButtonsForMouseCanvas(e,t,i,n){e.fillStyle="white",t.forEach((t=>{const{x:o,y:r,width:a,height:s}=t.Bounds;e.fillRect(o*i-2,r*n-2,a*i+3,s*n+3)}))}getSignatureAreaEbpFromResponse(e){let t;return t=e.signatureAreaRect.x>-1&&e.signatureAreaRect.y>-1&&e.signatureAreaRect.width>-1&&e.signatureAreaRect.height>-1?new STURectangle(e.signatureAreaRect.x,e.signatureAreaRect.y,e.signatureAreaRect.width,e.signatureAreaRect.height):new STURectangle(0,0,this.wacomCapability.screenWidth,this.wacomCapability.screenHeight),t}getInitialEbpButtonsFromResponse(e){return e.buttons.map((e=>{const t=new ButtonEBP;return t.Bounds=new STURectangle(e.rect.x,e.rect.y,e.rect.width,e.rect.height),t.Type=e.type,t}))}getSignatureEbpButtonsFromResponse(e){return e.buttons.map((e=>{const t=new ButtonEBP;return t.Bounds=new STURectangle(e.rect.x,e.rect.y,e.rect.width,e.rect.height),t.Type=e.type,t}))}getButtonType(e,t){return e?this.getClickedInitialEbpButtonType(t):this.getClickedSignatureEbpButtonType(t)}getClickedInitialEbpButtonType(e){const t=this.initialEbpButtons.find((t=>t.Bounds.Contains(e)));return t?t.Type:-1}getClickedSignatureEbpButtonType(e){const t=this.signatureEbpButtons.find((t=>t.Bounds.Contains(e)));return t?t.Type:-1}isBase64(e){return/^[A-Za-z0-9+/]+={0,2}$/.test(e)&&e.length%4==0}}class LoadingSpinner{constructor(e=null){this.overlay=null,this.context=e}show(){this.overlay||(this.overlay=this.createOverlay());const e=this.getWebSignContainer();e&&!this.overlay.parentNode&&e.appendChild(this.overlay)}hide(){if(this.overlay){const e=this.getWebSignContainer();e&&this.overlay.parentNode&&e.removeChild(this.overlay),this.overlay=null}}createOverlay(){const e=document.createElement("div");e.id="loading-overlay",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.style.zIndex="9998";const t=this.createSpinner();return e.appendChild(t),e}createSpinner(){const e=document.createElement("div");e.id="loading-spinner",e.style.border="4px solid #f3f3f3",e.style.borderTop="4px solid #3498db",e.style.borderRadius="50%",e.style.width="50px",e.style.height="50px",e.style.animation="spin 0.75s linear infinite",e.style.zIndex="9999";const t=document.createElement("style");return t.textContent="\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ",document.head.appendChild(t),e}getWebSignContainer(){const e=getElement(this.context,"web-sign");return e||console.error("WebSign container not found. Ensure the element with ID 'web-sign' exists in the DOM."),e}}function translateTo(e,t){let i,n={nl:{ok:"Tekenen",cancel:"Annuleren",clear:"Herstarten",loading:"Afbeelding wordt geladen, het kan enkele seconden duren...",startCapture:"Handtekening starten",waitingForSigner:"Wachten op ondertekenaar",waitingSubtitle:"Houd dit venster open terwijl de handtekening begint..."},de:{ok:"Unterschreiben",cancel:"Abbrechen",clear:"Zurücksetzen",loading:"Das Laden des Bildes kann einige Sekunden dauern...",startCapture:"Unterschrift starten",waitingForSigner:"Warten auf Unterzeichner",waitingSubtitle:"Halten Sie dieses Fenster geöffnet, während die Unterschrift beginnt..."},en:{ok:"Sign",cancel:"Cancel",clear:"Reset",loading:"Loading image, it may take a few seconds...",startCapture:"Start signature",waitingForSigner:"Waiting for signer",waitingSubtitle:"Keep this window open while the signature begins..."},es:{ok:"Firmar",cancel:"Cancelar",clear:"Reiniciar",loading:"Cargando imagen, puede llevar unos segundos...",startCapture:"Empezar firma",waitingForSigner:"Esperando al firmante",waitingSubtitle:"Mantén esta ventana abierta mientras comienza la firma..."},fr:{ok:"Signer",cancel:"Annuler",clear:"Réinitialiser",loading:"Chargement de l'image, cela peut prendre quelques secondes...",startCapture:"Démarrer la signature",waitingForSigner:"En attente du signataire",waitingSubtitle:"Gardez cette fenêtre ouverte pendant que la signature commence..."},it:{ok:"Firmare",cancel:"Annulla",clear:"Reimposta",loading:"Caricamento immagine, potrebbe richiedere alcuni secondi...",startCapture:"Avvia firma",waitingForSigner:"In attesa del firmatario",waitingSubtitle:"Mantieni questa finestra aperta mentre inizia la firma..."},pt:{ok:"Assinar",cancel:"Cancelar",clear:"Reiniciar",loading:"Carregando a imagem, pode demorar alguns segundos...",startCapture:"Iniciar assinatura",waitingForSigner:"Aguardando assinante",waitingSubtitle:"Mantenha esta janela aberta enquanto a assinatura começa..."}};return i=t||(navigator.language||navigator.userLanguage).split("-")[0],n[i][e]?n[i][e]:n.en[e]}function startSignatureTimeout(e,t){if(!e||e<=0)return null;const i=1e3*e;let n=0;const o=setInterval((async()=>{n+=1e3,n>=i&&(clearInterval(o),await t())}),1e3);return o}function clearSignatureTimeout(e){e&&clearInterval(e)}class Snackbar{constructor(){this.snackbar=null,this.createSnackbar()}createSnackbar(){this.snackbar=document.createElement("div"),this.snackbar.style.position="fixed",this.snackbar.style.bottom="20px",this.snackbar.style.left="50%",this.snackbar.style.transform="translateX(-50%)",this.snackbar.style.minWidth="300px",this.snackbar.style.padding="20px 25px",this.snackbar.style.boxShadow="0 4px 6px rgba(0, 0, 0, 0.1)",this.snackbar.style.fontSize="20px",this.snackbar.style.color="#fff",this.snackbar.style.display="none",this.snackbar.style.zIndex="100000",this.snackbar.style.textAlign="center",document.body.appendChild(this.snackbar)}show(e,t="info",i=3e3){switch(this.snackbar.textContent=e,t){case"info":default:this.snackbar.style.backgroundColor="#0057A2";break;case"error":this.snackbar.style.backgroundColor="#A20006";break;case"success":this.snackbar.style.backgroundColor="#4CAF50"}this.snackbar.style.display="block",this.snackbar.style.opacity="1",this.snackbar.style.transition="opacity 0.3s ease",setTimeout((()=>this.hide()),i)}hide(){this.snackbar.style.opacity="0",this.snackbar.style.transition="opacity 0.3s ease",setTimeout((()=>{this.snackbar.style.display="none"}),300)}}let snackbarInstance=null;function handleDebugMessage(e,t="error",i=!0){if(snackbarInstance||(snackbarInstance=new Snackbar),i){if("error"===t)console.error(`%cERROR: %c${e}`,"background: #fb3132; color: white; font-weight: bold; padding: 2px 4px;","color: red;");else console.log(`%cINFO: %c${e}`,"background:#3199fb; color: white; font-weight: bold; padding: 2px 4px;","color: #3199fb;");snackbarInstance.show(e,t)}}let globalSignatureTimer=null;class EdataliaMouse{constructor(e,t,i,n,o,r,a,s=null,c=null,l=null,u=null){this.config=e,this.onAccept=t,this.onCancel=i,this.onReset=n,this.onError=o,this.onNoDeviceConnected=r,this.onSignatureTimeOut=a,this.context=s,this.pdf=c,this.webSignBridge=l,this.edataliaDtu=u,this.init(),checkSupportingWindowPointerEvents(),this.createMouseCanvas(),"stu"!==this.config.signatureType||this.webSignBridge?!this.webSignBridge||"stu"!==this.config.signatureType&&"dtu"!==this.config.signatureType?this.config.mouseEBP&&this.initCanvasWithEBP():this.initWacomBridge():this.initWacom(),clearSignatureTimeout(globalSignatureTimer),this.startCapturingDate=new Date,this.signatureTimer=startSignatureTimeout(this.config.signatureTimeLimit,(async()=>{await this.cancel(),this.onSignatureTimeOut()})),globalSignatureTimer=this.signatureTimer}async init(){this.startCapturingDate=null,this.capturedPoints=new Array,this.mSignatureWindow=null,this.mFormDiv=null,this.mouseCanvas=null,this.mouseCanvasContext=null,this.traceDataCanvas=null,this.traceDataCanvasContext=null,this.lastPenSignTrace={x:0,y:0},this.loadingSpinner=new LoadingSpinner(this.context),this.canvasSignatureEbp=null,this.signatureEbpButtons=null,this.ebpBtnScaleX=null,this.ebpBtnScaleY=null,this.initialEbpState=!1,this.isWacomPressed=!1,this.edataliaEbp=null,this.initialEbpState=null}onWacomAccept=()=>{this.accept()};onWacomCancel=()=>{this.cancel()};onWacomReset=()=>{this.restartSignature()};onWacomError=e=>{this.manageErrors(e)};onWacomDown=e=>{this.onDown(e)};onWacomUp=e=>{this.onUp(e)};onWacomMove=e=>{this.onMoveInternal(e)};onWacomUpdatePoints=e=>{this.updateCapturedPoints(e)};onWacomImageLoaded=()=>{this.loadingSpinner.hide()};async initWacom(){this.config.wacom.enableEbp&&this.loadingSpinner.show();const e={...this.config.wacom,doPerformance:this.config.doPerformance,signatureColorHex:this.config.signatureColorHex,requestedEncodingBits:this.config.requestedEncodingBits};this.edataliaWacom=new EdataliaWacom(e,this.mouseCanvas,this.onWacomAccept,this.onWacomCancel,this.onWacomReset,this.onWacomError,this.onWacomDown,this.onWacomUp,this.onWacomMove,this.onWacomUpdatePoints,this.onWacomImageLoaded);if(!await this.edataliaWacom.initWacom())return;const t=this.edataliaWacom.wacomSupportsColor;if(console.log("wacom supports color: "+t),this.config.wacom.enableEbp&&this.initEbp(t),this.config.wacom.enableInitialEbp&&this.config.wacom.enableEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbp(e)}else this.config.wacom.enableEbp&&await this.drawSignatureEbp()}async initWacomBridge(){this.config.wacom.enableEbp&&this.loadingSpinner.show();const e={...this.config.wacom,doPerformance:this.config.doPerformance,signatureColorHex:this.config.signatureColorHex,requestedEncodingBits:this.config.requestedEncodingBits};this.edataliaWacomBridge=new EdataliaWacomBridge(e,this.mouseCanvas,this.onWacomAccept,this.onWacomCancel,this.onWacomReset,this.onWacomError,this.onWacomDown,this.onWacomUp,this.onWacomMove,this.onWacomUpdatePoints,this.onWacomImageLoaded,this.pdf,this.webSignBridge);if(!await this.edataliaWacomBridge.initWacomBridge())return;const t=this.edataliaWacomBridge.wacomSupportsColor;if(this.config.wacom.enableEbp&&this.initEbp(t),this.config.wacom.enableInitialEbp&&this.config.wacom.enableEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbpBridge(e)}else this.config.wacom.enableEbp&&this.drawSignatureEbpBridge();if("dtu"===this.config.signatureType&&this.webSignBridge){const e=this.config.language;showWaitingOverlay(translateTo("waitingForSigner",e),translateTo("waitingSubtitle",e),null,(()=>this.cancel()),(async()=>{await this.webSignBridge.startSignatureCapture()}),translateTo("startCapture",e),translateTo("cancel",e))}}async initCanvasWithEBP(){this.loadingSpinner.show(),this.initEbp(!0),await this.drawSignatureEbp(),this.loadingSpinner.hide()}initEbp(e){let t,i;e?(t=this.config.wacom.colorInitialEbp,i=this.config.wacom.colorEbp):(t=this.config.wacom.blackAndWhiteInitialEbp,i=this.config.wacom.blackAndWhiteEbp),this.edataliaEbp=new EdataliaEbp(t,i,this.config.wacom.varInitialEbp,this.config.wacom.varEbp),this.edataliaWacom?this.edataliaWacom.setEdataliaEbp(this.edataliaEbp):this.edataliaWacomBridge&&this.edataliaWacomBridge.setEdataliaEbp(this.edataliaEbp)}drawImgOnCanvas(e){this.mouseCanvasContext.drawImage(e,0,0,this.mouseCanvas.width,this.mouseCanvas.height)}async drawInitialEbp({initialEbpImageBase64:e,initialEbpButtons:t}){const i=await drawImageToCanvas(e);this.mouseCanvasContext.drawImage(i,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/i.width,this.ebpBtnScaleY=this.mouseCanvas.height/i.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,t,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacom.drawInitialEbp(i),this.initialEbpState=!0,this.edataliaWacom.initialEbpState=!0}async drawInitialEbpBridge({initialEbpImageBase64:e,initialEbpButtons:t}){const i=await drawImageToCanvas(e);this.mouseCanvasContext.drawImage(i,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/i.width,this.ebpBtnScaleY=this.mouseCanvas.height/i.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,t,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacomBridge.drawInitialEbp(i),this.initialEbpState=!0,this.edataliaWacomBridge.initialEbpState=!0,this.loadingSpinner.hide()}async drawSignatureEbpBridge(){const{signatureEbpImageBase64:e,signatureEbpButtons:t,signatureAreaEbp:i}=await this.edataliaEbp.getSignatureEbp();this.signatureEbpButtons=t,this.canvasSignatureEbp=await drawImageToCanvas(e),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/this.canvasSignatureEbp.width,this.ebpBtnScaleY=this.mouseCanvas.height/this.canvasSignatureEbp.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),this.config.mouseEBP&&this.setSignatureAreaForMouseEBP(i),this.ebpCropArea={x:i.x*this.ebpBtnScaleX,y:i.y*this.ebpBtnScaleY,width:i.width*this.ebpBtnScaleX,height:i.height*this.ebpBtnScaleY},await this.edataliaWacomBridge.drawSignatureEbp(this.canvasSignatureEbp,i,t),this.edataliaWacomBridge.initialEbpState=!1,this.initialEbpState=!1,this.startCapturingDate=new Date,this.loadingSpinner.hide()}async drawSignatureEbp(){const{signatureEbpImageBase64:e,signatureEbpButtons:t,signatureAreaEbp:i}=await this.edataliaEbp.getSignatureEbp();this.signatureEbpButtons=t,this.canvasSignatureEbp=await drawImageToCanvas(e),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/this.canvasSignatureEbp.width,this.ebpBtnScaleY=this.mouseCanvas.height/this.canvasSignatureEbp.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),this.config.mouseEBP&&this.setSignatureAreaForMouseEBP(i),this.ebpCropArea={x:i.x*this.ebpBtnScaleX,y:i.y*this.ebpBtnScaleY,width:i.width*this.ebpBtnScaleX,height:i.height*this.ebpBtnScaleY},this.edataliaWacom&&(await this.edataliaWacom.drawSignatureEbp(this.canvasSignatureEbp,i),this.edataliaWacom.initialEbpState=!1),this.initialEbpState=!1,this.startCapturingDate=new Date}setSignatureAreaForMouseEBP(e){const t=e.x*this.ebpBtnScaleX,i=e.y*this.ebpBtnScaleY,n=e.width*this.ebpBtnScaleX,o=e.height*this.ebpBtnScaleY;this.mouseCanvasContext.beginPath(),this.mouseCanvasContext.rect(t,i,n,o),this.mouseCanvasContext.clip(),this.scaledSignatureArea={x:t,y:i,width:n,height:o}}isWithinSignatureArea(e,t){return this.scaledSignatureArea&&"stu"!==this.config.signatureType?e>=this.scaledSignatureArea.x&&e<=this.scaledSignatureArea.x+this.scaledSignatureArea.width&&t>=this.scaledSignatureArea.y&&t<=this.scaledSignatureArea.y+this.scaledSignatureArea.height:e>=0&&e<=this.mouseCanvas.width&&t>=0&&t<=this.mouseCanvas.height}createMouseCanvas(){document.getElementById("signature-window")&&document.getElementById("signature-window").remove();const e=getElement(this.context,"web-sign");if(!e)return void handleDebugMessage("Contenedor 'web-sign' no encontrado.","error",this.config.debug);this.mSignatureWindow=document.createElement("div"),this.mSignatureWindow.id="signature-window",this.mSignatureWindow.setAttribute("style","touch-action: none;z-index: 1001;"),this.mSignatureWindow.style.top=0,this.mSignatureWindow.style.left=0,this.mSignatureWindow.style.width="100%",this.mSignatureWindow.style.height="100%",e.appendChild(this.mSignatureWindow),this.mFormDiv=document.createElement("div"),this.mFormDiv.setAttribute("style","touch-action: none;z-index: 1001;"),this.mFormDiv.style.position="absolute",this.mFormDiv.style.width=e.offsetWidth+"px",this.mFormDiv.style.height=e.offsetHeight+"px",this.mSignatureWindow.appendChild(this.mFormDiv);const t=(e,t,n,o="auto")=>{const r=document.createElement("canvas");r.id=e,r.style.position="absolute",r.style.pointerEvents=o,r.width=t,r.height=n,i&&(r.style.width="100%",r.style.height="100%");const a=r.getContext("2d");return a.strokeStyle=this.config.signatureColorHex,a.lineWidth=this.config.signatureThickness,a.clearRect(0,0,t,n),{canvas:r,context:a}},i="dtu"===this.config.signatureType&&!this.webSignBridge,n={width:i?parseInt(this.config.signatureContainerWidth)||400:this.mFormDiv.offsetWidth,height:i?parseInt(this.config.signatureContainerHeight)||250:this.mFormDiv.offsetHeight},o=t("my-canvas",n.width,n.height,"stu"===this.config.signatureType?"none":"auto"),r=t("trace-data-canvas",n.width,n.height);this.mouseCanvas=o.canvas,this.mouseCanvasContext=o.context,this.traceDataCanvas=r.canvas,this.traceDataCanvasContext=r.context,this.mFormDiv.appendChild(this.mouseCanvas),this.config.isFull||this.createSignatureProgress(),this.config.isFull||this.createMouseCanvasButtons(),this.addListenerToCanvasEvents()}addListenerToCanvasEvents(){"dtu"!==this.config.signatureType&&(this.mouseCanvas.addEventListener("pointerdown",this.onDown.bind(this),!1),this.mouseCanvas.addEventListener("pointermove",this.onMove.bind(this),!1),this.mouseCanvas.addEventListener("pointerup",this.onUp.bind(this),!1),this.mouseCanvas.addEventListener("pointerenter",this.onDown.bind(this),!1),this.mouseCanvas.addEventListener("pointerleave",this.onUp.bind(this),!1))}createSignatureProgress(){document.getElementById("websign-signature-progress-container")&&document.getElementById("websign-signature-progress-container").remove();const e=getElement(this.context,"web-sign"),t=document.createElement("div");t.id="websign-signature-progress-container",t.style.margin="3px",t.style.height="10px",t.style.width="99%",t.style.backgroundColor="#cccccc",t.style.borderRadius="3px";const i=document.createElement("div");i.id="websign-signature-progress",i.style.height="100%",i.style.backgroundColor="#d22828",i.style.width="0%",i.style.transition="width 0s ease",t.appendChild(i),e.insertAdjacentElement("beforebegin",t)}createMouseCanvasButtons(){const e=document.getElementById("websign-signature-buttons-wrapper");e&&e.remove();const t=getElement(this.context,"web-sign"),i=document.createElement("div");i.id="websign-signature-buttons-wrapper";const n=i.attachShadow({mode:"open"}),o=document.createElement("div");o.id="websign-signature-buttons",o.style.display="flex",o.style.width="100%",o.style.justifyContent="space-between",o.style.gap="4px",o.style.flexWrap="nowrap";const r=[{text:translateTo("clear",this.config.language),icon:"⟳",action:()=>{this.reset()}},{text:translateTo("cancel",this.config.language),icon:"✖",action:()=>{this.cancel()}},{text:translateTo("ok",this.config.language),icon:"✔",action:()=>{this.accept()}}];this.edataliaWacomBridge&&r.splice(1,0,{text:"Reiniciar",icon:"↻",action:()=>this.restartSignature()});const a=[];r.forEach((e=>{const t=document.createElement("button");t.textContent=e.text,t.dataset.fullText=e.text,t.dataset.icon=e.icon,t.onclick=e.action,Object.assign(t.style,{flex:"1",margin:"4px 0",height:"2rem",color:"white",fontWeight:"bold",borderRadius:"6px",border:"none",background:"#0057a2",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textTransform:"uppercase"}),a.push(t),o.appendChild(t)}));const s=document.createElement("style");s.textContent="\n :host {\n all: initial;\n }\n \n button:focus {\n outline: none;\n }\n ",n.appendChild(s),n.appendChild(o),t.insertAdjacentElement("afterend",i),setTimeout((()=>{const e=o.offsetWidth<270;a.forEach((t=>{t.textContent=e?t.dataset.icon:t.dataset.fullText}))}),0)}drawSinglePointCircle(e){const t=e.p>0?e.p:1,i=this.config.signatureThickness*t/2,n=t=>{t.fillStyle=this.config.signatureColorHex,t.strokeStyle=this.config.signatureColorHex,t.beginPath(),t.arc(e.x,e.y,i,0,2*Math.PI),t.fill(),t.stroke(),t.closePath()};return n(this.mouseCanvasContext),this.traceDataCanvasContext&&n(this.traceDataCanvasContext),i}handleDtuStrokePoint(e){if(!e)return;const t=Date.now(),i=e.p>0?e.p:1,n=parseInt(this.config.signatureContainerWidth)||400,o=parseInt(this.config.signatureContainerHeight)||250,r=this.mouseCanvas.width/n,a=this.mouseCanvas.height/o,s=e.x*r,c=e.y*a;if("down"===e.type&&(this.currentEventType="pen",this.lastDtuPcTrace={x:s,y:c}),"move"===e.type&&this.currentEventType&&this.lastDtuPcTrace&&(this.mouseCanvasContext.beginPath(),this.mouseCanvasContext.moveTo(this.lastDtuPcTrace.x,this.lastDtuPcTrace.y),this.mouseCanvasContext.lineWidth=this.config.signatureThickness*i,this.mouseCanvasContext.lineTo(s,c),this.mouseCanvasContext.stroke(),this.mouseCanvasContext.closePath(),this.lastDtuPcTrace={x:s,y:c}),"up"===e.type){const e=this.capturedPoints[this.capturedPoints.length-1];e&&"down"===e.type&&this.drawSinglePointCircle({x:s,y:c,p:i}),this.currentEventType=null,this.lastDtuPcTrace=null}const l=e.tiltX||0,u=e.tiltY||0,p=l*Math.PI/180,h=u*Math.PI/180,g=Math.PI/2-Math.acos(Math.cos(p)*Math.cos(h)),m=Math.atan2(Math.sin(p),Math.sin(h)),d={type:e.type,x:e.x,y:e.y,p:i,t:t,width:e.w||0,height:e.h||0,azimuth:m,altitude:g,twist:e.twist||0,isDown:"up"!==e.type,stroke_id:this.currentStrokeID};this.updateCapturedPoints(d)}handleSinglePointInOnUp(e){e&&"down"===e.type&&this.drawSinglePointCircle(e)}onUp(e){if(e.pointerType!=this.currentEventType)return;let t=e.pointerType,i=e.pressure;"touch"==e.pointerType&&(t="mouse",i=1);let n=Math.floor(e.timeStamp);new PointerEvent("pointerup",{pointerId:1,pointerType:t,pressure:i,isPrimary:!0}).timestamp=n,this.currentEventType=null;const o=getPenOrientation(e),r=(void 0!==e._customOffsetX?e._customOffsetX:e.offsetX)>0?void 0!==e._customOffsetX?e._customOffsetX:e.offsetX:0,a=(void 0!==e._customOffsetY?e._customOffsetY:e.offsetY)>0?void 0!==e._customOffsetY?e._customOffsetY:e.offsetY:0;if(this.isWithinSignatureArea(r,a)){const t=this.capturedPoints[this.capturedPoints.length-1];this.handleSinglePointInOnUp(t);var s={type:"up",x:r,y:a,p:i,t:n,width:e.width,height:e.height,azimuth:o.azimuth,altitude:o.altitude,twist:o.twist,isDown:!1,stroke_id:this.currentStrokeID};this.updateCapturedPoints(s)}}onDown(e){if(this.currentEventType)return;if(1!=e.buttons)return;this.currentEventType=e.pointerType;let t=e.pointerType,i=e.pressure;"touch"==e.pointerType&&(t="mouse",i=1);let n=Math.floor(e.timeStamp);new PointerEvent("pointerdown",{pointerId:1,pointerType:t,isPrimary:!0,pressure:i}).timestamp=n;const o=getPenOrientation(e),r=(void 0!==e._customOffsetX?e._customOffsetX:e.offsetX)>0?void 0!==e._customOffsetX?e._customOffsetX:e.offsetX:0,a=(void 0!==e._customOffsetY?e._customOffsetY:e.offsetY)>0?void 0!==e._customOffsetY?e._customOffsetY:e.offsetY:0;if(this.isWithinSignatureArea(r,a)){var s={type:"down",x:r,y:a,p:i,t:n,azimuth:o.azimuth,altitude:o.altitude,twist:o.twist,isDown:!0,width:e.width,height:e.height,stroke_id:this.currentStrokeID};this.updateCapturedPoints(s)}}onMove(e){if("function"==typeof e.getCoalescedEvents){const t=e.getCoalescedEvents();for(const e of t)this.onMoveInternal(e)}else this.onMoveInternal(e)}onMoveInternal(e){if(e.pointerType!==this.currentEventType)return;let t="pointermove",i=e.pointerType,n=e.pressure;"touch"===e.pointerType&&(i="mouse",n=1);let o=void 0!==e._customOffsetX?e._customOffsetX:e.offsetX,r=void 0!==e._customOffsetY?e._customOffsetY:e.offsetY;if(this.scaledSignatureArea)if(this.isWithinSignatureArea(o,r))this.isOut&&(t="pointerdown",this.isOut=!1);else{if(this.isOut)return;this.isOut=!0,t="pointerup"}else if(o>this.mouseCanvas.width||o<0||r>this.mouseCanvas.height||r<0){if(this.isOut)return;this.isOut=!0,t="pointerup"}else this.isOut&&(t="pointerdown",this.isOut=!1);let a=Math.floor(e.timeStamp);new PointerEvent(t,{pointerId:1,pointerType:i,isPrimary:!0,pressure:n}).timestamp=a;const s=this.capturedPoints[this.capturedPoints.length-1],c=(e,t,i,n)=>{e.beginPath(),e.moveTo(t.x,t.y),e.lineWidth=this.config.signatureThickness*n,e.lineTo(i.x,i.y),e.fill(),e.stroke(),e.closePath()},l={x:o>0?o:0,y:r>0?r:0};s&&c(this.mouseCanvasContext,s,l,n);const u=getPenOrientation(e);var p={type:"move",x:o>0?o:0,y:r>0?r:0,p:n,t:a,width:e.width,height:e.height,azimuth:u.azimuth,altitude:u.altitude,twist:u.twist,isDown:1==e.buttons&&!this.isOut,stroke_id:this.currentStrokeID};0==this.capturedPoints.length?(this.capturedPoints.push(p),this.setProgress()):this.capturedPoints[this.capturedPoints.length-1].t<a&&this.updateCapturedPoints(p)}updateCapturedPoints(e){if(0===e.pressure)return;Math.abs(this.lastPenSignTrace.x-e.x)+Math.abs(this.lastPenSignTrace.y-e.y)>0&&this.capturedPoints.push(e),this.lastPenSignTrace.x=e.x,this.lastPenSignTrace.y=e.y,this.setProgress()}setProgress(){let e=this.capturedPoints.length,t=document.getElementById("websign-signature-progress");if(t){let i=this.config.minPointsRequiredToSign;"100%"===t.style.width&&0!==e||(t.style.width=e/i*100/3+"%"),t.style.backgroundColor=e<i?"#d22828":e>=i&&e<i+100?"#dcba4f":"#57c56a"}}async reset(){this.edataliaWacom?this.clearSTUSignature():this.edataliaWacomBridge?await this.restartSignature():this.clearMouseSignature(),this.startCapturingDate=new Date,this.capturedPoints=new Array,this.setProgress(),this.onReset()}async restartSignature(){if(this.edataliaWacomBridge)try{if(this.loadingSpinner.show(),await this.edataliaWacomBridge.restartSignature(),this.startCapturingDate=new Date,this.capturedPoints=new Array,this.setProgress(),this.config.wacom.enableEbp&&this.edataliaEbp)if(this.initialEbpState&&this.config.wacom.enableInitialEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbpBridge(e)}else await this.drawSignatureEbpBridge();else this.clearMouseSignature();console.log("Firma reiniciada exitosamente desde el bridge")}catch(e){console.error("Error al reiniciar firma desde el bridge:",e),this.onError("Error al reiniciar la firma")}finally{this.loadingSpinner.hide()}else await this.reset()}async clearSTUSignature(){this.config.wacom.enableEbp?(await this.edataliaWacom.drawLoadingScreen(),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacom.clearSignature()):(this.edataliaWacom.clearWacomScreen(),this.clearMouseSignature())}clearMouseSignature(){this.mouseCanvasContext.clearRect(0,0,this.mouseCanvas.width,this.mouseCanvas.height)}async cancel(){this.loadingSpinner.show(),this.edataliaWacom&&(await this.edataliaWacom.clearWacomScreen(),await this.edataliaWacom.drawScreenSaver(),await this.edataliaWacom.disconnect()),this.edataliaWacomBridge&&(await this.edataliaWacomBridge.drawScreenSaver(),await this.edataliaWacomBridge.disconnect(),this.edataliaWacomBridge.destroy()),this.edataliaWacom=null,this.edataliaWacomBridge=null,this.stop(),this.hideFieldsetContainer(),this.loadingSpinner.hide(),this.init(),this.onCancel()}stop(){clearSignatureTimeout(this.signatureTimer),globalSignatureTimer===this.signatureTimer&&(globalSignatureTimer=null),this.signatureTimer=null;const e=document.getElementById("signature-window");e&&e.remove();const t=document.getElementById("websign-signature-progress-container");t&&t.remove();const i=document.getElementById("websign-signature-buttons");i&&i.remove();const n=document.getElementById("websign-signature-buttons-wrapper");n&&n.remove()}capturedPointsAreEqualOrGreaterThanMinPoints(){return this.capturedPoints.length>this.config.minPointsRequiredToSign||(handleDebugMessage("La firma debe ser mas larga.","info",this.config.debug),this.onError("La firma debe ser mas larga"),this.enableWidgetButtons(),this.loadingSpinner.hide(),!1)}drawSinglePointInFinalSignature(e,t){const i=t.p>0?t.p:1,n=this.config.signatureThickness*i/2;e.fillStyle=this.config.signatureColorHex,e.strokeStyle=this.config.signatureColorHex,e.beginPath(),e.arc(t.x,t.y,n,0,2*Math.PI),e.fill(),e.stroke()}drawSignatureOnCanvasWithoutEBP(e,t){if(0!==t.length){e.beginPath();for(let i=0;i<t.length;i++){const n=t[i];"down"===n.type?(e.beginPath(),e.moveTo(n.x,n.y)):"move"===n.type&&(e.lineTo(n.x,n.y),e.lineWidth=this.config.signatureThickness*n.p,e.stroke()),"up"===n.type&&(i>0&&"down"===t[i-1].type&&this.drawSinglePointInFinalSignature(e,t[i-1]),e.closePath())}}}async accept(){this.initialEbpState?this.handleAcceptInitialEbp():this.handleAcceptSignature()}async handleAcceptInitialEbp(){this.loadingSpinner.show(),this.edataliaWacom?(await this.edataliaWacom.drawLoadingScreen(),await this.drawSignatureEbp()):this.edataliaWacomBridge&&(await this.edataliaWacomBridge.drawLoadingScreen(),await this.drawSignatureEbpBridge()),this.loadingSpinner.hide()}async handleAcceptSignature(){if(!this.capturedPointsAreEqualOrGreaterThanMinPoints())return;let e;this.disableWidgetButtons(),this.loadingSpinner.show(),this.edataliaWacom?(await this.edataliaWacom.clearWacomScreen(),await this.edataliaWacom.drawScreenSaver(),await this.edataliaWacom.disconnect()):this.edataliaWacomBridge&&(await this.edataliaWacomBridge.clearDeviceDisplay(),await this.edataliaWacomBridge.drawScreenSaver(),await this.edataliaWacomBridge.disconnect(),this.edataliaWacomBridge.destroy()),this.drawSignatureOnCanvasWithoutEBP(this.traceDataCanvasContext,this.capturedPoints);let t,i,n=this.mouseCanvas.width,o=this.mouseCanvas.height,r=this.capturedPoints;if(this.ebpCropArea){const t=this.ebpCropArea,i=document.createElement("canvas");i.width=Math.round(t.width),i.height=Math.round(t.height);i.getContext("2d").drawImage(this.traceDataCanvas,t.x,t.y,t.width,t.height,0,0,i.width,i.height),e=i.toDataURL("image/png"),n=i.width,o=i.height,r=this.capturedPoints.map((e=>({...e,x:e.x-t.x,y:e.y-t.y})))}else e=this.traceDataCanvas.toDataURL("image/png");this.edataliaWacom?(t=this.edataliaWacom.getWacomInfo(),i=this.edataliaWacom.getWacomUids()):this.edataliaWacomBridge?(t=this.edataliaWacomBridge.getWacomInfo(),i=this.edataliaWacomBridge.getWacomUids()):(t=null,i=null),this.onAccept(r,this.startCapturingDate,e,n,o,t,i,this.edataliaWacom?this.edataliaWacom.wacomSupportsColor:!!this.edataliaWacomBridge||null),this.loadingSpinner.hide()}async manageErrors(e){if("no-device"===e.type)this.loadingSpinner.hide(),await this.cancel(),this.onNoDeviceConnected()}hideFieldsetContainer(){const e=getElement(null,"fieldset-container");return e&&(e.style.display="none"),e}showFieldsetContainer(){const e=getElement(null,"fieldset-container");return e&&(e.style.display="block"),e}disableWidgetButtons(){const e=getElement(this.context,"websign-signature-buttons-wrapper");if(e&&e.shadowRoot){const t=e.shadowRoot.querySelectorAll("button"),[i,n,o]=t;[i,n,o].forEach((e=>{e&&(e.style.opacity="0.7",e.style.pointerEvents="none")}))}const t=getElement(this.context,"websign-floating-buttons");if(t){const e=t.querySelectorAll("div"),[i,n,o]=e;[i,n,o].forEach((e=>{e&&(e.style.opacity="0.7",e.style.pointerEvents="none")}))}}enableWidgetButtons(){const e=getElement(this.context,"websign-signature-buttons-wrapper");if(e&&e.shadowRoot){const t=e.shadowRoot.querySelectorAll("button"),[i,n,o]=t;[i,n,o].forEach((e=>{e&&(e.style.opacity="1",e.style.pointerEvents="auto")}))}const t=getElement(this.context,"websign-floating-buttons");if(t){const e=t.querySelectorAll("div"),[i,n,o]=e;[i,n,o].forEach((e=>{e&&(e.style.opacity="1",e.style.pointerEvents="auto")}))}}}function getDtuViewerHtml(e={}){const{signatureContainerWidth:t="400px",signatureContainerHeight:i="250px",displayCanvasSignatureButtons:n=!1,signatureColorHex:o="#0000ff",signatureThickness:r=5,language:a="es"}=e,s={es:{sign:"Firmar",clear:"Reiniciar",cancel:"Cancelar",ok:"Aceptar",waiting:"Esperando documento...",fullscreen:"Pulse para continuar"},en:{sign:"Sign",clear:"Clear",cancel:"Cancel",ok:"Accept",waiting:"Waiting for document...",fullscreen:"Tap to continue"}},c=s[a]||s.es;return`<!DOCTYPE html>\n<html>\n<head>\n <title>WebSign DTU</title>\n <meta charset="UTF-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n html, body { width: 100%; height: 100%; overflow: hidden; background: #1a1a2e; font-family: system-ui, -apple-system, sans-serif; }\n #dtu-container { display: flex; flex-direction: column; width: 100%; height: 100%; }\n #pdf-viewer { flex: 1; width: 100%; border: none; background: white; }\n #signature-overlay {\n display: none; position: fixed; inset: 0;\n background: rgba(0,0,0,0.5); z-index: 100;\n justify-content: center; align-items: center;\n }\n #signature-panel {\n background: white; border-radius: 12px; padding: 8px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.3); position: relative;\n }\n #signature-canvas {\n display: block; border: 1px solid #ccc; border-radius: 4px;\n touch-action: none; cursor: crosshair;\n }\n #sign-fab {\n position: fixed; bottom: 32px; right: 32px;\n background: #0057a2; color: white; border: none; border-radius: 12px;\n width: 60px; height: 60px; cursor: pointer; z-index: 50;\n box-shadow: 2px 2px 8px rgba(0,0,0,0.3); display: none;\n justify-content: center; align-items: center;\n }\n #sign-fab svg { width: 28px; height: 28px; }\n .btn-row {\n display: flex; gap: 4px; margin-top: 4px;\n }\n .btn-row button {\n flex: 1; height: 2rem; color: white; font-weight: bold;\n border-radius: 6px; border: none; background: #0057a2;\n text-transform: uppercase; cursor: pointer; font-size: 13px;\n }\n #waiting-msg {\n display: flex; justify-content: center; align-items: center;\n width: 100%; height: 100%; color: #ccc; font-size: 1.2rem;\n }\n #fullscreen-overlay {\n display: none; position: fixed; inset: 0; z-index: 200;\n background: #1a1a2e;\n justify-content: center; align-items: center; flex-direction: column;\n }\n #fullscreen-btn {\n background: #0057a2; color: white; border: none; border-radius: 5px;\n padding: 20px 40px; font-size: 24px; font-weight: bold; cursor: pointer;\n box-shadow: 2px 2px 8px rgba(0,0,0,0.3);\n animation: bounce 1s infinite;\n }\n #fullscreen-btn:hover { background: #004080; }\n @keyframes bounce {\n 0%, 20%, 50%, 80%, 100% { transform: translateY(0); }\n 40% { transform: translateY(-20px); }\n 60% { transform: translateY(-10px); }\n }\n #loading-overlay {\n display: none; position: fixed; inset: 0; z-index: 300;\n background: rgba(0,0,0,0.6);\n justify-content: center; align-items: center;\n }\n .dtu-spinner {\n width: 48px; height: 48px; border: 5px solid rgba(255,255,255,0.3);\n border-top-color: white; border-radius: 50%;\n animation: dtu-spin 0.8s linear infinite;\n }\n @keyframes dtu-spin { to { transform: rotate(360deg); } }\n </style>\n</head>\n<body>\n <div id="dtu-container">\n <iframe id="pdf-viewer" style="display:none;"></iframe>\n <div id="waiting-msg">${c.waiting}</div>\n </div>\n\n <button id="sign-fab">\n <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path fill="#FFF" d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"/>\n </svg>\n </button>\n\n <div id="signature-overlay">\n <div id="signature-panel">\n <canvas id="signature-canvas"\n width="${parseInt(t)}"\n height="${parseInt(i)}">\n </canvas>\n ${n?`\n <div class="btn-row">\n <button id="btn-clear">${c.clear}</button>\n <button id="btn-cancel">${c.cancel}</button>\n <button id="btn-ok">${c.sign}</button>\n </div>`:""}\n </div>\n </div>\n <div id="fullscreen-overlay">\n <button id="fullscreen-btn">${c.fullscreen}</button>\n </div>\n <div id="loading-overlay">\n <div class="dtu-spinner"></div>\n </div>\n</body>\n<script>\n(function() {\n const canvas = document.getElementById("signature-canvas");\n const ctx = canvas.getContext("2d");\n const overlay = document.getElementById("signature-overlay");\n const signFab = document.getElementById("sign-fab");\n const pdfViewer = document.getElementById("pdf-viewer");\n const waitingMsg = document.getElementById("waiting-msg");\n\n ctx.strokeStyle = "${o}";\n ctx.lineWidth = ${r};\n ctx.lineCap = "round";\n ctx.lineJoin = "round";\n\n let lastPoint = null;\n let hasMoved = false;\n let signatureMode = false;\n\n // --- Recibir mensajes del opener ---\n window.addEventListener("message", (event) => {\n if (event.data == "" || event.data == null) return;\n \n // Parsear si viene como string (compatibilidad con Salesforce)\n let msg = event.data;\n if (typeof msg === "string") {\n try {\n msg = JSON.parse(msg);\n } catch (e) {\n return;\n }\n }\n \n if (!msg || !msg.type) return;\n\n switch (msg.type) {\n case "dtu:loadPdf":\n loadPdf(msg.data);\n break;\n\n case "dtu:showSignatureCanvas":\n showSignature();\n break;\n\n case "dtu:hideSignatureCanvas":\n hideSignature();\n break;\n\n case "dtu:drawStroke":\n drawStroke(msg.point);\n break;\n\n case "dtu:clearCanvas":\n clearCanvas();\n break;\n\n case "dtu:close":\n window.close();\n break;\n\n case "dtu:showLoading":\n document.getElementById("loading-overlay").style.display = "flex";\n break;\n\n case "dtu:hideLoading":\n document.getElementById("loading-overlay").style.display = "none";\n break;\n }\n });\n\n const fullscreenOverlay = document.getElementById("fullscreen-overlay");\n const fullscreenBtn = document.getElementById("fullscreen-btn");\n\n function loadPdf(pdfUrl) {\n try {\n pdfViewer.src = pdfUrl + "#toolbar=0";\n waitingMsg.style.display = "none";\n fullscreenOverlay.style.display = "flex";\n } catch (e) {\n console.error("Error loading PDF in DTU viewer:", e);\n }\n }\n\n fullscreenBtn.addEventListener("click", () => {\n fullscreenOverlay.style.display = "none";\n pdfViewer.style.display = "block";\n signFab.style.display = "flex";\n if (document.documentElement.requestFullscreen) {\n document.documentElement.requestFullscreen().catch(() => {});\n }\n });\n\n function showSignature() {\n signatureMode = true;\n overlay.style.display = "flex";\n signFab.style.display = "none";\n }\n\n function hideSignature() {\n signatureMode = false;\n overlay.style.display = "none";\n signFab.style.display = "flex";\n clearCanvas();\n }\n\n function clearCanvas() {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n lastPoint = null;\n }\n\n function drawStroke(point) {\n if (!point) return;\n\n const pressure = point.p || 1;\n const thickness = ${r} * pressure;\n\n if (point.type === "down") {\n lastPoint = { x: point.x, y: point.y };\n hasMoved = false;\n } else if (point.type === "move" && lastPoint) {\n hasMoved = true;\n ctx.beginPath();\n ctx.moveTo(lastPoint.x, lastPoint.y);\n ctx.lineWidth = thickness;\n ctx.lineTo(point.x, point.y);\n ctx.stroke();\n ctx.closePath();\n lastPoint = { x: point.x, y: point.y };\n } else if (point.type === "up") {\n // Solo dibujar círculo si fue un punto único (down seguido de up sin move)\n if (lastPoint && !hasMoved) {\n const radius = thickness / 2;\n ctx.fillStyle = "${o}";\n ctx.beginPath();\n ctx.arc(point.x, point.y, radius, 0, 2 * Math.PI);\n ctx.fill();\n ctx.closePath();\n }\n lastPoint = null;\n hasMoved = false;\n }\n }\n\n // --- Captura de trazos en el canvas de la DTU ---\n let isDrawing = false;\n\n canvas.addEventListener("pointerdown", (e) => {\n if (!signatureMode) return;\n isDrawing = true;\n const point = { type: "down", x: e.offsetX, y: e.offsetY, p: e.pressure, w: e.width, h: e.height, tiltX: e.tiltX, tiltY: e.tiltY, twist: e.twist, pointerType: e.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: point });\n });\n\n canvas.addEventListener("pointermove", (e) => {\n if (!signatureMode || !isDrawing) return;\n // Usar coalesced events para capturar todos los puntos intermedios\n const events = (typeof e.getCoalescedEvents === "function") ? e.getCoalescedEvents() : [e];\n for (const ce of events) {\n const point = { type: "move", x: ce.offsetX, y: ce.offsetY, p: ce.pressure, w: ce.width, h: ce.height, tiltX: ce.tiltX, tiltY: ce.tiltY, twist: ce.twist, pointerType: ce.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: point });\n }\n });\n\n canvas.addEventListener("pointerup", (e) => {\n if (!signatureMode) return;\n isDrawing = false;\n const point = { type: "up", x: e.offsetX, y: e.offsetY, p: e.pressure, w: e.width, h: e.height, tiltX: e.tiltX, tiltY: e.tiltY, twist: e.twist, pointerType: e.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: point });\n });\n\n canvas.addEventListener("pointerleave", (e) => {\n if (!isDrawing) return;\n isDrawing = false;\n const point = { type: "up", x: e.offsetX, y: e.offsetY, p: 0 };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: point });\n });\n\n // --- Botón firmar ---\n signFab.addEventListener("click", () => {\n showSignature();\n sendToOpener({ type: "dtu:signButtonClicked" });\n });\n\n // --- Botones de firma (si están habilitados) ---\n const btnClear = document.getElementById("btn-clear");\n const btnCancel = document.getElementById("btn-cancel");\n const btnOk = document.getElementById("btn-ok");\n\n if (btnClear) btnClear.addEventListener("click", () => sendToOpener({ type: "dtu:clearClicked" }));\n if (btnCancel) btnCancel.addEventListener("click", () => sendToOpener({ type: "dtu:cancelClicked" }));\n if (btnOk) btnOk.addEventListener("click", () => sendToOpener({ type: "dtu:acceptClicked" }));\n\n function sendToOpener(msg) {\n if (window.opener) {\n window.opener.postMessage(msg, window.location.origin);\n }\n }\n})();\n<\/script>\n</html>`}const APP_PRIMARY_COLOR="#0057a2",APP_PRIMARY_COLOR_HOVER="#003d73",ERROR_COLOR="#f44336",ERROR_COLOR_HOVER="#d32f2f";function addPopupAnimationStyles(){if(!document.getElementById("popup-animation-styles")){const e=document.createElement("style");e.id="popup-animation-styles",e.textContent="\n @keyframes slideIn {\n from {\n transform: translateX(100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n }\n ",document.head.appendChild(e)}}function createOverlay(){const e=document.createElement("div");return e.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9999;\n backdrop-filter: blur(2px);\n ",e}function createPopupContainer(){addPopupAnimationStyles();const e=document.createElement("div");return e.style.cssText="\n position: fixed;\n top: 20px;\n right: 20px;\n background-color: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n z-index: 10000;\n max-width: 400px;\n animation: slideIn 0.3s ease-out;\n ",e}function createPopupTitle(e,t=!1){const i=document.createElement("h3");return i.textContent=e,i.style.cssText=`\n margin: 0 0 12px 0;\n font-size: 18px;\n font-weight: 600;\n color: ${t?ERROR_COLOR_HOVER:"#333"};\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n `,i}function createPopupMessage(e){const t=document.createElement("p");return t.textContent=e,t.style.cssText='\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ',t}function createPopupButton(e,t,i=!1){const n=document.createElement("button");n.textContent=e;const o=i?ERROR_COLOR:APP_PRIMARY_COLOR,r=i?ERROR_COLOR_HOVER:APP_PRIMARY_COLOR_HOVER;return n.style.cssText=`\n width: 100%;\n padding: 12px 24px;\n font-size: 16px;\n font-weight: 500;\n background-color: ${o};\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n `,n.addEventListener("mouseenter",(()=>{n.style.backgroundColor=r})),n.addEventListener("mouseleave",(()=>{n.style.backgroundColor=o})),n.addEventListener("click",t),n}function createPopup({title:e,message:t,buttonText:i,onButtonClick:n,isError:o=!1}){const r=createOverlay(),a=createPopupContainer(),s=createPopupTitle(e,o),c=createPopupMessage(t),l=createPopupButton(i,n,o);return a.appendChild(s),a.appendChild(c),a.appendChild(l),document.body.appendChild(r),document.body.appendChild(a),{overlay:r,container:a,button:l}}function removePopup(e){e.overlay&&e.overlay.parentNode&&e.overlay.parentNode.removeChild(e.overlay),e.container&&e.container.parentNode&&e.container.parentNode.removeChild(e.container)}function configureSalesforceDtuHtml(e,t,i){if(!e||e.closed)return;const n={type:"dtu:config",data:{signatureContainerWidth:parseInt(t.signatureContainerWidth)||400,signatureContainerHeight:parseInt(t.signatureContainerHeight)||250,displayCanvasSignatureButtons:t.displayCanvasSignatureButtons,signatureColorHex:t.signatureColorHex,signatureThickness:t.signatureThickness,language:t.language}};e.postMessage(JSON.stringify(n),"*"),i&&i()}class EdataliaDtu{constructor(e,t){this.cachedScreens=null,this.newWindow=null,this.callback=t,this.popups=[],this.signatureContainerHeight=e.signatureContainerHeight,this.signatureContainerWidth=e.signatureContainerWidth,this.displayCanvasSignatureButtonsInDTU=e.displayCanvasSignatureButtonsInDTU,this.displayFile=e.displayFile,this.pdfBlobUrl=null,this.icbcMode=e.icbcMode||!1,this.signatureColorHex=e.signatureColorHex||"#0000ff",this.signatureThickness=e.signatureThickness||5,this.language=e.language||"es",this.continueButton=null,this.messageHandler=null,this.salesforceDtuViewerUrl=e.salesforceDtuViewerUrl||null,this.onMainWindowUnload=()=>this.closeDtuScreen(),window.addEventListener("beforeunload",this.onMainWindowUnload),this.init()}async init(){console.log("Inicializando EdataliaDtu - Etapa 1: Permiso USB...");try{await requestUsbPermission(),console.log("Permiso USB concedido"),await this.tryLaunchOrShowButton()}catch(e){console.error("USB permission request failed:",e),this.showRetryButton("Error al solicitar permiso USB. ¿Reintentar?")}}async tryLaunchOrShowButton(){if("getScreenDetails"in window&&!this.cachedScreens)try{this.cachedScreens=await window.getScreenDetails(),this.cachedScreens.addEventListener("screenschange",(async e=>{console.log("screenschange",e),this.closeAllPopups(),await this.doLaunch()})),this.cachedScreens.addEventListener("currentscreenchange",(async e=>{console.log("currentscreenchange",e)})),console.log("Token válido - continuando automáticamente"),await this.doLaunch()}catch(e){"NotAllowedError"===e.name||"SecurityError"===e.name?(console.log("Token expirado - mostrando botón para continuar"),this.showContinueButton()):(console.warn("Error al obtener pantallas, continuando con fallback:",e),await this.doLaunch())}else await this.doLaunch()}showContinueButton(){const e=createPopup({title:"Configuración de Pantallas",message:"Para continuar con la configuración de múltiples pantallas, haz clic en el botón de abajo.",buttonText:"Continuar",onButtonClick:async()=>{if(console.log("Inicializando EdataliaDtu - Etapa 2: Permiso de pantallas..."),this.removeContinueButton(),"getScreenDetails"in window&&!this.cachedScreens)try{if(console.log("Solicitando permiso de getScreenDetails..."),navigator.permissions&&navigator.permissions.query)try{const e=await navigator.permissions.query({name:"window-management"});console.log("Estado del permiso window-management:",e.state)}catch(e){console.log("No se pudo verificar el estado del permiso:",e.message)}this.cachedScreens=await window.getScreenDetails(),this.cachedScreens.addEventListener("screenschange",(async e=>{console.log("screenschange",e),this.closeAllPopups(),await this.doLaunch()})),this.cachedScreens.addEventListener("currentscreenchange",(async e=>{console.log("currentscreenchange",e)})),console.log("Permiso de pantallas concedido con éxito")}catch(e){console.error("Error al solicitar permiso de pantallas:",{name:e.name,message:e.message,stack:e.stack}),console.warn("Continuando con fallback a window.screen")}await this.doLaunch()},isError:!1});this.overlay=e.overlay,this.popupContainer=e.container,this.continueButton=e.button}showRetryButton(e){const t=createPopup({title:"Error de Permiso",message:e,buttonText:"Reintentar",onButtonClick:async()=>{this.removeContinueButton(),await this.init()},isError:!0});this.overlay=t.overlay,this.popupContainer=t.container,this.continueButton=t.button}removeContinueButton(){removePopup({overlay:this.overlay,container:this.popupContainer}),this.overlay=null,this.popupContainer=null,this.continueButton=null}getScreensInfo=async()=>"getScreenDetails"in window?this.cachedScreens?this.cachedScreens.screens:(console.log("Usando window.screen como fallback"),[window.screen]):[window.screen];openPopupWindow=(e,t,i,n)=>{const o=[`left=${e}`,`top=${t}`,`width=${i}`,`height=${n}`,"menubar=no","toolbar=no","location=no","status=no","resizable=yes","popup=yes","scrollbars=no"].join(",");this.listenToDtuMessages();const r=getDtuViewerHtml({signatureContainerWidth:this.signatureContainerWidth,signatureContainerHeight:this.signatureContainerHeight,displayCanvasSignatureButtons:this.displayCanvasSignatureButtonsInDTU,signatureColorHex:this.signatureColorHex,signatureThickness:this.signatureThickness,language:this.language});return this.newWindow=this.salesforceDtuViewerUrl?this.openPopupWithUrl(this.salesforceDtuViewerUrl,o):this.openPopupWithHtml(r,o),this.newWindow?this.newWindow:(alert("Parece que estás bloqueando los popups, necesitamos que los actives para lanzar websign en la Wacom DTU!. Más info en https://goo.gle/allow-popups."),null)};openPopupWithUrl=(e,t)=>window.open(e,Math.random().toString(),t);openPopupWithHtml=(e,t)=>{const i=window.open("",Math.random().toString(),t);if(!i)return null;try{return i.document.open(),i.document.write(e),i.document.close(),i.onload=()=>this.sendPdfToPopup(),i}catch(e){return console.error("Error al escribir en el documento del popup:",e),i.close(),null}};onPopupClose=e=>(e.preventDefault(),this.closeAllPopups(),this.callback({type:"cancelClicked"}),e.returnValue="This string must be non-empty");closeAllPopups=()=>{this.popups.forEach((e=>{e.close()})),this.popups=[]};doLaunch=async()=>{const e=await this.getScreensInfo();let t=!1;this.popups=[];let i=null;this.icbcMode&&(2===e.length?(console.log(e),i=e.find((e=>!e.isPrimary))||e[1],console.log(`Modo ICBC: 2 monitores detectados, seleccionando monitor no primario: ${i.label}`)):e.length>2&&(i=e[e.length-1],console.log(`Modo ICBC: ${e.length} monitores detectados, seleccionando el último: ${i.label}`))),i?t=!0:e.forEach(((e,n)=>{const o=isCompatibleTabletScreen(e);console.log(`Buscando en el monitor ${n}. Nombre de monitor: ${e.label}. devicePixelRatio: ${e.devicePixelRatio}`),o&&!t&&(console.log(`DTU encontrada en el monitor ${n}. Nombre de monitor: ${e.label}`),i=e,t=!0)})),i&&setTimeout((()=>{const e=this.openPopupWindow(i.availLeft,i.availTop,i.availWidth,i.availHeight);e?(e.addEventListener("beforeunload",this.onPopupClose),this.popups.push(e)):alert("Parece que estás bloqueando los popups, necesitamos que los actives para lanzar websign en la DTU!. Más info en https://goo.gle/allow-popups.")}),0),t||console.log("DTU NO ENCONTRADA!!")};closeDtuScreen(){this.newWindow&&!this.newWindow.closed&&(this.newWindow.removeEventListener("beforeunload",this.onPopupClose),this.sendMessageToDTU({type:"dtu:close"}),this.newWindow.close()),this.pdfBlobUrl&&(URL.revokeObjectURL(this.pdfBlobUrl),this.pdfBlobUrl=null),this.onMainWindowUnload&&(window.removeEventListener("beforeunload",this.onMainWindowUnload),this.onMainWindowUnload=null),this.removeMessageListener()}listenToDtuMessages(){this.removeMessageListener(),this.messageHandler=e=>{let t=e.data;if("string"==typeof t)try{t=JSON.parse(t)}catch{return}if(t&&t.type)switch(t.type){case"dtu:ready":configureSalesforceDtuHtml(this.newWindow,{signatureContainerWidth:this.signatureContainerWidth,signatureContainerHeight:this.signatureContainerHeight,displayCanvasSignatureButtons:this.displayCanvasSignatureButtonsInDTU,signatureColorHex:this.signatureColorHex,signatureThickness:this.signatureThickness,language:this.language},(()=>this.sendPdfToPopup()));break;case"dtu:signButtonClicked":this.callback({type:"signButtonClicked"});break;case"dtu:acceptClicked":this.callback({type:"acceptClicked"});break;case"dtu:cancelClicked":this.callback({type:"cancelClicked"});break;case"dtu:clearClicked":this.callback({type:"clearClicked"});break;case"dtu:strokePoint":this.callback({type:"strokePoint",point:t.point})}},window.addEventListener("message",this.messageHandler)}async sendPdfToPopup(){if(this.newWindow&&this.displayFile)try{let e;if(this.displayFile instanceof File||this.displayFile instanceof Blob)e=this.displayFile;else{const t=await transformFileTo(this.displayFile,"base64"),i=atob(t),n=new Uint8Array(i.length);for(let e=0;e<i.length;e++)n[e]=i.charCodeAt(e);e=new Blob([n],{type:"application/pdf"})}this.pdfBlobUrl=URL.createObjectURL(e),this.sendMessageToDTU({type:"dtu:loadPdf",data:this.pdfBlobUrl})}catch(e){console.error("Error creando Blob URL del PDF:",e)}}removeMessageListener(){this.messageHandler&&(window.removeEventListener("message",this.messageHandler),this.messageHandler=null)}sendMessageToDTU(e){if(this.newWindow&&!this.newWindow.closed)try{const t=JSON.stringify(e);this.newWindow.postMessage(t,"*")}catch(e){console.error("Error en postMessage:",e.name,e.message)}}showSignatureCanvas(){this.sendMessageToDTU({type:"dtu:showSignatureCanvas"})}hideSignatureCanvas(){this.sendMessageToDTU({type:"dtu:hideSignatureCanvas"})}sendStrokePoint(e){this.sendMessageToDTU({type:"dtu:drawStroke",point:e})}clearSignatureCanvas(){this.sendMessageToDTU({type:"dtu:clearCanvas"})}showLoading(){this.sendMessageToDTU({type:"dtu:showLoading"})}hideLoading(){this.sendMessageToDTU({type:"dtu:hideLoading"})}}const AUTHENTICATION_URLS={DEV:"https://token-dev.azurewebsites.net",PRE:"https://token.ecosignature.biz",SANDBOX:"https://acceso.firmar.info",PRO:"https://acceso.firmar.online",DEFAULT:"https://acceso.firmar.info"};function getAuthenticationUrl(e){return AUTHENTICATION_URLS[e]||AUTHENTICATION_URLS.DEFAULT}const webSignConfig={bearerToken:"",debug:!0,requestPermissions:!1,mainContainerWidth:"100%",mainContainerHeight:"100%",signatureContainerWidth:"400px",signatureContainerHeight:"250px",signatureEnvironment:"SANDBOX",signatureServiceUrl:null,renderDefaultIndexPage:null,signatureType:"auto",requestLocation:!0,signatureColorHex:"#0000ff",autoDownload:!0,minPointsRequiredToSign:100,signatureThickness:5,mouseEBP:!1,viewPDF:!1,displayCanvasSignatureButtonsInDTU:!1,doPerformance:!1,requestedEncodingBits:16,loadSignedPdf:!1,widget:{type:"manual",width:null,height:null,x:0,y:0,page:0,customText:[{text:"Documento firmado digitalmente",fontSize:6},{text:"Fecha y hora: ##TIMESTAMP##",fontSize:4}],text:null,fieldName:null,gapX:0,gapY:0},properties:{reason:"Firma digital del documento ",author:"Edatalia Test",contact:" ",location:" "},options:{includeTimestamp:!1,includeOCSP:!1,validateCertificate:!1,pdfCertifiedSignature:!1},certificate:{},encCertKey:null,language:"es",signatureTimeLimit:540,edataliaBaseUrl:"/src",wacom:{enableScreenSaver:!0,blackAndWhiteScreenSaver:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteScreenSaver.png",colorScreenSaver:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorScreenSaver.png",enableEbp:!0,blackAndWhiteEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteEbp.ebp",colorEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorEbp.ebp",varEbp:"Titulo=Firma WebSign Edatalia Wacom|||Subtitulo=Librería uso digital|||Nombre=Edatalia|||AreaFirma=Firma a continuación|||LOPD=De conformidad con el RGPD y la LOPDGDD, sus datos personales y su firma serán tratados por [NOMBRE DE LA EMPRESA] con la finalidad de gestionar y formalizar el presente documento. La base legal es la ejecución de la relación contractual y el cumplimiento de obligaciones legales. Puede ejercer sus derechos de acceso, rectificación, supresión y demás derechos en [EMAIL O DIRECCIÓN]",enableInitialEbp:!1,blackAndWhiteInitialEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteInitialEbp.ebp",colorInitialEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorInitialEbp.ebp",varInitialEbp:"Titulo=Título inicial|||Subtitulo=Subtítulo inicial|||Nombre=Edatalia|||TextoPrevio=Estoy de acuerdo con el documento a firmar"},enableBridge:!1,enforceBridge:!1,useMiddleware:!1,offlineMode:!1,offlineModeAutoFetch:!1};function isEbpActive(e){const{wacom:t,signatureType:i,enableBridge:n,mouseEBP:o}=e,r=t.enableEbp&&"stu"===i,a=t.enableEbp&&"dtu"===i&&n;return r||a||o}function applyRatioToWidget(e,t,i=160){null==e.width&&null==e.height?(e.width=i,e.height=Math.round(i/t)):null==e.width?e.width=Math.round(e.height*t):e.height=Math.round(e.width/t)}function getWidgetWithDefaults(e){const t={...e.widget};if(null!=t.width&&null!=t.height)return t;if(isEbpActive(e))applyRatioToWidget(t,3,180);else{applyRatioToWidget(t,(parseFloat(e.signatureContainerWidth)||400)/(parseFloat(e.signatureContainerHeight)||250))}return t}async function applyImageRatioToWidget(e,t){if(null!=e.width&&null!=e.height)return;const i=t.startsWith("data:")?t:`data:image/jpeg;base64,${t}`,{width:n,height:o}=await getImageDimensions(i);n&&o&&applyRatioToWidget(e,n/o,160)}class NativePdfViewer{constructor(e=null,t=null){this.context=e,this.currentiFrame=null,this.signatureButton=null,this.renderDefaultIndexPage=t||0}async init(e){this._removeExistingPdfContainer();const t=await this._createIframeOrRenderInPdfJs(e),i=this._createPdfContainer();this.signatureButton=this._createFloatingButton(),i.appendChild(t),i.appendChild(this.signatureButton);const n=this._getParentContainer();n?(ensureMinContainerSize(n,500,500),n.appendChild(i),this.currentiFrame=i,this._shouldUsePdfJs()&&document.getElementById("websign-pdf-container").style.removeProperty("height")):console.error("Parent container not found for PDF viewer.")}_removeExistingPdfContainer(){const e=getElement(null,"websign-pdf-container");e&&e.remove()}_shouldUsePdfJs(){const e=navigator.userAgent;return/Mobi|Android|iPhone|iPad|iPod/i.test(e)}async _createIframeOrRenderInPdfJs(e){return this._shouldUsePdfJs()?(await this._loadPdfJs(),await this._renderInPdfJs(e)):this._createIframe(e)}_createIframe(e){const t=document.createElement("iframe");switch(t.style.width="100%",t.style.height="100%",t.style.border="none",this._determinePdfDataType(e)){case"url":t.src=e;break;case"base64":const i=atob(e),n=new Array(i.length).fill(0).map(((e,t)=>i.charCodeAt(t))),o=new Uint8Array(n),r=new Blob([o],{type:"application/pdf"}),a=URL.createObjectURL(r);t.src=a+`#page=${this.renderDefaultIndexPage}&toolbar=0`}return t}async _loadPdfJs(){if(!window.pdfjsLib)return new Promise(((e,t)=>{const i=document.createElement("script");i.src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.4.120/pdf.min.js",i.onload=()=>{window.pdfjsLib.GlobalWorkerOptions.workerSrc="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.4.120/pdf.worker.min.js",e()},i.onerror=t,document.head.appendChild(i)}))}async _renderInPdfJs(e){const t=document.createElement("div");let i;switch(t.style.display="flex",t.style.flexDirection="column",t.style.overflowY="auto",t.style.maxHeight="100vh",t.style.padding="1rem",t.style.boxSizing="border-box",t.style.gap="1rem",this._determinePdfDataType(e)){case"url":i=e;break;case"base64":const t=atob(e),n=Array.from(t,(e=>e.charCodeAt(0)));i={data:new Uint8Array(n)};break;default:throw new Error("Formato de PDF desconocido")}const n=window.pdfjsLib.getDocument(i),o=await n.promise,r=o.numPages;for(let e=1;e<=r;e++){const i=await o.getPage(e),n=i.getViewport({scale:1.5}),r=document.createElement("canvas"),a=r.getContext("2d");r.width=n.width,r.height=n.height,r.style.width="100%",r.style.height="auto",r.style.border="1px solid #ccc",r.style.boxShadow="0 2px 4px rgba(0,0,0,0.1)",r.style.borderRadius="8px",await i.render({canvasContext:a,viewport:n}).promise,t.appendChild(r)}return t}_createPdfContainer(){const e=document.createElement("div");return e.id="websign-pdf-container",e.className="websign-pdf-container",e.style.position="relative",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.height="100%",e}_getParentContainer(){return getElement(null,"websign-container")}_createFloatingButton(){const e=document.createElement("div");e.style.position="absolute",e.style.bottom="32px",e.style.right="32px",e.style.backgroundColor="#0057a2",e.style.color="#fff",e.style.borderRadius="12px",e.style.cursor="pointer",e.style.padding="16px",e.style.boxShadow="2px 2px 3px #999",e.style.width="28px",e.style.height="28px",e.style.boxSizing="content-box",e.id="websign-fab-sign";const t=this._createSvgIcon();return e.appendChild(t),e}_createSvgIcon(){const e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("xmlns",e);const i=document.createElementNS(e,"title");i.textContent="Iniciar firma",t.appendChild(i);const n=document.createElementNS(e,"path");return n.setAttribute("fill","#FFFFFF"),n.setAttribute("d","M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"),t.appendChild(n),t}_determinePdfDataType(e){return/^(data:.*?;base64,)?[A-Za-z0-9+/=]+$/.test(e)&&!e.includes(" ")?"base64":/^(https?:\/\/|www\.)[^\s/$.?#].[^\s]*$/i.test(e)?"url":"unknown"}signatureFloatMode(){this.removeSignatureFloatModeOverlay(),this._createSignatureFloatModeOverlay();let e=getElement(null,"fieldset-container");if(e||(e=this._createSignatureContainer()),e){e.style.padding="6px",e.style.boxShadow="rgb(203 203 203) 1px 2px 9px 0px",e.style.zIndex="10000",e.style.position="absolute",e.style.background="white",e.style.display="block",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.borderRadius="8px",e.style.border="none";document.getElementById("websign-pdf-container").appendChild(e)}}_createSignatureContainer(){const e=document.createElement("fieldset");e.id="fieldset-container",e.className="fieldset-container",e.style.width="0",e.style.padding="5px",e.style.margin="5px auto",e.style.display="none";const t=document.createElement("div");return t.id="web-sign",t.className="web-sign",t.style.width="350px",t.style.height="200px",t.style.position="relative",e.appendChild(t),e}_removeSignatureContainer(){const e=getElement(null,"fieldset-container");e&&(e.style.display="none")}_createSignatureFloatModeOverlay(){let e=document.getElementById("signature_overlay");if(!e){e=document.createElement("div"),e.id="signature_overlay",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="rgba(0, 0, 0, 0.4)",e.style.zIndex="9999",e.style.display="block";document.getElementById("websign-pdf-container").appendChild(e)}}removeSignatureFloatModeOverlay(){let e=document.getElementById("signature_overlay");e&&e.remove()}}let DEBUG_MODE=!1;async function setTypeOfDeviceToUse(e){return DEBUG_MODE=e.debug,await hasSTUConnected()?"stu":await hasDTUConnected()?"dtu":await requestSTUDevices()?"stu":(handleDebugMessage("Usando modo display","info",DEBUG_MODE),"display")}async function hasSTUConnected(){try{const e=(await navigator.hid.getDevices()).length>0;return e&&handleDebugMessage("STU conectado","info",DEBUG_MODE),e}catch(e){return handleDebugMessage("Error al comprobar dispositivos HID","error",DEBUG_MODE),!1}}async function requestSTUDevices(){try{const e=(await com.WacomGSS.STU.UsbDevice.requestDevices()).length>0;return e&&handleDebugMessage("STU conectado tras solicitud","info",DEBUG_MODE),e}catch(e){return handleDebugMessage("Error al solicitar dispositivos STU, "+e,"error",DEBUG_MODE),!1}}async function hasDTUConnected(){if(!("getScreenDetails"in window))return handleDebugMessage("API getScreenDetails no soportada","error",DEBUG_MODE),!1;try{const{screens:e}=await window.getScreenDetails(),t=e.some((e=>isCompatibleTabletScreen(e)));return t&&handleDebugMessage("DTU detectado","info",DEBUG_MODE),t}catch(e){return handleDebugMessage("Error al comprobar pantallas DTU, "+e,"error",DEBUG_MODE),!1}}class DevicePermissions{constructor(e){this.signatureType=e.signatureType,this.config=e,this.popupRefs=null}async hasDevicePermissions(){try{const e=await navigator.usb.getDevices(),t=await navigator.hid.getDevices();return e.length>0||t.length>0}catch(e){return console.error("Error al verificar permisos de dispositivos:",e),!1}}async requestDevicePermissions(){try{if("dtu"===this.signatureType){return await requestUsbPermission()}if("stu"===this.signatureType){return await getFirstDeviceConnected()}if("auto"===this.signatureType){return await setTypeOfDeviceToUse(this.config)}}catch(e){return console.warn("El usuario canceló o no concedió permisos:",e),!1}}showPermissionButton(e){let t="Para utilizar la firma digital, necesitas conceder permisos de acceso al dispositivo.";"dtu"===this.signatureType?t="Para utilizar la tableta DTU, necesitas conceder permisos de acceso USB.":"stu"===this.signatureType&&(t="Para utilizar la tableta STU, necesitas conceder permisos de acceso HID."),this.popupRefs=createPopup({title:"Permisos de Dispositivo",message:t,buttonText:"Conceder Permisos",onButtonClick:async()=>{const t=await this.requestDevicePermissions();if(t){let i;this.removePermissionButton(),i="auto"===this.signatureType?t:this.signatureType,e(i)}else this.removePermissionButton(),this.showPermissionError(e)},isError:!1})}showPermissionError(e){this.popupRefs=createPopup({title:"Error de Permiso",message:"No se pudo obtener el permiso del dispositivo. Por favor, intenta de nuevo.",buttonText:"Reintentar",onButtonClick:async()=>{this.removePermissionButton(),this.showPermissionButton(e)},isError:!0})}removePermissionButton(){this.popupRefs&&(removePopup(this.popupRefs),this.popupRefs=null)}}function mountCertificateTable(e=[],t={}){let i=t.container||document.getElementById("web-sign");const n=t.title??"🔐 Selección de Certificado",o=t.onSelect??null,r=t.onSign??null,a=t.onCancel??null,s=t.signText??"FIRMAR",c=t.cancelText??"CANCELAR";if(!i){const e=document.createElement("div");e.id="web-sign",document.body.appendChild(e),i=e}const l=`certpanel-${Math.random().toString(36).slice(2,9)}`,u=document.getElementById("fieldset-container");u&&(u.style.display="block");const p=(e,t={},i=[])=>{const n=document.createElement(e);return Object.assign(n,t),i.forEach((e=>n.appendChild("string"==typeof e?document.createTextNode(e):e))),n},h=(e,t)=>e&&e.length>t?e.slice(0,t-1)+"…":e||"",g=e=>String(e).padStart(2,"0"),m=e=>{const t=new Date(e);return isNaN(t)?"":`${g(t.getDate())}/${g(t.getMonth()+1)}/${t.getFullYear()} ${g(t.getHours())}:${g(t.getMinutes())}`};let d=[...e],S=null,f=!1;const _=p("style",{textContent:`\n [data-certpanel="${l}"] .cp-card {\n width: 100%; max-width: 1100px; background: #fff; border-radius: 10px;\n box-shadow: 0 8px 24px rgba(0,0,0,.08); overflow: hidden;\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n border: 1px solid #e9ecef;\n }\n [data-certpanel="${l}"] .cp-header {\n padding: 14px 16px; border-bottom: 1px solid #e9ecef; background: #f8f9fa;\n display:flex; align-items:center; gap: 10px;\n }\n [data-certpanel="${l}"] .cp-title { margin: 0; font-size: 16px; font-weight: 600; }\n [data-certpanel="${l}"] .cp-body { padding: 16px; }\n [data-certpanel="${l}"] .help-text { color:#495057; font-size:13px; margin-bottom: 10px; }\n\n /* Tabla base */\n [data-certpanel="${l}"] table {\n width: 100%;\n border-collapse: separate; /* necesario para sticky header fiable */\n border-spacing: 0;\n min-width: 920px; /* ayuda con scroll horizontal si hay columnas largas */\n }\n [data-certpanel="${l}"] thead tr { background: #f8f9fa; border-bottom: 2px solid #dee2e6; }\n [data-certpanel="${l}"] th, [data-certpanel="${l}"] td {\n padding: 12px; text-align: left; border: 1px solid #dee2e6; font-size: 14px; vertical-align: top;\n }\n [data-certpanel="${l}"] tbody tr:hover { background: #f4f8ff; }\n\n /* Área scrollable con encabezado sticky */\n [data-certpanel="${l}"] .cp-tablewrap {\n position: relative;\n max-height: 360px; /* <-- ajusta la altura visible */\n overflow: auto; /* vertical y horizontal */\n border: 1px solid #dee2e6;\n border-radius: 8px;\n }\n [data-certpanel="${l}"] thead th {\n position: sticky;\n top: 0;\n background: #f8f9fa;\n z-index: 3; /* por encima del body */\n }\n\n /* Panel de info seleccionado */\n [data-certpanel="${l}"] .selected-info {\n display: none; margin-top: 15px; padding: 15px; background: #e8f4fd;\n border: 1px solid #bee5eb; border-radius: 6px;\n }\n\n [data-certpanel="${l}"] .cp-footer {\n padding: 12px 16px; border-top: 1px solid #e9ecef; display:flex; gap:8px; justify-content:flex-end; background:#fff;\n }\n [data-certpanel="${l}"] .btn {\n padding: 8px 12px; border-radius: 6px; border: 1px solid #dee2e6; cursor: pointer; font-weight: 600; background:#fff;\n }\n [data-certpanel="${l}"] .btn.primary { background: #0d6efd; border-color: #0d6efd; color: #fff; }\n [data-certpanel="${l}"] .btn.secondary { background: #fff; color: #495057; }\n [data-certpanel="${l}"] .btn:disabled { opacity: .6; cursor: not-allowed; }\n\n /* Overlay/Spinner sobre el área scroll */\n [data-certpanel="${l}"] .cp-overlay {\n position: absolute; inset: 0; display: none; align-items: center; justify-content: center;\n background: rgba(255,255,255,0.7); backdrop-filter: blur(1px); z-index: 4; /* por encima del thead sticky */\n }\n [data-certpanel="${l}"] .cp-spinner {\n width: 28px; height: 28px; border: 3px solid currentColor; border-top-color: transparent;\n border-radius: 50%; animation: certspin .8s linear infinite; margin-right: 10px;\n }\n [data-certpanel="${l}"] .cp-overlay .txt { font-weight: 600; color: #0d6efd; }\n @keyframes certspin { to { transform: rotate(360deg); } }\n `}),y=p("div");y.setAttribute("data-certpanel",l);const b=p("div",{className:"cp-card"}),k=p("div",{className:"cp-header"},[p("h3",{className:"cp-title",textContent:n})]),v=p("div",{className:"cp-body"},[p("div",{className:"help-text",textContent:"Selecciona un certificado de la lista. Solo se muestran certificados vigentes con clave privada."})]),E=p("table",{"aria-busy":"false"}),w=p("thead");w.innerHTML="\n <tr>\n <th>Seleccionar</th><th>Nombre (Subject)</th><th>Emisor (Issuer)</th>\n <th>Válido Desde</th><th>Válido Hasta</th><th>Número de Serie</th>\n <th>Fingerprint</th><th>Nombre Amigable</th>\n </tr>";const I=p("tbody");E.appendChild(w),E.appendChild(I);const T=p("div",{className:"cp-tablewrap"}),C=p("div",{className:"cp-overlay"},[p("div",{className:"cp-spinner","aria-hidden":"true"}),p("span",{className:"txt",textContent:"Procesando..."})]);T.appendChild(E),T.appendChild(C);const A=p("div",{className:"selected-info"},[p("strong",{textContent:"Certificado seleccionado:"}),p("div",{id:`${l}-details`,style:"margin-top:8px;"})]);v.appendChild(T),v.appendChild(A);const j=p("div",{className:"cp-footer"},[p("button",{className:"btn secondary",textContent:c,id:`${l}-cancel`}),p("button",{className:"btn primary",textContent:s,id:`${l}-sign`,disabled:!0})]);b.appendChild(k),b.appendChild(v),b.appendChild(j),y.appendChild(_),y.appendChild(b),i.appendChild(y);const P=j.querySelector(`#${l}-cancel`),R=j.querySelector(`#${l}-sign`);function N(){I.innerHTML="",d.forEach(((e,t)=>{const i=document.createElement("tr");i.innerHTML=`\n <td style="text-align:center;"><input type="radio" name="${l}-certificate" value="${t}" /></td>\n <td>${h(e.subject,50)}</td>\n <td>${h(e.issuer,40)}</td>\n <td>${m(e.validFrom)}</td>\n <td>${m(e.validTo)}</td>\n <td>${h(e.serialNumber,20)}</td>\n <td>${h(e.fingerprint,20)}</td>\n <td>${e.friendlyName||"Sin nombre"}</td>\n `,i.querySelector("input").addEventListener("change",(()=>function(e){S=e;const t=d[e];y.querySelector(`#${l}-details`).innerHTML=`\n <div><strong>Subject:</strong> ${t.subject}</div>\n <div><strong>Issuer:</strong> ${t.issuer}</div>\n <div><strong>Válido:</strong> ${m(t.validFrom)} — ${m(t.validTo)}</div>\n <div><strong>Serie:</strong> ${t.serialNumber}</div>\n <div><strong>Fingerprint:</strong> ${t.fingerprint}</div>\n <div><strong>Nombre amigable:</strong> ${t.friendlyName||"Sin nombre"}</div>\n `,A.style.display="block",f||(R.disabled=!1);o&&o(t,e)}(t))),I.appendChild(i)}))}function D(e){f=!!e,R.disabled=!0,P.disabled=e,E.setAttribute("aria-busy",e?"true":"false"),C.style.display=e?"flex":"none",y.querySelectorAll(`input[name="${l}-certificate"]`).forEach((t=>{t.disabled=e})),e||null==S||(R.disabled=!1)}return R.addEventListener("click",(()=>{f||null!=S&&r&&r(d[S],S,{setBusy:D})})),P.addEventListener("click",(()=>{f||"function"==typeof a&&a({selectedCertificate:null!=S?d[S]:null,selectedIndex:S})})),N(),{destroy:function(){y.remove();const e=document.getElementById("fieldset-container");e&&(e.style.display="none")},updateCertificates:function(e=[]){d=[...e],S=null,A.style.display="none",R.disabled=!0,N()},setBusy:D,get selectedIndex(){return S},get selectedCertificate(){return null!=S?d[S]:null},get element(){return y}}}function deepMerge(e,t){for(const i of Object.keys(t)){const n=t[i],o=e[i];n&&"object"==typeof n&&!Array.isArray(n)?(o&&"object"==typeof o&&!Array.isArray(o)||(e[i]={}),deepMerge(e[i],n)):e[i]=n}return e}class WebSignBridgeClient{static CANDIDATE_PORTS=[8080,9080,18080];constructor(e={}){this.options={serverUrl:"ws://localhost:8080",accessKey:"edatalia-websign-bridge-key-2025",autoConnect:!0,reconnectDelay:3e3,maxReconnectAttempts:5,debug:!1,autoDiscover:!1,candidatePorts:WebSignBridgeClient.CANDIDATE_PORTS,discoveryTimeout:500,connectionTimeout:1e4,messageTimeout:3e4,maxRetries:3,retryDelay:1e3,logLevel:"error",maxImageSize:52428800,compressionEnabled:!0,validateResponses:!0,performanceMonitoring:!1,...e},this.ws=null,this.connected=!1,this.connecting=!1,this.messageId=0,this.pendingMessages=new Map,this.eventHandlers=new Map,this.reconnectAttempts=0,this.reconnectTimer=null,this.deviceConnected=!1,this.deviceInfo=null,this.deviceType=null,this.discoveredBridge=null,this.metrics={messagessent:0,messagesReceived:0,errors:0,reconnections:0,averageResponseTime:0,lastConnectionTime:null,totalDataTransferred:0},this.availableDevices=[],this.deviceCache=new Map,this.lastDeviceRefresh=0,this.availableDevices=[],this.currentDevice=null,this.options.autoConnect&&this.connect()}static CACHE_KEY="websign-bridge-port";_probePort(e,t){return new Promise(((i,n)=>{const o=`ws://localhost:${e}?key=${this.options.accessKey}`;let r;try{r=new WebSocket(o)}catch(e){return void n(new Error("WebSocket creation failed"))}const a=setTimeout((()=>{r.close(),n(new Error("WebSocket timeout"))}),t);r.onopen=()=>{clearTimeout(a),this._log("info",`Bridge encontrado en ws://localhost:${e}`),i({port:e,protocol:"http",version:"unknown",ports:{http:e},socket:r})},r.onerror=()=>{clearTimeout(a),n(new Error(`WebSocket error on port ${e}`))}}))}async discoverBridge(e={}){const t=e.ports||this.options.candidatePorts,i=e.timeout||this.options.discoveryTimeout||1e3;let n=null;try{const e=localStorage.getItem(WebSignBridgeClient.CACHE_KEY);e&&(n=parseInt(e,10))}catch(e){}const o=[];n&&t.includes(n)&&o.push(n);for(const e of t)o.includes(e)||o.push(e);this._log("info",`Descubrimiento secuencial de bridge — puertos: [${o.join(", ")}]${n?` (cacheado: ${n})`:""}`);for(const e of o)try{const t=await this._probePort(e,i);try{localStorage.setItem(WebSignBridgeClient.CACHE_KEY,String(e))}catch(e){}return this.discoveredBridge=t,this.options.serverUrl=`ws://localhost:${t.port}`,this._log("info",`URL actualizada — ws://localhost:${t.port}`),t}catch(e){}if(n)try{localStorage.removeItem(WebSignBridgeClient.CACHE_KEY)}catch(e){}throw this._log("error","No se encontró ningún WebSign Bridge en los puertos candidatos"),new Error("BRIDGE_NOT_FOUND: No se encontró WebSign Bridge ejecutándose. Verifique que la aplicación esté iniciada.")}async connect(){if(!this.connected){if(this.connecting)return new Promise(((e,t)=>{const i=()=>{this.connected?e():this.connecting?setTimeout(i,100):t(new Error("Connection failed"))};i()}));this.connecting=!0;try{if(this.options.autoDiscover)try{const e=await this.discoverBridge();if(e.socket&&e.socket.readyState===WebSocket.OPEN)return this._log("info","Reutilizando conexión WebSocket del descubrimiento"),this.ws=e.socket,this._setupWebSocketHandlers(this.ws),this.connected=!0,this.connecting=!1,this._log("Connected to WebSign Bridge Server"),void this.emit("connected")}catch(e){throw this.connecting=!1,e}await this._attemptConnection(this.options.serverUrl)}catch(e){throw this.connecting=!1,e}}}_attemptConnection(e){return new Promise(((t,i)=>{try{const n=new URL(e);n.searchParams.set("key",this.options.accessKey),this._log(`Connecting to: ${n.toString()}`),this.ws=new WebSocket(n.toString());const o=setTimeout((()=>{i(new Error("Connection timeout"))}),1e4);this.ws.onopen=()=>{clearTimeout(o),this.connected=!0,this.connecting=!1,this.reconnectAttempts=0,this._log("Connected to WebSign Bridge Server"),this.emit("connected"),t()},this._setupWebSocketHandlers(this.ws,o,i)}catch(e){this.connecting=!1,i(e)}}))}_setupWebSocketHandlers(e,t=null,i=null){e.onmessage=e=>{try{const t=JSON.parse(e.data);this.handleMessage(t)}catch(e){this._log("Error parsing message:",e)}},e.onclose=e=>{t&&clearTimeout(t),this.connected=!1,this.connecting=!1,this.deviceConnected=!1,this._log(`Disconnected from server. Code: ${e.code}, Reason: ${e.reason}`),this.emit("disconnected",{code:e.code,reason:e.reason}),1e3!==e.code&&this.reconnectAttempts<this.options.maxReconnectAttempts&&this._scheduleReconnect()},e.onerror=e=>{t&&clearTimeout(t),this._log("WebSocket error:",e),this.connecting=!1,i&&i(e)}}_scheduleReconnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectAttempts++,this._log(`Scheduling reconnection attempt ${this.reconnectAttempts}/${this.options.maxReconnectAttempts} in ${this.options.reconnectDelay}ms`),this.reconnectTimer=setTimeout((()=>{this.connect()}),this.options.reconnectDelay)}disconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempts=this.options.maxReconnectAttempts,this.ws&&(this.ws.close(1e3,"Client disconnect"),this.ws=null,this.connected=!1,this.deviceConnected=!1)}sendMessage(e,t={},i=null){return new Promise((async(n,o)=>{if(!this.connected)return void o(new Error("No conectado al servidor. Use connect() primero."));const r=i||this.options.messageTimeout,a=Date.now();if(this.options.validateResponses&&t.imageData){const e=JSON.stringify(t).length;if(e>this.options.maxImageSize)return void o(new Error(`Message too large: ${e} bytes exceeds limit of ${this.options.maxImageSize} bytes`))}const s=++this.messageId,c={id:s,type:e,timestamp:Date.now(),...t};let l=0;const u=this.options.maxRetries,p=async()=>{try{const t=setTimeout((()=>{this.pendingMessages.delete(s);const t=Date.now()-a;this._warn(`Message timeout after ${t}ms for ${e} (attempt ${l+1}/${u+1})`),l<u?(l++,this._info(`Retrying message ${e} (attempt ${l+1}/${u+1})`),setTimeout(p,this.options.retryDelay)):o(new Error(`Timeout: No se recibió respuesta para ${e} después de ${u+1} intentos`))}),r);this.pendingMessages.set(s,{resolve:i=>{clearTimeout(t);const o=Date.now()-a;if(this.options.performanceMonitoring&&(this.metrics.messagesReceived++,this.metrics.averageResponseTime=(this.metrics.averageResponseTime+o)/2,i&&"object"==typeof i)){const e=JSON.stringify(i).length;this.metrics.totalDataTransferred+=e}this._debug(`Message ${e} completed in ${o}ms`),n(i)},reject:i=>{clearTimeout(t),this._error(`Message ${e} failed:`,i.message),l<u&&this._shouldRetry(i)?(l++,this._info(`Retrying message ${e} due to error (attempt ${l+1}/${u+1})`),setTimeout(p,this.options.retryDelay)):o(i)}}),this._debug(`Sending message: ${e} (attempt ${l+1}/${u+1})`,"debug"===this.options.logLevel?c:{id:s,type:e}),this.ws.send(JSON.stringify(c)),this.options.performanceMonitoring&&this.metrics.messagessent++}catch(t){this._error(`Error sending message ${e}:`,t),l<u?(l++,setTimeout(p,this.options.retryDelay)):o(t)}};await p()}))}_shouldRetry(e){const t=e.message.toLowerCase();return["timeout","network","connection","websocket"].some((e=>t.includes(e)))}handleMessage(e){if(this._log("Received message:",e),"deviceInfo"===e.type&&(this.deviceConnected=e.data?.connected||!1,this.deviceInfo=e.data,this.emit("deviceStatusChanged",e.data)),"deviceConnected"===e.type&&e.data?.deviceInfo&&(this.deviceConnected=e.data.success||!1,this.deviceInfo=e.data.deviceInfo,this.deviceType=e.data.deviceType,this.emit("deviceStatusChanged",e.data.deviceInfo)),e.id&&this.pendingMessages.has(e.id)){const{resolve:t,reject:i}=this.pendingMessages.get(e.id);if(this.pendingMessages.delete(e.id),"error"===e.type||e.data&&!1===e.data.success){const t=e.message||e.data?.error||e.data?.message||"Error desconocido";i(new Error(t))}else t(e.data)}else{const t=e.data||e;this.emit(e.type,t)}}on(e,t){if("function"!=typeof t)throw new Error("El handler debe ser una función");this.eventHandlers.has(e)||this.eventHandlers.set(e,[]),this.eventHandlers.get(e).push(t)}off(e,t){if(this.eventHandlers.has(e)){const i=this.eventHandlers.get(e),n=i.indexOf(t);n>-1&&i.splice(n,1)}}emit(e,t){this.eventHandlers.has(e)&&this.eventHandlers.get(e).forEach((i=>{try{i(t)}catch(t){console.error(`Error en manejador de evento '${e}':`,t)}}))}_log(e,...t){"string"==typeof e&&["debug","info","warn","error"].includes(e)||(t.unshift(e),e="info");const i={debug:0,info:1,warn:2,error:3},n=i[this.options.logLevel]||1;if((i[e]||1)<n)return;const o=(new Date).toISOString().substr(11,12),r=`[WebSignBridge] [${e.toUpperCase()}] [${o}]`;({debug:console.debug,info:console.info,warn:console.warn,error:console.error}[e]||console.log)(r,...t),this.options.performanceMonitoring&&(this.metrics.errors+="error"===e?1:0)}_debug(...e){this._log("debug",...e)}_info(...e){this._log("info",...e)}_warn(...e){this._log("warn",...e)}_error(...e){this._log("error",...e)}async _ensureValidState(e){if(!this.connected)throw new Error("NOT_CONNECTED: No conectado al servidor. Use connect() primero.");if(["writeImage","writeImageROM","writeImageArea","clearScreen","setInkingMode","startCapture","endCapture","getSerialNumber","setHandwritingDisplayArea","setHandwritingThicknessColor"].includes(e)){if(!this.deviceConnected)throw new Error("NO_DEVICE: No hay dispositivo conectado. Use connectDevice() primero.");const t=this.getDeviceInfo();if(console.log("🔧 DEBUG: Validando deviceInfo para operación:",e),console.log("🔧 DEBUG: this.deviceConnected:",this.deviceConnected),console.log("🔧 DEBUG: this.deviceInfo:",this.deviceInfo),console.log("🔧 DEBUG: deviceInfo obtenido:",t),!t)throw new Error("NO_DEVICE_INFO: Información del dispositivo no disponible");await this._validateDeviceCapabilities(e,t)}}async _validateDeviceCapabilities(e,t){const i=t.capability;if(!i)throw new Error("NO_DEVICE_CAPABILITIES: Capacidades del dispositivo no disponibles");switch(e){case"writeImageROM":break;case"setHandwritingThicknessColor":i.supportsColor||console.warn("DEVICE_LIMITED: El dispositivo puede no soportar color completamente");break;case"startCapture":case"endCapture":if(!i.tabletMaxX||!i.tabletMaxY)throw new Error("DEVICE_NO_COORDINATES: El dispositivo no proporciona coordenadas válidas")}}_handleNetworkError(e){if("string"==typeof e)return new Error(e);if(e.code)switch(e.code){case"ECONNREFUSED":return new Error("SERVER_UNAVAILABLE: Servidor WebSign Bridge no disponible. Verifique que esté ejecutándose en el puerto correcto.");case"ENOTFOUND":return new Error("DNS_ERROR: No se puede resolver la dirección del servidor. Verifique la URL.");case"ETIMEDOUT":return new Error("NETWORK_TIMEOUT: Timeout de red. Verifique su conexión a internet.");case"ECONNRESET":return new Error("CONNECTION_RESET: Conexión reiniciada por el servidor. Puede ser un problema de firewall.");case"EHOSTUNREACH":return new Error("HOST_UNREACHABLE: Servidor no alcanzable. Verifique la red.");default:return new Error(`NETWORK_ERROR: Error de red (${e.code}): ${e.message}`)}return e}_validateImageData(e,t="writeImage"){if(!e||"string"!=typeof e)throw new Error("INVALID_IMAGE_DATA: Datos de imagen inválidos. Debe ser una cadena base64.");try{atob(e)}catch(e){throw new Error("INVALID_BASE64: Datos base64 inválidos en la imagen.")}const i=3*e.length/4;if(i>10485760)throw new Error("IMAGE_TOO_LARGE: Imagen demasiado grande (máximo 10MB)");if(i<100)throw new Error("IMAGE_TOO_SMALL: Imagen demasiado pequeña (mínimo 100 bytes)")}async connectDevice(e=null,t=null){if(!this.connected)throw new Error("NOT_CONNECTED: Debe conectar al servidor primero");try{if(!e||!t){const i=await this.getDevices();if(!i||0===i.length)throw new Error("NO_DEVICES_FOUND: No se encontraron dispositivos de firma. Verifique que la tableta esté conectada por USB y que los drivers estén instalados.");const n=i[0];e=n.id,t=n.type,this._log("info",`Auto-conectando con dispositivo: ${e} (${t})`)}const i=await this.sendMessage("connectDevice",{deviceId:e,deviceType:t});if(i.success)return console.log("🔧 DEBUG: Resultado de connectDevice:",i),console.log("🔧 DEBUG: deviceInfo recibido:",i.deviceInfo),this.deviceConnected=!0,this.deviceInfo=i.deviceInfo,this.deviceType=t,i.deviceInfo&&i.deviceInfo.capability||console.warn("DEVICE_INFO_INCOMPLETE: Información del dispositivo incompleta"),i;{const e=i.message||i.error||"Error desconocido";throw e.includes("No se encontraron dispositivos")?new Error("NO_DEVICES_FOUND: No se encontraron dispositivos de firma. Verifique que la tableta esté conectada por USB y que los drivers estén instalados."):e.includes("ya conectado")?new Error("DEVICE_ALREADY_CONNECTED: Ya hay un dispositivo conectado"):e.includes("ocupado")?new Error("DEVICE_BUSY: El dispositivo está siendo usado por otra aplicación"):new Error(`DEVICE_CONNECTION_FAILED: ${e}`)}}catch(e){if(e.message.includes("Timeout"))throw new Error("DEVICE_TIMEOUT: Timeout conectando al dispositivo. Verifique que esté encendido y conectado.");throw e}}async disconnectDevice(){const e=await this.sendMessage("disconnect");return e.success&&(this.deviceConnected=!1,this.deviceInfo=null),e}async hardResetSignotec(){try{this._log("Iniciando hard reset de Signotec...");const e=await this.sendMessage("hardResetSignotec");return e.success?this._log("Hard reset de Signotec completado exitosamente"):this._log("Hard reset de Signotec falló: "+(e.error||"Error desconocido")),e}catch(e){throw this._error("Error en hard reset de Signotec:",e.message),e}}async getDevices(){try{return(await this.sendMessage("getDevices")).devices||[]}catch(e){throw this._error("Error obteniendo dispositivos:",e.message),e}}async getStatus(){return this.sendMessage("getStatus")}async writeImage(e){await this._ensureValidState("writeImage"),this._validateImageData(e,"writeImage");try{return await this.sendMessage("writeImage",{data:e})}catch(e){if(e.message.includes("desconectado"))throw new Error("DEVICE_DISCONNECTED: La tableta se ha desconectado durante la operación");throw this._handleNetworkError(e)}}async writeImageROM(e){await this._ensureValidState("writeImageROM"),this._validateImageData(e,"writeImageROM");try{return await this.sendMessage("writeImageRom",{data:e})}catch(e){if(e.message.includes("desconectado"))throw new Error("DEVICE_DISCONNECTED: La tableta se ha desconectado durante la operación");if(e.message.includes("not a function"))throw new Error("OPERATION_NOT_SUPPORTED: El dispositivo no soporta escritura ROM");throw this._handleNetworkError(e)}}async writeImageRom(e){return this.writeImageROM(e)}async writeImageArea(e,t,i,n,o){if("string"!=typeof e)throw new Error("imageData debe ser una cadena base64");return this.sendMessage("writeImageArea",{imageData:e,x:t,y:i,width:n,height:o})}async clearScreen(){return this.sendMessage("clearScreen")}async setInkingMode(e){if("boolean"!=typeof e)throw new Error("enabled debe ser un booleano");return this.sendMessage("setInkingMode",{enabled:e})}async startCapture(e){return this.sendMessage("startCapture",{sessionId:e})}async endCapture(){return this.sendMessage("endCapture")}async getSerialNumber(){return this.sendMessage("getSerialNumber")}async supportsRomImages(){try{return!0===(await this.sendMessage("supportsRomImages")).success}catch(e){return this._log("warn","Error verificando soporte ROM:",e.message),!1}}async setHandwritingDisplayArea(e,t,i,n){if([e,t,i,n].some((e=>"number"!=typeof e)))throw new Error("Todos los parámetros deben ser números");return this.sendMessage("setHandwritingDisplayArea",{x:e,y:t,width:i,height:n})}async setHandwritingThicknessColor(e,t){if("number"!=typeof e||"number"!=typeof t)throw new Error("penWidth y penColor deben ser números");return this.sendMessage("setHandwritingThicknessColor",{penWidth:e,penColor:t})}async signPDF(e,t){if(!t||"object"!=typeof t)throw new Error("INVALID_CONFIG: Configuración es requerida y debe ser un objeto");t.certificateFingerprint&&""!==t.certificateFingerprint.trim()?await this.validateCertificate(t.certificateFingerprint):console.log("Usando certificado embebido (fingerprint vacío)");const i=this._validateAndConvertPDF(e);this._validateWidgetConfig(t.widget);try{const e={...t,b64PDFContent:i},n=await this.sendMessage("signPDF",{config:e},6e4);if(!n.success){const e=n.error||"Error desconocido";throw e.includes("certificado")?new Error(`CERT_ERROR: ${e}`):e.includes("PDF")?new Error(`PDF_ERROR: ${e}`):e.includes("timestamp")?new Error(`TIMESTAMP_ERROR: ${e}`):new Error(`SIGNING_ERROR: ${e}`)}return n}catch(e){if(e.message.includes("Timeout"))throw new Error("SIGNING_TIMEOUT: La firma tardó demasiado tiempo. Verifique la conexión y el certificado.");throw e}}arrayBufferToBase64(e){let t="";const i=new Uint8Array(e),n=i.byteLength;for(let e=0;e<n;e+=8192){const n=i.subarray(e,e+8192);t+=String.fromCharCode.apply(null,n)}return btoa(t)}_validateAndConvertPDF(e){if(!e)throw new Error("PDF_DATA_REQUIRED: Datos PDF requeridos");let t,i;if("string"==typeof e)t=e,i=3*e.length/4;else if(e instanceof ArrayBuffer)i=e.byteLength,t=this.arrayBufferToBase64(e);else{if(!(e instanceof Uint8Array))throw new Error("INVALID_PDF_TYPE: pdfData debe ser ArrayBuffer, Uint8Array o string (base64)");i=e.length,t=btoa(String.fromCharCode(...e))}if(i>52428800)throw new Error("PDF_TOO_LARGE: PDF demasiado grande (máximo 50MB)");try{"string"==typeof e&&atob(t)}catch(e){throw new Error("INVALID_BASE64: Datos base64 inválidos")}return t}_validateWidgetConfig(e){if(!e||"object"!=typeof e)throw new Error("WIDGET_CONFIG_REQUIRED: Configuración del widget requerida");if(!e.type||!["fixed","float"].includes(e.type))throw new Error('INVALID_WIDGET_TYPE: Tipo de widget debe ser "fixed" o "float"');if("fixed"===e.type){if("number"!=typeof e.x||"number"!=typeof e.y)throw new Error('FIXED_POSITION_REQUIRED: Posición X e Y requeridas para tipo "fixed"');if("number"!=typeof e.page||e.page<0)throw new Error("INVALID_PAGE: Número de página debe ser 0 (todas) o mayor que 0")}else if("float"===e.type&&(!e.text||"string"!=typeof e.text))throw new Error('SEARCH_TEXT_REQUIRED: Texto de búsqueda requerido para tipo "float"')}async getAvailableCertificates(){try{const e=await this.sendMessage("getAvailableCertificates"),t="string"==typeof e?JSON.parse(e):e;let i;if(Array.isArray(t))i=t;else{if(!t||!Array.isArray(t.certificates))return console.warn("getAvailableCertificates: formato de respuesta inesperado:",t),[];i=t.certificates}return i.map((e=>({...e,isExpired:new Date(e.validTo)<new Date,isNotYetValid:new Date(e.validFrom)>new Date,daysUntilExpiry:Math.ceil((new Date(e.validTo)-new Date)/864e5)})))}catch(e){if(e.message.includes("No se encontraron certificados"))return[];throw new Error(`CERT_LOAD_ERROR: Error cargando certificados: ${e.message}`)}}async validateCertificate(e){if(!e)throw new Error("CERT_FINGERPRINT_REQUIRED: Huella del certificado requerida");const t=(await this.getAvailableCertificates()).find((t=>t.fingerprint===e));if(!t)throw new Error("CERT_NOT_FOUND: Certificado no encontrado en el sistema");if(t.isExpired)throw new Error(`CERT_EXPIRED: Certificado expirado el ${t.validTo}`);if(t.isNotYetValid)throw new Error(`CERT_NOT_VALID_YET: Certificado válido desde ${t.validFrom}`);return t.daysUntilExpiry<=30&&console.warn(`CERT_EXPIRING_SOON: El certificado expira en ${t.daysUntilExpiry} días`),t}isConnected(){return this.connected}isDeviceConnected(){return this.deviceConnected}getDeviceInfo(){return this.deviceInfo}canvasToBase64(e,t="image/png"){if(!(e instanceof HTMLCanvasElement))throw new Error("canvas debe ser un HTMLCanvasElement");return e.toDataURL(t).split(",")[1]}fileToBase64(e){return new Promise(((t,i)=>{if(!(e instanceof File))return void i(new Error("file debe ser un objeto File"));const n=new FileReader;n.onload=()=>{const e=n.result.split(",")[1];t(e)},n.onerror=()=>i(n.error),n.readAsDataURL(e)}))}getDeviceInfo(){return this.deviceInfo}async getVersion(){try{return await this.sendMessage("getVersion")}catch(e){if(e.message.includes("Unknown message type")||e.message.includes("getVersion"))return{name:"WebSign Bridge Server",version:"1.1.0",apiVersion:"1.1",buildNumber:"unknown",buildDate:(new Date).toISOString(),platform:"unknown",arch:"unknown",nodeVersion:"unknown",features:["wacom-tablet-support","pdf-signing"]};throw e}}async getAvailableDevices(){try{const e=await this.sendMessage("getDevices");this.availableDevices=e.devices||[];const t=this.availableDevices.filter((e=>"wacom"===e.type)),i=this.availableDevices.filter((e=>"dtu"===e.type)),n=this.availableDevices.filter((e=>"signotec"===e.type));return this._log(`Dispositivos encontrados: ${t.length} Wacom, ${i.length} DTU, ${n.length} Signotec`),this.availableDevices}catch(e){throw this._log("Error obteniendo dispositivos:",e),new Error(`DEVICE_LIST_ERROR: Error obteniendo dispositivos: ${e.message}`)}}async connectToDevice(e,t){if(!e||!t)throw new Error("DEVICE_PARAMS_REQUIRED: deviceId y deviceType son requeridos");if(!["wacom","dtu","signotec"].includes(t))throw new Error('INVALID_DEVICE_TYPE: deviceType debe ser "wacom", "dtu" o "signotec"');try{const i=await this.sendMessage("connectDevice",{deviceId:e,deviceType:t});return i.success&&(this.deviceConnected=!0,this.deviceType=t,this.currentDevice={id:e,type:t},this._log(`Conectado exitosamente a dispositivo ${t}: ${e}`),this.emit("deviceConnected",{deviceId:e,deviceType:t})),i}catch(e){throw this._log("Error conectando dispositivo:",e),new Error(`DEVICE_CONNECTION_ERROR: Error conectando dispositivo: ${e.message}`)}}async getDeviceStatus(){try{const e=await this.sendMessage("getDeviceStatus");return e.status&&(this.deviceConnected=e.status.connected,this.deviceType=e.status.deviceType,this.currentDevice=e.status.device),e.status}catch(e){throw this._log("Error obteniendo estado del dispositivo:",e),new Error(`DEVICE_STATUS_ERROR: Error obteniendo estado: ${e.message}`)}}async startSignatureCapture(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("startCapture");return e.success&&(this._log(`Captura iniciada en dispositivo ${e.deviceType||this.deviceType}`),this.emit("captureStarted",{deviceType:e.deviceType||this.deviceType})),e}catch(e){throw this._log("Error iniciando captura:",e),new Error(`CAPTURE_START_ERROR: Error iniciando captura: ${e.message}`)}}async stopSignatureCapture(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("stopCapture");return e.success&&(this._log(`Captura detenida en dispositivo ${e.deviceType||this.deviceType}`),this.emit("captureStopped",{deviceType:e.deviceType||this.deviceType})),e}catch(e){throw this._log("Error deteniendo captura:",e),new Error(`CAPTURE_STOP_ERROR: Error deteniendo captura: ${e.message}`)}}async getSignatureData(e={}){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");const{validateImage:t=!0,compressResponse:i=this.options.compressionEnabled,maxSize:n=this.options.maxImageSize}=e;try{this._info("Obteniendo datos de firma...");const e=Date.now(),o=await this.sendMessage("getSignature",{compress:i,maxSize:n});if(this._debug("Signature response received:",{hasResult:!!o,hasSignature:!(!o||!o.signature),deviceType:o?.deviceType,responseSize:o?JSON.stringify(o).length:0}),o&&o.signature){const i=o.signature,n=o.deviceType||this.deviceType;if(t&&i.imageData){const e=this._validateImageData(i.imageData);e.valid||(this._warn("Image validation failed:",e.error),i._validationWarning=e.error)}i.imageData&&i.size>1048576&&(this._info(`Processing large image: ${(i.size/1024/1024).toFixed(2)}MB`),i._metadata={originalSize:i.size,format:i.format,dimensions:`${i.width}x${i.height}`,dpi:i.dpi,processingTime:Date.now()-e});const r=Date.now()-e;return this._info(`Firma obtenida de dispositivo ${n} en ${r}ms`),this.emit("signatureObtained",{signature:i,deviceType:n,processingTime:r}),i}return this._warn("No signature data in response",{hasResult:!!o,resultKeys:o?Object.keys(o):[]}),null}catch(e){throw this._error("Error obteniendo firma:",e),new Error(`SIGNATURE_GET_ERROR: Error obteniendo firma: ${e.message}`)}}_validateImageData(e){try{if(!e)return{valid:!1,error:"No image data provided"};if("Buffer"===e.type&&Array.isArray(e.data)){if(0===e.data.length)return{valid:!1,error:"Empty image buffer"};if(e.data.some((e=>"number"!=typeof e||e<0||e>255)))return{valid:!1,error:"Invalid byte values in image data"};if(e.data.length>=2){if("BM"===String.fromCharCode(e.data[0],e.data[1]))return{valid:!0}}return{valid:!0}}if("string"==typeof e)try{return atob(e),{valid:!0}}catch{return{valid:!1,error:"Invalid base64 image data"}}return{valid:!1,error:"Unknown image data format"}}catch(e){return{valid:!1,error:`Validation error: ${e.message}`}}}async clearDeviceDisplay(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("clearDisplay");return e.success&&(this._log(`Pantalla limpiada en dispositivo ${this.deviceType}`),this.emit("displayCleared",{deviceType:this.deviceType})),e}catch(e){throw this._log("Error limpiando pantalla:",e),new Error(`CLEAR_DISPLAY_ERROR: Error limpiando pantalla: ${e.message}`)}}getCurrentDeviceInfo(){return{connected:this.deviceConnected,type:this.deviceType,device:this.currentDevice,availableDevices:this.availableDevices}}isSignotecDevice(){return"signotec"===this.deviceType}async loadPDF(e,t="document.pdf"){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");if("signotec"!==this.deviceType&&"dtu"!==this.deviceType)throw new Error("UNSUPPORTED_DEVICE: La carga de PDF solo está disponible para dispositivos Signotec");if(!e||"string"!=typeof e)throw new Error("INVALID_PDF_DATA: Los datos del PDF deben ser una cadena base64 válida");try{const i=await this.sendMessage("customCommand",{command:"setDisplayPDF",params:{pdfData:e,fileName:t}});return i.success&&this._log(`PDF cargado exitosamente: ${t}`),i}catch(e){throw this._log(`Error al cargar PDF: ${e.message}`,"error"),e}}async loadEBP(e,t=""){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");if(!e||"string"!=typeof e)throw new Error("INVALID_EBP_DATA: Los datos del EBP deben ser una cadena base64 válida");try{const i=await this.sendMessage("customCommand",{command:"loadEBP",params:{ebpData:e,variables:t}});return i.success&&this._log("EBP cargado exitosamente"),i}catch(e){throw this._log(`Error al cargar EBP: ${e.message}`,"error"),e}}async confirmSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("confirmSignature");return e.success&&this._log("Firma confirmada exitosamente"),e}catch(e){throw this._log(`Error al confirmar firma: ${e.message}`,"error"),e}}async cancelSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("cancelSignature");return e.success&&this._log("Firma cancelada exitosamente"),e}catch(e){throw this._log(`Error al cancelar firma: ${e.message}`,"error"),e}}async restartSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("restartSignature");return e.success&&this._log("Firma reiniciada exitosamente"),e}catch(e){throw this._log(`Error al reiniciar firma: ${e.message}`,"error"),e}}async getSignature(e={}){return this.getSignatureData(e)}async clearDisplay(){return this.clearDeviceDisplay()}isWacomDevice(){return"wacom"===this.deviceType}async captureSignatureComplete(e={}){const{timeout:t=3e4,clearFirst:i=!0}=e;if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{return i&&await this.clearDeviceDisplay(),await this.startSignatureCapture(),new Promise(((e,i)=>{const n=setTimeout((()=>{i(new Error("SIGNATURE_TIMEOUT: Timeout esperando firma del usuario"))}),t),o=async()=>{try{clearTimeout(n);const t=await this.getSignatureData();this.off("captureStopped",o),e(t)}catch(e){this.off("captureStopped",o),i(e)}};this.on("captureStopped",o)}))}catch(e){throw this._log("Error en captura completa:",e),new Error(`COMPLETE_CAPTURE_ERROR: Error en captura completa: ${e.message}`)}}getPerformanceMetrics(){return{...this.metrics,uptime:this.metrics.lastConnectionTime?Date.now()-this.metrics.lastConnectionTime:0,pendingMessages:this.pendingMessages.size,cacheSize:this.deviceCache.size,memoryUsage:this._estimateMemoryUsage()}}resetMetrics(){this.metrics={messagessent:0,messagesReceived:0,errors:0,reconnections:0,averageResponseTime:0,lastConnectionTime:Date.now(),totalDataTransferred:0}}_estimateMemoryUsage(){let e=0;return this.pendingMessages.forEach(((t,i)=>{e+=JSON.stringify(i).length})),this.deviceCache.forEach(((t,i)=>{e+=JSON.stringify(i).length+JSON.stringify(t).length})),this.deviceInfo&&(e+=JSON.stringify(this.deviceInfo).length),e}clearCache(){this.deviceCache.clear(),this.availableDevices=[],this.lastDeviceRefresh=0,this._info("Cache cleared")}static checkBrowserCompatibility(){const e={websocket:"undefined"!=typeof WebSocket,json:"undefined"!=typeof JSON,promises:"undefined"!=typeof Promise,arraybuffer:"undefined"!=typeof ArrayBuffer,uint8array:"undefined"!=typeof Uint8Array,blob:"undefined"!=typeof Blob,url:"undefined"!=typeof URL},t=Object.values(e).every(Boolean);return{compatible:t,features:e,recommendations:t?[]:["Este navegador no soporta todas las características necesarias","Se recomienda usar Chrome 60+, Firefox 55+, Safari 11+, o Edge 79+"]}}getSystemInfo(){return{version:"2.0.0",compatibility:WebSignBridgeClient.checkBrowserCompatibility(),connection:{connected:this.connected,serverUrl:this.options.serverUrl,reconnectAttempts:this.reconnectAttempts,lastConnectionTime:this.metrics.lastConnectionTime},device:{connected:this.deviceConnected,type:this.deviceType,info:this.deviceInfo},performance:this.getPerformanceMetrics(),configuration:{logLevel:this.options.logLevel,maxRetries:this.options.maxRetries,messageTimeout:this.options.messageTimeout,performanceMonitoring:this.options.performanceMonitoring}}}async sendCustomCommand(e,t={}){if(!this.connected)throw new Error("CLIENT_NOT_CONNECTED: Cliente no conectado al servidor");try{this._debug(`Enviando comando personalizado: ${e}`,t);const i=await this.sendMessage("customCommand",{command:e,params:t});return this._debug(`Comando personalizado ${e} ejecutado exitosamente`,i),i}catch(t){throw this._error(`Error ejecutando comando personalizado ${e}:`,t),new Error(`CUSTOM_COMMAND_ERROR: Error ejecutando comando ${e}: ${t.message}`)}}static async discover(e={}){const t=e.ports||WebSignBridgeClient.CANDIDATE_PORTS,i=e.timeout||500;try{return await Promise.any(t.map((e=>(async e=>{try{const t=new AbortController,n=setTimeout((()=>t.abort()),i),o=await fetch(`http://localhost:${e}/websign/identify`,{signal:t.signal,mode:"cors"});if(clearTimeout(n),o.ok){const t=await o.json();if("websign-bridge"===t.service)return{port:e,protocol:"http",version:t.version,ports:t.ports,timestamp:t.timestamp}}}catch(e){}throw new Error(`No bridge en puerto ${e}`)})(e))))}catch(e){throw new Error("BRIDGE_NOT_FOUND: No se encontró WebSign Bridge ejecutándose")}}static createWithAutoDiscover(e={}){return new WebSignBridgeClient({...e,autoDiscover:!0,autoConnect:!1!==e.autoConnect})}}"undefined"!=typeof window&&(window.WebSignBridgeClient=WebSignBridgeClient),"undefined"!=typeof module&&module.exports&&(module.exports=WebSignBridgeClient);let webSignBridgeInstance=null;async function getWebSignBridge(){if(webSignBridgeInstance||(webSignBridgeInstance=new WebSignBridgeClient({debug:!0,autoDiscover:!0,autoConnect:!1})),webSignBridgeInstance.isConnected())return webSignBridgeInstance;try{return await Promise.race([webSignBridgeInstance.connect(),new Promise(((e,t)=>setTimeout((()=>t(new Error("Bridge discovery timeout"))),3e3)))]),webSignBridgeInstance}catch(e){console.warn("WebSign Bridge no encontrado:",e.message);try{webSignBridgeInstance.disconnect()}catch{}return webSignBridgeInstance=null,null}}async function removeWebSignBridge(){if(webSignBridgeInstance){if(webSignBridgeInstance.isConnected())try{webSignBridgeInstance.disconnect()}catch{}webSignBridgeInstance=null}}const offlineCallbacks=new Map;let listenerConfigured=!1;async function registerOfflineServiceWorker(e){if("serviceWorker"in navigator)try{const t=await navigator.serviceWorker.getRegistration("/");if(!e)return void(t&&(await t.unregister(),console.log("[WebSign] Service Worker desregistrado (modo offline deshabilitado)")));if(t)console.log("[WebSign] Service Worker ya registrado, reutilizando");else{if(!(await fetch("/offline-sw.js")).ok)throw new Error("No se pudo cargar el Service Worker");await navigator.serviceWorker.register("/offline-sw.js",{scope:"/"}),console.log("[WebSign] Service Worker registrado correctamente para modo offline")}listenerConfigured||(setupServiceWorkerListener(),listenerConfigured=!0)}catch(e){console.warn("[WebSign] Service Worker no disponible (requiere HTTPS válido):",e.message)}else console.warn("[WebSign] Service Worker no soportado en este navegador")}function setupServiceWorkerListener(){navigator.serviceWorker.addEventListener("message",(e=>{"SIGNATURE_COMPLETED"===e.data.type?handleSignatureCompleted(e.data):"SIGNATURES_COMPLETED_MULTIPLE"===e.data.type&&handleMultipleSignaturesCompleted(e.data)}))}async function handleSignatureCompleted(e){console.log("[WebSign] Firma completada desde cola offline:",e.requestId);const{downloadBlob:t}=await Promise.resolve().then((function(){return documentUtils})),i=new Blob([e.data],{type:e.contentType}),n=offlineCallbacks.get(e.requestId);n?(n.autoDownload&&(t(i,`signed-${Date.now()}.pdf`),console.log("[WebSign] PDF firmado descargado automáticamente")),n.callback&&(console.log("[WebSign] Ejecutando callback para petición offline"),n.callback({type:"signed",data:i})),offlineCallbacks.delete(e.requestId)):(console.log("[WebSign] No hay callback registrado, descargando directamente"),t(i,`signed-${e.timestamp}.pdf`),console.log("[WebSign] PDF firmado descargado"));const o=new CustomEvent("websign:offline-signature-completed",{detail:{requestId:e.requestId,blob:i,timestamp:e.timestamp,url:e.url}});window.dispatchEvent(o),console.log("[WebSign] Evento websign:offline-signature-completed disparado")}async function handleMultipleSignaturesCompleted(e){console.log("[WebSign] Múltiples firmas completadas desde cola offline:",e.count);const{downloadBlob:t}=await Promise.resolve().then((function(){return documentUtils})),i=e.signedPdfs.map((e=>new Blob([e.data],{type:e.contentType}))),n=e.requestIds[0],o=offlineCallbacks.get(n);o?(o.autoDownload&&(i.forEach(((e,i)=>{t(e,`signed-${Date.now()}-${i+1}.pdf`)})),console.log(`[WebSign] ${i.length} PDFs firmados descargados automáticamente`)),o.callback&&(console.log("[WebSign] Ejecutando callback signed-multiple para peticiones offline"),o.callback({type:"signed-multiple",data:i})),e.requestIds.forEach((e=>offlineCallbacks.delete(e)))):(console.log("[WebSign] No hay callback registrado, descargando directamente"),i.forEach(((e,i)=>{t(e,`signed-${Date.now()}-${i+1}.pdf`)})),console.log(`[WebSign] ${i.length} PDFs firmados descargados`));const r=new CustomEvent("websign:offline-signatures-completed-multiple",{detail:{requestIds:e.requestIds,blobs:i,count:e.count}});window.dispatchEvent(r),console.log("[WebSign] Evento websign:offline-signatures-completed-multiple disparado")}function registerOfflineCallback(e,t,i){offlineCallbacks.set(e,{callback:t,autoDownload:i,timestamp:Date.now()}),console.log("[WebSign] Callback registrado para petición offline:",e)}function unregisterOfflineCallback(e){offlineCallbacks.delete(e)}function getOfflineCallbacks(){return offlineCallbacks}async function unregisterOfflineServiceWorker(){if(!("serviceWorker"in navigator))return!1;try{const e=await navigator.serviceWorker.getRegistration("/");if(e){const t=await e.unregister();return t&&console.log("[WebSign] Service Worker desregistrado manualmente"),t}return!1}catch(e){return console.error("[WebSign] Error al desregistrar Service Worker:",e),!1}}var offlineServiceWorkerManager=Object.freeze({__proto__:null,registerOfflineServiceWorker:registerOfflineServiceWorker,registerOfflineCallback:registerOfflineCallback,unregisterOfflineCallback:unregisterOfflineCallback,getOfflineCallbacks:getOfflineCallbacks,unregisterOfflineServiceWorker:unregisterOfflineServiceWorker});let modalPromise=null;async function checkPendingRequestsOnStartup(e,t,i=!1){try{if(modalPromise)return console.log("[WebSign] Modal en proceso, esperando..."),void await modalPromise;if(!navigator.onLine)return void console.log("[WebSign] Sin conexión, no se muestra modal de peticiones pendientes");await navigator.serviceWorker.ready;const n=await getPendingRequests();if(n.length>0){if(console.log(`[WebSign] ${n.length} peticiones pendientes encontradas`),e&&(n.forEach((i=>{registerOfflineCallback(i.id,e,t)})),console.log("[WebSign] Callbacks registrados para peticiones pendientes")),i){if(navigator.serviceWorker.controller){const e=n.map((e=>e.id));navigator.serviceWorker.controller.postMessage({type:"PROCESS_SELECTED",requestIds:e})}return}modalPromise=showPendingRequestsModal(n),await modalPromise,modalPromise=null}}catch(e){console.error("[WebSign] Error al comprobar peticiones pendientes:",e),modalPromise=null}}async function getPendingRequests(){return navigator.serviceWorker.controller?new Promise((e=>{const t=new MessageChannel;t.port1.onmessage=t=>{e(t.data.requests||[])},navigator.serviceWorker.controller.postMessage({type:"GET_PENDING_REQUESTS"},[t.port2])})):(console.warn("[WebSign] Service Worker controller no disponible"),[])}async function showPendingRequestsModal(e){return new Promise((t=>{const i=new Set(e.map((e=>e.id))),n=document.createElement("div");n.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n ";const o=document.createElement("div");o.style.cssText="\n background: white;\n padding: 24px;\n border-radius: 8px;\n max-width: 600px;\n width: 90%;\n max-height: 80vh;\n overflow-y: auto;\n position: relative;\n ";const r=navigator.onLine;o.innerHTML=`\n <button id="close-modal" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer; color: #666; line-height: 1;">×</button>\n <h2 style="margin: 0 0 8px 0; color: #0057A2;">Peticiones de Firma Pendientes</h2>\n <p style="margin: 0 0 16px 0; color: #666;">\n Tienes ${e.length} petición${e.length>1?"es":""} de firma guardada${e.length>1?"s":""} mientras estabas sin conexión\n </p>\n <div id="requests-list" style="margin: 16px 0;">\n ${e.map((e=>`\n <div class="request-item" data-request-id="${e.id}" style="padding: 12px; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 8px; display: flex; align-items: center; gap: 12px; background: #f9f9f9;">\n <input type="checkbox" class="request-checkbox" data-request-id="${e.id}" checked style="width: 18px; height: 18px; cursor: pointer; accent-color: #0057A2;">\n <div style="flex: 1;">\n <div style="font-weight: 600; color: #333;">${new Date(e.timestamp).toLocaleString()}</div>\n <div style="font-size: 12px; color: #666; word-break: break-all;">${e.url}</div>\n </div>\n <button class="delete-request" data-request-id="${e.id}" style="background: #d22828; color: white; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;">Eliminar</button>\n </div>\n `)).join("")}\n </div>\n ${r?"":'<div style="padding: 12px; background: #fff3cd; border-radius: 4px; margin-bottom: 16px; color: #856404;">⚠️ Sin conexión. Conéctate para procesar las peticiones.</div>'}\n <div style="display: flex; gap: 12px; justify-content: flex-end; margin-top: 16px;">\n <button id="process-selected" style="padding: 10px 20px; border: none; background: #0057A2; color: white; border-radius: 4px; cursor: pointer; font-weight: 600;" ${r?"":"disabled"}>\n Procesar Seleccionadas\n </button>\n </div>\n `,n.appendChild(o),document.body.appendChild(n);const a=()=>{const e=o.querySelector("#process-selected"),t=o.querySelector('[style*="fff3cd"]');navigator.onLine?(e.disabled=!1,t&&(t.style.display="none")):(e.disabled=!0,t&&(t.style.display="block"))};window.addEventListener("online",a),window.addEventListener("offline",a),o.querySelector("#close-modal").addEventListener("click",(()=>{n.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a),t()})),o.querySelectorAll(".request-checkbox").forEach((e=>{e.addEventListener("change",(e=>{const t=e.target.dataset.requestId;e.target.checked?i.add(t):i.delete(t)}))})),o.querySelectorAll(".delete-request").forEach((e=>{e.addEventListener("click",(async e=>{const r=e.target.dataset.requestId;await cancelRequest(r);o.querySelector(`.request-item[data-request-id="${r}"]`).remove(),i.delete(r),0===o.querySelectorAll(".request-item").length&&(n.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a),t())}))})),o.querySelector("#process-selected").addEventListener("click",(async()=>{if(0===i.size)return void alert("No hay peticiones seleccionadas");n.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a);const{unregisterOfflineCallback:o}=await Promise.resolve().then((function(){return offlineServiceWorkerManager}));e.forEach((e=>{i.has(e.id)||o(e.id)})),navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({type:"PROCESS_SELECTED",requestIds:Array.from(i)}),t()}))}))}async function cancelRequest(e){if(navigator.serviceWorker.controller)return new Promise((t=>{const i=new MessageChannel;i.port1.onmessage=()=>{console.log(`[WebSign] Petición ${e} cancelada`),t()},navigator.serviceWorker.controller.postMessage({type:"CANCEL_REQUEST",requestId:e},[i.port2])}));console.warn("[WebSign] Service Worker controller no disponible")}class WebSign{constructor(e,t={},i,n=null){return this.webSignConfig=deepMerge(webSignConfig,t),e?(this.devicePermissions=new DevicePermissions(this.webSignConfig),this.VERSION="3.4.10",console.log("App Version WC:",this.VERSION),this.context=n,this.getWebSignContainer()||!0===this.webSignConfig.viewPDF?(this.shouldInitPdfViewer=this.webSignConfig.viewPDF,this.parseInputFiles(e),this.callback=i,this.loadingSpinner=new LoadingSpinner(this.context),void this.startApp()):(handleDebugMessage("web-sign div id not found in document","error",this.webSignConfig.debug),void i({type:"error",error:"web-sign div id not found in document"}))):(handleDebugMessage("Empty File","error",this.webSignConfig.debug),void i({type:"error",error:"Empty file"}))}parseInputFiles(e){Array.isArray(e)?(this.files=e,this.displayFile=(e.length,e[0])):(this.files=[e],this.displayFile=e)}isMultipleDocument(){return this.files.length>1}async startApp(){if(this.webSignConfig.requestLocation&&(this.locationPromise=requestLocation()),await registerOfflineServiceWorker(this.webSignConfig.offlineMode),this.webSignConfig.offlineMode&&await checkPendingRequestsOnStartup(this.callback,this.webSignConfig.autoDownload,this.webSignConfig.offlineModeAutoFetch),this.webSignConfig.enableBridge){if(this.webSignBridge=await getWebSignBridge(),!this.webSignBridge&&(this.callback({type:"error",error:"bridge not running"}),this.webSignConfig.enforceBridge))return}else removeWebSignBridge();if(this.isMultipleDocument()&&this.shouldInitPdfViewer){this.loadingSpinner.show();try{const e=await joinFilesIntoOneToDisplay(this.files);this.displayFile=e}catch(e){handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}this.loadingSpinner.hide()}if(this.webSignBridge&&"certificate"===this.webSignConfig.signatureType)return void this.initWithCert();await this.devicePermissions.hasDevicePermissions()||!this.webSignConfig.requestPermissions||"display"===this.webSignConfig.signatureType?("auto"===this.webSignConfig.signatureType&&await this.verifyTypeOfDevice(),this.init()):this.devicePermissions.showPermissionButton((async e=>{this.webSignConfig={...this.webSignConfig,signatureType:e},this.init()}))}async verifyTypeOfDevice(){const e=await setTypeOfDeviceToUse(this.webSignConfig);this.webSignConfig={...this.webSignConfig,signatureType:e}}getWebSignContainer(){return getElement(this.context,"web-sign")}async init(){let e="";e="certificate"===this.webSignConfig.signatureType?"display":this.webSignConfig.signatureType,createWebSignContainers(this.webSignConfig.mainContainerWidth,this.webSignConfig.mainContainerHeight,this.webSignConfig.signatureContainerWidth,this.webSignConfig.signatureContainerHeight,e,this.context),this.shouldInitPdfViewer&&!this.webSignBridge&&(console.log("Init pdf viewer"),await this.initializePdfViewer()),"dtu"!==this.webSignConfig.signatureType||this.webSignBridge||this.initDTU(this.displayFile),this.webSignConfig.viewPDF||this.startSignature()}async initWithCert(){let e;createWebSignContainers(this.webSignConfig.mainContainerWidth,this.webSignConfig.mainContainerHeight,this.webSignConfig.signatureContainerWidth,this.webSignConfig.signatureContainerHeight,this.webSignConfig.signatureType,this.context),this.loadingSpinner.show(),handleDebugMessage("Obteniendo certificados","info",this.webSignConfig.debug);try{e=await this.webSignBridge.getAvailableCertificates()}catch(e){return this.loadingSpinner.hide(),handleDebugMessage(`Error al obtener certificados: ${e?.message||e}`,"error",this.webSignConfig.debug),void this.callback({type:"error",error:"Signing with cert error or canceled"})}if(this.loadingSpinner.hide(),handleDebugMessage("Certificados cargados","success",this.webSignConfig.debug),Array.isArray(e)&&0!==e.length)if(e&&1===e.length){this.loadingSpinner.show();try{handleDebugMessage("Firmando con: "+(e[0].issuer||"N/D"),"success",this.webSignConfig.debug),await this.signWithCert(e[0])}catch(e){handleDebugMessage(`Error firmando: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"})}finally{this.loadingSpinner.hide()}}else{const t=mountCertificateTable(e,{onSelect:(e,t)=>{handleDebugMessage("Certificado seleccionado: "+(e.issuer||"N/D"),"info",this.webSignConfig.debug)},onSign:async(e,i,n)=>{n?.setBusy?.(!0),this.loadingSpinner.show(),handleDebugMessage("Firmando con: "+(e.issuer||"N/D"),"success",this.webSignConfig.debug);try{await this.signWithCert(e),t.destroy()}catch(e){handleDebugMessage(`Error firmando: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"})}finally{this.loadingSpinner.hide(),n?.setBusy?.(!1)}},onCancel:(e,i)=>{handleDebugMessage("Firma cancelada.","error",this.webSignConfig.debug),t.destroy(),this.callback({type:"cancel"})}})}else{handleDebugMessage("No hay certificados disponibles. Intentando otro tipo de firma.","info",this.webSignConfig.debug);const e=()=>{handleDebugMessage("No hay ningún dispositivo disponible. Cancelando firma.","error",this.webSignConfig.debug),this.callback?.({type:"cancel"})},t=e=>{const t=e?.[0];if(!t)return null;switch(t.type){case"dtu":return"dtu";case"wacom":case"signotec":return"stu";default:return null}};try{const i=t(await this.webSignBridge.getAvailableDevices());if(!i)return void e();this.webSignConfig.signatureType=i,await this.startApp()}catch{e()}}}async signWithCert(e){try{const t=await transformFileTo(this.displayFile,"base64"),i={...this.webSignConfig.widget},n={b64PDFContent:t,properties:this.webSignConfig.properties,options:this.webSignConfig.options,timestampProvider:this.webSignConfig.timestampProvider,ocspProvider:this.webSignConfig.ocspProvider,certificateFingerprint:e.fingerprint,deviceId:"",authenticationKey:this.webSignConfig.bearerToken,aarBaseUrl:getAuthenticationUrl(this.webSignConfig.signatureEnvironment),widget:i};i.b64Image||(i.b64Image="/9j/4AAQSkZJRgABAQAAAQABAAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjAtYzAwMCA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAwOjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjAyMSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkRGQTkzMTc0RDk1MTExRURCMDEwOUE2RjhGOTM4MDg2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkRGQTkzMTc1RDk1MTExRURCMDEwOUE2RjhGOTM4MDg2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REZBOTMxNzJEOTUxMTFFREIwMTA5QTZGOEY5MzgwODYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REZBOTMxNzNEOTUxMTFFREIwMTA5QTZGOEY5MzgwODYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wgARCACoAWQDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAYHAwQFAgH/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAQQFAgMG/9oADAMBAAIQAxAAAAG5QAAAAAAAAAAAAAAAAAAAAAAAEY492hP1ca/tUs9V0r4mTDP2QAAAAAAAAAAAAAAAAAEUldbXqGGS93d78uFtdNUtxOIzzhbHzE30I7t0NKVChvAAAHEynWAAAAAAAIeTA550HF7QAAAqq1am1si1vZk6w5XXHuGYJhr/ADWKQmV9CRuOefvY6tpKSQjaZIrXMjPJ6vuIyNWBFjq49FiuHrEbsalpUWE42ZPTVrkRYyupsbNcTWOk65XVjRvdfXyJyK8xosdXffJKE+aosuvtfGs98hOfodSK7E90ceJbULsL1p93S3YhhfWR20a26JOKo6PWJTWEx0yYfRNV2pVlporKfV1agicsr87Eo5nQKxtGsbOFUWlWpZWUTXU2ry0URX3yJWdSsLPqwtCA2DVhN+4J4vA3M6JME8GOdTBsY/j128HHEh5jnU7kCtWr7b0sX7BZ1x8T6jlySr5ITRBZWRzpIWWpyYnsnKs6v7AKttKopGTioutrlnc7qcpMXntRTBHaic3qcuDXhWA49uVtZJV1nVnvlgVZZtaloVbaVVFqoLoGrYNdWqegmOQ+0oXq5Ml6FObXrXtSHeI7Phv2ZC5pVuBnbOLR6Y1doGlujDmDz6DFq74efQA1vWcNfYGnuB59B51dwPPoPHsc/f8Ao8+gAA+cTuO/KA7czXKGPIUNMEgAAAAAAAAAADCjM8eww5gaxssP0yhIAAAAAAAAAAAGpG5Hyfer0PWls89aGXR2/XywbOPdidT772Ing9Txu9c6e9y+1x3xepw+l3z5w9TmROruZMfXG5z+pxue+8zq9nMI6AAAAAAAAAAAa2yRq7QAkAB49kfPokAAAAAAAAAAAAAAAAAAAAAAAAAAD//EACwQAAEEAgEDAwIHAQEAAAAAAAQBAgMFAAYSEBETFBUjICQWISIwQFBgNXD/2gAIAQEAAQUC/wDCTLkeFzr6VcdcmOxbI12MNLatZY+Z39NsZToBqypkKjbRipjakFMaAG3LgGFo7FVrmL3Y00d0/wDSbS7uaC3gH1vX8QAAO7S7JXurwf1/sXJqgh1JLzAf3622lLsssCmhiVJ7bCH67xfJctTs3qco7GFFTGy11e2FP2dyf2Hp4/FV/VtU0nrmJxb9UzuEOnN5E5aB+uEqgmgC/WvzX3U8yIVncmxJr4Bxn9LS4HBd7vbzIttcw5UW0Vh0traADG3FvPiWN6mXJZJkkbeEZM8Q0MuwkSye432Lc2sLaY9bAe2s5ApjC5CbT34zKguUwexNgBh99Pnd7jfY68sIMryPVB3T/HVaczsLl5ZrXIM9ZB5HtjYTsTnS+43y57tcRpSWa2PRy9m0vyXHS0smjYGLPYTFFxBs19FVuHToMHrYaGE9KxE/FM8iQwa+P7hY9LL59pzaZnzngixCD5tT+NTq7OFRlZ8+09C+9rsUUbImZub/AMq9njA2p/Gp1dnGnzbV8lgxOLNvJVGUwTAg8vH8KnT2dg8PdwC1dvewy1t8q6x5GdmQwqvd1G3iBm2ScayktAga52yiZNdHFN16rcHmyycKfUo+Nb0rvn2rA/udr6bk/wCGqZ462ReLNRTmdkzuEWoN5mdNnXzXKfkm5P7QVMfirMsPn2rLT7nZ+m1v41Wss4U+XzuNVqbfk2AiV0lTU8elo/xgJgTeAmbj39JSBhvrGwwt67d/zddTtTZZHQgw6k3nYZq353GKqNS/MjPPYnFls/x1mms+3y2XtWaYnwZPLHBFFMlhsmbcvOwjbxZlX8+0YP8Aq27ptNhEQtZH4q7Npd2rtUb9qQw9JvXERYMcMQ7YX9goG85elwJ60Gts56rPxGF2dso2AEeqEvxXl1tPdIEPLfyzqHWSNzTG/b5Is1NdO2Ufj2s7txo0MV/ltC4iup7Va1tdeRGlkRpNBWGS0xUuyRdoQj7WatYxdqza4ZYzmbNHxe/jDp6eQzLpk1fdfiUfgpFpc5ehwhtanFubDAs1bR2LQ8HMGI6eNnPZH/rqGc7DrJHHInt4ORjDx9ZRBZXRRRxJiIidJI2SNjDEjdnZO/SSCGRY4oo+k0MMyQijQrnZO+KiKiCjIuI1E6Oa1zWghtcmKiL9B9G2R5ARQyjWJcOMvXcSZ5CZtegXl/UlVYk+SUcyKLS9nMa1jf8ADyyMijY5HNxJGOf0fNEyWWRkTObPJ/JLc5gwzyhKYyZ0Uh86jjTSHjuSUokhD50BnnLgiWQyEuKcwlxU85dRMr/URyllZWTSEgSGOZAbO+F7ZyyJnEpFli0zwyGJFNA07vHOYQMDI+YP+MZEswkw5coXpyZTbGF80KrPNawwGwugAeyCwhllxg5Lzg4JIQ3hzNC8MrzYRToxBY0GCGglIqfTlSmAwOgjeDL6Vw5c5EgD5B4vVvxBD/bYm8Iv5JEEU7IB4YG/sOaj2p+Sf6L/xAAvEQABAwIEBAQFBQAAAAAAAAABAgMRAAQFEiExICJAQRATMFEUcZGx8AZQYYHR/9oACAEDAQE/AeodxO2bMFVLx23TsDVtjTLy8h0PSYk4UW5irfDWA2MyZNJs2E7IH0rE7TzLzIwO2tHE3H3g1aiY3PR4vqhKPc+DrqGk5lmBS1uYkuE8rf3/AN+VW1s3bIyNjgn1J8b/AJrhpNXN03bJzLpLDt+rzbjRHt+fesNdVc3oJ2TMD29IcJo8DnPiCf4pTTfxBcuJ+mlXVwj4Va0GdK/TzfMtfEOMeJ4L23dDgfZ3pGMFByvIrEsRYdY8trvWBtFFvmPc9K4yh0QsTQwe1CpigI0HQExUj1nQrNI9qlZCiP6oEk6TFAOZZNJCie8UEL776U1mmTSSuPnFEORPesq9Sn80pUxpNJ219UgHegI2/Yf/xAAsEQABAwIEBQEJAAAAAAAAAAABAgMRAAQFEiFAEyIxQVEwEBQyUGFxkbHw/9oACAECAQE/Adw3h9wsSE0MJe7xT+HONJzddphrYcuBNP4i+pZgwKNw6eqjVm/lt8zhr3RLaCp3Txs8I0WpfgexCFLOVNBKLNPNqr9U66p1WZWzsOW2eXVvbrfVlTS3W7McNnVXmrxsM28dztG+XDlHyaDy+AG2Y/OtMMq46UqFYur4U7SyuWuEWHulLwkKGZlU1ZWLrbudztWJuZno8bVtxbZlJijiVwRE7KPWaIiD5qEykUQANYmiW80CiUx9aKk9umtOZYgUoIB+00CiY7VmRoFf2tJjvFK66eqDFEz1+Q//xABBEAACAQIDBQMHCgUDBQAAAAABAgMAEQQSURATITFBIlJhIzJCYnGRsQUUIDBAcoGhwdEzNFBjoyRg4TVTcIOS/9oACAEBAAY/Av8AwSUjBmYacq7ECD2m9cN2vsFcZ/cKv84f8Tet1NbP0Ov9HESGzSfCt677uPpqa4vKfxr+ET7Wrhh0/GjPEoQrzt1oMOYoNqK3Ifjr0/osaaJUK6IPoEd4gVv8V2Ix01rJCPJjX0qE8oyi91X6nfKoY5gtjSYiRAha/AfYHw26QIubtX02PiHUsF6DrTSLE0eVrcfqGX2LQH0BLiOSG4HjQRQcvoqKEkvGTTT6qBNWJrDJ/bH04IY5GXs8bHU0BoPpu+i3qeU9347DhzIY7kG4FblXL9rMT9R7Zv1+h2uL9FrU/ktGJTmmt2jt3fGSXujpWaDA9n7hNZpsEMv3CKKZd3KBfLrsyW3kvdHT21eDBi3ghNdrAX/9ZqKPE4fcMvTj1pU0FqaaZsqCsmDwl/bxNfyX+I1mn+T7KOZIIppTFu7NbneljjwjzXW9x0pcS0BDLbyfsr/px/Omllg3PasBW8mP3VHM0RhMGLewsa/kv8RoHE/J+Uam61HiMmTOL2rEN6lqmfV7flsiyxCQvfrUcjDKWUEii7sFUcSTWTBYfP4t1/CrjBf4jRMnydwHM5SKkvDu8luuwmkPiW27qKzS/ktF2Y2v2nNfNcEOPpPU0p6nZLOfQW9SYzE+Uynr1ba254JnflpTytyRb1LisSM4XtG/VjtROgZF2RYGPpbh6xpYolAsOJ12Ed9wKjPfJbZJJozn9Nu4v5NTl/Ac6CRqFUcgNmGi9rVAmkYojvuBUZ7xLbIIfV+JoLoKiwinzu01KMo3hF3bx2Yg+pb31NJ3pLbJn0Q0Tomww4U+2T9qEs91i/Nq4AKqiiT1oHvEnZl77gUsUhfeXJay12IZW91GPBYJ1J9LnTTz/wAZ+FtBUvrWWi9uLudsj9A7H3cNjOeIV2Pu24ePViaw6f2xTNoKnmPd+J2O/dW9Tznu/HbDDooHvNWqBNWJrDppGNiJ0DqPdsSLoGVf125e84FResS357JvHhU7+AFLhIMx4XfLQmxQ49E/fZM3q22RL6o2Q/frDynDRF2XiStdmKMexdqj+4Kw/sPx2Z5T2j5q9TU8x7vxOydjo3x2XJsBUawcVTsg60FHQViG/tmp5NXt+WzEkf8AbNYg+sNhllcKi8yajlUHKXFr6DZBF6nxNKugtskk6BnOw36SN8Nq4eE5hGbs3S9YdNIxsUayCpX1e1GTDvCVPosK/wBTgZB4p2qyxydrQ8DQXvNSJqbbXhHn819tHC4mBsoPLkRX8Ob3V2cPKfdST5Cmb0TTpGLuvaUa182nidgp4W5jwrdYDCMXOvH8qfH/ACk+9nykgHktYiTVgNjSZLoSbesprs4eW/jarSD5thPj+9YLBwiyrl/Hjf8ATZNCnnMvCnglhLDNe3Ig0uHWF1LA8SakiPpqRUkM8RIPnD9RVocNIzdM1LN8okxwDzY+VTBAAsQNgOnIbI8YAclhx0IobzDNm62bhRk0W9Tzer8TsGNVeyzZgeniK44eXNpwrdwJ83w/Vv8AmsHhIebG7Hq3KgB02Nl5oc1NHKCY248OleSmU+HXZnyLm1tUMegJqLw4/QtIiuPEV/Jwf/ArsQRr7F25pcPE51K1aONUHgNnAW2ZZEVhoRWZMNCp8EGy9hfbeSJGPitdiNF9g2WliR/vC9XigjQ+C7L2GyxFxVxBED93ZwAGzKwDDQ1mGFhB+4NnED6BkwrhCfRPKvKxMB3hyrszEjRuNdrDgt4NRlk5mmxBHC1h/Sr7vI2qcK8nKjDx4VfESXHdWgqiwHIf7IMkjBVHMmgw5HjsZA6ll84X5bUiZwHfzRrReRgqjmTW6zDPa+Xrb7VI6FQVW/aFxUb5onuqZFynmx68fGsOiAEyyZTfSxppFXM3JV1JqAyTQvvJVQqI7c/xqZcO8cUcTZLsuYsetCUqkkhxG6XLwzcbVd900srhIkF7L7T1rDRSSxSiZiCBHa1hfWphFuo1SQpnYXvbwrDteNDPIqNw9b/isHDiFilZnY3y8rCnlhkihhViq3TMWt1qKeQAM4vwrGTxxx50mES8PO5Dj76w6oATLKFN9KmjgEaLHJl3jceg6VjsQIVJRhGpHNjYfvUaYiaJlllRSqx+Ot6x0rRrbDqouObeFK88sIHpIqcvxvTYxJIooeJQFLkgdTxqGaQAM6Bjb7PLCpyl0K3qNCsKyROrABjlNqgxE7RgR5vJr0v8aXdlc6SK4zcjasMkrR+Tu5jj45eFgSfxqaOMwiOSUvvD5wv4VgoiyncPnfxPH96hkhyl4pM1m5GosViHjsisAi9L0Yyy70ljfpcmsHHFuy+HKsQ3JuFQ4h8gCRkWB9I2o4NHhRO1aTmxv4VHGxHk0AJ9lI6WztPv7NyPavUGImeMLHfya+zWnzkFnkZzbxNSqGTeNiN8NOfKoJZ2jVY3zbtePTWsYhdQ08mdTpa1vhRWeKFFtzVyf0r5jngjUJkzi5LftSp3Rb7VkmjV152NZYYkjHqj6kqwBB5g1Yf7j//EACwQAQABAwEHAwQDAQEAAAAAAAERACExQRBRYXGBkaGxwfAg0eHxMEBQYHD/2gAIAQEAAT8h/wDCbXQGcDrXmnPsoz1L60fCnIPSo6XoPNOUZY7H5f46mkopoM0RmG5NHp2D2rM8yUT4KfWoALQEAmMU4sJI1L2g1cKdjUd0/wCLuwn7rXx0R9G8n332o5zKFZ5txUFRaYYbuVPNSud+E/wyb8iQX/VPAu5tAx/QnfawphQbIsAb5LEUJwsWM/wMVpF2K4UEfRAIyFrya0TFL7powTMaPz/i4v70PzTIZJOt/rPpOHLwVdeYCfrFCw3YUufBHmp9thEBdJhq+qpJF39fwNfX0z6EqUxby/it6eOoYZzix9ttrIcr+TpRFMWE8ujLIypu9PSp4mQbx2OX3JmiG9aV2Pr96ufwnGsXNFqZZvUTYPsKIiG6+lIYXS9OhQt8PlrTEuEuV1Cq1XBjWtdjFOyLX6K/d/ZUkIXVuQXvUpt7ZDwpeFo9goC7M+GtHgOwBN3pJ9lLMXq8UMx1t71YfGOR+WzRgExgI+9DlGRxJR/j0AKaR+k08go0o+etXlilDBUMnGSTGZ+2zhSTQX7y7y7ZbeP3OPCv0TEikIA21p92nBVIl2XgJAb3TzReQx3j3l5UW2NggQaKZ5g+hVzRwCTAOQUAEBAbIZ1J0u7E8fMw9j3okhgLve7I7b+Tn2r4ozHts37OybWcdKcaTnRX/gEBssjM+kVbmLnnFfCzv7VJBfz2yMXSdYKhLAFNqDH1DB39KGcWhXVpyNmhcr0verQaDkB99kfZR4ribvoUoErBXY8vjvTgsgPhahIc7BYCkvJUtfEkt7bEMuU5Z+1LDIrfO/lUyG+MPegSfFijiWCh4MEJT1t7XG/mtFbyU8Cx77Y5nsZsaIC9EG2MTkTkfmtOITuTQqYRp80POT22cXDsKjhc81O1gaIAAIDFX7yPQ/NfIxE7IZ/sZOy5r9DF3vt+M7PtU6/NbE8G4O5Km3DuP1V+qgC7uKEBub6fGlYriJ5Le+xZmIm2CWYHPajyJTFWvDqFBBbY00zN5ooGqPdsf7qeWkKXL+cntsGuBtlyYEqtikQeGrXJwocEAK0zQDmkVBGwHp+WxMwPToDVI+HYdpJoBMPHKGfbZDt4EnGgDcFsb++wTZfdxdFtkp0DLcKIH9HYgLiPZojVeAfmo3RY73rRDq8KCX3SaIPcZ0L0pmT8qACDZLkAjuIVJ+Yj5uNEovE3dH70eyXFHvWA/XVL1McRvg0qYIk48RDWGLhvHR7tWzFKmx84UepuvIn32SLvpWLzO8os17qB3mgxEkpCff6KACVRqpJd7sXfbTvS8eKcTMjexDSVWADgmsJHcSop8GFkxvCr+rggPEtOmWRuemnNvWmLpEAPfYoMits7WrVdhC9VHo6eM0VmffJskDk35EJ570XQ+JDvNM3Pvrnq5FDNLU5GHwocCEGyLKmiahn1pVEbslRRJu9HY7OjHW71JMyJz/TUQiRL6H0cN2E1dm5VcOVpt4Spa1wLoZSSXo2CHA2c7BorixkDsXn4yNvGxxNeE3NkKSbmnEDxmwNAlyxsZCTIlcZ8BphIrxeGxks5CSuJHSSgBAQUsKkxJtbkOKvyEfT7qkQLidxUGE+Eq174QFKCbowG4qTg63v/AMlBIakrl8hiuh21UgFDq9aNuaA0/wB4hx/CoZopLyiApH5EDsivHDdLEmm2QEe9hWQqwsVu7zy4Exu/tL1ZPAX3lMtgIhgZZdlDIjuEhfFXWuTsqA7tAw2Qhqh3Aalh3NgR1EBMVErFCBzXbNmh5l8yGegL4MU/GADCSGVAePmaS0jWbzUFpRNneL4yoUU8mBlkFb4vV+kMpCFXIJGpxVAbZt4qeSA1O8hVbgNFIKvirZ2kcJADmVvjnTvBPwwvMVO7P40tuRUHPYryTdzTvU2Nur0H2Khl5lmVyGYo2BhgST/XLSMLSSKV9mwOlYk80WxTSpBAzF2d1D5BOxFMNO1XegbgZZssa0JOGijelsLxmpeavLiw60UtJXQYRJ0zV2gQ4cLy5typfhGZuD7lK2pAjCG8TlnFX0j2MJhbEFH4EJUCUwgb5vQDJplZdqDHGSg2h5kVIUrvoTAZZb8KIdCO5DxFLfrzmUFF0CsgH/GQKi7LuOtRVym4LFo5mDF4vAR60pTDCgco0ZzQl4E9D+0GGmAyTTZQZSGf4SjtAJEoAAAYP+j/AP/aAAwDAQACAAMAAAAQ8888888888888888888888880258888888888888888888+9cF/888848888888848888q9+1ex983C915aw7xztw7x8XwXktKCa8em9xe2cuyv/APPvLB0zedlTv3kurFiu3qprs3vH+UNPDHLLPLLPPPPHPDPHPPPPzXvPPPPPPOPPPPNdf/uvPPPPPPPPPPPPD/zh9wo0JNZDvPPPPPPPPPPPLnvPPLXPPPPPPPPPPPPPPPPPPPPPPPPPPPP/xAApEQEAAgIABAUFAQEBAAAAAAABABEhMRBBUWFxgZGh0SAwQMHwseHx/9oACAEDAQE/EPyEVhOgvvr3mAV5Hz+oeJbBdVfS+r4fiOqpaPXftcWbgFu9+GpkvRPiYwjR5Ac2vIKr/wBgyii4armjyN528h+7f1Om/gr9wKKiGoc2M88grhZo7qMaG3lBtA916rzf4ly+I3FqXLgy5cG47jxXw8/37nxLyeBzfD5hpKsnUfHqeVGsOhIMAqsHnmMEJuO+BDrHUNcDwNzn9Bz4Yvo/S/uZ7M4tVDWSz1ruXEBxYsbylfuWO5Aetr/hHJBJZNMu9TSDUW4wY7l9OC6Y8FkN8MtIMn9vGK8KltQ9vh+Y5S1l4Sqznq4NXHYbnywH+P4tUo7kzDeytfPqwABQfdUC2DeYI6gZLM1Xn7zldYgrq/x4xJCf8GfW8RrzFbb11vAr2qs1LdGwMeWXul+3WLDCy7zVGLy5bfiMzdQe2KXt18JebzGb1eNeGdYe8eEv2C1V9Hxlbk5PhhoDz86iSNvlebpVt1brENFUU9bvFcyjfQlgm33QaFkAUKPoQSn83//EACgRAQABAwIFBAIDAAAAAAAAAAERACExEEFRYXGRoUCB0fAwwSCx4f/aAAgBAgEBPxD1AqIPFDxnxTch7vxSwIDMZ9IJmQl7Y81mbGA4Vn17tS8q6G64scb1Iu4sMzz+9fRiW3fvillmjYStCmzLGw/XXfaliy/10qKjSKdI0jSNNtYqNB0iPD81D3q7HWlt5s8H3hg3lp+LqSuVz+tG+m2jTRo0abVtRRptoftFz4q1Na8XHezD2nrUgwyWbWmrPUfvmio020adXSKdCiop0TY2yPD45eaiBHP5PigoQSi48qKM4B759LKkuTUz++CaVWX8oKwaImaBbBQkmPzDMEImeH3tQbEePfHagDgTgjPS9jnm01AAQr/hyLeaOGzA2tMu2LEUciHlvjnwqJQt7RmL56251dEYOsAB3Kn1GB1uS+PNCCDnHMTjkVcbTJwiLzxnbnSFuH5UUjDSKVL/AAx63//EACwQAQABAwIGAQMFAQEBAAAAAAERACExQVEQYXGBkaGxIDDBQFDR8PHhYHD/2gAIAQEAAT8Q/wDhCwUjkpRVtnL0Gv70dtRsX+s48mogPn/kUKfmnqJFFeNbyYuJg6LPz+zZjrnCwdJkPNbSq40YUJAM3fFACnyFQQkN/wAFKiDo5vzKmFTcyDkCKY50xEs2RGRq1QkeUk0ckyETtGp9c/2VZ6QQ2ZXoKZMBOhvGfoiO/tn9OtG4sm4G6/6NFNfkMUKNEaZq/gayN5T5Wtrrz+xNqY5LluXwqgrBMZEMt7hP6BOXiI5JDa7HngbxYIAABbF2pGAM0QMidfsKPIy+T2tBs/4EfQO6K6WoA1Nts1bxTdS8jL8XpF/jI2+vN43+08pYJO3HzoC7r1CXz9Z/NLJMFMOxVxSkTdgifrZSSnqNBTe7mV8+EdGCHmCFw0oYFO0AiDQB9iwcBCOQ+D6Ic55vcdubxNAwymwESfR7ebQlEXpC426M76cWDigIC4WtLbNGsIsU8CkbVwNHchVqGh8C6qHJEknAVYtMExuGhloyZeH3AFO2HYP4VZTQwhIsImKOIQvsH4qeGq+V0BlXQKDXJDPPsZ0mrRTsR/lUV0UWJi6iUkCbGwwFSxGaSgOiEsFCvlo4IZNLKZWm87cA6sF0IkmA1U7VdStBnbD5WxQsI2BxzsK7XqP4petWgdiCLTobCmrxkL4nvULSFuduk7wUW4n5fCRqGqjbrDqKm9lEGCg6xNJeWtAsq1ciiS3MuY6tETp4H8lJN2gOMqwhUFqCVuIIG0vPAVsP4E1eTKI1DiDNfaTPM3f6bJxikWRdjVjQsW5Uv61pIFm/twYDacC3JVBVXucASJJPJHdB3oHciBkIHIEgxc2oAAADBSSUCIOBAIiEaTFYmJJiRGO8VFBdSIVjYLGMUTACALAcDd5IzAD5uCFhc0IhJrIeaDeAHzVsqs8GjZGTkuU/31XwFLenSn3HGEaLOC/fMp8m1C1QGBwmQuUTmAPlogrEG0K+1q7MWDe7W8QS7cWHoOCMVrXT+GKIoAk6EU0AUVkQ3WTQZjHRkss6AcuF/wCRDOqKp+ggm/5ZcFUAOecqmIxfd/I0iABKuArcqVjye3w3phyvVOjqc2XTcCF4MAFadRRR1Vmhj4WfPAifpzcSvZRMI9WGwSQYBrU9pAXPhUp8Fv7yA82YrFfJF9LOpImNqioopPTn0NKqRm4DiBAZL5SD2HCLxVLoN7Y45ld3CE90E4uIjCC9rStwtdgFoRLWXaU+fCZY1PmP4p5uAC6T3oeMg6jxu/8AB6oQQAGwVGogJ04fat5kvVC+eF77d7Qv2cNgK9IAPfFMBvE7hL+FMnnrIkeg4PGHUcJPE0aRc56laTFk5WXLF4i6cyrMtXI2u5/1tQAgsVCWUPeVFsFTtJEbKS+14Ow1LmuPzUoPIp0VUuyUYEZixeCgAABgOBkn04RVitwGq/37cBwoIk5INsS4Kubs8kt8uA3gXndI/Lwa/wAHAGVXBRIjdO+Q6AN6PaDLkEFRWyE2gPaVLUVpuE/L4Lk2DzocRIuhF88JdmCgORu7FYTKQIJdpm9+Cr0E6J+CsDJOgB+OCISN2cRPCBkK5cgeuCwVN/LswIE1i8uLxVp6InNK/PBsQANwX5CrNIyeQv5ULtMKIQ23Z5tYhQs3hMd2iapKNEEsCX7VagVjcFewrAU7uCiQQBBwdFw2zEPJFO9KLZfIWZW7bl4vZpggy8n2QpmXsRa+T6qaM8CyjUNpxrSFiYymUc0n1WL+zpWUxhnWb4rG/wAZzEqd4KTGsRlSTopoFnNpAURcpm+98KiNupRIIQJ4Q0qfBlp/5heioxFCANgYXrFEu10jMQ1ATwObUCJgJc7O9J/88NAgcjainITiZEDOlRFiVTEhPulFeOl1FNkHeGS9Q1icntoSdAqJLyHocz/AosLAggEH9Z4Q8jKSBDYIkdyoMokLlhSxipJBMXYoMaISRmPwI8H/AChjK8RhfgjFQ8SXF38HbtSFi4nBrCgelDdoBsDOeleReBYoroL0gg4LgrQuBPRPagPVhzhrGokeCtENn8QfXAgWgRDEclk0QknqAAoBXExiRHyH0cvMN9le73/Kk5QYWvRRAQcP9WO8k1yDHnwFAgBHI61qQSCDgle8i8TRoauGHcKICChiAxFJ34w34yHylXNnf4U4HcfiM6SVzEYvyHDEiIAvV4DUiBkTmVEjGQtnrFBCBGyVJXDMRPjgauYBTqNqgejMVLrFBxAQAQFZyiAU6cQIAqyNIEZGZLmRfVaEvpTRIQBP6DvR/TIfYm52Sh2r5yvRF90x1ABQLAbH81FUJaWaijpAd/2lAAiXGpNGuPbJ4muTdIDqAnulFxMD2rvHQ70J6wMA/fkEoTcfsgSgDVqy7swdaTnCkkiSMNy0cLQY4MeYF5Fyc8XcwM8RVA0AbtqL9YwkiBL1ShmHBEwSh5XCTy/VHv8ATQBKQTA60+QTEhsi1sGFQ5io2Q0OQMdaJpiQiZ20E8hqIAkOpVKbgSaUD2xUMARQGpUcVPIDQhwECC3YIorEDDclmQCkyAzTYy5LTQCBc1pU57gQgMjkQMAN0UkGAnaLFEJDMjEmamSbByFmqiS5tDTcQV4M9EkADBdpwfVBGQgVSQOdaua5MJILGUAciKhGsRw+hyFlJKe5yIFFMhICLKYD3eCLEctg0EQTaaRG8qMpESwPJcHFPAxHW8+2GEWVSSklgUZNybsOVABcNghABkYCwmaG326MUCVYvv8ApwYgpInk8r0gg644zDLFrQgqQWlCQzIdQoC0GVZMQiFygUG9waczJ5OYMKsCADLNOwVhBoAswoxEjig70si0LZdiWYw1HLO1VcCqJjDcqNvJ1GIELQypCwGWkZaTIfZSYIG2lQgLi50ELodhNLHS/KRUiZJLDfFRdRu+LAwjIbFSI0rFqSOllvQkun5VYBQFDDpSf4+RHiA32gDA5pOxyluwuDJA9KRleTKVsSWzAw70yzARlsonYAAnKhWNAbAlDUyG7FKIATYRMCM5lR4gTUSFwJqFLzG9RL2cxAH4/VFgzAQCT7ai9iRNuxnv9l7DyCVkRyNDgKAIA0A/9H//2Q=="),await applyImageRatioToWidget(i,i.b64Image);const o=await this.webSignBridge.signPDF(t,n),r=await transformFileTo(o.signedPDF,"blob");return handleDebugMessage("Firma realizada correctamente.","success",this.webSignConfig.debug),this.callback({type:"signed",data:r}),this.webSignConfig.autoDownload&&downloadBlob(r),r}catch(e){throw handleDebugMessage(`Fallo en la firma: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"}),e}}async initializePdfViewer(){const e=this.displayFile.pdfUrl?"url":"base64";this.nativePdfViewer=new NativePdfViewer(this.context,this.webSignConfig.renderDefaultIndexPage);let t=await transformFileTo(this.displayFile,e);await this.nativePdfViewer.init(t),this.nativePdfViewer.signatureButton.addEventListener("click",(()=>{this.startSignInFloatMode(),"dtu"===this.webSignConfig.signatureType&&this.edataliaDtu&&this.edataliaDtu.showSignatureCanvas()}))}initDTU(e){const t={displayFile:e,signatureContainerWidth:this.webSignConfig.signatureContainerWidth,signatureContainerHeight:this.webSignConfig.signatureContainerHeight,minPointsRequiredToSign:this.webSignConfig.minPointsRequiredToSign,displayCanvasSignatureButtonsInDTU:this.webSignConfig.displayCanvasSignatureButtonsInDTU,icbcMode:this.webSignConfig.icbcMode,signatureColorHex:this.webSignConfig.signatureColorHex,signatureThickness:this.webSignConfig.signatureThickness,language:this.webSignConfig.language,salesforceDtuViewerUrl:this.webSignConfig.salesforceDtuViewerUrl||null};this.edataliaDtu=new EdataliaDtu(t,(e=>{switch(e.type){case"signButtonClicked":this.startSignInFloatMode();break;case"acceptClicked":this.edataliaMouse&&this.edataliaMouse.accept();break;case"cancelClicked":this.edataliaMouse&&this.edataliaMouse.cancel();break;case"clearClicked":this.edataliaMouse&&this.edataliaMouse.reset();break;case"strokePoint":this.edataliaMouse&&this.edataliaMouse.handleDtuStrokePoint(e.point)}}))}startSignInFloatMode(){this.nativePdfViewer&&this.nativePdfViewer.signatureFloatMode(),this.start()}onEdataliaMouseAccept=async(e,t,i,n,o,r=null,a=null,s=null)=>{try{this.stop(),this.loadingSpinner.show(),this.edataliaDtu&&this.edataliaDtu.showLoading();const c=this.VERSION,l=[];let u=null,p=null;const h=this.locationPromise?await this.locationPromise:null;for(let g=0;g<this.files.length;g++){const m=this.files[g],d=await transformFileTo(m,"arraybuffer"),S=await calculateSHA512(d,(e=>{this.handleHashError(e)})),f=await getBioData(this.webSignConfig,c,S,e,t,i,n,o,"",r,a,s,this.webSignBridge,h);p=convertToPlainBioData(f);const _=await ecoBioPreSignEnc(p,this.webSignConfig.encCertKey);u=await pngToJpeg(f[2]);const y=await transformFileTo(m,"base64"),b=getWidgetWithDefaults(this.webSignConfig);b.b64Image=u,"float"===b.type&&(b.page=null,b.x=null,b.y=null,b.fieldName=null);const k={b64PDFContent:y,b64PublicBioData:_.public,b64PrivateBioData:_.private,properties:this.webSignConfig.properties,options:this.webSignConfig.options,timestampProvider:this.webSignConfig.timestampProvider,ocspProvider:this.webSignConfig.ocspProvider,certificate:this.webSignConfig.certificate,widget:b,deviceId:await getDeviceId(this.webSignConfig.signatureType,a,r,this.webSignBridge)};if(this.webSignConfig.useMiddleware)return void this.callback({type:"middleware-request",data:k,fileIndex:g,totalFiles:this.files.length});let v;if(this.webSignBridge){k.authenticationKey=this.webSignConfig.bearerToken,k.aarBaseUrl=getAuthenticationUrl(this.webSignConfig.signatureEnvironment),v=await this.webSignBridge.signPDF(y,k);const e=await transformFileTo(v.signedPDF,"blob");l.push(e)}else{if(v=await signDocument(k,this.webSignConfig.bearerToken,this.webSignConfig.signatureEnvironment,this.webSignConfig.signatureServiceUrl),503===v.status){const e=await v.json();throw e.requestId&&this.callback&&registerOfflineCallback(e.requestId,this.callback,this.webSignConfig.autoDownload),new Error(e.error||"Sin conexión. La firma se procesará automáticamente cuando vuelva la conexión.")}const e=await v.blob();l.push(e)}if(!v.ok&&!v.success)throw new Error("Error al firmar: "+v.status)}const g=this.webSignConfig.icbcMode?{signatureImage:u,points:stringToBase64(p)}:null;this.handleSuccessSigned(l,g)}catch(e){this.loadingSpinner.hide(),this.edataliaMouse.hideFieldsetContainer(),"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&this.edataliaDtu.closeDtuScreen(),handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}};async handleSuccessSigned(e,t=null){this.webSignConfig.autoDownload&&!this.isMultipleDocument()&&e.forEach((e=>downloadBlob(e))),this.nativePdfViewer&&this.nativePdfViewer.removeSignatureFloatModeOverlay(),"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&this.edataliaDtu.closeDtuScreen(),this.loadingSpinner.hide(),this.edataliaMouse.hideFieldsetContainer(),this.stop(),handleDebugMessage("Firma realizada correctamente.","success",this.webSignConfig.debug);const i={type:this.isMultipleDocument()?"signed-multiple":"signed",data:this.isMultipleDocument()?e:e[0]};t&&(i.signatureImage=t.signatureImage,i.points=t.points),this.callback(i),this.webSignConfig.loadSignedPdf&&!this.isMultipleDocument()&&(new File([e[0]],"documento_firmado.pdf",{type:"application/pdf",lastModified:(new Date).getTime()}),this.parseInputFiles(files),this.initializePdfViewer())}onEdataliaMouseCancel=()=>{"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&(this.shouldInitPdfViewer&&!this.webSignConfig.icbcMode?this.edataliaDtu.hideSignatureCanvas():this.edataliaDtu.closeDtuScreen()),this.nativePdfViewer&&this.nativePdfViewer.removeSignatureFloatModeOverlay(),handleDebugMessage("Firma cancelada.","error",this.webSignConfig.debug),this.callback({type:"cancel"})};onEdataliaMouseClear=()=>{"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&(console.log("onEdataliaMouseClear"),this.edataliaDtu.clearSignatureCanvas()),handleDebugMessage("Firma reiniciada.","info",this.webSignConfig.debug),this.callback({type:"clear"})};onEdataliaNoDeviceConnected=()=>{handleDebugMessage("Ningún dispositivo detectado.","error",this.webSignConfig.debug),this.callback({type:"no-device"})};onEdataliaSignatureTimeOut=()=>{handleDebugMessage("Tiempo de firma finalizado.","error",this.webSignConfig.debug),this.callback({type:"signature-timeout"})};onEdataliaMouseError=e=>{this.callback({type:"error",error:e})};startSignature(){getElement(null,"fieldset-container").style.display="block",this.start()}async start(){this.edataliaMouse=new EdataliaMouse(this.webSignConfig,this.onEdataliaMouseAccept,this.onEdataliaMouseCancel,this.onEdataliaMouseClear,this.onEdataliaMouseError,this.onEdataliaNoDeviceConnected,this.onEdataliaSignatureTimeOut,this.context,await transformFileTo(this.displayFile,"base64"),this.webSignBridge,this.edataliaDtu)}stop(){this.edataliaMouse&&this.edataliaMouse.stop()}cancel(){this.edataliaMouse&&this.edataliaMouse.cancel()}reset(){this.edataliaMouse&&this.edataliaMouse.reset()}accept(){this.edataliaMouse&&this.edataliaMouse.accept()}handleHashError(e){this.onEdataliaMouseCancel(),handleDebugMessage(e,"error",this.webSignConfig.debug),this.onEdataliaMouseError("No se puede calcular el hash de firma sobre http en el móvil, usa https");const t=getElement(this.context,"websign-fab-sign");t&&(t.style.pointerEvents="none",t.style.opacity="0.7")}async completeWithSignedPdf(e){try{const t=await transformFileTo(e,"blob");this.handleSuccessSigned([t],null)}catch(e){this.loadingSpinner.hide(),this.edataliaMouse&&this.edataliaMouse.hideFieldsetContainer(),handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}}middlewareError(e){this.loadingSpinner.hide(),this.edataliaMouse&&this.edataliaMouse.hideFieldsetContainer(),handleDebugMessage(e?.message||e,"error",this.webSignConfig.debug),this.callback({type:"middleware-error",error:e})}async startCaptureBridgeDTU(){if(!this.webSignBridge)throw new Error("Bridge no inicializado. Asegúrese de que enableBridge está activo.");if(!this.webSignBridge.isConnected())throw new Error("Bridge no conectado al servidor.");const e=await this.webSignBridge.startSignatureCapture();return destroyWaitingOverlay(this.context),e}startCaptureDTU(){this.edataliaDtu&&this.edataliaDtu.showSignatureCanvas()}}window.WebSign=WebSign}));
1
+ !function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";async function signDocument(e,t,n,i=null){const o={DEV:"https://firmaronlineapi-dev.azurewebsites.net/eSign/v40/WebSign",SANDBOX:"https://restapi.firmar.info/eSign/v40/WebSign",PRE:"https://restapi.ecosignature.biz/eSign/v40/WebSign",PRO:"https://restapi.firmar.online/eSign/v40/WebSign",DEFAULT:"https://restapi.firmar.info/eSign/v40/WebSign"},r=i||o[n]||o.DEFAULT,a={method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},mode:"cors",body:JSON.stringify(e)};return fetch(r,a)}async function loadPdfLibIncrementalSave(){try{if(void 0!==window.PDFLib)return window.PDFLib;const e=await import("https://esm.sh/pdf-lib-incremental-save@1.17.4");return window.PDFLib=e,e}catch(e){throw new Error("No se pudo cargar pdf-lib-incremental-save: "+e.message)}}function fileToBase64(e){return new Promise(((t,n)=>{const i=new FileReader;i.onload=()=>{const e=i.result.split(",")[1];t(e)},i.onerror=e=>{n(new Error("Error al leer el archivo: "+e.message))},i.readAsDataURL(e)}))}function downloadBlob(e,t="websign-document.pdf"){const n=URL.createObjectURL(e);let i=document.createElement("a");i.download=t,i.href=n,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function getBase64FromUrl(e){return new Promise(((t,n)=>{fetch(e).then((e=>e.blob().then((e=>{const i=new FileReader;i.onloadend=()=>{t(i.result.split(",")[1])},i.onerror=n,i.readAsDataURL(e)})))).catch((e=>{n(e)}))}))}async function transformFileTo(e,t){switch(t){case"base64":if(e instanceof ArrayBuffer)return arrayBufferToBase64(e);if(e instanceof Object&&e.pdfB64)return e.pdfB64;if(isBase64$1(e))return e;if(e instanceof File)return await fileToBase64(e);break;case"arraybuffer":if(e instanceof ArrayBuffer)return e;if(e instanceof Object&&e.pdfB64)return base64ToArrayBuffer(e.pdfB64);if(isBase64$1(e))return base64ToArrayBuffer(e);if(e instanceof File)return fileToArrayBuffer(e);break;case"url":if(e instanceof Object)return e.pdfUrl;break;case"blob":if(e instanceof ArrayBuffer)return new Blob([e],{type:"application/pdf"});if(isBase64$1(e)){const t=atob(e),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const i=new Uint8Array(n);return new Blob([i],{type:"application/pdf"})}}}function isBase64$1(e){return/^[a-zA-Z0-9+/=]+$/.test(e)&&e.length%4==0}function base64ToArrayBuffer(e){let t=window.atob(e),n=t.length,i=new Uint8Array(n);for(let e=0;e<n;e++)i[e]=t.charCodeAt(e);return i.buffer}function arrayBufferToBase64(e){const t=new Uint8Array(e);let n="";for(let e=0;e<t.length;e+=32768){const i=t.subarray(e,e+32768);n+=String.fromCharCode.apply(null,i)}return window.btoa(n)}function fileToArrayBuffer(e){return new Promise(((t,n)=>{const i=new FileReader;i.onloadend=()=>{t(i.result)},i.onerror=e=>{n(new Error("Error al leer el archivo: "+e.message))},i.readAsArrayBuffer(e)}))}async function joinFilesIntoOneToDisplay(e){try{const{PDFDocument:t}=await loadPdfLibIncrementalSave(),n=await t.create();for(let i of e){const e=await i.arrayBuffer(),o=await t.load(e);(await n.copyPages(o,o.getPageIndices())).forEach((e=>n.addPage(e)))}const i=await n.save(),o=new Blob([i],{type:"application/pdf"});return new File([o],"combined.pdf",{type:"application/pdf"})}catch(e){throw new Error("No se han podido mostrar los documentos")}}async function saveIncrementalWithPdfLib(e,t){try{const n=await loadPdfLibIncrementalSave(),{PDFDocument:i,PDFTextField:o,PDFCheckBox:r,PDFRadioGroup:a,PDFDropdown:s,PDFOptionList:l}=n;let c=await t.pdfDocument.getData(),u=await i.load(c,{updateMetadata:!1}),p=u.takeSnapshot();const h=u.getForm();for(const[t,n]of e.entries()){const e=document.querySelector(`[data-element-id="${t}"]`),i=e?.getAttribute("name");if(!i)continue;let c;try{c=h.getField(i)}catch{console.warn(`Campo '${i}' no encontrado en el formulario PDF.`);continue}const u=n?.value;if(u&&c){switch(!0){case c instanceof o:"string"==typeof u&&c.setText(u);break;case c instanceof r:"boolean"==typeof u&&(u?c.check():c.uncheck());break;case c instanceof a:case c instanceof s:case c instanceof l:"string"==typeof u&&c.select(u);break;default:continue}p.markRefForSave(c.acroField.ref)}}h.updateFieldAppearances();const d=await u.saveIncremental(p),g=new Uint8Array(c.byteLength+d.byteLength);return g.set(new Uint8Array(c),0),g.set(d,c.byteLength),g}catch(e){throw console.log(e),new Error("No se han podido actualizar el documento con los cambios del formulario")}}function stringToBase64(e){return btoa(unescape(encodeURIComponent(e)))}var documentUtils=Object.freeze({__proto__:null,fileToBase64:fileToBase64,downloadBlob:downloadBlob,getBase64FromUrl:getBase64FromUrl,transformFileTo:transformFileTo,isBase64:isBase64$1,base64ToArrayBuffer:base64ToArrayBuffer,arrayBufferToBase64:arrayBufferToBase64,fileToArrayBuffer:fileToArrayBuffer,joinFilesIntoOneToDisplay:joinFilesIntoOneToDisplay,saveIncrementalWithPdfLib:saveIncrementalWithPdfLib,stringToBase64:stringToBase64});!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pako=e()}window.pako=e()}((function(){return function e(t,n,i){function o(a,s){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(r)return r(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};t[a][0].call(u.exports,(function(e){var n=t[a][1][e];return o(n||e)}),u,u.exports,e,t,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(e,t,n){var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var i in n)n.hasOwnProperty(i)&&(e[i]=n[i])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,n,i,o){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+i),o);else for(var r=0;r<i;r++)e[o+r]=t[n+r]},flattenChunks:function(e){var t,n,i,o,r,a;for(i=0,t=0,n=e.length;t<n;t++)i+=e[t].length;for(a=new Uint8Array(i),o=0,t=0,n=e.length;t<n;t++)r=e[t],a.set(r,o),o+=r.length;return a}},r={arraySet:function(e,t,n,i,o){for(var r=0;r<i;r++)e[o+r]=t[n+r]},flattenChunks:function(e){return[].concat.apply([],e)}};n.setTyped=function(e){e?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,o)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,r))},n.setTyped(i)},{}],2:[function(e,t,n){function i(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&r))return String.fromCharCode.apply(null,o.shrinkBuf(e,t));for(var n="",i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n}var o=e("./common"),r=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(e){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){a=!1}for(var s=new o.Buf8(256),l=0;l<256;l++)s[l]=l>=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;s[254]=s[254]=1,n.string2buf=function(e){var t,n,i,r,a,s=e.length,l=0;for(r=0;r<s;r++)55296==(64512&(n=e.charCodeAt(r)))&&r+1<s&&(56320==(64512&(i=e.charCodeAt(r+1)))&&(n=65536+(n-55296<<10)+(i-56320),r++)),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new o.Buf8(l),a=0,r=0;a<l;r++)55296==(64512&(n=e.charCodeAt(r)))&&r+1<s&&(56320==(64512&(i=e.charCodeAt(r+1)))&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|63&n):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|63&n):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|63&n);return t},n.buf2binstring=function(e){return i(e,e.length)},n.binstring2buf=function(e){for(var t=new o.Buf8(e.length),n=0,i=t.length;n<i;n++)t[n]=e.charCodeAt(n);return t},n.buf2string=function(e,t){var n,o,r,a,l=t||e.length,c=new Array(2*l);for(o=0,n=0;n<l;)if((r=e[n++])<128)c[o++]=r;else if((a=s[r])>4)c[o++]=65533,n+=a-1;else{for(r&=2===a?31:3===a?15:7;a>1&&n<l;)r=r<<6|63&e[n++],a--;a>1?c[o++]=65533:r<65536?c[o++]=r:(r-=65536,c[o++]=55296|r>>10&1023,c[o++]=56320|1023&r)}return i(c,o)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}},{"./common":1}],3:[function(e,t,n){t.exports=function(e,t,n,i){for(var o=65535&e,r=e>>>16&65535,a=0;0!==n;){n-=a=n>2e3?2e3:n;do{r=r+(o=o+t[i++]|0)|0}while(--a);o%=65521,r%=65521}return o|r<<16}},{}],4:[function(e,t,n){var i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,o){var r=i,a=o+n;e^=-1;for(var s=o;s<a;s++)e=e>>>8^r[255&(e^t[s])];return~e}},{}],5:[function(e,t,n){function i(e,t){return e.msg=C[t],t}function o(e){return(e<<1)-(e>4?9:0)}function r(e){for(var t=e.length;--t>=0;)e[t]=0}function a(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(k.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function s(e,t){E._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,a(e.strm)}function l(e,t){e.pending_buf[e.pending++]=t}function c(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function u(e,t,n,i){var o=e.avail_in;return o>i&&(o=i),0===o?0:(e.avail_in-=o,k.arraySet(t,e.input,e.next_in,o,n),1===e.state.wrap?e.adler=I(e.adler,t,o,n):2===e.state.wrap&&(e.adler=T(e.adler,t,o,n)),e.next_in+=o,e.total_in+=o,o)}function p(e,t){var n,i,o=e.max_chain_length,r=e.strstart,a=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-ne?e.strstart-(e.w_size-ne):0,c=e.window,u=e.w_mask,p=e.prev,h=e.strstart+te,d=c[r+a-1],g=c[r+a];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+a]===g&&c[n+a-1]===d&&c[n]===c[r]&&c[++n]===c[r+1]){r+=2,n++;do{}while(c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&c[++r]===c[++n]&&r<h);if(i=te-(h-r),r=h-te,i>a){if(e.match_start=t,a=i,i>=s)break;d=c[r+a-1],g=c[r+a]}}}while((t=p[t&u])>l&&0!=--o);return a<=e.lookahead?a:e.lookahead}function h(e){var t,n,i,o,r,a=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=a+(a-ne)){k.arraySet(e.window,e.window,a,a,0),e.match_start-=a,e.strstart-=a,e.block_start-=a,t=n=e.hash_size;do{i=e.head[--t],e.head[t]=i>=a?i-a:0}while(--n);t=n=a;do{i=e.prev[--t],e.prev[t]=i>=a?i-a:0}while(--n);o+=a}if(0===e.strm.avail_in)break;if(n=u(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=n,e.lookahead+e.insert>=ee)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=(e.ins_h<<e.hash_shift^e.window[r+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[r+ee-1])&e.hash_mask,e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<ee)););}while(e.lookahead<ne&&0!==e.strm.avail_in)}function d(e,t){for(var n,i;;){if(e.lookahead<ne){if(h(e),e.lookahead<ne&&t===A)return pe;if(0===e.lookahead)break}if(n=0,e.lookahead>=ee&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-ne&&(e.match_length=p(e,n)),e.match_length>=ee)if(i=E._tr_tally(e,e.strstart-e.match_start,e.match_length-ee),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ee){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else i=E._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=e.strstart<ee-1?e.strstart:ee-1,t===R?(s(e,!0),0===e.strm.avail_out?de:ge):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function g(e,t){for(var n,i,o;;){if(e.lookahead<ne){if(h(e),e.lookahead<ne&&t===A)return pe;if(0===e.lookahead)break}if(n=0,e.lookahead>=ee&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ee-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ne&&(e.match_length=p(e,n),e.match_length<=5&&(e.strategy===G||e.match_length===ee&&e.strstart-e.match_start>4096)&&(e.match_length=ee-1)),e.prev_length>=ee&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-ee,i=E._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-ee),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ee-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=ee-1,e.strstart++,i&&(s(e,!1),0===e.strm.avail_out))return pe}else if(e.match_available){if((i=E._tr_tally(e,0,e.window[e.strstart-1]))&&s(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return pe}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=E._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ee-1?e.strstart:ee-1,t===R?(s(e,!0),0===e.strm.avail_out?de:ge):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function m(e,t){for(var n,i,o,r,a=e.window;;){if(e.lookahead<=te){if(h(e),e.lookahead<=te&&t===A)return pe;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=ee&&e.strstart>0&&((i=a[o=e.strstart-1])===a[++o]&&i===a[++o]&&i===a[++o])){r=e.strstart+te;do{}while(i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&o<r);e.match_length=te-(r-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ee?(n=E._tr_tally(e,1,e.match_length-ee),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=E._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?de:ge):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function f(e,t){for(var n;;){if(0===e.lookahead&&(h(e),0===e.lookahead)){if(t===A)return pe;break}if(e.match_length=0,n=E._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?de:ge):e.last_lit&&(s(e,!1),0===e.strm.avail_out)?pe:he}function S(e,t,n,i,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=i,this.func=o}function b(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new k.Buf16(2*Z),this.dyn_dtree=new k.Buf16(2*(2*Q+1)),this.bl_tree=new k.Buf16(2*(2*Y+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new k.Buf16(X+1),this.heap=new k.Buf16(2*J+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new k.Buf16(2*J+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function y(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=F,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?oe:ce,e.adler=2===t.wrap?0:1,t.last_flush=A,E._tr_init(t),D):i(e,O)}function _(e){var t=y(e);return t===D&&function(e){e.window_size=2*e.w_size,r(e.head),e.max_lazy_match=w[e.level].max_lazy,e.good_match=w[e.level].good_length,e.nice_match=w[e.level].nice_length,e.max_chain_length=w[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ee-1,e.match_available=0,e.ins_h=0}(e.state),t}function v(e,t,n,o,r,a){if(!e)return O;var s=1;if(t===L&&(t=6),o<0?(s=0,o=-o):o>15&&(s=2,o-=16),r<1||r>K||n!==V||o<8||o>15||t<0||t>9||a<0||a>W)return i(e,O);8===o&&(o=9);var l=new b;return e.state=l,l.strm=e,l.wrap=s,l.gzhead=null,l.w_bits=o,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+ee-1)/ee),l.window=new k.Buf8(2*l.w_size),l.head=new k.Buf16(l.hash_size),l.prev=new k.Buf16(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new k.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=a,l.method=n,_(e)}var w,k=e("../utils/common"),E=e("./trees"),I=e("./adler32"),T=e("./crc32"),C=e("./messages"),A=0,P=1,j=3,R=4,N=5,D=0,x=1,O=-2,U=-3,B=-5,L=-1,G=1,M=2,$=3,W=4,H=0,F=2,V=8,K=9,z=15,q=8,J=286,Q=30,Y=19,Z=2*J+1,X=15,ee=3,te=258,ne=te+ee+1,ie=32,oe=42,re=69,ae=73,se=91,le=103,ce=113,ue=666,pe=1,he=2,de=3,ge=4,me=3;w=[new S(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(h(e),0===e.lookahead&&t===A)return pe;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var i=e.block_start+n;if((0===e.strstart||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,s(e,!1),0===e.strm.avail_out))return pe;if(e.strstart-e.block_start>=e.w_size-ne&&(s(e,!1),0===e.strm.avail_out))return pe}return e.insert=0,t===R?(s(e,!0),0===e.strm.avail_out?de:ge):(e.strstart>e.block_start&&(s(e,!1),e.strm.avail_out),pe)})),new S(4,4,8,4,d),new S(4,5,16,8,d),new S(4,6,32,32,d),new S(4,4,16,16,g),new S(8,16,32,32,g),new S(8,16,128,128,g),new S(8,32,128,256,g),new S(32,128,258,1024,g),new S(32,258,258,4096,g)],n.deflateInit=function(e,t){return v(e,t,V,z,q,H)},n.deflateInit2=v,n.deflateReset=_,n.deflateResetKeep=y,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?O:(e.state.gzhead=t,D):O},n.deflate=function(e,t){var n,s,u,p;if(!e||!e.state||t>N||t<0)return e?i(e,O):O;if(s=e.state,!e.output||!e.input&&0!==e.avail_in||s.status===ue&&t!==R)return i(e,0===e.avail_out?B:O);if(s.strm=e,n=s.last_flush,s.last_flush=t,s.status===oe)if(2===s.wrap)e.adler=0,l(s,31),l(s,139),l(s,8),s.gzhead?(l(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),l(s,255&s.gzhead.time),l(s,s.gzhead.time>>8&255),l(s,s.gzhead.time>>16&255),l(s,s.gzhead.time>>24&255),l(s,9===s.level?2:s.strategy>=M||s.level<2?4:0),l(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(l(s,255&s.gzhead.extra.length),l(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=T(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=re):(l(s,0),l(s,0),l(s,0),l(s,0),l(s,0),l(s,9===s.level?2:s.strategy>=M||s.level<2?4:0),l(s,me),s.status=ce);else{var h=V+(s.w_bits-8<<4)<<8;h|=(s.strategy>=M||s.level<2?0:s.level<6?1:6===s.level?2:3)<<6,0!==s.strstart&&(h|=ie),h+=31-h%31,s.status=ce,c(s,h),0!==s.strstart&&(c(s,e.adler>>>16),c(s,65535&e.adler)),e.adler=1}if(s.status===re)if(s.gzhead.extra){for(u=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending!==s.pending_buf_size));)l(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=ae)}else s.status=ae;if(s.status===ae)if(s.gzhead.name){u=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending===s.pending_buf_size)){p=1;break}p=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,l(s,p)}while(0!==p);s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),0===p&&(s.gzindex=0,s.status=se)}else s.status=se;if(s.status===se)if(s.gzhead.comment){u=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),a(e),u=s.pending,s.pending===s.pending_buf_size)){p=1;break}p=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,l(s,p)}while(0!==p);s.gzhead.hcrc&&s.pending>u&&(e.adler=T(e.adler,s.pending_buf,s.pending-u,u)),0===p&&(s.status=le)}else s.status=le;if(s.status===le&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(e),s.pending+2<=s.pending_buf_size&&(l(s,255&e.adler),l(s,e.adler>>8&255),e.adler=0,s.status=ce)):s.status=ce),0!==s.pending){if(a(e),0===e.avail_out)return s.last_flush=-1,D}else if(0===e.avail_in&&o(t)<=o(n)&&t!==R)return i(e,B);if(s.status===ue&&0!==e.avail_in)return i(e,B);if(0!==e.avail_in||0!==s.lookahead||t!==A&&s.status!==ue){var d=s.strategy===M?f(s,t):s.strategy===$?m(s,t):w[s.level].func(s,t);if(d!==de&&d!==ge||(s.status=ue),d===pe||d===de)return 0===e.avail_out&&(s.last_flush=-1),D;if(d===he&&(t===P?E._tr_align(s):t!==N&&(E._tr_stored_block(s,0,0,!1),t===j&&(r(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(e),0===e.avail_out))return s.last_flush=-1,D}return t!==R?D:s.wrap<=0?x:(2===s.wrap?(l(s,255&e.adler),l(s,e.adler>>8&255),l(s,e.adler>>16&255),l(s,e.adler>>24&255),l(s,255&e.total_in),l(s,e.total_in>>8&255),l(s,e.total_in>>16&255),l(s,e.total_in>>24&255)):(c(s,e.adler>>>16),c(s,65535&e.adler)),a(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?D:x)},n.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==oe&&t!==re&&t!==ae&&t!==se&&t!==le&&t!==ce&&t!==ue?i(e,O):(e.state=null,t===ce?i(e,U):D):O},n.deflateSetDictionary=function(e,t){var n,i,o,a,s,l,c,u,p=t.length;if(!e||!e.state)return O;if(2===(a=(n=e.state).wrap)||1===a&&n.status!==oe||n.lookahead)return O;for(1===a&&(e.adler=I(e.adler,t,p,0)),n.wrap=0,p>=n.w_size&&(0===a&&(r(n.head),n.strstart=0,n.block_start=0,n.insert=0),u=new k.Buf8(n.w_size),k.arraySet(u,t,p-n.w_size,n.w_size,0),t=u,p=n.w_size),s=e.avail_in,l=e.next_in,c=e.input,e.avail_in=p,e.next_in=0,e.input=t,h(n);n.lookahead>=ee;){i=n.strstart,o=n.lookahead-(ee-1);do{n.ins_h=(n.ins_h<<n.hash_shift^n.window[i+ee-1])&n.hash_mask,n.prev[i&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=i,i++}while(--o);n.strstart=i,n.lookahead=ee-1,h(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=ee-1,n.match_available=0,e.next_in=l,e.input=c,e.avail_in=s,n.wrap=a,D},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":4,"./messages":6,"./trees":7}],6:[function(e,t,n){t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],7:[function(e,t,n){function i(e){for(var t=e.length;--t>=0;)e[t]=0}function o(e,t,n,i,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=i,this.max_length=o,this.has_stree=e&&e.length}function r(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function a(e){return e<256?q[e]:q[256+(e>>>7)]}function s(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function l(e,t,n){e.bi_valid>U-n?(e.bi_buf|=t<<e.bi_valid&65535,s(e,e.bi_buf),e.bi_buf=t>>U-e.bi_valid,e.bi_valid+=n-U):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function c(e,t,n){l(e,n[2*t],n[2*t+1])}function u(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function p(e,t,n){var i,o,r=new Array(O+1),a=0;for(i=1;i<=O;i++)r[i]=a=a+n[i-1]<<1;for(o=0;o<=t;o++){var s=e[2*o+1];0!==s&&(e[2*o]=u(r[s]++,s))}}function h(e){var t;for(t=0;t<R;t++)e.dyn_ltree[2*t]=0;for(t=0;t<N;t++)e.dyn_dtree[2*t]=0;for(t=0;t<D;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*L]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function d(e){e.bi_valid>8?s(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function g(e,t,n,i){var o=2*t,r=2*n;return e[o]<e[r]||e[o]===e[r]&&i[t]<=i[n]}function m(e,t,n){for(var i=e.heap[n],o=n<<1;o<=e.heap_len&&(o<e.heap_len&&g(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!g(t,i,e.heap[o],e.depth));)e.heap[n]=e.heap[o],n=o,o<<=1;e.heap[n]=i}function f(e,t,n){var i,o,r,s,u=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*u]<<8|e.pending_buf[e.d_buf+2*u+1],o=e.pending_buf[e.l_buf+u],u++,0===i?c(e,o,t):(c(e,(r=J[o])+j+1,t),0!==(s=W[r])&&l(e,o-=Q[r],s),c(e,r=a(--i),n),0!==(s=H[r])&&l(e,i-=Y[r],s))}while(u<e.last_lit);c(e,L,t)}function S(e,t){var n,i,o,r=t.dyn_tree,a=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=x,n=0;n<l;n++)0!==r[2*n]?(e.heap[++e.heap_len]=c=n,e.depth[n]=0):r[2*n+1]=0;for(;e.heap_len<2;)r[2*(o=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[o]=0,e.opt_len--,s&&(e.static_len-=a[2*o+1]);for(t.max_code=c,n=e.heap_len>>1;n>=1;n--)m(e,r,n);o=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],m(e,r,1),i=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=i,r[2*o]=r[2*n]+r[2*i],e.depth[o]=(e.depth[n]>=e.depth[i]?e.depth[n]:e.depth[i])+1,r[2*n+1]=r[2*i+1]=o,e.heap[1]=o++,m(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,i,o,r,a,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,p=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,g=t.stat_desc.max_length,m=0;for(r=0;r<=O;r++)e.bl_count[r]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<x;n++)(r=l[2*l[2*(i=e.heap[n])+1]+1]+1)>g&&(r=g,m++),l[2*i+1]=r,i>c||(e.bl_count[r]++,a=0,i>=d&&(a=h[i-d]),s=l[2*i],e.opt_len+=s*(r+a),p&&(e.static_len+=s*(u[2*i+1]+a)));if(0!==m){do{for(r=g-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[g]--,m-=2}while(m>0);for(r=g;0!==r;r--)for(i=e.bl_count[r];0!==i;)(o=e.heap[--n])>c||(l[2*o+1]!==r&&(e.opt_len+=(r-l[2*o+1])*l[2*o],l[2*o+1]=r),i--)}}(e,t),p(r,c,e.bl_count)}function b(e,t,n){var i,o,r=-1,a=t[1],s=0,l=7,c=4;for(0===a&&(l=138,c=3),t[2*(n+1)+1]=65535,i=0;i<=n;i++)o=a,a=t[2*(i+1)+1],++s<l&&o===a||(s<c?e.bl_tree[2*o]+=s:0!==o?(o!==r&&e.bl_tree[2*o]++,e.bl_tree[2*G]++):s<=10?e.bl_tree[2*M]++:e.bl_tree[2*$]++,s=0,r=o,0===a?(l=138,c=3):o===a?(l=6,c=3):(l=7,c=4))}function y(e,t,n){var i,o,r=-1,a=t[1],s=0,u=7,p=4;for(0===a&&(u=138,p=3),i=0;i<=n;i++)if(o=a,a=t[2*(i+1)+1],!(++s<u&&o===a)){if(s<p)do{c(e,o,e.bl_tree)}while(0!=--s);else 0!==o?(o!==r&&(c(e,o,e.bl_tree),s--),c(e,G,e.bl_tree),l(e,s-3,2)):s<=10?(c(e,M,e.bl_tree),l(e,s-3,3)):(c(e,$,e.bl_tree),l(e,s-11,7));s=0,r=o,0===a?(u=138,p=3):o===a?(u=6,p=3):(u=7,p=4)}}function _(e,t,n,i){l(e,(T<<1)+(i?1:0),3),function(e,t,n,i){d(e),i&&(s(e,n),s(e,~n)),v.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n,!0)}var v=e("../utils/common"),w=4,k=0,E=1,I=2,T=0,C=1,A=2,P=29,j=256,R=j+1+P,N=30,D=19,x=2*R+1,O=15,U=16,B=7,L=256,G=16,M=17,$=18,W=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],H=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],F=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],V=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],K=new Array(2*(R+2));i(K);var z=new Array(2*N);i(z);var q=new Array(512);i(q);var J=new Array(256);i(J);var Q=new Array(P);i(Q);var Y=new Array(N);i(Y);var Z,X,ee,te=!1;n._tr_init=function(e){te||(function(){var e,t,n,i,r,a=new Array(O+1);for(n=0,i=0;i<P-1;i++)for(Q[i]=n,e=0;e<1<<W[i];e++)J[n++]=i;for(J[n-1]=i,r=0,i=0;i<16;i++)for(Y[i]=r,e=0;e<1<<H[i];e++)q[r++]=i;for(r>>=7;i<N;i++)for(Y[i]=r<<7,e=0;e<1<<H[i]-7;e++)q[256+r++]=i;for(t=0;t<=O;t++)a[t]=0;for(e=0;e<=143;)K[2*e+1]=8,e++,a[8]++;for(;e<=255;)K[2*e+1]=9,e++,a[9]++;for(;e<=279;)K[2*e+1]=7,e++,a[7]++;for(;e<=287;)K[2*e+1]=8,e++,a[8]++;for(p(K,R+1,a),e=0;e<N;e++)z[2*e+1]=5,z[2*e]=u(e,5);Z=new o(K,W,j+1,R,O),X=new o(z,H,0,N,O),ee=new o(new Array(0),F,0,D,B)}(),te=!0),e.l_desc=new r(e.dyn_ltree,Z),e.d_desc=new r(e.dyn_dtree,X),e.bl_desc=new r(e.bl_tree,ee),e.bi_buf=0,e.bi_valid=0,h(e)},n._tr_stored_block=_,n._tr_flush_block=function(e,t,n,i){var o,r,a=0;e.level>0?(e.strm.data_type===I&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return k;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return E;for(t=32;t<j;t++)if(0!==e.dyn_ltree[2*t])return E;return k}(e)),S(e,e.l_desc),S(e,e.d_desc),a=function(e){var t;for(b(e,e.dyn_ltree,e.l_desc.max_code),b(e,e.dyn_dtree,e.d_desc.max_code),S(e,e.bl_desc),t=D-1;t>=3&&0===e.bl_tree[2*V[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(r=e.static_len+3+7>>>3)<=o&&(o=r)):o=r=n+5,n+4<=o&&-1!==t?_(e,t,n,i):e.strategy===w||r===o?(l(e,(C<<1)+(i?1:0),3),f(e,K,z)):(l(e,(A<<1)+(i?1:0),3),function(e,t,n,i){var o;for(l(e,t-257,5),l(e,n-1,5),l(e,i-4,4),o=0;o<i;o++)l(e,e.bl_tree[2*V[o]+1],3);y(e,e.dyn_ltree,t-1),y(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),f(e,e.dyn_ltree,e.dyn_dtree)),h(e),i&&d(e)},n._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(J[n]+j+1)]++,e.dyn_dtree[2*a(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){l(e,C<<1,3),c(e,L,K),function(e){16===e.bi_valid?(s(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":1}],8:[function(e,t,n){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],"/lib/deflate.js":[function(e,t,n){function i(e){if(!(this instanceof i))return new i(e);this.options=a.assign({level:h,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==p)throw new Error(l[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var o;if(o="string"==typeof t.dictionary?s.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=r.deflateSetDictionary(this.strm,o))!==p)throw new Error(l[n]);this._dict_set=!0}}function o(e,t){var n=new i(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}var r=e("./zlib/deflate"),a=e("./utils/common"),s=e("./utils/strings"),l=e("./zlib/messages"),c=e("./zlib/zstream"),u=Object.prototype.toString,p=0,h=-1,d=0,g=8;i.prototype.push=function(e,t){var n,i,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,"string"==typeof e?o.input=s.string2buf(e):"[object ArrayBuffer]"===u.call(e)?o.input=new Uint8Array(e):o.input=e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(l),o.next_out=0,o.avail_out=l),1!==(n=r.deflate(o,i))&&n!==p)return this.onEnd(n),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==i&&2!==i)||("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==n);return 4===i?(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===p):2!==i||(this.onEnd(p),o.avail_out=0,!0)},i.prototype.onData=function(e){this.chunks.push(e)},i.prototype.onEnd=function(e){e===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=i,n.deflate=o,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,o(e,t)}},{"./utils/common":1,"./utils/strings":2,"./zlib/deflate":5,"./zlib/messages":6,"./zlib/zstream":8}]},{},[])("/lib/deflate.js")})),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.asn1)e.org.pkijs.asn1={};else if("object"!=typeof e.org.pkijs.asn1)throw new Error("Name org.pkijs.asn1 already exists and it's not an object but "+typeof e.org.pkijs.asn1);window.org=e.org;var t={};function n(e,t){for(var n=0,i=e.length-1;i>=0;i--)n+=e[e.length-1-i]*Math.pow(2,t*i);return n}function i(e,t,n){n=n||-1;for(var i=0,o=Math.pow(2,t),r=1;r<8;r++){if(e<o){var a;if(n<0)a=new ArrayBuffer(r),i=r;else{if(n<r)return new ArrayBuffer(0);a=new ArrayBuffer(n),i=n}for(var s=new Uint8Array(a),l=r-1;l>=0;l--){var c=Math.pow(2,l*t);s[i-l-1]=Math.floor(e/c),e-=s[i-l-1]*c}return a}o*=Math.pow(2,t)}}function o(e){for(var t=e<0?-1*e:e,n=128,o=1;o<8;o++){if(t<=n){if(e<0){var r=i(n-t,8,o);return(s=new Uint8Array(r))[0]|=128,r}var s;r=i(t,8,o);if(128&(s=new Uint8Array(r))[0]){var l=a(r),c=new Uint8Array(l);r=new ArrayBuffer(r.byteLength+1),s=new Uint8Array(r);for(var u=0;u<l.byteLength;u++)s[u+1]=c[u];s[0]=0}return r}n*=Math.pow(2,8)}return new ArrayBuffer(0)}function r(){var e=new Uint8Array(this.value_hex);if(this.value_hex.byteLength>=2){var t=255==e[0]&&128&e[1],i=0==e[0]&&!(128&e[1]);(t||i)&&this.warnings.push("Needlessly long format")}for(var o=new ArrayBuffer(this.value_hex.byteLength),r=new Uint8Array(o),a=0;a<this.value_hex.byteLength;a++)r[a]=0;r[0]=128&e[0];for(var s=n(r,8),l=new ArrayBuffer(this.value_hex.byteLength),c=new Uint8Array(l),u=0;u<this.value_hex.byteLength;u++)c[u]=e[u];return c[0]&=127,n(c,8)-s}function a(e){if(!1===c(e,0,e.byteLength))return new ArrayBuffer(0);for(var t=new Uint8Array(e),n=new ArrayBuffer(e.byteLength),i=new Uint8Array(n),o=0;o<e.byteLength;o++)i[o]=t[o];return n}function s(e,t,n){if(!1===c(e,t,n))return new ArrayBuffer(0);for(var i=new Uint8Array(e,t,n),o=new ArrayBuffer(n),r=new Uint8Array(o),a=0;a<n;a++)r[a]=i[a];return o}function l(e,t){for(var n=new Uint8Array(e),i=new Uint8Array(t),o=new ArrayBuffer(e.byteLength+t.byteLength),r=new Uint8Array(o),a=0;a<e.byteLength;a++)r[a]=n[a];for(var s=0;s<t.byteLength;s++)r[e.byteLength+s]=i[s];return o}function c(e,t,n){return e instanceof ArrayBuffer!=!1&&(0!==e.byteLength&&(!(t<0)&&(!(n<0)&&!(e.byteLength-t-n<0))))}function u(t,n,i){var o=n;var r=new e.org.pkijs.asn1.ASN1_block;if(!1===c(t,n,i))return r.error="Wrong input parameters",{offset:-1,result:r};if(0==new Uint8Array(t,n,i).length)return this.error="Zero buffer length",{offset:-1,result:r};var l=r.id_block.fromBER(t,n,i);if(r.warnings.concat(r.id_block.warnings),-1==l)return r.error=r.id_block.error,{offset:-1,result:r};if(n=l,i-=r.id_block.block_length,l=r.len_block.fromBER(t,n,i),r.warnings.concat(r.len_block.warnings),-1==l)return r.error=r.len_block.error,{offset:-1,result:r};if(n=l,i-=r.len_block.block_length,0==r.id_block.is_constructed&&1==r.len_block.is_indefinite_form)return r.error=new String("Indefinite length form used for primitive encoding form"),{offset:-1,result:r};var u=e.org.pkijs.asn1.ASN1_block;if(1===r.id_block.tag_class){if(r.id_block.tag_number>=37&&0==r.id_block.is_hex_only)return r.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:r};switch(r.id_block.tag_number){case 0:if(1==r.id_block.is_constructed&&r.len_block.length>0)return r.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:r};u=e.org.pkijs.asn1.EOC;break;case 1:u=e.org.pkijs.asn1.BOOLEAN;break;case 2:u=e.org.pkijs.asn1.INTEGER;break;case 3:u=e.org.pkijs.asn1.BITSTRING;break;case 4:u=e.org.pkijs.asn1.OCTETSTRING;break;case 5:u=e.org.pkijs.asn1.NULL;break;case 6:u=e.org.pkijs.asn1.OID;break;case 10:u=e.org.pkijs.asn1.ENUMERATED;break;case 12:u=e.org.pkijs.asn1.UTF8STRING;break;case 14:u=e.org.pkijs.asn1.TIME;break;case 15:return r.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:r};case 16:u=e.org.pkijs.asn1.SEQUENCE;break;case 17:u=e.org.pkijs.asn1.SET;break;case 18:u=e.org.pkijs.asn1.NUMERICSTRING;break;case 19:u=e.org.pkijs.asn1.PRINTABLESTRING;break;case 20:u=e.org.pkijs.asn1.TELETEXSTRING;break;case 21:u=e.org.pkijs.asn1.VIDEOTEXSTRING;break;case 22:u=e.org.pkijs.asn1.IA5STRING;break;case 23:u=e.org.pkijs.asn1.UTCTIME;break;case 24:u=e.org.pkijs.asn1.GENERALIZEDTIME;break;case 25:u=e.org.pkijs.asn1.GRAPHICSTRING;break;case 26:u=e.org.pkijs.asn1.VISIBLESTRING;break;case 27:u=e.org.pkijs.asn1.GENERALSTRING;break;case 28:u=e.org.pkijs.asn1.UNIVERSALSTRING;break;case 29:u=e.org.pkijs.asn1.CHARACTERSTRING;break;case 30:u=e.org.pkijs.asn1.BMPSTRING;break;case 31:u=e.org.pkijs.asn1.DATE;break;case 32:u=e.org.pkijs.asn1.TIMEOFDAY;break;case 33:u=e.org.pkijs.asn1.DATETIME;break;case 34:u=e.org.pkijs.asn1.DURATION;break;default:var p;(p=1==r.id_block.is_constructed?new e.org.pkijs.asn1.ASN1_CONSTRUCTED:new e.org.pkijs.asn1.ASN1_PRIMITIVE).id_block=r.id_block,p.len_block=r.len_block,p.warnings=r.warnings,l=(r=p).fromBER(t,n,i)}}else u=1==r.id_block.is_constructed?e.org.pkijs.asn1.ASN1_CONSTRUCTED:e.org.pkijs.asn1.ASN1_PRIMITIVE;return r=function(e,t){if(e instanceof t)return e;var n=new t;return n.id_block=e.id_block,n.len_block=e.len_block,n.warnings=e.warnings,n.value_before_decode=a(e.value_before_decode),n}(r,u),l=r.fromBER(t,n,1==r.len_block.is_indefinite_form?i:r.len_block.length),r.value_before_decode=s(t,o,r.block_length),{offset:l,result:r}}t.base_block=function(){arguments[0]instanceof Object?(this.block_length=e.org.pkijs.getValue(arguments[0],"block_length",0),this.error=e.org.pkijs.getValue(arguments[0],"error",new String),this.warnings=e.org.pkijs.getValue(arguments[0],"warnings",new Array),this.value_before_decode="value_before_decode"in arguments[0]?a(arguments[0].value_before_decode):new ArrayBuffer(0)):(this.block_length=0,this.error=new String,this.warnings=new Array,this.value_before_decode=new ArrayBuffer(0))},t.base_block.prototype.block_name=function(){return"base_block"},t.base_block.prototype.toJSON=function(){return{block_name:t.base_block.prototype.block_name.call(this),block_length:this.block_length,error:this.error,warnings:this.warnings,value_before_decode:e.org.pkijs.bufferToHexCodes(this.value_before_decode,0,this.value_before_decode.byteLength)}},t.hex_block=function(){t.base_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0)):(this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.hex_block.prototype=new t.base_block,t.hex_block.constructor=t.hex_block,t.hex_block.prototype.block_name=function(){return"hex_block"},t.hex_block.prototype.fromBER=function(e,t,n){if(!1===c.call(this,e,t,n))return-1;var i=new Uint8Array(e,t,n);if(0==i.length)return this.warnings.push("Zero buffer length"),t;this.value_hex=new ArrayBuffer(n);for(var o=new Uint8Array(this.value_hex),r=0;r<i.length;r++)o[r]=i[r];return this.block_length=n,t+n},t.hex_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0!==this.is_hex_only)return this.error='Flag "is_hex_only" is not set, abort',new ArrayBuffer(0);var t=new ArrayBuffer(this.value_hex.byteLength);if(!0===e)return t;for(var n=new Uint8Array(t),i=new Uint8Array(this.value_hex),o=0;o<i.length;o++)n[o]=i[o];return t},t.hex_block.prototype.toJSON=function(){var n=t.base_block.prototype.toJSON.call(this);return n.block_name=t.hex_block.prototype.block_name.call(this),n.is_hex_only=this.is_hex_only,n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n},t.identification_block=function(){t.hex_block.call(this,arguments[0]),this.tag_class=-1,this.tag_number=-1,this.is_constructed=!1,arguments[0]instanceof Object&&"id_block"in arguments[0]&&(this.is_hex_only=e.org.pkijs.getValue(arguments[0].id_block,"is_hex_only",!1),this.value_hex=e.org.pkijs.getValue(arguments[0].id_block,"value_hex",new ArrayBuffer(0)),this.tag_class=e.org.pkijs.getValue(arguments[0].id_block,"tag_class",-1),this.tag_number=e.org.pkijs.getValue(arguments[0].id_block,"tag_number",-1),this.is_constructed=e.org.pkijs.getValue(arguments[0].id_block,"is_constructed",!1))},t.identification_block.prototype=new t.hex_block,t.identification_block.constructor=t.identification_block,t.identification_block.prototype.block_name=function(){return"identification_block"},t.identification_block.prototype.toBER=function(e){void 0===e&&(e=!1);var t=0;switch(this.tag_class){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",new ArrayBuffer(0)}if(this.is_constructed&&(t|=32),this.tag_number<31&&!this.is_hex_only){var n=new ArrayBuffer(1),o=new Uint8Array(n);if(!e){var r=this.tag_number;t|=r&=31,o[0]=t}return n}if(!1===this.is_hex_only){var a=i(this.tag_number,7),s=new Uint8Array(a),l=a.byteLength;n=new ArrayBuffer(l+1);if((o=new Uint8Array(n))[0]=31|t,!e){for(var c=0;c<l-1;c++)o[c+1]=128|s[c];o[l]=s[l-1]}return n}n=new ArrayBuffer(this.value_hex.byteLength+1);if((o=new Uint8Array(n))[0]=31|t,!1===e){var u=new Uint8Array(this.value_hex);for(c=0;c<u.length-1;c++)o[c+1]=128|u[c];o[this.value_hex.byteLength]=u[u.length-1]}return n},t.identification_block.prototype.fromBER=function(e,t,i){if(!1===c.call(this,e,t,i))return-1;var o=new Uint8Array(e,t,i);if(0==o.length)return this.error="Zero buffer length",-1;switch(192&o[0]){case 0:this.tag_class=1;break;case 64:this.tag_class=2;break;case 128:this.tag_class=3;break;case 192:this.tag_class=4;break;default:return this.error="Unknown tag class",-1}this.is_constructed=!(32&~o[0]),this.is_hex_only=!1;var r=31&o[0];if(31!=r)this.tag_number=r,this.block_length=1;else{var a=1;this.value_hex=new ArrayBuffer(255);for(var s=255,l=new Uint8Array(this.value_hex);128&o[a];){if(l[a-1]=127&o[a],++a>=o.length)return this.error="End of input reached before message was fully decoded",-1;if(a==s){s+=255;for(var u=new ArrayBuffer(s),p=new Uint8Array(u),h=0;h<l.length;h++)p[h]=l[h];this.value_hex=new ArrayBuffer(s),l=new Uint8Array(this.value_hex)}}this.block_length=a+1,l[a-1]=127&o[a];for(u=new ArrayBuffer(a),p=new Uint8Array(u),h=0;h<a;h++)p[h]=l[h];this.value_hex=new ArrayBuffer(a),(l=new Uint8Array(this.value_hex)).set(p),this.block_length<=9?this.tag_number=n(l,7):(this.is_hex_only=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(1==this.tag_class&&this.is_constructed)switch(this.tag_number){case 1:case 2:case 5:case 6:case 9:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.block_length},t.identification_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.identification_block.prototype.block_name.call(this),e.tag_class=this.tag_class,e.tag_number=this.tag_number,e.is_constructed=this.is_constructed,e},t.length_block=function(){t.base_block.call(this,arguments[0]),this.is_indefinite_form=!1,this.long_form_used=!1,this.length=0,arguments[0]instanceof Object&&"len_block"in arguments[0]&&(this.is_indefinite_form=e.org.pkijs.getValue(arguments[0].len_block,"is_indefinite_form",!1),this.long_form_used=e.org.pkijs.getValue(arguments[0].len_block,"long_form_used",!1),this.length=e.org.pkijs.getValue(arguments[0].len_block,"length",0))},t.length_block.prototype=new t.base_block,t.length_block.constructor=t.length_block,t.length_block.prototype.block_name=function(){return"length_block"},t.length_block.prototype.fromBER=function(e,t,i){if(!1===c.call(this,e,t,i))return-1;var o=new Uint8Array(e,t,i);if(0==o.length)return this.error="Zero buffer length",-1;if(255==o[0])return this.error="Length block 0xFF is reserved by standard",-1;if(this.is_indefinite_form=128==o[0],1==this.is_indefinite_form)return this.block_length=1,t+this.block_length;if(this.long_form_used=!!(128&o[0]),0==this.long_form_used)return this.length=o[0],this.block_length=1,t+this.block_length;var r=127&o[0];if(r>8)return this.error="Too big integer",-1;if(r+1>o.length)return this.error="End of input reached before message was fully decoded",-1;for(var a=new Uint8Array(r),s=0;s<r;s++)a[s]=o[s+1];return 0==a[r-1]&&this.warnings.push("Needlessly long encoded length"),this.length=n(a,8),this.long_form_used&&this.length<=127&&this.warnings.push("Unneccesary usage of long length form"),this.block_length=r+1,t+this.block_length},t.length_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),this.length>127&&(this.long_form_used=!0),this.is_indefinite_form){var t=new ArrayBuffer(1);if(!1===e)(a=new Uint8Array(t))[0]=128;return t}if(!0===this.long_form_used){var n=i(this.length,8);if(n.byteLength>127)return this.error="Too big length",new ArrayBuffer(0);t=new ArrayBuffer(n.byteLength+1);if(!0===e)return t;var o=new Uint8Array(n);(a=new Uint8Array(t))[0]=128|n.byteLength;for(var r=0;r<n.byteLength;r++)a[r+1]=o[r];return t}var a;t=new ArrayBuffer(1);return!1===e&&((a=new Uint8Array(t))[0]=this.length),t},t.length_block.prototype.toJSON=function(){var e=t.base_block.prototype.toJSON.call(this);return e.block_name=t.length_block.prototype.block_name.call(this),e.is_indefinite_form=this.is_indefinite_form,e.long_form_used=this.long_form_used,e.length=this.length,e},t.value_block=function(){t.base_block.call(this,arguments[0])},t.value_block.prototype=new t.base_block,t.value_block.constructor=t.value_block,t.value_block.prototype.block_name=function(){return"value_block"},t.value_block.prototype.toJSON=function(){var e=t.base_block.prototype.toJSON.call(this);return e.block_name=t.value_block.prototype.block_name.call(this),e},e.org.pkijs.asn1.ASN1_block=function(){t.base_block.call(this,arguments[0]),arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1),"primitive_schema"in arguments[0]&&(this.primitive_schema=arguments[0].primitive_schema)),this.id_block=new t.identification_block(arguments[0]),this.len_block=new t.length_block(arguments[0]),this.value_block=new t.value_block(arguments[0])},e.org.pkijs.asn1.ASN1_block.prototype=new t.base_block,e.org.pkijs.asn1.ASN1_block.constructor=e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_block.prototype.block_name=function(){return"ASN1_block"},e.org.pkijs.asn1.ASN1_block.prototype.fromBER=function(e,t,n){var i=this.value_block.fromBER(e,t,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==i?(this.error=this.value_block.error,i):(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),i)},e.org.pkijs.asn1.ASN1_block.prototype.toBER=function(e){var t;void 0===e&&(e=!1);var n=this.id_block.toBER(e),i=this.value_block.toBER(!0);if(this.len_block.length=i.byteLength,t=l(n,this.len_block.toBER(e)),t=l(t,!1===e?this.value_block.toBER(e):new ArrayBuffer(this.len_block.length)),!0===this.len_block.is_indefinite_form){var o=new ArrayBuffer(2);if(!1===e){var r=new Uint8Array(o);r[0]=0,r[1]=0}t=l(t,o)}return t},e.org.pkijs.asn1.ASN1_block.prototype.toJSON=function(){var n=t.base_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.ASN1_block.prototype.block_name.call(this),n.id_block=this.id_block.toJSON(),n.len_block=this.len_block.toJSON(),n.value_block=this.value_block.toJSON(),"name"in this&&(n.name=this.name),"optional"in this&&(n.optional=this.optional),"primitive_schema"in this&&(n.primitive_schema=this.primitive_schema.toJSON()),n},t.ASN1_PRIMITIVE_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!0)):(this.value_hex=new ArrayBuffer(0),this.is_hex_only=!0)},t.ASN1_PRIMITIVE_value_block.prototype=new t.value_block,t.ASN1_PRIMITIVE_value_block.constructor=t.ASN1_PRIMITIVE_value_block,t.ASN1_PRIMITIVE_value_block.prototype.fromBER=function(e,t,n){if(!1===c.call(this,e,t,n))return-1;var i=new Uint8Array(e,t,n);if(0==i.length)return this.warnings.push("Zero buffer length"),t;this.value_hex=new ArrayBuffer(i.length);for(var o=new Uint8Array(this.value_hex),r=0;r<i.length;r++)o[r]=i[r];return this.block_length=n,t+n},t.ASN1_PRIMITIVE_value_block.prototype.toBER=function(e){return a(this.value_hex)},t.ASN1_PRIMITIVE_value_block.prototype.block_name=function(){return"ASN1_PRIMITIVE_value_block"},t.ASN1_PRIMITIVE_value_block.prototype.toJSON=function(){var n=t.value_block.prototype.toJSON.call(this);return n.block_name=t.ASN1_PRIMITIVE_value_block.prototype.block_name.call(this),n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n.is_hex_only=this.is_hex_only,n},e.org.pkijs.asn1.ASN1_PRIMITIVE=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.is_constructed=!1,this.value_block=new t.ASN1_PRIMITIVE_value_block(arguments[0])},e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_PRIMITIVE.constructor=e.org.pkijs.asn1.ASN1_PRIMITIVE,e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.block_name=function(){return"PRIMITIVE"},e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ASN1_PRIMITIVE.prototype.block_name.call(this),t},t.ASN1_CONSTRUCTED_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value=e.org.pkijs.getValue(arguments[0],"value",new Array),this.is_indefinite_form=e.org.pkijs.getValue(arguments[0],"is_indefinite_form",!1)):(this.value=new Array,this.is_indefinite_form=!1)},t.ASN1_CONSTRUCTED_value_block.prototype=new t.value_block,t.ASN1_CONSTRUCTED_value_block.constructor=t.ASN1_CONSTRUCTED_value_block,t.ASN1_CONSTRUCTED_value_block.prototype.fromBER=function(t,n,i){var o=n,r=i;if(!1===c.call(this,t,n,i))return-1;if(0==new Uint8Array(t,n,i).length)return this.warnings.push("Zero buffer length"),n;for(var a,l,p=n;a=this.is_indefinite_form,l=i,(1==a?1:l)>0;){var h=u(t,p,i);if(-1==h.offset)return this.error=h.result.error,this.warnings.concat(h.result.warnings),-1;if(p=h.offset,this.block_length+=h.result.block_length,i-=h.result.block_length,this.value.push(h.result),1==this.is_indefinite_form&&h.result.block_name()==e.org.pkijs.asn1.EOC.prototype.block_name())break}return 1==this.is_indefinite_form&&(this.value[this.value.length-1].block_name()==e.org.pkijs.asn1.EOC.prototype.block_name()?this.value.pop():this.warnings.push("No EOC block encoded")),this.value_before_decode=s(t,o,r),p},t.ASN1_CONSTRUCTED_value_block.prototype.toBER=function(e){void 0===e&&(e=!1);for(var t=new ArrayBuffer(0),n=0;n<this.value.length;n++){t=l(t,this.value[n].toBER(e))}return t},t.ASN1_CONSTRUCTED_value_block.prototype.block_name=function(){return"ASN1_CONSTRUCTED_value_block"},t.ASN1_CONSTRUCTED_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);e.block_name=t.ASN1_CONSTRUCTED_value_block.prototype.block_name.call(this),e.is_indefinite_form=this.is_indefinite_form,e.value=new Array;for(var n=0;n<this.value.length;n++)e.value.push(this.value[n].toJSON());return e},e.org.pkijs.asn1.ASN1_CONSTRUCTED=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.is_constructed=!0,this.value_block=new t.ASN1_CONSTRUCTED_value_block(arguments[0])},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.ASN1_CONSTRUCTED.constructor=e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.block_name=function(){return"CONSTRUCTED"},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.fromBER=function(e,t,n){this.value_block.is_indefinite_form=this.len_block.is_indefinite_form;var i=this.value_block.fromBER(e,t,1==this.len_block.is_indefinite_form?n:this.len_block.length);return-1==i?(this.error=this.value_block.error,i):(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),i)},e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.block_name.call(this),t},t.EOC_value_block=function(){t.value_block.call(this,arguments[0])},t.EOC_value_block.prototype=new t.value_block,t.EOC_value_block.constructor=t.EOC_value_block,t.EOC_value_block.prototype.fromBER=function(e,t,n){return t},t.EOC_value_block.prototype.toBER=function(e){return new ArrayBuffer(0)},t.EOC_value_block.prototype.block_name=function(){return"EOC_value_block"},t.EOC_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);return e.block_name=t.EOC_value_block.prototype.block_name.call(this),e},e.org.pkijs.asn1.EOC=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.EOC_value_block,this.id_block.tag_class=1,this.id_block.tag_number=0},e.org.pkijs.asn1.EOC.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.EOC.constructor=t.EOC_value_block,e.org.pkijs.asn1.EOC.prototype.block_name=function(){return"END_OF_CONTENT"},e.org.pkijs.asn1.EOC.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.EOC.prototype.block_name.call(this),t},t.BOOLEAN_value_block=function(){(t.value_block.call(this,arguments[0]),arguments[0]instanceof Object)?(this.value=e.org.pkijs.getValue(arguments[0],"value",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),"value_hex"in arguments[0]?this.value_hex=a(arguments[0].value_hex):(this.value_hex=new ArrayBuffer(1),!0===this.value&&(new Uint8Array(this.value_hex)[0]=255))):(this.value=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(1))},t.BOOLEAN_value_block.prototype=new t.value_block,t.BOOLEAN_value_block.constructor=t.BOOLEAN_value_block,t.BOOLEAN_value_block.prototype.fromBER=function(e,t,n){if(!1===c.call(this,e,t,n))return-1;var i=new Uint8Array(e,t,n);n>1&&this.warnings.push("BOOLEAN value encoded in more then 1 octet"),this.value=0!=i[0],this.is_hex_only=!0,this.value_hex=new ArrayBuffer(i.length);for(var o=new Uint8Array(this.value_hex),r=0;r<i.length;r++)o[r]=i[r];return this.block_length=n,t+n},t.BOOLEAN_value_block.prototype.toBER=function(e){return this.value_hex},t.BOOLEAN_value_block.prototype.block_name=function(){return"BOOLEAN_value_block"},t.BOOLEAN_value_block.prototype.toJSON=function(){var n=t.value_block.prototype.toJSON.call(this);return n.block_name=t.BOOLEAN_value_block.prototype.block_name.call(this),n.value=this.value,n.is_hex_only=this.is_hex_only,n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n},e.org.pkijs.asn1.BOOLEAN=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BOOLEAN_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=1},e.org.pkijs.asn1.BOOLEAN.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BOOLEAN.constructor=t.BOOLEAN_value_block,e.org.pkijs.asn1.BOOLEAN.prototype.block_name=function(){return"BOOLEAN"},e.org.pkijs.asn1.BOOLEAN.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BOOLEAN.prototype.block_name.call(this),t},e.org.pkijs.asn1.SEQUENCE=function(){e.org.pkijs.asn1.ASN1_CONSTRUCTED.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=16},e.org.pkijs.asn1.SEQUENCE.prototype=new e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.SEQUENCE.constructor=e.org.pkijs.asn1.SEQUENCE,e.org.pkijs.asn1.SEQUENCE.prototype.block_name=function(){return"SEQUENCE"},e.org.pkijs.asn1.SEQUENCE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.SEQUENCE.prototype.block_name.call(this),t},e.org.pkijs.asn1.SET=function(){e.org.pkijs.asn1.ASN1_CONSTRUCTED.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=17},e.org.pkijs.asn1.SET.prototype=new e.org.pkijs.asn1.ASN1_CONSTRUCTED,e.org.pkijs.asn1.SET.constructor=e.org.pkijs.asn1.SET,e.org.pkijs.asn1.SET.prototype.block_name=function(){return"SET"},e.org.pkijs.asn1.SET.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_CONSTRUCTED.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.SET.prototype.block_name.call(this),t},e.org.pkijs.asn1.NULL=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=5},e.org.pkijs.asn1.NULL.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.NULL.constructor=e.org.pkijs.asn1.NULL,e.org.pkijs.asn1.NULL.prototype.block_name=function(){return"NULL"},e.org.pkijs.asn1.NULL.prototype.fromBER=function(e,t,n){return this.len_block.length>0&&this.warnings.push("Non-zero length of value block for NULL type"),0===this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0===this.len_block.error.length&&(this.block_length+=this.len_block.block_length),this.block_length+=n,t+n},e.org.pkijs.asn1.NULL.prototype.toBER=function(e){void 0===e&&(e=!1);var t=new ArrayBuffer(2);if(!0===e)return t;var n=new Uint8Array(t);return n[0]=5,n[1]=0,t},e.org.pkijs.asn1.NULL.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.NULL.prototype.block_name.call(this),t},t.OCTETSTRING_value_block=function(){t.ASN1_CONSTRUCTED_value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.is_constructed=e.org.pkijs.getValue(arguments[0],"is_constructed",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0)):(this.is_constructed=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.OCTETSTRING_value_block.prototype=new t.ASN1_CONSTRUCTED_value_block,t.OCTETSTRING_value_block.constructor=t.OCTETSTRING_value_block,t.OCTETSTRING_value_block.prototype.fromBER=function(n,i,o){var r=0;if(1==this.is_constructed){if(this.is_hex_only=!1,-1==(r=t.ASN1_CONSTRUCTED_value_block.prototype.fromBER.call(this,n,i,o)))return r;for(var a=0;a<this.value.length;a++){var s=this.value[a].block_name();if(s==e.org.pkijs.asn1.EOC.prototype.block_name()){if(1==this.is_indefinite_form)break;return this.error="EOC is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(s!=e.org.pkijs.asn1.OCTETSTRING.prototype.block_name())return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.is_hex_only=!0,r=t.hex_block.prototype.fromBER.call(this,n,i,o),this.block_length=o;return r},t.OCTETSTRING_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0===this.is_constructed)return t.ASN1_CONSTRUCTED_value_block.prototype.toBER.call(this,e);var n=new ArrayBuffer(this.value_hex.byteLength);return!0===e||0==this.value_hex.byteLength?n:n=a(this.value_hex)},t.OCTETSTRING_value_block.prototype.block_name=function(){return"OCTETSTRING_value_block"},t.OCTETSTRING_value_block.prototype.toJSON=function(){var n=t.ASN1_CONSTRUCTED_value_block.prototype.toJSON.call(this);return n.block_name=t.OCTETSTRING_value_block.prototype.block_name.call(this),n.is_constructed=this.is_constructed,n.is_hex_only=this.is_hex_only,n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n},e.org.pkijs.asn1.OCTETSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.OCTETSTRING_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=4},e.org.pkijs.asn1.OCTETSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.OCTETSTRING.constructor=e.org.pkijs.asn1.OCTETSTRING,e.org.pkijs.asn1.OCTETSTRING.prototype.fromBER=function(t,n,i){return this.value_block.is_constructed=this.id_block.is_constructed,this.value_block.is_indefinite_form=this.len_block.is_indefinite_form,0==i?(0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),n):e.org.pkijs.asn1.ASN1_block.prototype.fromBER.call(this,t,n,i)},e.org.pkijs.asn1.OCTETSTRING.prototype.block_name=function(){return"OCTETSTRING"},e.org.pkijs.asn1.OCTETSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.OCTETSTRING.prototype.block_name.call(this),t},e.org.pkijs.asn1.OCTETSTRING.prototype.isEqual=function(t){return t instanceof e.org.pkijs.asn1.OCTETSTRING!=0&&JSON.stringify(this)==JSON.stringify(t)},t.BITSTRING_value_block=function(){t.ASN1_CONSTRUCTED_value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.unused_bits=e.org.pkijs.getValue(arguments[0],"unused_bits",0),this.is_constructed=e.org.pkijs.getValue(arguments[0],"is_constructed",!1),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),this.value_hex="value_hex"in arguments[0]?a(arguments[0].value_hex):new ArrayBuffer(0),this.block_length=this.value_hex.byteLength):(this.unused_bits=0,this.is_constructed=!1,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.BITSTRING_value_block.prototype=new t.ASN1_CONSTRUCTED_value_block,t.BITSTRING_value_block.constructor=t.BITSTRING_value_block,t.BITSTRING_value_block.prototype.fromBER=function(n,i,o){if(0==o)return i;var r=-1;if(1==this.is_constructed){if(-1==(r=t.ASN1_CONSTRUCTED_value_block.prototype.fromBER.call(this,n,i,o)))return r;for(var a=0;a<this.value.length;a++){var s=this.value[a].block_name();if(s==e.org.pkijs.asn1.EOC.prototype.block_name()){if(1==this.is_indefinite_form)break;return this.error="EOC is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(s!=e.org.pkijs.asn1.BITSTRING.prototype.block_name())return this.error="BIT STRING may consists of BIT STRINGs only",-1;if(this.unused_bits>0&&this.value[a].unused_bits>0)return this.error='Usign of "unused bits" inside constructive BIT STRING allowed for least one only',-1;if(this.unused_bits=this.value[a].unused_bits,this.unused_bits>7)return this.error="Unused bits for BITSTRING must be in range 0-7",-1}return r}if(!1===c.call(this,n,i,o))return-1;var l=new Uint8Array(n,i,o);if(this.unused_bits=l[0],this.unused_bits>7)return this.error="Unused bits for BITSTRING must be in range 0-7",-1;this.value_hex=new ArrayBuffer(l.length-1);var u=new Uint8Array(this.value_hex);for(a=0;a<o-1;a++)u[a]=l[a+1];return this.block_length=l.length,i+o},t.BITSTRING_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),!0===this.is_constructed)return t.ASN1_CONSTRUCTED_value_block.prototype.toBER.call(this,e);if(!0===e)return new ArrayBuffer(this.value_hex.byteLength+1);if(0==this.value_hex.byteLength)return new ArrayBuffer(0);var n=new Uint8Array(this.value_hex),i=new ArrayBuffer(this.value_hex.byteLength+1),o=new Uint8Array(i);o[0]=this.unused_bits;for(var r=0;r<this.value_hex.byteLength;r++)o[r+1]=n[r];return i},t.BITSTRING_value_block.prototype.block_name=function(){return"BITSTRING_value_block"},t.BITSTRING_value_block.prototype.toJSON=function(){var n=t.ASN1_CONSTRUCTED_value_block.prototype.toJSON.call(this);return n.block_name=t.BITSTRING_value_block.prototype.block_name.call(this),n.unused_bits=this.unused_bits,n.is_constructed=this.is_constructed,n.is_hex_only=this.is_hex_only,n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n},e.org.pkijs.asn1.BITSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BITSTRING_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=3},e.org.pkijs.asn1.BITSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BITSTRING.constructor=e.org.pkijs.asn1.BITSTRING,e.org.pkijs.asn1.BITSTRING.prototype.block_name=function(){return"BITSTRING"},e.org.pkijs.asn1.BITSTRING.prototype.fromBER=function(t,n,i){return 0==i?n:(this.value_block.is_constructed=this.id_block.is_constructed,this.value_block.is_indefinite_form=this.len_block.is_indefinite_form,e.org.pkijs.asn1.ASN1_block.prototype.fromBER.call(this,t,n,i))},e.org.pkijs.asn1.BITSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BITSTRING.prototype.block_name.call(this),t},t.INTEGER_value_block=function(){t.value_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_dec=e.org.pkijs.getValue(arguments[0],"value",0),this.is_hex_only=e.org.pkijs.getValue(arguments[0],"is_hex_only",!1),"value_hex"in arguments[0]?(this.value_hex=a(arguments[0].value_hex),this.value_hex.byteLength>=4?this.is_hex_only=!0:this.value_dec=r.call(this)):this.value_hex=o(this.value_dec)):(this.value_dec=0,this.is_hex_only=!1,this.value_hex=new ArrayBuffer(0))},t.INTEGER_value_block.prototype=new t.value_block,t.INTEGER_value_block.constructor=t.INTEGER_value_block,t.INTEGER_value_block.prototype.fromBER=function(e,n,i){var o=t.hex_block.prototype.fromBER.call(this,e,n,i);return-1==o?o:(this.value_hex.byteLength>4?(this.warnings.push("Too big INTEGER for decoding, hex only"),this.is_hex_only=!0):this.value_dec=r.call(this),this.block_length=i,n+i)},t.INTEGER_value_block.prototype.toBER=function(e){if(!1===this.is_hex_only){var t=o(this.value_dec);return 0==t.byteLength?(this.error="Error during encoding INTEGER value",new ArrayBuffer(0)):a(t)}return a(this.value_hex)},t.INTEGER_value_block.prototype.block_name=function(){return"INTEGER_value_block"},t.INTEGER_value_block.prototype.toJSON=function(){var n=t.value_block.prototype.toJSON.call(this);return n.block_name=t.INTEGER_value_block.prototype.block_name.call(this),n.value_dec=this.value_dec,n.is_hex_only=this.is_hex_only,n.value_hex=e.org.pkijs.bufferToHexCodes(this.value_hex,0,this.value_hex.byteLength),n},e.org.pkijs.asn1.INTEGER=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.INTEGER_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=2},e.org.pkijs.asn1.INTEGER.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.INTEGER.constructor=e.org.pkijs.asn1.INTEGER,e.org.pkijs.asn1.INTEGER.prototype.block_name=function(){return"INTEGER"},e.org.pkijs.asn1.INTEGER.prototype.isEqual=function(){return arguments[0]instanceof e.org.pkijs.asn1.INTEGER?this.value_block.is_hex_only&&arguments[0].value_block.is_hex_only?e.org.pkijs.isEqual_buffer(this.value_block.value_hex,arguments[0].value_block.value_hex):this.value_block.is_hex_only===arguments[0].value_block.is_hex_only&&this.value_block.value_dec==arguments[0].value_block.value_dec:arguments[0]instanceof ArrayBuffer&&e.org.pkijs.isEqual_buffer(this.value_block.value_hex,arguments[0])},e.org.pkijs.asn1.INTEGER.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.INTEGER.prototype.block_name.call(this),t},e.org.pkijs.asn1.ENUMERATED=function(){e.org.pkijs.asn1.INTEGER.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=10},e.org.pkijs.asn1.ENUMERATED.prototype=new e.org.pkijs.asn1.INTEGER,e.org.pkijs.asn1.ENUMERATED.constructor=e.org.pkijs.asn1.ENUMERATED,e.org.pkijs.asn1.ENUMERATED.prototype.block_name=function(){return"ENUMERATED"},e.org.pkijs.asn1.ENUMERATED.prototype.toJSON=function(){var t=e.org.pkijs.asn1.INTEGER.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.ENUMERATED.prototype.block_name.call(this),t},t.SID_value_block=function(){t.hex_block.call(this,arguments[0]),arguments[0]instanceof Object?(this.value_dec=e.org.pkijs.getValue(arguments[0],"value_dec",-1),this.is_first_sid=e.org.pkijs.getValue(arguments[0],"is_first_sid",!1)):(this.value_dec=-1,this.is_first_sid=!1)},t.SID_value_block.prototype=new t.hex_block,t.SID_value_block.constructor=t.SID_value_block,t.SID_value_block.prototype.block_name=function(){return"sid_block"},t.SID_value_block.prototype.fromBER=function(e,t,i){if(0==i)return t;if(!1===c.call(this,e,t,i))return-1;var o=new Uint8Array(e,t,i);this.value_hex=new ArrayBuffer(i);for(var r=new Uint8Array(this.value_hex),s=0;s<i&&(r[s]=127&o[s],this.block_length++,128&o[s]);s++);var l=new ArrayBuffer(this.block_length),u=new Uint8Array(l);for(s=0;s<this.block_length;s++)u[s]=r[s];return this.value_hex=a(l),r=new Uint8Array(this.value_hex),128&o[this.block_length-1]?(this.error="End of input reached before message was fully decoded",-1):(0==r[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.block_length<=8?this.value_dec=n(r,7):(this.is_hex_only=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.block_length)},t.SID_value_block.prototype.toBER=function(e){if(void 0===e&&(e=!1),this.is_hex_only){if(!0===e)return new ArrayBuffer(this.value_hex.byteLength);for(var t=new Uint8Array(this.value_hex),n=new ArrayBuffer(this.block_length),o=new Uint8Array(n),r=0;r<this.block_length-1;r++)o[r]=128|t[r];return o[this.block_length-1]=t[this.block_length-1],n}var a=i(this.value_dec,7);if(0===a.byteLength)return this.error="Error during encoding SID value",new ArrayBuffer(0);n=new ArrayBuffer(a.byteLength);if(!1===e){var s=new Uint8Array(a);for(o=new Uint8Array(n),r=0;r<a.byteLength-1;r++)o[r]=128|s[r];o[a.byteLength-1]=s[a.byteLength-1]}return n},t.SID_value_block.prototype.toString=function(){var e="";if(!0===this.is_hex_only)e=function(e,t,n){if(!1===c(e,t,n))return"";for(var i="",o=new Uint8Array(e,t,n),r=0;r<o.length;r++){var a=o[r].toString(16).toUpperCase();i=i+(1===a.length?" 0":" ")+a}return i}(this.value_hex);else if(this.is_first_sid){var t=this.value_dec;this.value_dec<=39?e="0.":this.value_dec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.value_dec.toString();return e},t.SID_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.SID_value_block.prototype.block_name.call(this),e.value_dec=this.value_dec,e.is_first_sid=this.is_first_sid,e},t.OID_value_block=function(){t.value_block.call(this,arguments[0]),this.value=new Array,arguments[0]instanceof Object&&this.fromString(e.org.pkijs.getValue(arguments[0],"value",""))},t.OID_value_block.prototype=new t.value_block,t.OID_value_block.constructor=t.OID_value_block,t.OID_value_block.prototype.fromBER=function(e,n,i){for(var o=n;i>0;){var r=new t.SID_value_block;if(-1==(o=r.fromBER(e,o,i)))return this.block_length=0,this.error=r.error,o;0==this.value.length&&(r.is_first_sid=!0),this.block_length+=r.block_length,i-=r.block_length,this.value.push(r)}return o},t.OID_value_block.prototype.toBER=function(e){void 0===e&&(e=!1);for(var t=new ArrayBuffer(0),n=0;n<this.value.length;n++){var i=this.value[n].toBER(e);if(0===i.byteLength)return this.error=this.value[n].error,new ArrayBuffer(0);t=l(t,i)}return t},t.OID_value_block.prototype.fromString=function(e){this.value=new Array;var n=0,i=0,o="",r=!1;do{if(o=-1===(i=e.indexOf(".",n))?e.substr(n):e.substr(n,i-n),n=i+1,r){var a=0;switch((l=this.value[0]).value_dec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:return this.value=new Array,!1}var s=parseInt(o,10);if(isNaN(s))return!0;l.value_dec=s+a,r=!1}else{var l;if((l=new t.SID_value_block).value_dec=parseInt(o,10),isNaN(l.value_dec))return!0;0===this.value.length&&(l.is_first_sid=!0,r=!0),this.value.push(l)}}while(-1!==i);return!0},t.OID_value_block.prototype.toString=function(){for(var e="",t=!1,n=0;n<this.value.length;n++){t=this.value[n].is_hex_only;var i=this.value[n].toString();0!==n&&(e+="."),t?(i="{"+i+"}",this.value[n].is_first_sid?e="2.{"+i+" - 80}":e+=i):e+=i}return e},t.OID_value_block.prototype.block_name=function(){return"OID_value_block"},t.OID_value_block.prototype.toJSON=function(){var e=t.value_block.prototype.toJSON.call(this);e.block_name=t.OID_value_block.prototype.block_name.call(this),e.value=t.OID_value_block.prototype.toString.call(this),e.sid_array=new Array;for(var n=0;n<this.value.length;n++)e.sid_array.push(this.value[n].toJSON());return e},e.org.pkijs.asn1.OID=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.OID_value_block(arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=6},e.org.pkijs.asn1.OID.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.OID.constructor=e.org.pkijs.asn1.OID,e.org.pkijs.asn1.OID.prototype.block_name=function(){return"OID"},e.org.pkijs.asn1.OID.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.OID.prototype.block_name.call(this),t},t.UTF8STRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.UTF8STRING_value_block.prototype=new t.hex_block,t.UTF8STRING_value_block.constructor=t.UTF8STRING_value_block,t.UTF8STRING_value_block.prototype.block_name=function(){return"UTF8STRING_value_block"},t.UTF8STRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.UTF8STRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.UTF8STRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.UTF8STRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.UTF8STRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=12},e.org.pkijs.asn1.UTF8STRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.UTF8STRING.constructor=e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.UTF8STRING.prototype.block_name=function(){return"UTF8STRING"},e.org.pkijs.asn1.UTF8STRING.prototype.fromBER=function(t,n,i){var o=this.value_block.fromBER(t,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UTF8STRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UTF8STRING.prototype.fromBuffer=function(e){this.value_block.value=String.fromCharCode.apply(null,new Uint8Array(e));try{this.value_block.value=decodeURIComponent(escape(this.value_block.value))}catch(e){this.warnings.push('Error during "decodeURIComponent": '+e+", using raw string")}},e.org.pkijs.asn1.UTF8STRING.prototype.fromString=function(e){var t=unescape(encodeURIComponent(e)),n=t.length;this.value_block.value_hex=new ArrayBuffer(n);for(var i=new Uint8Array(this.value_block.value_hex),o=0;o<n;o++)i[o]=t.charCodeAt(o);this.value_block.value=e},e.org.pkijs.asn1.UTF8STRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UTF8STRING.prototype.block_name.call(this),t},t.BMPSTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.BMPSTRING_value_block.prototype=new t.hex_block,t.BMPSTRING_value_block.constructor=t.BMPSTRING_value_block,t.BMPSTRING_value_block.prototype.block_name=function(){return"BMPSTRING_value_block"},t.BMPSTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.BMPSTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.BMPSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.BMPSTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.BMPSTRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=30},e.org.pkijs.asn1.BMPSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.BMPSTRING.constructor=e.org.pkijs.asn1.BMPSTRING,e.org.pkijs.asn1.BMPSTRING.prototype.block_name=function(){return"BMPSTRING"},e.org.pkijs.asn1.BMPSTRING.prototype.fromBER=function(t,n,i){var o=this.value_block.fromBER(t,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.BMPSTRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.BMPSTRING.prototype.fromBuffer=function(t){for(var n=e.org.pkijs.copyBuffer(t),i=new Uint8Array(n),o=0;o<i.length;o+=2){var r=i[o];i[o]=i[o+1],i[o+1]=r}this.value_block.value=String.fromCharCode.apply(null,new Uint16Array(n))},e.org.pkijs.asn1.BMPSTRING.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(2*t);for(var n=new Uint8Array(this.value_block.value_hex),o=0;o<t;o++){var r=i(e.charCodeAt(o),8),a=new Uint8Array(r);if(!(a.length>2))for(var s=2-a.length,l=a.length-1;l>=0;l--)n[2*o+l+s]=a[l]}this.value_block.value=e},e.org.pkijs.asn1.BMPSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.BMPSTRING.prototype.block_name.call(this),t},t.UNIVERSALSTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.is_hex_only=!0,this.value=""},t.UNIVERSALSTRING_value_block.prototype=new t.hex_block,t.UNIVERSALSTRING_value_block.constructor=t.UNIVERSALSTRING_value_block,t.UNIVERSALSTRING_value_block.prototype.block_name=function(){return"UNIVERSALSTRING_value_block"},t.UNIVERSALSTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.UNIVERSALSTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},e.org.pkijs.asn1.UNIVERSALSTRING=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.UNIVERSALSTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromString.call(this,arguments[0].value),this.id_block.tag_class=1,this.id_block.tag_number=28},e.org.pkijs.asn1.UNIVERSALSTRING.prototype=new e.org.pkijs.asn1.ASN1_block,e.org.pkijs.asn1.UNIVERSALSTRING.constructor=e.org.pkijs.asn1.UNIVERSALSTRING,e.org.pkijs.asn1.UNIVERSALSTRING.prototype.block_name=function(){return"UNIVERSALSTRING"},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBER=function(t,n,i){var o=this.value_block.fromBER(t,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromBuffer=function(t){for(var n=e.org.pkijs.copyBuffer(t),i=new Uint8Array(n),o=0;o<i.length;o+=4)i[o]=i[o+3],i[o+1]=i[o+2],i[o+2]=0,i[o+3]=0;this.value_block.value=String.fromCharCode.apply(null,new Uint32Array(n))},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(4*t);for(var n=new Uint8Array(this.value_block.value_hex),o=0;o<t;o++){var r=i(e.charCodeAt(o),8),a=new Uint8Array(r);if(!(a.length>4))for(var s=4-a.length,l=a.length-1;l>=0;l--)n[4*o+l+s]=a[l]}this.value_block.value=e},e.org.pkijs.asn1.UNIVERSALSTRING.prototype.toJSON=function(){var t=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UNIVERSALSTRING.prototype.block_name.call(this),t},t.SIMPLESTRING_value_block=function(){t.hex_block.call(this,arguments[0]),this.value="",this.is_hex_only=!0},t.SIMPLESTRING_value_block.prototype=new t.hex_block,t.SIMPLESTRING_value_block.constructor=t.SIMPLESTRING_value_block,t.SIMPLESTRING_value_block.prototype.block_name=function(){return"SIMPLESTRING_value_block"},t.SIMPLESTRING_value_block.prototype.toJSON=function(){var e=t.hex_block.prototype.toJSON.call(this);return e.block_name=t.SIMPLESTRING_value_block.prototype.block_name.call(this),e.value=this.value,e},t.SIMPLESTRING_block=function(){e.org.pkijs.asn1.ASN1_block.call(this,arguments[0]),this.value_block=new t.SIMPLESTRING_value_block,arguments[0]instanceof Object&&"value"in arguments[0]&&t.SIMPLESTRING_block.prototype.fromString.call(this,arguments[0].value)},t.SIMPLESTRING_block.prototype=new e.org.pkijs.asn1.ASN1_block,t.SIMPLESTRING_block.constructor=t.SIMPLESTRING_block,t.SIMPLESTRING_block.prototype.block_name=function(){return"SIMPLESTRING"},t.SIMPLESTRING_block.prototype.fromBER=function(e,n,i){var o=this.value_block.fromBER(e,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(t.SIMPLESTRING_block.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},t.SIMPLESTRING_block.prototype.fromBuffer=function(e){this.value_block.value=String.fromCharCode.apply(null,new Uint8Array(e))},t.SIMPLESTRING_block.prototype.fromString=function(e){var t=e.length;this.value_block.value_hex=new ArrayBuffer(t);for(var n=new Uint8Array(this.value_block.value_hex),i=0;i<t;i++)n[i]=e.charCodeAt(i);this.value_block.value=e},t.SIMPLESTRING_block.prototype.toJSON=function(){var n=e.org.pkijs.asn1.ASN1_block.prototype.toJSON.call(this);return n.block_name=t.SIMPLESTRING_block.prototype.block_name.call(this),n},e.org.pkijs.asn1.NUMERICSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=18},e.org.pkijs.asn1.NUMERICSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.NUMERICSTRING.constructor=e.org.pkijs.asn1.NUMERICSTRING,e.org.pkijs.asn1.NUMERICSTRING.prototype.block_name=function(){return"NUMERICSTRING"},e.org.pkijs.asn1.NUMERICSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.NUMERICSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.PRINTABLESTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=19},e.org.pkijs.asn1.PRINTABLESTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.PRINTABLESTRING.constructor=e.org.pkijs.asn1.PRINTABLESTRING,e.org.pkijs.asn1.PRINTABLESTRING.prototype.block_name=function(){return"PRINTABLESTRING"},e.org.pkijs.asn1.PRINTABLESTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.PRINTABLESTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.TELETEXSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=20},e.org.pkijs.asn1.TELETEXSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.TELETEXSTRING.constructor=e.org.pkijs.asn1.TELETEXSTRING,e.org.pkijs.asn1.TELETEXSTRING.prototype.block_name=function(){return"TELETEXSTRING"},e.org.pkijs.asn1.TELETEXSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.TELETEXSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.VIDEOTEXSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=21},e.org.pkijs.asn1.VIDEOTEXSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.VIDEOTEXSTRING.constructor=e.org.pkijs.asn1.VIDEOTEXSTRING,e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.block_name=function(){return"VIDEOTEXSTRING"},e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.VIDEOTEXSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.IA5STRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=22},e.org.pkijs.asn1.IA5STRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.IA5STRING.constructor=e.org.pkijs.asn1.IA5STRING,e.org.pkijs.asn1.IA5STRING.prototype.block_name=function(){return"IA5STRING"},e.org.pkijs.asn1.IA5STRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.IA5STRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.GRAPHICSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=25},e.org.pkijs.asn1.GRAPHICSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.GRAPHICSTRING.constructor=e.org.pkijs.asn1.GRAPHICSTRING,e.org.pkijs.asn1.GRAPHICSTRING.prototype.block_name=function(){return"GRAPHICSTRING"},e.org.pkijs.asn1.GRAPHICSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.GRAPHICSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.VISIBLESTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=26},e.org.pkijs.asn1.VISIBLESTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.VISIBLESTRING.constructor=e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.VISIBLESTRING.prototype.block_name=function(){return"VISIBLESTRING"},e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.VISIBLESTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.GENERALSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=27},e.org.pkijs.asn1.GENERALSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.GENERALSTRING.constructor=e.org.pkijs.asn1.GENERALSTRING,e.org.pkijs.asn1.GENERALSTRING.prototype.block_name=function(){return"GENERALSTRING"},e.org.pkijs.asn1.GENERALSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.GENERALSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.CHARACTERSTRING=function(){t.SIMPLESTRING_block.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=29},e.org.pkijs.asn1.CHARACTERSTRING.prototype=new t.SIMPLESTRING_block,e.org.pkijs.asn1.CHARACTERSTRING.constructor=e.org.pkijs.asn1.CHARACTERSTRING,e.org.pkijs.asn1.CHARACTERSTRING.prototype.block_name=function(){return"CHARACTERSTRING"},e.org.pkijs.asn1.CHARACTERSTRING.prototype.toJSON=function(){var n=t.SIMPLESTRING_block.prototype.toJSON.call(this);return n.block_name=e.org.pkijs.asn1.CHARACTERSTRING.prototype.block_name.call(this),n},e.org.pkijs.asn1.UTCTIME=function(){if(e.org.pkijs.asn1.VISIBLESTRING.call(this,arguments[0]),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,arguments[0]instanceof Object&&"value"in arguments[0]){e.org.pkijs.asn1.UTCTIME.prototype.fromString.call(this,arguments[0].value),this.value_block.value_hex=new ArrayBuffer(arguments[0].value.length);for(var t=new Uint8Array(this.value_block.value_hex),n=0;n<arguments[0].value.length;n++)t[n]=arguments[0].value.charCodeAt(n)}arguments[0]instanceof Object&&"value_date"in arguments[0]&&(e.org.pkijs.asn1.UTCTIME.prototype.fromDate.call(this,arguments[0].value_date),this.value_block.value_hex=e.org.pkijs.asn1.UTCTIME.prototype.toBuffer.call(this)),this.id_block.tag_class=1,this.id_block.tag_number=23},e.org.pkijs.asn1.UTCTIME.prototype=new e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.UTCTIME.constructor=e.org.pkijs.asn1.UTCTIME,e.org.pkijs.asn1.UTCTIME.prototype.fromBER=function(t,n,i){var o=this.value_block.fromBER(t,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.UTCTIME.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.UTCTIME.prototype.fromBuffer=function(t){e.org.pkijs.asn1.UTCTIME.prototype.fromString.call(this,String.fromCharCode.apply(null,new Uint8Array(t)))},e.org.pkijs.asn1.UTCTIME.prototype.toBuffer=function(){for(var t=e.org.pkijs.asn1.UTCTIME.prototype.toString.call(this),n=new ArrayBuffer(t.length),i=new Uint8Array(n),o=0;o<t.length;o++)i[o]=t.charCodeAt(o);return n},e.org.pkijs.asn1.UTCTIME.prototype.fromDate=function(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()},e.org.pkijs.asn1.UTCTIME.prototype.toDate=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))},e.org.pkijs.asn1.UTCTIME.prototype.fromString=function(e){var t=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/gi.exec(e);if(null!==t){var n=parseInt(t[1],10);this.year=n>=50?1900+n:2e3+n,this.month=parseInt(t[2],10),this.day=parseInt(t[3],10),this.hour=parseInt(t[4],10),this.minute=parseInt(t[5],10),this.second=parseInt(t[6],10)}else this.error="Wrong input string for convertion"},e.org.pkijs.asn1.UTCTIME.prototype.toString=function(){var t=new Array(7);return t[0]=e.org.pkijs.padNumber(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=e.org.pkijs.padNumber(this.month,2),t[2]=e.org.pkijs.padNumber(this.day,2),t[3]=e.org.pkijs.padNumber(this.hour,2),t[4]=e.org.pkijs.padNumber(this.minute,2),t[5]=e.org.pkijs.padNumber(this.second,2),t[6]="Z",t.join("")},e.org.pkijs.asn1.UTCTIME.prototype.block_name=function(){return"UTCTIME"},e.org.pkijs.asn1.UTCTIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.UTCTIME.prototype.block_name.call(this),t.year=this.year,t.month=this.month,t.day=this.day,t.hour=this.hour,t.minute=this.minute,t.second=this.second,t},e.org.pkijs.asn1.GENERALIZEDTIME=function(){if(e.org.pkijs.asn1.VISIBLESTRING.call(this,arguments[0]),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,this.millisecond=0,arguments[0]instanceof Object&&"value"in arguments[0]){e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString.call(this,arguments[0].value),this.value_block.value_hex=new ArrayBuffer(arguments[0].value.length);for(var t=new Uint8Array(this.value_block.value_hex),n=0;n<arguments[0].value.length;n++)t[n]=arguments[0].value.charCodeAt(n)}arguments[0]instanceof Object&&"value_date"in arguments[0]&&(e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromDate.call(this,arguments[0].value_date),this.value_block.value_hex=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toBuffer.call(this)),this.id_block.tag_class=1,this.id_block.tag_number=24},e.org.pkijs.asn1.GENERALIZEDTIME.prototype=new e.org.pkijs.asn1.VISIBLESTRING,e.org.pkijs.asn1.GENERALIZEDTIME.constructor=e.org.pkijs.asn1.GENERALIZEDTIME,e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBER=function(t,n,i){var o=this.value_block.fromBER(t,n,1==this.len_block.is_indefinite_form?i:this.len_block.length);return-1==o?(this.error=this.value_block.error,o):(e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBuffer.call(this,this.value_block.value_hex),0==this.id_block.error.length&&(this.block_length+=this.id_block.block_length),0==this.len_block.error.length&&(this.block_length+=this.len_block.block_length),0==this.value_block.error.length&&(this.block_length+=this.value_block.block_length),o)},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromBuffer=function(t){e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString.call(this,String.fromCharCode.apply(null,new Uint8Array(t)))},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toBuffer=function(){for(var t=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toString.call(this),n=new ArrayBuffer(t.length),i=new Uint8Array(n),o=0;o<t.length;o++)i[o]=t.charCodeAt(o);return n},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromDate=function(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds(),this.millisecond=e.getUTCMilliseconds()},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toDate=function(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.fromString=function(e){var t,n=!1,i="",o="",r=0,a=0,s=0;if("Z"==e[e.length-1])i=e.substr(0,e.length-1),n=!0;else{var l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for convertion");i=e}if(n){if(-1!=i.indexOf("+"))throw new Error("Wrong input string for convertion");if(-1!=i.indexOf("-"))throw new Error("Wrong input string for convertion")}else{var c=1,u=i.indexOf("+"),p="";if(-1==u&&(u=i.indexOf("-"),c=-1),-1!=u){if(p=i.substr(u+1),i=i.substr(0,u),2!=p.length&&4!=p.length)throw new Error("Wrong input string for convertion");l=new Number(p.substr(0,2));if(isNaN(l.valueOf()))throw new Error("Wrong input string for convertion");if(a=c*l,4==p.length){if(l=new Number(p.substr(2,2)),isNaN(l.valueOf()))throw new Error("Wrong input string for convertion");s=c*l}}}var h=i.indexOf(".");if(-1==h&&(h=i.indexOf(",")),-1!=h){var d=new Number("0"+i.substr(h));if(isNaN(d.valueOf()))throw new Error("Wrong input string for convertion");r=d.valueOf(),o=i.substr(0,h)}else o=i;switch(!0){case 8==o.length:if(t=/(\d{4})(\d{2})(\d{2})/gi,-1!==h)throw new Error("Wrong input string for convertion");break;case 10==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})/gi,-1!==h){var g=60*r;this.minute=Math.floor(g),g=60*(g-this.minute),this.second=Math.floor(g),g=1e3*(g-this.second),this.millisecond=Math.floor(g)}break;case 12==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==h){g=60*r;this.second=Math.floor(g),g=1e3*(g-this.second),this.millisecond=Math.floor(g)}break;case 14==o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==h){g=1e3*r;this.millisecond=Math.floor(g)}break;default:throw new Error("Wrong input string for convertion")}var m=t.exec(o);if(null==m)throw new Error("Wrong input string for convertion");for(var f=1;f<m.length;f++)switch(f){case 1:this.year=parseInt(m[f],10);break;case 2:this.month=parseInt(m[f],10);break;case 3:this.day=parseInt(m[f],10);break;case 4:this.hour=parseInt(m[f],10)+a;break;case 5:this.minute=parseInt(m[f],10)+s;break;case 6:this.second=parseInt(m[f],10);break;default:throw new Error("Wrong input string for convertion")}if(0==n){var S=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=S.getUTCFullYear(),this.month=S.getUTCMonth(),this.day=S.getUTCDay(),this.hour=S.getUTCHours(),this.minute=S.getUTCMinutes(),this.second=S.getUTCSeconds(),this.millisecond=S.getUTCMilliseconds()}},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toString=function(){var t=new Array;return t.push(e.org.pkijs.padNumber(this.year,4)),t.push(e.org.pkijs.padNumber(this.month,2)),t.push(e.org.pkijs.padNumber(this.day,2)),t.push(e.org.pkijs.padNumber(this.hour,2)),t.push(e.org.pkijs.padNumber(this.minute,2)),t.push(e.org.pkijs.padNumber(this.second,2)),0!=this.millisecond&&(t.push("."),t.push(e.org.pkijs.padNumber(this.millisecond,3))),t.push("Z"),t.join("")},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.block_name=function(){return"GENERALIZEDTIME"},e.org.pkijs.asn1.GENERALIZEDTIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.VISIBLESTRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.GENERALIZEDTIME.prototype.block_name.call(this),t.year=this.year,t.month=this.month,t.day=this.day,t.hour=this.hour,t.minute=this.minute,t.second=this.second,t.millisecond=this.millisecond,t},e.org.pkijs.asn1.DATE=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=31},e.org.pkijs.asn1.DATE.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DATE.constructor=e.org.pkijs.asn1.DATE,e.org.pkijs.asn1.DATE.prototype.block_name=function(){return"DATE"},e.org.pkijs.asn1.DATE.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DATE.prototype.block_name.call(this),t},e.org.pkijs.asn1.TIMEOFDAY=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=32},e.org.pkijs.asn1.TIMEOFDAY.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.TIMEOFDAY.constructor=e.org.pkijs.asn1.TIMEOFDAY,e.org.pkijs.asn1.TIMEOFDAY.prototype.block_name=function(){return"TIMEOFDAY"},e.org.pkijs.asn1.TIMEOFDAY.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.TIMEOFDAY.prototype.block_name.call(this),t},e.org.pkijs.asn1.DATETIME=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=33},e.org.pkijs.asn1.DATETIME.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DATETIME.constructor=e.org.pkijs.asn1.DATETIME,e.org.pkijs.asn1.DATETIME.prototype.block_name=function(){return"DATETIME"},e.org.pkijs.asn1.DATETIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DATETIME.prototype.block_name.call(this),t},e.org.pkijs.asn1.DURATION=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=34},e.org.pkijs.asn1.DURATION.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.DURATION.constructor=e.org.pkijs.asn1.DURATION,e.org.pkijs.asn1.DURATION.prototype.block_name=function(){return"DURATION"},e.org.pkijs.asn1.DURATION.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.DURATION.prototype.block_name.call(this),t},e.org.pkijs.asn1.TIME=function(){e.org.pkijs.asn1.UTF8STRING.call(this,arguments[0]),this.id_block.tag_class=1,this.id_block.tag_number=14},e.org.pkijs.asn1.TIME.prototype=new e.org.pkijs.asn1.UTF8STRING,e.org.pkijs.asn1.TIME.constructor=e.org.pkijs.asn1.TIME,e.org.pkijs.asn1.TIME.prototype.block_name=function(){return"TIME"},e.org.pkijs.asn1.TIME.prototype.toJSON=function(){var t=e.org.pkijs.asn1.UTF8STRING.prototype.toJSON.call(this);return t.block_name=e.org.pkijs.asn1.TIME.prototype.block_name.call(this),t},e.org.pkijs.asn1.CHOICE=function(){arguments[0]instanceof Object&&(this.value=e.org.pkijs.getValue(arguments[0],"value",new Array),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1))},e.org.pkijs.asn1.ANY=function(){arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1))},e.org.pkijs.asn1.REPEATED=function(){arguments[0]instanceof Object&&(this.name=e.org.pkijs.getValue(arguments[0],"name",""),this.optional=e.org.pkijs.getValue(arguments[0],"optional",!1),this.value=e.org.pkijs.getValue(arguments[0],"value",new e.org.pkijs.asn1.ANY),this.local=e.org.pkijs.getValue(arguments[0],"local",!1))},e.org.pkijs.fromBER=function(t){if(0==t.byteLength){var n=new e.org.pkijs.asn1.ASN1_block;return n.error="Input buffer has zero length",{offset:-1,result:n}}return u(t,0,t.byteLength)},e.org.pkijs.compareSchema=function(t,n,i){if(i instanceof e.org.pkijs.asn1.CHOICE){for(var o=0;o<i.value.length;o++){if(!0===(p=e.org.pkijs.compareSchema(t,n,i.value[o])).verified)return{verified:!0,result:t}}var r={verified:!1,result:{error:"Wrong values for CHOICE type"}};return i.hasOwnProperty("name")&&(r.name=i.name),r}if(i instanceof e.org.pkijs.asn1.ANY)return i.hasOwnProperty("name")&&(t[i.name]=n),{verified:!0,result:t};if(t instanceof Object==!1)return{verified:!1,result:{error:"Wrong root object"}};if(n instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(i instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("id_block"in i==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("fromBER"in i.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if("toBER"in i.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};var a=i.id_block.toBER(!1);if(0===a.byteLength)return{verified:!1,result:{error:"Error encoding id_block for ASN.1 schema"}};if(-1===i.id_block.fromBER(a,0,a.byteLength))return{verified:!1,result:{error:"Error decoding id_block for ASN.1 schema"}};if(!1===i.id_block.hasOwnProperty("tag_class"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(i.id_block.tag_class!==n.id_block.tag_class)return{verified:!1,result:t};if(!1===i.id_block.hasOwnProperty("tag_number"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(i.id_block.tag_number!==n.id_block.tag_number)return{verified:!1,result:t};if(!1===i.id_block.hasOwnProperty("is_constructed"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(i.id_block.is_constructed!==n.id_block.is_constructed)return{verified:!1,result:t};if("is_hex_only"in i.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(i.id_block.is_hex_only!==n.id_block.is_hex_only)return{verified:!1,result:t};if(!0===i.id_block.is_hex_only){if("value_hex"in i.id_block==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};var s=new Uint8Array(i.id_block.value_hex),l=new Uint8Array(n.id_block.value_hex);if(s.length!==l.length)return{verified:!1,result:t};for(var c=0;c<s.length;c++)if(s[c]!==l[1])return{verified:!1,result:t}}if(i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&(t[i.name]=n)),!0===i.id_block.is_constructed){var u=0,p={verified:!1},h=i.value_block.value.length;if(h>0&&i.value_block.value[0]instanceof e.org.pkijs.asn1.REPEATED&&(h=n.value_block.value.length),0===h)return{verified:!0,result:t};if(0===n.value_block.value.length&&0!==i.value_block.value.length){var d=!0;for(c=0;c<i.value_block.value.length;c++)d=d&&(i.value_block.value[c].optional||!1);return!0===d?{verified:!0,result:t}:(i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&delete t[i.name]),t.error="Inconsistent object length",{verified:!1,result:t})}for(c=0;c<h;c++)if(c-u>=n.value_block.value.length){if(!1===i.value_block.value[c].optional){r={verified:!1,result:t};return t.error="Inconsistent length between ASN.1 data and schema",i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&(delete t[i.name],r.name=i.name)),r}}else if(i.value_block.value[0]instanceof e.org.pkijs.asn1.REPEATED){if(!1===(p=e.org.pkijs.compareSchema(t,n.value_block.value[c],i.value_block.value[0].value)).verified){if(!0!==i.value_block.value[0].optional)return i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&delete t[i.name]),p;u++}if("name"in i.value_block.value[0]&&i.value_block.value[0].name.length>0){var g={};void 0===(g="local"in i.value_block.value[0]&&!0===i.value_block.value[0].local?n:t)[i.value_block.value[0].name]&&(g[i.value_block.value[0].name]=new Array),g[i.value_block.value[0].name].push(n.value_block.value[c])}}else if(!1===(p=e.org.pkijs.compareSchema(t,n.value_block.value[c-u],i.value_block.value[c])).verified){if(!0!==i.value_block.value[c].optional)return i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&delete t[i.name]),p;u++}if(!1===p.verified){r={verified:!1,result:t};return i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&(delete t[i.name],r.name=i.name)),r}return{verified:!0,result:t}}if("primitive_schema"in i&&"value_hex"in n.value_block){var m=e.org.pkijs.fromBER(n.value_block.value_hex);if(-1===m.offset){r={verified:!1,result:m.result};return i.hasOwnProperty("name")&&(i.name=i.name.replace(/^\s+|\s+$/g,""),""!==i.name&&(delete t[i.name],r.name=i.name)),r}return e.org.pkijs.compareSchema(t,m.result,i.primitive_schema)}return{verified:!0,result:t}},e.org.pkijs.verifySchema=function(t,n){if(n instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};var i=e.org.pkijs.fromBER(t);return-1===i.offset?{verified:!1,result:i.result}:e.org.pkijs.compareSchema(i.result,i.result,n)},e.org.pkijs.fromJSON=function(e){}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.cms)e.org.pkijs.schema.cms={};else if("object"!=typeof e.org.pkijs.schema.cms)throw new Error("Name org.pkijs.schema.cms already exists and it's not an object but "+typeof e.org.pkijs.schema.cms);e.org.pkijs.schema.CMS_CONTENT_INFO=function(t,n){var i=e.org.pkijs.getNames(arguments[0]);return void 0===n&&(n=!1),new e.org.pkijs.asn1.SEQUENCE({name:i.block_name||"ContentInfo",optional:n,value:[new e.org.pkijs.asn1.OID({name:i.contentType||"contentType"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY({name:i.content||"content"})]})]})},e.org.pkijs.schema.cms.OtherCertificateFormat=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.otherCertFormat||"otherCertFormat"}),new e.org.pkijs.asn1.ANY({name:t.otherCert||"otherCert"})]})},e.org.pkijs.schema.CMS_CERTIFICATE_SET=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SET({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.certificates||"",value:new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.CERT(),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.ANY]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.ANY]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY]})]})})]})},e.org.pkijs.schema.cms.OtherRevocationInfoFormat=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.otherRevInfoFormat||"otherRevInfoFormat"}),new e.org.pkijs.asn1.ANY({name:t.otherRevInfo||"otherRevInfo"})]})},e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SET({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.crls||"",value:new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.CRL(),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY]})]})})]})},e.org.pkijs.schema.cms.IssuerAndSerialNumber=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.RDN(t.issuer||{}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||""})]})},e.org.pkijs.schema.cms.Attribute=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.attrType||""}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.attrValues||"",value:new e.org.pkijs.asn1.ANY})]})]})},e.org.pkijs.schema.cms.RSAES_OAEP_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.maskGenAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.pSourceAlgorithm||{})]})]})},e.org.pkijs.schema.cms.SignedUnsignedAttributes=function(t,n){var i=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:i.block_name||"",optional:!0,id_block:{tag_class:3,tag_number:n},value:[new e.org.pkijs.asn1.REPEATED({name:i.attributes||"",value:e.org.pkijs.schema.cms.Attribute()})]})},e.org.pkijs.schema.CMS_SIGNER_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:"SignerInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"SignerInfo.version"}),new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber(t.sid||{names:{block_name:"SignerInfo.sid"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:t.sid||"SignerInfo.sid",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.OCTETSTRING]})]}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.digestAlgorithm||{names:{block_name:"SignerInfo.digestAlgorithm"}}),e.org.pkijs.schema.cms.SignedUnsignedAttributes(t.signedAttrs||{names:{block_name:"SignerInfo.signedAttrs"}},0),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{names:{block_name:"SignerInfo.signatureAlgorithm"}}),new e.org.pkijs.asn1.OCTETSTRING({name:t.signature||"SignerInfo.signature"}),e.org.pkijs.schema.cms.SignedUnsignedAttributes(t.unsignedAttrs||{names:{block_name:"SignerInfo.unsignedAttrs"}},1)]})},e.org.pkijs.schema.cms.EncapsulatedContentInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.eContentType||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY({name:t.eContent||""})]})]})},e.org.pkijs.schema.CMS_SIGNED_DATA=function(t,n){return t=e.org.pkijs.getNames(arguments[0]),void 0===n&&(n=!1),new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"SignedData",optional:n,value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"SignedData.version"}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.digestAlgorithms||"SignedData.digestAlgorithms",value:e.org.pkijs.schema.ALGORITHM_IDENTIFIER()})]}),e.org.pkijs.schema.cms.EncapsulatedContentInfo(t.encapContentInfo||{names:{block_name:"SignedData.encapContentInfo"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.CMS_CERTIFICATE_SET(t.certificates||{names:{certificates:"SignedData.certificates"}}).value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES(t.crls||{names:{crls:"SignedData.crls"}}).value_block.value}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.signerInfos||"SignedData.signerInfos",value:e.org.pkijs.schema.CMS_SIGNER_INFO()})]})]})},e.org.pkijs.schema.cms.ECC_CMS_SharedInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.entityUInfo||"",id_block:{tag_class:3,tag_number:0},optional:!0,value:[new e.org.pkijs.asn1.OCTETSTRING]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.suppPubInfo||"",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING]})]})},e.org.pkijs.schema.cms.PBKDF2_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.salt_primitive||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.salt_constructed||{})]}),new e.org.pkijs.asn1.INTEGER({name:t.iterationCount||""}),new e.org.pkijs.asn1.INTEGER({name:t.keyLength||"",optional:!0}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.prf||{names:{optional:!0}})]})},e.org.pkijs.schema.cms.PBES2_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyDerivationFunc||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.encryptionScheme||{})]})},e.org.pkijs.schema.cms.RecipientIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.OCTETSTRING]})]})},e.org.pkijs.schema.cms.KeyTransRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.RecipientIdentifier(t.rid||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.OriginatorPublicKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.algorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.publicKey||""})]})},e.org.pkijs.schema.cms.OriginatorIdentifierOrKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},name:t.block_name||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},name:t.block_name||"",value:e.org.pkijs.schema.cms.OriginatorPublicKey().value_block.value})]})},e.org.pkijs.schema.cms.OtherKeyAttribute=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({optional:t.optional||!0,name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.keyAttrId||""}),new e.org.pkijs.asn1.ANY({optional:!0,name:t.keyAttr||""})]})},e.org.pkijs.schema.cms.RecipientKeyIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.subjectKeyIdentifier||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({optional:!0,name:t.date||""}),e.org.pkijs.schema.cms.OtherKeyAttribute(t.other||{})]})},e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.IssuerAndSerialNumber(t.issuerAndSerialNumber||{names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.cms.RecipientKeyIdentifier(t.rKeyId||{names:{block_name:t.block_name||""}}).value_block.value})]})},e.org.pkijs.schema.cms.RecipientEncryptedKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier(t.rid||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.RecipientEncryptedKeys=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.RecipientEncryptedKeys||"",value:e.org.pkijs.schema.cms.RecipientEncryptedKey()})]})},e.org.pkijs.schema.cms.KeyAgreeRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.cms.OriginatorIdentifierOrKey(t.originator||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.ukm||""})]}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),e.org.pkijs.schema.cms.RecipientEncryptedKeys(t.recipientEncryptedKeys||{})]})},e.org.pkijs.schema.cms.KEKIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.keyIdentifier||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({optional:!0,name:t.date||""}),e.org.pkijs.schema.cms.OtherKeyAttribute(t.other||{})]})},e.org.pkijs.schema.cms.KEKRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.KEKIdentifier(t.kekid||{}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.PasswordRecipientinfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.keyDerivationAlgorithm||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.ALGORITHM_IDENTIFIER().value_block.value}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.keyEncryptionAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.encryptedKey||""})]})},e.org.pkijs.schema.cms.OtherRecipientInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.oriType||""}),new e.org.pkijs.asn1.ANY({name:t.oriValue||""})]})},e.org.pkijs.schema.CMS_RECIPIENT_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[e.org.pkijs.schema.cms.KeyTransRecipientInfo({names:{block_name:t.block_name||""}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.cms.KeyAgreeRecipientInfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:2},value:e.org.pkijs.schema.cms.KEKRecipientInfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:3},value:e.org.pkijs.schema.cms.PasswordRecipientinfo().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:4},value:e.org.pkijs.schema.cms.OtherRecipientInfo().value_block.value})]})},e.org.pkijs.schema.cms.OriginatorInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.certs||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.CMS_CERTIFICATE_SET().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.crls||"",optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES().value_block.value})]})},e.org.pkijs.schema.cms.EncryptedContentInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.contentType||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.contentEncryptionAlgorithm||{}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.encryptedContent||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({value:new e.org.pkijs.asn1.OCTETSTRING})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.encryptedContent||"",id_block:{tag_class:3,tag_number:0}})]})]})},e.org.pkijs.schema.CMS_ENVELOPED_DATA=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.originatorInfo||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:e.org.pkijs.schema.cms.OriginatorInfo().value_block.value}),new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.recipientInfos||"",value:e.org.pkijs.schema.CMS_RECIPIENT_INFO()})]}),e.org.pkijs.schema.cms.EncryptedContentInfo(t.encryptedContentInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.unprotectedAttrs||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})},e.org.pkijs.schema.CMS_ENCRYPTED_DATA=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.cms.EncryptedContentInfo(t.encryptedContentInfo||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.unprotectedAttrs||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.cms)e.org.pkijs.simpl.cms={};else if("object"!=typeof e.org.pkijs.simpl.cms)throw new Error("Name org.pkijs.simpl.cms already exists and it's not an object but "+typeof e.org.pkijs.simpl.cms);if(void 0===e.org.pkijs.simpl.x509)e.org.pkijs.simpl.x509={};else if("object"!=typeof e.org.pkijs.simpl.x509)throw new Error("Name org.pkijs.simpl.x509 already exists and it's not an object but "+typeof e.org.pkijs.simpl.x509);e.org.pkijs.simpl.cms.kdfWithCounter=function(t,n,i,o){switch(t.toUpperCase()){case"SHA-1":case"SHA-256":case"SHA-384":case"SHA-512":break;default:return Promise.reject("Unknown hash function: "+t)}if(n instanceof ArrayBuffer==!1)return Promise.reject('Please set "Zbuffer" as "ArrayBuffer"');if(0===n.byteLength)return Promise.reject('"Zbuffer" has zero length, error');if(o instanceof ArrayBuffer==!1)return Promise.reject('Please set "SharedInfo" as "ArrayBuffer"');if(i>255)return Promise.reject('Please set "Counter" variable to value less or equal to 255');var r=new ArrayBuffer(4),a=new Uint8Array(r);a[0]=0,a[1]=0,a[2]=0,a[3]=i;var s=new ArrayBuffer(0),l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):(s=e.org.pkijs.concat_buffers(s,n),s=e.org.pkijs.concat_buffers(s,r),s=e.org.pkijs.concat_buffers(s,o),l.digest({name:t},s).then((function(e){return{counter:i,result:e}})))},e.org.pkijs.simpl.cms.kdf=function(t,n,i,o){var r=0,a=1,s=new Array;switch(t.toUpperCase()){case"SHA-1":r=160;break;case"SHA-256":r=256;break;case"SHA-384":r=384;break;case"SHA-512":r=512;break;default:return Promise.reject("Unknown hash function: "+t)}if(n instanceof ArrayBuffer==!1)return Promise.reject('Please set "Zbuffer" as "ArrayBuffer"');if(0===n.byteLength)return Promise.reject('"Zbuffer" has zero length, error');if(o instanceof ArrayBuffer==!1)return Promise.reject('Please set "SharedInfo" as "ArrayBuffer"');var l=i/r;Math.floor(l)>0&&l-(a=Math.floor(l))>0&&a++;for(var c=1;c<=a;c++)s.push(e.org.pkijs.simpl.cms.kdfWithCounter(t,n,c,o));return Promise.all(s).then((function(e){for(var t=new ArrayBuffer(0),n=1,o=!0;o;){o=!1;for(var r=0;r<e.length;r++)if(e[r].counter===n){t=org.pkijs.concat_buffers(t,e[r].result),o=!0;break}n++}if(i>>=3,t.byteLength>i){var a=new ArrayBuffer(i),s=new Uint8Array(a),l=new Uint8Array(t);for(r=0;r<i;r++)s[r]=l[r];return a}return t}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_CONTENT_INFO=function(){this.contentType="",this.content=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.contentType=arguments[0].contentType||"",this.content=arguments[0].content||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_CONTENT_INFO());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_CONTENT_INFO");this.contentType=n.result.contentType.value_block.toString(),this.content=n.result.content},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.contentType}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.content]})]})},e.org.pkijs.simpl.CMS_CONTENT_INFO.prototype.toJSON=function(){var t={contentType:this.contentType};return this.content instanceof e.org.pkijs.asn1.ANY||(t.content=this.content.toJSON()),t},e.org.pkijs.simpl.cms.OtherCertificateFormat=function(){this.otherCertFormat="",this.otherCert=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.otherCertFormat=arguments[0].contentType||"",this.otherCert=arguments[0].content||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherCertificateFormat());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OtherCertificateFormat");this.otherCertFormat=n.result.otherCertFormat.value_block.toString(),this.otherCert=n.result.otherCert},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.otherCertFormat}),this.otherCert]})},e.org.pkijs.simpl.cms.OtherCertificateFormat.prototype.toJSON=function(){var t={otherCertFormat:this.otherCertFormat};return this.otherCert instanceof e.org.pkijs.asn1.ANY||(t.otherCert=this.otherCert.toJSON()),t},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat=function(){this.otherRevInfoFormat="",this.otherRevInfo=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.otherRevInfoFormat=arguments[0].otherRevInfoFormat||"",this.otherRevInfo=arguments[0].otherRevInfo||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherRevocationInfoFormat());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OtherRevocationInfoFormat");this.otherRevInfoFormat=n.result.otherRevInfoFormat.value_block.toString(),this.otherRevInfo=n.result.otherRevInfo},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.otherRevInfoFormat}),this.otherRevInfo]})},e.org.pkijs.simpl.cms.OtherRevocationInfoFormat.prototype.toJSON=function(){var t={otherRevInfoFormat:this.otherRevInfoFormat};return this.otherRevInfo instanceof e.org.pkijs.asn1.ANY||(t.otherRevInfo=this.otherRevInfo.toJSON()),t},e.org.pkijs.simpl.CMS_CERTIFICATE_SET=function(){this.certificates=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certificates=arguments[0].certificates||new Array)},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_CERTIFICATE_SET());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_CERTIFICATE_SET");for(var i=n.result.certificates,o=0;o<i;o++)1===i[o].id_block.tag_class?this.certificates.push(new e.org.pkijs.simpl.CERT({schema:i[o]})):this.certificates.push(i[o])},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.certificates.length;n++)this.certificates[n]instanceof e.org.pkijs.simpl.CERT?t.push(this.certificates[n].toSchema()):t.push(this.certificates[n]);return new e.org.pkijs.asn1.SET({value:t})},e.org.pkijs.simpl.CMS_CERTIFICATE_SET.prototype.toJSON=function(){var e={};e.certificates=new Array;for(var t=0;t<this.certificates.length;t++)e.certificates.push(this.certificates[t].toJSON());return e},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES=function(){this.crls=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.crls=arguments[0].crls||new Array)},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_REVOCATION_INFO_CHOICES());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_REVOCATION_INFO_CHOICES");for(var i=n.result.crls,o=0;o<i;o++)1===i.id_block.tag_class?this.crls.push(new e.org.pkijs.simpl.CRL({schema:i[o]})):this.crls.push(i[o])},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.crls.length;n++)this.crls[n]instanceof e.org.pkijs.simpl.CRL?t.push(this.crls[n].toSchema()):t.push(this.crls[n]);return new e.org.pkijs.asn1.SET({value:t})},e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES.prototype.toJSON=function(){var e={};e.crls=new Array;for(var t=0;t<this.crls.length;t++)e.crls.push(this.crls[t].toJSON());return e},e.org.pkijs.simpl.cms.IssuerAndSerialNumber=function(){this.issuer=new e.org.pkijs.simpl.RDN,this.serialNumber=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.IssuerAndSerialNumber({names:{issuer:{names:{block_name:"issuer"}},serialNumber:"serialNumber"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for IssuerAndSerialNumber");this.issuer=new e.org.pkijs.simpl.RDN({schema:n.result.issuer}),this.serialNumber=n.result.serialNumber},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.issuer.toSchema(),this.serialNumber]})},e.org.pkijs.simpl.cms.IssuerAndSerialNumber.prototype.toJSON=function(){return{issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()}},e.org.pkijs.simpl.cms.Attribute=function(){this.attrType="",this.attrValues=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.Attribute.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.attrType=arguments[0].attrType||"",this.attrValues=arguments[0].attrValues||new Array)},e.org.pkijs.simpl.cms.Attribute.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.Attribute({names:{attrType:"attrType",attrValues:"attrValues"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for Attribute");switch(this.attrType=n.result.attrType.value_block.toString(),this.attrValues=n.result.attrValues,this.attrType){case"0.4.0.1733.2.5":this.parsedValue=new e.org.pkijs.simpl.cades.ATSHashIndex({schema:this.attrValues[0]});break;case"0.4.0.1733.2.4":this.parsedValue=new e.org.pkijs.simpl.cades.archive_time_stamp_v3({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.14":this.parsedValue=new e.org.pkijs.simpl.cades.signature_time_stamp({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.21":this.parsedValue=new e.org.pkijs.simpl.cades.complete_certificate_references({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.22":this.parsedValue=new e.org.pkijs.simpl.cades.complete_revocation_references({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.25":this.parsedValue=new e.org.pkijs.simpl.cades.CAdES_C_Timestamp({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.23":this.parsedValue=new e.org.pkijs.simpl.cades.certificate_values({schema:this.attrValues[0]});break;case"1.2.840.113549.1.9.16.2.24":this.parsedValue=new e.org.pkijs.simpl.cades.revocation_values({schema:this.attrValues[0]});break;case"1.2.840.113583.1.1.8":this.parsedValue=new e.org.pkijs.simpl.cades.RevocationInfoArchival({schema:this.attrValues[0]})}},e.org.pkijs.simpl.cms.Attribute.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.attrType}),new e.org.pkijs.asn1.SET({value:this.attrValues})]})},e.org.pkijs.simpl.cms.Attribute.prototype.toJSON=function(){var e={attrType:this.attrType};e.attrValues=new Array;for(var t=0;t<this.attrValues.length;t++)e.attrValues.push(this.attrValues[t].toJSON());return e},e.org.pkijs.simpl.cms.RSAES_OAEP_params=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("hashAlgorithm"in arguments[0]&&(this.hashAlgorithm=arguments[0].hashAlgorithm),"maskGenAlgorithm"in arguments[0]&&(this.maskGenAlgorithm=arguments[0].maskGenAlgorithm),"pSourceAlgorithm"in arguments[0]&&(this.pSourceAlgorithm=arguments[0].pSourceAlgorithm))},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RSAES_OAEP_params({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},maskGenAlgorithm:{names:{block_name:"maskGenAlgorithm"}},pSourceAlgorithm:{names:{block_name:"pSourceAlgorithm"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RSAES_OAEP_params");"hashAlgorithm"in n.result&&(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.hashAlgorithm})),"maskGenAlgorithm"in n.result&&(this.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.maskGenAlgorithm})),"pSourceAlgorithm"in n.result&&(this.pSourceAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.pSourceAlgorithm}))},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.toSchema=function(){var t=new Array;return"hashAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.hashAlgorithm.toSchema()]})),"maskGenAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.maskGenAlgorithm.toSchema()]})),"pSourceAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.pSourceAlgorithm.toSchema()]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RSAES_OAEP_params.prototype.toJSON=function(){var e={};return"hashAlgorithm"in this&&(e.hashAlgorithm=this.hashAlgorithm.toJSON()),"maskGenAlgorithm"in this&&(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),"pSourceAlgorithm"in this&&(e.pSourceAlgorithm=this.pSourceAlgorithm.toJSON()),e},e.org.pkijs.simpl.cms.PBKDF2_params=function(){this.salt=new e.org.pkijs.emptyObject,this.iterationCount=0,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PBKDF2_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.salt=arguments[0].salt||new e.org.pkijs.emptyObject,this.iterationCount=arguments[0].iterationCount||0,"keyLength"in arguments[0]&&(this.keyLength=arguments[0].keyLength),"prf"in arguments[0]&&(this.prf=arguments[0].prf))},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PBKDF2_params({names:{salt_primitive:"salt",salt_constructed:{names:{block_name:"salt"}},iterationCount:"iterationCount",keyLength:"keyLength",prf:{names:{block_name:"prf",optional:!0}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PBKDF2_params");this.salt=n.result.salt,this.iterationCount=n.result.iterationCount.value_block.value_dec,"keyLength"in n.result&&(this.keyLength=n.result.keyLength.value_block.value_dec),"prf"in n.result&&(this.prf=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.prf}))},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.toSchema=function(){var t=new Array;return t.push(this.salt),t.push(new e.org.pkijs.asn1.INTEGER({value:this.iterationCount})),"keyLength"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.keyLength})),"prf"in this&&t.push(this.prf.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.PBKDF2_params.prototype.toJSON=function(){var e={salt:this.salt.toJSON(),iterationCount:this.iterationCount};return"keyLength"in this&&(e.keyLength=this.keyLength),"prf"in this&&(e.prf=this.prf.toJSON()),e},e.org.pkijs.simpl.cms.PBES2_params=function(){this.keyDerivationFunc=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptionScheme=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PBES2_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyDerivationFunc=arguments[0].keyDerivationFunc||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptionScheme=arguments[0].encryptionScheme||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER)},e.org.pkijs.simpl.cms.PBES2_params.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PBES2_params({names:{keyDerivationFunc:{names:{block_name:"keyDerivationFunc"}},encryptionScheme:{names:{block_name:"encryptionScheme"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PBES2_params");this.keyDerivationFunc=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyDerivationFunc}),this.encryptionScheme=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.encryptionScheme})},e.org.pkijs.simpl.cms.PBES2_params.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.keyDerivationFunc.toSchema(),this.encryptionScheme.toSchema()]})},e.org.pkijs.simpl.cms.PBES2_params.prototype.toJSON=function(){return{keyDerivationFunc:this.keyDerivationFunc.toJSON(),encryptionScheme:this.encryptionScheme.toJSON()}},e.org.pkijs.simpl.cms.SignedUnsignedAttributes=function(){this.type=0,this.attributes=new Array,this.encoded_value=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||0,this.attributes=arguments[0].attributes||new Array)},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.SignedUnsignedAttributes({names:{attributes:"attributes"}},this.type));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for SignedUnsignedAttributes");if(this.type=n.result.id_block.tag_number,this.encoded_value=n.result.value_before_decode,new Uint8Array(this.encoded_value)[0]=49,"attributes"in n.result!=!1)for(var i=n.result.attributes,o=0;o<i.length;o++)this.attributes.push(new e.org.pkijs.simpl.cms.Attribute({schema:i[o]}));else if(0===this.type)throw new Error("Wrong structure of SignedUnsignedAttributes")},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.attributes.length;n++)t.push(this.attributes[n].toSchema());return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:this.type},value:t})},e.org.pkijs.simpl.cms.SignedUnsignedAttributes.prototype.toJSON=function(){var e={type:this.type};e.attributes=new Array;for(var t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON());return e},e.org.pkijs.simpl.CMS_SIGNER_INFO=function(){this.version=0,this.sid=new e.org.pkijs.asn1.ANY,this.digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.sid=arguments[0].sid||new e.org.pkijs.asn1.ANY,this.digestAlgorithm=arguments[0].digestAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"signedAttrs"in arguments[0]&&(this.signedAttrs=arguments[0].signedAttrs),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.OCTETSTRING,"unsignedAttrs"in arguments[0]&&(this.unsignedAttrs=arguments[0].unsignedAttrs))},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_SIGNER_INFO());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_SIGNER_INFO");this.version=n.result["SignerInfo.version"].value_block.value_dec;var i=n.result["SignerInfo.sid"];1===i.id_block.tag_class?this.sid=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:i}):this.sid=i,this.digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result["SignerInfo.digestAlgorithm"]}),"SignerInfo.signedAttrs"in n.result&&(this.signedAttrs=new e.org.pkijs.simpl.cms.SignedUnsignedAttributes({schema:n.result["SignerInfo.signedAttrs"]})),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result["SignerInfo.signatureAlgorithm"]}),this.signature=n.result["SignerInfo.signature"],"SignerInfo.unsignedAttrs"in n.result&&(this.unsignedAttrs=new e.org.pkijs.simpl.cms.SignedUnsignedAttributes,this.unsignedAttrs.type=1,this.unsignedAttrs.fromSchema(n.result["SignerInfo.unsignedAttrs"]))},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),this.sid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?t.push(this.sid.toSchema()):t.push(this.sid),t.push(this.digestAlgorithm.toSchema()),"signedAttrs"in this&&t.push(this.signedAttrs.toSchema()),t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"unsignedAttrs"in this&&t.push(this.unsignedAttrs.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_SIGNER_INFO.prototype.toJSON=function(){var t={version:this.version};return this.sid instanceof e.org.pkijs.asn1.ANY||(t.sid=this.sid.toJSON()),t.digestAlgorithm=this.digestAlgorithm.toJSON(),"signedAttrs"in this&&(t.signedAttrs=this.signedAttrs.toJSON()),t.signatureAlgorithm=this.signatureAlgorithm.toJSON(),t.signature=this.signature.toJSON(),"unsignedAttrs"in this&&(t.unsignedAttrs=this.unsignedAttrs.toJSON()),t},e.org.pkijs.simpl.cms.EncapsulatedContentInfo=function(){if(this.eContentType="",arguments[0]instanceof Object&&"schema"in arguments[0])e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.fromSchema.call(this,arguments[0].schema);else if(arguments[0]instanceof Object&&(this.eContentType=arguments[0].eContentType||"","eContent"in arguments[0]&&(this.eContent=arguments[0].eContent,1===this.eContent.id_block.tag_class&&4===this.eContent.id_block.tag_number&&!1===this.eContent.id_block.is_constructed))){for(var t=new e.org.pkijs.asn1.OCTETSTRING({id_block:{is_constructed:!0},is_constructed:!0}),n=0,i=this.eContent.value_block.value_hex.byteLength;i>0;){for(var o=new Uint8Array(this.eContent.value_block.value_hex,n,n+65536>this.eContent.value_block.value_hex.byteLength?this.eContent.value_block.value_hex.byteLength-n:65536),r=new ArrayBuffer(o.length),a=new Uint8Array(r),s=0;s<a.length;s++)a[s]=o[s];t.value_block.value.push(new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})),i-=o.length,n+=o.length}this.eContent=t}},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.EncapsulatedContentInfo({names:{eContentType:"eContentType",eContent:"eContent"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for EncapsulatedContentInfo");this.eContentType=n.result.eContentType.value_block.toString(),"eContent"in n.result&&(this.eContent=n.result.eContent)},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.eContentType})),"eContent"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[this.eContent]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.EncapsulatedContentInfo.prototype.toJSON=function(){var e={eContentType:this.eContentType};return"eContent"in this&&(e.eContent=this.eContent.toJSON()),e},e.org.pkijs.simpl.CMS_SIGNED_DATA=function(){this.version=0,this.digestAlgorithms=new Array,this.encapContentInfo=new e.org.pkijs.simpl.cms.EncapsulatedContentInfo,this.signerInfos=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.digestAlgorithms=arguments[0].digestAlgorithms||new Array,this.encapContentInfo=arguments[0].encapContentInfo||new e.org.pkijs.simpl.cms.EncapsulatedContentInfo,"certificates"in arguments[0]&&(this.certificates=arguments[0].certificates),"crls"in arguments[0]&&(this.crls=arguments[0].crls),this.signerInfos=arguments[0].signerInfos||new Array)},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_SIGNED_DATA());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_SIGNED_DATA");this.version=n.result["SignedData.version"].value_block.value_dec;for(var i=n.result["SignedData.digestAlgorithms"],o=0;o<i.length;o++)this.digestAlgorithms.push(new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i[o]}));if(this.encapContentInfo=new e.org.pkijs.simpl.cms.EncapsulatedContentInfo({schema:n.result["SignedData.encapContentInfo"]}),"SignedData.certificates"in n.result){this.certificates=new Array;for(var r=n.result["SignedData.certificates"],a=0;a<r.length;a++)1===r[a].id_block.tag_class?this.certificates.push(new e.org.pkijs.simpl.CERT({schema:r[a]})):3==r[a].id_block.tag_class&&3==r[a].id_block.tag_number&&(r[a].id_block.tag_class=1,r[a].id_block.tag_number=16,this.certificates.push(new e.org.pkijs.simpl.cms.OtherCertificateFormat({schema:r[a]})))}if("SignedData.crls"in n.result){this.crls=new Array;for(var s=n.result["SignedData.crls"],l=0;l<s.length;l++)1===s[l].id_block.tag_class?this.crls.push(new e.org.pkijs.simpl.CRL({schema:s[l]})):(s[l].id_block.tag_class=1,s[l].id_block.tag_number=16,this.crls.push(new e.org.pkijs.simpl.cms.OtherRevocationInfoFormat({schema:s[l]})))}for(var c=n.result["SignedData.signerInfos"],u=0;u<c.length;u++)this.signerInfos.push(new e.org.pkijs.simpl.CMS_SIGNER_INFO({schema:c[u]}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.toSchema=function(t){void 0===t&&(t=!1);var n=new Array;n.push(new e.org.pkijs.asn1.INTEGER({value:this.version}));for(var i=new Array,o=0;o<this.digestAlgorithms.length;o++)i.push(this.digestAlgorithms[o].toSchema(t));if(n.push(new e.org.pkijs.asn1.SET({value:i})),n.push(this.encapContentInfo.toSchema()),"certificates"in this){for(var r=new Array,a=0;a<this.certificates.length;a++)if(this.certificates[a]instanceof e.org.pkijs.simpl.cms.OtherCertificateFormat){var s=this.certificates[a].toSchema(t);s.id_block.tag_class=3,s.id_block.tag_number=3,r.push(s)}else r.push(this.certificates[a].toSchema(t));n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:r}))}if("crls"in this){for(var l=new Array,c=0;c<this.crls.length;c++)if(this.crls[c]instanceof e.org.pkijs.simpl.cms.OtherRevocationInfoFormat){var u=this.crls[c].toSchema(t);u.id_block.tag_class=3,u.id_block.tag_number=1,l.push(u)}else l.push(this.crls[c].toSchema(t));n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:l}))}for(var p=new Array,h=0;h<this.signerInfos.length;h++)p.push(this.signerInfos[h].toSchema(t));return n.push(new e.org.pkijs.asn1.SET({value:p})),new e.org.pkijs.asn1.SEQUENCE({value:n})},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.verify=function(){var t,n,i=Promise.resolve(),o=this.certificates,r=this.signerInfos,a=this.encapContentInfo,s=new ArrayBuffer(0),l=new ArrayBuffer(0),c="",u=-1,p={},h=new Array,d=new Date,g=!0,m=this,f=!1,S=e.org.pkijs.getCrypto();if(void 0===S)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object&&("signer"in arguments[0]&&(u=arguments[0].signer),"data"in arguments[0]&&(s=arguments[0].data),"trusted_certs"in arguments[0]&&(h=arguments[0].trusted_certs),"checkDate"in arguments[0]&&(d=arguments[0].checkDate),"checkChain"in arguments[0]&&(g=arguments[0].checkChain),"includeSignerCertificate"in arguments[0]&&arguments[0].includeSignerCertificate,"extendedMode"in arguments[0]&&(f=arguments[0].extendedMode)),-1===u)return f?Promise.reject({date:d,code:1,message:"Unable to get signer index from input parameters",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to get signer index from input parameters");if("certificates"in this==!1)return f?Promise.reject({date:d,code:2,message:"No certificates attached to this signed data",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("No certificates attached to this signed data");function b(e){if(!0===e.issuer.isEqual(p.issuer)&&!0===e.serialNumber.isEqual(p.serialNumber))return null;for(var t=!1,n=0;n<e.extensions.length;n++)"2.5.29.19"===e.extensions[n].extnID&&"cA"in e.extensions[n].parsedValue&&!0===e.extensions[n].parsedValue.cA&&(t=!0);return t?e:null}i=this.signerInfos[u].sid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?i.then((function(){for(var t=0;o.length;t++)if(o[t]instanceof e.org.pkijs.simpl.CERT!=0&&o[t].issuer.isEqual(r[u].sid.issuer)&&o[t].serialNumber.isEqual(r[u].sid.serialNumber))return p=o[t],Promise.resolve();return f?Promise.reject({date:d,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")})):i.then((function(){for(var t=new Array,n=0;n<o.length;n++)o[n]instanceof e.org.pkijs.simpl.CERT!=0&&t.push(S.digest({name:"sha-1"},new Uint8Array(o[n].subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex)));return Promise.all(t).then((function(t){for(var n=0;n<o.length;n++)if(o[n]instanceof e.org.pkijs.simpl.CERT!=0&&e.org.pkijs.isEqual_buffer(t[n],r[u].sid.value_block.value_hex))return p=o[n],Promise.resolve();return f?Promise.reject({date:d,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")}),(function(e){return f?Promise.reject({date:d,code:3,message:"Unable to find signer certificate",signatureVerified:null,signerCertificate:null,signerCertificateVerified:null}):Promise.reject("Unable to find signer certificate")}))})),i=i.then((function(){if("1.2.840.113549.1.9.16.1.4"==a.eContentType){if("eContent"in a==0)return!1;var t,n=e.org.pkijs.fromBER(a.eContent.value_block.value_hex);try{t=new e.org.pkijs.simpl.TST_INFO({schema:n.result})}catch(e){return!1}return 0===s.byteLength?f?Promise.reject({date:d,code:4,message:"Missed detached data input array",signatureVerified:null,signerCertificate:p,signerCertificateVerified:null}):Promise.reject("Missed detached data input array"):t.verify({data:s})}return!0}));for(var y=new Array,_=0;_<this.certificates.length;_++)this.certificates[_]instanceof e.org.pkijs.simpl.CERT!=0&&y.push(b(this.certificates[_]));return g&&(i=i.then((function(t){return 0!=t&&Promise.all(y).then((function(t){for(var n=new Array,i=0;i<t.length;i++)null!==t[i]&&n.push(t[i]);n.push(p);var o=new e.org.pkijs.simpl.CERT_CHAIN({checkDate:d,certs:n,trusted_certs:h});if("crls"in m)for(i=0;i<m.crls.length;i++)m.crls[i]instanceof e.org.pkijs.simpl.CRL?o.crls.push(m.crls[i]):"1.3.6.1.5.5.7.48.1.1"==m.crls[i].otherRevInfoFormat&&o.ocsps.push(new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:m.crls[i].otherRevInfo}));if("ocsps"in m)for(i=0;i<m.ocsps.length;i++)o.ocsps.push(m.ocsps[i]);return o.verify().then((function(e){return!0===e.result?Promise.resolve(!0):f?Promise.reject({date:d,code:5,message:"Validation of signer's certificate failed",signatureVerified:null,signerCertificate:p,signerCertificateVerified:!1}):Promise.reject("Validation of signer's certificate failed")}),(function(e){return f?Promise.reject({date:d,code:5,message:"Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e),signatureVerified:null,signerCertificate:p,signerCertificateVerified:!1}):Promise.reject("Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e))}))}),(function(e){return f?Promise.reject({date:d,code:6,message:"Error during checking certificates for CA flag: "+e,signatureVerified:null,signerCertificate:p,signerCertificateVerified:null}):Promise.reject("Error during checking certificates for CA flag: "+e)}))}))),i=(i=i.then((function(t){if(0==t)return!1;var n=e.org.pkijs.getAlgorithmByOID(r[u].digestAlgorithm.algorithm_id);if("name"in n==!1)return f?Promise.reject({date:d,code:7,message:"Error during checking certificates for CA flag: "+promiseError,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unsupported signature algorithm: "+m.signerInfos[u].digestAlgorithm.algorithm_id);c=n.name}))).then((function(t){if(0==t)return!1;if("eContent"in a)if(1===a.eContent.id_block.tag_class&&4===a.eContent.id_block.tag_number)if(!1===a.eContent.id_block.is_constructed)s=a.eContent.value_block.value_hex;else for(var n=0;n<a.eContent.value_block.value.length;n++)s=e.org.pkijs.concat_buffers(s,a.eContent.value_block.value[n].value_block.value_hex);else s=a.eContent.value_block.value_hex;else if(0===s.byteLength)return f?Promise.reject({date:d,code:8,message:"Missed detached data input array",signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Missed detached data input array");if("signedAttrs"in r[u]){var i=!1,o=!1;for(n=0;n<r[u].signedAttrs.attributes.length&&("1.2.840.113549.1.9.3"==r[u].signedAttrs.attributes[n].attrType&&(i=!0),"1.2.840.113549.1.9.4"==r[u].signedAttrs.attributes[n].attrType&&(o=!0,l=r[u].signedAttrs.attributes[n].attrValues[0].value_block.value_hex),!i||!o);n++);if(0==i)return f?Promise.reject({date:d,code:9,message:'Attribute "content-type" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject('Attribute "content-type" is a mandatory attribute for "signed attributes"');if(0==o)return f?Promise.reject({date:d,code:10,message:'Attribute "message-digest" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject('Attribute "message-digest" is a mandatory attribute for "signed attributes"')}return!0})),i=i.then((function(t){if(0==t)return!1;var n=e.org.pkijs.getAlgorithmByOID(p.signatureAlgorithm.algorithm_id);if("name"in n==!1)return f?Promise.reject({date:d,code:11,message:"Unsupported public key algorithm: "+p.signatureAlgorithm.algorithm_id,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unsupported public key algorithm: "+p.signatureAlgorithm.algorithm_id);var i=n.name,o=e.org.pkijs.getAlgorithmParameters(i,"importkey");if("hash"in o.algorithm&&(o.algorithm.hash.name=c),"ECDSA"===i){if(p.subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var r=e.org.pkijs.getAlgorithmByOID(p.subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in r==!1)return Promise.reject("Unsupported named curve algorithm: "+p.subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());o.algorithm.namedCurve=r.name}var a=p.subjectPublicKeyInfo.toSchema().toBER(!1),s=new Uint8Array(a);return S.importKey("spki",s,o.algorithm,!0,o.usages)})),i=(i=i.then((function(e){return"boolean"!=typeof e&&(t=e,!("signedAttrs"in r[u])||S.digest(c,new Uint8Array(s)))})).then((function(t){return!("signedAttrs"in r[u])||!!e.org.pkijs.isEqual_buffer(t,l)&&(s=r[u].signedAttrs.encoded_value,!0)})).then((function(i){if(0==i)return!1;if("hash"in(n=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify")).algorithm&&(n.algorithm.hash.name=c),"RSA-PSS"===t.algorithm.name){var o;try{o=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r[u].signatureAlgorithm.algorithm_params})}catch(e){return f?Promise.reject({date:d,code:12,message:e,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject(e)}n.algorithm.saltLength="saltLength"in o?o.saltLength:20;var a="SHA-1";if("hashAlgorithm"in o){var l=e.org.pkijs.getAlgorithmByOID(o.hashAlgorithm.algorithm_id);if("name"in l==!1)return f?Promise.reject({date:d,code:13,message:"Unrecognized hash algorithm: "+o.hashAlgorithm.algorithm_id,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject("Unrecognized hash algorithm: "+o.hashAlgorithm.algorithm_id);a=l.name}n.algorithm.hash.name=a}var h=r[u].signature.value_block.value_hex;if("ECDSA"===t.algorithm.name){var g=e.org.pkijs.fromBER(h);h=e.org.pkijs.createECDSASignatureFromCMS(g.result)}return S.verify(n.algorithm,t,new Uint8Array(h),new Uint8Array(s))}))).then((function(e){return f?{date:d,code:14,message:"",signatureVerified:e,signerCertificate:p,signerCertificateVerified:!0}:e}),(function(e){return f?"code"in e?Promise.reject(e):Promise.reject({date:d,code:15,message:"Error during verification: "+e.message,signatureVerified:null,signerCertificate:p,signerCertificateVerified:!0}):Promise.reject(e)}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.sign=function(t,n,i,o){var r=this;o=o||new ArrayBuffer(0);var a="";if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===i&&(i="SHA-1"),""===(a=e.org.pkijs.getOIDByAlgorithm({name:i})))return Promise.reject("Unsupported hash algorithm: "+i);for(var s=!1,l=0;l<r.digestAlgorithms.length;l++)if(r.digestAlgorithms[l].algorithm_id===a){s=!0;break}!1===s&&r.digestAlgorithms.push(new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL})),r.signerInfos[n].digestAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL});var c=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(c.algorithm.hash.name=i,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":r.signerInfos[n].signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(c.algorithm);break;case"RSA-PSS":switch(i.toUpperCase()){case"SHA-256":c.algorithm.saltLength=32;break;case"SHA-384":c.algorithm.saltLength=48;break;case"SHA-512":c.algorithm.saltLength=64}var u={};if("SHA-1"!==i.toUpperCase()){if(""===(a=e.org.pkijs.getOIDByAlgorithm({name:i})))return Promise.reject("Unsupported hash algorithm: "+i);u.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),u.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:u.hashAlgorithm.toSchema()})}20!==c.algorithm.saltLength&&(u.saltLength=c.algorithm.saltLength);var p=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(u);r.signerInfos[n].signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:p.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}if("signedAttrs"in r.signerInfos[n])0!==r.signerInfos[n].signedAttrs.encoded_value.byteLength?o=r.signerInfos[n].signedAttrs.encoded_value:(o=r.signerInfos[n].signedAttrs.toSchema(!0).toBER(!1),new Uint8Array(o)[0]=49);else if("eContent"in r.encapContentInfo)if(1===r.encapContentInfo.eContent.id_block.tag_class&&4===r.encapContentInfo.eContent.id_block.tag_number)if(!1===r.encapContentInfo.eContent.id_block.is_constructed)o=r.encapContentInfo.eContent.value_block.value_hex;else for(l=0;l<r.encapContentInfo.eContent.value_block.value.length;l++)o=e.org.pkijs.concat_buffers(o,r.encapContentInfo.eContent.value_block.value[l].value_block.value_hex);else o=r.encapContentInfo.eContent.value_block.value_hex;else if(0===o.byteLength)return Promise.reject("Missed detached data input array");var h=e.org.pkijs.getCrypto();return void 0===h?Promise.reject("Unable to create WebCrypto object"):h.sign(c.algorithm,t,new Uint8Array(o)).then((function(t){return"ECDSA"===c.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),r.signerInfos[n].signature=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t}),Promise.resolve(t)}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CMS_SIGNED_DATA.prototype.toJSON=function(){var e={version:this.version};e.digestAlgorithms=new Array;for(var t=0;t<this.digestAlgorithms.length;t++)e.digestAlgorithms.push(this.digestAlgorithms[t].toJSON());if(e.encapContentInfo=this.encapContentInfo.toJSON(),"certificates"in this){e.certificates=new Array;for(t=0;t<this.certificates.length;t++)e.certificates.push(this.certificates[t].toJSON())}if("crls"in this){e.crls=new Array;for(t=0;t<this.crls.length;t++)e.crls.push(this.crls[t].toJSON())}e.signerInfos=new Array;for(t=0;t<this.signerInfos.length;t++)e.signerInfos.push(this.signerInfos[t].toJSON());return e},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo=function(){this.keyInfo=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.suppPubInfo=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyInfo=arguments[0].keyInfo||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"entityUInfo"in arguments[0]&&(this.entityUInfo=arguments[0].entityUInfo),this.suppPubInfo=arguments[0].suppPubInfo||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.ECC_CMS_SharedInfo({names:{keyInfo:{names:{block_name:"keyInfo"}},entityUInfo:"entityUInfo",suppPubInfo:"suppPubInfo"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ECC_CMS_SharedInfo");this.keyInfo=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyInfo}),"entityUInfo"in n.result&&(this.entityUInfo=n.result.entityUInfo.value_block.value[0]),this.suppPubInfo=n.result.suppPubInfo.value_block.value[0]},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.toSchema=function(){var t=new Array;return t.push(this.keyInfo.toSchema()),"entityUInfo"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.entityUInfo]})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.suppPubInfo]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo.prototype.toJSON=function(){var e={keyInfo:this.keyInfo.toJSON()};return"entityUInfo"in this&&(e.entityUInfo=this.entityUInfo.toJSON()),e.suppPubInfo=this.suppPubInfo.toJSON(),e},e.org.pkijs.simpl.cms.RecipientIdentifier=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientIdentifier({names:{block_name:"block_name"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RecipientIdentifier");1===n.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:n.result.block_name})):(this.variant=2,this.value=n.result.block_name.value_block.value[0])},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.value]});default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.RecipientIdentifier.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.KeyTransRecipientInfo=function(){this.version=-1,this.rid=new e.org.pkijs.emptyObject,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.recipientCertificate=new e.org.pkijs.simpl.CERT,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||-1,this.rid=arguments[0].rid||new e.org.pkijs.emptyObject,this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.recipientCertificate=arguments[0].recipientCertificate||new e.org.pkijs.simpl.CERT)},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyTransRecipientInfo({names:{version:"version",rid:{names:{block_name:"rid"}},keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for KeyTransRecipientInfo");this.version=n.result.version.value_block.value_dec,3===n.result.rid.id_block.tag_class?this.rid=n.result.rid.value_block.value[0]:this.rid=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:n.result.rid}),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyEncryptionAlgorithm}),this.encryptedKey=n.result.encryptedKey},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.toSchema=function(){var t=new Array;return this.rid instanceof e.org.pkijs.simpl.cms.IssuerAndSerialNumber?(this.version=0,t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.rid.toSchema())):(this.version=2,t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.rid]}))),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.encryptedKey),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KeyTransRecipientInfo.prototype.toJSON=function(){return{version:this.version,rid:this.rid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.OriginatorPublicKey=function(){this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.publicKey=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm=arguments[0].algorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.publicKey=arguments[0].publicKey||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorPublicKey({names:{algorithm:{names:{block_name:"algorithm"}},publicKey:"publicKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OriginatorPublicKey");this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.algorithm}),this.publicKey=n.result.publicKey},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.algorithm.toSchema(),this.publicKey]})},e.org.pkijs.simpl.cms.OriginatorPublicKey.prototype.toJSON=function(){return{algorithm:this.algorithm.toJSON(),publicKey:this.publicKey.toJSON()}},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorIdentifierOrKey({names:{block_name:"block_name"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OriginatorIdentifierOrKey");1===n.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:n.result.block_name})):0===n.result.block_name.id_block.tag_number?(n.result.block_name.id_block.tag_class=1,n.result.block_name.id_block.tag_number=4,this.variant=2,this.value=n.result.block_name):(n.result.block_name.id_block.tag_class=1,n.result.block_name.id_block.tag_number=16,this.variant=3,this.value=new e.org.pkijs.simpl.cms.OriginatorPublicKey({schema:n.result.block_name}))},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return this.value.id_block.tag_class=3,this.value.id_block.tag_number=0,this.value;case 3:var t=this.value.toSchema();return t.id_block.tag_class=3,t.id_block.tag_number=1,t;default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant&&3!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.OtherKeyAttribute=function(){this.keyAttrId="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyAttrId=arguments[0].keyAttrId||new e.org.pkijs.asn1.OID,"keyAttr"in arguments[0]&&(this.keyAttr=arguments[0].keyAttr))},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherKeyAttribute({names:{keyAttrId:"keyAttrId",keyAttr:"keyAttr"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OtherKeyAttribute");this.keyAttrId=n.result.keyAttrId.value_block.toString(),"keyAttr"in n.result&&(this.keyAttr=n.result.keyAttr)},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.keyAttrId})),"keyAttr"in this&&t.push(this.keyAttr.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.OtherKeyAttribute.prototype.toJSON=function(){var e={keyAttrId:this.keyAttrId};return"keyAttr"in this&&(e.keyAttr=this.keyAttr.toJSON()),e},e.org.pkijs.simpl.cms.RecipientKeyIdentifier=function(){this.subjectKeyIdentifier=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.subjectKeyIdentifier=arguments[0].subjectKeyIdentifier||new e.org.pkijs.asn1.OCTETSTRING,"date"in arguments[0]&&(this.date=arguments[0].date),"other"in arguments[0]&&(this.other=arguments[0].other))},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientKeyIdentifier({names:{subjectKeyIdentifier:"subjectKeyIdentifier",date:"date",other:{names:{block_name:"other"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RecipientKeyIdentifier");this.subjectKeyIdentifier=n.result.subjectKeyIdentifier,"date"in n.result&&(this.date=n.result.date),"other"in n.result&&(this.other=new e.org.pkijs.simpl.cms.OtherKeyAttribute({schema:n.result.other}))},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.toSchema=function(){var t=new Array;return t.push(this.subjectKeyIdentifier),"date"in this&&t.push(this.date),"other"in this&&t.push(this.other.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RecipientKeyIdentifier.prototype.toJSON=function(){var e={subjectKeyIdentifier:this.subjectKeyIdentifier.toJSON()};return"date"in this&&(e.date=this.date),"other"in this&&(e.other=this.other.toJSON()),e},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyAgreeRecipientIdentifier({names:{block_name:"block_name"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for KeyAgreeRecipientIdentifier");1===n.result.block_name.id_block.tag_class?(this.variant=1,this.value=new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({schema:n.result.block_name})):(this.variant=2,n.result.block_name.id_block.tag_class=1,n.result.block_name.id_block.tag_number=16,this.value=new e.org.pkijs.simpl.cms.RecipientKeyIdentifier({schema:n.result.block_name}))},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.toSchema=function(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:this.value.toSchema().value_block.value});default:return new e.org.pkijs.asn1.ANY}},e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.RecipientEncryptedKey=function(){this.rid=new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.rid=arguments[0].rid||new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientEncryptedKey({names:{rid:{names:{block_name:"rid"}},encryptedKey:"encryptedKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RecipientEncryptedKey");this.rid=new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier({schema:n.result.rid}),this.encryptedKey=n.result.encryptedKey},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.rid.toSchema(),this.encryptedKey]})},e.org.pkijs.simpl.cms.RecipientEncryptedKey.prototype.toJSON=function(){return{rid:this.rid.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.RecipientEncryptedKeys=function(){this.encryptedKeys=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.encryptedKeys=arguments[0].encryptedKeys||new Array)},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.RecipientEncryptedKeys({names:{RecipientEncryptedKeys:"RecipientEncryptedKeys"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RecipientEncryptedKeys");for(var i=n.result.RecipientEncryptedKeys,o=0;o<i.length;o++)this.encryptedKeys.push(new e.org.pkijs.simpl.cms.RecipientEncryptedKey({schema:i[o]}))},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.encryptedKeys.length;n++)t.push(this.encryptedKeys[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.RecipientEncryptedKeys.prototype.toJSON=function(){var e={};e.encryptedKeys=new Array;for(var t=0;t<this.encryptedKeys.length;t++)e.encryptedKeys.push(this.encryptedKeys[t].toJSON());return e},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo=function(){this.version=0,this.originator=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.recipientEncryptedKeys=new e.org.pkijs.simpl.cms.RecipientEncryptedKeys,this.recipientCertificate=new e.org.pkijs.simpl.CERT,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.originator=arguments[0].originator||new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey,"ukm"in arguments[0]&&(this.ukm=arguments[0].ukm),this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.recipientEncryptedKeys=arguments[0].recipientEncryptedKeys||new e.org.pkijs.simpl.cms.RecipientEncryptedKeys,this.recipientCertificate=arguments[0].recipientCertificate||new e.org.pkijs.simpl.CERT)},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KeyAgreeRecipientInfo({names:{version:"version",originator:{names:{block_name:"originator"}},ukm:"ukm",keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},recipientEncryptedKeys:{names:{block_name:"recipientEncryptedKeys"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for KeyAgreeRecipientInfo");this.version=n.result.version.value_block.value_dec,this.originator=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey({schema:n.result.originator}),"ukm"in n.result&&(this.ukm=n.result.ukm),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyEncryptionAlgorithm}),this.recipientEncryptedKeys=new e.org.pkijs.simpl.cms.RecipientEncryptedKeys({schema:n.result.recipientEncryptedKeys})},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.originator.toSchema()]})),"ukm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[this.ukm]})),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.recipientEncryptedKeys.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo.prototype.toJSON=function(){return{version:this.version,originator:this.originator.toJSON(),ukm:this.ukm.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),recipientEncryptedKeys:this.recipientEncryptedKeys.toJSON()}},e.org.pkijs.simpl.cms.KEKIdentifier=function(){this.keyIdentifier=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KEKIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyIdentifier=arguments[0].keyIdentifier||new e.org.pkijs.asn1.OCTETSTRING,"date"in arguments[0]&&(this.date=arguments[0].date),"other"in arguments[0]&&(this.other=arguments[0].other))},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KEKIdentifier({names:{keyIdentifier:"keyIdentifier",date:"date",other:{names:{block_name:"other"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for KEKIdentifier");this.keyIdentifier=n.result.keyIdentifier,"date"in n.result&&(this.date=n.result.date),"other"in n.result&&(this.other=new e.org.pkijs.simpl.cms.OtherKeyAttribute({schema:n.result.other}))},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.toSchema=function(){var t=new Array;return t.push(this.keyIdentifier),"date"in this&&t.push(this.date),"other"in this&&t.push(this.other.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.KEKIdentifier.prototype.toJSON=function(){var e={keyIdentifier:this.keyIdentifier.toJSON()};return"date"in this&&(e.date=this.date),"other"in this&&(e.other=this.other.toJSON()),e},e.org.pkijs.simpl.cms.KEKRecipientInfo=function(){this.version=0,this.kekid=new e.org.pkijs.simpl.cms.KEKIdentifier,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.preDefinedKEK=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.kekid=arguments[0].kekid||new e.org.pkijs.simpl.cms.KEKIdentifier,this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.preDefinedKEK=arguments[0].preDefinedKEK||new ArrayBuffer(0))},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.KEKRecipientInfo({names:{version:"version",kekid:{names:{block_name:"kekid"}},keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for KEKRecipientInfo");this.version=n.result.version.value_block.value_dec,this.kekid=new e.org.pkijs.simpl.cms.KEKIdentifier({schema:n.result.kekid}),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyEncryptionAlgorithm}),this.encryptedKey=n.result.encryptedKey},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({value:this.version}),this.kekid.toSchema(),this.keyEncryptionAlgorithm.toSchema(),this.encryptedKey]})},e.org.pkijs.simpl.cms.KEKRecipientInfo.prototype.toJSON=function(){return{version:this.version,kekid:this.originator.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.PasswordRecipientinfo=function(){this.version=-1,this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING,this.password=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version="version"in arguments[0]?arguments[0].version:-1,"keyDerivationAlgorithm"in arguments[0]&&(this.keyDerivationAlgorithm=arguments[0].keyDerivationAlgorithm),this.keyEncryptionAlgorithm=arguments[0].keyEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.encryptedKey=arguments[0].encryptedKey||new e.org.pkijs.asn1.OCTETSTRING,this.password=arguments[0].password||new ArrayBuffer(0))},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.PasswordRecipientinfo({names:{version:"version",keyDerivationAlgorithm:"keyDerivationAlgorithm",keyEncryptionAlgorithm:{names:{block_name:"keyEncryptionAlgorithm"}},encryptedKey:"encryptedKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PasswordRecipientinfo");this.version=n.result.version.value_block.value_dec,"keyDerivationAlgorithm"in n.result&&(n.result.keyDerivationAlgorithm.id_block.tag_class=1,n.result.keyDerivationAlgorithm.id_block.tag_number=16,this.keyDerivationAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyDerivationAlgorithm})),this.keyEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.keyEncryptionAlgorithm}),this.encryptedKey=n.result.encryptedKey},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),"keyDerivationAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:this.keyDerivationAlgorithm.toSchema().value_block.value})),t.push(this.keyEncryptionAlgorithm.toSchema()),t.push(this.encryptedKey),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.cms.PasswordRecipientinfo.prototype.toJSON=function(){return{version:this.version,keyDerivationAlgorithm:this.keyDerivationAlgorithm.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}},e.org.pkijs.simpl.cms.OtherRecipientInfo=function(){this.oriType="",this.oriValue=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.oriType=arguments[0].oriType||"",this.oriValue=arguments[0].oriValue||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OtherRecipientInfo({names:{oriType:"oriType",oriValue:"oriValue"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OtherRecipientInfo");this.oriType=n.result.oriType.value_block.toString(),this.oriValue=n.result.oriValue},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.oriType}),this.oriValue]})},e.org.pkijs.simpl.cms.OtherRecipientInfo.prototype.toJSON=function(){var t={oriType:this.oriType};return this.oriValue instanceof e.org.pkijs.asn1.ANY||(t.oriValue=this.oriValue.toJSON()),t},e.org.pkijs.simpl.CMS_RECIPIENT_INFO=function(){this.variant=-1,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.variant=arguments[0].variant||-1,"value"in arguments[0]&&(this.value=arguments[0].value))},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_RECIPIENT_INFO({names:{block_name:"block_name"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_RECIPIENT_INFO");if(1===n.result.block_name.id_block.tag_class)this.variant=1,this.value=new e.org.pkijs.simpl.cms.KeyTransRecipientInfo({schema:n.result.block_name});else{var i=n.result.block_name.id_block.tag_number;switch(n.result.block_name.id_block.tag_class=1,n.result.block_name.id_block.tag_number=16,i){case 1:this.variant=2,this.value=new e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo({schema:n.result.block_name});break;case 2:this.variant=3,this.value=new e.org.pkijs.simpl.cms.KEKRecipientInfo({schema:n.result.block_name});break;case 3:this.variant=4,this.value=new e.org.pkijs.simpl.cms.PasswordRecipientinfo({schema:n.result.block_name});break;case 4:this.variant=5,this.value=new e.org.pkijs.simpl.cms.OtherRecipientInfo({schema:n.result.block_name})}}},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.toSchema=function(){var t=this.value.toSchema();switch(this.variant){case 1:return t;case 2:case 3:case 4:return t.id_block.tag_class=3,t.id_block.tag_number=this.variant-1,t;default:return new e.org.pkijs.asn1.ANY}return new e.org.pkijs.asn1.ANY},e.org.pkijs.simpl.CMS_RECIPIENT_INFO.prototype.toJSON=function(){var e={variant:this.variant};return 1!=this.variant&&2!==this.variant||(e.value=this.value.toJSON()),e},e.org.pkijs.simpl.cms.OriginatorInfo=function(){this.certs=new e.org.pkijs.simpl.CMS_CERTIFICATE_SET,this.crls=new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.cms.OriginatorInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certs=arguments[0].certs||new e.org.pkijs.simpl.CMS_CERTIFICATE_SET,this.crls=arguments[0].crls||new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES)},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.OriginatorInfo({names:{certs:"certs",crls:"crls"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OriginatorInfo");n.result.certs.id_block.tag_class=1,n.result.certs.id_block.tag_number=17,this.certs=new e.org.pkijs.simpl.CMS_CERTIFICATE_SET({schema:n.result.certs}),n.result.crls.id_block.tag_class=1,n.result.crls.id_block.tag_number=17,this.crls=new e.org.pkijs.simpl.CMS_REVOCATION_INFO_CHOICES({schema:n.result.crls})},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:this.certs.toSchema().value_block.value}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:this.crls.toSchema().value_block.value})]})},e.org.pkijs.simpl.cms.OriginatorInfo.prototype.toJSON=function(){return{certs:this.certs.toJSON(),crls:this.crls.toJSON()}},e.org.pkijs.simpl.cms.EncryptedContentInfo=function(){if(this.contentType="",this.contentEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,arguments[0]instanceof Object&&"schema"in arguments[0])e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.fromSchema.call(this,arguments[0].schema);else if(arguments[0]instanceof Object&&(this.contentType=arguments[0].contentType||"",this.contentEncryptionAlgorithm=arguments[0].contentEncryptionAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,"encryptedContent"in arguments[0]&&(this.encryptedContent=arguments[0].encryptedContent,1===this.encryptedContent.id_block.tag_class&&4===this.encryptedContent.id_block.tag_number&&!1===this.encryptedContent.id_block.is_constructed))){for(var t=new e.org.pkijs.asn1.OCTETSTRING({id_block:{is_constructed:!0},is_constructed:!0}),n=0,i=this.encryptedContent.value_block.value_hex.byteLength;i>0;){for(var o=new Uint8Array(this.encryptedContent.value_block.value_hex,n,n+1024>this.encryptedContent.value_block.value_hex.byteLength?this.encryptedContent.value_block.value_hex.byteLength-n:1024),r=new ArrayBuffer(o.length),a=new Uint8Array(r),s=0;s<a.length;s++)a[s]=o[s];t.value_block.value.push(new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})),i-=o.length,n+=o.length}this.encryptedContent=t}},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.cms.EncryptedContentInfo({names:{contentType:"contentType",contentEncryptionAlgorithm:{names:{block_name:"contentEncryptionAlgorithm"}},encryptedContent:"encryptedContent"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for EncryptedContentInfo");this.contentType=n.result.contentType.value_block.toString(),this.contentEncryptionAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.contentEncryptionAlgorithm}),"encryptedContent"in n.result&&(this.encryptedContent=n.result.encryptedContent,this.encryptedContent.id_block.tag_class=1,this.encryptedContent.id_block.tag_number=4)},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.toSchema=function(){var t={is_indefinite_form:!1},n=new Array;if(n.push(new e.org.pkijs.asn1.OID({value:this.contentType})),n.push(this.contentEncryptionAlgorithm.toSchema()),"encryptedContent"in this){t.is_indefinite_form=this.encryptedContent.id_block.is_constructed;var i=this.encryptedContent;i.id_block.tag_class=3,i.id_block.tag_number=0,i.len_block.is_indefinite_form=this.encryptedContent.id_block.is_constructed,n.push(i)}return new e.org.pkijs.asn1.SEQUENCE({len_block:t,value:n})},e.org.pkijs.simpl.cms.EncryptedContentInfo.prototype.toJSON=function(){var e={contentType:this.contentType,contentEncryptionAlgorithm:this.contentEncryptionAlgorithm.toJSON()};return"encryptedContent"in this&&(e.encryptedContent=this.encryptedContent.toJSON()),e},e.org.pkijs.simpl.CMS_ENVELOPED_DATA=function(){this.version=0,this.recipientInfos=new Array,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,"originatorInfo"in arguments[0]&&(this.originatorInfo=arguments[0].originatorInfo),this.recipientInfos=arguments[0].recipientInfos||new Array,this.encryptedContentInfo=arguments[0].encryptedContentInfo||new e.org.pkijs.simpl.cms.EncryptedContentInfo,"unprotectedAttrs"in arguments[0]&&(this.unprotectedAttrs=arguments[0].unprotectedAttrs))},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_ENVELOPED_DATA({names:{version:"version",originatorInfo:"originatorInfo",recipientInfos:"recipientInfos",encryptedContentInfo:{names:{block_name:"encryptedContentInfo"}},unprotectedAttrs:"unprotectedAttrs"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_ENVELOPED_DATA");this.version=n.result.version.value_block.value_dec,"originatorInfo"in n.result&&(n.result.originatorInfo.id_block.tag_class=1,n.result.originatorInfo.id_block.tag_number=16,this.originatorInfo=new e.org.pkijs.simpl.cms.OriginatorInfo({schema:n.result.originatorInfo}));for(var i=n.result.recipientInfos,o=0;o<i.length;o++)this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({schema:i[o]}));if(this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({schema:n.result.encryptedContentInfo}),"unprotectedAttrs"in n.result){this.unprotectedAttrs=new Array;for(var r=n.result.unprotectedAttrs,a=0;a<r.length;a++)this.unprotectedAttrs.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:r[a]}))}},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.toSchema=function(){var t=new Array;t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),"originatorInfo"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:this.originatorInfo.toSchema().value_block.value}));for(var n=new Array,i=0;i<this.recipientInfos.length;i++)n.push(this.recipientInfos[i].toSchema());if(t.push(new e.org.pkijs.asn1.SET({value:n})),t.push(this.encryptedContentInfo.toSchema()),"unprotectedAttrs"in this){for(var o=new Array,r=0;r<this.unprotectedAttrs.length;r++)o.push(this.unprotectedAttrs[r].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:o}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.toJSON=function(){var e={version:this.version};"originatorInfo"in this&&(e.originatorInfo=this.originatorInfo.toJSON()),e.recipientInfos=new Array;for(var t=0;t<this.recipientInfos.length;t++)e.recipientInfos.push(this.recipientInfos[t].toJSON());if(e.encryptedContentInfo=this.encryptedContentInfo.toJSON(),"unprotectedAttrs"in this){e.unprotectedAttrs=new Array;for(t=0;t<this.unprotectedAttrs.length;t++)e.unprotectedAttrs.push(this.unprotectedAttrs[t].toJSON())}return e},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.addRecipientByCertificate=function(t,n,i){var o=n||{};if(-1!==t.subjectPublicKeyInfo.algorithm.algorithm_id.indexOf("1.2.840.113549"))i=1;else{if(-1===t.subjectPublicKeyInfo.algorithm.algorithm_id.indexOf("1.2.840.10045"))throw new Error("Unknown type of certificate's public key: "+t.subjectPublicKeyInfo.algorithm.algorithm_id);i=2}switch("oaepHashAlgorithm"in o==!1&&(o.oaepHashAlgorithm="SHA-512"),"kdfAlgorithm"in o==!1&&(o.kdfAlgorithm="SHA-512"),"kekEncryptionLength"in o==!1&&(o.kekEncryptionLength=256),i){case 1:var r=e.org.pkijs.getOIDByAlgorithm({name:"RSA-OAEP"});if(""===r)throw new Error("Can not find OID for OAEP");var a=e.org.pkijs.getOIDByAlgorithm({name:o.oaepHashAlgorithm});if(""===a)throw new Error("Unknown OAEP hash algorithm: "+o.oaepHashAlgorithm);var s=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),l=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({hashAlgorithm:s,maskGenAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:s.toSchema()})}),c=new e.org.pkijs.simpl.cms.KeyTransRecipientInfo({version:0,rid:new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({issuer:t.issuer,serialNumber:t.serialNumber}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:r,algorithm_params:l.toSchema()}),recipientCertificate:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:1,value:c}));break;case 2:var u=new e.org.pkijs.simpl.cms.RecipientEncryptedKey({rid:new e.org.pkijs.simpl.cms.KeyAgreeRecipientIdentifier({variant:1,value:new e.org.pkijs.simpl.cms.IssuerAndSerialNumber({issuer:t.issuer,serialNumber:t.serialNumber})})}),p=e.org.pkijs.getOIDByAlgorithm({name:"AES-KW",length:o.kekEncryptionLength});if(""===p)throw new Error("Unknown length for key encryption algorithm: "+o.kekEncryptionLength);var h=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:p,algorithm_params:new e.org.pkijs.asn1.NULL}),d=e.org.pkijs.getOIDByAlgorithm({name:"ECDH",kdf:o.kdfAlgorithm});if(""===d)throw new Error("Unknown KDF algorithm: "+o.kdfAlgorithm);var g=new ArrayBuffer(64),m=new Uint8Array(g);e.org.pkijs.getRandomValues(m);c=new e.org.pkijs.simpl.cms.KeyAgreeRecipientInfo({version:3,ukm:new e.org.pkijs.asn1.OCTETSTRING({value_hex:g}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:d,algorithm_params:h.toSchema()}),recipientEncryptedKeys:new e.org.pkijs.simpl.cms.RecipientEncryptedKeys({encryptedKeys:[u]}),recipientCertificate:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:2,value:c}));break;default:throw new Error('Unknown "variant" value: '+i)}return!0},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.addRecipientByPreDefinedData=function(t,n,i){var o=n||{};if(t instanceof ArrayBuffer==!1)throw new Error('Please pass "preDefinedData" in ArrayBuffer type');if(0===t.byteLength)throw new Error("Pre-defined data could have zero length");if("keyIdentifier"in o==!1){var r=new ArrayBuffer(16),a=new Uint8Array(r);e.org.pkijs.getRandomValues(a),o.keyIdentifier=r}switch("hmacHashAlgorithm"in o==!1&&(o.hmacHashAlgorithm="SHA-512"),"iterationCount"in o==!1&&(o.iterationCount=2048),"keyEncryptionAlgorithm"in o==!1&&(o.keyEncryptionAlgorithm={name:"AES-KW",length:256}),"keyEncryptionAlgorithmParams"in o==!1&&(o.keyEncryptionAlgorithmParams=new e.org.pkijs.asn1.NULL),i){case 1:if(""===(h=e.org.pkijs.getOIDByAlgorithm(o.keyEncryptionAlgorithm)))throw new Error('Incorrect value for "keyEncryptionAlgorithm"');var s=new e.org.pkijs.simpl.cms.KEKRecipientInfo({version:4,kekid:new e.org.pkijs.simpl.cms.KEKIdentifier({keyIdentifier:new e.org.pkijs.asn1.OCTETSTRING({value_hex:o.keyIdentifier})}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:o.keyEncryptionAlgorithmParams}),preDefinedKEK:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:3,value:s}));break;case 2:var l=e.org.pkijs.getOIDByAlgorithm({name:"PBKDF2"});if(""===l)throw new Error("Can not find OID for PBKDF2");var c=new ArrayBuffer(64),u=new Uint8Array(c);e.org.pkijs.getRandomValues(u);var p=e.org.pkijs.getOIDByAlgorithm({name:"HMAC",hash:{name:o.hmacHashAlgorithm}});if(""===p)throw new Error('Incorrect value for "hmacHashAlgorithm": '+o.hmacHashAlgorithm);var h,d=new e.org.pkijs.simpl.cms.PBKDF2_params({salt:new e.org.pkijs.asn1.OCTETSTRING({value_hex:c}),iterationCount:o.iterationCount,prf:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:p,algorithm_params:new e.org.pkijs.asn1.NULL})});if(""===(h=e.org.pkijs.getOIDByAlgorithm(o.keyEncryptionAlgorithm)))throw new Error('Incorrect value for "keyEncryptionAlgorithm"');s=new e.org.pkijs.simpl.cms.PasswordRecipientinfo({version:0,keyDerivationAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:l,algorithm_params:d.toSchema()}),keyEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:o.keyEncryptionAlgorithmParams}),password:t});this.recipientInfos.push(new e.org.pkijs.simpl.CMS_RECIPIENT_INFO({variant:4,value:s}));break;default:throw new Error('Unknown value for "variant": '+i)}},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.encrypt=function(t,n){var i=this,o=Promise.resolve(),r=new ArrayBuffer(16),a=new Uint8Array(r);e.org.pkijs.getRandomValues(a);var s,l,c,u=new Uint8Array(n),p=new Array,h=e.org.pkijs.getOIDByAlgorithm(t);if(""===h)return Promise.reject('Wrong "contentEncryptionAlgorithm" value');var d=e.org.pkijs.getCrypto();if(void 0===d)return Promise.reject("Unable to create WebCrypto object");function g(t){var n,o,r,a,l,c=Promise.resolve();return c=(c=(c=(c=(c=(c=(c=(c=(c=c.then((function(n){var o=i.recipientInfos[t].value.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithm_params;if(o instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject('Incorrect "recipientCertificate" for index '+t);switch(o.value_block.toString()){case"1.2.840.10045.3.1.7":r="P-256",a=256;break;case"1.3.132.0.34":r="P-384",a=384;break;case"1.3.132.0.35":r="P-521",a=528;break;default:return Promise.reject("Incorrect curve OID for index "+t)}return r}),(function(e){return Promise.reject(e)}))).then((function(e){return d.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"])}),(function(e){return Promise.reject(e)}))).then((function(e){return n=e.publicKey,o=e.privateKey,d.exportKey("spki",n)}),(function(e){return Promise.reject(e)}))).then((function(e){return l=e,i.recipientInfos[t].value.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"ECDH",namedCurve:r},usages:[]}})}),(function(e){return Promise.reject(e)}))).then((function(e){return d.deriveBits({name:"ECDH",public:e},o,a)}),(function(e){return Promise.reject(e)}))).then((function(n){var o=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params}),r=e.org.pkijs.getAlgorithmByOID(o.algorithm_id);if("name"in r==!1)return Promise.reject("Incorrect OID for key encryption algorithm: "+o.algorithm_id);for(var a=r.length,s=new ArrayBuffer(4),l=new Uint8Array(s),c=3;c>=0;c--)l[c]=a,a>>=8;var u=new e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo({keyInfo:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o.algorithm_id,algorithm_params:new e.org.pkijs.asn1.NULL}),entityUInfo:i.recipientInfos[t].value.ukm,suppPubInfo:new e.org.pkijs.asn1.OCTETSTRING({value_hex:s})}).toSchema().toBER(!1),p=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);return"name"in p==!1?Promise.reject("Incorrect OID for key encryption algorithm: "+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):e.org.pkijs.simpl.cms.kdf(p.kdf,n,r.length,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return d.importKey("raw",e,{name:"AES-KW"},!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return d.wrapKey("raw",s,e,{name:"AES-KW"})}),(function(e){return Promise.reject(e)}))).then((function(n){var o=org.pkijs.fromBER(l),r=new e.org.pkijs.simpl.cms.OriginatorIdentifierOrKey;r.variant=3,r.value=new e.org.pkijs.simpl.cms.OriginatorPublicKey({schema:o.result}),"algorithm_params"in r.value.algorithm&&delete r.value.algorithm.algorithm_params,i.recipientInfos[t].value.originator=r,i.recipientInfos[t].value.recipientEncryptedKeys.encryptedKeys[0].encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:n})}),(function(e){return Promise.reject(e)}))}function m(t){var n=Promise.resolve();return n=(n=(n=n.then((function(n){var o=i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params,r=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({schema:o}),a=e.org.pkijs.getAlgorithmByOID(r.hashAlgorithm.algorithm_id);return"name"in a==!1?Promise.reject("Incorrect OID for hash algorithm: "+r.hashAlgorithm.algorithm_id):i.recipientInfos[t].value.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"RSA-OAEP",hash:{name:a.name}},usages:["encrypt","wrapKey"]}})}),(function(e){return Promise.reject(e)}))).then((function(e){return d.encrypt({name:"RSA-OAEP"},e,c)}),(function(e){return Promise.reject(e)}))).then((function(n){i.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:n})}),(function(e){return Promise.reject(e)}))}function f(t){var n,o=Promise.resolve();return o=(o=(o=o.then((function(o){return"name"in(n=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==!1?Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):d.importKey("raw",new Uint8Array(i.recipientInfos[t].value.preDefinedKEK),n,!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return d.wrapKey("raw",s,e,n)}),(function(e){return Promise.reject(e)}))).then((function(n){i.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:n})}),(function(e){return Promise.reject(e)}))}function S(t){var n,o,r=Promise.resolve();return r=(r=(r=(r=(r=r.then((function(o){if("keyDerivationAlgorithm"in i.recipientInfos[t].value==!1)return Promise.reject('Please append encoded "keyDerivationAlgorithm"');if("algorithm_params"in i.recipientInfos[t].value.keyDerivationAlgorithm==!1)return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"');try{n=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:i.recipientInfos[t].value.keyDerivationAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"')}}),(function(e){return Promise.reject(e)}))).then((function(e){var n=new Uint8Array(i.recipientInfos[t].value.password);return d.importKey("raw",n,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(r){if("name"in(o=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==!1)return Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);var a="SHA-1";if("prf"in n){var s=e.org.pkijs.getAlgorithmByOID(n.prf.algorithm_id);if("name"in s==!1)return Promise.reject("Incorrect OID for HMAC hash algorithm");a=s.hash.name}var l=new Uint8Array(n.salt.value_block.value_hex),c=n.iterationCount;return d.deriveKey({name:"PBKDF2",hash:{name:a},salt:l,iterations:c},r,o,!0,["wrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return d.wrapKey("raw",s,e,o)}),(function(e){return Promise.reject(e)}))).then((function(n){i.recipientInfos[t].value.encryptedKey=new e.org.pkijs.asn1.OCTETSTRING({value_hex:n})}),(function(e){return Promise.reject(e)}))}return o=(o=(o=(o=(o=o.then((function(e){return d.generateKey(t,!0,["encrypt"])}))).then((function(e){return s=e,d.encrypt({name:t.name,iv:a},s,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return l=e,d.exportKey("raw",s)}),(function(e){return Promise.reject(e)})).then((function(e){return c=e,!0}),(function(e){return Promise.reject(e)}))).then((function(t){i.version=2,i.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:h,algorithm_params:new e.org.pkijs.asn1.OCTETSTRING({value_hex:r})}),encryptedContent:new e.org.pkijs.asn1.OCTETSTRING({value_hex:l})})}),(function(e){return Promise.reject(e)}))).then((function(e){for(var t=0;t<i.recipientInfos.length;t++){var n=Promise.resolve();switch(i.recipientInfos[t].variant){case 1:n=m(t);break;case 2:n=g(t);break;case 3:n=f(t);break;case 4:n=S(t);break;default:return Promise.reject("Uknown recipient type in array with index "+t)}p.push(n)}}),(function(e){return Promise.reject(e)})),o=o.then((function(e){return Promise.all(p)}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_ENVELOPED_DATA.prototype.decrypt=function(t,n){var i=this,o=Promise.resolve(),r=n||{};if(t+1>this.recipientInfos.length)return Promise.reject('Maximum value for "index" is: '+(i.recipientInfos.length-1));var a=e.org.pkijs.getCrypto();if(void 0===a)return Promise.reject("Unable to create WebCrypto object");return o=(o=o.then((function(n){var o=Promise.resolve();switch(i.recipientInfos[t].variant){case 1:o=function(t){var n=Promise.resolve();return(n=(n=n.then((function(n){if("recipientPrivateKey"in r==0)return Promise.reject('Parameter "recipientPrivateKey" is mandatory for "KeyTransRecipientInfo"');var o=i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params,s=new e.org.pkijs.simpl.cms.RSAES_OAEP_params({schema:o}),l=e.org.pkijs.getAlgorithmByOID(s.hashAlgorithm.algorithm_id);return"name"in l==0?Promise.reject("Incorrect OID for hash algorithm: "+s.hashAlgorithm.algorithm_id):a.importKey("pkcs8",r.recipientPrivateKey,{name:"RSA-OAEP",hash:{name:l.name}},!0,["decrypt"])}),(function(e){return Promise.reject(e)}))).then((function(e){return a.decrypt({name:"RSA-OAEP"},e,i.recipientInfos[t].value.encryptedKey.value_block.value_hex)}),(function(e){return Promise.reject(e)}))).then((function(t){var n=e.org.pkijs.getAlgorithmByOID(i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in n==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.importKey("raw",t,n,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 2:o=function(t){var n,o,s,l,c=Promise.resolve();return(c=(c=(c=(c=(c=c.then((function(i){if("recipientCertificate"in r==0)return Promise.reject('Parameter "recipientCertificate" is mandatory for "KeyAgreeRecipientInfo"');if("recipientPrivateKey"in r==0)return Promise.reject('Parameter "recipientPrivateKey" is mandatory for "KeyAgreeRecipientInfo"');var l=r.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithm_params;if(l instanceof e.org.pkijs.asn1.OID==0)return Promise.reject('Incorrect "recipientCertificate" for index '+t);switch(s=l.value_block.toString()){case"1.2.840.10045.3.1.7":n="P-256",o=256;break;case"1.3.132.0.34":n="P-384",o=384;break;case"1.3.132.0.35":n="P-521",o=528;break;default:return Promise.reject("Incorrect curve OID for index "+t)}return a.importKey("pkcs8",r.recipientPrivateKey,{name:"ECDH",namedCurve:n},!0,["deriveBits"])}),(function(e){return Promise.reject(e)}))).then((function(o){l=o,"algorithm_params"in i.recipientInfos[t].value.originator.value.algorithm==0&&(i.recipientInfos[t].value.originator.value.algorithm.algorithm_params=new e.org.pkijs.asn1.OID({value:s}));var r=i.recipientInfos[t].value.originator.value.toSchema().toBER(!1);return a.importKey("spki",r,{name:"ECDH",namedCurve:n},!0,[])}),(function(e){return Promise.reject(e)}))).then((function(e){return a.deriveBits({name:"ECDH",public:e},l,o)}),(function(e){return Promise.reject(e)}))).then((function(n){var o=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_params}),r=e.org.pkijs.getAlgorithmByOID(o.algorithm_id);if("name"in r==0)return Promise.reject("Incorrect OID for key encryption algorithm: "+o.algorithm_id);for(var a=r.length,s=new ArrayBuffer(4),l=new Uint8Array(s),c=3;c>=0;c--)l[c]=a,a>>=8;var u=new e.org.pkijs.simpl.cms.ECC_CMS_SharedInfo({keyInfo:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o.algorithm_id,algorithm_params:new e.org.pkijs.asn1.NULL}),entityUInfo:i.recipientInfos[t].value.ukm,suppPubInfo:new e.org.pkijs.asn1.OCTETSTRING({value_hex:s})}).toSchema().toBER(!1),p=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);return"name"in p==0?Promise.reject("Incorrect OID for key encryption algorithm: "+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):e.org.pkijs.simpl.cms.kdf(p.kdf,n,r.length,u)}),(function(e){return Promise.reject(e)}))).then((function(e){return a.importKey("raw",e,{name:"AES-KW"},!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(n){var o=e.org.pkijs.getAlgorithmByOID(i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in o==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",i.recipientInfos[t].value.recipientEncryptedKeys.encryptedKeys[0].encryptedKey.value_block.value_hex,n,{name:"AES-KW"},o,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 3:o=function(t){var n,o=Promise.resolve();return(o=o.then((function(o){return"preDefinedData"in r==0?Promise.reject('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"'):"name"in(n=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==0?Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id):a.importKey("raw",r.preDefinedData,n,!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(o){var r=e.org.pkijs.getAlgorithmByOID(i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in r==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",i.recipientInfos[t].value.encryptedKey.value_block.value_hex,o,n,r,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;case 4:o=function(t){var n,o,s=Promise.resolve();return(s=(s=s.then((function(o){if("preDefinedData"in r==0)return Promise.reject('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');if("keyDerivationAlgorithm"in i.recipientInfos[t].value==0)return Promise.reject('Please append encoded "keyDerivationAlgorithm"');if("algorithm_params"in i.recipientInfos[t].value.keyDerivationAlgorithm==0)return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"');try{n=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:i.recipientInfos[t].value.keyDerivationAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "keyDerivationAlgorithm"')}return a.importKey("raw",r.preDefinedData,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(r){if("name"in(o=e.org.pkijs.getAlgorithmByOID(i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id))==0)return Promise.reject('Incorrect OID for "keyEncryptionAlgorithm": '+i.recipientInfos[t].value.keyEncryptionAlgorithm.algorithm_id);var s="SHA-1";if("prf"in n){var l=e.org.pkijs.getAlgorithmByOID(n.prf.algorithm_id);if("name"in l==0)return Promise.reject("Incorrect OID for HMAC hash algorithm");s=l.hash.name}var c=new Uint8Array(n.salt.value_block.value_hex),u=n.iterationCount;return a.deriveKey({name:"PBKDF2",hash:{name:s},salt:c,iterations:u},r,o,!0,["unwrapKey"])}),(function(e){return Promise.reject(e)}))).then((function(n){var r=e.org.pkijs.getAlgorithmByOID(i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);return"name"in r==0?Promise.reject('Incorrect "contentEncryptionAlgorithm": '+i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id):a.unwrapKey("raw",i.recipientInfos[t].value.encryptedKey.value_block.value_hex,n,o,r,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))}(t);break;default:return Promise.reject("Uknown recipient type in array with index "+t)}return o}),(function(e){return Promise.reject(e)}))).then((function(t){var n=e.org.pkijs.getAlgorithmByOID(i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);if("name"in n==!1)return Promise.reject('Incorrect "contentEncryptionAlgorithm": '+i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);var o=i.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_params.value_block.value_hex,r=new Uint8Array(o),s=new ArrayBuffer(0);if(!1===i.encryptedContentInfo.encryptedContent.id_block.is_constructed)s=i.encryptedContentInfo.encryptedContent.value_block.value_hex;else for(var l=0;l<i.encryptedContentInfo.encryptedContent.value_block.value.length;l++)s=e.org.pkijs.concat_buffers(s,i.encryptedContentInfo.encryptedContent.value_block.value[l].value_block.value_hex);return a.decrypt({name:n.name,iv:r},t,s)}),(function(e){return Promise.reject(e)})),o},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA=function(){this.version=0,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.encryptedContentInfo=arguments[0].encryptedContentInfo||new e.org.pkijs.simpl.cms.EncryptedContentInfo,"unprotectedAttrs"in arguments[0]&&(this.unprotectedAttrs=arguments[0].unprotectedAttrs,this.version=2))},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CMS_ENCRYPTED_DATA({names:{version:"version",encryptedContentInfo:{names:{block_name:"encryptedContentInfo"}},unprotectedAttrs:"unprotectedAttrs"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CMS_ENCRYPTED_DATA");if(this.version=n.result.version.value_block.value_dec,this.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({schema:n.result.encryptedContentInfo}),"unprotectedAttrs"in n.result){this.unprotectedAttrs=new Array;for(var i=n.result.unprotectedAttrs,o=0;o<i.length;o++)this.unprotectedAttrs.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:i[o]}))}},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.encryptedContentInfo.toSchema()),"unprotectedAttrs"in this){for(var n=new Array,i=0;i<this.unprotectedAttrs.length;i++)n.push(this.unprotectedAttrs[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.toJSON=function(){var e={version:this.version};if(e.encryptedContentInfo=this.encryptedContentInfo.toJSON(),"unprotectedAttrs"in this){e.unprotectedAttrs=new Array;for(var t=0;t<this.unprotectedAttrs.length;t++)e.unprotectedAttrs.push(this.unprotectedAttrs[t].toJSON())}return e},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.encrypt=function(t){if(t instanceof Object==0)return Promise.reject('Parameters must have type "Object"');if("password"in t==0)return Promise.reject('Absent mandatory parameter "password"');if("contentEncryptionAlgorithm"in t==0)return Promise.reject('Absent mandatory parameter "contentEncryptionAlgorithm"');if("hmacHashAlgorithm"in t==0)return Promise.reject('Absent mandatory parameter "hmacHashAlgorithm"');if("iterationCount"in t==0)return Promise.reject('Absent mandatory parameter "iterationCount"');if("contentToEncrypt"in t==0)return Promise.reject('Absent mandatory parameter "contentToEncrypt"');var n=e.org.pkijs.getOIDByAlgorithm(t.contentEncryptionAlgorithm);if(""===n)return Promise.reject('Wrong "contentEncryptionAlgorithm" value');var i=e.org.pkijs.getOIDByAlgorithm({name:"PBKDF2"});if(""===i)return Promise.reject("Can not find OID for PBKDF2");var o=e.org.pkijs.getOIDByAlgorithm({name:"HMAC",hash:{name:t.hmacHashAlgorithm}});if(""===o)return Promise.reject('Incorrect value for "hmacHashAlgorithm": '+t.hmacHashAlgorithm);var r=e.org.pkijs.getCrypto();if(void 0===r)return Promise.reject("Unable to create WebCrypto object");var a=this,s=Promise.resolve(),l=new ArrayBuffer(16),c=new Uint8Array(l);e.org.pkijs.getRandomValues(c);var u=new ArrayBuffer(64),p=new Uint8Array(u);e.org.pkijs.getRandomValues(p);var h=new Uint8Array(t.contentToEncrypt),d=new e.org.pkijs.simpl.cms.PBKDF2_params({salt:new e.org.pkijs.asn1.OCTETSTRING({value_hex:u}),iterationCount:t.iterationCount,prf:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o,algorithm_params:new e.org.pkijs.asn1.NULL})});return s=(s=(s=(s=s.then((function(e){var n=new Uint8Array(t.password);return r.importKey("raw",n,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return r.deriveKey({name:"PBKDF2",hash:{name:t.hmacHashAlgorithm},salt:p,iterations:t.iterationCount},e,t.contentEncryptionAlgorithm,!0,["encrypt"])}),(function(e){return Promise.reject(e)}))).then((function(e){return r.encrypt({name:t.contentEncryptionAlgorithm.name,iv:c},e,h)}),(function(e){return Promise.reject(e)}))).then((function(t){var o=new e.org.pkijs.simpl.cms.PBES2_params({keyDerivationFunc:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:i,algorithm_params:d.toSchema()}),encryptionScheme:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:n,algorithm_params:new e.org.pkijs.asn1.OCTETSTRING({value_hex:l})})});a.encryptedContentInfo=new e.org.pkijs.simpl.cms.EncryptedContentInfo({contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.5.13",algorithm_params:o.toSchema()}),encryptedContent:new e.org.pkijs.asn1.OCTETSTRING({value_hex:t})})}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.CMS_ENCRYPTED_DATA.prototype.decrypt=function(t){if(t instanceof Object==0)return Promise.reject('Parameters must have type "Object"');if("password"in t==0)return Promise.reject('Absent mandatory parameter "password"');if("1.2.840.113549.1.5.13"!==this.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id)return Promise.reject('Unknown "contentEncryptionAlgorithm": '+r.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_id);var n=e.org.pkijs.getCrypto();if(void 0===n)return Promise.reject("Unable to create WebCrypto object");var i,o,r=this,a=Promise.resolve();try{i=new e.org.pkijs.simpl.cms.PBES2_params({schema:r.encryptedContentInfo.contentEncryptionAlgorithm.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "pbes2Parameters"')}try{o=new e.org.pkijs.simpl.cms.PBKDF2_params({schema:i.keyDerivationFunc.algorithm_params})}catch(e){return Promise.reject('Incorrectly encoded "pbkdf2Params"')}var s=e.org.pkijs.getAlgorithmByOID(i.encryptionScheme.algorithm_id);if("name"in s==0)return Promise.reject('Incorrect OID for "contentEncryptionAlgorithm": '+i.encryptionScheme.algorithm_id);var l=i.encryptionScheme.algorithm_params.value_block.value_hex,c=new Uint8Array(l),u=o.salt.value_block.value_hex,p=new Uint8Array(u),h=o.iterationCount,d="SHA-1";if("prf"in o){var g=e.org.pkijs.getAlgorithmByOID(o.prf.algorithm_id);if("name"in g==!1)return Promise.reject("Incorrect OID for HMAC hash algorithm");d=g.hash.name}return a=(a=(a=a.then((function(e){return n.importKey("raw",t.password,"PBKDF2",!0,["deriveKey"])}),(function(e){return Promise.reject(e)}))).then((function(e){return n.deriveKey({name:"PBKDF2",hash:{name:d},salt:p,iterations:h},e,s,!0,["decrypt"])}),(function(e){return Promise.reject(e)}))).then((function(t){var i=new ArrayBuffer(0);if(!1===r.encryptedContentInfo.encryptedContent.id_block.is_constructed)i=r.encryptedContentInfo.encryptedContent.value_block.value_hex;else for(var o=0;o<r.encryptedContentInfo.encryptedContent.value_block.value.length;o++)i=e.org.pkijs.concat_buffers(i,r.encryptedContentInfo.encryptedContent.value_block.value[o].value_block.value_hex);return n.decrypt({name:s.name,iv:c},t,i)}),(function(e){return Promise.reject(e)})),a}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);var t={engine:{name:"none",crypto:null,subtle:null}};if("undefined"!=typeof window&&"crypto"in window){var n=window.crypto,i=null;"webkitSubtle"in window.crypto&&(i=window.crypto.webkitSubtle),"subtle"in window.crypto&&(i=window.crypto.subtle),t.engine={name:"webcrypto",crypto:n,subtle:i}}e.org.pkijs.setEngine=function(e,n,i){t.engine={name:e,crypto:n,subtle:i}},e.org.pkijs.getEngine=function(){return t.engine},e.org.pkijs.emptyObject=function(){this.toJSON=function(){return{}},this.toSchema=function(){return{}}},e.org.pkijs.getNames=function(e){var t={};return e instanceof Object&&(t=e.names||{}),t},e.org.pkijs.inheriteObjectFields=function(e){for(var t in e.prototype)"function"!=typeof e.prototype[t]&&(this[t]=e.prototype[t])},e.org.pkijs.getUTCDate=function(e){var t=e;return new Date(t.getTime()+6e4*t.getTimezoneOffset())},e.org.pkijs.padNumber=function(e,t){for(var n=e.toString(10),i=t-n.length,o=new Array(i),r=0;r<i;r++)o[r]="0";return o.join("").concat(n)},e.org.pkijs.getValue=function(e,t,n){return t in e?e[t]:n},e.org.pkijs.isEqual_view=function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0},e.org.pkijs.isEqual_buffer=function(t,n){if(t.byteLength!=n.byteLength)return!1;var i=new Uint8Array(t),o=new Uint8Array(n);return e.org.pkijs.isEqual_view(i,o)},e.org.pkijs.concat_buffers=function(e,t){for(var n=new Uint8Array(e),i=new Uint8Array(t),o=new ArrayBuffer(e.byteLength+t.byteLength),r=new Uint8Array(o),a=0;a<e.byteLength;a++)r[a]=n[a];for(var s=0;s<t.byteLength;s++)r[e.byteLength+s]=i[s];return o},e.org.pkijs.copyBuffer=function(e){for(var t=new ArrayBuffer(e.byteLength),n=new Uint8Array(t),i=new Uint8Array(e),o=0;o<i.length;o++)n[o]=i[o];return t},e.org.pkijs.getCrypto=function(){var e;return null!==t.engine.subtle&&(e=t.engine.subtle),e},e.org.pkijs.stringPrep=function(e){var t=e.replace(/^\s+|\s+$/g,"");return t=(t=t.replace(/\s+/g," ")).toLowerCase()},e.org.pkijs.bufferToHexCodes=function(e,t,n){for(var i="",o=new Uint8Array(e,t,n),r=0;r<o.length;r++){var a=o[r].toString(16).toUpperCase();i=i+(1===a.length?"0":"")+a}return i},e.org.pkijs.bufferFromHexCodes=function(e){for(var t=e.length,n=new ArrayBuffer(t>>1),i=new Uint8Array(n),o={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,a:10,B:11,b:11,C:12,c:12,D:13,d:13,E:14,e:14,F:15,f:15},r=0,a=0,s=0;s<t;s++)s%2?(a|=o[e.charAt(s)],i[r]=a,r++):a=o[e.charAt(s)]<<4;return n},e.org.pkijs.getRandomValues=function(e){if(null!==t.engine.crypto)return t.engine.crypto.getRandomValues(e);throw new Error("No support for Web Cryptography API")},e.org.pkijs.getAlgorithmParameters=function(t,n){var i={algorithm:{},usages:[]};switch(t.toUpperCase()){case"RSASSA-PKCS1-V1_5":switch(n.toLowerCase()){case"generatekey":i={algorithm:{name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["sign","verify"]};break;case"verify":case"sign":case"importkey":i={algorithm:{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},usages:["verify"]};break;default:return{algorithm:{name:"RSASSA-PKCS1-v1_5"},usages:[]}}break;case"RSA-PSS":switch(n.toLowerCase()){case"sign":case"verify":i={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"},saltLength:20},usages:["sign","verify"]};break;case"generatekey":i={algorithm:{name:"RSA-PSS",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},usages:["sign","verify"]};break;case"importkey":i={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"}},usages:["verify"]};break;default:return{algorithm:{name:"RSA-PSS"},usages:[]}}break;case"RSA-OAEP":switch(n.toLowerCase()){case"encrypt":case"decrypt":i={algorithm:{name:"RSA-OAEP"},usages:["encrypt","decrypt"]};break;case"generatekey":i={algorithm:{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"importkey":i={algorithm:{name:"RSA-OAEP",hash:{name:"SHA-256"}},usages:["encrypt"]};break;default:return{algorithm:{name:"RSA-OAEP"},usages:[]}}break;case"ECDSA":switch(n.toLowerCase()){case"generatekey":i={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["sign","verify"]};break;case"importkey":i={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["verify"]};break;case"verify":case"sign":i={algorithm:{name:"ECDSA",hash:{name:"SHA-256"}},usages:["sign"]};break;default:return{algorithm:{name:"ECDSA"},usages:[]}}break;case"ECDH":switch(n.toLowerCase()){case"exportkey":case"importkey":case"generatekey":i={algorithm:{name:"ECDH",namedCurve:"P-256"},usages:["deriveKey","deriveBits"]};break;case"derivekey":case"derivebits":i={algorithm:{name:"ECDH",namedCurve:"P-256",public:[]},usages:["encrypt","decrypt"]};break;default:return{algorithm:{name:"ECDH"},usages:[]}}break;case"AES-CTR":switch(n.toLowerCase()){case"importkey":case"exportkey":case"generatekey":i={algorithm:{name:"AES-CTR",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":i={algorithm:{name:"AES-CTR",counter:new Uint8Array(16),length:10},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-CTR"},usages:[]}}break;case"AES-CBC":switch(n.toLowerCase()){case"importkey":case"exportkey":case"generatekey":i={algorithm:{name:"AES-CBC",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":i={algorithm:{name:"AES-CBC",iv:e.org.pkijs.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-CBC"},usages:[]}}break;case"AES-GCM":switch(n.toLowerCase()){case"importkey":case"exportkey":case"generatekey":i={algorithm:{name:"AES-GCM",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":i={algorithm:{name:"AES-GCM",iv:e.org.pkijs.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-GCM"},usages:[]}}break;case"AES-KW":switch(n.toLowerCase()){case"importkey":case"exportkey":case"generatekey":case"wrapkey":case"unwrapkey":i={algorithm:{name:"AES-KW",length:256},usages:["wrapKey","unwrapKey"]};break;default:return{algorithm:{name:"AES-KW"},usages:[]}}break;case"HMAC":switch(n.toLowerCase()){case"sign":case"verify":i={algorithm:{name:"HMAC"},usages:["sign","verify"]};break;case"importkey":case"exportkey":case"generatekey":i={algorithm:{name:"HMAC",length:32,hash:{name:"SHA-256"}},usages:["sign","verify"]};break;default:return{algorithm:{name:"HMAC"},usages:[]}}break;case"HKDF":if("derivekey"!==n.toLowerCase())return{algorithm:{name:"HKDF"},usages:[]};i={algorithm:{name:"HKDF",hash:"SHA-256",salt:new Uint8Array,info:new Uint8Array},usages:["encrypt","decrypt"]};break;case"PBKDF2":if("derivekey"!==n.toLowerCase())return{algorithm:{name:"PBKDF2"},usages:[]};i={algorithm:{name:"PBKDF2",hash:{name:"SHA-256"},salt:new Uint8Array,iterations:1e3},usages:["encrypt","decrypt"]}}return i},e.org.pkijs.getOIDByAlgorithm=function(e){var t="";switch(e.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.113549.1.1.5";break;case"SHA-256":t="1.2.840.113549.1.1.11";break;case"SHA-384":t="1.2.840.113549.1.1.12";break;case"SHA-512":t="1.2.840.113549.1.1.13"}break;case"RSA-PSS":t="1.2.840.113549.1.1.10";break;case"RSA-OAEP":t="1.2.840.113549.1.1.7";break;case"ECDSA":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.10045.4.1";break;case"SHA-256":t="1.2.840.10045.4.3.2";break;case"SHA-384":t="1.2.840.10045.4.3.3";break;case"SHA-512":t="1.2.840.10045.4.3.4"}break;case"ECDH":switch(e.kdf.toUpperCase()){case"SHA-1":t="1.3.133.16.840.63.0.2";break;case"SHA-256":t="1.3.132.1.11.1";break;case"SHA-384":t="1.3.132.1.11.2";break;case"SHA-512":t="1.3.132.1.11.3"}break;case"AES-CTR":case"AES-CMAC":case"CONCAT":case"HKDF":break;case"AES-CBC":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.2";break;case 192:t="2.16.840.1.101.3.4.1.22";break;case 256:t="2.16.840.1.101.3.4.1.42"}break;case"AES-GCM":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.6";break;case 192:t="2.16.840.1.101.3.4.1.26";break;case 256:t="2.16.840.1.101.3.4.1.46"}break;case"AES-CFB":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.4";break;case 192:t="2.16.840.1.101.3.4.1.24";break;case 256:t="2.16.840.1.101.3.4.1.44"}break;case"AES-KW":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.5";break;case 192:t="2.16.840.1.101.3.4.1.25";break;case 256:t="2.16.840.1.101.3.4.1.45"}break;case"HMAC":switch(e.hash.name.toUpperCase()){case"SHA-1":t="1.2.840.113549.2.7";break;case"SHA-256":t="1.2.840.113549.2.9";break;case"SHA-384":t="1.2.840.113549.2.10";break;case"SHA-512":t="1.2.840.113549.2.11"}break;case"DH":t="1.2.840.113549.1.9.16.3.5";break;case"SHA-1":t="1.3.14.3.2.26";break;case"SHA-256":t="2.16.840.1.101.3.4.2.1";break;case"SHA-384":t="2.16.840.1.101.3.4.2.2";break;case"SHA-512":t="2.16.840.1.101.3.4.2.3";break;case"PBKDF2":t="1.2.840.113549.1.5.12";break;case"P-256":t="1.2.840.10045.3.1.7";break;case"P-384":t="1.3.132.0.34";break;case"P-521":t="1.3.132.0.35"}return t},e.org.pkijs.getAlgorithmByOID=function(e){var t={};switch(e){case"1.2.840.113549.1.1.5":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};break;case"1.2.840.113549.1.1.11":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};break;case"1.2.840.113549.1.1.12":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};break;case"1.2.840.113549.1.1.13":t={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};break;case"1.2.840.113549.1.1.10":t={name:"RSA-PSS"};break;case"1.2.840.113549.1.1.7":t={name:"RSA-OAEP"};break;case"1.2.840.10045.4.1":t={name:"ECDSA",hash:{name:"SHA-1"}};break;case"1.2.840.10045.4.3.2":t={name:"ECDSA",hash:{name:"SHA-256"}};break;case"1.2.840.10045.4.3.3":t={name:"ECDSA",hash:{name:"SHA-384"}};break;case"1.2.840.10045.4.3.4":t={name:"ECDSA",hash:{name:"SHA-512"}};break;case"1.3.133.16.840.63.0.2":t={name:"ECDH",kdf:"SHA-1"};break;case"1.3.132.1.11.1":t={name:"ECDH",kdf:"SHA-256"};break;case"1.3.132.1.11.2":t={name:"ECDH",kdf:"SHA-384"};break;case"1.3.132.1.11.3":t={name:"ECDH",kdf:"SHA-512"};break;case"2.16.840.1.101.3.4.1.2":t={name:"AES-CBC",length:128};break;case"2.16.840.1.101.3.4.1.22":t={name:"AES-CBC",length:192};break;case"2.16.840.1.101.3.4.1.42":t={name:"AES-CBC",length:256};break;case"2.16.840.1.101.3.4.1.6":t={name:"AES-GCM",length:128};break;case"2.16.840.1.101.3.4.1.26":t={name:"AES-GCM",length:192};break;case"2.16.840.1.101.3.4.1.46":t={name:"AES-GCM",length:256};break;case"2.16.840.1.101.3.4.1.4":t={name:"AES-CFB",length:128};break;case"2.16.840.1.101.3.4.1.24":t={name:"AES-CFB",length:192};break;case"2.16.840.1.101.3.4.1.44":t={name:"AES-CFB",length:256};break;case"2.16.840.1.101.3.4.1.5":t={name:"AES-KW",length:128};break;case"2.16.840.1.101.3.4.1.25":t={name:"AES-KW",length:192};break;case"2.16.840.1.101.3.4.1.45":t={name:"AES-KW",length:256};break;case"1.2.840.113549.2.7":t={name:"HMAC",hash:{name:"SHA-1"}};break;case"1.2.840.113549.2.9":t={name:"HMAC",hash:{name:"SHA-256"}};break;case"1.2.840.113549.2.10":t={name:"HMAC",hash:{name:"SHA-384"}};break;case"1.2.840.113549.2.11":t={name:"HMAC",hash:{name:"SHA-512"}};break;case"1.2.840.113549.1.9.16.3.5":t={name:"DH"};break;case"1.3.14.3.2.26":t={name:"SHA-1"};break;case"2.16.840.1.101.3.4.2.1":t={name:"SHA-256"};break;case"2.16.840.1.101.3.4.2.2":t={name:"SHA-384"};break;case"2.16.840.1.101.3.4.2.3":t={name:"SHA-512"};break;case"1.2.840.113549.1.5.12":t={name:"PBKDF2"};break;case"1.2.840.10045.3.1.7":t={name:"P-256",size:32};break;case"1.3.132.0.34":t={name:"P-384",size:48};break;case"1.3.132.0.35":t={name:"P-521",size:66}}return t},e.org.pkijs.getHashAlgorithm=function(t){var n="";switch(t.algorithm_id){case"1.2.840.10045.4.1":case"1.2.840.113549.1.1.5":n="SHA-1";break;case"1.2.840.10045.4.3.2":case"1.2.840.113549.1.1.11":n="SHA-256";break;case"1.2.840.10045.4.3.3":case"1.2.840.113549.1.1.12":n="SHA-384";break;case"1.2.840.10045.4.3.4":case"1.2.840.113549.1.1.13":n="SHA-512";break;case"1.2.840.113549.1.1.10":var i;try{if("hashAlgorithm"in(i=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:t.algorithm_params}))){var o=e.org.pkijs.getAlgorithmByOID(i.hashAlgorithm.algorithm_id);if("name"in o==!1)return"";n=o.name}else n="SHA-1"}catch(e){}}return n},e.org.pkijs.createCMSECDSASignature=function(t){if(t.byteLength%2!=0)return new ArrayBuffer(0);var n,i,o=t.byteLength/2,r=new ArrayBuffer(o),a=new Uint8Array(r);a.set(new Uint8Array(t,0,o));var s,l,c=new ArrayBuffer(o),u=new Uint8Array(c);switch(u.set(new Uint8Array(t,o,o)),!0){case!!(128&a[0]):n=new ArrayBuffer(o+1),(i=new Uint8Array(n))[0]=0,i.set(a,1);break;case 0===a[0]&&!(128&a[1]):n=new ArrayBuffer(o-1),(i=new Uint8Array(n)).set(new Uint8Array(t,1,o-1));break;default:n=r,i=a}switch(!0){case!!(128&u[0]):s=new ArrayBuffer(o+1),(l=new Uint8Array(s))[0]=0,l.set(u,1);break;case 0===u[0]&&!(128&u[1]):s=new ArrayBuffer(o-1),(l=new Uint8Array(s)).set(new Uint8Array(t,1,o-1));break;default:s=c,l=u}var p=new e.org.pkijs.asn1.INTEGER;p.value_block.is_hex_only=!0,p.value_block.value_hex=e.org.pkijs.copyBuffer(n);var h=new e.org.pkijs.asn1.INTEGER;return h.value_block.is_hex_only=!0,h.value_block.value_hex=e.org.pkijs.copyBuffer(s),new e.org.pkijs.asn1.SEQUENCE({value:[p,h]}).toBER(!1)},e.org.pkijs.createECDSASignatureFromCMS=function(t){var n,i;if(t instanceof e.org.pkijs.asn1.SEQUENCE==!1)return new ArrayBuffer(0);if(2!==t.value_block.value.length)return new ArrayBuffer(0);if(t.value_block.value[0]instanceof e.org.pkijs.asn1.INTEGER==!1)return new ArrayBuffer(0);if(t.value_block.value[1]instanceof e.org.pkijs.asn1.INTEGER==!1)return new ArrayBuffer(0);function o(e){var t=new Uint8Array(e.value_block.value_hex);switch(e.value_block.value_hex.byteLength){case 32:case 48:case 66:return e.value_block.value_hex;case 33:case 49:case 67:return t.slice(1).buffer;case 31:case 47:case 65:var n=new ArrayBuffer(e.value_block.value_hex.byteLength+1);return new Uint8Array(n).set(t,1),n;default:return new ArrayBuffer(0)}}return i=o(t.value_block.value[0]),n=o(t.value_block.value[1]),e.org.pkijs.concat_buffers(i,n)},e.org.pkijs.getEncryptionAlgorithm=function(e){var t="";switch(e.name.toUpperCase()){case"AES-CBC":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.2";break;case 192:t="2.16.840.1.101.3.4.1.22";break;case 256:t="2.16.840.1.101.3.4.1.42"}break;case"AES-GCM":switch(e.length){case 128:t="2.16.840.1.101.3.4.1.6";break;case 192:t="2.16.840.1.101.3.4.1.26";break;case 256:t="2.16.840.1.101.3.4.1.46"}}return t},e.org.pkijs.getAlgorithmByEncryptionOID=function(e){var t="";switch(e){case"2.16.840.1.101.3.4.1.2":case"2.16.840.1.101.3.4.1.22":case"2.16.840.1.101.3.4.1.42":t="AES-CBC";break;case"2.16.840.1.101.3.4.1.6":case"2.16.840.1.101.3.4.1.26":case"2.16.840.1.101.3.4.1.46":t="AES-GCM"}return t}}("undefined"!=typeof exports?exports:window),eval(function(e,t,n,i,o,r){if(o=function(e){return(e<62?"":o(parseInt(e/62)))+((e%=62)>35?String.fromCharCode(e+29):e.toString(36))},!"".replace(/^/,String)){for(;n--;)r[o(n)]=i[n]||o(n);i=[function(e){return r[e]}],o=function(){return"\\w+"},n=1}for(;n--;)i[n]&&(e=e.replace(new RegExp("\\b"+o(n)+"\\b","g"),i[n]));return e}("A 1b(a,b,c,d,e,f,g,h,i){5 j=1c(a,b,c,d,e,f,i);1d(j,g,h)}A 1c(a,b,c,d,e,f,g){5 h=1e.1v;5 j=1e.1w;5 k=V;5 l=h;5 m=j;5 n=(e===1f||e==F?0:N.O(e));5 o=n+c;5 p=(f===1f||f==F?0:N.O(f));5 q=p+d;5 r=W(a[0].Q);5 s=W(6 1g());5 t=1h();5 u='1x 1y 1z|1.0|'+b;5 v='<1i>'+g.1A+';'+g.1B+';'+g.1C+';'+g.1D+';'+g.Q+'</1i>';5 w='1E;1F;1G;1H;1I;1J;1K;1L;1M;1N;1O;1P;1Q;1R\\n';w+=h+';'+j+';'+k+';'+l+';'+m+';'+n+';'+o+';'+p+';'+q+';'+r+';'+s+';';w+=G.H.J(t)+';'+G.H.J(u)+';'+G.H.J(v)+'\\n';5 x=V;5 y=1;5 z=a[0].Q;w+='X;Y;1S;1T;1U\\n';C(5 i=0;i<a.9;i++)w+=N.O(n+a[i].x)+';'+N.O(p+a[i].y)+';'+x+';'+y+';'+N.O(a[i].Q-z)+'\\n';D G.H.J(w)}A W(a){5 b=6 1g(a);5 c=K(b.1V())+'/'+K(b.1W()+1)+'/'+b.1X();c+='@'+K(b.1Y())+':'+K(b.1Z())+':'+K(b.20());D c}A K(a){D(a.Z().9==1?'0'+a.Z():a.Z())}A 1h(){D 11.21+'|'+11.22+'|'+11.23}A 1d(f,g,h){5 i=F;5 j=F;24{5 k=G.H.1j(f);5 l=k.L(\"\\n\");5 m=l[0]+\"\\n\"+l[1];5 n=m.L('').1k(A(x){D x.M(0)});5 o=6 E(n);5 p=1l.1m(o,{1n:'1o'});i=G.H.J(p);12(h)5 o=1p(k);13{5 n=k.L('').1k(A(x){D x.M(0)});5 o=6 E(n)}5 q=1l.1m(o,{1n:'1o'});5 r=14(G.H.1j(g.25(/(-----(26|27) 28-----|\\n)/g,'')));5 s=R.S.29(r);5 t=6 R.S.15.2a({2b:s.2c});5 u={};u.2d=\"2e-2f\";u.9=2g;5 v=6 R.S.15.2h();v.2i(t,{2j:'2k-V'});v.2l(u,14(q)).2m(A(a){5 b=6 R.S.15.2n();b.2o=\"1.2.2p.2q.1.7.3\";b.2r=v.1q();5 c=b.1q();5 d=c.2s(2t);5 e=2u.2v.2w(F,6 E(d));j=G.H.J(e);16(6 17(F,i,j))},A(a){18.19('2x 2y 2z 1b');18.19(a);16(6 17(f,F,F))})}2A(e){18.19(e.2B);16(6 17(f,F,F))}}A 14(a){5 b=a.9;5 c=6 2C(b);5 d=6 E(c);C(5 i=0;i<b;i++)d[i]=a.M(i);D c}A 1p(b){5 c=b.L(\"\\n\").2D(A(a){D(a.9!=0)});5 d=c[1].L(\";\");5 e=I(d[0]);5 f=I(d[1]);5 g=I(d[2]);5 h=[];5 k=\"2E\";C(5 i=0;i<k.9;++i)h.8(k.M(i));h.8(P);k=\" 10\";C(5 i=0;i<k.9;++i){h.8(k.M(i))}h.8(P);h.8(1r);h.8(1r);h.8(T);h=B(0,h);h=B(e,h);h.8(T);h=B(0,h);h=B(f,h);h.8(T);h=B(0,h);h=B(g,h);h.8(T);h.8(P);h.8(P);h.8(1s);h.8(1s);h.8(P);h.8(2F);h=1t(c.9-3,h);5 l=2G;C(5 j=3;j<c.9;j++){5 m=c[j].L(\";\");h=B(I(m[0])+l,h);h=B(I(m[1])+l,h);h=B(I(m[2]),h);h=B(I(m[4]),h)}5 n=I(c[1].9);h=B(n,h);k=c[1];C(5 i=0;i<k.9;++i)h.8(k.M(i));5 o=6 E(h);D o}A B(a,b){5 c;5 d;c=6 2H(1);c[0]=a;d=6 E(c.U);5 e=6 E(d.9);5 f=d.9;12((6 1a((6 E([1,2,3,4])).U))[0]===1u){C(5 j=0;j<f;j++)e[f-j-1]=d[j]}13 e=d;C(5 j=0;j<e.9;j++)b.8(e[j]);D b}A 1t(a,b){5 c;5 d;c=6 1a(1);c[0]=a;d=6 E(c.U);5 e=6 E(d.9);5 f=d.9;12((6 1a((6 E([1,2,3,4])).U))[0]===1u){C(5 j=0;j<f;j++)e[f-j-1]=d[j];C(5 j=1;j<e.9;j++)b.8(e[j])}13 C(5 j=0;j<e.9-1;j++)b.8(e[j]);D b}",0,168,"|||||var|new||push|length|||||||||||||||||||||||||||function|write2Byte|for|return|Uint8Array|null|jQuery|base64|parseInt|encode|formatFinal|split|charCodeAt|Math|round|0x00|time|org|pkijs|0x60|buffer|512|formatDate|||toString||navigator|if|else|stringToArrayBuffer|simpl|exitCifrado|Array|console|log|Uint32Array|cifrado|generateDataFile|EcoBioPreSignEnc|screen|undefined|Date|getHardware|GPS|decode|map|pako|deflate|to|string|ToISO|toSchema|192|255|write3Byte|0x04030201|width|height|ecoSignature|App|HTML5|longitude|latitude|altitude|accuracy|MAX_X|MAX_Y|MAX_PRESS|LCD_WIDTH|LCD_HEIGHT|LX|RX|TY|BY|TIME_START|TIME_END|HARDWARE|SOFTWARE|EXTRA|PRESS|SW|TIME|getDate|getMonth|getFullYear|getHours|getMinutes|getSeconds|platform|product|userAgent|try|replace|BEGIN|END|CERTIFICATE|fromBER|CERT|schema|result|name|AES|CBC|256|CMS_ENVELOPED_DATA|addRecipientByCertificate|oaepHashAlgorithm|SHA|encrypt|then|CMS_CONTENT_INFO|contentType|840|113549|content|toBER|false|String|fromCharCode|apply|Error|en|el|catch|message|ArrayBuffer|filter|SDI|0x01|32768|Uint16Array".split("|"),0,{})),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.ocsp)e.org.pkijs.schema.ocsp={};else if("object"!=typeof e.org.pkijs.schema.ocsp)throw new Error("Name org.pkijs.schema.ocsp already exists and it's not an object but "+typeof e.org.pkijs.schema.ocsp);if(void 0===e.org.pkijs.schema.tsp)e.org.pkijs.schema.tsp={};else if("object"!=typeof e.org.pkijs.schema.tsp)throw new Error("Name org.pkijs.schema.tsp already exists and it's not an object but "+typeof e.org.pkijs.schema.tsp);e.org.pkijs.schema.ocsp.CertID=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:t.hashAlgorithm||""}}),new e.org.pkijs.asn1.OCTETSTRING({name:t.issuerNameHash||""}),new e.org.pkijs.asn1.OCTETSTRING({name:t.issuerKeyHash||""}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||""})]})},e.org.pkijs.schema.ocsp.Request=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ocsp.CertID(t.reqCert||{}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:t.singleRequestExtensions||""}})]})]})},e.org.pkijs.schema.ocsp.TBSRequest=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TBSRequest",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.TBSRequest_version||"TBSRequest.version"})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.GENERAL_NAME(t.requestorName||{names:{block_name:"TBSRequest.requestorName"}})]}),new e.org.pkijs.asn1.SEQUENCE({name:t.requestList||"TBSRequest.requestList",value:[new e.org.pkijs.asn1.REPEATED({name:t.requests||"TBSRequest.requests",value:e.org.pkijs.schema.ocsp.Request(t.requestNames||{})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:t.requestExtensions||"TBSRequest.requestExtensions"}})]})]})},e.org.pkijs.schema.ocsp.Signature=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.signature||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:t.certs||"",value:e.org.pkijs.schema.CERT(t.certs||{})})]})]})]})},e.org.pkijs.schema.OCSP_REQUEST=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"OCSPRequest",value:[e.org.pkijs.schema.ocsp.TBSRequest(t.tbsRequest||{names:{block_name:"tbsRequest"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.ocsp.Signature(t.optionalSignature||{names:{block_name:"optionalSignature"}})]})]})},e.org.pkijs.schema.ocsp.ResponderID=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.RDN(t.byName||{names:{block_name:""}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.block_name||"",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.byKey||""})]})]})},e.org.pkijs.schema.ocsp.ResponseBytes=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.responseType||""}),new e.org.pkijs.asn1.OCTETSTRING({name:t.response||""})]})},e.org.pkijs.schema.OCSP_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"OCSPResponse",value:[new e.org.pkijs.asn1.ENUMERATED({name:t.responseStatus||"responseStatus"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.ocsp.ResponseBytes(t.responseBytes||{names:{block_name:"responseBytes"}})]})]})},e.org.pkijs.schema.ocsp.SingleResponse=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ocsp.CertID(t.certID||{}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.certStatus||"",id_block:{tag_class:3,tag_number:0},len_block_length:1}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.certStatus||"",id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.GENERALIZEDTIME,new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ENUMERATED]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.certStatus||"",id_block:{tag_class:3,tag_number:2},len_block:{length:1}})]}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.thisUpdate||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.nextUpdate||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.EXTENSIONS(t.singleExtensions||{})]})]})},e.org.pkijs.schema.ocsp.ResponseData=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"ResponseData",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"ResponseData.version"})]}),new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.responderID||"ResponseData.responderID",id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.RDN(t.ResponseData_byName||{names:{block_name:"ResponseData.byName"}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.responderID||"ResponseData.responderID",id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.OCTETSTRING({name:t.ResponseData_byKey||"ResponseData.byKey"})]})]}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.producedAt||"ResponseData.producedAt"}),new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"ResponseData.responses",value:e.org.pkijs.schema.ocsp.SingleResponse(t.response||{})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:"ResponseData.responseExtensions"}})]})]})},e.org.pkijs.schema.OCSP_BASIC_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"BasicOCSPResponse",value:[e.org.pkijs.schema.ocsp.ResponseData(t.tbsResponseData||{names:{block_name:"BasicOCSPResponse.tbsResponseData"}}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signatureAlgorithm||{names:{block_name:"BasicOCSPResponse.signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:t.signature||"BasicOCSPResponse.signature"}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"BasicOCSPResponse.certs",value:e.org.pkijs.schema.CERT(t.certs||{})})]})]})]})},e.org.pkijs.schema.tsp.MessageImprint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{}),new e.org.pkijs.asn1.OCTETSTRING({name:t.hashedMessage||""})]})},e.org.pkijs.schema.TSP_REQUEST=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TimeStampReq",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"TimeStampReq.version"}),e.org.pkijs.schema.tsp.MessageImprint(t.messageImprint||{names:{block_name:"TimeStampReq.messageImprint"}}),new e.org.pkijs.asn1.OID({name:t.reqPolicy||"TimeStampReq.reqPolicy",optional:!0}),new e.org.pkijs.asn1.INTEGER({name:t.nonce||"TimeStampReq.nonce",optional:!0}),new e.org.pkijs.asn1.BOOLEAN({name:t.certReq||"TimeStampReq.certReq",optional:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.extensions||"TimeStampReq.extensions",value:e.org.pkijs.schema.EXTENSION()})]})]})},e.org.pkijs.schema.tsp.Accuracy=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",optional:!0,value:[new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.seconds||""}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.millis||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.micros||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.TST_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TSTInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||"TSTInfo.version"}),new e.org.pkijs.asn1.OID({name:t.policy||"TSTInfo.policy"}),e.org.pkijs.schema.tsp.MessageImprint(t.messageImprint||{names:{block_name:"TSTInfo.messageImprint"}}),new e.org.pkijs.asn1.INTEGER({name:t.serialNumber||"TSTInfo.serialNumber"}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:t.genTime||"TSTInfo.genTime"}),e.org.pkijs.schema.tsp.Accuracy(t.accuracy||{names:{block_name:"TSTInfo.accuracy"}}),new e.org.pkijs.asn1.BOOLEAN({name:t.ordering||"TSTInfo.ordering",optional:!0}),new e.org.pkijs.asn1.INTEGER({name:t.nonce||"TSTInfo.nonce",optional:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.GENERAL_NAME(t.tsa||{names:{block_name:"TSTInfo.tsa"}})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.extensions||"TSTInfo.extensions",value:e.org.pkijs.schema.EXTENSION(t.extension||{})})]})]})},e.org.pkijs.schema.tsp.PKIStatusInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.status||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.statusStrings||"",value:new e.org.pkijs.asn1.UTF8STRING})]}),new e.org.pkijs.asn1.BITSTRING({name:t.failInfo||"",optional:!0})]})},e.org.pkijs.schema.TSP_RESPONSE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"TimeStampResp",value:[e.org.pkijs.schema.tsp.PKIStatusInfo(t.status||{names:{block_name:"TimeStampResp.status"}}),e.org.pkijs.schema.CMS_CONTENT_INFO(t.timeStampToken||{names:{block_name:"TimeStampResp.timeStampToken"}},!0)]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.ocsp)e.org.pkijs.simpl.ocsp={};else if("object"!=typeof e.org.pkijs.simpl.ocsp)throw new Error("Name org.pkijs.simpl.ocsp already exists and it's not an object but "+typeof e.org.pkijs.simpl.ocsp);if(void 0===e.org.pkijs.simpl.tsp)e.org.pkijs.simpl.tsp={};else if("object"!=typeof e.org.pkijs.simpl.tsp)throw new Error("Name org.pkijs.simpl.tsp already exists and it's not an object but "+typeof e.org.pkijs.simpl.tsp);e.org.pkijs.simpl.ocsp.CertID=function(){this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuerNameHash=new e.org.pkijs.asn1.OCTETSTRING,this.issuerKeyHash=new e.org.pkijs.asn1.OCTETSTRING,this.serialNumber=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.CertID.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.hashAlgorithm=arguments[0].hashAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuerNameHash=arguments[0].issuerNameHash||new e.org.pkijs.asn1.OCTETSTRING,this.issuerKeyHash=arguments[0].issuerKeyHash||new e.org.pkijs.asn1.OCTETSTRING,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.ocsp.CertID.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.CertID({names:{hashAlgorithm:"hashAlgorithm",issuerNameHash:"issuerNameHash",issuerKeyHash:"issuerKeyHash",serialNumber:"serialNumber"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CertID");this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.hashAlgorithm}),this.issuerNameHash=n.result.issuerNameHash,this.issuerKeyHash=n.result.issuerKeyHash,this.serialNumber=n.result.serialNumber},e.org.pkijs.simpl.ocsp.CertID.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.hashAlgorithm.toSchema(),this.issuerNameHash,this.issuerKeyHash,this.serialNumber]})},e.org.pkijs.simpl.ocsp.CertID.prototype.toJSON=function(){return{hashAlgorithm:this.hashAlgorithm.toJSON(),issuerNameHash:this.issuerNameHash.toJSON(),issuerKeyHash:this.issuerKeyHash.toJSON(),serialNumber:this.serialNumber.toJSON()}},e.org.pkijs.simpl.ocsp.CertID.prototype.isEqual=function(t){return!this.hashAlgorithm.algorithm_id!=t.hashAlgorithm.algorithm_id&&(0!=e.org.pkijs.isEqual_buffer(this.issuerNameHash.value_block.value_hex,t.issuerNameHash.value_block.value_hex)&&(0!=e.org.pkijs.isEqual_buffer(this.issuerKeyHash.value_block.value_hex,t.issuerKeyHash.value_block.value_hex)&&!!this.serialNumber.isEqual(t.serialNumber)))},e.org.pkijs.simpl.ocsp.CertID.prototype.createForCertificate=function(t,n){var i,o,r=this,a=Promise.resolve(),s=e.org.pkijs.getCrypto();return void 0===s?Promise.reject("Unable to create WebCrypto object"):"hashAlgorithm"in n==0?Promise.reject('Parameter "hashAlgorithm" is mandatory for "OCSP_REQUEST.createForCertificate"'):""===(o=e.org.pkijs.getOIDByAlgorithm({name:n.hashAlgorithm}))?Promise.reject('Incorrect "hashAlgorithm": '+this.hashAlgorithm):(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:o,algorithm_params:new e.org.pkijs.asn1.NULL}),"issuerCertificate"in n?(i=n.issuerCertificate,this.serialNumber=t.serialNumber,a=(a=a.then((function(e){var t=i.subject.toSchema().toBER(!1);return s.digest({name:n.hashAlgorithm},t)}),(function(e){return Promise.reject(e)}))).then((function(t){r.issuerNameHash=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t});var o=i.subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex;return s.digest({name:n.hashAlgorithm},o)}),(function(e){return Promise.reject(e)})).then((function(t){r.issuerKeyHash=new e.org.pkijs.asn1.OCTETSTRING({value_hex:t})}),(function(e){return Promise.reject(e)}))):Promise.reject('Parameter "issuerCertificate" is mandatory for "OCSP_REQUEST.createForCertificate"'))},e.org.pkijs.simpl.ocsp.Request=function(){this.reqCert=new e.org.pkijs.simpl.ocsp.CertID,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.Request.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.reqCert=arguments[0].reqCert||new e.org.pkijs.simpl.ocsp.CertID,"singleRequestExtensions"in arguments[0]&&(this.singleRequestExtensions=arguments[0].singleRequestExtensions))},e.org.pkijs.simpl.ocsp.Request.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.Request({names:{reqCert:{names:{block_name:"reqCert"}},singleRequestExtensions:{names:{block_name:"singleRequestExtensions"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for Request");if(this.reqCert=new e.org.pkijs.simpl.ocsp.CertID({schema:n.result.reqCert}),"singleRequestExtensions"in n.result){this.singleRequestExtensions=new Array;for(var i=n.result.singleRequestExtensions.value_block.value,o=0;o<i.length;o++)this.singleRequestExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))}},e.org.pkijs.simpl.ocsp.Request.prototype.toSchema=function(){var t=new Array;if(t.push(this.reqCert.toSchema()),"singleRequestExtensions"in this){for(var n=new Array,i=0;i<this.singleRequestExtensions.length;i++)n.push(this.singleRequestExtensions[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.Request.prototype.toJSON=function(){var e={reqCert:this.reqCert.toJSON()};if("singleRequestExtensions"in this){e.singleRequestExtensions=new Array;for(var t=0;t<this.singleRequestExtensions.length;t++)e.singleRequestExtensions.push(this.singleRequestExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.TBSRequest=function(){this.tbs=new ArrayBuffer(0),this.requestList=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.TBSRequest.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),"requestorName"in arguments[0]&&(this.requestorName=arguments[0].requestorName),this.requestList=arguments[0].requestList||new Array,"requestExtensions"in arguments[0]&&(this.requestExtensions=arguments[0].requestExtensions))},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.TBSRequest());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for TBSRequest");this.tbs=n.result.TBSRequest.value_before_decode,"TBSRequest.version"in n.result&&(this.version=n.result["TBSRequest.version"].value_block.value_dec),"TBSRequest.requestorName"in n.result&&(this.requestorName=new e.org.pkijs.simpl.GENERAL_NAME({schema:n.result["TBSRequest.requestorName"]}));for(var i=n.result["TBSRequest.requests"],o=0;o<i.length;o++)this.requestList.push(new e.org.pkijs.simpl.ocsp.Request({schema:i[o]}));if("TBSRequest.requestExtensions"in n.result){this.requestExtensions=new Array;var r=n.result["TBSRequest.requestExtensions"].value_block.value;for(o=0;o<r.length;o++)this.requestExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.toSchema=function(t){var n;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.byteLength)return e.org.pkijs.schema.ocsp.TBSRequest();n=e.org.pkijs.fromBER(this.tbs).result}else{var i=new Array;"version"in this&&i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),"requestorName"in this&&i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[this.requestorName.toSchema()]}));for(var o=new Array,r=0;r<this.requestList.length;r++)o.push(this.requestList[r].toSchema());if(i.push(new e.org.pkijs.asn1.SEQUENCE({value:o})),"requestExtensions"in this){for(var a=new Array,s=0;s<this.requestExtensions.length;s++)a.push(this.requestExtensions[s].toSchema());i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.SEQUENCE({value:a})]}))}n=new e.org.pkijs.asn1.SEQUENCE({value:i})}return n},e.org.pkijs.simpl.ocsp.TBSRequest.prototype.toJSON=function(){var e={};"version"in this&&(e.version=this.version),"requestorName"in this&&(e.requestorName=this.requestorName.toJSON()),e.requestList=new Array;for(var t=0;t<this.requestList.length;t++)e.requestList.push(this.requestList[t].toJSON());if("requestExtensions"in this){e.requestExtensions=new Array;for(t=0;t<this.requestExtensions.length;t++)e.requestExtensions.push(this.requestExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.Signature=function(){this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.Signature.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.BITSTRING,"certs"in arguments[0]&&(this.certs=arguments[0].certs))},e.org.pkijs.simpl.ocsp.Signature.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.Signature({names:{signatureAlgorithm:{names:{block_name:"signatureAlgorithm"}},signature:"signature",certs:"certs"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ocsp.Signature");if(this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.signatureAlgorithm}),this.signature=n.result.signature,"certs"in n.result){this.certs=new Array;for(var i=n.result.certs,o=0;o<i;o++)this.certs.push(new e.org.pkijs.simpl.CERT({schema:i[o]}))}},e.org.pkijs.simpl.ocsp.Signature.prototype.toSchema=function(){var t=new Array;if(t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"certs"in this){for(var n=new Array,i=0;i<this.certs.length;i++)n.push(this.certs[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.Signature.prototype.toJSON=function(){var e={signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};if("certs"in this){e.certs=new Array;for(var t=0;t<this.certs.length;t++)e.certs.push(this.certs[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_REQUEST=function(){this.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_REQUEST.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbsRequest=arguments[0].tbsRequest||new e.org.pkijs.simpl.ocsp.TBSRequest,"optionalSignature"in arguments[0]&&(this.optionalSignature=arguments[0].optionalSignature))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_REQUEST());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OCSP_REQUEST");this.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest({schema:n.result.tbsRequest}),"optionalSignature"in n.result&&(this.optionalSignature=new e.org.pkijs.simpl.ocsp.Signature({schema:n.result.optionalSignature}))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.toSchema=function(t){void 0===t&&(t=!1);var n=new Array;return n.push(this.tbsRequest.toSchema(t)),"optionalSignature"in this&&n.push(this.optionalSignature.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:n})},e.org.pkijs.simpl.OCSP_REQUEST.prototype.sign=function(t,n){var i=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n)n="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:n}))return Promise.reject("Unsupported hash algorithm: "+n);if("optionalSignature"in this==!1)return Promise.reject('Need to create "optionalSignature" field before signing');var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":i.optionalSignature.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==n.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:n});if(""===a)return Promise.reject("Unsupported hash algorithm: "+n);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);i.optionalSignature.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}var l=this.tbsRequest.toSchema(!0).toBER(!1),c=e.org.pkijs.getCrypto();return void 0===c?Promise.reject("Unable to create WebCrypto object"):c.sign(o.algorithm,t,new Uint8Array(l)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),i.optionalSignature.signature=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.OCSP_REQUEST.prototype.toJSON=function(){var e={};"version"in this&&(e.version=this.version),"requestorName"in this&&(e.requestorName=this.requestorName.toJSON()),e.requestList=new Array;for(var t=0;t<this.requestList.length;t++)e.requestList.push(this.requestList[t].toJSON());if("requestExtensions"in this){e.requestExtensions=new Array;for(t=0;t<this.requestExtensions.length;t++)e.requestExtensions.push(this.requestExtensions[t].toJSON())}return"optionalSignature"in this&&(e.optionalSignature=this.optionalSignature.toJSON()),e},e.org.pkijs.simpl.OCSP_REQUEST.prototype.createForCertificate=function(t,n){var i=this,o=Promise.resolve(),r=new e.org.pkijs.simpl.ocsp.CertID;return o=(o=o.then((function(e){return r.createForCertificate(t,n)}))).then((function(t){i.tbsRequest=new e.org.pkijs.simpl.ocsp.TBSRequest({requestList:[new e.org.pkijs.simpl.ocsp.Request({reqCert:r})]})}),(function(e){return Promise.reject(e)}))},e.org.pkijs.simpl.ocsp.ResponseBytes=function(){this.responseType="",this.response=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.responseType=arguments[0].responseType||"",this.response=arguments[0].response||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.ResponseBytes({names:{responseType:"responseType",response:"response"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ResponseBytes");this.responseType=n.result.responseType.value_block.toString(),this.response=n.result.response},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.responseType}),this.response]})},e.org.pkijs.simpl.ocsp.ResponseBytes.prototype.toJSON=function(){return{responseType:this.responseType,response:this.response.toJSON()}},e.org.pkijs.simpl.OCSP_RESPONSE=function(){this.responseStatus=new e.org.pkijs.asn1.ENUMERATED,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.responseStatus=arguments[0].responseStatus||new e.org.pkijs.asn1.ENUMERATED,"responseBytes"in arguments[0]&&(this.responseBytes=arguments[0].responseBytes))},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_RESPONSE());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OCSP_RESPONSE");this.responseStatus=n.result.responseStatus,"responseBytes"in n.result&&(this.responseBytes=new e.org.pkijs.simpl.ocsp.ResponseBytes({schema:n.result.responseBytes}))},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.toSchema=function(){var t=new Array;return t.push(this.responseStatus),"responseBytes"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.responseBytes.toSchema()]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.verify=function(){if("responseBytes"in this==!1)return Promise.reject("Empty ResponseBytes field");if("1.3.6.1.5.5.7.48.1.1"===this.responseBytes.responseType){var t=e.org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);return new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:t.result}).verify()}return Promise.reject("Unknown ResponseBytes type: "+this.responseBytes.responseType)},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.sign=function(t,n){if("1.3.6.1.5.5.7.48.1.1"===this.responseBytes.responseType){var i=e.org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);return new e.org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:i.result}).sign(t,n)}return Promise.reject("Unknown ResponseBytes type: "+this.responseBytes.responseType)},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.toJSON=function(){var e={responseStatus:this.responseStatus.toJSON()};return"responseBytes"in this&&(e.responseBytes=this.responseBytes.toJSON()),e},e.org.pkijs.simpl.OCSP_RESPONSE.prototype.getCertificateStatus=function(e,t){var n,i={isForCertificate:!1,status:2};if("responseBytes"in this==0)return i;if("1.3.6.1.5.5.7.48.1.1"!=this.responseBytes.responseType)return i;try{var o=org.pkijs.fromBER(this.responseBytes.response.value_block.value_hex);n=new org.pkijs.simpl.OCSP_BASIC_RESPONSE({schema:o.result})}catch(e){return i}return n.getCertificateStatus(e,t)},e.org.pkijs.simpl.ocsp.SingleResponse=function(){this.certID=new e.org.pkijs.simpl.ocsp.CertID,this.certStatus=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[]}),this.thisUpdate=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.SingleResponse.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certID=arguments[0].certID||new e.org.pkijs.simpl.ocsp.CertID,this.certStatus=arguments[0].certStatus||new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[]}),this.thisUpdate=arguments[0].thisUpdate||new Date(0,0,0),"nextUpdate"in arguments[0]&&(this.nextUpdate=arguments[0].nextUpdate),"singleExtensions"in arguments[0]&&(this.singleExtensions=arguments[0].singleExtensions))},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.SingleResponse({names:{certID:{names:{block_name:"certID"}},certStatus:"certStatus",thisUpdate:"thisUpdate",nextUpdate:"nextUpdate",singleExtensions:"singleExtensions"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for SingleResponse");if(this.certID=new e.org.pkijs.simpl.ocsp.CertID({schema:n.result.certID}),this.certStatus=n.result.certStatus,this.thisUpdate=n.result.thisUpdate.toDate(),"nextUpdate"in n.result&&(this.nextUpdate=n.result.nextUpdate.toDate()),"singleExtensions"in n.result){this.singleExtensions=new Array;for(var i=n.result.singleExtensions.value_block.value,o=0;o<i.length;o++)this.singleExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))}},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.toSchema=function(){var t=new Array;if(t.push(this.certID.toSchema()),t.push(this.certStatus),t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.thisUpdate})),"nextUpdate"in this&&t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.nextUpdate})),"singleExtensions"in this){for(var n=new Array,i=0;i<this.singleExtensions.length;i++)n.push(this.singleExtensions[i].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ocsp.SingleResponse.prototype.toJSON=function(){var e={certID:this.certID.toJSON(),certStatus:this.certStatus.toJSON(),thisUpdate:this.thisUpdate};if("nextUpdate"in this&&(e.nextUpdate=this.nextUpdate),"singleExtensions"in this){e.singleExtensions=new Array;for(var t=0;t<this.singleExtensions.length;t++)e.singleExtensions.push(this.singleExtensions[t].toJSON())}return e},e.org.pkijs.simpl.ocsp.ResponseData=function(){this.tbs=new ArrayBuffer(0),this.responderID=new e.org.pkijs.simpl.RDN,this.producedAt=new Date(0,0,0),this.responses=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ocsp.ResponseData.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("version"in arguments[0]&&(this.version=arguments[0].version),this.responderID=arguments[0].responderID||new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:10},value:[]}),this.producedAt=arguments[0].producedAt||new Date(0,0,0),this.responses=arguments[0].responses||new Array,"responseExtensions"in arguments[0]&&(this.responseExtensions=arguments[0].responseExtensions))},e.org.pkijs.simpl.ocsp.ResponseData.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ocsp.ResponseData());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ocsp.ResponseData");this.tbs=n.result.ResponseData.value_before_decode,"ResponseData.version"in n.result&&(this.version=n.result["ResponseData.version"].value_block.value_dec),1===n.result["ResponseData.responderID"].id_block.tag_number?this.responderID=new e.org.pkijs.simpl.RDN({schema:n.result["ResponseData.responderID"].value_block.value[0]}):this.responderID=n.result["ResponseData.responderID"].value_block.value[0],this.producedAt=n.result["ResponseData.producedAt"].toDate();for(var i=n.result["ResponseData.responses"],o=0;o<i.length;o++)this.responses.push(new e.org.pkijs.simpl.ocsp.SingleResponse({schema:i[o]}));if("ResponseData.responseExtensions"in n.result){this.responseExtensions=new Array;var r=n.result["ResponseData.responseExtensions"].value_block.value;for(o=0;o<r.length;o++)this.responseExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}},e.org.pkijs.simpl.ocsp.ResponseData.prototype.toSchema=function(t){var n;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.ocsp.ResponseData();n=e.org.pkijs.fromBER(this.tbs).result}else{var i=new Array;"version"in this&&i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),this.responderID instanceof e.org.pkijs.simpl.RDN?i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.responderID.toSchema()]})):i.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[this.responderID]})),i.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.producedAt}));for(var o=new Array,r=0;r<this.responses.length;r++)o.push(this.responses[r].toSchema());if(i.push(new e.org.pkijs.asn1.SEQUENCE({value:o})),"responseExtensions"in this){for(var a=new Array,s=0;s<this.responseExtensions.length;s++)a.push(this.responseExtensions[s].toSchema());i.push(new e.org.pkijs.asn1.SEQUENCE({value:a}))}n=new e.org.pkijs.asn1.SEQUENCE({value:i})}return n},e.org.pkijs.simpl.ocsp.ResponseData.prototype.toJSON=function(){var e={};if("version"in this&&(e.version=this.version),"responderID"in this&&(e.responderID=this.responderID),"producedAt"in this&&(e.producedAt=this.producedAt),"responses"in this){e.responses=new Array;for(var t=0;t<this.responses.length;t++)e.responses.push(this.responses[t].toJSON())}if("responseExtensions"in this){e.responseExtensions=new Array;for(t=0;t<this.responseExtensions.length;t++)e.responseExtensions.push(this.responseExtensions[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE=function(){this.tbsResponseData=new e.org.pkijs.simpl.ocsp.ResponseData,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbsResponseData=arguments[0].tbsResponseData||new e.org.pkijs.simpl.ocsp.ResponseData,this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signature=arguments[0].signature||new e.org.pkijs.asn1.BITSTRING,"certs"in arguments[0]&&(this.certs=arguments[0].certs))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.OCSP_BASIC_RESPONSE());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OCSP_BASIC_RESPONSE");if(this.tbsResponseData=new e.org.pkijs.simpl.ocsp.ResponseData({schema:n.result["BasicOCSPResponse.tbsResponseData"]}),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result["BasicOCSPResponse.signatureAlgorithm"]}),this.signature=n.result["BasicOCSPResponse.signature"],"BasicOCSPResponse.certs"in n.result){this.certs=new Array;for(var i=n.result["BasicOCSPResponse.certs"],o=0;o<i.length;o++)this.certs.push(new e.org.pkijs.simpl.CERT({schema:i[o]}))}},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.toSchema=function(){var t=new Array;if(t.push(this.tbsResponseData.toSchema()),t.push(this.signatureAlgorithm.toSchema()),t.push(this.signature),"certs"in this){for(var n=new Array,i=0;i<this.certs.length;i++)n.push(this.certs[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.verify=function(){if("certs"in this==!1)return Promise.reject("No certificates attached to the BasicOCSPResponce");var t=this,n=null,i=this.certs;new Uint8Array(this.signature.value_block.value_hex);var o,r=new Uint8Array(this.tbsResponseData.tbs),a=-1,s=Promise.resolve(),l=new Array;arguments[0]instanceof Object&&"trusted_certs"in arguments[0]&&(l=arguments[0].trusted_certs);var c=e.org.pkijs.getCrypto();if(void 0===c)return Promise.reject("Unable to create WebCrypto object");if(""===(o=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm)))return Promise.reject("Unsupported signature algorithm: "+t.signatureAlgorithm.algorithm_id);var u=0,p={};if(this.tbsResponseData.responderID instanceof e.org.pkijs.simpl.RDN)u=0,p=this.tbsResponseData.responderID;else{if(!(this.tbsResponseData.responderID instanceof e.org.pkijs.asn1.OCTETSTRING))return Promise.reject("Wrong value for responderID");u=1,p=this.tbsResponseData.responderID}function h(e){if(!0===e.issuer.isEqual(n.issuer)&&!0===e.serialNumber.isEqual(n.serialNumber))return null;for(var t=!1,i=0;i<e.extensions.length;i++)"2.5.29.19"===e.extensions[i].extnID&&"cA"in e.extensions[i].parsedValue&&!0===e.extensions[i].parsedValue.cA&&(t=!0);return t?e:null}s=0===u?s.then((function(){for(var e=0;e<i.length;e++)if(i[e].subject.isEqual(p)){a=e;break}})):s.then((function(){for(var t=new Array,n=0;n<i.length;n++)t.push(c.digest({name:"sha-1"},new Uint8Array(i[n].subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex)));return Promise.all(t).then((function(t){for(var n=0;n<i.length;n++)if(e.org.pkijs.isEqual_buffer(t[n],p.value_block.value_hex)){a=n;break}}))}));var d=new Array;return s=s.then((function(o){if(-1===a)return Promise.reject("Correct certificate was not found in OCSP response");n=i[a];for(var r=0;r<t.certs.length;r++)d.push(h(t.certs[r]));return Promise.all(d).then((function(i){var o=new Array;o.push(n);for(var r=0;r<i.length;r++)null!==i[r]&&o.push(i[r]);var a=new e.org.pkijs.simpl.CERT_CHAIN({certs:o,trusted_certs:l});return"crls"in t&&(a.crls=t.crls),a.verify().then((function(e){return!0===e.result?Promise.resolve():Promise.reject("Validation of signer's certificate failed")}),(function(e){return Promise.reject("Validation of signer's certificate failed with error: "+(e instanceof Object?e.result_message:e))}))}),(function(e){return Promise.reject("Error during checking certificates for CA flag: "+e)}))})),s=(s=s.then((function(){var t=e.org.pkijs.getAlgorithmByOID(i[a].signatureAlgorithm.algorithm_id);if("name"in t==!1)return Promise.reject("Unsupported public key algorithm: "+i[a].signatureAlgorithm.algorithm_id);var n=t.name,r=e.org.pkijs.getAlgorithmParameters(n,"importkey");if("hash"in r.algorithm&&(r.algorithm.hash.name=o),"ECDSA"===n){if(i[a].subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var s=e.org.pkijs.getAlgorithmByOID(i[a].subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in s==!1)return Promise.reject("Unsupported named curve algorithm: "+i[a].subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());r.algorithm.namedCurve=s.name}var l=i[a].subjectPublicKeyInfo.toSchema().toBER(!1),u=new Uint8Array(l);return c.importKey("spki",u,r.algorithm,!0,r.usages)}))).then((function(n){var i=e.org.pkijs.getAlgorithmParameters(n.algorithm.name,"verify");"hash"in i.algorithm&&(i.algorithm.hash.name=o);var a=t.signature.value_block.value_hex;if("ECDSA"===n.algorithm.name){var s=e.org.pkijs.fromBER(a);a=e.org.pkijs.createECDSASignatureFromCMS(s.result)}if("RSA-PSS"===n.algorithm.name){var l;try{l=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:t.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}i.algorithm.saltLength="saltLength"in l?l.saltLength:20;var u="SHA-1";if("hashAlgorithm"in l){var p=e.org.pkijs.getAlgorithmByOID(l.hashAlgorithm.algorithm_id);if("name"in p==!1)return Promise.reject("Unrecognized hash algorithm: "+l.hashAlgorithm.algorithm_id);u=p.name}i.algorithm.hash.name=u}return c.verify(i.algorithm,n,new Uint8Array(a),r)}))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.sign=function(t,n){var i=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n)n="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:n}))return Promise.reject("Unsupported hash algorithm: "+n);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":i.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==n.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:n});if(""===a)return Promise.reject("Unsupported hash algorithm: "+n);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);i.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}i.tbsResponseData.tbs=i.tbsResponseData.toSchema(!0).toBER(!1);var l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):l.sign(o.algorithm,t,new Uint8Array(i.tbsResponseData.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),i.signature=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.toJSON=function(){var e={tbsResponseData:this.tbsResponseData.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};if("certs"in this){e.certs=new Array;for(var t=0;t<this.certs.length;t++)e.certs.push(this.certs[t].toJSON())}return e},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.old_getCertificateStatus=function(t){for(var n={isForCertificate:!1,status:2},i=0;i<this.tbsResponseData.responses.length;i++)if(this.tbsResponseData.responses[i].certID.isEqual(t)){if(n.isForCertificate=!0,this.tbsResponseData.responses[i].certStatus instanceof e.org.pkijs.asn1.ASN1_PRIMITIVE)switch(this.tbsResponseData.responses[i].certStatus.id_block.tag_number){case 0:n.status=0;break;case 2:n.status=2}else this.tbsResponseData.responses[i].certStatus instanceof e.org.pkijs.asn1.ASN1_CONSTRUCTED&&1==this.tbsResponseData.responses[i].certStatus.id_block.tag_number&&(n.status=1);return n}return n},e.org.pkijs.simpl.OCSP_BASIC_RESPONSE.prototype.getCertificateStatus=function(t,n){for(var i=Promise.resolve(),o=this,r={isForCertificate:!1,status:2},a={},s=new Array,l=new Array,c=0;c<this.tbsResponseData.responses.length;c++){var u=org.pkijs.getAlgorithmByOID(this.tbsResponseData.responses[c].certID.hashAlgorithm.algorithm_id);if("name"in u==0)return Promise.reject("Wrong CertID hashing algorithm: "+this.tbsResponseData.responses[c].certID.hashAlgorithm.algorithm_id);if(u.name in a==0){a[u.name]=1;var p=new org.pkijs.simpl.ocsp.CertID;s.push(p),l.push(p.createForCertificate(t,{hashAlgorithm:u.name,issuerCertificate:n}))}}return i=(i=i.then((function(){return Promise.all(l)}))).then((function(){for(var t=0;t<o.tbsResponseData.responses.length;t++)for(var n=0;n<s.length;n++)if(o.tbsResponseData.responses[t].certID.isEqual(s[n])){if(r.isForCertificate=!0,o.tbsResponseData.responses[t].certStatus instanceof e.org.pkijs.asn1.ASN1_PRIMITIVE)switch(o.tbsResponseData.responses[t].certStatus.id_block.tag_number){case 0:r.status=0;break;case 2:r.status=2}else o.tbsResponseData.responses[t].certStatus instanceof e.org.pkijs.asn1.ASN1_CONSTRUCTED&&1==o.tbsResponseData.responses[t].certStatus.id_block.tag_number&&(r.status=1);return r}return r})),i},e.org.pkijs.simpl.tsp.MessageImprint=function(){this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.hashedMessage=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.MessageImprint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.hashAlgorithm=arguments[0].hashAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.hashedMessage=arguments[0].hashedMessage||new e.org.pkijs.asn1.OCTETSTRING)},e.org.pkijs.simpl.tsp.MessageImprint.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.MessageImprint({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},hashedMessage:"hashedMessage"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for MessageImprint");this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.hashAlgorithm}),this.hashedMessage=n.result.hashedMessage},e.org.pkijs.simpl.tsp.MessageImprint.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.hashAlgorithm.toSchema(),this.hashedMessage]})},e.org.pkijs.simpl.tsp.MessageImprint.prototype.toJSON=function(){return{hashAlgorithm:this.hashAlgorithm.toJSON(),hashedMessage:this.hashedMessage.toJSON()}},e.org.pkijs.simpl.TSP_REQUEST=function(){this.version=0,this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TSP_REQUEST.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.messageImprint=arguments[0].messageImprint||new e.org.pkijs.simpl.tsp.MessageImprint,"reqPolicy"in arguments[0]&&(this.reqPolicy=arguments[0].reqPolicy),"nonce"in arguments[0]&&(this.nonce=arguments[0].nonce),"certReq"in arguments[0]&&(this.certReq=arguments[0].certReq),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions))},e.org.pkijs.simpl.TSP_REQUEST.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TSP_REQUEST());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for TSP_REQUEST");if(this.version=n.result["TimeStampReq.version"].value_block.value_dec,this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint({schema:n.result["TimeStampReq.messageImprint"]}),"TimeStampReq.reqPolicy"in n.result&&(this.reqPolicy=n.result["TimeStampReq.reqPolicy"].value_block.toString()),"TimeStampReq.nonce"in n.result&&(this.nonce=n.result["TimeStampReq.nonce"]),"TimeStampReq.certReq"in n.result&&(this.certReq=n.result["TimeStampReq.certReq"].value_block.value),"TimeStampReq.extensions"in n.result){this.extensions=new Array;for(var i=n.result["TimeStampReq.extensions"],o=0;o<i.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))}},e.org.pkijs.simpl.TSP_REQUEST.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.messageImprint.toSchema()),"reqPolicy"in this&&t.push(new e.org.pkijs.asn1.OID({value:this.reqPolicy})),"nonce"in this&&t.push(this.nonce),"certReq"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.certReq})),"extensions"in this){for(var n=new Array,i=0;i<this.extensions.length;i++)n.push(this.extensions[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TSP_REQUEST.prototype.toJSON=function(){var e={version:this.version,messageImprint:this.messageImprint.toJSON()};if("reqPolicy"in this&&(e.reqPolicy=this.reqPolicy),"nonce"in this&&(e.nonce=this.nonce.toJSON()),"certReq"in this&&(e.certReq=this.certReq),"extensions"in this){e.extensions=new Array;for(var t=0;t<this.extensions.length;t++)e.extensions.push(this.extensions[t].toJSON())}return e},e.org.pkijs.simpl.tsp.Accuracy=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.Accuracy.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("seconds"in arguments[0]&&(this.seconds=arguments[0].seconds),"millis"in arguments[0]&&(this.millis=arguments[0].millis),"micros"in arguments[0]&&(this.micros=arguments[0].micros))},e.org.pkijs.simpl.tsp.Accuracy.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.Accuracy({names:{seconds:"seconds",millis:"millis",micros:"micros"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for tsp.Accuracy");if("seconds"in n.result&&(this.seconds=n.result.seconds.value_block.value_dec),"millis"in n.result){var i=new e.org.pkijs.asn1.INTEGER({value_hex:n.result.millis.value_block.value_hex});this.millis=i.value_block.value_dec}if("micros"in n.result){var o=new e.org.pkijs.asn1.INTEGER({value_hex:n.result.micros.value_block.value_hex});this.micros=o.value_block.value_dec}},e.org.pkijs.simpl.tsp.Accuracy.prototype.toSchema=function(){var t=new Array;if("seconds"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.seconds})),"millis"in this){var n=new e.org.pkijs.asn1.INTEGER({value:this.millis});t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},value_hex:n.value_block.value_hex}))}if("micros"in this){var i=new e.org.pkijs.asn1.INTEGER({value:this.micros});t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:i.value_block.value_hex}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.tsp.Accuracy.prototype.toJSON=function(){var e={};return"seconds"in this&&(e.seconds=this.seconds),"millis"in this&&(e.millis=this.millis),"micros"in this&&(e.micros=this.micros),e},e.org.pkijs.simpl.TST_INFO=function(){this.version=0,this.policy="",this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint,this.serialNumber=new e.org.pkijs.asn1.INTEGER,this.genTime=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TST_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.policy=arguments[0].policy||"",this.messageImprint=arguments[0].messageImprint||new e.org.pkijs.simpl.tsp.MessageImprint,this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER,this.genTime=arguments[0].genTime||new Date(0,0,0),"accuracy"in arguments[0]&&(this.accuracy=arguments[0].accuracy),"ordering"in arguments[0]&&(this.ordering=arguments[0].ordering),"nonce"in arguments[0]&&(this.nonce=arguments[0].nonce),"tsa"in arguments[0]&&(this.tsa=arguments[0].tsa),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions))},e.org.pkijs.simpl.TST_INFO.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TST_INFO());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for TST_INFO");if(this.version=n.result["TSTInfo.version"].value_block.value_dec,this.policy=n.result["TSTInfo.policy"].value_block.toString(),this.messageImprint=new e.org.pkijs.simpl.tsp.MessageImprint({schema:n.result["TSTInfo.messageImprint"]}),this.serialNumber=n.result["TSTInfo.serialNumber"],this.genTime=n.result["TSTInfo.genTime"].toDate(),"TSTInfo.accuracy"in n.result&&(this.accuracy=new e.org.pkijs.simpl.tsp.Accuracy({schema:n.result["TSTInfo.accuracy"]})),"TSTInfo.ordering"in n.result&&(this.ordering=n.result["TSTInfo.ordering"].value_block.value),"TSTInfo.nonce"in n.result&&(this.nonce=n.result["TSTInfo.nonce"]),"TSTInfo.tsa"in n.result&&(this.tsa=new e.org.pkijs.simpl.GENERAL_NAME({schema:n.result["TSTInfo.tsa"]})),"TSTInfo.extensions"in n.result)for(var i=n.result["TSTInfo.extensions"],o=0;o<i.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))},e.org.pkijs.simpl.TST_INFO.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(new e.org.pkijs.asn1.OID({value:this.policy})),t.push(this.messageImprint.toSchema()),t.push(this.serialNumber),t.push(new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.genTime})),"accuracy"in this&&t.push(this.accuracy.toSchema()),"ordering"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.ordering})),"nonce"in this&&t.push(this.nonce),"tsa"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[this.tsa.toSchema()]})),"extensions"in this){for(var n=new Array,i=0;i<this.extensions.length;i++)n.push(this.extensions[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TST_INFO.prototype.toJSON=function(){var e={version:this.version,policy:this.policy,messageImprint:this.messageImprint.toJSON(),serialNumber:this.serialNumber.toJSON(),genTime:this.genTime};if("accuracy"in this&&(e.accuracy=this.accuracy.toJSON()),"ordering"in this&&(e.ordering=this.ordering),"nonce"in this&&(e.nonce=this.nonce.toJSON()),"tsa"in this&&(e.tsa=this.tsa.toJSON()),"extensions"in this){e.extensions=new Array;for(var t=0;t<this.extensions.length;t++)e.extensions.push(this.extensions[t].toJSON())}return e},e.org.pkijs.simpl.TST_INFO.prototype.verify=function(){var t,n=Promise.resolve(),i=this,o=e.org.pkijs.getCrypto();if(void 0===o)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object){if(!("data"in arguments[0]))return Promise.reject('"data" is a mandatory attribute for TST_INFO verification');t=arguments[0].data,"notBefore"in arguments[0]&&arguments[0].notBefore,"notAfter"in arguments[0]&&arguments[0].notAfter}var r=e.org.pkijs.getAlgorithmByOID(i.messageImprint.hashAlgorithm.algorithm_id);if("name"in r==!1)return Promise.reject("Unsupported signature algorithm: "+i.messageImprint.hashAlgorithm.algorithm_id);var a=r.name;return n=n.then((function(){return o.digest(a,new Uint8Array(t))})).then((function(t){return!!e.org.pkijs.isEqual_buffer(t,i.messageImprint.hashedMessage.value_block.value_hex)}))},e.org.pkijs.simpl.tsp.PKIStatusInfo=function(){this.status=2,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.status=e.org.pkijs.getValue(arguments[0],"status",2),"statusStrings"in arguments[0]&&(this.statusStrings=arguments[0].statusStrings),"failInfo"in arguments[0]&&(this.failInfo=arguments[0].failInfo))},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.tsp.PKIStatusInfo({names:{status:"status",statusStrings:"statusStrings",failInfo:"failInfo"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PKIStatusInfo");var i=n.result.status;if(!0===i.value_block.is_hex_only||i.value_block.value_dec<0||i.value_block.value_dec>5)throw new Error('PKIStatusInfo "status" has invalid value');this.status=i.value_block.value_dec,"statusStrings"in n.result&&(this.statusStrings=n.result.statusStrings),"failInfo"in n.result&&(this.failInfo=n.result.failInfo)},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.INTEGER({value:this.status})),"statusStrings"in this&&t.push(new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:this.statusStrings})),"failInfo"in this&&t.push(this.failInfo),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.tsp.PKIStatusInfo.prototype.toJSON=function(){var e={status:this.status};if("statusStrings"in this){e.statusStrings=new Array;for(var t=0;t<this.statusStrings.length;t++)e.statusStrings.push(this.statusStrings[t].toJSON())}return"failInfo"in this&&(e.failInfo=this.failInfo.toJSON()),e},e.org.pkijs.simpl.TSP_RESPONSE=function(){this.status=new e.org.pkijs.simpl.tsp.PKIStatusInfo,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TSP_RESPONSE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.status=arguments[0].status||new e.org.pkijs.simpl.tsp.PKIStatusInfo,"timeStampToken"in arguments[0]&&(this.timeStampToken=arguments[0].timeStampToken))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TSP_RESPONSE());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for TSP_RESPONSE");this.status=new e.org.pkijs.simpl.tsp.PKIStatusInfo({schema:n.result["TimeStampResp.status"]}),"TimeStampResp.timeStampToken"in n.result&&(this.timeStampToken=new e.org.pkijs.simpl.CMS_CONTENT_INFO({schema:n.result["TimeStampResp.timeStampToken"]}))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.toSchema=function(){var t=new Array;return t.push(this.status.toSchema()),"timeStampToken"in this&&t.push(this.timeStampToken.toSchema()),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.TSP_RESPONSE.prototype.verify=function(){var t=new Array,n=new ArrayBuffer(0);return"timeStampToken"in this==!1?Promise.reject("timeStampToken is absent in TSP response"):(arguments[0]instanceof Object&&("trusted_certs"in arguments[0]&&(t=arguments[0].trusted_certs),"data"in arguments[0]&&(n=arguments[0].data)),"1.2.840.113549.1.7.2"!==this.timeStampToken.contentType?Promise.reject("Wrong format of timeStampToken: "+this.timeStampToken.contentType):new e.org.pkijs.simpl.CMS_SIGNED_DATA({schema:this.timeStampToken.content}).verify({signer:0,trusted_certs:t,data:n}))},e.org.pkijs.simpl.TSP_RESPONSE.prototype.sign=function(t,n){return"timeStampToken"in this==!1?Promise.reject("timeStampToken is absent in TSP response"):"1.2.840.113549.1.7.2"!==this.timeStampToken.contentType?Promise.reject("Wrong format of timeStampToken: "+this.timeStampToken.contentType):new e.org.pkijs.simpl.CMS_SIGNED_DATA({schema:this.timeStampToken.content}).sign(t,0,n)},e.org.pkijs.simpl.TSP_RESPONSE.prototype.toJSON=function(){var e={status:this.status};return"timeStampToken"in this&&(e.timeStampToken=this.timeStampToken.toJSON()),e}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.schema)e.org.pkijs.schema={};else if("object"!=typeof e.org.pkijs.schema)throw new Error("Name org.pkijs.schema already exists and it's not an object but "+typeof e.org.pkijs.schema);if(void 0===e.org.pkijs.schema.x509)e.org.pkijs.schema.x509={};else if("object"!=typeof e.org.pkijs.schema.x509)throw new Error("Name org.pkijs.schema.x509 already exists and it's not an object but "+typeof e.org.pkijs.schema.x509);var t={};e.org.pkijs.schema.TIME=function(t,n){var i=e.org.pkijs.getNames(arguments[0]),o=n||!1;return new e.org.pkijs.asn1.CHOICE({optional:o,value:[new e.org.pkijs.asn1.UTCTIME({name:i.utcTimeName||""}),new e.org.pkijs.asn1.GENERALIZEDTIME({name:i.generalTimeName||""})]})},t.tbsCertificate=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"tbsCertificate",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.tbsCertificate_version||"tbsCertificate.version"})]}),new e.org.pkijs.asn1.INTEGER({name:t.tbsCertificate_serialNumber||"tbsCertificate.serialNumber"}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:"tbsCertificate.signature"}}),e.org.pkijs.schema.RDN(t.issuer||{names:{block_name:"tbsCertificate.issuer"}}),new e.org.pkijs.asn1.SEQUENCE({name:t.tbsCertificate_validity||"tbsCertificate.validity",value:[e.org.pkijs.schema.TIME(t.not_before||{names:{utcTimeName:"tbsCertificate.notBefore",generalTimeName:"tbsCertificate.notBefore"}}),e.org.pkijs.schema.TIME(t.not_after||{names:{utcTimeName:"tbsCertificate.notAfter",generalTimeName:"tbsCertificate.notAfter"}})]}),e.org.pkijs.schema.RDN(t.subject||{names:{block_name:"tbsCertificate.subject"}}),e.org.pkijs.schema.PUBLIC_KEY_INFO(t.subjectPublicKeyInfo||{names:{block_name:"tbsCertificate.subjectPublicKeyInfo"}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.tbsCertificate_issuerUniqueID||"tbsCertificate.issuerUniqueID",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.tbsCertificate_subjectUniqueID||"tbsCertificate.subjectUniqueID",optional:!0,id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[e.org.pkijs.schema.EXTENSIONS(t.extensions||{names:{block_name:"tbsCertificate.extensions"}})]})]})},e.org.pkijs.schema.CERT=function(){var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:n.block_name||"",value:[t.tbsCertificate(n.tbsCertificate),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(n.signatureAlgorithm||{names:{block_name:"signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:n.signatureValue||"signatureValue"})]})},t.tbsCertList=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"tbsCertList",value:[new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.tbsCertList_version||"tbsCertList.version",value:2}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.signature||{names:{block_name:"tbsCertList.signature"}}),e.org.pkijs.schema.RDN(t.issuer||{names:{block_name:"tbsCertList.issuer"}}),e.org.pkijs.schema.TIME(t.tbsCertList_thisUpdate||{names:{utcTimeName:"tbsCertList.thisUpdate",generalTimeName:"tbsCertList.thisUpdate"}}),e.org.pkijs.schema.TIME(t.tbsCertList_nextUpdate||{names:{utcTimeName:"tbsCertList.nextUpdate",generalTimeName:"tbsCertList.nextUpdate"}},!0),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.tbsCertList_revokedCertificates||"tbsCertList.revokedCertificates",value:new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER,e.org.pkijs.schema.TIME(),e.org.pkijs.schema.EXTENSIONS({},!0)]})})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[e.org.pkijs.schema.EXTENSIONS(t.crlExtensions||{names:{block_name:"tbsCertList.extensions"}})]})]})},e.org.pkijs.schema.CRL=function(){var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:n.block_name||"CertificateList",value:[t.tbsCertList(arguments[0]),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(n.signatureAlgorithm||{names:{block_name:"signatureAlgorithm"}}),new e.org.pkijs.asn1.BITSTRING({name:n.signatureValue||"signatureValue"})]})},t.CertificationRequestInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.CertificationRequestInfo||"CertificationRequestInfo",value:[new e.org.pkijs.asn1.INTEGER({name:t.CertificationRequestInfo_version||"CertificationRequestInfo.version"}),new e.org.pkijs.schema.RDN(t.subject||{names:{block_name:"CertificationRequestInfo.subject"}}),new e.org.pkijs.schema.PUBLIC_KEY_INFO({names:{block_name:"CertificationRequestInfo.subjectPublicKeyInfo"}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({optional:!0,name:t.CertificationRequestInfo_attributes||"CertificationRequestInfo.attributes",value:e.org.pkijs.schema.ATTRIBUTE(t.attributes||{})})]})]})},e.org.pkijs.schema.PKCS10=function(){var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({value:[t.CertificationRequestInfo(n.certificationRequestInfo||{}),new e.org.pkijs.asn1.SEQUENCE({name:n.signatureAlgorithm||"signatureAlgorithm",value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ANY({optional:!0})]}),new e.org.pkijs.asn1.BITSTRING({name:n.signatureValue||"signatureValue"})]})},e.org.pkijs.schema.PKCS8=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.privateKeyAlgorithm||""),new e.org.pkijs.asn1.OCTETSTRING({name:t.privateKey||""}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.attributes||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})]})},t.BuiltInStandardAttributes=function(t){void 0===t&&(t=!1);var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({optional:t,value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:2,tag_number:1},name:n.country_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:2,tag_number:2},name:n.administration_domain_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:0},name:n.network_address||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},name:n.terminal_identifier||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:2},name:n.private_domain_name||"",value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.NUMERICSTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:3},name:n.organization_name||"",is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,name:n.numeric_user_identifier||"",id_block:{tag_class:3,tag_number:4},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:n.personal_name||"",id_block:{tag_class:3,tag_number:5},value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:2},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:3},is_hex_only:!0})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,name:n.organizational_unit_names||"",id_block:{tag_class:3,tag_number:6},value:[new e.org.pkijs.asn1.REPEATED({value:new e.org.pkijs.asn1.PRINTABLESTRING})]})]})},t.BuiltInDomainDefinedAttributes=function(t){return void 0===t&&(t=!1),new e.org.pkijs.asn1.SEQUENCE({optional:t,value:[new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.PRINTABLESTRING]})},t.ExtensionAttributes=function(t){return void 0===t&&(t=!1),new e.org.pkijs.asn1.SET({optional:t,value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:0},is_hex_only:!0}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.ANY]})]})},e.org.pkijs.schema.GENERAL_NAME=function(){var n=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},name:n.block_name||"",value:[new e.org.pkijs.asn1.OID,new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.ANY]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:n.block_name||"",id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:n.block_name||"",id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},name:n.block_name||"",value:[t.BuiltInStandardAttributes(!1),t.BuiltInDomainDefinedAttributes(!0),t.ExtensionAttributes(!0)]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:4},name:n.block_name||"",value:[e.org.pkijs.schema.RDN(n.directoryName||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:5},name:n.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.TELETEXSTRING,new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.UNIVERSALSTRING,new e.org.pkijs.asn1.UTF8STRING,new e.org.pkijs.asn1.BMPSTRING]})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.TELETEXSTRING,new e.org.pkijs.asn1.PRINTABLESTRING,new e.org.pkijs.asn1.UNIVERSALSTRING,new e.org.pkijs.asn1.UTF8STRING,new e.org.pkijs.asn1.BMPSTRING]})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:n.block_name||"",id_block:{tag_class:3,tag_number:6}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:n.block_name||"",id_block:{tag_class:3,tag_number:7}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:n.block_name||"",id_block:{tag_class:3,tag_number:8}})]})},e.org.pkijs.schema.ALGORITHM_IDENTIFIER=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",optional:t.optional||!1,value:[new e.org.pkijs.asn1.OID({name:t.algorithmIdentifier||""}),new e.org.pkijs.asn1.ANY({name:t.algorithmParams||"",optional:!0})]})},e.org.pkijs.schema.x509.RSAPublicKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.modulus||""}),new e.org.pkijs.asn1.INTEGER({name:t.publicExponent||""})]})},e.org.pkijs.schema.x509.OtherPrimeInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.prime||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.coefficient||""})]})},e.org.pkijs.schema.x509.RSAPrivateKey=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.INTEGER({name:t.version||""}),new e.org.pkijs.asn1.INTEGER({name:t.modulus||""}),new e.org.pkijs.asn1.INTEGER({name:t.publicExponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.privateExponent||""}),new e.org.pkijs.asn1.INTEGER({name:t.prime1||""}),new e.org.pkijs.asn1.INTEGER({name:t.prime2||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent1||""}),new e.org.pkijs.asn1.INTEGER({name:t.exponent2||""}),new e.org.pkijs.asn1.INTEGER({name:t.coefficient||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.otherPrimeInfos||"",value:e.org.pkijs.schema.x509.OtherPrimeInfo(t.otherPrimeInfo||{})})]})]})},e.org.pkijs.schema.x509.RSASSA_PSS_params=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.hashAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},optional:!0,value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.maskGenAlgorithm||{})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},optional:!0,value:[new e.org.pkijs.asn1.INTEGER({name:t.saltLength||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},optional:!0,value:[new e.org.pkijs.asn1.INTEGER({name:t.trailerField||""})]})]})},e.org.pkijs.schema.PUBLIC_KEY_INFO=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.ALGORITHM_IDENTIFIER(t.algorithm||{}),new e.org.pkijs.asn1.BITSTRING({name:t.subjectPublicKey||""})]})},e.org.pkijs.schema.ATTRIBUTE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.type||""}),new e.org.pkijs.asn1.SET({name:t.set_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.values||"",value:new e.org.pkijs.asn1.ANY})]})]})},e.org.pkijs.schema.ATTR_TYPE_AND_VALUE=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.type||""}),new e.org.pkijs.asn1.ANY({name:t.value||""})]})},e.org.pkijs.schema.RDN=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.repeated_sequence||"",value:new e.org.pkijs.asn1.SET({value:[new e.org.pkijs.asn1.REPEATED({name:t.repeated_set||"",value:e.org.pkijs.schema.ATTR_TYPE_AND_VALUE(t.attr_type_and_value||{})})]})})]})},e.org.pkijs.schema.EXTENSION=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.extnID||""}),new e.org.pkijs.asn1.BOOLEAN({name:t.critical||"",optional:!0}),new e.org.pkijs.asn1.OCTETSTRING({name:t.extnValue||""})]})},e.org.pkijs.schema.EXTENSIONS=function(t,n){var i=e.org.pkijs.getNames(arguments[0]),o=n||!1;return new e.org.pkijs.asn1.SEQUENCE({optional:o,name:i.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:i.extensions||"",value:e.org.pkijs.schema.EXTENSION(i.extension||{})})]})},e.org.pkijs.schema.x509.AuthorityKeyIdentifier=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.keyIdentifier||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.authorityCertIssuer||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.authorityCertSerialNumber||"",optional:!0,id_block:{tag_class:3,tag_number:2}})]})},e.org.pkijs.schema.x509.PrivateKeyUsagePeriod=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.notBefore||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.notAfter||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.x509.AltName=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.altNames||"",value:e.org.pkijs.schema.GENERAL_NAME()})]})},e.org.pkijs.schema.x509.SubjectDirectoryAttributes=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.attributes||"",value:e.org.pkijs.schema.ATTRIBUTE()})]})},e.org.pkijs.schema.x509.GeneralSubtree=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[e.org.pkijs.schema.GENERAL_NAME(t.base||""),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({name:t.minimum||""})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.INTEGER({name:t.maximum||""})]})]})},e.org.pkijs.schema.x509.NameConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.permittedSubtrees||"",value:e.org.pkijs.schema.x509.GeneralSubtree()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.REPEATED({name:t.excludedSubtrees||"",value:e.org.pkijs.schema.x509.GeneralSubtree()})]})]})},e.org.pkijs.schema.x509.BasicConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.BOOLEAN({optional:!0,name:t.cA||""}),new e.org.pkijs.asn1.INTEGER({optional:!0,name:t.pathLenConstraint||""})]})},e.org.pkijs.schema.x509.PolicyQualifierInfo=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.policyQualifierId||""}),new e.org.pkijs.asn1.ANY({name:t.qualifier||""})]})},e.org.pkijs.schema.x509.PolicyInformation=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.policyIdentifier||""}),new e.org.pkijs.asn1.SEQUENCE({optional:!0,value:[new e.org.pkijs.asn1.REPEATED({name:t.policyQualifiers||"",value:e.org.pkijs.schema.x509.PolicyQualifierInfo()})]})]})},e.org.pkijs.schema.x509.CertificatePolicies=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.certificatePolicies||"",value:e.org.pkijs.schema.x509.PolicyInformation()})]})},e.org.pkijs.schema.x509.PolicyMapping=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.issuerDomainPolicy||""}),new e.org.pkijs.asn1.OID({name:t.subjectDomainPolicy||""})]})},e.org.pkijs.schema.x509.PolicyMappings=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.mappings||"",value:e.org.pkijs.schema.x509.PolicyMapping()})]})},e.org.pkijs.schema.x509.PolicyConstraints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.requireExplicitPolicy||"",optional:!0,id_block:{tag_class:3,tag_number:0}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.inhibitPolicyMapping||"",optional:!0,id_block:{tag_class:3,tag_number:1}})]})},e.org.pkijs.schema.x509.ExtKeyUsage=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.keyPurposes||"",value:new e.org.pkijs.asn1.OID})]})},e.org.pkijs.schema.x509.DistributionPoint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoint_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",optional:!0,id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.RDN().value_block.value})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.reasons||"",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.cRLIssuer||"",optional:!0,id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.REPEATED({name:t.cRLIssuer_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]})]})},e.org.pkijs.schema.x509.CRLDistributionPoints=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoints||"",value:e.org.pkijs.schema.x509.DistributionPoint()})]})},e.org.pkijs.schema.x509.AccessDescription=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.OID({name:t.accessMethod||""}),e.org.pkijs.schema.GENERAL_NAME(t.accessLocation||"")]})},e.org.pkijs.schema.x509.InfoAccess=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.REPEATED({name:t.accessDescriptions||"",value:e.org.pkijs.schema.x509.AccessDescription()})]})},e.org.pkijs.schema.x509.IssuingDistributionPoint=function(){var t=e.org.pkijs.getNames(arguments[0]);return new e.org.pkijs.asn1.SEQUENCE({name:t.block_name||"",value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.CHOICE({value:[new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.REPEATED({name:t.distributionPoint_names||"",value:e.org.pkijs.schema.GENERAL_NAME()})]}),new e.org.pkijs.asn1.ASN1_CONSTRUCTED({name:t.distributionPoint||"",id_block:{tag_class:3,tag_number:1},value:e.org.pkijs.schema.RDN().value_block.value})]})]}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsUserCerts||"",optional:!0,id_block:{tag_class:3,tag_number:1}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsCACerts||"",optional:!0,id_block:{tag_class:3,tag_number:2}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlySomeReasons||"",optional:!0,id_block:{tag_class:3,tag_number:3}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.indirectCRL||"",optional:!0,id_block:{tag_class:3,tag_number:4}}),new e.org.pkijs.asn1.ASN1_PRIMITIVE({name:t.onlyContainsAttributeCerts||"",optional:!0,id_block:{tag_class:3,tag_number:5}})]})}}("undefined"!=typeof exports?exports:window),function(e){if(void 0===e.org)e.org={};else if("object"!=typeof e.org)throw new Error("Name org already exists and it's not an object");if(void 0===e.org.pkijs)e.org.pkijs={};else if("object"!=typeof e.org.pkijs)throw new Error("Name org.pkijs already exists and it's not an object but "+typeof e.org.pkijs);if(void 0===e.org.pkijs.simpl)e.org.pkijs.simpl={};else if("object"!=typeof e.org.pkijs.simpl)throw new Error("Name org.pkijs.simpl already exists and it's not an object but "+typeof e.org.pkijs.simpl);if(void 0===e.org.pkijs.simpl.x509)e.org.pkijs.simpl.x509={};else if("object"!=typeof e.org.pkijs.simpl.x509)throw new Error("Name org.pkijs.simpl.x509 already exists and it's not an object but "+typeof e.org.pkijs.simpl.x509);e.org.pkijs.simpl.TIME=function(){this.type=0,this.value=new Date(0,0,0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.TIME.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||0,this.value=arguments[0].value||new Date(0,0,0))},e.org.pkijs.simpl.TIME.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.TIME({names:{utcTimeName:"utcTimeName",generalTimeName:"generalTimeName"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for TIME");"utcTimeName"in n.result&&(this.type=0,this.value=n.result.utcTimeName.toDate()),"generalTimeName"in n.result&&(this.type=1,this.value=n.result.generalTimeName.toDate())},e.org.pkijs.simpl.TIME.prototype.toSchema=function(){var t={};return 0===this.type&&(t=new e.org.pkijs.asn1.UTCTIME({value_date:this.value})),1===this.type&&(t=new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.value})),t},e.org.pkijs.simpl.TIME.prototype.toJSON=function(){return{type:this.type,value:this.value}},e.org.pkijs.simpl.GENERAL_NAME=function(){this.NameType=9,this.Name={},arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.GENERAL_NAME.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.NameType=arguments[0].NameType||9,this.Name=arguments[0].Name||{})},e.org.pkijs.simpl.GENERAL_NAME.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.GENERAL_NAME({names:{block_name:"block_name",otherName:"otherName",rfc822Name:"rfc822Name",dNSName:"dNSName",x400Address:"x400Address",directoryName:{names:{block_name:"directoryName"}},ediPartyName:"ediPartyName",uniformResourceIdentifier:"uniformResourceIdentifier",iPAddress:"iPAddress",registeredID:"registeredID"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for GENERAL_NAME");switch(this.NameType=n.result.block_name.id_block.tag_number,this.NameType){case 0:case 3:this.Name=n.result.block_name;break;case 1:case 2:case 6:(o=n.result.block_name).id_block.tag_class=1,o.id_block.tag_number=22;var i=o.toBER(!1);this.Name=e.org.pkijs.fromBER(i).result.value_block.value;break;case 4:this.Name=new e.org.pkijs.simpl.RDN({schema:n.result.directoryName});break;case 5:this.Name=n.result.ediPartyName;break;case 7:this.Name=new e.org.pkijs.asn1.OCTETSTRING({value_hex:n.result.block_name.value_block.value_hex});break;case 8:var o;(o=n.result.block_name).id_block.tag_class=1,o.id_block.tag_number=6;i=o.toBER(!1);this.Name=e.org.pkijs.fromBER(i).result.value_block.toString()}},e.org.pkijs.simpl.GENERAL_NAME.prototype.toSchema=function(t){switch(this.NameType){case 0:case 3:case 5:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:this.NameType},value:[this.Name]});case 1:case 2:case 6:return(n=new e.org.pkijs.asn1.IA5STRING({value:this.Name})).id_block.tag_class=3,n.id_block.tag_number=this.NameType,n;case 4:return new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:4},value:[this.Name.toSchema()]});case 7:return(n=this.Name).id_block.tag_class=3,n.id_block.tag_number=this.NameType,n;case 8:var n;return(n=new e.org.pkijs.asn1.OID({value:this.Name})).id_block.tag_class=3,n.id_block.tag_number=this.NameType,n;default:return e.org.pkijs.schema.GENERAL_NAME()}},e.org.pkijs.simpl.GENERAL_NAME.prototype.toJSON=function(){var e={NameType:this.NameType};return"string"==typeof this.Name?e.Name=this.Name:e.Name=this.Name.toJSON(),e},e.org.pkijs.simpl.GENERAL_NAMES=function(){this.names=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.GENERAL_NAMES.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.names=arguments[0].names||new Array)},e.org.pkijs.simpl.GENERAL_NAMES.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.REPEATED({name:"names",value:e.org.pkijs.schema.GENERAL_NAME()})]}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for GENERAL_NAMES");for(var i=n.result.names,o=0;o<i.length;o++)this.names.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:i[o]}))},e.org.pkijs.simpl.GENERAL_NAMES.prototype.toSchema=function(t){for(var n=new Array,i=0;i<this.names.length;i++)n.push(this.names[i].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:n})},e.org.pkijs.simpl.GENERAL_NAMES.prototype.toJSON=function(){for(var e=new Array,t=0;t<this.names.length;t++)e.push(this.names[t].toJSON());return{names:e}},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER=function(){this.algorithm_id="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm_id=arguments[0].algorithm_id||"","algorithm_params"in arguments[0]&&(this.algorithm_params=arguments[0].algorithm_params))},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ALGORITHM_IDENTIFIER({names:{algorithmIdentifier:"algorithm",algorithmParams:"params"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ALGORITHM_IDENTIFIER");this.algorithm_id=n.result.algorithm.value_block.toString(),"params"in n.result&&(this.algorithm_params=n.result.params)},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.algorithm_id})),"algorithm_params"in this&&t.push(this.algorithm_params),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.toJSON=function(){var e={algorithm_id:this.algorithm_id};return"algorithm_params"in this&&(e.algorithm_params=this.algorithm_params.toJSON()),e},e.org.pkijs.simpl.ALGORITHM_IDENTIFIER.prototype.isEqual=function(t){return t instanceof e.org.pkijs.simpl.ALGORITHM_IDENTIFIER!=0&&(this.algorithm_id==t.algorithm_id&&("algorithm_params"in this?"algorithm_params"in t&&JSON.stringify(this.algorithm_params)==JSON.stringify(t.algorithm_params):!("algorithm_params"in t)))},e.org.pkijs.simpl.x509.RSAPublicKey=function(){this.modulus=new e.org.pkijs.asn1.INTEGER,this.publicExponent=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSAPublicKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.modulus=arguments[0].modulus||new e.org.pkijs.asn1.INTEGER,this.publicExponent=arguments[0].publicExponent||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSAPublicKey({names:{modulus:"modulus",publicExponent:"publicExponent"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RSAPublicKey");this.modulus=n.result.modulus,this.publicExponent=n.result.publicExponent},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.modulus,this.publicExponent]})},e.org.pkijs.simpl.x509.RSAPublicKey.prototype.toJSON=function(){return{modulus:this.modulus.toJSON(),publicExponent:this.publicExponent.toJSON()}},e.org.pkijs.simpl.x509.OtherPrimeInfo=function(){this.prime=new e.org.pkijs.asn1.INTEGER,this.exponent=new e.org.pkijs.asn1.INTEGER,this.coefficient=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.prime=arguments[0].prime||new e.org.pkijs.asn1.INTEGER,this.exponent=arguments[0].exponent||new e.org.pkijs.asn1.INTEGER,this.coefficient=arguments[0].coefficient||new e.org.pkijs.asn1.INTEGER)},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.OtherPrimeInfo({names:{prime:"prime",exponent:"exponent",coefficient:"coefficient"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for OtherPrimeInfo");this.prime=n.result.prime,this.exponent=n.result.exponent,this.coefficient=n.result.coefficient},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.prime,this.exponent,this.coefficient]})},e.org.pkijs.simpl.x509.OtherPrimeInfo.prototype.toJSON=function(){return{prime:this.prime.toJSON(),exponent:this.exponent.toJSON(),coefficient:this.coefficient.toJSON()}},e.org.pkijs.simpl.x509.RSAPrivateKey=function(){this.version=0,this.modulus=new e.org.pkijs.asn1.INTEGER,this.publicExponent=new e.org.pkijs.asn1.INTEGER,this.privateExponent=new e.org.pkijs.asn1.INTEGER,this.prime1=new e.org.pkijs.asn1.INTEGER,this.prime2=new e.org.pkijs.asn1.INTEGER,this.exponent1=new e.org.pkijs.asn1.INTEGER,this.exponent2=new e.org.pkijs.asn1.INTEGER,this.coefficient=new e.org.pkijs.asn1.INTEGER,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.modulus=arguments[0].modulus||new e.org.pkijs.asn1.INTEGER,this.publicExponent=arguments[0].publicExponent||new e.org.pkijs.asn1.INTEGER,this.privateExponent=arguments[0].privateExponent||new e.org.pkijs.asn1.INTEGER,this.prime1=arguments[0].prime1||new e.org.pkijs.asn1.INTEGER,this.prime2=arguments[0].prime2||new e.org.pkijs.asn1.INTEGER,this.exponent1=arguments[0].exponent1||new e.org.pkijs.asn1.INTEGER,this.exponent2=arguments[0].exponent2||new e.org.pkijs.asn1.INTEGER,this.coefficient=arguments[0].coefficient||new e.org.pkijs.asn1.INTEGER,"otherPrimeInfos"in arguments[0]&&(this.otherPrimeInfos=arguments[0].otherPrimeInfos||new Array))},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSAPrivateKey({names:{version:"version",modulus:"modulus",publicExponent:"publicExponent",privateExponent:"privateExponent",prime1:"prime1",prime2:"prime2",exponent1:"exponent1",exponent2:"exponent2",coefficient:"coefficient",otherPrimeInfos:"otherPrimeInfos"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RSAPrivateKey");if(this.version=n.result.version.value_block.value_dec,this.modulus=n.result.modulus,this.publicExponent=n.result.publicExponent,this.privateExponent=n.result.privateExponent,this.prime1=n.result.prime1,this.prime2=n.result.prime2,this.exponent1=n.result.exponent1,this.exponent2=n.result.exponent2,this.coefficient=n.result.coefficient,"otherPrimeInfos"in n.result)for(var i=n.result.otherPrimeInfos,o=0;o<i.length;o++)this.otherPrimeInfos.push(new e.org.pkijs.simpl.x509.OtherPrimeInfo({schema:i[o]}))},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.modulus),t.push(this.publicExponent),t.push(this.privateExponent),t.push(this.prime1),t.push(this.prime2),t.push(this.exponent1),t.push(this.exponent2),t.push(this.coefficient),"otherPrimeInfos"in this){for(var n=new Array,i=0;i<this.otherPrimeInfos.length;i++)n.push(this.otherPrimeInfos[i].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.RSAPrivateKey.prototype.toJSON=function(){var e={version:this.version,modulus:this.modulus.toJSON(),publicExponent:this.publicExponent.toJSON(),privateExponent:this.privateExponent.toJSON(),prime1:this.prime1.toJSON(),prime2:this.prime2.toJSON(),exponent1:this.exponent1.toJSON(),exponent2:this.exponent2.toJSON(),coefficient:this.coefficient.toJSON()};if("otherPrimeInfos"in this){e.otherPrimeInfos=new Array;for(var t=0;t<this.otherPrimeInfos.length;t++)e.otherPrimeInfos.push(this.otherPrimeInfos[t].toJSON())}return e},e.org.pkijs.simpl.x509.RSASSA_PSS_params=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("hashAlgorithm"in arguments[0]&&(this.hashAlgorithm=arguments[0].hashAlgorithm),"maskGenAlgorithm"in arguments[0]&&(this.maskGenAlgorithm=arguments[0].maskGenAlgorithm),"saltLength"in arguments[0]&&(this.saltLength=arguments[0].saltLength),"trailerField"in arguments[0]&&(this.trailerField=arguments[0].trailerField))},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.RSASSA_PSS_params({names:{hashAlgorithm:{names:{block_name:"hashAlgorithm"}},maskGenAlgorithm:{names:{block_name:"maskGenAlgorithm"}},saltLength:"saltLength",trailerField:"trailerField"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RSASSA_PSS_params");"hashAlgorithm"in n.result&&(this.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.hashAlgorithm})),"maskGenAlgorithm"in n.result&&(this.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.maskGenAlgorithm})),"saltLength"in n.result&&(this.saltLength=n.result.saltLength.value_block.value_dec),"trailerField"in n.result&&(this.trailerField=n.result.trailerField.value_block.value_dec)},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.toSchema=function(){var t=new Array;return"hashAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[this.hashAlgorithm.toSchema()]})),"maskGenAlgorithm"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.maskGenAlgorithm.toSchema()]})),"saltLength"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2},value:[new e.org.pkijs.asn1.INTEGER({value:this.saltLength})]})),"trailerField"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.INTEGER({value:this.trailerField})]})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.RSASSA_PSS_params.prototype.toJSON=function(){var e={};return"hashAlgorithm"in this&&(e.hashAlgorithm=this.hashAlgorithm.toJSON()),"maskGenAlgorithm"in this&&(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),"saltLength"in this&&(e.saltLength=this.saltLength),"trailerField"in this&&(e.trailerField=this.trailerField),e},e.org.pkijs.simpl.PUBLIC_KEY_INFO=function(){this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.subjectPublicKey=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.algorithm=arguments[0].algorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.subjectPublicKey=arguments[0].subjectPublicKey||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PUBLIC_KEY_INFO({names:{algorithm:{names:{block_name:"algorithm"}},subjectPublicKey:"subjectPublicKey"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PUBLIC_KEY_INFO");this.algorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.algorithm}),this.subjectPublicKey=n.result.subjectPublicKey},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[this.algorithm.toSchema(),this.subjectPublicKey]})},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.importKey=function(t){var n=Promise.resolve(),i=this;if(void 0===t)return Promise.reject("Need to provide publicKey input parameter");var o=e.org.pkijs.getCrypto();return void 0===o?Promise.reject("Unable to create WebCrypto object"):n=(n=n.then((function(){return o.exportKey("spki",t)}))).then((function(t){var n=e.org.pkijs.fromBER(t);try{e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.fromSchema.call(i,n.result)}catch(e){return Promise.reject("Error during initializing object from schema")}}),(function(e){return Promise.reject("Error during exporting public key: "+e)}))},e.org.pkijs.simpl.PUBLIC_KEY_INFO.prototype.toJSON=function(){return{algorithm:this.algorithm.toJSON(),subjectPublicKey:this.subjectPublicKey.toJSON()}},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE=function(){this.type="",this.value={},arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||"",this.value=arguments[0].value||{})},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ATTR_TYPE_AND_VALUE({names:{type:"type",value:"typeValue"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ATTR_TYPE_AND_VALUE");this.type=n.result.type.value_block.toString(),this.value=n.result.typeValue},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.type}),this.value]})},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.isEqual=function(){if(arguments[0]instanceof e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE){if(this.type!==arguments[0].type)return!1;if(this.value instanceof e.org.pkijs.asn1.UTF8STRING&&arguments[0].value instanceof e.org.pkijs.asn1.UTF8STRING||this.value instanceof e.org.pkijs.asn1.BMPSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.BMPSTRING||this.value instanceof e.org.pkijs.asn1.UNIVERSALSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.UNIVERSALSTRING||this.value instanceof e.org.pkijs.asn1.NUMERICSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.NUMERICSTRING||this.value instanceof e.org.pkijs.asn1.PRINTABLESTRING&&arguments[0].value instanceof e.org.pkijs.asn1.PRINTABLESTRING||this.value instanceof e.org.pkijs.asn1.TELETEXSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.TELETEXSTRING||this.value instanceof e.org.pkijs.asn1.VIDEOTEXSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.VIDEOTEXSTRING||this.value instanceof e.org.pkijs.asn1.IA5STRING&&arguments[0].value instanceof e.org.pkijs.asn1.IA5STRING||this.value instanceof e.org.pkijs.asn1.GRAPHICSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.GRAPHICSTRING||this.value instanceof e.org.pkijs.asn1.VISIBLESTRING&&arguments[0].value instanceof e.org.pkijs.asn1.VISIBLESTRING||this.value instanceof e.org.pkijs.asn1.GENERALSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.GENERALSTRING||this.value instanceof e.org.pkijs.asn1.CHARACTERSTRING&&arguments[0].value instanceof e.org.pkijs.asn1.CHARACTERSTRING){var t=e.org.pkijs.stringPrep(this.value.value_block.value),n=e.org.pkijs.stringPrep(arguments[0].value.value_block.value);if(0!==t.localeCompare(n))return!1}else if(!1===e.org.pkijs.isEqual_buffer(this.value.value_before_decode,arguments[0].value.value_before_decode))return!1;return!0}return!1},e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE.prototype.toJSON=function(){var e={type:this.type};return 0!==Object.keys(this.value).length?e.value=this.value.toJSON():e.value=this.value,e},e.org.pkijs.simpl.RDN=function(){this.types_and_values=new Array,this.value_before_decode=new ArrayBuffer(0),arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.RDN.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.types_and_values=arguments[0].types_and_values||new Array,this.value_before_decode=arguments[0].value_before_decode||new ArrayBuffer(0))},e.org.pkijs.simpl.RDN.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.RDN({names:{block_name:"RDN",repeated_set:"types_and_values"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for RDN");if("types_and_values"in n.result)for(var i=n.result.types_and_values,o=0;o<i.length;o++)this.types_and_values.push(new e.org.pkijs.simpl.ATTR_TYPE_AND_VALUE({schema:i[o]}));this.value_before_decode=n.result.RDN.value_before_decode},e.org.pkijs.simpl.RDN.prototype.toSchema=function(){if(0===this.value_before_decode.byteLength){for(var t=new Array,n=0;n<this.types_and_values.length;n++)t.push(this.types_and_values[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.SET({value:t})]})}return e.org.pkijs.fromBER(this.value_before_decode).result},e.org.pkijs.simpl.RDN.prototype.isEqual=function(){if(arguments[0]instanceof e.org.pkijs.simpl.RDN){if(this.types_and_values.length!=arguments[0].types_and_values.length)return!1;for(var t=0;t<this.types_and_values.length;t++)if(!1===this.types_and_values[t].isEqual(arguments[0].types_and_values[t]))return!1;return!0}return arguments[0]instanceof ArrayBuffer&&e.org.pkijs.isEqual_buffer(this.value_before_decode,arguments[0])},e.org.pkijs.simpl.RDN.prototype.toJSON=function(){for(var e={types_and_values:new Array},t=0;t<this.types_and_values.length;t++)e.types_and_values.push(this.types_and_values[t].toJSON());return e},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("keyIdentifier"in arguments[0]&&(this.keyIdentifier=arguments[0].keyIdentifier),"authorityCertIssuer"in arguments[0]&&(this.authorityCertIssuer=arguments[0].authorityCertIssuer),"authorityCertSerialNumber"in arguments[0]&&(this.authorityCertSerialNumber=arguments[0].authorityCertSerialNumber))},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AuthorityKeyIdentifier({names:{keyIdentifier:"keyIdentifier",authorityCertIssuer:"authorityCertIssuer",authorityCertSerialNumber:"authorityCertSerialNumber"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for AuthorityKeyIdentifier");if("keyIdentifier"in n.result&&(n.result.keyIdentifier.id_block.tag_class=1,n.result.keyIdentifier.id_block.tag_number=4,this.keyIdentifier=n.result.keyIdentifier),"authorityCertIssuer"in n.result){this.authorityCertIssuer=new Array;for(var i=n.result.authorityCertIssuer,o=0;o<i.length;o++)this.authorityCertIssuer.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:i[o]}))}"authorityCertSerialNumber"in n.result&&(n.result.authorityCertSerialNumber.id_block.tag_class=1,n.result.authorityCertSerialNumber.id_block.tag_number=2,this.authorityCertSerialNumber=n.result.authorityCertSerialNumber)},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.toSchema=function(){var t,n=new Array;"keyIdentifier"in this&&((t=this.keyIdentifier).id_block.tag_class=3,t.id_block.tag_number=0,n.push(t));if("authorityCertIssuer"in this){for(var i=new Array,o=0;o<this.authorityCertIssuer.length;o++)i.push(this.authorityCertIssuer[o].toSchema());n.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.SEQUENCE({value:i})]}))}"authorityCertSerialNumber"in this&&((t=this.authorityCertSerialNumber).id_block.tag_class=3,t.id_block.tag_number=2,n.push(t));return new e.org.pkijs.asn1.SEQUENCE({value:n})},e.org.pkijs.simpl.x509.AuthorityKeyIdentifier.prototype.toJSON=function(){var e={};if("keyIdentifier"in this&&(e.keyIdentifier=this.keyIdentifier.toJSON()),"authorityCertIssuer"in this){e.authorityCertIssuer=new Array;for(var t=0;t<this.authorityCertIssuer.length;t++)e.authorityCertIssuer.push(this.authorityCertIssuer[t].toJSON())}return"authorityCertSerialNumber"in this&&(e.authorityCertSerialNumber=this.authorityCertSerialNumber.toJSON()),e},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("notBefore"in arguments[0]&&(this.notBefore=arguments[0].notBefore),"notAfter"in arguments[0]&&(this.notAfter=arguments[0].notAfter))},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PrivateKeyUsagePeriod({names:{notBefore:"notBefore",notAfter:"notAfter"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PrivateKeyUsagePeriod");if("notBefore"in n.result){var i=new e.org.pkijs.asn1.GENERALIZEDTIME;i.fromBuffer(n.result.notBefore.value_block.value_hex),this.notBefore=i.toDate()}if("notAfter"in n.result){var o=new e.org.pkijs.asn1.GENERALIZEDTIME({value_hex:n.result.notAfter.value_block.value_hex});o.fromBuffer(n.result.notAfter.value_block.value_hex),this.notAfter=o.toDate()}},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.toSchema=function(){var t=new Array;return"notBefore"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:0},value_hex:new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.notBefore}).value_block.value_hex})),"notAfter"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:new e.org.pkijs.asn1.GENERALIZEDTIME({value_date:this.notAfter}).value_block.value_hex})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod.prototype.toJSON=function(){var e={};return"notBefore"in this&&(e.notBefore=this.notBefore),"notAfter"in this&&(e.notAfter=this.notAfter),e},e.org.pkijs.simpl.x509.AltName=function(){this.altNames=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AltName.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.altNames=arguments[0].altNames||new Array)},e.org.pkijs.simpl.x509.AltName.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AltName({names:{altNames:"altNames"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for AltName");if("altNames"in n.result)for(var i=n.result.altNames,o=0;o<i.length;o++)this.altNames.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:i[o]}))},e.org.pkijs.simpl.x509.AltName.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.altNames.length;n++)t.push(this.altNames[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.AltName.prototype.toJSON=function(){for(var e={altNames:new Array},t=0;t<this.altNames.length;t++)e.altNames.push(this.altNames[t].toJSON());return e},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes=function(){this.attributes=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.attributes=arguments[0].attributes||new Array)},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.SubjectDirectoryAttributes({names:{attributes:"attributes"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for SubjectDirectoryAttributes");for(var i=n.result.attributes,o=0;o<i.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:i[o]}))},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.attributes.length;n++)t.push(this.attributes[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.SubjectDirectoryAttributes.prototype.toJSON=function(){for(var e={attributes:new Array},t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON());return e},e.org.pkijs.simpl.x509.PolicyMapping=function(){this.issuerDomainPolicy="",this.subjectDomainPolicy="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyMapping.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.issuerDomainPolicy=arguments[0].issuerDomainPolicy||"",this.subjectDomainPolicy=arguments[0].subjectDomainPolicy||"")},e.org.pkijs.simpl.x509.PolicyMapping.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyMapping({names:{issuerDomainPolicy:"issuerDomainPolicy",subjectDomainPolicy:"subjectDomainPolicy"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PolicyMapping");this.issuerDomainPolicy=n.result.issuerDomainPolicy.value_block.toString(),this.subjectDomainPolicy=n.result.subjectDomainPolicy.value_block.toString()},e.org.pkijs.simpl.x509.PolicyMapping.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.issuerDomainPolicy}),new e.org.pkijs.asn1.OID({value:this.subjectDomainPolicy})]})},e.org.pkijs.simpl.x509.PolicyMapping.prototype.toJSON=function(){return{issuerDomainPolicy:this.issuerDomainPolicy,subjectDomainPolicy:this.subjectDomainPolicy}},e.org.pkijs.simpl.x509.PolicyMappings=function(){this.mappings=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyMappings.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.mappings=arguments[0].mappings||new Array)},e.org.pkijs.simpl.x509.PolicyMappings.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyMappings({names:{mappings:"mappings"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PolicyMappings");for(var i=n.result.mappings,o=0;o<i.length;o++)this.mappings.push(new e.org.pkijs.simpl.x509.PolicyMapping({schema:i[o]}))},e.org.pkijs.simpl.x509.PolicyMappings.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.mappings.length;n++)t.push(this.mappings[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyMappings.prototype.toJSON=function(){for(var e={mappings:new Array},t=0;t<this.mappings.length;t++)e.mappings.push(this.mappings[t].toJSON());return e},e.org.pkijs.simpl.x509.GeneralSubtree=function(){this.base=new e.org.pkijs.simpl.GENERAL_NAME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.GeneralSubtree.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.base=arguments[0].base||new e.org.pkijs.simpl.GENERAL_NAME,"minimum"in arguments[0]&&(this.minimum=arguments[0].minimum),"maximum"in arguments[0]&&(this.maximum=arguments[0].maximum))},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.GeneralSubtree({names:{base:{names:{block_name:"base"}},minimum:"minimum",maximum:"maximum"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ");this.base=new e.org.pkijs.simpl.GENERAL_NAME({schema:n.result.base}),"minimum"in n.result&&(n.result.minimum.value_block.is_hex_only?this.minimum=n.result.minimum:this.minimum=n.result.minimum.value_block.value_dec),"maximum"in n.result&&(n.result.maximum.value_block.is_hex_only?this.maximum=n.result.maximum:this.maximum=n.result.maximum.value_block.value_dec)},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.toSchema=function(){var t=new Array;if(t.push(this.base.toSchema()),"minimum"in this){var n=0;n=this.minimum instanceof e.org.pkijs.asn1.INTEGER?this.minimum:new e.org.pkijs.asn1.INTEGER({value:this.minimum}),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[n]}))}if("maximum"in this){var i=0;i=this.maximum instanceof e.org.pkijs.asn1.INTEGER?this.maximum:new e.org.pkijs.asn1.INTEGER({value:this.maximum}),t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[i]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.GeneralSubtree.prototype.toJSON=function(){var e={base:this.base.toJSON()};return"minimum"in this&&("number"==typeof this.minimum?e.minimum=this.minimum:e.minimum=this.minimum.toJSON()),"maximum"in this&&("number"==typeof this.maximum?e.maximum=this.maximum:e.maximum=this.maximum.toJSON()),e},e.org.pkijs.simpl.x509.NameConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.NameConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("permittedSubtrees"in arguments[0]&&(this.permittedSubtrees=arguments[0].permittedSubtrees),"excludedSubtrees"in arguments[0]&&(this.excludedSubtrees=arguments[0].excludedSubtrees))},e.org.pkijs.simpl.x509.NameConstraints.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.NameConstraints({names:{permittedSubtrees:"permittedSubtrees",excludedSubtrees:"excludedSubtrees"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for NameConstraints");if("permittedSubtrees"in n.result){this.permittedSubtrees=new Array;for(var i=n.result.permittedSubtrees,o=0;o<i.length;o++)this.permittedSubtrees.push(new e.org.pkijs.simpl.x509.GeneralSubtree({schema:i[o]}))}if("excludedSubtrees"in n.result){this.excludedSubtrees=new Array;var r=n.result.excludedSubtrees;for(o=0;o<r.length;o++)this.excludedSubtrees.push(new e.org.pkijs.simpl.x509.GeneralSubtree({schema:r[o]}))}},e.org.pkijs.simpl.x509.NameConstraints.prototype.toSchema=function(){var t=new Array;if("permittedSubtrees"in this){for(var n=new Array,i=0;i<this.permittedSubtrees.length;i++)n.push(this.permittedSubtrees[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}if("excludedSubtrees"in this){var o=new Array;for(i=0;i<this.excludedSubtrees.length;i++)o.push(this.excludedSubtrees[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:1},value:[new e.org.pkijs.asn1.SEQUENCE({value:o})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.NameConstraints.prototype.toJSON=function(){var e={};if("permittedSubtrees"in this){e.permittedSubtrees=new Array;for(var t=0;t<this.permittedSubtrees.length;t++)e.permittedSubtrees.push(this.permittedSubtrees[t].toJSON())}if("excludedSubtrees"in this){e.excludedSubtrees=new Array;for(t=0;t<this.excludedSubtrees.length;t++)e.excludedSubtrees.push(this.excludedSubtrees[t].toJSON())}return e},e.org.pkijs.simpl.x509.BasicConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.BasicConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("cA"in arguments[0]&&(this.cA=arguments[0].cA),"pathLenConstraint"in arguments[0]&&(this.pathLenConstraint=arguments[0].pathLenConstraint))},e.org.pkijs.simpl.x509.BasicConstraints.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.BasicConstraints({names:{cA:"cA",pathLenConstraint:"pathLenConstraint"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for BasicConstraints");"cA"in n.result&&(this.cA=n.result.cA.value_block.value),"pathLenConstraint"in n.result&&(this.pathLenConstraint=n.result.pathLenConstraint.value_block.value_dec)},e.org.pkijs.simpl.x509.BasicConstraints.prototype.toSchema=function(){var t=new Array;return"cA"in this&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.cA})),"pathLenConstraint"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.pathLenConstraint})),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.BasicConstraints.prototype.toJSON=function(){var e={};return"cA"in this&&(e.cA=this.cA),"pathLenConstraint"in this&&(e.pathLenConstraint=this.pathLenConstraint),e},e.org.pkijs.simpl.x509.PolicyQualifierInfo=function(){this.policyQualifierId="",this.qualifier=new e.org.pkijs.asn1.ANY,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.policyQualifierId=arguments[0].policyQualifierId||"",this.qualifier=arguments[0].qualifier||new e.org.pkijs.asn1.ANY)},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyQualifierInfo({names:{policyQualifierId:"policyQualifierId",qualifier:"qualifier"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PolicyQualifierInfo");this.policyQualifierId=n.result.policyQualifierId.value_block.toString(),this.qualifier=n.result.qualifier},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.policyQualifierId}),this.qualifier]})},e.org.pkijs.simpl.x509.PolicyQualifierInfo.prototype.toJSON=function(){return{policyQualifierId:this.policyQualifierId,qualifier:this.qualifier.toJSON()}},e.org.pkijs.simpl.x509.PolicyInformation=function(){this.policyIdentifier="",arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyInformation.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.policyIdentifier=arguments[0].policyIdentifier||"","policyQualifiers"in arguments[0]&&(this.policyQualifiers=arguments[0].policyQualifiers))},e.org.pkijs.simpl.x509.PolicyInformation.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyInformation({names:{policyIdentifier:"policyIdentifier",policyQualifiers:"policyQualifiers"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PolicyInformation");if(this.policyIdentifier=n.result.policyIdentifier.value_block.toString(),"policyQualifiers"in n.result){this.policyQualifiers=new Array;for(var i=n.result.policyQualifiers,o=0;o<i.length;o++)this.policyQualifiers.push(new e.org.pkijs.simpl.x509.PolicyQualifierInfo({schema:i[o]}))}},e.org.pkijs.simpl.x509.PolicyInformation.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.OID({value:this.policyIdentifier})),"policyQualifiers"in this){for(var n=new Array,i=0;i<this.policyQualifiers.length;i++)n.push(this.policyQualifiers[i].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyInformation.prototype.toJSON=function(){var e={policyIdentifier:this.policyIdentifier};if("policyQualifiers"in this){e.policyQualifiers=new Array;for(var t=0;t<this.policyQualifiers.length;t++)e.policyQualifiers.push(this.policyQualifiers[t].toJSON())}return e},e.org.pkijs.simpl.x509.CertificatePolicies=function(){this.certificatePolicies=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.CertificatePolicies.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.certificatePolicies=arguments[0].certificatePolicies||new Array)},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.CertificatePolicies({names:{certificatePolicies:"certificatePolicies"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CertificatePolicies");for(var i=n.result.certificatePolicies,o=0;o<i.length;o++)this.certificatePolicies.push(new e.org.pkijs.simpl.x509.PolicyInformation({schema:i[o]}))},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.certificatePolicies.length;n++)t.push(this.certificatePolicies[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.CertificatePolicies.prototype.toJSON=function(){for(var e={certificatePolicies:new Array},t=0;t<this.certificatePolicies.length;t++)e.certificatePolicies.push(this.certificatePolicies[t].toJSON());return e},e.org.pkijs.simpl.x509.PolicyConstraints=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.PolicyConstraints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.requireExplicitPolicy=arguments[0].requireExplicitPolicy||0,this.inhibitPolicyMapping=arguments[0].inhibitPolicyMapping||0)},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.PolicyConstraints({names:{requireExplicitPolicy:"requireExplicitPolicy",inhibitPolicyMapping:"inhibitPolicyMapping"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PolicyConstraints");if("requireExplicitPolicy"in n.result){var i=n.result.requireExplicitPolicy;i.id_block.tag_class=1,i.id_block.tag_number=2;var o=i.toBER(!1),r=e.org.pkijs.fromBER(o);this.requireExplicitPolicy=r.result.value_block.value_dec}if("inhibitPolicyMapping"in n.result){var a=n.result.inhibitPolicyMapping;a.id_block.tag_class=1,a.id_block.tag_number=2;var s=a.toBER(!1),l=e.org.pkijs.fromBER(s);this.inhibitPolicyMapping=l.result.value_block.value_dec}},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.toSchema=function(){var t=new Array;if("requireExplicitPolicy"in this){var n=new e.org.pkijs.asn1.INTEGER({value:this.requireExplicitPolicy});n.id_block.tag_class=3,n.id_block.tag_number=0,t.push(n)}if("inhibitPolicyMapping"in this){var i=new e.org.pkijs.asn1.INTEGER({value:this.inhibitPolicyMapping});i.id_block.tag_class=3,i.id_block.tag_number=1,t.push(i)}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.PolicyConstraints.prototype.toJSON=function(){var e={};return"requireExplicitPolicy"in this&&(e.requireExplicitPolicy=this.requireExplicitPolicy),"inhibitPolicyMapping"in this&&(e.inhibitPolicyMapping=this.inhibitPolicyMapping),e},e.org.pkijs.simpl.x509.ExtKeyUsage=function(){this.keyPurposes=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.keyPurposes=arguments[0].keyPurposes||new Array)},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.ExtKeyUsage({names:{keyPurposes:"keyPurposes"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ExtKeyUsage");n.result.keyPurposes},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.keyPurposes.length;n++)t.push(new e.org.pkijs.asn1.OID({value:this.keyPurposes[n]}));return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.ExtKeyUsage.prototype.toJSON=function(){for(var e={keyPurposes:new Array},t=0;t<this.keyPurposes.length;t++)e.keyPurposes.push(this.keyPurposes[t]);return e},e.org.pkijs.simpl.x509.DistributionPoint=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.DistributionPoint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("distributionPoint"in arguments[0]&&(this.distributionPoint=arguments[0].distributionPoint),"reasons"in arguments[0]&&(this.reasons=arguments[0].reasons),"cRLIssuer"in arguments[0]&&(this.cRLIssuer=arguments[0].cRLIssuer))},e.org.pkijs.simpl.x509.DistributionPoint.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.DistributionPoint({names:{distributionPoint:"distributionPoint",distributionPoint_names:"distributionPoint_names",reasons:"reasons",cRLIssuer:"cRLIssuer",cRLIssuer_names:"cRLIssuer_names"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for DistributionPoint");if("distributionPoint"in n.result){if(0==n.result.distributionPoint.id_block.tag_number){this.distributionPoint=new Array;for(var i=n.result.distributionPoint_names,o=0;o<i.length;o++)this.distributionPoint.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:i[o]}))}1==n.result.distributionPoint.id_block.tag_number&&(n.result.distributionPoint.id_block.tag_class=1,n.result.distributionPoint.id_block.tag_number=16,this.distributionPoint=new e.org.pkijs.simpl.RDN({schema:n.result.distributionPoint}))}if("reasons"in n.result&&(this.reasons=new e.org.pkijs.asn1.BITSTRING({value_hex:n.result.reasons.value_block.value_hex})),"cRLIssuer"in n.result){this.cRLIssuer=new Array;var r=n.result.cRLIssuer_names;for(o=0;o<r;o++)this.cRLIssuer.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:r[o]}))}},e.org.pkijs.simpl.x509.DistributionPoint.prototype.toSchema=function(){var t=new Array;if("distributionPoint"in this){var n;if(this.distributionPoint instanceof Array){for(var i=new Array,o=0;o<this.distributionPoint.length;o++)i.push(this.distributionPoint[o].toSchema());n=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:i})}else n=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:1},value:[this.distributionPoint.toSchema()]});t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:[n]}))}if("reasons"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:this.reasons.value_block.value_hex})),"cRLIssuer"in this){var r=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:2}});for(o=0;o<this.cRLIssuer.length;o++)r.value_block.value.push(this.cRLIssuer[o].toSchema());t.push(r)}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.DistributionPoint.prototype.toJSON=function(){var e={};if("distributionPoint"in this)if(this.distributionPoint instanceof Array){e.distributionPoint=new Array;for(var t=0;t<this.distributionPoint.length;t++)e.distributionPoint.push(this.distributionPoint[t].toJSON())}else e.distributionPoint=this.distributionPoint.toJSON();if("reasons"in this&&(e.reasons=this.reasons.toJSON()),"cRLIssuer"in this){e.cRLIssuer=new Array;for(t=0;t<this.cRLIssuer.length;t++)e.cRLIssuer.push(this.cRLIssuer[t].toJSON())}return e},e.org.pkijs.simpl.x509.CRLDistributionPoints=function(){this.distributionPoints=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.distributionPoints=arguments[0].distributionPoints||new Array)},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.CRLDistributionPoints({names:{distributionPoints:"distributionPoints"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CRLDistributionPoints");for(var i=n.result.distributionPoints,o=0;o<i.length;o++)this.distributionPoints.push(new e.org.pkijs.simpl.x509.DistributionPoint({schema:i[o]}))},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.distributionPoints.length;n++)t.push(this.distributionPoints[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.CRLDistributionPoints.prototype.toJSON=function(){for(var e={distributionPoints:new Array},t=0;t<this.distributionPoints.length;t++)e.distributionPoints.push(this.distributionPoints[t].toJSON());return e},e.org.pkijs.simpl.x509.AccessDescription=function(){this.accessMethod="",this.accessLocation=new e.org.pkijs.simpl.GENERAL_NAME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.AccessDescription.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.accessMethod=arguments[0].accessMethod||"",this.accessLocation=arguments[0].accessLocation||new e.org.pkijs.simpl.GENERAL_NAME)},e.org.pkijs.simpl.x509.AccessDescription.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.AccessDescription({names:{accessMethod:"accessMethod",accessLocation:{names:{block_name:"accessLocation"}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for AccessDescription");this.accessMethod=n.result.accessMethod.value_block.toString(),this.accessLocation=new e.org.pkijs.simpl.GENERAL_NAME({schema:n.result.accessLocation})},e.org.pkijs.simpl.x509.AccessDescription.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.accessMethod}),this.accessLocation.toSchema()]})},e.org.pkijs.simpl.x509.AccessDescription.prototype.toJSON=function(){return{accessMethod:this.accessMethod,accessLocation:this.accessLocation.toJSON()}},e.org.pkijs.simpl.x509.InfoAccess=function(){this.accessDescriptions=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.InfoAccess.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.accessDescriptions=arguments[0].accessDescriptions||new Array)},e.org.pkijs.simpl.x509.InfoAccess.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.InfoAccess({names:{accessDescriptions:"accessDescriptions"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for InfoAccess");for(var i=n.result.accessDescriptions,o=0;o<i.length;o++)this.accessDescriptions.push(new e.org.pkijs.simpl.x509.AccessDescription({schema:i[o]}))},e.org.pkijs.simpl.x509.InfoAccess.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.accessDescriptions.length;n++)t.push(this.accessDescriptions[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.InfoAccess.prototype.toJSON=function(){for(var e={accessDescriptions:new Array},t=0;t<this.accessDescriptions.length;t++)e.accessDescriptions.push(this.accessDescriptions[t].toJSON());return e},e.org.pkijs.simpl.x509.IssuingDistributionPoint=function(){arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&("distributionPoint"in arguments[0]&&(this.distributionPoint=arguments[0].distributionPoint),"onlyContainsUserCerts"in arguments[0]&&(this.onlyContainsUserCerts=arguments[0].onlyContainsUserCerts),"onlyContainsCACerts"in arguments[0]&&(this.onlyContainsCACerts=arguments[0].onlyContainsCACerts),"onlySomeReasons"in arguments[0]&&(this.onlySomeReasons=arguments[0].onlySomeReasons),"indirectCRL"in arguments[0]&&(this.indirectCRL=arguments[0].indirectCRL),"onlyContainsAttributeCerts"in arguments[0]&&(this.onlyContainsAttributeCerts=arguments[0].onlyContainsAttributeCerts))},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.x509.IssuingDistributionPoint({names:{distributionPoint:"distributionPoint",distributionPoint_names:"distributionPoint_names",onlyContainsUserCerts:"onlyContainsUserCerts",onlyContainsCACerts:"onlyContainsCACerts",onlySomeReasons:"onlySomeReasons",indirectCRL:"indirectCRL",onlyContainsAttributeCerts:"onlyContainsAttributeCerts"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for IssuingDistributionPoint");if("distributionPoint"in n.result){if(0==n.result.distributionPoint.id_block.tag_number){this.distributionPoint=new Array;for(var i=n.result.distributionPoint_names,o=0;o<i.length;o++)this.distributionPoint.push(new e.org.pkijs.simpl.GENERAL_NAME({schema:i[o]}))}1==n.result.distributionPoint.id_block.tag_number&&(n.result.distributionPoint.id_block.tag_class=1,n.result.distributionPoint.id_block.tag_number=16,this.distributionPoint=new e.org.pkijs.simpl.RDN({schema:n.result.distributionPoint}))}if("onlyContainsUserCerts"in n.result){var r=new Uint8Array(n.result.onlyContainsUserCerts.value_block.value_hex);this.onlyContainsUserCerts=0!==r[0]}if("onlyContainsCACerts"in n.result){r=new Uint8Array(n.result.onlyContainsCACerts.value_block.value_hex);this.onlyContainsCACerts=0!==r[0]}if("onlySomeReasons"in n.result){r=new Uint8Array(n.result.onlySomeReasons.value_block.value_hex);this.onlySomeReasons=r[0]}if("indirectCRL"in n.result){r=new Uint8Array(n.result.indirectCRL.value_block.value_hex);this.indirectCRL=0!==r[0]}if("onlyContainsAttributeCerts"in n.result){r=new Uint8Array(n.result.onlyContainsAttributeCerts.value_block.value_hex);this.onlyContainsAttributeCerts=0!==r[0]}},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.toSchema=function(){var t=new Array;if("distributionPoint"in this){var n;if(this.distributionPoint instanceof Array){n=new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0}});for(var i=0;i<this.distributionPoint.length;i++)n.value_block.value.push(this.distributionPoint[i].toSchema())}else(n=this.distributionPoint.toSchema()).id_block.tag_class=3,n.id_block.tag_number=1;t.push(n)}if("onlyContainsUserCerts"in this){var o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsUserCerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:1},value_hex:o}))}if("onlyContainsCACerts"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsCACerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:2},value_hex:o}))}if("onlySomeReasons"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=this.onlySomeReasons,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:3},value_hex:o}))}if("indirectCRL"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.indirectCRL?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:4},value_hex:o}))}if("onlyContainsAttributeCerts"in this){o=new ArrayBuffer(1);new Uint8Array(o)[0]=!1===this.onlyContainsAttributeCerts?0:255,t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({id_block:{tag_class:3,tag_number:5},value_hex:o}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.x509.IssuingDistributionPoint.prototype.toJSON=function(){var e={};if("distributionPoint"in this)if(this.distributionPoint instanceof Array){e.distributionPoint=new Array;for(var t=0;t<this.distributionPoint.length;t++)e.distributionPoint.push(this.distributionPoint[t].toJSON())}else e.distributionPoint=this.distributionPoint.toJSON();return"onlyContainsUserCerts"in this&&(e.onlyContainsUserCerts=this.onlyContainsUserCerts),"onlyContainsCACerts"in this&&(e.onlyContainsCACerts=this.onlyContainsCACerts),"onlySomeReasons"in this&&(e.onlySomeReasons=this.onlySomeReasons),"indirectCRL"in this&&(e.indirectCRL=this.indirectCRL),"onlyContainsAttributeCerts"in this&&(e.onlyContainsAttributeCerts=this.onlyContainsAttributeCerts),e},e.org.pkijs.simpl.EXTENSION=function(){this.extnID="",this.critical=!1,this.extnValue=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.EXTENSION.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.extnID=arguments[0].extnID||"",this.critical=arguments[0].critical||!1,this.extnValue="extnValue"in arguments[0]?new e.org.pkijs.asn1.OCTETSTRING({value_hex:arguments[0].extnValue}):new e.org.pkijs.asn1.OCTETSTRING,"parsedValue"in arguments[0]&&(this.parsedValue=arguments[0].parsedValue))},e.org.pkijs.simpl.EXTENSION.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.EXTENSION({names:{extnID:"extnID",critical:"critical",extnValue:"extnValue"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for EXTENSION");if(this.extnID=n.result.extnID.value_block.toString(),"critical"in n.result&&(this.critical=n.result.critical.value_block.value),this.extnValue=n.result.extnValue,-1!==(n=e.org.pkijs.fromBER(this.extnValue.value_block.value_hex)).offset)switch(this.extnID){case"2.5.29.9":this.parsedValue=new e.org.pkijs.simpl.x509.SubjectDirectoryAttributes({schema:n.result});break;case"2.5.29.14":case"2.5.29.15":case"2.5.29.20":case"2.5.29.27":case"2.5.29.21":case"2.5.29.24":case"2.5.29.54":this.parsedValue=n.result;break;case"2.5.29.16":this.parsedValue=new e.org.pkijs.simpl.x509.PrivateKeyUsagePeriod({schema:n.result});break;case"2.5.29.17":case"2.5.29.18":this.parsedValue=new e.org.pkijs.simpl.x509.AltName({schema:n.result});break;case"2.5.29.19":this.parsedValue=new e.org.pkijs.simpl.x509.BasicConstraints({schema:n.result});break;case"2.5.29.28":this.parsedValue=new e.org.pkijs.simpl.x509.IssuingDistributionPoint({schema:n.result});break;case"2.5.29.29":this.parsedValue=new e.org.pkijs.simpl.GENERAL_NAMES({schema:n.result});break;case"2.5.29.30":this.parsedValue=new e.org.pkijs.simpl.x509.NameConstraints({schema:n.result});break;case"2.5.29.31":case"2.5.29.46":this.parsedValue=new e.org.pkijs.simpl.x509.CRLDistributionPoints({schema:n.result});break;case"2.5.29.32":this.parsedValue=new e.org.pkijs.simpl.x509.CertificatePolicies({schema:n.result});break;case"2.5.29.33":this.parsedValue=new e.org.pkijs.simpl.x509.PolicyMappings({schema:n.result});break;case"2.5.29.35":this.parsedValue=new e.org.pkijs.simpl.x509.AuthorityKeyIdentifier({schema:n.result});break;case"2.5.29.36":this.parsedValue=new e.org.pkijs.simpl.x509.PolicyConstraints({schema:n.result});break;case"2.5.29.37":this.parsedValue=new e.org.pkijs.simpl.x509.ExtKeyUsage({schema:n.result});break;case"1.3.6.1.5.5.7.1.1":case"1.3.6.1.5.5.7.1.11":this.parsedValue=new e.org.pkijs.simpl.x509.InfoAccess({schema:n.result})}},e.org.pkijs.simpl.EXTENSION.prototype.toSchema=function(){var t=new Array;return t.push(new e.org.pkijs.asn1.OID({value:this.extnID})),this.critical&&t.push(new e.org.pkijs.asn1.BOOLEAN({value:this.critical})),t.push(this.extnValue),new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.EXTENSION.prototype.toJSON=function(){var e={extnID:this.extnID,critical:this.critical,extnValue:this.extnValue.toJSON()};return"parsedValue"in this&&(e.parsedValue=this.parsedValue.toJSON()),e},e.org.pkijs.simpl.EXTENSIONS=function(){this.extensions_array=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.EXTENSIONS.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.extensions_array=arguments[0].extensions_array||new Array)},e.org.pkijs.simpl.EXTENSIONS.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.EXTENSIONS({names:{extensions:"extensions"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for EXTENSIONS");for(var i=0;i<n.result.extensions.length;i++)this.extensions_array.push(new e.org.pkijs.simpl.EXTENSION({schema:n.result.extensions[i]}))},e.org.pkijs.simpl.EXTENSIONS.prototype.toSchema=function(){for(var t=new Array,n=0;n<this.extensions_array.length;n++)t.push(this.extensions_array[n].toSchema());return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.EXTENSIONS.prototype.toJSON=function(){for(var e={extensions_array:new Array},t=0;t<this.extensions_array.length;t++)e.extensions_array.push(this.extensions_array[t].toJSON());return e},e.org.pkijs.simpl.CERT=function(){this.tbs=new ArrayBuffer(0),this.serialNumber=new e.org.pkijs.asn1.INTEGER,this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=new e.org.pkijs.simpl.RDN,this.notBefore=new e.org.pkijs.simpl.TIME,this.notAfter=new e.org.pkijs.simpl.TIME,this.subject=new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CERT.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),this.serialNumber=arguments[0].serialNumber||new e.org.pkijs.asn1.INTEGER,this.signature=arguments[0].signature||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.notBefore=arguments[0].not_before||new e.org.pkijs.simpl.TIME,this.notAfter=arguments[0].not_after||new e.org.pkijs.simpl.TIME,this.subject=arguments[0].subject||new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=arguments[0].subjectPublicKeyInfo||new e.org.pkijs.simpl.PUBLIC_KEY_INFO,"issuerUniqueID"in arguments[0]&&(this.issuerUniqueID=arguments[0].issuerUniqueID),"subjectUniqueID"in arguments[0]&&(this.subjectUniqueID=arguments[0].subjectUniqueID),"extensions"in arguments[0]&&(this.extensions=arguments[0].extensions),this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.CERT.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CERT({names:{tbsCertificate:{names:{extensions:{names:{extensions:"tbsCertificate.extensions"}}}}}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CERT");if(this.tbs=n.result.tbsCertificate.value_before_decode,"tbsCertificate.version"in n.result&&(this.version=n.result["tbsCertificate.version"].value_block.value_dec),this.serialNumber=n.result["tbsCertificate.serialNumber"],this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result["tbsCertificate.signature"]}),this.issuer=new e.org.pkijs.simpl.RDN({schema:n.result["tbsCertificate.issuer"]}),this.notBefore=new e.org.pkijs.simpl.TIME({schema:n.result["tbsCertificate.notBefore"]}),this.notAfter=new e.org.pkijs.simpl.TIME({schema:n.result["tbsCertificate.notAfter"]}),this.subject=new e.org.pkijs.simpl.RDN({schema:n.result["tbsCertificate.subject"]}),this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO({schema:n.result["tbsCertificate.subjectPublicKeyInfo"]}),"tbsCertificate.issuerUniqueID"in n.result&&(this.issuerUniqueID=n.result["tbsCertificate.issuerUniqueID"].value_block.value_hex),"tbsCertificate.subjectUniqueID"in n.result&&(this.issuerUniqueID=n.result["tbsCertificate.subjectUniqueID"].value_block.value_hex),"tbsCertificate.extensions"in n.result){this.extensions=new Array;for(var i=n.result["tbsCertificate.extensions"],o=0;o<i.length;o++)this.extensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.signatureAlgorithm}),this.signatureValue=n.result.signatureValue},e.org.pkijs.simpl.CERT.prototype.encodeTBS=function(){var t=new Array;if("version"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.INTEGER({value:this.version})]})),t.push(this.serialNumber),t.push(this.signature.toSchema()),t.push(this.issuer.toSchema()),t.push(new e.org.pkijs.asn1.SEQUENCE({value:[this.notBefore.toSchema(),this.notAfter.toSchema()]})),t.push(this.subject.toSchema()),t.push(this.subjectPublicKeyInfo.toSchema()),"issuerUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:1},value_hex:this.issuerUniqueID})),"subjectUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_PRIMITIVE({optional:!0,id_block:{tag_class:3,tag_number:2},value_hex:this.subjectUniqueID})),"subjectUniqueID"in this&&t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[this.extensions.toSchema()]})),"extensions"in this){for(var n=new Array,i=0;i<this.extensions.length;i++)n.push(this.extensions[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:3},value:[new e.org.pkijs.asn1.SEQUENCE({value:n})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CERT.prototype.toSchema=function(t){void 0===t&&(t=!1);var n={};if(!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.CERT().value[0];n=e.org.pkijs.fromBER(this.tbs).result}else n=e.org.pkijs.simpl.CERT.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[n,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.CERT.prototype.verify=function(){var t=Promise.resolve(),n={},i=this.signatureValue,o=this.tbs,r=this;if(arguments[0]instanceof Object?"issuerCertificate"in arguments[0]&&(n=arguments[0].issuerCertificate.subjectPublicKeyInfo):this.issuer.isEqual(this.subject)&&(n=this.subjectPublicKeyInfo),n instanceof e.org.pkijs.simpl.PUBLIC_KEY_INFO==!1)return Promise.reject("Please provide issuer certificate as a parameter");var a=e.org.pkijs.getCrypto();if(void 0===a)return Promise.reject("Unable to create WebCrypto object");var s=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);return""===s?Promise.reject("Unsupported signature algorithm: "+r.signatureAlgorithm.algorithm_id):t=(t=t.then((function(){var t=e.org.pkijs.getAlgorithmByOID(r.signatureAlgorithm.algorithm_id);if("name"in t==!1)return Promise.reject("Unsupported public key algorithm: "+r.signatureAlgorithm.algorithm_id);var i=t.name,o=e.org.pkijs.getAlgorithmParameters(i,"importkey");if("hash"in o.algorithm&&(o.algorithm.hash.name=s),"ECDSA"===i){if(n.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var l=e.org.pkijs.getAlgorithmByOID(n.algorithm.algorithm_params.value_block.toString());if("name"in l==!1)return Promise.reject("Unsupported named curve algorithm: "+n.algorithm.algorithm_params.value_block.toString());o.algorithm.namedCurve=l.name}var c=n.toSchema().toBER(!1),u=new Uint8Array(c);return a.importKey("spki",u,o.algorithm,!0,o.usages)}))).then((function(t){var n=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify");"hash"in n.algorithm&&(n.algorithm.hash.name=s);var l=i.value_block.value_hex;if("ECDSA"===t.algorithm.name){var c=e.org.pkijs.fromBER(l);l=e.org.pkijs.createECDSASignatureFromCMS(c.result)}if("RSA-PSS"===t.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}n.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}n.algorithm.hash.name=p}return a.verify(n.algorithm,t,new Uint8Array(l),new Uint8Array(o))}))},e.org.pkijs.simpl.CERT.prototype.sign=function(t,n){var i=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n)n="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:n}))return Promise.reject("Unsupported hash algorithm: "+n);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":i.signature.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm),i.signatureAlgorithm.algorithm_id=i.signature.algorithm_id;break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==n.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:n});if(""===a)return Promise.reject("Unsupported hash algorithm: "+n);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);i.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()}),i.signatureAlgorithm=i.signature;break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}i.tbs=e.org.pkijs.simpl.CERT.prototype.encodeTBS.call(this).toBER(!1);var l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):l.sign(o.algorithm,t,new Uint8Array(i.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),i.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CERT.prototype.getPublicKey=function(){var t,n=e.org.pkijs.getCrypto();if(void 0===n)return Promise.reject("Unable to create WebCrypto object");if(arguments[0]instanceof Object){if(!("algorithm"in arguments[0]))return Promise.reject('Absent mandatory parameter "algorithm"');t=arguments[0].algorithm}else{var i=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);if(""===i)return Promise.reject("Unsupported signature algorithm: "+_this.signatureAlgorithm.algorithm_id);var o=e.org.pkijs.getAlgorithmByOID(this.signatureAlgorithm.algorithm_id);if("name"in o==!1)return Promise.reject("Unsupported public key algorithm: "+_this.signatureAlgorithm.algorithm_id);var r=o.name;if("hash"in(t=e.org.pkijs.getAlgorithmParameters(r,"importkey")).algorithm&&(t.algorithm.hash.name=i),"ECDSA"===r){if(subjectPublicKeyInfo.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var a=e.org.pkijs.getAlgorithmByOID(subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());if("name"in a==!1)return Promise.reject("Unsupported named curve algorithm: "+subjectPublicKeyInfo.algorithm.algorithm_params.value_block.toString());t.algorithm.namedCurve=a.name}}var s=this.subjectPublicKeyInfo.toSchema().toBER(!1),l=new Uint8Array(s);return n.importKey("spki",l,t.algorithm,!0,t.usages)},e.org.pkijs.simpl.CERT.prototype.getKeyHash=function(){var t=e.org.pkijs.getCrypto();return void 0===t?Promise.reject("Unable to create WebCrypto object"):t.digest({name:"sha-1"},new Uint8Array(this.subjectPublicKeyInfo.subjectPublicKey.value_block.value_hex))},e.org.pkijs.simpl.CERT.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),serialNumber:this.serialNumber.toJSON(),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),notBefore:this.notBefore.toJSON(),notAfter:this.notAfter.toJSON(),subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("version"in this&&(t.version=this.version),"issuerUniqueID"in this&&(t.issuerUniqueID=e.org.pkijs.bufferToHexCodes(this.issuerUniqueID,0,this.issuerUniqueID.byteLength)),"subjectUniqueID"in this&&(t.subjectUniqueID=e.org.pkijs.bufferToHexCodes(this.subjectUniqueID,0,this.subjectUniqueID.byteLength)),"extensions"in this){t.extensions=new Array;for(var n=0;n<this.extensions.length;n++)t.extensions.push(this.extensions[n].toJSON())}return t},e.org.pkijs.simpl.REV_CERT=function(){this.userCertificate=new e.org.pkijs.asn1.INTEGER,this.revocationDate=new e.org.pkijs.simpl.TIME,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.REV_CERT.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.userCertificate=arguments[0].userCertificate||new e.org.pkijs.asn1.INTEGER,this.revocationDate=arguments[0].revocationDate||new e.org.pkijs.simpl.TIME,"crlEntryExtensions"in arguments[0]&&(this.crlEntryExtensions=arguments[0].crlEntryExtensions))},e.org.pkijs.simpl.REV_CERT.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.INTEGER({name:"userCertificate"}),e.org.pkijs.schema.TIME({names:{utcTimeName:"revocationDate",generalTimeName:"revocationDate"}}),e.org.pkijs.schema.EXTENSIONS({names:{block_name:"crlEntryExtensions"}},!0)]}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for REV_CERT");if(this.userCertificate=n.result.userCertificate,this.revocationDate=new e.org.pkijs.simpl.TIME({schema:n.result.revocationDate}),"crlEntryExtensions"in n.result){this.crlEntryExtensions=new Array;for(var i=n.result.crlEntryExtensions.value_block.value,o=0;o<i.length;o++)this.crlEntryExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:i[o]}))}},e.org.pkijs.simpl.REV_CERT.prototype.toSchema=function(){var t=new Array;if(t.push(this.userCertificate),t.push(this.revocationDate.toSchema()),"crlEntryExtensions"in this){for(var n=new Array,i=0;i<this.crlEntryExtensions.length;i++)n.push(this.crlEntryExtensions[i].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.REV_CERT.prototype.toJSON=function(){var e={userCertificate:this.userCertificate.toJSON(),revocationDate:this.revocationDate.toJSON};if("crlEntryExtensions"in this){e.crlEntryExtensions=new Array;for(var t=0;t<this.crlEntryExtensions.length;t++)e.crlEntryExtensions.push(this.crlEntryExtensions[t].toJSON())}return e},e.org.pkijs.simpl.CRL=function(){this.tbs=new ArrayBuffer(0),this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=new e.org.pkijs.simpl.RDN,this.thisUpdate=new e.org.pkijs.simpl.TIME,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.CRL.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),"version"in arguments[0]&&(this.version=arguments[0].version),this.signature=arguments[0].signature||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.issuer=arguments[0].issuer||new e.org.pkijs.simpl.RDN,this.thisUpdate=arguments[0].thisUpdate||new e.org.pkijs.simpl.TIME,"nextUpdate"in arguments[0]&&(this.nextUpdate=arguments[0].nextUpdate),"revokedCertificates"in arguments[0]&&(this.revokedCertificates=arguments[0].revokedCertificates),"crlExtensions"in arguments[0]&&(this.crlExtensions=arguments[0].crlExtensions),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=arguments[0].signatureValue||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.CRL.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.CRL());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for CRL");if(this.tbs=n.result.tbsCertList.value_before_decode,"tbsCertList.version"in n.result&&(this.version=n.result["tbsCertList.version"].value_block.value_dec),this.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result["tbsCertList.signature"]}),this.issuer=new e.org.pkijs.simpl.RDN({schema:n.result["tbsCertList.issuer"]}),this.thisUpdate=new e.org.pkijs.simpl.TIME({schema:n.result["tbsCertList.thisUpdate"]}),"tbsCertList.nextUpdate"in n.result&&(this.nextUpdate=new e.org.pkijs.simpl.TIME({schema:n.result["tbsCertList.nextUpdate"]})),"tbsCertList.revokedCertificates"in n.result){this.revokedCertificates=new Array;for(var i=n.result["tbsCertList.revokedCertificates"],o=0;o<i.length;o++)this.revokedCertificates.push(new e.org.pkijs.simpl.REV_CERT({schema:i[o]}))}if("tbsCertList.extensions"in n.result){this.crlExtensions=new Array;var r=n.result["tbsCertList.extensions"].value_block.value;for(o=0;o<r.length;o++)this.crlExtensions.push(new e.org.pkijs.simpl.EXTENSION({schema:r[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.signatureAlgorithm}),this.signatureValue=n.result.signatureValue},e.org.pkijs.simpl.CRL.prototype.encodeTBS=function(){var t=new Array;if("version"in this&&t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.signature.toSchema()),t.push(this.issuer.toSchema()),t.push(this.thisUpdate.toSchema()),"nextUpdate"in this&&t.push(this.nextUpdate.toSchema()),"revokedCertificates"in this){for(var n=new Array,i=0;i<this.revokedCertificates.length;i++)n.push(this.revokedCertificates[i].toSchema());t.push(new e.org.pkijs.asn1.SEQUENCE({value:n}))}if("crlExtensions"in this){for(var o=new Array,r=0;r<this.crlExtensions.length;r++)o.push(this.crlExtensions[r].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:[new e.org.pkijs.asn1.SEQUENCE({value:o})]}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.CRL.prototype.toSchema=function(t){var n;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.CRL();n=e.org.pkijs.fromBER(this.tbs).result}else n=e.org.pkijs.simpl.CRL.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[n,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.CRL.prototype.verify=function(){var t=Promise.resolve(),n=this.signatureValue,i=this.tbs,o=-1,r=this;if(arguments[0]instanceof Object){if("issuerCertificate"in arguments[0]&&(o=arguments[0].issuerCertificate.subjectPublicKeyInfo,0==this.issuer.isEqual(arguments[0].issuerCertificate.subject)))return Promise.resolve(!1);"publicKeyInfo"in arguments[0]&&(o=arguments[0].publicKeyInfo)}if(o instanceof e.org.pkijs.simpl.PUBLIC_KEY_INFO==!1)return Promise.reject("Issuer's certificate must be provided as an input parameter");if("crlExtensions"in this)for(var a=0;a<this.crlExtensions.length;a++)if(this.crlExtensions[a].critical&&"parsedValue"in this.crlExtensions[a]==0)return Promise.resolve(!1);var s=e.org.pkijs.getCrypto();if(void 0===s)return Promise.reject("Unable to create WebCrypto object");var l=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm);return""===l?Promise.reject("Unsupported signature algorithm: "+r.signatureAlgorithm.algorithm_id):t=(t=t.then((function(){var t=e.org.pkijs.getAlgorithmByOID(r.signature.algorithm_id);if("name"in t==="")return Promise.reject("Unsupported public key algorithm: "+r.signature.algorithm_id);var n=t.name,i=e.org.pkijs.getAlgorithmParameters(n,"importkey");if("hash"in i.algorithm&&(i.algorithm.hash.name=l),"ECDSA"===n){if(o.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var a=e.org.pkijs.getAlgorithmByOID(o.algorithm.algorithm_params.value_block.toString());if("name"in a==!1)return Promise.reject("Unsupported named curve algorithm: "+o.algorithm.algorithm_params.value_block.toString());i.algorithm.namedCurve=a.name}var c=o.toSchema().toBER(!1),u=new Uint8Array(c);return s.importKey("spki",u,i.algorithm,!0,i.usages)}))).then((function(t){var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=l);var a=n.value_block.value_hex;if("ECDSA"===t.algorithm.name){var c=e.org.pkijs.fromBER(a);a=e.org.pkijs.createECDSASignatureFromCMS(c.result)}if("RSA-PSS"===t.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:r.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}o.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}o.algorithm.hash.name=p}return s.verify(o.algorithm,t,new Uint8Array(a),new Uint8Array(i))}))},e.org.pkijs.simpl.CRL.prototype.sign=function(t,n){var i=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n)n="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:n}))return Promise.reject("Unsupported hash algorithm: "+n);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":i.signature.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm),i.signatureAlgorithm.algorithm_id=i.signature.algorithm_id;break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==n.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:n});if(""===a)return Promise.reject("Unsupported hash algorithm: "+n);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);i.signature=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()}),i.signatureAlgorithm=i.signature;break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}i.tbs=e.org.pkijs.simpl.CRL.prototype.encodeTBS.call(this).toBER(!1);var l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):l.sign(o.algorithm,t,new Uint8Array(i.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),i.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.CRL.prototype.isCertificateRevoked=function(){var t={};if(arguments[0]instanceof Object&&"certificate"in arguments[0]&&(t=arguments[0].certificate),t instanceof e.org.pkijs.simpl.CERT==!1)return!1;if(!1===this.issuer.isEqual(t.issuer))return!1;if("revokedCertificates"in this==!1)return!1;for(var n=0;n<this.revokedCertificates.length;n++)if(this.revokedCertificates[n].userCertificate.isEqual(t.serialNumber))return!0;return!1},e.org.pkijs.simpl.CRL.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),thisUpdate:this.thisUpdate.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("version"in this&&(t.version=this.version),"nextUpdate"in this&&(t.nextUpdate=this.nextUpdate.toJSON()),"revokedCertificates"in this){t.revokedCertificates=new Array;for(var n=0;n<this.revokedCertificates.length;n++)t.revokedCertificates.push(this.revokedCertificates[n].toJSON())}if("crlExtensions"in this){t.crlExtensions=new Array;for(n=0;n<this.crlExtensions.length;n++)t.crlExtensions.push(this.crlExtensions[n].toJSON())}return t},e.org.pkijs.simpl.ATTRIBUTE=function(){this.type="",this.values=new Array,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.ATTRIBUTE.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.type=arguments[0].type||"",this.values=arguments[0].values||new Array)},e.org.pkijs.simpl.ATTRIBUTE.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.ATTRIBUTE({names:{type:"type",values:"values"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for ATTRIBUTE");this.type=n.result.type.value_block.toString(),this.values=n.result.values},e.org.pkijs.simpl.ATTRIBUTE.prototype.toSchema=function(){return new e.org.pkijs.asn1.SEQUENCE({value:[new e.org.pkijs.asn1.OID({value:this.type}),new e.org.pkijs.asn1.SET({value:this.values})]})},e.org.pkijs.simpl.ATTRIBUTE.prototype.toJSON=function(){for(var e={type:this.type,values:new Array},t=0;t<this.values.length;t++)e.values.push(this.values[t].toJSON());return e},e.org.pkijs.simpl.PKCS10=function(){this.tbs=new ArrayBuffer(0),this.version=0,this.subject=new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO,this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=new e.org.pkijs.asn1.BITSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PKCS10.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.tbs=arguments[0].tbs||new ArrayBuffer(0),this.version=arguments[0].version||0,this.subject=arguments[0].subject||new e.org.pkijs.simpl.RDN,this.subjectPublicKeyInfo=arguments[0].subjectPublicKeyInfo||new e.org.pkijs.simpl.PUBLIC_KEY_INFO,"attributes"in arguments[0]&&(this.attributes=arguments[0].attributes),this.signatureAlgorithm=arguments[0].signatureAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.signatureValue=arguments[0].signatureValue||new e.org.pkijs.asn1.BITSTRING)},e.org.pkijs.simpl.PKCS10.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PKCS10());if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PKCS10");if(this.tbs=n.result.CertificationRequestInfo.value_before_decode,this.version=n.result["CertificationRequestInfo.version"].value_block.value_dec,this.subject=new e.org.pkijs.simpl.RDN({schema:n.result["CertificationRequestInfo.subject"]}),this.subjectPublicKeyInfo=new e.org.pkijs.simpl.PUBLIC_KEY_INFO({schema:n.result["CertificationRequestInfo.subjectPublicKeyInfo"]}),"CertificationRequestInfo.attributes"in n.result){this.attributes=new Array;for(var i=n.result["CertificationRequestInfo.attributes"],o=0;o<i.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:i[o]}))}this.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.signatureAlgorithm}),this.signatureValue=n.result.signatureValue},e.org.pkijs.simpl.PKCS10.prototype.encodeTBS=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.subject.toSchema()),t.push(this.subjectPublicKeyInfo.toSchema()),"attributes"in this){for(var n=new Array,i=0;i<this.attributes.length;i++)n.push(this.attributes[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({id_block:{tag_class:3,tag_number:0},value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.PKCS10.prototype.toSchema=function(t){var n;if(void 0===t&&(t=!1),!1===t){if(0===this.tbs.length)return e.org.pkijs.schema.PKCS10();n=e.org.pkijs.fromBER(this.tbs).result}else n=e.org.pkijs.simpl.PKCS10.prototype.encodeTBS.call(this);return new e.org.pkijs.asn1.SEQUENCE({value:[n,this.signatureAlgorithm.toSchema(),this.signatureValue]})},e.org.pkijs.simpl.PKCS10.prototype.verify=function(){var t,n=this,i=Promise.resolve(),o=this.subjectPublicKeyInfo,r=this.signatureValue,a=this.tbs,s=e.org.pkijs.getCrypto();return void 0===s?Promise.reject("Unable to create WebCrypto object"):""===(t=e.org.pkijs.getHashAlgorithm(this.signatureAlgorithm))?Promise.reject("Unsupported signature algorithm: "+n.signatureAlgorithm.algorithm_id):i=(i=i.then((function(){var i=e.org.pkijs.getAlgorithmByOID(n.signatureAlgorithm.algorithm_id);if("name"in i==!1)return Promise.reject("Unsupported public key algorithm: "+n.signatureAlgorithm.algorithm_id);var r=i.name,a=e.org.pkijs.getAlgorithmParameters(r,"importkey");if("hash"in a.algorithm&&(a.algorithm.hash.name=t),"ECDSA"===r){if(o.algorithm.algorithm_params instanceof e.org.pkijs.asn1.OID==!1)return Promise.reject("Incorrect type for ECDSA public key parameters");var l=e.org.pkijs.getAlgorithmByOID(o.algorithm.algorithm_params.value_block.toString());if("name"in l==!1)return Promise.reject("Unsupported named curve algorithm: "+o.algorithm.algorithm_params.value_block.toString());a.algorithm.namedCurve=l.name}var c=o.toSchema().toBER(!1),u=new Uint8Array(c);return s.importKey("spki",u,a.algorithm,!0,a.usages)}))).then((function(i){var o=e.org.pkijs.getAlgorithmParameters(i.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=t);var l=r.value_block.value_hex;if("ECDSA"===i.algorithm.name){var c=e.org.pkijs.fromBER(l);l=e.org.pkijs.createECDSASignatureFromCMS(c.result)}if("RSA-PSS"===i.algorithm.name){var u;try{u=new e.org.pkijs.simpl.x509.RSASSA_PSS_params({schema:n.signatureAlgorithm.algorithm_params})}catch(e){return Promise.reject(e)}o.algorithm.saltLength="saltLength"in u?u.saltLength:20;var p="SHA-1";if("hashAlgorithm"in u){var h=e.org.pkijs.getAlgorithmByOID(u.hashAlgorithm.algorithm_id);if("name"in h==!1)return Promise.reject("Unrecognized hash algorithm: "+u.hashAlgorithm.algorithm_id);p=h.name}o.algorithm.hash.name=p}return s.verify(o.algorithm,i,new Uint8Array(l),new Uint8Array(a))}))},e.org.pkijs.simpl.PKCS10.prototype.sign=function(t,n){var i=this;if(void 0===t)return Promise.reject("Need to provide a private key for signing");if(void 0===n)n="SHA-1";else if(""===e.org.pkijs.getOIDByAlgorithm({name:n}))return Promise.reject("Unsupported hash algorithm: "+n);var o=e.org.pkijs.getAlgorithmParameters(t.algorithm.name,"sign");switch(o.algorithm.hash.name=n,t.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":i.signatureAlgorithm.algorithm_id=e.org.pkijs.getOIDByAlgorithm(o.algorithm);break;case"RSA-PSS":switch(n.toUpperCase()){case"SHA-256":o.algorithm.saltLength=32;break;case"SHA-384":o.algorithm.saltLength=48;break;case"SHA-512":o.algorithm.saltLength=64}var r={};if("SHA-1"!==n.toUpperCase()){var a=e.org.pkijs.getOIDByAlgorithm({name:n});if(""===a)return Promise.reject("Unsupported hash algorithm: "+n);r.hashAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:a,algorithm_params:new e.org.pkijs.asn1.NULL}),r.maskGenAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.8",algorithm_params:r.hashAlgorithm.toSchema()})}20!==o.algorithm.saltLength&&(r.saltLength=o.algorithm.saltLength);var s=new e.org.pkijs.simpl.x509.RSASSA_PSS_params(r);i.signatureAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({algorithm_id:"1.2.840.113549.1.1.10",algorithm_params:s.toSchema()});break;default:return Promise.reject("Unsupported signature algorithm: "+t.algorithm.name)}i.tbs=e.org.pkijs.simpl.PKCS10.prototype.encodeTBS.call(this).toBER(!1);var l=e.org.pkijs.getCrypto();return void 0===l?Promise.reject("Unable to create WebCrypto object"):l.sign(o.algorithm,t,new Uint8Array(i.tbs)).then((function(t){"ECDSA"===o.algorithm.name&&(t=e.org.pkijs.createCMSECDSASignature(t)),i.signatureValue=new e.org.pkijs.asn1.BITSTRING({value_hex:t})}),(function(e){return Promise.reject("Signing error: "+e)}))},e.org.pkijs.simpl.PKCS10.prototype.toJSON=function(){var t={tbs:e.org.pkijs.bufferToHexCodes(this.tbs,0,this.tbs.byteLength),version:this.version,subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};if("attributes"in this){t.attributes=new Array;for(var n=0;n<this.attributes.length;n++)t.attributes.push(this.attributes[n].toJSON())}return t},e.org.pkijs.simpl.PKCS8=function(){this.version=0,this.privateKeyAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.privateKey=new e.org.pkijs.asn1.OCTETSTRING,arguments[0]instanceof Object&&"schema"in arguments[0]?e.org.pkijs.simpl.PKCS8.prototype.fromSchema.call(this,arguments[0].schema):arguments[0]instanceof Object&&(this.version=arguments[0].version||0,this.privateKeyAlgorithm=arguments[0].privateKeyAlgorithm||new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER,this.privateKey=arguments[0].privateKey||new e.org.pkijs.asn1.OCTETSTRING,"attributes"in arguments[0]&&(this.attributes=arguments[0].attributes))},e.org.pkijs.simpl.PKCS8.prototype.fromSchema=function(t){var n=e.org.pkijs.compareSchema(t,t,e.org.pkijs.schema.PKCS8({names:{version:"version",privateKeyAlgorithm:{names:{block_name:"privateKeyAlgorithm"}},privateKey:"privateKey",attributes:"attributes"}}));if(!1===n.verified)throw new Error("Object's schema was not verified against input data for PKCS8");if(this.version=n.result.version.value_block.value_dec,this.privateKeyAlgorithm=new e.org.pkijs.simpl.ALGORITHM_IDENTIFIER({schema:n.result.privateKeyAlgorithm}),this.privateKey=n.result.privateKey,"attributes"in n.result){this.attributes=new Array;for(var i=n.result.attributes,o=0;o<i.length;o++)this.attributes.push(new e.org.pkijs.simpl.ATTRIBUTE({schema:i[o]}))}},e.org.pkijs.simpl.PKCS8.prototype.toSchema=function(){var t=new Array;if(t.push(new e.org.pkijs.asn1.INTEGER({value:this.version})),t.push(this.privateKeyAlgorithm.toSchema()),t.push(this.privateKey),"attributes"in this){for(var n=new Array,i=0;i<this.attributes.length;i++)n.push(this.attributes[i].toSchema());t.push(new e.org.pkijs.asn1.ASN1_CONSTRUCTED({optional:!0,id_block:{tag_class:3,tag_number:0},value:n}))}return new e.org.pkijs.asn1.SEQUENCE({value:t})},e.org.pkijs.simpl.PKCS8.prototype.toJSON=function(){var e={version:this.version,privateKeyAlgorithm:this.privateKeyAlgorithm.toJSON(),privateKey:this.privateKey.toJSON()};if("attributes"in this){e.attributes=new Array;for(var t=0;t<this.attributes.length;t++)e.attributes.push(this.attributes[t].toJSON())}return e},e.org.pkijs.simpl.CERT_CHAIN=function(){this.trusted_certs=new Array,this.certs=new Array,this.crls=new Array,arguments[0]instanceof Object&&(this.trusted_certs=arguments[0].trusted_certs||new Array,this.certs=arguments[0].certs||new Array,this.crls=arguments[0].crls||new Array)},e.org.pkijs.simpl.CERT_CHAIN.prototype.sort=function(){var e=new Array,t=this.certs.slice(0),n=new Date,i=this;if(0===t.length)return new Promise((function(e,t){t({result:!1,result_code:2,result_message:"Certificate's array can not be empty"})}));for(var o=-1,r=0;r<t.length;r++){var a=!1;if("extensions"in t[r]){for(var s=!1,l=!1,c=!1,u=0;u<t[r].extensions.length;u++){if(!0===t[r].extensions[u].critical&&"parsedValue"in t[r].extensions[u]==!1)return new Promise((function(e,n){n({result:!1,result_code:6,result_message:"Unable to parse critical certificate extension: "+t[r].extensions[u].extnID})}));if("2.5.29.15"===t[r].extensions[u].extnID){l=!0;var p=new Uint8Array(t[r].extensions[u].parsedValue.value_block.value_hex);4&~p[0]||(s=!0),2&~p[0]||(c=!0)}"2.5.29.19"===t[r].extensions[u].extnID&&"cA"in t[r].extensions[u].parsedValue&&!0===t[r].extensions[u].parsedValue.cA&&(a=!0)}if(!0===s&&!1===a)return new Promise((function(e,t){t({result:!1,result_code:3,result_message:'Unable to build certificate chain - using "keyCertSign" flag set without BasicConstaints'})}));if(!0===l&&!0===a&&!1===s)return new Promise((function(e,t){t({result:!1,result_code:4,result_message:'Unable to build certificate chain - "keyCertSign" flag was not set'})}));if(!0===a&&!0===l&&!1===c)return new Promise((function(e,t){t({result:!1,result_code:5,result_message:'Unable to build certificate chain - intermediate certificate must have "cRLSign" key usage flag'})}))}if(!1===a){if(0!==e.length)return new Promise((function(e,t){t({result:!1,result_code:7,result_message:"Unable to build certificate chain - more than one possible end-user certificate"})}));e.push(t[r]),o=r}}if(t.splice(o,1),0===e.length)return new Promise((function(e,t){t({result:!1,result_code:1,result_message:"Can't find end-user certificate"})}));if(0===t.length){if(!0===e[0].issuer.isEqual(e[0].subject))return new Promise((function(t,n){t(e)}));if(0===this.trusted_certs.length)return new Promise((function(e,t){t({result:!1,result_code:70,result_message:"Can't find root certificate"})}));t=i.trusted_certs.splice(0)}var h=e[0];function d(e,t){var o=Promise.resolve();if(o=o.then((function(){if(e.notBefore.value>n||e.notAfter.value<n)return new Promise((function(e,t){t({result:!1,result_code:8,result_message:"Certificate validity period is out of checking date"})}))})),0===i.crls.length)return o.then((function(){return new Promise((function(e,t){e()}))}));function r(e){return i.crls[e].verify({issuerCertificate:t}).then((function(t){return!0===t?new Promise((function(t,n){t(i.crls[e])})):++e<i.crls.length?r(e):new Promise((function(e,t){t({result:!1,result_code:9,result_message:"Unable to find CRL for issuer's certificate"})}))}),(function(e){return new Promise((function(e,t){t({result:!1,result_code:10,result_message:"Unable to find CRL for issuer's certificate"})}))}))}return o=(o=o.then((function(){return r(0)}))).then((function(t){return!0===t.isCertificateRevoked({certificate:e})?new Promise((function(e,t){t({result:!1,result_code:11,result_message:"Subject certificate was revoked"})})):new Promise((function(e,t){e()}))}),(function(e){return new Promise((function(e,t){e()}))}))}function g(e,n){return!0===t[n].subject.isEqual(e.issuer)?e.verify({issuerCertificate:t[n]}).then((function(i){return!0===i?d(e,t[n]).then((function(){return new Promise((function(e,t){e(n)}))}),(function(e){return new Promise((function(t,n){n({result:!1,result_code:16,result_message:e})}))})):n<t.length-1?g(e,n+1):new Promise((function(e,t){t({result:!1,result_code:17,result_message:"Unable to build certificate chain - incomplete certificate chain or signature of some certificate is invalid"})}))}),(function(e){return new Promise((function(e,t){t({result:!1,result_code:18,result_message:"Unable to build certificate chain - error during certificate signature verification"})}))})):n<t.length-1?g(e,n+1):new Promise((function(e,t){t({result:!1,result_code:19,result_message:"Unable to build certificate chain - incomplete certificate chain"})}))}return function n(){return g(h,0).then((function(o){if(e.push(t[o]),h=t[o],t.splice(o,1),!0===h.issuer.isEqual(h.subject)){for(var r=0===i.trusted_certs.length,a=0;a<i.trusted_certs.length;a++)if(!0===h.issuer.isEqual(i.trusted_certs[a].issuer)&&!0===h.subject.isEqual(i.trusted_certs[a].subject)&&!0===h.serialNumber.isEqual(i.trusted_certs[a].serialNumber)){r=!0;break}return!1===r?new Promise((function(e,t){t({result:!1,result_code:22,result_message:'Self-signed root certificate not in "trusted certificates" array'})})):h.verify().then((function(t){return!0===t?d(h,h).then((function(){return new Promise((function(t,n){t(e)}))}),(function(e){return new Promise((function(t,n){n({result:!1,result_code:12,result_message:e})}))})):new Promise((function(e,t){t({result:!1,result_code:13,result_message:"Unable to build certificate chain - signature of root certificate is invalid"})}))}),(function(e){return new Promise((function(t,n){n({result:!1,result_code:14,result_message:e})}))}))}return t.length>0?n():0!==i.trusted_certs.length?(t=i.trusted_certs.splice(0),n()):new Promise((function(e,t){t({result:!1,result_code:23,result_message:"Root certificate not found"})}))}),(function(e){return new Promise((function(t,n){n(e)}))}))}()},e.org.pkijs.simpl.CERT_CHAIN.prototype.verify=function(){if(0===this.certs.length)return new Promise((function(e,t){t("Empty certificate array")}));var t=Promise.resolve(),n=this,i=new Array;i.push("2.5.29.32.0");var o=!1,r=!1,a=!1,s=new Array,l=new Array,c=new Array;arguments[0]instanceof Object&&("initial_policy_set"in arguments[0]&&(i=arguments[0].initial_policy_set),"initial_explicit_policy"in arguments[0]&&(o=arguments[0].initial_explicit_policy),"initial_policy_mapping_inhibit"in arguments[0]&&(r=arguments[0].initial_policy_mapping_inhibit),"initial_inhibit_policy"in arguments[0]&&(a=arguments[0].initial_inhibit_policy),"initial_permitted_subtrees_set"in arguments[0]&&(s=arguments[0].initial_permitted_subtrees_set),"initial_excluded_subtrees_set"in arguments[0]&&(l=arguments[0].initial_excluded_subtrees_set),"initial_required_name_forms"in arguments[0]&&(c=arguments[0].initial_required_name_forms));var u=o,p=r,h=a,d=new Array(3);d[0]=!1,d[1]=!1,d[2]=!1;var g=0,m=0,f=0,S=s,b=l,y=c,_=1;return t=(t=e.org.pkijs.simpl.CERT_CHAIN.prototype.sort.call(this).then((function(e){n.certs=e}))).then((function(){var e=new Array;e.push("2.5.29.32.0");for(var t=new Array,o=new Array(n.certs.length-1),r=0;r<n.certs.length-1;r++)o[r]=!0;t.push(o);for(var a=new Array(n.certs.length-1),s=new Array(n.certs.length-1),l=n.certs.length-2;l>=0;l--,_++)if("extensions"in n.certs[l]){for(var c=0;c<n.certs[l].extensions.length;c++){if("2.5.29.32"===n.certs[l].extensions[c].extnID){s[l]=n.certs[l].extensions[c].parsedValue;for(var S=0;S<n.certs[l].extensions[c].parsedValue.certificatePolicies.length;S++){for(var b=-1,y=0;y<e.length;y++)if(n.certs[l].extensions[c].parsedValue.certificatePolicies[S].policyIdentifier===e[y]){b=y;break}if(-1===b){e.push(n.certs[l].extensions[c].parsedValue.certificatePolicies[S].policyIdentifier);var v=new Array(n.certs.length-1);v[l]=!0,t.push(v)}else t[b][l]=!0}}"2.5.29.33"===n.certs[l].extensions[c].extnID&&(a[l]=n.certs[l].extensions[c].parsedValue),"2.5.29.36"===n.certs[l].extensions[c].extnID&&0==u&&(0===n.certs[l].extensions[c].parsedValue.requireExplicitPolicy?u=!0:!1===d[0]?(d[0]=!0,g=n.certs[l].extensions[c].parsedValue.requireExplicitPolicy):g=g>n.certs[l].extensions[c].parsedValue.requireExplicitPolicy?n.certs[l].extensions[c].parsedValue.requireExplicitPolicy:g,0===n.certs[l].extensions[c].parsedValue.inhibitPolicyMapping?p=!0:!1===d[1]?(d[1]=!0,m=n.certs[l].extensions[c].parsedValue.requireExplicitPolicy):m=m>n.certs[l].extensions[c].parsedValue.requireExplicitPolicy?n.certs[l].extensions[c].parsedValue.requireExplicitPolicy:m),"2.5.29.54"===n.certs[l].extensions[c].extnID&&!1===h&&(0===n.certs[l].extensions[c].parsedValue.value_block.value_dec?h=!0:!1===d[2]?(d[2]=!0,f=n.certs[l].extensions[c].parsedValue.value_block.value_dec):f=f>n.certs[l].extensions[c].parsedValue.value_block.value_dec?n.certs[l].extensions[c].parsedValue.value_block.value_dec:f)}if(!0===h&&delete t[0][l],void 0!==s[l]&&void 0!==a[l]&&!1===p)for(var w=0;w<s[l].certificatePolicies.length;w++){for(var k="",E=0;E<a[l].mappings.length;E++){if(a[l].mappings[E].subjectDomainPolicy===s[l].certificatePolicies[w].policyIdentifier){k=a[l].mappings[E].issuerDomainPolicy;break}if(a[l].mappings[E].issuerDomainPolicy===s[l].certificatePolicies[w].policyIdentifier){k=a[l].mappings[E].subjectDomainPolicy;break}}if(""!==k){for(var I=-1,T=0;T<e.length;T++)if(e[T]===k){I=T;break}-1!==I&&(t[I][l]=!0)}}!1===u&&!0===d[0]&&0===--g&&(u=!0,d[0]=!1),!1===p&&!0===d[1]&&0===--m&&(p=!0,d[1]=!1),!1===h&&!0===d[2]&&0===--f&&(h=!0,d[2]=!1)}var C=new Array;for(l=0;l<t.length;l++){var A=!0;for(c=0;c<n.certs.length-1;c++)if(void 0===t[l][c]){A=!1;break}!0===A&&C.push(e[l])}var P=new Array;for(l=0;l<C.length;l++)for(c=0;c<i.length;c++)if(i[c]===C[l]){P.push(i[c]);break}return{result:P.length>0,result_code:0,result_message:P.length>0?"":'Zero "user_constr_policies" array, no intersections with "auth_constr_policies"',auth_constr_policies:C,user_constr_policies:P,explicit_policy_indicator:u,policy_mappings:a}})),t=t.then((function(t){function i(t,n){var i=e.org.pkijs.stringPrep(t),o=e.org.pkijs.stringPrep(n),r=i.split("."),a=o.split("."),s=r.length,l=a.length;if(0===s||0===l||s<l)return!1;for(var c=0;c<s;c++)if(0===r[c].length)return!1;for(c=0;c<l;c++)if(0===a[c].length){if(0===c){if(1===l)return!1;continue}return!1}for(c=0;c<l;c++)if(0!==a[l-1-c].length&&0!==r[s-1-c].localeCompare(a[l-1-c]))return!1;return!0}function o(t,n){var o=e.org.pkijs.stringPrep(t),r=e.org.pkijs.stringPrep(n),a=o.split("@"),s=r.split("@");if(0===a.length||0===s.length||a.length<s.length)return!1;if(1===s.length){if(i(a[1],s[0])){var l=a[1].split("."),c=s[0].split(".");return 0===c[0].length||l.length===c.length}return!1}return 0===o.localeCompare(r)}function r(t,n){var o=e.org.pkijs.stringPrep(t),r=e.org.pkijs.stringPrep(n),a=o.split("/");if(r.split("/").length>1)return!1;if(a.length>1)for(var s=0;s<a.length;s++)if(a[s].length>0&&":"!==a[s].charAt(a[s].length-1)){o=a[s].split(":")[0];break}if(i(o,r)){var l=o.split("."),c=r.split(".");return 0===c[0].length||l.length===c.length}return!1}function a(e,t){var n=new Uint8Array(e.value_block.value_hex),i=new Uint8Array(t.value_block.value_hex);if(4===n.length&&8===i.length){for(var o=0;o<4;o++)if((n[o]^i[o])&i[o+4])return!1;return!0}if(16===n.length&&32===i.length){for(o=0;o<16;o++)if((n[o]^i[o])&i[o+16])return!1;return!0}return!1}function s(e,t){if(0===e.types_and_values.length||0===t.types_and_values.length)return!0;if(e.types_and_values.length<t.types_and_values.length)return!1;for(var n=!0,i=0,o=0;o<t.types_and_values.length;o++){for(var r=!1,a=i;a<e.types_and_values.length;a++)if(r=e.types_and_values[a].isEqual(t.types_and_values[o]),e.types_and_values[a].type===t.types_and_values[o].type&&(n=n&&r),!0===r){if(0===i||i===a){i=a+1;break}return!1}if(!1===r)return!1}return 0!==i&&n}if(!1===t.result)return t;_=1;for(var l=n.certs.length-2;l>=0;l--,_++){var c=new Array,u=new Array,p=new Array;if("extensions"in n.certs[l])for(var h=0;h<n.certs[l].extensions.length;h++)"2.5.29.30"===n.certs[l].extensions[h].extnID&&("permittedSubtrees"in n.certs[l].extensions[h].parsedValue&&(u=u.concat(n.certs[l].extensions[h].parsedValue.permittedSubtrees)),"excludedSubtrees"in n.certs[l].extensions[h].parsedValue&&(p=p.concat(n.certs[l].extensions[h].parsedValue.excludedSubtrees))),"2.5.29.17"===n.certs[l].extensions[h].extnID&&(c=c.concat(n.certs[l].extensions[h].parsedValue.altNames));var d=y.length<=0;for(h=0;h<y.length;h++)switch(y[h].base.NameType){case 4:if(y[h].base.Name.types_and_values.length!==n.certs[l].subject.types_and_values.length)continue;d=!0;for(var g=0;g<n.certs[l].subject.types_and_values.length;g++)if(n.certs[l].subject.types_and_values[g].type!==y[h].base.Name.types_and_values[g].type){d=!1;break}if(!0===d)break}if(!1===d)return t.result=!1,t.result_code=21,t.result_message="No neccessary name form found",new Promise((function(e,n){n(t)}));var m=new Array;m[0]=new Array,m[1]=new Array,m[2]=new Array,m[3]=new Array,m[4]=new Array;for(h=0;h<S.length;h++)switch(S[h].base.NameType){case 1:m[0].push(S[h]);break;case 2:m[1].push(S[h]);break;case 4:m[2].push(S[h]);break;case 6:m[3].push(S[h]);break;case 7:m[4].push(S[h])}for(var f=0;f<5;f++){var v=!1,w=!1,k=m[f];for(h=0;h<k.length;h++){switch(f){case 0:if(c.length>0)for(g=0;g<c.length;g++)1===c[g].NameType&&(w=!0,v=v||o(c[g].Name,k[h].base.Name));else for(g=0;g<n.certs[l].subject.types_and_values.length;g++)"1.2.840.113549.1.9.1"!==n.certs[l].subject.types_and_values[g].type&&"0.9.2342.19200300.100.1.3"!==n.certs[l].subject.types_and_values[g].type||(w=!0,v=v||o(n.certs[l].subject.types_and_values[g].value.value_block.value,k[h].base.Name));break;case 1:if(c.length>0)for(g=0;g<c.length;g++)2===c[g].NameType&&(w=!0,v=v||i(c[g].Name,k[h].base.Name));break;case 2:w=!0,v=s(n.certs[l].subject,k[h].base.Name);break;case 3:if(c.length>0)for(g=0;g<c.length;g++)6===c[g].NameType&&(w=!0,v=v||r(c[g].Name,k[h].base.Name));break;case 4:if(c.length>0)for(g=0;g<c.length;g++)7===c[g].NameType&&(w=!0,v=v||a(c[g].Name,k[h].base.Name))}if(v)break}if(!1===v&&k.length>0&&w)return t.result=!1,t.result_code=41,t.result_message='Failed to meet "permitted sub-trees" name constraint',new Promise((function(e,n){n(t)}))}var E=!1;for(h=0;h<b.length;h++){switch(b[h].base.NameType){case 1:if(c.length>=0)for(g=0;g<c.length;g++)1===c[g].NameType&&(E=E||o(c[g].Name,b[h].base.Name));else for(g=0;g<n.subject.types_and_values.length;g++)"1.2.840.113549.1.9.1"!==n.subject.types_and_values[g].type&&"0.9.2342.19200300.100.1.3"!==n.subject.types_and_values[g].type||(E=E||o(n.subject.types_and_values[g].value.value_block.value,b[h].base.Name));break;case 2:if(c.length>0)for(g=0;g<c.length;g++)2===c[g].NameType&&(E=E||i(c[g].Name,b[h].base.Name));break;case 4:E=E||s(n.certs[l].subject,b[h].base.Name);break;case 6:if(c.length>0)for(g=0;g<c.length;g++)6===c[g].NameType&&(E=E||r(c[g].Name,b[h].base.Name));break;case 7:if(c.length>0)for(g=0;g<c.length;g++)7===c[g].NameType&&(E=E||a(c[g].Name,b[h].base.Name))}if(E)break}if(!0===E)return t.result=!1,t.result_code=42,t.result_message='Failed to meet "excluded sub-trees" name constraint',new Promise((function(e,n){n(t)}));S=S.concat(u),b=b.concat(p)}return t})),t}}("undefined"!=typeof exports?exports:window);class Snackbar{constructor(e=""){this.snackbar=null,this.customClassName=e,this.createSnackbar()}createSnackbar(){if(this.snackbar=document.createElement("div"),this.snackbar.id="websign-snackbar",this.customClassName)this.snackbar.className=this.customClassName;else{const e=document.body.dataset.websignSnackbarClass;e&&(this.snackbar.className=e)}this.snackbar.style.position="fixed",this.snackbar.style.bottom="20px",this.snackbar.style.left="50%",this.snackbar.style.transform="translateX(-50%)",this.snackbar.style.minWidth="300px",this.snackbar.style.padding="20px 25px",this.snackbar.style.boxShadow="0 4px 6px rgba(0, 0, 0, 0.1)",this.snackbar.style.fontSize="20px",this.snackbar.style.color="#fff",this.snackbar.style.display="none",this.snackbar.style.zIndex="100000",this.snackbar.style.textAlign="center",this.snackbar.style.borderRadius="inherit",document.body.appendChild(this.snackbar)}show(e,t="info",n=3e3){if(this.snackbar.textContent=e,this.snackbar.classList.remove("info","error","success"),this.snackbar.classList.add(t),this.customClassName||document.body.dataset.websignSnackbarClass);else switch(t){case"info":default:this.snackbar.style.backgroundColor="#0057A2";break;case"error":this.snackbar.style.backgroundColor="#A20006";break;case"success":this.snackbar.style.backgroundColor="#4CAF50"}this.snackbar.style.display="block",this.snackbar.style.opacity="1",this.snackbar.style.transition="opacity 0.3s ease",setTimeout((()=>this.hide()),n)}hide(){this.snackbar.style.opacity="0",this.snackbar.style.transition="opacity 0.3s ease",setTimeout((()=>{this.snackbar.style.display="none"}),300)}}let snackbarInstance=null;function handleDebugMessage(e,t="error",n=!0){if(snackbarInstance||(snackbarInstance=new Snackbar),n){if("error"===t)console.error(`%cERROR: %c${e}`,"background: #fb3132; color: white; font-weight: bold; padding: 2px 4px;","color: red;");else console.log(`%cINFO: %c${e}`,"background:#3199fb; color: white; font-weight: bold; padding: 2px 4px;","color: #3199fb;");snackbarInstance.show(e,t)}}let DEBUG_MODE=!1;function isWebUsbSupported(){return!!navigator.usb&&"function"==typeof navigator.usb.getDevices}function isWebHidSupported(){return!!navigator.hid&&"function"==typeof navigator.hid.getDevices}async function setTypeOfDeviceToUse(e){return DEBUG_MODE=e.debug,await hasSTUConnected()?"stu":await hasDTUConnected()?"dtu":await requestSTUDevices()?"stu":(handleDebugMessage("Usando modo display","info",DEBUG_MODE),"display")}async function hasSTUConnected(){if(!isWebHidSupported())return handleDebugMessage("WebHID API no soportada en este navegador","info",DEBUG_MODE),!1;try{const e=(await navigator.hid.getDevices()).length>0;return e&&handleDebugMessage("STU conectado","info",DEBUG_MODE),e}catch(e){return handleDebugMessage("Error al comprobar dispositivos HID","error",DEBUG_MODE),!1}}async function requestSTUDevices(){try{const e=(await com.WacomGSS.STU.UsbDevice.requestDevices()).length>0;return e&&handleDebugMessage("STU conectado tras solicitud","info",DEBUG_MODE),e}catch(e){return handleDebugMessage("Error al solicitar dispositivos STU, "+e,"error",DEBUG_MODE),!1}}async function hasDTUConnected(){if(!("getScreenDetails"in window))return handleDebugMessage("API getScreenDetails no soportada","error",DEBUG_MODE),!1;try{const{screens:e}=await window.getScreenDetails(),t=e.some((e=>isCompatibleTabletScreen(e)));return t&&handleDebugMessage("DTU detectado","info",DEBUG_MODE),t}catch(e){return handleDebugMessage("Error al comprobar pantallas DTU, "+e,"error",DEBUG_MODE),!1}}async function getFirstDeviceConnected(){if(isWebHidSupported()){const e=await navigator.hid.getDevices();if(e.length>0)return e[0]}try{let e=await com.WacomGSS.STU.UsbDevice.requestDevices();return e.length>0?e[0]:(console.warn("No Wacom devices found."),null)}catch(e){return console.error("Error requesting Wacom devices:",e),null}}async function requestUsbPermission(){if(!isWebUsbSupported())return console.warn("WebUSB API no soportada en este navegador."),null;try{const e=await navigator.usb.getDevices(),t=[1386,1027,10429,21827,12073];let n=e[0];return n||(n=await navigator.usb.requestDevice({filters:t.map((e=>({vendorId:e})))})),n}catch(e){console.log(e)}}async function getWacomEncodingMode(e,t,n=null){let i;const o=await com.WacomGSS.STU.Protocol.ProtocolHelper.simulateEncodingFlag(e.getProductId(),t.encodingFlag),r=await e.supportsWrite();return i=24===n&&o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:16===n&&o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:1===n?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:o&com.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit?r?com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit,i}function isWacomSupportingColor(e){return e&&e!==com.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit}function ButtonEBP(){this.Bounds,this.Type}function STURectangle(e,t,n,i){this.x=e,this.y=t,this.width=n,this.height=i,this.Contains=function(e){return e.x>=this.x&&e.x<=this.x+this.width&&e.y>=this.y&&e.y<=this.y+this.height}}function tabletToScreen(e,t,n){return{x:e.x*t,y:e.y*n}}function getPenOrientation(e){let t=0,n=0;if(void 0!==e.altitudeAngle&&void 0!==e.azimuthAngle)t=e.altitudeAngle,n=e.azimuthAngle;else{let i=function(e,t){const n=e*Math.PI/180,i=t*Math.PI/180;let o=0;if(0==e)t>0?o=Math.PI/2:t<0&&(o=3*Math.PI/2);else if(0==t)e<0&&(o=Math.PI);else if(90==Math.abs(e)||90==Math.abs(t))o=0;else{const e=Math.tan(n),t=Math.tan(i);o=Math.atan2(t,e),o<0&&(o+=2*Math.PI)}let r=0;r=90==Math.abs(e)||90==Math.abs(t)?0:0==e?Math.PI/2-Math.abs(i):0==t?Math.PI/2-Math.abs(n):Math.atan(1/Math.sqrt(Math.pow(Math.tan(n),2)+Math.pow(Math.tan(i),2)));return{altitudeAngle:r,azimuthAngle:o}}(e.tiltX,e.tiltY);t=i.altitudeAngle,n=i.azimuthAngle}return{altitude:t,azimuth:n,twist:e.twist}}function rgb3216(e,t,n){return(248&e)<<8|(252&t)<<3|(248&n)>>3}function hexToRgb(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function isCompatibleTabletScreen(e){const t=(e.label||"").toLowerCase();return["dtu","nt10","dth","1070","citrix"].some((e=>t.includes(e)))}function requestLocation(e=5e3){return navigator.geolocation?new Promise((t=>{const n=setTimeout((()=>t(null)),e);navigator.geolocation.getCurrentPosition((e=>{clearTimeout(n),t(e)}),(()=>{clearTimeout(n),t(null)}))})):Promise.resolve(null)}async function getBioData(e,t,n,i,o,r,a,s,l,c,u,p,h=null,d=null){i.every((e=>1===e.p))&&(applyPseudoPressure(i),smoothPressure(i));let g=!1;var m=new Array;for(let e=0;e<i.length;e++)(i[e].isDown||g)&&(g=!0,m.push({x:Math.floor(i[e].x),y:Math.floor(i[e].y),press:Math.floor(1e3*i[e].p),sw:"down"==i[e].type||"move"==i[e].type?1:0,time:i[e].t}));const f=`WebSign|${t}|SHA2-512 PDF: ${n}`,S=await buildDigitizerInfo(e,c,u,h);let b="";if(i.length>0){const e={longitude:d&&d.coords.longitude||0,latitude:d&&d.coords.latitude||0,altitude:d&&d.coords.altitude||0,accuracy:d&&d.coords.accuracy||0,time:d&&d.timestamp||0};b=btoa(`<GPS>${e.longitude};${e.latitude};${e.altitude};${e.accuracy};${e.time}</GPS>`)}return[{MAX_X:a,MAX_Y:s,MAX_PRESS:1e3,LCD_WIDTH:a,LCD_HEIGHT:s,LX:0,RX:a,TY:0,BY:s,TIME_START:getDateBioFormat(o),TIME_END:getDateBioFormat(new Date),HARDWARE:btoa(S),SOFTWARE:btoa(f),EXTRA:b,VAR:await getVar(e,p)},m,r]}async function buildDigitizerInfo(e,t,n,i){const o=i?.isSignotecDevice?.(),r=e.signatureType;if(o){const e=t?.information||t;return`${e?.modelName||"Signotec"}|${e?.firmwareVersion||"N/A"}|${e?.serialNumber||"Unknown"}`}if(t&&"dtu"!==r){const{modelName:e,firmwareMajorVersion:i,firmwareMinorVersion:o}=t,{uid:r,uid2:a}=n||{},s=parseInt(o)||0;return`${e}|${`${i}.${s>>4&15}.${15&s}`}|${a}|${r}`}if(i&&"dtu"===r){const{modelName:e,firmwareVersion:n,serialNumber:i}=t||{};return`${e}|${n}|${i}`}if("dtu"===r){const e=await getDeviceSerial(),t=await getDTUScreen();return`${t?.label||"Unknown DTU Device"}|${navigator.userAgent}|${e}`}return`ecoSignatureHTML5|${navigator.userAgent}`}async function getVar(e,t){var n="Variables resueltas:|||";if(e.wacom.enableInitialEbp&&e.wacom.varInitialEbp&&(n+=e.wacom.varInitialEbp+"|||"),e.wacom.enableEbp&&"display"!=e.signatureType){let i,o;i=t?e.wacom.colorEbp:e.wacom.blackAndWhiteEbp,n+=e.wacom.varEbp,o=isBase64(i)?i:await getBase64FromUrl(i),n+="|||URL EBP=[LOCAL]|||SHA2-512 EBP="+await calculateSha2(o)}return btoa(n.replaceAll("|||","\n"))}function isBase64(e){return/^[A-Za-z0-9+/]+={0,2}$/.test(e)&&e.length%4==0}function convertToPlainBioData(e){var t="";t+="MAX_X;MAX_Y;MAX_PRESS;LCD_WIDTH;LCD_HEIGHT;LX;RX;TY;BY;TIME_START;TIME_END;HARDWARE;SOFTWARE;EXTRA;VAR\n",t+=e[0].MAX_X+";"+e[0].MAX_Y+";"+e[0].MAX_PRESS+";"+e[0].LCD_WIDTH+";"+e[0].LCD_HEIGHT+";"+e[0].LX+";"+e[0].RX+";"+e[0].TY+";"+e[0].BY+";"+e[0].TIME_START+";"+e[0].TIME_END+";"+e[0].HARDWARE+";"+e[0].SOFTWARE+";"+e[0].EXTRA+";"+e[0].VAR+"\n",t+="X;Y;PRESS;SW;TIME\n";for(let n=0;n<e[1].length;n++)t+=e[1][n].x+";"+e[1][n].y+";"+e[1][n].press+";"+e[1][n].sw+";"+e[1][n].time+"\n";return t}function getDateBioFormat(e){var t=e.getFullYear(),n=e.getMonth()<9?"0"+(e.getMonth()+1):e.getMonth()+1,i=e.getDate()<10?"0"+e.getDate():e.getDate(),o=e.getHours()<10?"0"+e.getHours():e.getHours(),r=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes(),a=e.getSeconds()<10?"0"+e.getSeconds():e.getSeconds();return"".concat(i).concat("/").concat(n).concat("/").concat(t).concat("@").concat(o).concat(":").concat(r).concat(":").concat(a)}async function calculateSHA512(e,t){try{const t=await crypto.subtle.digest("SHA-512",e);return Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){console.error("Error al calcular el hash:",e),t("Error al calcular el hash, necesario HTTPS")}}async function calculateSha2(e){const t=window.atob(e),n=t.length;let i=new Uint8Array(n);for(var o=0;o<n;o++)i[o]=t.charCodeAt(o);return crypto.subtle.digest("SHA-512",i.buffer).then((e=>Array.prototype.map.call(new Uint8Array(e),(e=>("00"+e.toString(16)).slice(-2))).join("")))}async function getDeviceId(e,t=null,n=null,i=null){switch(e){case"stu":let e="";return n&&n.modelName&&(e=n.modelName),0!==t?.uid2?`${e}-${t?.uid2}`:`${e}-${t?.uid}`;case"display":return getOrCreateDeviceUUID("displayDeviceId",null);case"dtu":if(i){const e=i.getCurrentDeviceInfo().availableDevices;return`${e[0].model}-${e[0].serialNumber}`}return await getDTUDeviceWithScreen();default:return null}}async function getDeviceSerial(){try{const e=(await navigator.usb.getDevices())[0];return e&&e.serialNumber?e.serialNumber:null}catch(e){return console.error("Error al obtener el dispositivo:",e),null}}function normalizeSize(e){return e<=10?e:e>10?e/100:e}function applyPseudoPressure(e){for(const t of e){if(null==t.width||null==t.height)continue;const e=normalizeSize((t.width+t.height)/3);let n=e>1?1:e;const i=.01;n=Math.max(i,n),t.p=n}}function smoothPressure(e,t=1){if(!e||e.length<2)return;const n=e.map((e=>e.p));for(let i=0;i<e.length;i++){let o=0,r=0;for(let e=i-t;e<=i+t;e++)e>=0&&e<n.length&&(o+=n[e],r++);e[i].p=Number((o/r).toFixed(4))}}async function getDTUDeviceWithScreen(){try{const e=await getDeviceSerial();if(!e)return null;const t=await getDTUScreen();if(t){return`${t.label||"Unknown DTU Device"}-${e}`}return null}catch(e){return console.error("Error en la obtención del dispositivo DTU con pantalla:",e),null}}async function getDTUScreen(){try{const e=await window.getScreenDetails();return e.screens.find((e=>isCompatibleTabletScreen(e)))}catch(e){return console.error("Error al obtener los detalles de la pantalla DTU:",e),null}}function getOrCreateDeviceUUID(e,t){let n=localStorage.getItem(e);return n||(n=t&&t.trim()?`${t}-${crypto.randomUUID()}`:crypto.randomUUID(),localStorage.setItem(e,n)),n}function ecoBioPreSignEnc(e,t=null){let n;n=null===t?"-----BEGIN CERTIFICATE-----MIIFmTCCBIGgAwIBAgICMTQwDQYJKoZIhvcNAQEFBQAwgcgxCzAJBgNVBAYTAkVTMREwDwYDVQQIEwhHaXB1emNvYTEWMBQGA1UEBxMNU2FuIFNlYmFzdGlhbjEkMCIGA1UEChMbZWRhdGFsaWEgZGF0YSBzb2x1dGlvbnMsIFNMMSAwHgYDVQQLExdJbm5vdmFjaW9uIHkgVGVjbm9sb2ftYTEgMB4GA1UEAxMXZWRhdGFsaWEgZGF0YSBzb2x1dGlvbnMxJDAiBgkqhkiG9w0BCQETFWVkYXRhbGlhQGVkYXRhbGlhLmNvbTAgFw0xMDAxMDEwMDAwMDBaGA8yMDUwMTIzMTAwMDAwMFowgb4xCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlHdWlwdXpjb2ExFjAUBgNVBAcTDVNhbiBTZWJhc3RpYW4xJDAiBgNVBAoTG2VkYXRhbGlhIGRhdGEgc29sdXRpb25zLCBTTDEVMBMGA1UECxMMZWNvQmlvbWV0cmljMSAwHgYDVQQDExdlZGF0YWxpYSBkYXRhIHNvbHV0aW9uczEkMCIGCSqGSIb3DQEJARMVZWRhdGFsaWFAZWRhdGFsaWEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAplaDksTwFwWVYpCPgPDbwW+u8ugOtSG0Iycfciqj9BJxcv0fqYICWapUHtLLvQLJvRbN+OxLPI0XAygfEbBkWKT9MqRyCw1hB0DRj01+GHSgN1V5chIc1++XSifvIbZDW+rXV3kYEJC1xXvXy2q+Ol75Q61+L98nCANBmDx1hMcxrkumbysvfLJXOQLtglUGjk10E9hsX0nH7PgUxrbuG+Qwi0pMyl3ijmAuSQnNm+4poq7svT9/b8oDleYaaAguu2/1HoBEGYo+nKn2paNfnhxM+Eax0nFo/T4JJ6TJlOUAIlRQTuE1LgLChJM69holeBeVHpEAXGdtrQXbMGgGLwIDAQABo4IBkTCCAY0wIAYDVR0OAQEABBYEFLMOxbM9CYjDC9zvstzWHl7Xchu0MBIGA1UdEwEBAAQIMAYBAQACAQAwDwYDVR0PAQEABAUDAwDwADAuBgNVHRABAQAEJDAigA8yMDEwMDEwMTAwMDAwMFqBDzIwNTAxMjMxMDAwMDAwWjCBygYDVR0gAQEABIG/MIG8MIG5BgNVHSAwgbEwPAYIKwYBBQUHAgEWMGh0dHA6Ly93d3cua3NpdGRpZ2l0YWwuY29tL2NvbnZlbmlvL3BvbF9jZXJ0LnBkZjBxBggrBgEFBQcCAjBlMAQWADAAGl1DZXJ0aWZpY2FkbyBleHBlZGlkbyBjb24gdXRpbGlkYWQgcHJvcGlldGFyaWEgZGUgS1NJIFRlY25vbG9n7WEgRGlnaXRhbC4gd3d3LmtzaXRkaWdpdGFsLmNvbSAwIwYDVR0RAQEABBkwF4EVZWRhdGFsaWFAZWRhdGFsaWEuY29tMAwGA1UdJQEBAAQCMAAwFAYJYIZIAYb4QgEBAQEABAQDAgCgMA0GCSqGSIb3DQEBBQUAA4IBAQDToKovX3vbwsZ80fj8fWLDmdRkKG4FHFkbVMTOYi9MFKvI5jb8E7dOVG/EhJqfQH5CdEiUmpRiWayiTKo0XxDh/IAnqswOU5DMVyjBxbx11vedjALVbndPpXpOCpmgGf7UlPo1mBAPkwKrU3gVyYd9NxpYW414BoXAwTfUOwov57Q3+R/NiVFwFHFXSHxigtzJG5nFY0U2XrcCYWSl7jmdByhKZur0cKnkg+Z9rGETyIJI46DdluCTZvxd30ZXvq+bzMiTXx+QDFg4/zHuhx3V//dsUd2NBv0Ca/njJyK8I2QvQ38IVNfeywPnT5vo01D3qT2UN8jC7wW2mAxmPpzO-----END CERTIFICATE-----":t;const i=btoa(n);return new Promise(((t,n)=>{const r=e,a=[...r.split("\n").slice(0,2).join("\n")].map((e=>e.charCodeAt(0)));let s=new Uint8Array(a);const l=pako.deflate(s),c=btoa(String.fromCharCode.apply(null,Array.from(l)));s=function(e){const t=e.split("\n").filter((e=>e.length>0)),n=t[1].split(";"),i=parseInt(n[0],10),r=parseInt(n[1],10),a=parseInt(n[2],10);let s=[];Array.prototype.push.apply(s,[..."SDI"].map((e=>e.charCodeAt(0)))),s.push(0),Array.prototype.push.apply(s,[..." 10"].map((e=>e.charCodeAt(0)))),s.push(0),s.push(192),s.push(192),s.push(96),s=o(0,s),s=o(i,s),s.push(96),s=o(0,s),s=o(r,s),s.push(96),s=o(0,s),s=o(a,s),s.push(96),s.push(0),s.push(0),s.push(255),s.push(255),s.push(0),s.push(1),s=function(e,t){const n=new Uint32Array(1);n[0]=e;const i=new Uint8Array(n.buffer),o=new Uint8Array(i.length),r=i.length;if(67305985===new Uint32Array(new Uint8Array([1,2,3,4]).buffer)[0]){for(let e=0;e<r;e++)o[r-e-1]=i[e];for(let e=1;e<o.length;e++)t.push(o[e])}else for(let e=0;e<o.length-1;e++)t.push(o[e]);return t}(t.length-3,s);const l=32768;for(let e=3;e<t.length;e++){const n=t[e].split(";");s=o(parseInt(n[0],10)+l,s),s=o(parseInt(n[1],10)+l,s),s=o(parseInt(n[2],10),s),s=o(parseInt(n[4],10),s)}const c=t[1].length;return s=o(c,s),Array.prototype.push.apply(s,[...t[1]].map((e=>e.charCodeAt(0)))),new Uint8Array(s)}(r);const u=pako.deflate(s),p=atob(i).replace(/(-----(BEGIN|END) CERTIFICATE-----|\n)/g,""),h=atob(p),d=(g=h,new Uint8Array([...g].map((e=>e.charCodeAt(0)))).buffer);var g;const m=org.pkijs.fromBER(d),f=new org.pkijs.simpl.CERT({schema:m.result}),S=new org.pkijs.simpl.CMS_ENVELOPED_DATA;S.addRecipientByCertificate(f,{oaepHasAlgorithm:"SHA-512"}),S.encrypt({name:"AES-CBC",length:256},u.buffer).then((()=>{const e=new org.pkijs.simpl.CMS_CONTENT_INFO;e.contentType="1.2.840.113549.1.7.3",e.content=S.toSchema();const n=e.toSchema().toBER(!1),i=String.fromCharCode.apply(null,Array.from(new Uint8Array(n))),o=btoa(i);t({public:c,private:o})})).catch((e=>{n(e)}))}));function o(e,t){const n=new Uint16Array(1);n[0]=e;const i=new Uint8Array(n.buffer);let o=new Uint8Array(i.length);const r=i.length;if(67305985===new Uint32Array(new Uint8Array([1,2,3,4]).buffer)[0])for(let e=0;e<r;e++)o[r-e-1]=i[e];else o=i;for(const e of o)t.push(e);return t}}function pngToJpeg(e){return new Promise(((t,n)=>{var i=new Image;i.onload=function(){var e=document.createElement("canvas");e.width=i.naturalWidth,e.height=i.naturalHeight;var n=e.getContext("2d");n.fillStyle="#ffffff",n.fillRect(0,0,e.width,e.height),n.drawImage(i,0,0,i.naturalWidth,i.naturalHeight);var o=e.toDataURL("image/jpeg",.4);t(o.substr(o.indexOf(",")+1))},i.src=e}))}async function loadImageFromPath(e){const t=new Image;return t.crossOrigin="Anonymous",t.src=e,t.complete||await new Promise((e=>{t.onload=()=>{e(t)},t.onerror=()=>{e()}})),t}async function drawImageToCanvas(e){return new Promise(((t,n)=>{let i=new Image;i.onload=()=>{let e=document.createElement("canvas");e.width=i.width,e.height=i.height,e.getContext("2d").drawImage(i,0,0),t(e)},i.onerror=n,i.src=e}))}function getImageDimensions(e){return new Promise(((t,n)=>{const i=new Image;i.onload=()=>t({width:i.naturalWidth,height:i.naturalHeight}),i.onerror=n,i.src=e}))}class Performance{static totalTime=0;static async logWithTimeAndBox(e,t,n){if(n){const n=performance.now();await t();const i=((performance.now()-n)/1e3).toFixed(2);Performance.totalTime+=parseFloat(i);const o=[`Function: ${e}`,`Execution Time: ${i} seconds`],r=Math.max(...o.map((e=>e.length))),a=`+${"-".repeat(r+2)}+`,s=[a,...o.map((e=>`| ${e.padEnd(r)} |`)),a].join("\n");console.log(s);const l=`Total Accumulated Time: ${Performance.totalTime.toFixed(2)} seconds`,c=l.length,u=`+${"-".repeat(c+2)}+`,p="",h=[u,`| ${""}${l.padEnd(c)}${p} |`,u].join("\n");console.log("\n"+h)}else await t()}static resetTime(){this.totalTime=0}}var t;t=com$1||(com$1={}),function(e){class t extends Error{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t){let e=arguments[0];super(e),this.message=e}else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e),this.message=e;else super(e),this.message=e}}e.Exception=t,t.__class="com.WacomGSS.Exception",t.__interfaces=["java.io.Serializable"]}(t.WacomGSS||(t.WacomGSS={})),function(e){!function(e){class t extends Error{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t){let e=arguments[0];super(e),this.message=e}else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e),this.message=e;else super(e),this.message=e}}e.RuntimeException=t,t.__class="com.WacomGSS.RuntimeException",t.__interfaces=["java.io.Serializable"]}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.Exception{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.STUException=n,n.__class="com.WacomGSS.STU.STUException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.RSA1024=0]="RSA1024",e[e.RSA1536=1]="RSA1536",e[e.RSA2048=2]="RSA2048"}(t=e.AsymmetricKeyType||(e.AsymmetricKeyType={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.AsymmetricKeyType_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.AsymmetricKeyType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"RSA1024",0),new n(1,"RSA1536",1),new n(2,"RSA2048",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.None=0]="None",e[e.PKCS1=1]="PKCS1",e[e.OAEP=2]="OAEP"}(t=e.AsymmetricPaddingType||(e.AsymmetricPaddingType={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.AsymmetricPaddingType_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.AsymmetricPaddingType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"None",0),new n(1,"PKCS1",1),new n(2,"OAEP",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{}t.STU500=115200,t.STU430_530=460800,e.BaudRate=t,t.__class="com.WacomGSS.STU.Protocol.BaudRate"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Disable=0]="Disable",e[e.Enable=1]="Enable"}(t=e.BootScreenFlag||(e.BootScreenFlag={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.BootScreenFlag_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.BootScreenFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"Disable",0),new n(1,"Enable",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i,o,r,a,s){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||"boolean"!=typeof s&&null!==s)throw new Error("invalid overload");{let s=arguments[7];void 0===this.tabletMaxX&&(this.tabletMaxX=0),void 0===this.tabletMaxY&&(this.tabletMaxY=0),void 0===this.tabletMaxPressure&&(this.tabletMaxPressure=0),void 0===this.screenWidth&&(this.screenWidth=0),void 0===this.screenHeight&&(this.screenHeight=0),void 0===this.maxReportRate&&(this.maxReportRate=0),void 0===this.resolution&&(this.resolution=0),void 0===this.zlibColorSupport&&(this.zlibColorSupport=!1),void 0===this.encodingFlag&&(this.encodingFlag=0),this.tabletMaxX=e,this.tabletMaxY=t,this.tabletMaxPressure=n,this.screenWidth=i,this.screenHeight=o,this.maxReportRate=r,this.resolution=a,this.zlibColorSupport=s,this.encodingFlag=s?1:0}}else void 0===this.tabletMaxX&&(this.tabletMaxX=0),void 0===this.tabletMaxY&&(this.tabletMaxY=0),void 0===this.tabletMaxPressure&&(this.tabletMaxPressure=0),void 0===this.screenWidth&&(this.screenWidth=0),void 0===this.screenHeight&&(this.screenHeight=0),void 0===this.maxReportRate&&(this.maxReportRate=0),void 0===this.resolution&&(this.resolution=0),void 0===this.zlibColorSupport&&(this.zlibColorSupport=!1),void 0===this.encodingFlag&&(this.encodingFlag=0),this.tabletMaxX=e,this.tabletMaxY=t,this.tabletMaxPressure=n,this.screenWidth=i,this.screenHeight=o,this.maxReportRate=r,this.resolution=a,this.zlibColorSupport=!!(1&s),this.encodingFlag=s}getTabletMaxX(){return this.tabletMaxX}getTabletMaxY(){return this.tabletMaxY}getTabletMaxPressure(){return this.tabletMaxPressure}getScreenWidth(){return this.screenWidth}getScreenHeight(){return this.screenHeight}getMaxReportRate(){return this.maxReportRate}getResolution(){return this.resolution}getZlibColorSupport(){return this.zlibColorSupport}getEncodingFlag(){return this.encodingFlag}}e.Capability=t,t.__class="com.WacomGSS.STU.Protocol.Capability"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.HID=0]="HID",e[e.Serial=1]="Serial"}(t=e.DefaultMode||(e.DefaultMode={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.DefaultMode_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.DefaultMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"HID",1),new n(1,"Serial",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof n&&null!==n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==n)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-n<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,n,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}}t.txtError="invalid length",t.myLength=16,e.PublicKey=t,t.__class="com.WacomGSS.STU.Protocol.PublicKey"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.PublicKey{constructor(e,t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof t&&null!==t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==t)throw new Error("invalid overload");super(e)}else super(e,t)}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$()),n.reportId}}n.reportSize=16,t.DevicePublicKey=n,n.__class="com.WacomGSS.STU.Protocol.DevicePublicKey"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof n&&null!==n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==n)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-n<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,n,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}}t.txtError="invalid length",t.myLength=2,e.DHbase=t,t.__class="com.WacomGSS.STU.Protocol.DHbase"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof n&&null!==n){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==n)throw new Error("invalid overload");if(void 0===this.value&&(this.value=null),e.length!==t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=e.slice(0)}else{if(void 0===this.value&&(this.value=null),e.length-n<t.myLength)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.value=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.myLength),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,n,this.value,0,t.myLength)}}getValue(){return this.value.slice(0)}isEmpty(){let e=!0;for(let t=0;t<this.value.length;t++)if(0!==this.value[t]){e=!1;break}return e}}t.txtError="invalid length",t.myLength=16,e.DHprime=t,t.__class="com.WacomGSS.STU.Protocol.DHprime"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static EncodingFlag_Zlib_$LI$(){return null==t.EncodingFlag_Zlib&&(t.EncodingFlag_Zlib=1),t.EncodingFlag_Zlib}static EncodingFlag_1bit_$LI$(){return null==t.EncodingFlag_1bit&&(t.EncodingFlag_1bit=2),t.EncodingFlag_1bit}static EncodingFlag_16bit_$LI$(){return null==t.EncodingFlag_16bit&&(t.EncodingFlag_16bit=4),t.EncodingFlag_16bit}static EncodingFlag_24bit_$LI$(){return null==t.EncodingFlag_24bit&&(t.EncodingFlag_24bit=8),t.EncodingFlag_24bit}}e.EncodingFlag=t,t.__class="com.WacomGSS.STU.Protocol.EncodingFlag"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.EncodingMode_1bit=0]="EncodingMode_1bit",e[e.EncodingMode_1bit_ZLib=1]="EncodingMode_1bit_ZLib",e[e.EncodingMode_16bit=2]="EncodingMode_16bit",e[e.EncodingMode_24bit=3]="EncodingMode_24bit",e[e.EncodingMode_1bit_Bulk=4]="EncodingMode_1bit_Bulk",e[e.EncodingMode_16bit_Bulk=5]="EncodingMode_16bit_Bulk",e[e.EncodingMode_24bit_Bulk=6]="EncodingMode_24bit_Bulk"}(t=e.EncodingMode||(e.EncodingMode={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}static EncodingMode_Raw_$LI$(){return null==n.EncodingMode_Raw&&(n.EncodingMode_Raw=0),n.EncodingMode_Raw}static EncodingMode_Zlib_$LI$(){return null==n.EncodingMode_Zlib&&(n.EncodingMode_Zlib=1),n.EncodingMode_Zlib}static EncodingMode_16bit_565_$LI$(){return null==n.EncodingMode_16bit_565&&(n.EncodingMode_16bit_565=2),n.EncodingMode_16bit_565}static EncodingMode_Bulk_$LI$(){return null==n.EncodingMode_Bulk&&(n.EncodingMode_Bulk=16),n.EncodingMode_Bulk}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncodingMode_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.EncodingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"EncodingMode_1bit",0),new n(1,"EncodingMode_1bit_ZLib",1),new n(2,"EncodingMode_16bit",2),new n(3,"EncodingMode_24bit",4),new n(4,"EncodingMode_1bit_Bulk",16),new n(5,"EncodingMode_16bit_Bulk",18),new n(6,"EncodingMode_24bit_Bulk",20)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,i,o,r,a,s){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if("number"!=typeof t&&null!==t||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||void 0!==a||void 0!==s)throw new Error("invalid overload");if(void 0===this.encryptionCommandNumber&&(this.encryptionCommandNumber=0),void 0===this.parameter&&(this.parameter=0),void 0===this.lengthOrIndex&&(this.lengthOrIndex=0),void 0===this.data&&(this.data=null),null!=r&&r.length>n.maxDataLength)throw Object.defineProperty(new Error(n.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.encryptionCommandNumber=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),this.parameter=i,this.lengthOrIndex=o,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.maxDataLength),null!=r&&((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(r,0,this.data,0,r.length)}else{if(void 0===this.encryptionCommandNumber&&(this.encryptionCommandNumber=0),void 0===this.parameter&&(this.parameter=0),void 0===this.lengthOrIndex&&(this.lengthOrIndex=0),void 0===this.data&&(this.data=null),null==r&&0!==s)throw Object.defineProperty(new Error(n.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(s<0||s>n.maxDataLength||null!=r&&r.length-a<s)throw Object.defineProperty(new Error(n.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.encryptionCommandNumber=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),this.parameter=i,this.lengthOrIndex=o,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.maxDataLength),null!=r&&((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(r,a,this.data,0,s)}}getEncryptionCommandNumber(){return this.encryptionCommandNumber}getParameter(){return this.parameter}getLengthOrIndex(){return this.lengthOrIndex}getData(){return this.data}}n.maxDataLength=64,n.txtError="invalid data length",t.EncryptionCommand=n,n.__class="com.WacomGSS.STU.Protocol.EncryptionCommand"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.SetEncryptionType=0]="SetEncryptionType",e[e.SetParameterBlock=1]="SetParameterBlock",e[e.GetStatusBlock=2]="GetStatusBlock",e[e.GetParameterBlock=3]="GetParameterBlock",e[e.GenerateSymmetricKey=4]="GenerateSymmetricKey"}(t=e.EncryptionCommandNumber||(e.EncryptionCommandNumber={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncryptionCommandNumber_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.EncryptionCommandNumber",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"SetEncryptionType",1),new n(1,"SetParameterBlock",2),new n(2,"GetStatusBlock",3),new n(3,"GetParameterBlock",4),new n(4,"GenerateSymmetricKey",5)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.RSAe=0]="RSAe",e[e.RSAn=1]="RSAn",e[e.RSAc=2]="RSAc",e[e.RSAm=3]="RSAm"}(t=e.EncryptionCommandParameterBlockIndex||(e.EncryptionCommandParameterBlockIndex={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EncryptionCommandParameterBlockIndex_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"RSAe",0),new n(1,"RSAn",1),new n(2,"RSAc",2),new n(3,"RSAm",3)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(e,t,n,i,o,r,a,s,l,c){void 0===this.symmetricKeyType&&(this.symmetricKeyType=0),void 0===this.asymmetricPaddingType&&(this.asymmetricPaddingType=0),void 0===this.asymmetricKeyType&&(this.asymmetricKeyType=0),void 0===this.statusCodeRSAe&&(this.statusCodeRSAe=0),void 0===this.statusCodeRSAn&&(this.statusCodeRSAn=0),void 0===this.statusCodeRSAc&&(this.statusCodeRSAc=0),void 0===this.lastResultCode&&(this.lastResultCode=0),void 0===this.rng&&(this.rng=!1),void 0===this.sha1&&(this.sha1=!1),void 0===this.aes&&(this.aes=!1),this.symmetricKeyType=e,this.asymmetricPaddingType=t,this.asymmetricKeyType=n,this.statusCodeRSAe=i,this.statusCodeRSAn=o,this.statusCodeRSAc=r,this.lastResultCode=a,this.rng=s,this.sha1=l,this.aes=c}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()),n.reportId}getSymmetricKeyType(){return this.symmetricKeyType}getAsymmetricPaddingType(){return this.asymmetricPaddingType}getAsymmetricKeyType(){return this.asymmetricKeyType}getStatusCodeRSAe(){return this.statusCodeRSAe}getStatusCodeRSAn(){return this.statusCodeRSAn}getStatusCodeRSAc(){return this.statusCodeRSAc}getLastResultCode(){return this.lastResultCode}getRng(){return this.rng}getSha1(){return this.sha1}getAes(){return this.aes}}n.reportSize=16,t.EncryptionStatus=n,n.__class="com.WacomGSS.STU.Protocol.EncryptionStatus"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Commit=0]="Commit",e[e.Abandon=1]="Abandon"}(t=e.EndImageDataFlag||(e.EndImageDataFlag={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.EndImageDataFlag_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.EndImageDataFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"Commit",0),new n(1,"Abandon",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static None_$LI$(){return null==t.None&&(t.None=0),t.None}static WrongReportId_$LI$(){return null==t.WrongReportId&&(t.WrongReportId=1),t.WrongReportId}static WrongState_$LI$(){return null==t.WrongState&&(t.WrongState=2),t.WrongState}static Crc_$LI$(){return null==t.Crc&&(t.Crc=3),t.Crc}static BadParameter_$LI$(){return null==t.BadParameter&&(t.BadParameter=4),t.BadParameter}static GraphicsImageTooLong_$LI$(){return null==t.GraphicsImageTooLong&&(t.GraphicsImageTooLong=17),t.GraphicsImageTooLong}static GraphicsZlibError_$LI$(){return null==t.GraphicsZlibError&&(t.GraphicsZlibError=18),t.GraphicsZlibError}static GraphicsWrongParameters_$LI$(){return null==t.GraphicsWrongParameters&&(t.GraphicsWrongParameters=21),t.GraphicsWrongParameters}static PadNotExist_$LI$(){return null==t.PadNotExist&&(t.PadNotExist=32),t.PadNotExist}static RomSizeOverflow_$LI$(){return null==t.RomSizeOverflow&&(t.RomSizeOverflow=51),t.RomSizeOverflow}static RomInvalidParameter_$LI$(){return null==t.RomInvalidParameter&&(t.RomInvalidParameter=52),t.RomInvalidParameter}static RomErrorCRC_$LI$(){return null==t.RomErrorCRC&&(t.RomErrorCRC=53),t.RomErrorCRC}}e.ErrorCode=t,t.__class="com.WacomGSS.STU.Protocol.ErrorCode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static None_$LI$(){return null==t.None&&(t.None=0),t.None}static BadParameter_$LI$(){return null==t.BadParameter&&(t.BadParameter=1),t.BadParameter}static ParameterTooLong_$LI$(){return null==t.ParameterTooLong&&(t.ParameterTooLong=2),t.ParameterTooLong}static PublicKeyNotReady_$LI$(){return null==t.PublicKeyNotReady&&(t.PublicKeyNotReady=3),t.PublicKeyNotReady}static PublicExponentNotReady_$LI$(){return null==t.PublicExponentNotReady&&(t.PublicExponentNotReady=4),t.PublicExponentNotReady}static SpecifiedKeyInUse_$LI$(){return null==t.SpecifiedKeyInUse&&(t.SpecifiedKeyInUse=5),t.SpecifiedKeyInUse}static SpecifiedKeyNotInUse_$LI$(){return null==t.SpecifiedKeyNotInUse&&(t.SpecifiedKeyNotInUse=6),t.SpecifiedKeyNotInUse}static BadCommandCode_$LI$(){return null==t.BadCommandCode&&(t.BadCommandCode=7),t.BadCommandCode}static CommandPending_$LI$(){return null==t.CommandPending&&(t.CommandPending=8),t.CommandPending}static SpecifiedKeyExists_$LI$(){return null==t.SpecifiedKeyExists&&(t.SpecifiedKeyExists=9),t.SpecifiedKeyExists}static SpecifiedKeyNotExist_$LI$(){return null==t.SpecifiedKeyNotExist&&(t.SpecifiedKeyNotExist=10),t.SpecifiedKeyNotExist}static NotInitialized_$LI$(){return null==t.NotInitialized&&(t.NotInitialized=11),t.NotInitialized}}e.ErrorCodeRSA=t,t.__class="com.WacomGSS.STU.Protocol.ErrorCodeRSA"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),n.reportId}}n.reportSize=9,t.EventData=n,n.__class="com.WacomGSS.STU.Protocol.EventData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),n.reportId}}n.reportSize=16,n.encryptedSize=16,t.EventDataEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.EventDataEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,i){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPad||null===t)||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];void 0===this.screenSelected&&(this.screenSelected=0),void 0===this.keyNumber&&(this.keyNumber=0),this.screenSelected=e.screenSelected,this.keyNumber=e.keyNumber}}else{if(void 0===this.screenSelected&&(this.screenSelected=0),void 0===this.keyNumber&&(this.keyNumber=0),t[i]!==n.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataKeyPad with wrong EventData");++i,this.screenSelected=t[i+0],this.keyNumber=t[i+1]}}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),n.reportId}static operationModeType_$LI$(){return null==n.operationModeType&&(n.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$()),n.operationModeType}getScreenSelected(){return this.screenSelected}getKeyNumber(){return this.keyNumber}}n.reportSize=9,t.EventDataKeyPad=n,n.__class="com.WacomGSS.STU.Protocol.EventDataKeyPad"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.EventDataKeyPad{constructor(t,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPad||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted||null===t)||void 0!==n)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),n.reportId}getSessionId(){return this.sessionId}}n.reportSize=16,n.encryptedSize=16,t.EventDataKeyPadEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,i){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPad||null===t)||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];void 0===this.keyInput&&(this.keyInput=0),this.pin=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(13),this.keyInput=e.keyInput,((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e.pin,0,this.pin,0,e.pin.length)}}else{if(void 0===this.keyInput&&(this.keyInput=0),this.pin=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(13),t[i]!==n.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataPinPad with wrong EventData");++i,this.keyInput=t[i+0],this.pin[0]=t[i+1]>>4&15,this.pin[1]=15&t[i+1],this.pin[2]=t[i+2]>>4&15,this.pin[3]=15&t[i+2],this.pin[4]=t[i+3]>>4&15,this.pin[5]=15&t[i+3],this.pin[6]=t[i+4]>>4&15,this.pin[7]=15&t[i+4],this.pin[8]=t[i+5]>>4&15,this.pin[9]=15&t[i+5],this.pin[10]=t[i+6]>>4&15,this.pin[11]=15&t[i+6],this.pin[12]=t[i+7]>>4&15}}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),n.reportId}static operationModeType_$LI$(){return null==n.operationModeType&&(n.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$()),n.operationModeType}getKeyInput(){return this.keyInput}getPIN(){const e={str:"",toString:function(){return this.str}};for(let n=0;n<this.pin.length;++n)switch(this.pin[n]){case 15:n=this.pin.length;break;case 10:(t=e).str=t.str.concat("*");break;case 11:(e=>{e.str=e.str.concat("#")})(e);break;case 12:(e=>{e.str=e.str.concat(".")})(e);break;default:0<=this.pin[n]&&this.pin[n]<=9&&(e=>{e.str=e.str.concat(String.fromCharCode("0".charCodeAt(0)+this.pin[n]))})(e)}var t;return e.str}}n.reportSize=9,t.EventDataPinPad=n,n.__class="com.WacomGSS.STU.Protocol.EventDataPinPad"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.EventDataPinPad{constructor(t,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPad||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataPinPadEncrypted||null===t)||void 0!==n)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),n.reportId}getSessionId(){return this.sessionId}}n.reportSize=16,n.encryptedSize=16,t.EventDataPinPadEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.EventDataPinPadEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,i){if(!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignature||null===t)||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];void 0===this.keyValue&&(this.keyValue=0),this.keyValue=e.keyValue}}else{if(void 0===this.keyValue&&(this.keyValue=0),t[i]!==n.operationModeType_$LI$())throw new e.WacomGSS.RuntimeException("Attempt to intialize EventDataSignature with wrong EventData");++i,this.keyValue=t[i+0]}}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$()),n.reportId}static operationModeType_$LI$(){return null==n.operationModeType&&(n.operationModeType=e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$()),n.operationModeType}getKeyValue(){return this.keyValue}}n.reportSize=9,t.EventDataSignature=n,n.__class="com.WacomGSS.STU.Protocol.EventDataSignature"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.EventDataSignature{constructor(t,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignature||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.EventDataSignatureEncrypted||null===t)||void 0!==n)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.sessionId}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$()),n.reportId}getSessionId(){return this.sessionId}}n.reportSize=16,n.encryptedSize=16,t.EventDataSignatureEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.EventDataSignatureEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i){void 0===this.upperLeftXpixel&&(this.upperLeftXpixel=0),void 0===this.upperLeftYpixel&&(this.upperLeftYpixel=0),void 0===this.lowerRightXpixel&&(this.lowerRightXpixel=0),void 0===this.lowerRightYpixel&&(this.lowerRightYpixel=0),this.upperLeftXpixel=e,this.upperLeftYpixel=t,this.lowerRightXpixel=n,this.lowerRightYpixel=i}getUpperLeftXpixel(){return this.upperLeftXpixel}getUpperLeftYpixel(){return this.upperLeftYpixel}getLowerRightXpixel(){return this.lowerRightXpixel}getLowerRightYpixel(){return this.lowerRightYpixel}}e.Rectangle=t,t.__class="com.WacomGSS.STU.Protocol.Rectangle"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.Rectangle{constructor(e,t,n,i){super(e,t,n,i)}}t.HandwritingDisplayArea=n,n.__class="com.WacomGSS.STU.Protocol.HandwritingDisplayArea"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.penColor&&(this.penColor=0),void 0===this.penThickness&&(this.penThickness=0),this.penColor=e,this.penThickness=t}getPenColor(){return this.penColor}getPenThickness(){return this.penThickness}}e.HandwritingThicknessColor=t,t.__class="com.WacomGSS.STU.Protocol.HandwritingThicknessColor"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.penColor&&(this.penColor=0),void 0===this.penThickness&&(this.penThickness=0),this.penColor=e,this.penThickness=t}getPenColor(){return this.penColor}getPenThickness(){return this.penThickness}}e.HandwritingThicknessColor24=t,t.__class="com.WacomGSS.STU.Protocol.HandwritingThicknessColor24"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n){void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.bcdDevice&&(this.bcdDevice=0),this.idVendor=e,this.idProduct=t,this.bcdDevice=n}getIdVendor(){return this.idVendor}getIdProduct(){return this.idProduct}getBcdDevice(){return this.bcdDevice}}e.HidInformation=t,t.__class="com.WacomGSS.STU.Protocol.HidInformation"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,n,i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||void 0!==n||void 0!==i)throw new Error("invalid overload");if(void 0===this.data&&(this.data=null),e.length>t.maxLength_$LI$())throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.data=e.slice(0)}else{if(void 0===this.data&&(this.data=null),i<0||i>t.maxLength_$LI$()||e.length-n<i)throw Object.defineProperty(new Error(t.txtError),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,n,this.data,0,i)}}static maxLength_$LI$(){return null==t.maxLength&&(t.maxLength=t.maxLengthSerial),t.maxLength}getData(){return this.data.slice(0)}}t.txtError="invalid length",t.maxLengthHID=253,t.maxLengthSerial=2557,e.ImageDataBlock=t,t.__class="com.WacomGSS.STU.Protocol.ImageDataBlock"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i,o){void 0===this.modelName&&(this.modelName=null),void 0===this.firmwareMajorVersion&&(this.firmwareMajorVersion=0),void 0===this.firmwareMinorVersion&&(this.firmwareMinorVersion=0),void 0===this.secureIc&&(this.secureIc=0),void 0===this.secureIcVersion&&(this.secureIcVersion=null),this.modelName=e,this.firmwareMajorVersion=t,this.firmwareMinorVersion=n,this.secureIc=i,this.secureIcVersion=o.slice(0)}getModelName(){return this.modelName}getFirmwareMajorVersion(){return this.firmwareMajorVersion}getFirmwareMinorVersion(){return this.firmwareMinorVersion}getSecureIc(){return this.secureIc}getSecureIcVersion(){return this.secureIcVersion}}e.Information=t,t.__class="com.WacomGSS.STU.Protocol.Information"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Off=0]="Off",e[e.On=1]="On"}(t=e.InkingMode||(e.InkingMode={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.InkingMode_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.InkingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"Off",0),new n(1,"On",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(){void 0===this.inkThreshold&&(this.inkThreshold=null),void 0===this.inkState&&(this.inkState=null),this.inkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(e.WacomGSS.STU.Protocol.ProtocolHelper.k_factoryDefaultInkThreshold_$LI$()),this.inkState=e.WacomGSS.STU.Protocol.InkState.InkState_Up}setInkThreshold(t){this.inkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(t)}getInkThreshold(){return new e.WacomGSS.STU.Protocol.InkThreshold(this.inkThreshold)}setInkState(e){this.inkState=e}clear(){this.inkState=e.WacomGSS.STU.Protocol.InkState.InkState_Up}currentState(){return this.inkState}nextState(t,n){return this.inkState=e.WacomGSS.STU.Protocol.ProtocolHelper.getNextInkState(this.inkState,t,n,this.inkThreshold),this.inkState}}t.InkingState=n,n.__class="com.WacomGSS.STU.Protocol.InkingState"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.InkState_isOff=0]="InkState_isOff",e[e.InkState_isOn=1]="InkState_isOn",e[e.InkState_isInk=2]="InkState_isInk",e[e.InkState_isFirst=3]="InkState_isFirst",e[e.InkState_isLast=4]="InkState_isLast",e[e.InkState_Up=5]="InkState_Up",e[e.InkState_Down=6]="InkState_Down",e[e.InkState_Inking=7]="InkState_Inking",e[e.InkState_First=8]="InkState_First",e[e.InkState_Last=9]="InkState_Last"}(t=e.InkState||(e.InkState={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.InkState_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.InkState",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"InkState_isOff",1),new n(1,"InkState_isOn",2),new n(2,"InkState_isInk",4),new n(3,"InkState_isFirst",8),new n(4,"InkState_isLast",16),new n(5,"InkState_Up",1),new n(6,"InkState_Down",2),new n(7,"InkState_Inking",6),new n(8,"InkState_First",14),new n(9,"InkState_Last",17)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,n){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.InkThreshold||null===t)||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];void 0===this.onPressureMark&&(this.onPressureMark=0),void 0===this.offPressureMark&&(this.offPressureMark=0),this.onPressureMark=e.onPressureMark,this.offPressureMark=e.offPressureMark}}else void 0===this.onPressureMark&&(this.onPressureMark=0),void 0===this.offPressureMark&&(this.offPressureMark=0),this.onPressureMark=t,this.offPressureMark=n}getOnPressureMark(){return this.onPressureMark}getOffPressureMark(){return this.offPressureMark}}t.InkThreshold=n,n.__class="com.WacomGSS.STU.Protocol.InkThreshold"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){void 0===this.screenSelect&&(this.screenSelect=0),void 0===this.idAfterSelect&&(this.idAfterSelect=0),this.screenSelect=e,this.idAfterSelect=t}getScreenSelect(){return this.screenSelect}getIdAfterSelect(){return this.idAfterSelect}}e.OperationMode_KeyPad=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_KeyPad"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i,o,r,a){void 0===this.screenSelect&&(this.screenSelect=0),void 0===this.pinBypass&&(this.pinBypass=0),void 0===this.minDigit&&(this.minDigit=0),void 0===this.maxDigit&&(this.maxDigit=0),void 0===this.numberHiddenMode&&(this.numberHiddenMode=0),void 0===this.idAfterEnter&&(this.idAfterEnter=0),void 0===this.idAfterCancel&&(this.idAfterCancel=0),this.screenSelect=e,this.pinBypass=t,this.minDigit=n,this.maxDigit=i,this.numberHiddenMode=o,this.idAfterEnter=r,this.idAfterCancel=a}getScreenSelect(){return this.screenSelect}getPinBypass(){return this.pinBypass}getMinDigit(){return this.minDigit}getMaxDigit(){return this.maxDigit}getNumberHiddenMode(){return this.numberHiddenMode}getIdAfterEnter(){return this.idAfterEnter}getIdAfterCancel(){return this.idAfterCancel}}e.OperationMode_PinPad=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_PinPad"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i){if(this.numberOfKeys=3,void 0===this.signatureScreen&&(this.signatureScreen=0),void 0===this.keyDefinition&&(this.keyDefinition=null),void 0===this.idAfterEnter&&(this.idAfterEnter=0),void 0===this.idAfterCancel&&(this.idAfterCancel=0),null==t||t.length!==this.numberOfKeys)throw Object.defineProperty(new Error("invalid keyDefinition"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.signatureScreen=e,this.keyDefinition=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.numberOfKeys),this.idAfterEnter=n,this.idAfterCancel=i,((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t,0,this.keyDefinition,0,this.numberOfKeys)}getSignatureScreen(){return this.signatureScreen}getKeyDefinition(){return this.keyDefinition}getIdAfterEnter(){return this.idAfterEnter}getIdAfterCancel(){return this.idAfterCancel}}e.OperationMode_Signature=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_Signature"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n,i){if(this.maxNumberOfSlides=10,void 0===this.workingMode&&(this.workingMode=0),void 0===this.numberOfSlides&&(this.numberOfSlides=0),void 0===this.slideNumber&&(this.slideNumber=null),void 0===this.interval&&(this.interval=0),null==n||n.length>this.maxNumberOfSlides)throw Object.defineProperty(new Error("invalid slideNumber"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.workingMode=e,this.slideNumber=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.maxNumberOfSlides),this.numberOfSlides=t,this.interval=i,((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(n,0,this.slideNumber,0,n.length)}getWorkingMode(){return this.workingMode}getSlideNumber(){return this.slideNumber}getNumberOfSlides(){return this.numberOfSlides}getInterval(){return this.interval}}e.OperationMode_SlideShow=t,t.__class="com.WacomGSS.STU.Protocol.OperationMode_SlideShow"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t){if(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t){if(void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),null==t||t.length!==n.dataBytes+2||t[0]!==e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$())throw Object.defineProperty(new Error("invalid raw"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.operationModeType=t[1],this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t,2,this.data,0,n.dataBytes)}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode||null===t){let e=arguments[0];{let t=e.operationModeType;void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e.data,0,this.data,0,e.data.length)})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_PinPad||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getScreenSelect(),this.data[1]=t.getPinBypass(),this.data[2]=t.getMinDigit(),this.data[3]=t.getMaxDigit(),this.data[4]=t.getNumberHiddenMode(),this.data[5]=t.getIdAfterEnter(),this.data[6]=t.getIdAfterCancel()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_KeyPad||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getScreenSelect(),this.data[1]=t.getIdAfterSelect()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_Signature||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{this.data[0]=t.getSignatureScreen(),this.data[1]=t.getKeyDefinition()[0],this.data[2]=t.getKeyDefinition()[1],this.data[3]=t.getKeyDefinition()[2],this.data[4]=t.getIdAfterEnter(),this.data[5]=t.getIdAfterCancel()})()}else if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.OperationMode_SlideShow||null===t){let t=arguments[0];{let t=e.WacomGSS.STU.Protocol.OperationModeType.SlideShow_$LI$();void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=t,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),(()=>{const e=t.getSlideNumber();this.data[0]=t.getWorkingMode(),this.data[1]=t.getNumberOfSlides(),this.data[2]=(15&e[0])<<4|15&e[1],this.data[3]=(15&e[2])<<4|15&e[3],this.data[4]=(15&e[4])<<4|15&e[5],this.data[5]=(15&e[6])<<4|15&e[7],this.data[6]=(15&e[8])<<4|15&e[9],this.data[7]=t.getInterval()>>24&255,this.data[8]=t.getInterval()>>16&255,this.data[9]=t.getInterval()>>8&255,this.data[10]=255&t.getInterval()})()}else{if("number"!=typeof t&&null!==t)throw new Error("invalid overload");{let e=arguments[0];void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.data&&(this.data=null),this.operationModeType=e,this.data=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.dataBytes)}}}getOperationModeType(){return this.operationModeType}getData(){return this.data}static initializeNormal(){return new n(e.WacomGSS.STU.Protocol.OperationModeType.Normal_$LI$())}static initializePinPad(e){return new n(e)}static initializeKeyPad(e){return new n(e)}static initializeSignature(e){return new n(e)}static initializeSlideShow(e){return new n(e)}}n.dataBytes=11,t.OperationMode=n,n.__class="com.WacomGSS.STU.Protocol.OperationMode"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Normal_$LI$(){return null==t.Normal&&(t.Normal=0),t.Normal}static PinPad_$LI$(){return null==t.PinPad&&(t.PinPad=1),t.PinPad}static SlideShow_$LI$(){return null==t.SlideShow&&(t.SlideShow=2),t.SlideShow}static KeyPad_$LI$(){return null==t.KeyPad&&(t.KeyPad=3),t.KeyPad}static Signature_$LI$(){return null==t.Signature&&(t.Signature=4),t.Signature}static MessageBox_$LI$(){return null==t.MessageBox&&(t.MessageBox=5),t.MessageBox}}e.OperationModeType=t,t.__class="com.WacomGSS.STU.Protocol.OperationModeType"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,n,i,o,r){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||void 0!==n||void 0!==i||void 0!==o||void 0!==r)throw new Error("invalid overload");{let e=arguments[0];{let t=e.getRdy(),n=e.getSw(),i=e.getPressure(),o=e.getX(),r=e.getY();void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0),this.rdy=t,this.sw=n,this.pressure=i,this.x=o,this.y=r}void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0)}}else void 0===this.rdy&&(this.rdy=0),void 0===this.sw&&(this.sw=0),void 0===this.pressure&&(this.pressure=0),void 0===this.x&&(this.x=0),void 0===this.y&&(this.y=0),this.rdy=t,this.sw=n,this.pressure=i,this.x=o,this.y=r}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenData_$LI$()),n.reportId}getRdy(){return this.rdy}getSw(){return this.sw}getPressure(){return this.pressure}getX(){return this.x}getY(){return this.y}}n.reportSize=6,t.PenData=n,n.__class="com.WacomGSS.STU.Protocol.PenData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(t,n,i){if(("number"==typeof t||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.PenData||null===n)&&(null!=i&&i instanceof e.WacomGSS.STU.Protocol.PenData||null===i))void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null),this.sessionId=t,this.penData1=n,this.penData2=i;else{if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataEncrypted||null===t)||void 0!==n||void 0!==i)throw new Error("invalid overload");{let e=arguments[0];{let t=e.getSessionId(),n=e.getPenData1(),i=e.getPenData2();void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null),this.sessionId=t,this.penData1=n,this.penData2=i}void 0===this.sessionId&&(this.sessionId=0),void 0===this.penData1&&(this.penData1=null),void 0===this.penData2&&(this.penData2=null)}}}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataEncrypted_$LI$()),n.reportId}getSessionId(){return this.sessionId}getPenData1(){return this.penData1}getPenData2(){return this.penData2}}n.reportSize=16,n.encryptedSize=16,t.PenDataEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.PenDataEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.PenDataEncrypted{constructor(e,t,n){super(e),void 0===this.option1&&(this.option1=0),void 0===this.option2&&(this.option2=0),this.option1=t,this.option2=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataEncryptedOption_$LI$()),n.reportId}getOption1(){return this.option1}getOption2(){return this.option2}getPenDataOption1(){return new e.WacomGSS.STU.Protocol.PenDataOption(this.getPenData1(),this.getOption1())}getPenDataOption2(){return new e.WacomGSS.STU.Protocol.PenDataOption(this.getPenData2(),this.getOption2())}}n.reportSize=20,t.PenDataEncryptedOption=n,n.__class="com.WacomGSS.STU.Protocol.PenDataEncryptedOption"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.PenData{constructor(t,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataOption||null===t)||void 0!==n)throw new Error("invalid overload");{let e=arguments[0];super(e),void 0===this.option&&(this.option=0),this.option=e.getOption()}}else super(t),void 0===this.option&&(this.option=0),this.option=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataOption_$LI$()),n.reportId}getOption(){return this.option}}n.reportSize=8,t.PenDataOption=n,n.__class="com.WacomGSS.STU.Protocol.PenDataOption"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.None=0]="None",e[e.TimeCount=1]="TimeCount",e[e.SequenceNumber=2]="SequenceNumber",e[e.TimeCountSequence=3]="TimeCountSequence"}(t=e.PenDataOptionMode||(e.PenDataOptionMode={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.PenDataOptionMode_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.PenDataOptionMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"None",0),new n(1,"TimeCount",1),new n(2,"SequenceNumber",2),new n(3,"TimeCountSequence",3)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.PenData{constructor(t,n,i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenData||null===t)||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequence||null===t)||void 0!==n||void 0!==i)throw new Error("invalid overload");super(t),void 0===this.timeCount&&(this.timeCount=0),void 0===this.sequence&&(this.sequence=0),this.timeCount=t.getTimeCount(),this.sequence=t.getSequence()}else super(t),void 0===this.timeCount&&(this.timeCount=0),void 0===this.sequence&&(this.sequence=0),this.timeCount=n,this.sequence=i}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequence_$LI$()),n.reportId}getTimeCount(){return this.timeCount}getSequence(){return this.sequence}}n.reportSize=10,t.PenDataTimeCountSequence=n,n.__class="com.WacomGSS.STU.Protocol.PenDataTimeCountSequence"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.Protocol.PenDataTimeCountSequence{constructor(t,n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequence||null===t)||"number"!=typeof n&&null!==n){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted||null===t)||void 0!==n)throw new Error("invalid overload");super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=t.getSessionId()}else super(t),void 0===this.sessionId&&(this.sessionId=0),this.sessionId=n}static reportId_$LI$(){return null==n.reportId&&(n.reportId=e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequenceEncrypted_$LI$()),n.reportId}getSessionId(){return this.sessionId}}n.reportSize=16,n.encryptedSize=16,t.PenDataTimeCountSequenceEncrypted=n,n.__class="com.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return n.I$byte(e)<<8|n.I$byte(t)}static I$byte$byte$byte$byte(e,t,i,o){return n.I$byte(e)<<24|n.I$byte(t)<<16|n.I$byte(i)<<8|n.I$byte(o)}static I(t,n,i,o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||void 0!==i||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==n||void 0!==i||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.Protocol.I$byte(t)}return e.WacomGSS.STU.Protocol.Protocol.I$byte$byte(t,n)}return e.WacomGSS.STU.Protocol.Protocol.I$byte$byte$byte$byte(t,n,i,o)}static S(e,t){return 65535&n.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}async getStatus(){let t=[e.WacomGSS.STU.Protocol.ReportId.Status_$LI$(),0,0,0,0],i=await this.intf.get(t);return new e.WacomGSS.STU.Protocol.Status(i[1],i[2],n.S(i[3],i[4]))}async setReset(t){const n=[e.WacomGSS.STU.Protocol.ReportId.Reset_$LI$(),e.WacomGSS.STU.Protocol.ResetFlag._$wrappers[t].getValue()];await this.intf.set(n)}async getHidInformation(){let t=[e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$(),0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HidInformation(n.S(t[1],t[2]),n.S(t[3],t[4]),n.S(t[5],t[6]))}async getDefaultMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),0,0];return t=await this.intf.get(t),t[1]}async setDefaultMode(t){const n=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),e.WacomGSS.STU.Protocol.DefaultMode._$wrappers[t].getValue(),0];await this.intf.set(n)}async getInformation(){let t=[e.WacomGSS.STU.Protocol.ReportId.Information_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];t=await this.intf.get(t);const i={str:"",toString:function(){return this.str}};for(let e=0;e<9&&0!==t[1+e];++e)(o=i).str=o.str.concat(String.fromCharCode(n.I$byte(t[1+e])));var o;return new e.WacomGSS.STU.Protocol.Information(i.str,n.I$byte(t[10]),n.I$byte(t[11]),t[12],[n.I$byte(t[13]),n.I$byte(t[14]),n.I$byte(t[15]),n.I$byte(t[16])])}async getCapability(){let t=[e.WacomGSS.STU.Protocol.ReportId.Capability_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),t.length>11?new e.WacomGSS.STU.Protocol.Capability(n.I$byte$byte(t[1],t[2]),n.I$byte$byte(t[3],t[4]),n.I$byte$byte(t[5],t[6]),n.I$byte$byte(t[7],t[8]),n.I$byte$byte(t[9],t[10]),n.I$byte(t[11]),n.I$byte$byte(t[12],t[13]),t[14]):new e.WacomGSS.STU.Protocol.Capability(n.I$byte$byte(t[1],t[2]),n.I$byte$byte(t[3],t[4]),n.I$byte$byte(t[5],t[6]),n.I$byte$byte(t[7],t[8]),n.I$byte$byte(t[9],t[10]),0,0,0)}async getUid(){let t=[e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),0,0,0,0];return t=await this.intf.get(t),n.I$byte$byte$byte$byte(t[1],t[2],t[3],t[4])}async setUid(t){const i=[e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),n.B3(t),n.B2(t),n.B1(t),n.B0(t)];await this.intf.set(i)}async getUid2(){let t=[e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$(),0,0,0,0,0,0,0,0,0,0];t=await this.intf.get(t);const i={str:"",toString:function(){return this.str}};for(let e=0;e<10&&0!==t[1+e];++e)(o=i).str=o.str.concat(String.fromCharCode(n.I$byte(t[1+e])));var o;return i.str}async getEserial(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(14);t[0]=e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$(),t=await this.intf.get(t);const i={str:"",toString:function(){return this.str}};for(let e=0;e<13&&0!==t[1+e];++e)(o=i).str=o.str.concat(String.fromCharCode(n.I$byte(t[1+e])));var o;return i.str}async getHostPublicKey(){let t=[e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.PublicKey(t,1)}async setHostPublicKey(t){const n=t.getValue(),i=[e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]];await this.intf.set(i)}async getDevicePublicKey(){let t=[e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.DevicePublicKey(t,1)}async setStartCapture(t){const i=[e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),n.B3(t),n.B2(t),n.B1(t),n.B0(t)];await this.intf.set(i)}async setEndCapture(){const t=[e.WacomGSS.STU.Protocol.ReportId.EndCapture_$LI$(),0];await this.intf.set(t)}async getDHprime(){const t=[e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];let n=await this.intf.get(t);return new e.WacomGSS.STU.Protocol.DHprime(n,1)}async setDHprime(t){const n=t.getValue(),i=[e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]];await this.intf.set(i)}async getDHbase(){let t=[e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.DHbase(t,1)}async setDHbase(t){const n=t.getValue(),i=[e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),n[0],n[1]];await this.intf.set(i)}async setClearScreen(){const t=[e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$(),0];await this.intf.set(t)}async setClearScreenArea(t){const i=[e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$(),0,1,n.B0(t.getUpperLeftXpixel()),n.B1(t.getUpperLeftXpixel()),n.B0(t.getUpperLeftYpixel()),n.B1(t.getUpperLeftYpixel()),n.B0(t.getLowerRightXpixel()),n.B1(t.getLowerRightXpixel()),n.B0(t.getLowerRightYpixel()),n.B1(t.getLowerRightYpixel())];await this.intf.set(i)}async getInkingMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$(),0];return t=await this.intf.get(t),t[1]}async setInkingMode(t){const n=[e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$(),e.WacomGSS.STU.Protocol.InkingMode._$wrappers[t].getValue()];await this.intf.set(n)}async getInkThreshold(){let t=[e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.InkThreshold(n.I$byte$byte(t[2],t[1]),n.I$byte$byte(t[4],t[3]))}async setInkThreshold(t){const i=[e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),n.B0(t.getOnPressureMark()),n.B1(t.getOnPressureMark()),n.B0(t.getOffPressureMark()),n.B1(t.getOffPressureMark())];await this.intf.set(i)}async setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(t){const n=[e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t].getValue()];await this.intf.set(n)}async setStartImageData(e){if("number"==typeof e||null===e)return await this.setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(e);if("number"==typeof e||null===e)return await this.setStartImageData$int(e);throw new Error("invalid overload")}async setStartImageData$int(t){const i=[e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),n.B0(t)];await this.intf.set(i)}async setStartImageDataArea(t,i){const o=[e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$(),e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t].getValue(),1,n.B0(i.getUpperLeftXpixel()),n.B1(i.getUpperLeftXpixel()),n.B0(i.getUpperLeftYpixel()),n.B1(i.getUpperLeftYpixel()),n.B0(i.getLowerRightXpixel()),n.B1(i.getLowerRightXpixel()),n.B0(i.getLowerRightYpixel()),n.B1(i.getLowerRightYpixel())];await this.intf.set(o)}async setImageDataBlock(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.getData().length>e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID?2560:256),o=t.getData();i[0]=e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),i[1]=n.B0(o.length),i[2]=n.B1(o.length);for(let e=0;e<o.length;e++)i[e+3]=o[e];await this.intf.set(i)}async setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(t){const n=[e.WacomGSS.STU.Protocol.ReportId.EndImageData_$LI$(),e.WacomGSS.STU.Protocol.EndImageDataFlag._$wrappers[t].getValue()];await this.intf.set(n)}async setEndImageData(e){if("number"==typeof e||null===e)return await this.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e);if(void 0===e)return await this.setEndImageData$();throw new Error("invalid overload")}async setEndImageData$(){await this.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}async getHandwritingThicknessColor(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$(),0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HandwritingThicknessColor(n.I$byte$byte(t[2],t[1]),n.I$byte(t[3]))}async setHandwritingThicknessColor(t){const i=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$(),n.B0(t.getPenColor()),n.B1(t.getPenColor()),n.B0(t.getPenThickness())];await this.intf.set(i)}async getHandwritingThicknessColor24(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$(),0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.HandwritingThicknessColor24(n.I$byte$byte$byte$byte(0,t[3],t[2],t[1]),n.I$byte(t[4]))}async setHandwritingThicknessColor24(t){const i=[e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$(),n.B0(t.getPenColor()),n.B1(t.getPenColor()),n.B2(t.getPenColor()),n.B0(t.getPenThickness())];await this.intf.set(i)}async getBackgroundColor(){let t=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$(),0,0];return t=await this.intf.get(t),n.I$byte$byte(t[2],t[1])}async setBackgroundColor(t){const i=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$(),n.B0(t),n.B1(t)];await this.intf.set(i)}async getBackgroundColor24(){let t=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$(),0,0,0];return t=await this.intf.get(t),n.I$byte$byte$byte$byte(0,t[3],t[2],t[1])}async setBackgroundColor24(t){const i=[e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$(),n.B0(t),n.B1(t),n.B2(t)];await this.intf.set(i)}async getScreenContrast(){let t=[e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),0,0];return t=await this.intf.get(t),n.I$byte$byte(t[2],t[1])}async setScreenContrast(t){const i=[e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),n.B0(t),n.B1(t)];await this.intf.set(i)}async getHandwritingDisplayArea(){let t=[e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$(),0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.Rectangle(n.I$byte$byte(t[2],t[1]),n.I$byte$byte(t[4],t[3]),n.I$byte$byte(t[6],t[5]),n.I$byte$byte(t[8],t[7]))}async setHandwritingDisplayArea(t){const i=[e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$(),n.B0(t.getUpperLeftXpixel()),n.B1(t.getUpperLeftXpixel()),n.B0(t.getUpperLeftYpixel()),n.B1(t.getUpperLeftYpixel()),n.B0(t.getLowerRightXpixel()),n.B1(t.getLowerRightXpixel()),n.B0(t.getLowerRightYpixel()),n.B1(t.getLowerRightYpixel())];await this.intf.set(i)}async getBacklightBrightness(){let t=[e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),0,0];return t=await this.intf.get(t),n.I$byte$byte(t[2],t[1])}async setBacklightBrightness(t){const i=[e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),n.B0(t),n.B1(t)];await this.intf.set(i)}async getPenDataOptionMode(){let t=[e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$(),0];return t=await this.intf.get(t),t[1]}async setPenDataOptionMode(t){const n=[e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$(),e.WacomGSS.STU.Protocol.PenDataOptionMode._$wrappers[t].getValue()];await this.intf.set(n)}async getEncryptionStatus(){let t=[e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.EncryptionStatus(t[1],t[2]>>6&3,63&t[2],t[4],t[5],t[6],t[7],!!(4&t[8]),!!(2&t[8]),!!(1&t[8]))}async getEncryptionCommand(t){let n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(68);return n[0]=e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),n[1]=e.WacomGSS.STU.Protocol.EncryptionCommandNumber._$wrappers[t].getValue(),n=await this.intf.get(n),new e.WacomGSS.STU.Protocol.EncryptionCommand(t,n[2],n[3],n,4,e.WacomGSS.STU.Protocol.EncryptionCommand.maxDataLength)}async setEncryptionCommand(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(68);n[0]=e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),n[1]=t.getEncryptionCommandNumber(),n[2]=t.getParameter(),n[3]=t.getLengthOrIndex(),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t.getData(),0,n,4,e.WacomGSS.STU.Protocol.EncryptionCommand.maxDataLength),await this.intf.set(n)}static initializeSetEncryptionType(t,n,i){const o=(3&e.WacomGSS.STU.Protocol.AsymmetricPaddingType._$wrappers[n].getValue())<<6|3&e.WacomGSS.STU.Protocol.AsymmetricKeyType._$wrappers[i].getValue();return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.SetEncryptionType,e.WacomGSS.STU.Protocol.SymmetricKeyType._$wrappers[t].getValue(),o,null)}static initializeSetParameterBlock(t,n){return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.SetParameterBlock,e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex._$wrappers[t].getValue(),255&n.length,n)}static initializeGenerateSymmetricKey(){return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GenerateSymmetricKey,0,0,null)}static initializeGetParameterBlock(t,n){if(n<0||n>255)throw Object.defineProperty(new Error("offset out of range"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});return new e.WacomGSS.STU.Protocol.EncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GetParameterBlock,e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex._$wrappers[t].getValue(),255&n,null)}static decodePenData(t,i){return new e.WacomGSS.STU.Protocol.PenData(t[i+0]>>7&1,t[i+0]>>4&7,(15&t[i+0])<<8|n.I$byte(t[i+1]),n.I$byte$byte(t[i+2],t[i+3]),n.I$byte$byte(t[i+4],t[i+5]))}static decodePenDataOption(t,i){return new e.WacomGSS.STU.Protocol.PenDataOption(n.decodePenData(t,i),n.I$byte$byte(t[i+6],t[i+7]))}static decodeDevicePublicKey(t,n){return new e.WacomGSS.STU.Protocol.DevicePublicKey(t,n)}static decodePenDataEncrypted(t,i){const o=n.I$byte$byte$byte$byte(t[i+0],t[i+1],t[i+2],t[i+3]),r=n.decodePenData(t,i+4),a=n.decodePenData(t,i+10);return new e.WacomGSS.STU.Protocol.PenDataEncrypted(o,r,a)}static decodePenDataEncryptedOption(t,i){const o=n.I$byte$byte(t[i+16],t[i+17]),r=n.I$byte$byte(t[i+18],t[i+19]);return new e.WacomGSS.STU.Protocol.PenDataEncryptedOption(n.decodePenDataEncrypted(t,i),o,r)}static decodePenDataTimeCountSequence(t,i){return new e.WacomGSS.STU.Protocol.PenDataTimeCountSequence(n.decodePenData(t,i),n.I$byte$byte(t[i+6],t[i+7]),n.I$byte$byte(t[i+8],t[i+9]))}static decodePenDataTimeCountSequenceEncrypted(t,i){return new e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted(n.decodePenDataTimeCountSequence(t,i),n.I$byte$byte$byte$byte(t[i+12],t[i+13],t[i+14],t[i+15]))}static decodeEncryptionStatus(t,n){return new e.WacomGSS.STU.Protocol.EncryptionStatus(t[n+0],t[n+1]>>6&3,63&t[n+1],t[n+3],t[n+4],t[n+5],t[n+6],!!(4&t[n+7]),!!(2&t[n+7]),!!(1&t[n+7]))}static decodeEventDataPinPad(t,n){return new e.WacomGSS.STU.Protocol.EventDataPinPad(t,n)}static decodeEventDataKeyPad(t,n){return new e.WacomGSS.STU.Protocol.EventDataKeyPad(t,n)}static decodeEventDataSignature(t,n){return new e.WacomGSS.STU.Protocol.EventDataSignature(t,n)}static decodeEventDataPinPadEncrypted(t,i){const o=n.I$byte$byte$byte$byte(t[i+1],t[i+2],t[i+3],t[i+4]);return new e.WacomGSS.STU.Protocol.EventDataPinPadEncrypted(n.decodeEventDataPinPad(t,i+7),o)}static decodeEventDataKeyPadEncrypted(t,i){const o=n.I$byte$byte$byte$byte(t[i+1],t[i+2],t[i+3],t[i+4]);return new e.WacomGSS.STU.Protocol.EventDataKeyPadEncrypted(n.decodeEventDataKeyPad(t,i+7),o)}static decodeEventDataSignatureEncrypted(t,i){const o=n.I$byte$byte$byte$byte(t[i+1],t[i+2],t[i+3],t[i+4]);return new e.WacomGSS.STU.Protocol.EventDataSignatureEncrypted(n.decodeEventDataSignature(t,i+4),o)}async getReportSizeCollection(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(512);t[0]=e.WacomGSS.STU.Protocol.ReportId.ReportSizeCollection_$LI$(),t=await this.intf.get(t);const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(256);i[0]=0;for(let e=1;e<=255;++e)i[e]=n.I$byte$byte(t[0+2*e],t[1+2*e]);return i}async getReportRate(){let t=[e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),0];return t=await this.intf.get(t),n.I$byte(t[1])}async setReportRate(t){const i=[e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),n.B0(t)];await this.intf.set(i)}async getRenderingMode(){return e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),cmd=await this.intf.get(cmd),cmd[1]}async setRenderingMode(t){const n=[e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.RenderingMode._$wrappers[t].getValue()];await this.intf.set(n)}async getBootScreen(){let t=[e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),0];return t=await this.intf.get(t),t[1]}async setBootScreen(t){const n=[e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.BootScreenFlag._$wrappers[t].getValue()];await this.intf.set(n)}async getOperationMode(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.OperationMode.dataBytes+2);return t[0]=e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),t=await this.intf.get(t),new e.WacomGSS.STU.Protocol.OperationMode(t)}async setOperationMode(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.OperationMode.dataBytes+2);n[0]=e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),n[1]=t.getOperationModeType(),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t.getData(),0,n,2,e.WacomGSS.STU.Protocol.OperationMode.dataBytes),await this.intf.set(n)}async setRomStartImageData(t){const n=[0,0,0,0,0,0,0];n[0]=e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),n[1]=e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[t.getEncodingMode()].getValue(),n[2]=t.getOperationModeType(),n[3]=(t.getImageType()?128:0)|127&t.getImageNumber(),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t.getData(),0,n,4,e.WacomGSS.STU.Protocol.RomStartImageData.dataBytes),await this.intf.set(n)}async getRomImageHash(){let t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.RomImageHash.myLength_$LI$());t[0]=e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),t=await this.intf.get(t);const n=t[1],i=!!(128&t[2]),o=127&t[2],r=t[3];return new e.WacomGSS.STU.Protocol.RomImageHash(n,i,o,r,t,4)}async setRomImageHash(t,n,i){const o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.RomImageHash.myLength_$LI$());o[0]=e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),o[1]=t,o[2]=(n?128:0)|127&i,await this.intf.set(o)}async setRomImageDelete(t,n,i){const o=[e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$(),t,(n?128:0)|127&i];await this.intf.set(o)}async getCurrentImageArea(){const t=[0,0,0,0,0,0,0,0,0];return t[0]=e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$(),await this.intf.get(t),new e.WacomGSS.STU.Protocol.Rectangle(t[1]|t[2]<<8,t[3]|t[4]<<8,t[5]|t[6]<<8,t[7]|t[8]<<8)}async setRomImageDisplay(t,n,i){const o=[e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$(),t,(n?128:0)|127&i];await this.intf.set(o)}}t.Protocol=n,n.__class="com.WacomGSS.STU.Protocol.Protocol"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{static I(e){return 255&e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static sendTable_$LI$(){return null==n.sendTable&&(n.sendTable=[new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Status_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.Reset_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Information_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Capability_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$()),n.OpStatus_Ready|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$()),n.OpStatus_Ready|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.EndCapture_$LI$()),n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.InkingMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()),n.OpStatus_Image),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.EndImageData_$LI$()),n.OpStatus_Image),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor24_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor24_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.GetReport_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.PinOperationMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.PinOperationMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$()),n.OpStatus_Ready),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageOccupancy_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageOccupancy_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Set|n.I(e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$()),n.OpStatus_Ready|n.OpStatus_Capture),new n.SendEntry(n.OpDirection_Get|n.I(e.WacomGSS.STU.Protocol.ReportId.ReportSizeCollection_$LI$()),n.OpStatus_Ready|n.OpStatus_Image|n.OpStatus_Capture|n.OpStatus_Calculation|n.OpStatus_Image_Boot|n.OpStatus_RomBusy)]),n.sendTable}static opStatus_from_StatusCode(t){let i;switch(t){case e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$():i=n.OpStatus_Ready;break;case e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$():i=n.OpStatus_Image;break;case e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$():i=n.OpStatus_Capture;break;case e.WacomGSS.STU.Protocol.StatusCode.Calculation_$LI$():i=n.OpStatus_Calculation;break;case e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$():i=n.OpStatus_Image_Boot;break;case e.WacomGSS.STU.Protocol.StatusCode.RomBusy_$LI$():i=n.OpStatus_RomBusy;break;case e.WacomGSS.STU.Protocol.StatusCode.SystemReset_$LI$():i=n.OpStatus_SystemReset;break;default:throw Object.defineProperty(new Error("Invalid status value"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]})}return i}static opBitsFromReport(e,t){const i=n.I(e)|t;for(let e=0;e<n.sendTable_$LI$().length;++e)if(n.sendTable_$LI$()[e].first===i)return n.sendTable_$LI$()[e].second;throw Object.defineProperty(new Error("combination of reportId and opDirection is invalid"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]})}static statusCanSend(e,t,i){const o=n.opBitsFromReport(t,i);return!!(n.opStatus_from_StatusCode(e)&o)}static async delay(e){return new Promise((t=>setTimeout(t,e)))}static async waitForStatusToSend(t,i,o,r,a){const s=n.opBitsFromReport(i,o);for(;;){const l=await t.getStatus();if(n.opStatus_from_StatusCode(l.getStatusCode())&s)break;if(0===r)throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet to accept ReportId="+i+" opDirection="+o);--r,await this.delay(a)}}static async waitForStatus(t,n,i,o){for(;;){const r=await t.getStatus();if(await r.getStatusCode()===n)break;if(0===i)throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet status "+n);--i,await this.delay(o)}}static supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(e){return!e.isEmpty()}static async supportsEncryption(t){if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.DHprime||null===t)return e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t);if(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)return e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(t);throw new Error("invalid overload")}static async supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(e){const t=await e.getDHprime();return n.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t)}static async setHostPublicKeyAndPollForDevicePublicKey(t,i,o,r){return await t.setHostPublicKey(i),await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$(),n.OpDirection_Get,o,r),t.getDevicePublicKey()}static async generateSymmetricKeyAndWaitForEncryptionStatus(t,i,o,r){await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),n.OpDirection_Set,i,o);const a=t.getInterface().interfaceQueue();await t.setEncryptionCommand(e.WacomGSS.STU.Protocol.Protocol.initializeGenerateSymmetricKey());{const n=await t.getEncryptionStatus();if(n.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCodeRSA.None_$LI$())return n}let s;for(;null!=(s=await a.wait_until_getReport(r));)if(s.length>=e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize&&s[0]===e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$())return await e.WacomGSS.STU.Protocol.Protocol.decodeEncryptionStatus(s,1);throw new e.WacomGSS.STU.TimeoutException("Time out waiting for report EncryptionStatus")}static simulateEncodingFlag(t,n){if(!(n&(e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$())))switch(t){case e.WacomGSS.STU.UsbDevice.ProductId_540_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_530V_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_530_$LI$():n=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_Zlib_$LI$();break;case e.WacomGSS.STU.UsbDevice.ProductId_520A_$LI$():n=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$();break;case e.WacomGSS.STU.UsbDevice.ProductId_500_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_430V_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_430_$LI$():case e.WacomGSS.STU.UsbDevice.ProductId_300_$LI$():default:n=e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_1bit_$LI$()}return n}static encodingFlagSupportsColor(t){return!!(t&(e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_24bit_$LI$()|e.WacomGSS.STU.Protocol.EncodingFlag.EncodingFlag_16bit_$LI$()))}static resizeAndFlatten(t,i,o,r,a,s,l,c,u,p,h,d){let g=null;if(r!==s||a!==l){let n,c,d,m,f,S,b,y;switch(u){case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Stretch:n=0,c=0,d=s,m=l,f=0,S=0,b=r,y=a;break;case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Clip:if(r>s){switch(15&h){default:case 0:f=0;break;case 1:f=(r-s)/2|0;break;case 2:f=r-s-1}b=f+s,n=0,d=s}else f=0,b=r,n=(s-r)/2|0,d=n+r;if(a>l){switch(h>>4&15){default:case 0:S=0;break;case 1:S=(a-l)/2|0;break;case 2:S=a-l-1}y=S+l,c=0,m=l}else S=0,y=a,c=(l-a)/2|0,m=c+a;break;default:case e.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Fit:{const e=Math.fround(r/a);let t,i;e>Math.fround(s/l)?(t=s,i=Math.round(Math.fround(t/e))):(i=l,t=Math.round(Math.fround(i*e))),n=(s-t)/2|0,c=(l-i)/2|0,d=n+t,m=c+i,f=0,S=0,b=r,y=a}}f+=i,S+=o,b+=i,y+=o,i=o=0;let _=document.createElement("canvas");_.width=d+n,_.height=m+c;let v=_.getContext("2d");p&&(v.fillStyle=p,v.fillRect(0,0,_.width,_.height)),v.drawImage(t,f,S,b,y,n,c,d,m),g=_}else g=t;switch(c){case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk:}let m=g.getContext("2d").getImageData(0,0,g.width,g.height);!d||c!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit&&c!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib&&c!=e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk||(m=monochrome(m,220,"none"));let f=m.data,S=[];for(var b=0;b<f.byteLength;b+=4)S.push([f[b],f[b+1],f[b+2]]);const y=S.map((function(e){return e[0]<<16|e[1]<<8|e[2]}));return n.flatten(y,0,0,s,l,c)}static flatten(t,i,o,r,a,s){switch(s){case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_ZLib:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk:return n.flattenMonochrome(t,r,a,r);case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk:return n.flattenColor16_565(t,r,a,r);case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit:case e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk:return n.flattenColor24(t,r,a,r)}}static flattenMonochrome(e,t,i,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*i)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})((((-8&t)+(7&t?8:0))/8|0)*i);(e=>{for(let t=0;t<e.length;t++)e[t]=255})(r);let a=0,s=0;for(let l=0;l<i;++l){let i=0;for(let o=0;o<t;++o){const t=e[a+o],l=n.isInk(t);r[s]&=~(l<<7-i%8),i++%8==7&&++s}a+=o,7&i&&++s}return r}static rgb16_565(e){return e>>8&63488|e>>5&2016|e>>3&31}static flattenColor16_565(e,t,i,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*i)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(2*t*i);for(let a=0,s=0,l=0;l<i;++l,a+=o)for(let i=0;i<t;++i){const t=e[a+i],o=n.rgb16_565(t);r[s++]=n.B1(o),r[s++]=n.B0(o)}return r}static flattenColor24(e,t,i,o,r){return n.flattenColor24(null,o,r,o)}static flattenColor24(e,t,i,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*i)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(3*t*i);for(let a=0,s=0,l=0;l<i;++l,a+=o)for(let i=0;i<t;++i){const t=e[a+i];r[s++]=n.B0(t),r[s++]=n.B1(t),r[s++]=n.B2(t)}return r}static async writeImageCommon(t,i,o,r,a,s){if(await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),n.OpDirection_Set,a,s),i===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_1bit_Bulk||i===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_16bit_Bulk||i===e.WacomGSS.STU.Protocol.EncodingMode.EncodingMode_24bit_Bulk)await t.getInterface().write(r);else{let n=0,i=r.length;for(;0!==i;){const a=i>o?o:i,s=new e.WacomGSS.STU.Protocol.ImageDataBlock(r,n,a);await t.setImageDataBlock(s),n+=a,i-=a}}await t.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,i,o,r,a,s){await n.waitForStatusToSend(t,await e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),n.OpDirection_Set,a,s),await t.setStartImageData$com_WacomGSS_STU_Protocol_EncodingMode(i),await n.writeImageCommon(t,i,o,r,a,s)}static async writeImage(t,n,i,o,r,a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||!(null!=o&&o instanceof Array&&(0==o.length||null==o[0]||"number"==typeof o[0])||null===o)||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof n&&null!==n||!(null!=i&&i instanceof Array&&(0==i.length||null==i[0]||"number"==typeof i[0])||null===i)||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||void 0!==a){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof n&&null!==n||!(null!=i&&i instanceof Array&&(0==i.length||null==i[0]||"number"==typeof i[0])||null===i)||"number"!=typeof o&&null!==o||"number"!=typeof r&&null!==r||void 0!==a)throw new Error("invalid overload");return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(t,n,i,o,r)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$byte_A$int$long(t,n,i,o,r)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,n,i,o,r,a)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$byte_A$int$long(t,i,o,r,a){await n.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(t,i,e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID,o,r,a)}static async writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,i,o,r,a,s,l){await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),n.OpDirection_Set,s,l),await t.setStartImageDataArea(i,o),await n.writeImageCommon(t,i,r,a,s,l)}static async writeImageArea(t,n,i,o,r,a,s){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof n&&null!==n||!(null!=i&&i instanceof e.WacomGSS.STU.Protocol.Rectangle||null===i)||"number"!=typeof o&&null!==o||!(null!=r&&r instanceof Array&&(0==r.length||null==r[0]||"number"==typeof r[0])||null===r)||"number"!=typeof a&&null!==a||"number"!=typeof s&&null!==s){if(!(null!=t&&t instanceof e.WacomGSS.STU.Protocol.Protocol||null===t)||"number"!=typeof n&&null!==n||!(null!=i&&i instanceof e.WacomGSS.STU.Protocol.Rectangle||null===i)||!(null!=o&&o instanceof Array&&(0==o.length||null==o[0]||"number"==typeof o[0])||null===o)||"number"!=typeof r&&null!==r||"number"!=typeof a&&null!==a||void 0!==s)throw new Error("invalid overload");return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$byte_A$int$long(t,n,i,o,r,a)}return await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,n,i,o,r,a,s)}static async writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$byte_A$int$long(t,i,o,r,a,s){await n.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(t,i,o,e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID,r,a,s)}static async writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(t,i,o,r,a){if(await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),n.OpDirection_Set,r,a),await t.setStartImageData$int(i),await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$(),n.OpDirection_Set,r,a),i&e.WacomGSS.STU.Protocol.EncodingMode._$wrappers[e.WacomGSS.STU.Protocol.EncodingMode].EncodingMode_Bulk)await t.getInterface().write(o);else{let n=0,i=o.length;for(;0!==i;){const r=i>e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID?e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID:i,a=new e.WacomGSS.STU.Protocol.ImageDataBlock(o,n,r);await t.setImageDataBlock(a),n+=r,i-=r}}await t.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Commit)}static isInk(e){return e<=14211289?1:0}static clamp(e){return Math.min(Math.max(Math.round(e),0),255)}static rgb16_565(e){return e>>8&63488|e>>5&2016|e>>3&31}static flattenColor16_565(e,t,i,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*i)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(2*t*i);for(let a=0,s=0,l=0;l<i;++l,a+=o)for(let i=0;i<t;++i){const t=e[a+i],o=n.rgb16_565(t);r[s++]=n.B1(o),r[s++]=n.B0(o)}return r}static flattenColor24(e,t,i,o){if(o<t)throw Object.defineProperty(new Error("stride must be bigger than screenWidth"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});if(e.length!==o*i)throw Object.defineProperty(new Error("rgb incorrect length"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(3*t*i);for(let a=0,s=0,l=0;l<i;++l,a+=o)for(let i=0;i<t;++i){const t=e[a+i];r[s++]=n.B0(t),r[s++]=n.B1(t),r[s++]=n.B2(t)}return r}static k_factoryDefaultInkThreshold_$LI$(){return null==n.k_factoryDefaultInkThreshold&&(n.k_factoryDefaultInkThreshold=new e.WacomGSS.STU.Protocol.InkThreshold(21,17)),n.k_factoryDefaultInkThreshold}static getNextInkState(t,n,i,o){return 0===n||!(e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isOff].getValue())&&i<o.getOffPressureMark()||e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isOff].getValue()&&i<o.getOnPressureMark()?e.WacomGSS.STU.Protocol.InkState._$wrappers[t].getValue()&e.WacomGSS.STU.Protocol.InkState._$wrappers[e.WacomGSS.STU.Protocol.InkState.InkState_isInk].getValue()?e.WacomGSS.STU.Protocol.InkState.InkState_Last:e.WacomGSS.STU.Protocol.InkState.InkState_Up:t!==e.WacomGSS.STU.Protocol.InkState.InkState_Up?t===e.WacomGSS.STU.Protocol.InkState.InkState_Down?e.WacomGSS.STU.Protocol.InkState.InkState_First:e.WacomGSS.STU.Protocol.InkState.InkState_Inking:e.WacomGSS.STU.Protocol.InkState.InkState_Down}static async writeRomImage(t,i,o,r,a,s){await n.waitForStatusToSend(t,e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),n.OpDirection_Set,a,s),await t.setRomStartImageData(i),await n.writeImageCommon(t,i.getEncodingMode(),o,r,a,s)}static makeLegacyGetReport(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+1);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(n,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_GetFeature_$LI$()),n[6]=t,n}static makeLegacySetReport(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+t.length);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(n,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_SetFeature_$LI$()),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t,0,n,e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE,t.length),n}static makeLegacyWrite(t){const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE+t.length);return e.WacomGSS.STU.Protocol.TlsProtocol.setPacketHeader(n,e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_Write_$LI$()),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t,0,n,e.WacomGSS.STU.Protocol.TlsProtocol.PACKET_HEADER_SIZE,t.length),n}static waitForReturn(t,n,i){for(;;){const o=t.wait_until_getReport(n);if(null==o)break;const r=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_ReturnValue(o);if(r.getPacketId()===e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.ReturnValue_$LI$()){if(!(r.getReturnValueStatus()&e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus.Error_$LI$()))return o;throw new e.WacomGSS.STU.Protocol.SendException(r.getReturnValueStatus(),i)}}throw new e.WacomGSS.STU.TimeoutException("Time out waiting for tablet")}static checkReturnValueStatus(t){const n=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_returnValueStatus(t);if(n!==e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus.Success_$LI$())throw new e.WacomGSS.STU.Protocol.SendException(n,new e.WacomGSS.STU.Protocol.SendHint)}}n.OpDirection_Get=256,n.OpDirection_Set=512,n.OpStatus_Ready=1,n.OpStatus_Image=2,n.OpStatus_Capture=4,n.OpStatus_Calculation=8,n.OpStatus_Image_Boot=16,n.OpStatus_RomBusy=32,n.OpStatus_SystemReset=128,t.ProtocolHelper=n,n.__class="com.WacomGSS.STU.Protocol.ProtocolHelper",function(e){class t{constructor(e,t){void 0===this.first&&(this.first=0),void 0===this.second&&(this.second=0),this.first=e,this.second=t}}e.SendEntry=t,t.__class="com.WacomGSS.STU.Protocol.ProtocolHelper.SendEntry",function(e){e[e.Stretch=0]="Stretch",e[e.Fit=1]="Fit",e[e.Clip=2]="Clip"}(e.Scale||(e.Scale={}));class n{constructor(){}}n.Left=0,n.Center=1,n.Right=2,n.Top=0,n.Middle=16,n.Bottom=32,e.Clip=n,n.__class="com.WacomGSS.STU.Protocol.ProtocolHelper.Clip"}(n=t.ProtocolHelper||(t.ProtocolHelper={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={}));for(var com$1,bayerThresholdMap=[[15,135,45,165],[195,75,225,105],[60,180,30,150],[240,120,210,90]],lumR=[],lumG=[],lumB=[],i=0;i<256;i++)lumR[i]=.299*i,lumG[i]=.587*i,lumB[i]=.114*i;function monochrome(e,t,n){for(var i=e.data.length,o=0;o<=i;o+=4)e.data[o]=Math.floor(lumR[e.data[o]]+lumG[e.data[o+1]]+lumB[e.data[o+2]]);for(var r,a,s=e.width,l=0;l<=i;l+=4){if("none"===n)e.data[l]=e.data[l]<t?0:255;else if("bayer"===n){var c=l/4%s,u=Math.floor(l/4/s),p=Math.floor((e.data[l]+bayerThresholdMap[c%4][u%4])/2);e.data[l]=p<t?0:255}else"floydsteinberg"===n?(r=e.data[l]<129?0:255,a=Math.floor((e.data[l]-r)/16),e.data[l]=r,e.data[l+4]+=7*a,e.data[l+4*s-4]+=3*a,e.data[l+4*s]+=5*a,e.data[l+4*s+4]+=1*a):(r=e.data[l]<129?0:255,a=Math.floor((e.data[l]-r)/8),e.data[l]=r,e.data[l+4]+=a,e.data[l+8]+=a,e.data[l+4*s-4]+=a,e.data[l+4*s]+=a,e.data[l+4*s+4]+=a,e.data[l+8*s]+=a);e.data[l+1]=e.data[l+2]=e.data[l]}return e}function toHex(e,t){var n=e.toString(16);return"0000000000000000".substr(0,t-n.length)+n}function toHex2(e){return toHex(e,2)}function arrayToHex(e){for(var t="",n=0;n<e.length;++n)t+=toHex2(e[n]);return t}function hexToArray(e){for(var t=new Array,n=0;n<e.length;n+=2)t.push(parseInt("0x"+e.substr(n,2),16));return t}function padLeft(e,t,n){return void 0===n&&(n=" "),t>(e=e.toString()).length&&(e=Array(t+1-e.length).join(n)+e),e}function base64UrlDecode(e){e=atob(e.replace(/-/g,"+").replace(/_/g,"/"));for(var t=new Array(e.length),n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t}function powMod(e,t,n){return t<=BigInt(0)?BigInt(1):t===BigInt(1)?e%n:t%BigInt(2)===BigInt(0)?powMod(e*e%n,t/BigInt(2)|BigInt(0),n)%n:powMod(e*e%n,t/BigInt(2)|BigInt(0),n)*e%n}!function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Legacy=0]="Legacy",e[e.WILL=1]="WILL"}(t=e.RenderingMode||(e.RenderingMode={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.RenderingMode_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.RenderingMode",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"Legacy",0),new n(1,"WILL",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(){void 0===this.handlers&&(this.handlers=null),this.handlers=[]}addReportHandler(e){this.handlers.push(e)}removeReportHandler(e){(t=>{let n=t.indexOf(e);n>=0&&t.splice(n,1)})(this.handlers)}static copy(e,t,n){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n);return((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,t,i,0,n),i}decodeTls(t,i,o){const r=new n.decodeTls_RetVal(o),a=i.length-o;if(a>=6){const s=n.copy(i,o,6),l=e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_size(s);if(a>=l)switch(e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport_packetId(s)){case e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_PenData_$LI$():try{t.onPenData(e.WacomGSS.STU.Protocol.Protocol.decodePenData(i,o+6)),r.success=!0,r.offset=o+6+8}catch(e){}r.success=!0,r.offset=o+l;break;case e.WacomGSS.STU.Protocol.TlsProtocol.PacketId.Legacy_EventData_$LI$():try{switch(i[o+6]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():t.onEventDataPinPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPad(i,o+6));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():t.onEventDataKeyPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPad(i,o+6));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():t.onEventDataSignature(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignature(i,o+6))}}catch(e){}r.success=!0,r.offset=o+l}}return r}handleReport(t,i,o){let r=0;for(let a=0;a<this.handlers.length;a++){let s=this.handlers[a];r=0;e:for(;r<t.length;)if(o){const e=this.decodeTls(s,t,r);if(!e.success)break;r=e.offset}else switch(t[r]){case e.WacomGSS.STU.Protocol.ReportId.PenData_$LI$():if(r+e.WacomGSS.STU.Protocol.PenData.reportSize>t.length)break e;++r;try{s.onPenData(e.WacomGSS.STU.Protocol.Protocol.decodePenData(t,r),i)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenData.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataOption_$LI$():if(r+e.WacomGSS.STU.Protocol.PenDataOption.reportSize>t.length)break e;++r;try{s.onPenDataOption(e.WacomGSS.STU.Protocol.Protocol.decodePenDataOption(t,r),i)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenDataOption.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize>t.length)break e;++r;const o=n.copy(t,r,e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize);let a=n.copy(o,0,e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodePenDataEncrypted(o,0),i)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataEncrypted.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.PenDataEncryptedOption_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize>t.length)break e;++r;const o=n.copy(t,r,e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize);let a=n.copy(o,0,e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataEncryptedOption(e.WacomGSS.STU.Protocol.Protocol.decodePenDataEncryptedOption(o,0),i)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataEncryptedOption.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$():if(r+e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize>t.length)break e;++r;try{s.onEncryptionStatus(e.WacomGSS.STU.Protocol.Protocol.decodeEncryptionStatus(t,r))}catch(e){}r+=e.WacomGSS.STU.Protocol.EncryptionStatus.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.DevicePublicKey_$LI$():if(r+e.WacomGSS.STU.Protocol.DevicePublicKey.reportSize>t.length)break e;++r;try{s.onDevicePublicKey(e.WacomGSS.STU.Protocol.Protocol.decodeDevicePublicKey(t,r))}catch(e){}r+=e.WacomGSS.STU.Protocol.DevicePublicKey.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequence_$LI$():if(r+e.WacomGSS.STU.Protocol.PenDataTimeCountSequence.reportSize>t.length)break e;++r;try{s.onPenDataTimeCountSequence(e.WacomGSS.STU.Protocol.Protocol.decodePenDataTimeCountSequence(t,r),i)}catch(e){}r+=e.WacomGSS.STU.Protocol.PenDataTimeCountSequence.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.PenDataTimeCountSequenceEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize>t.length)break e;++r;const o=n.copy(t,r,e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize);let a=n.copy(o,0,e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.encryptedSize);try{a=s.onDecrypt(a)}catch(e){}if(null!=a&&a.length===e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.encryptedSize){for(let e=0;e<a.length;++e)o[e]=a[e];try{s.onPenDataTimeCountSequenceEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodePenDataTimeCountSequenceEncrypted(o,0),i)}catch(e){}}r+=e.WacomGSS.STU.Protocol.PenDataTimeCountSequenceEncrypted.reportSize}break;case e.WacomGSS.STU.Protocol.ReportId.EventData_$LI$():if(r+e.WacomGSS.STU.Protocol.EventData.reportSize>t.length)break e;++r;try{switch(t[r]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():s.onEventDataPinPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPad(t,r));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():s.onEventDataKeyPad(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPad(t,r));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():s.onEventDataSignature(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignature(t,r))}}catch(e){}r+=e.WacomGSS.STU.Protocol.EventData.reportSize;break;case e.WacomGSS.STU.Protocol.ReportId.EventDataEncrypted_$LI$():{if(r+e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize>t.length)break e;++r;const i=n.copy(t,r,e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize);let o=n.copy(i,0,e.WacomGSS.STU.Protocol.EventDataEncrypted.encryptedSize);try{o=s.onDecrypt(o)}catch(e){}if(null!=o&&o.length===e.WacomGSS.STU.Protocol.EventDataEncrypted.encryptedSize){for(let e=0;e<o.length;++e)i[e]=o[e];try{switch(i[4]){case e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$():s.onEventDataPinPadEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataPinPadEncrypted(i,0));break;case e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$():s.onEventDataKeyPadEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataKeyPadEncrypted(i,0));break;case e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$():s.onEventDataSignatureEncrypted(e.WacomGSS.STU.Protocol.Protocol.decodeEventDataSignatureEncrypted(i,0))}}catch(e){}}r+=e.WacomGSS.STU.Protocol.EventDataEncrypted.reportSize}break;default:break e}}return r!==t.length?n.copy(t,r,t.length-r):null}}t.ReportHandler=n,n.__class="com.WacomGSS.STU.Protocol.ReportHandler",function(e){class t{constructor(e){void 0===this.success&&(this.success=!1),void 0===this.offset&&(this.offset=0),this.success=!1,this.offset=e}}e.decodeTls_RetVal=t,t.__class="com.WacomGSS.STU.Protocol.ReportHandler.decodeTls_RetVal"}(n=t.ReportHandler||(t.ReportHandler={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static PenData_$LI$(){return null==t.PenData&&(t.PenData=1),t.PenData}static Status_$LI$(){return null==t.Status&&(t.Status=3),t.Status}static Reset_$LI$(){return null==t.Reset&&(t.Reset=4),t.Reset}static HidInformation_$LI$(){return null==t.HidInformation&&(t.HidInformation=6),t.HidInformation}static Information_$LI$(){return null==t.Information&&(t.Information=8),t.Information}static Capability_$LI$(){return null==t.Capability&&(t.Capability=9),t.Capability}static Uid_$LI$(){return null==t.Uid&&(t.Uid=10),t.Uid}static Uid2_$LI$(){return null==t.Uid2&&(t.Uid2=11),t.Uid2}static DefaultMode_$LI$(){return null==t.DefaultMode&&(t.DefaultMode=12),t.DefaultMode}static ReportRate_$LI$(){return null==t.ReportRate&&(t.ReportRate=13),t.ReportRate}static RenderingMode_$LI$(){return null==t.RenderingMode&&(t.RenderingMode=14),t.RenderingMode}static Eserial_$LI$(){return null==t.Eserial&&(t.Eserial=15),t.Eserial}static PenDataEncrypted_$LI$(){return null==t.PenDataEncrypted&&(t.PenDataEncrypted=16),t.PenDataEncrypted}static HostPublicKey_$LI$(){return null==t.HostPublicKey&&(t.HostPublicKey=19),t.HostPublicKey}static DevicePublicKey_$LI$(){return null==t.DevicePublicKey&&(t.DevicePublicKey=20),t.DevicePublicKey}static StartCapture_$LI$(){return null==t.StartCapture&&(t.StartCapture=21),t.StartCapture}static EndCapture_$LI$(){return null==t.EndCapture&&(t.EndCapture=22),t.EndCapture}static DHprime_$LI$(){return null==t.DHprime&&(t.DHprime=26),t.DHprime}static DHbase_$LI$(){return null==t.DHbase&&(t.DHbase=27),t.DHbase}static ClearScreen_$LI$(){return null==t.ClearScreen&&(t.ClearScreen=32),t.ClearScreen}static InkingMode_$LI$(){return null==t.InkingMode&&(t.InkingMode=33),t.InkingMode}static InkThreshold_$LI$(){return null==t.InkThreshold&&(t.InkThreshold=34),t.InkThreshold}static ClearScreenArea_$LI$(){return null==t.ClearScreenArea&&(t.ClearScreenArea=35),t.ClearScreenArea}static StartImageDataArea_$LI$(){return null==t.StartImageDataArea&&(t.StartImageDataArea=36),t.StartImageDataArea}static StartImageData_$LI$(){return null==t.StartImageData&&(t.StartImageData=37),t.StartImageData}static ImageDataBlock_$LI$(){return null==t.ImageDataBlock&&(t.ImageDataBlock=38),t.ImageDataBlock}static EndImageData_$LI$(){return null==t.EndImageData&&(t.EndImageData=39),t.EndImageData}static HandwritingThicknessColor_$LI$(){return null==t.HandwritingThicknessColor&&(t.HandwritingThicknessColor=40),t.HandwritingThicknessColor}static BackgroundColor_$LI$(){return null==t.BackgroundColor&&(t.BackgroundColor=41),t.BackgroundColor}static HandwritingDisplayArea_$LI$(){return null==t.HandwritingDisplayArea&&(t.HandwritingDisplayArea=42),t.HandwritingDisplayArea}static BacklightBrightness_$LI$(){return null==t.BacklightBrightness&&(t.BacklightBrightness=43),t.BacklightBrightness}static ScreenContrast_$LI$(){return null==t.ScreenContrast&&(t.ScreenContrast=44),t.ScreenContrast}static HandwritingThicknessColor24_$LI$(){return null==t.HandwritingThicknessColor24&&(t.HandwritingThicknessColor24=45),t.HandwritingThicknessColor24}static BackgroundColor24_$LI$(){return null==t.BackgroundColor24&&(t.BackgroundColor24=46),t.BackgroundColor24}static BootScreen_$LI$(){return null==t.BootScreen&&(t.BootScreen=47),t.BootScreen}static PenDataOption_$LI$(){return null==t.PenDataOption&&(t.PenDataOption=48),t.PenDataOption}static PenDataEncryptedOption_$LI$(){return null==t.PenDataEncryptedOption&&(t.PenDataEncryptedOption=49),t.PenDataEncryptedOption}static PenDataOptionMode_$LI$(){return null==t.PenDataOptionMode&&(t.PenDataOptionMode=50),t.PenDataOptionMode}static PenDataTimeCountSequenceEncrypted_$LI$(){return null==t.PenDataTimeCountSequenceEncrypted&&(t.PenDataTimeCountSequenceEncrypted=51),t.PenDataTimeCountSequenceEncrypted}static PenDataTimeCountSequence_$LI$(){return null==t.PenDataTimeCountSequence&&(t.PenDataTimeCountSequence=52),t.PenDataTimeCountSequence}static EncryptionCommand_$LI$(){return null==t.EncryptionCommand&&(t.EncryptionCommand=64),t.EncryptionCommand}static EncryptionStatus_$LI$(){return null==t.EncryptionStatus&&(t.EncryptionStatus=80),t.EncryptionStatus}static GetReport_$LI$(){return null==t.GetReport&&(t.GetReport=128),t.GetReport}static SetResult_$LI$(){return null==t.SetResult&&(t.SetResult=129),t.SetResult}static PinPadData_$LI$(){return null==t.PinPadData&&(t.PinPadData=144),t.PinPadData}static PinPadDataEncrypted_$LI$(){return null==t.PinPadDataEncrypted&&(t.PinPadDataEncrypted=145),t.PinPadDataEncrypted}static PinOperationMode_$LI$(){return null==t.PinOperationMode&&(t.PinOperationMode=146),t.PinOperationMode}static OperationMode_$LI$(){return null==t.OperationMode&&(t.OperationMode=147),t.OperationMode}static RomStartImageData_$LI$(){return null==t.RomStartImageData&&(t.RomStartImageData=148),t.RomStartImageData}static RomImageOccupancy_$LI$(){return null==t.RomImageOccupancy&&(t.RomImageOccupancy=149),t.RomImageOccupancy}static RomImageHash_$LI$(){return null==t.RomImageHash&&(t.RomImageHash=150),t.RomImageHash}static RomImageDelete_$LI$(){return null==t.RomImageDelete&&(t.RomImageDelete=151),t.RomImageDelete}static CurrentImageArea_$LI$(){return null==t.CurrentImageArea&&(t.CurrentImageArea=152),t.CurrentImageArea}static EventData_$LI$(){return null==t.EventData&&(t.EventData=153),t.EventData}static EventDataEncrypted_$LI$(){return null==t.EventDataEncrypted&&(t.EventDataEncrypted=154),t.EventDataEncrypted}static RomImageDisplay_$LI$(){return null==t.RomImageDisplay&&(t.RomImageDisplay=155),t.RomImageDisplay}static ReportSizeCollection_$LI$(){return null==t.ReportSizeCollection&&(t.ReportSizeCollection=255),t.ReportSizeCollection}}e.ReportId=t,t.__class="com.WacomGSS.STU.Protocol.ReportId"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.Software=0]="Software",e[e.Hardware=1]="Hardware"}(t=e.ResetFlag||(e.ResetFlag={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ResetFlag_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.ResetFlag",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"Software",0),new n(1,"Hardware",1)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static All_$LI$(){return null==t.All&&(t.All=0),t.All}static PinPad_All_$LI$(){return null==t.PinPad_All&&(t.PinPad_All=1),t.PinPad_All}static SlideShow_All_$LI$(){return null==t.SlideShow_All&&(t.SlideShow_All=2),t.SlideShow_All}static KeyPad_All_$LI$(){return null==t.KeyPad_All&&(t.KeyPad_All=3),t.KeyPad_All}static Signature_All_$LI$(){return null==t.Signature_All&&(t.Signature_All=4),t.Signature_All}static MessageBox_All_$LI$(){return null==t.MessageBox_All&&(t.MessageBox_All=5),t.MessageBox_All}static PinPad_Number_$LI$(){return null==t.PinPad_Number&&(t.PinPad_Number=6),t.PinPad_Number}static SlideShow_Number_$LI$(){return null==t.SlideShow_Number&&(t.SlideShow_Number=7),t.SlideShow_Number}static KeyPad_Number_$LI$(){return null==t.KeyPad_Number&&(t.KeyPad_Number=8),t.KeyPad_Number}static Signature_Number_$LI$(){return null==t.Signature_Number&&(t.Signature_Number=9),t.Signature_Number}static MessageBox_Number_$LI$(){return null==t.MessageBox_Number&&(t.MessageBox_Number=10),t.MessageBox_Number}}e.RomImageDeleteMode=t,t.__class="com.WacomGSS.STU.Protocol.RomImageDeleteMode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,n,i,o,r,a){if(void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.imageType&&(this.imageType=!1),void 0===this.imageNumber&&(this.imageNumber=0),void 0===this.result&&(this.result=0),void 0===this.hash&&(this.hash=null),null==r||r.length!==t.myLength_$LI$()||a+t.hashSize>t.myLength_$LI$())throw Object.defineProperty(new Error("invalid RomImageHash"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});this.hash=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(t.hashSize),this.operationModeType=e,this.imageType=n,this.imageNumber=i,this.result=o,((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(r,a,this.hash,0,t.hashSize)}static myLength_$LI$(){return null==t.myLength&&(t.myLength=t.hashSize+4),t.myLength}getOperationModeType(){return this.operationModeType}getImageType(){return this.imageType}getImageNumber(){return this.imageNumber}getResult(){return this.result}getHash(){return this.hash}}t.hashSize=16,e.RomImageHash=t,t.__class="com.WacomGSS.STU.Protocol.RomImageHash"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(e,t,n,i,o,r,a){void 0===this.encodingMode&&(this.encodingMode=null),void 0===this.operationModeType&&(this.operationModeType=0),void 0===this.imageType&&(this.imageType=!1),void 0===this.imageNumber&&(this.imageNumber=0),void 0===this.data&&(this.data=null),this.encodingMode=e,this.operationModeType=t,this.imageType=n,this.imageNumber=i,this.data=[o,r,a]}getEncodingMode(){return this.encodingMode}getOperationModeType(){return this.operationModeType}getImageType(){return this.imageType}getImageNumber(){return this.imageNumber}getData(){return this.data}static initializePinPad(t,i,o,r,a){return new n(t,e.WacomGSS.STU.Protocol.OperationModeType.PinPad_$LI$(),i,o,r,a,0)}static initializeSlideShow(t,i){return new n(t,e.WacomGSS.STU.Protocol.OperationModeType.SlideShow_$LI$(),!1,i,0,0,0)}static initializeKeyPad(t,i,o,r,a){if(null==a||a.length!==n.keyPadKeyEnabledLength)throw Object.defineProperty(new Error("invalid keyEnabled"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const s=r,l=0|(a[8]?1:0),c=(a[7]?128:0)|(a[6]?64:0)|(a[5]?32:0)|(a[4]?16:0)|(a[3]?8:0)|(a[2]?4:0)|(a[1]?2:0)|(a[0]?1:0);return new n(t,e.WacomGSS.STU.Protocol.OperationModeType.KeyPad_$LI$(),i,o,s,l,c)}static initializeSignature(t,i,o,r){if(null==r||r.length!==n.sigKeyEnabledLength)throw Object.defineProperty(new Error("invalid keyEnabled"),"__classes",{configurable:!0,value:["java.lang.Throwable","java.lang.Object","java.lang.RuntimeException","java.lang.IllegalArgumentException","java.lang.Exception"]});const a=(r[2]?4:0)|(r[1]?2:0)|(r[0]?1:0);return new n(t,e.WacomGSS.STU.Protocol.OperationModeType.Signature_$LI$(),i,o,a,0,0)}static initializeMessageBox(t,i){return new n(t,e.WacomGSS.STU.Protocol.OperationModeType.MessageBox_$LI$(),!1,i,0,0,0)}}n.keyPadKeyEnabledLength=9,n.sigKeyEnabledLength=3,n.dataBytes=3,t.RomStartImageData=n,n.__class="com.WacomGSS.STU.Protocol.RomStartImageData"}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){super(),Object.setPrototypeOf(this,n.prototype),void 0===this.returnValueStatus&&(this.returnValueStatus=0),void 0===this.sendHint&&(this.sendHint=null),this.returnValueStatus=e,this.sendHint=(e=>{if(null!=e.clone)return e.clone();{let t=Object.create(e);for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}})(t)}getReturnValueStatus(){return this.returnValueStatus}getSendHint(){return(e=>{if(null!=e.clone)return e.clone();{let t=Object.create(e);for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}})(this.sendHint)}}t.SendException=n,n.__class="com.WacomGSS.STU.Protocol.SendException",n.__interfaces=["java.io.Serializable"]}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t){if("number"!=typeof e&&null!==e||"number"!=typeof t&&null!==t){if(void 0!==e||void 0!==t)throw new Error("invalid overload");void 0===this.packetId&&(this.packetId=0),void 0===this.reportId&&(this.reportId=0),this.packetId=0,this.reportId=0}else void 0===this.packetId&&(this.packetId=0),void 0===this.reportId&&(this.reportId=0),this.packetId=e,this.reportId=t}getPacketId(){return this.packetId}getReportId(){return this.reportId}clone(){return new t(this.packetId,this.reportId)}}e.SendHint=t,t.__class="com.WacomGSS.STU.Protocol.SendHint",t.__interfaces=["java.lang.Cloneable"]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{constructor(e,t,n){void 0===this.statusCode&&(this.statusCode=0),void 0===this.lastResultCode&&(this.lastResultCode=0),void 0===this.statusWord&&(this.statusWord=0),this.statusCode=e,this.lastResultCode=t,this.statusWord=n}getStatusCode(){return this.statusCode}getLastResultCode(){return this.lastResultCode}getStatusWord(){return this.statusWord}}e.Status=t,t.__class="com.WacomGSS.STU.Protocol.Status"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Ready_$LI$(){return null==t.Ready&&(t.Ready=0),t.Ready}static Image_$LI$(){return null==t.Image&&(t.Image=1),t.Image}static Capture_$LI$(){return null==t.Capture&&(t.Capture=2),t.Capture}static Calculation_$LI$(){return null==t.Calculation&&(t.Calculation=3),t.Calculation}static Image_Boot_$LI$(){return null==t.Image_Boot&&(t.Image_Boot=4),t.Image_Boot}static RomBusy_$LI$(){return null==t.RomBusy&&(t.RomBusy=5),t.RomBusy}static SystemReset_$LI$(){return null==t.SystemReset&&(t.SystemReset=255),t.SystemReset}}e.StatusCode=t,t.__class="com.WacomGSS.STU.Protocol.StatusCode"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){class t{static Ready_$LI$(){return null==t.Ready&&(t.Ready=0),t.Ready}static Calculating_$LI$(){return null==t.Calculating&&(t.Calculating=250),t.Calculating}static Even_$LI$(){return null==t.Even&&(t.Even=251),t.Even}static Long_$LI$(){return null==t.Long&&(t.Long=252),t.Long}static Short_$LI$(){return null==t.Short&&(t.Short=253),t.Short}static Invalid_$LI$(){return null==t.Invalid&&(t.Invalid=254),t.Invalid}static NotReady_$LI$(){return null==t.NotReady&&(t.NotReady=255),t.NotReady}}e.StatusCodeRSA=t,t.__class="com.WacomGSS.STU.Protocol.StatusCodeRSA"}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){let t;!function(e){e[e.AES128=0]="AES128",e[e.AES192=1]="AES192",e[e.AES256=2]="AES256"}(t=e.SymmetricKeyType||(e.SymmetricKeyType={}));class n{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.SymmetricKeyType_$WRAPPER=n,t.__class="com.WacomGSS.STU.Protocol.SymmetricKeyType",t.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],t._$wrappers=[new n(0,"AES128",0),new n(1,"AES192",1),new n(2,"AES256",2)]}(e.Protocol||(e.Protocol={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return n.I$byte(e)<<8|n.I$byte(t)}static I$byte$byte$byte$byte(e,t,i,o){return n.I$byte(e)<<24|n.I$byte(t)<<16|n.I$byte(i)<<8|n.I$byte(o)}static I(t,n,i,o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||void 0!==i||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==n||void 0!==i||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte(t)}return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte$byte(t,n)}return e.WacomGSS.STU.Protocol.TlsProtocol.I$byte$byte$byte$byte(t,n,i,o)}static S(e,t){return 65535&n.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}static makeSendHint(t){const i=t.length>=6?n.decodeReport_packetId(t):0,o=t.length>=7&&(i===n.PacketId.Legacy_GetFeature_$LI$()||i===n.PacketId.Legacy_SetFeature_$LI$())?t[6]:0;return new e.WacomGSS.STU.Protocol.SendHint(i,o)}static setPacketHeader(e,t){e[0]=n.B3(e.length),e[1]=n.B2(e.length),e[2]=n.B1(e.length),e[3]=n.B0(e.length),e[4]=n.B1(t),e[5]=n.B0(t)}static decodeReport_size(e){return n.I$byte$byte$byte$byte(e[0],e[1],e[2],e[3])}static decodeReport_packetId(e){return n.S(e[4],e[5])}static decodeReport_returnValueStatus(e){return n.S(e[6],e[7])}static decodeReport_ReturnValue(e){return new n.ReturnValue(n.decodeReport_size(e),n.decodeReport_packetId(e),n.decodeReport_returnValueStatus(e))}static decodeReport_ReturnValue_ProtocolVersion(e){const t=n.S(e[8],e[9]),i=(e.length-10)/2|0,o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(i);for(let t=0;t<i;++t)o[t]=n.S(e[10+2*t],e[11+2*t]);return new n.ReturnValue_ProtocolVersion(n.decodeReport_ReturnValue(e),t,o)}static decodeReport_ReturnValue_Pending(e){const t=n.S(e[8],e[9]),i=e[10];return new n.ReturnValue_Pending(n.decodeReport_ReturnValue(e),t,i)}static decodeReport_ReturnValue_GenerateCSR(e){const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.length-8);return((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,8,t,0,t.length),new n.ReturnValue_GenerateCSR(n.decodeReport_ReturnValue(e),t)}static decodeReport_ReturnValue_CurrentCertificate(e){const t=e[8],i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(e.length-9);return((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(e,9,i,0,i.length),new n.ReturnValue_CurrentCertificate(n.decodeReport_ReturnValue(e),t,i)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue(e,t){n.decodeReport_ReturnValue(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_ProtocolVersion(e,t){n.decodeReport_ReturnValue_ProtocolVersion(e)}static decodeReport(t,n){if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_ProtocolVersion||null===n))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_ProtocolVersion(t,n);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_Pending||null===n))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_Pending(t,n);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_GenerateCSR||null===n))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_GenerateCSR(t,n);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_CurrentCertificate||null===n))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_CurrentCertificate(t,n);if((null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)&&(null!=n&&n instanceof e.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue||null===n))return e.WacomGSS.STU.Protocol.TlsProtocol.decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue(t,n);throw new Error("invalid overload")}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_Pending(e,t){n.decodeReport_ReturnValue_Pending(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_GenerateCSR(e,t){n.decodeReport_ReturnValue_GenerateCSR(e)}static decodeReport$byte_A$com_WacomGSS_STU_Protocol_TlsProtocol_ReturnValue_CurrentCertificate(e,t){n.decodeReport_ReturnValue_CurrentCertificate(e)}sendProtocolVersion(e){const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE+2);n.setPacketHeader(t,n.PacketId.ProtocolVersion_$LI$()),t[6]=n.B1(e),t[7]=n.B0(e);const i=this.intf.send$byte_A(t);return n.decodeReport_ReturnValue_ProtocolVersion(i)}sendGenerateCSR(t,i,o,r,a,s,l,c,u){const p=[i.split("").map((e=>e.charCodeAt(0))),o.split("").map((e=>e.charCodeAt(0))),r.split("").map((e=>e.charCodeAt(0))),a.split("").map((e=>e.charCodeAt(0))),s.split("").map((e=>e.charCodeAt(0))),l.split("").map((e=>e.charCodeAt(0))),c.split("").map((e=>e.charCodeAt(0))),u.split("").map((e=>e.charCodeAt(0)))],h=i.length+o.length+r.length+a.length+s.length+l.length+c.length+u.length,d=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE+2+8+h);n.setPacketHeader(d,n.PacketId.GenerateCSR_$LI$()),d[6]=n.B1(t),d[7]=n.B0(t);let g=8;for(let e=0;e<p.length;++e)((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(p[g],0,d,g,p[g].length),g+=p[g].length,d[g++]=0;return this.intf.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(d,e.WacomGSS.STU.InterfaceTLS.InterfaceQueueSelector.tag)}sendGenerateCSR_Cancel(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE);n.setPacketHeader(e,n.PacketId.GenerateCSR_Cancel_$LI$());const t=this.intf.send$byte_A(e);return n.decodeReport_ReturnValue(t)}sendImportCertificate(t,i){const o=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE+1+i.length);n.setPacketHeader(o,n.PacketId.ImportCertificate_$LI$()),o[6]=e.WacomGSS.STU.Protocol.TlsProtocol.ClientAuthentication._$wrappers[t].getValue(),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(i,0,o,7,i.length);const r=this.intf.send$byte_A(o);return n.decodeReport_ReturnValue(r)}sendDestroyCertificate(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE);n.setPacketHeader(e,n.PacketId.DestroyCertificate_$LI$());const t=this.intf.send$byte_A(e);return n.decodeReport_ReturnValue(t)}sendUpdateCRL(t){const i=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE+t.length);return n.setPacketHeader(i,n.PacketId.UpdateCRL_$LI$()),((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(t,0,i,6,t.length),this.intf.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(i,e.WacomGSS.STU.InterfaceTLS.InterfaceQueueSelector.tag)}sendDeleteCRL(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE);n.setPacketHeader(e,n.PacketId.DeleteCRL_$LI$());const t=this.intf.send$byte_A(e);return n.decodeReport_ReturnValue(t)}sendCurrentCertificate(){const e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(n.PACKET_HEADER_SIZE);n.setPacketHeader(e,n.PacketId.CurrentCertificate_$LI$());const t=this.intf.send$byte_A(e);return n.decodeReport_ReturnValue_CurrentCertificate(t)}}n.PACKET_HEADER_SIZE=6,t.TlsProtocol=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocol",function(e){class t{constructor(){}static ProtocolVersion_$LI$(){return null==t.ProtocolVersion&&(t.ProtocolVersion=1),t.ProtocolVersion}static GenerateCSR_$LI$(){return null==t.GenerateCSR&&(t.GenerateCSR=16),t.GenerateCSR}static GenerateCSR_Cancel_$LI$(){return null==t.GenerateCSR_Cancel&&(t.GenerateCSR_Cancel=17),t.GenerateCSR_Cancel}static ImportCertificate_$LI$(){return null==t.ImportCertificate&&(t.ImportCertificate=18),t.ImportCertificate}static DestroyCertificate_$LI$(){return null==t.DestroyCertificate&&(t.DestroyCertificate=19),t.DestroyCertificate}static UpdateCRL_$LI$(){return null==t.UpdateCRL&&(t.UpdateCRL=20),t.UpdateCRL}static DeleteCRL_$LI$(){return null==t.DeleteCRL&&(t.DeleteCRL=21),t.DeleteCRL}static CurrentCertificate_$LI$(){return null==t.CurrentCertificate&&(t.CurrentCertificate=22),t.CurrentCertificate}static ReturnValue_$LI$(){return null==t.ReturnValue&&(t.ReturnValue=128),t.ReturnValue}static Legacy_GetFeature_$LI$(){return null==t.Legacy_GetFeature&&(t.Legacy_GetFeature=258),t.Legacy_GetFeature}static Legacy_SetFeature_$LI$(){return null==t.Legacy_SetFeature&&(t.Legacy_SetFeature=259),t.Legacy_SetFeature}static Legacy_PenData_$LI$(){return null==t.Legacy_PenData&&(t.Legacy_PenData=260),t.Legacy_PenData}static Legacy_EventData_$LI$(){return null==t.Legacy_EventData&&(t.Legacy_EventData=261),t.Legacy_EventData}static Legacy_Write_$LI$(){return null==t.Legacy_Write&&(t.Legacy_Write=262),t.Legacy_Write}}e.PacketId=t,t.__class="com.WacomGSS.STU.Protocol.TlsProtocol.PacketId";class n{constructor(){}static Success_$LI$(){return null==n.Success&&(n.Success=0),n.Success}static Pending_$LI$(){return null==n.Pending&&(n.Pending=16385),n.Pending}static Pending_CSR_$LI$(){return null==n.Pending_CSR&&(n.Pending_CSR=16386),n.Pending_CSR}static CSR_$LI$(){return null==n.CSR&&(n.CSR=16387),n.CSR}static Pending_CRL_$LI$(){return null==n.Pending_CRL&&(n.Pending_CRL=16388),n.Pending_CRL}static Error_$LI$(){return null==n.Error&&(n.Error=32768),n.Error}static Error_Busy_$LI$(){return null==n.Error_Busy&&(n.Error_Busy=32769),n.Error_Busy}static Error_Unspecified_$LI$(){return null==n.Error_Unspecified&&(n.Error_Unspecified=65535),n.Error_Unspecified}}e.ReturnValueStatus=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValueStatus";class i{constructor(e,t,n){void 0===this.size&&(this.size=0),void 0===this.packetId&&(this.packetId=0),void 0===this.returnValueStatus&&(this.returnValueStatus=0),this.size=e,this.packetId=t,this.returnValueStatus=n}getSize(){return this.size}getPacketId(){return this.packetId}getReturnValueStatus(){return this.returnValueStatus}}let o;e.ReturnValue=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue",function(e){e[e.Single=0]="Single",e[e.Mutual=1]="Mutual"}(o=e.ClientAuthentication||(e.ClientAuthentication={}));class r{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ClientAuthentication_$WRAPPER=r,o.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ClientAuthentication",o.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],o._$wrappers=[new r(0,"Single",0),new r(1,"Mutual",1)];class a extends e.ReturnValue{constructor(e,t,n){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.activeLevel&&(this.activeLevel=0),void 0===this.supportedLevels&&(this.supportedLevels=null),this.activeLevel=t,this.supportedLevels=n.slice(0)}getActiveLevel(){return this.activeLevel}getSupportedLevels(){return this.supportedLevels.slice(0)}}e.ReturnValue_ProtocolVersion=a,a.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_ProtocolVersion";class s extends e.ReturnValue{constructor(e,t,n){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.counter&&(this.counter=0),void 0===this.statusFlags&&(this.statusFlags=0),this.counter=t,this.statusFlags=n}getCounter(){return this.counter}getStatusFlags(){return this.statusFlags}}e.ReturnValue_Pending=s,s.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_Pending";class l extends e.ReturnValue{constructor(e,t){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.csr&&(this.csr=null),this.csr=t.slice(0)}getCSR(){return this.csr.slice(0)}}e.ReturnValue_GenerateCSR=l,l.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_GenerateCSR";class c extends e.ReturnValue{constructor(e,t,n){super(e.getSize(),e.getPacketId(),e.getReturnValueStatus()),void 0===this.certificateIndex&&(this.certificateIndex=0),void 0===this.certificateDER&&(this.certificateDER=null),this.certificateIndex=t,this.certificateDER=n.slice(0)}getCertificateIndex(){return this.certificateIndex}getCertificateDER(){return this.certificateDER.slice(0)}}e.ReturnValue_CurrentCertificate=c,c.__class="com.WacomGSS.STU.Protocol.TlsProtocol.ReturnValue_CurrentCertificate"}(n=t.TlsProtocol||(t.TlsProtocol={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){!function(t){class n{constructor(e){void 0===this.intf&&(this.intf=null),this.intf=e}static B0(e){return 255&e}static B1(e){return e>>8&255}static B2(e){return e>>16&255}static B3(e){return e>>24&255}static I$byte(e){return 255&e}static I$byte$byte(e,t){return n.I$byte(e)<<8|n.I$byte(t)}static I$byte$byte$byte$byte(e,t,i,o){return n.I$byte(e)<<24|n.I$byte(t)<<16|n.I$byte(i)<<8|n.I$byte(o)}static I(t,n,i,o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||"number"!=typeof i&&null!==i||"number"!=typeof o&&null!==o){if("number"!=typeof t&&null!==t||"number"!=typeof n&&null!==n||void 0!==i||void 0!==o){if("number"!=typeof t&&null!==t||void 0!==n||void 0!==i||void 0!==o)throw new Error("invalid overload");return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte(t)}return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte$byte(t,n)}return e.WacomGSS.STU.Protocol.TlsProtocolOOB.I$byte$byte$byte$byte(t,n,i,o)}static S(e,t){return 65535&n.I$byte$byte(e,t)}getInterface(){return this.intf}setInterface(e){this.intf=e}getDescriptor(){const e=[n.ReportId.Descriptor_$LI$(),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.intf.getOOB(e);const t={str:"",toString:function(){return this.str}};for(let o=0;o<7&&0!==e[15+o];++o)(i=t).str=i.str.concat(String.fromCharCode(n.I$byte(e[15+o])));var i;return new n.Descriptor(n.I$byte$byte$byte$byte(e[1],e[2],e[3],e[4]),n.S(e[5],e[6]),n.S(e[7],e[8]),n.S(e[9],e[10]),n.S(e[11],e[12]),t.str)}getStatus(){const e=[n.ReportId.Status_$LI$(),0,0,0,0,0,0];return this.intf.getOOB(e),new n.Status(n.S(e[1],e[2]),n.I$byte$byte$byte$byte(e[3],e[4],e[5],e[6]))}getFactoryReset(){const e=[n.ReportId.FactoryReset_$LI$(),0,0,0,0];return this.intf.getOOB(e),n.I$byte$byte$byte$byte(e[1],e[2],e[3],e[4])}setFactoryReset(e){const t=[n.ReportId.FactoryReset_$LI$(),n.B3(e),n.B2(e),n.B1(e),n.B0(e)];this.intf.setOOB(t)}setFirmwareUpdate(e){const t=[n.ReportId.FirmwareUpdate_$LI$(),n.B3(e),n.B2(e),n.B1(e),n.B0(e)];this.intf.setOOB(t)}setReset(t){const i=[n.ReportId.Reset_$LI$(),e.WacomGSS.STU.Protocol.TlsProtocolOOB.ResetFlag._$wrappers[t].getValue()];this.intf.setOOB(i)}getReportSizeCollection(){let e=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(512);e[0]=n.ReportId.ReportSizeCollection_$LI$(),e=this.intf.getOOB(e);const t=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(256);t[0]=0;for(let i=1;i<=255;++i)t[i]=n.I$byte$byte(e[0+2*i],e[1+2*i]);return t}}t.TlsProtocolOOB=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB",function(e){class t{constructor(){}static Descriptor_$LI$(){return null==t.Descriptor&&(t.Descriptor=1),t.Descriptor}static Status_$LI$(){return null==t.Status&&(t.Status=2),t.Status}static Reset_$LI$(){return null==t.Reset&&(t.Reset=3),t.Reset}static FactoryResetKey_$LI$(){return null==t.FactoryResetKey&&(t.FactoryResetKey=14),t.FactoryResetKey}static FactoryReset_$LI$(){return null==t.FactoryReset&&(t.FactoryReset=15),t.FactoryReset}static FirmwareUpdate_$LI$(){return null==t.FirmwareUpdate&&(t.FirmwareUpdate=128),t.FirmwareUpdate}static ReportSizeCollection_$LI$(){return null==t.ReportSizeCollection&&(t.ReportSizeCollection=255),t.ReportSizeCollection}}e.ReportId=t,t.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.ReportId";class n{constructor(e,t,n,i,o,r){void 0===this.descriptorFlags&&(this.descriptorFlags=0),void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.firmwareRevisionMajor&&(this.firmwareRevisionMajor=0),void 0===this.firmwareRevisionMinor&&(this.firmwareRevisionMinor=0),void 0===this.modelName&&(this.modelName=null),this.descriptorFlags=e,this.idVendor=t,this.idProduct=n,this.firmwareRevisionMajor=i,this.firmwareRevisionMinor=o,this.modelName=r}getDescriptorFlags(){return this.descriptorFlags}getIdVendor(){return this.idVendor}getIdProduct(){return this.idProduct}getFirmwareRevisionMajor(){return this.firmwareRevisionMajor}getFirmwareRevisionMinor(){return this.firmwareRevisionMinor}getModelName(){return this.modelName}}e.Descriptor=n,n.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.Descriptor";class i{constructor(e,t){void 0===this.oobStatus&&(this.oobStatus=0),void 0===this.oobExtendedStatus&&(this.oobExtendedStatus=0),this.oobStatus=e,this.oobExtendedStatus=t}getOobStatus(){return this.oobStatus}getOobExtendedStatus(){return this.oobExtendedStatus}}let o;e.Status=i,i.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.Status",function(e){e[e.Connection=0]="Connection",e[e.Software=1]="Software",e[e.Hardware=2]="Hardware"}(o=e.ResetFlag||(e.ResetFlag={}));class r{constructor(e,t,n){this._$ordinal=e,this._$name=t,void 0===this.value&&(this.value=0),this.value=n}getValue(){return this.value}name(){return this._$name}ordinal(){return this._$ordinal}compareTo(e){return this._$ordinal-(isNaN(e)?e._$ordinal:e)}}e.ResetFlag_$WRAPPER=r,o.__class="com.WacomGSS.STU.Protocol.TlsProtocolOOB.ResetFlag",o.__interfaces=["java.lang.constant.Constable","java.lang.Comparable","java.io.Serializable"],o._$wrappers=[new r(0,"Connection",0),new r(1,"Software",1),new r(2,"Hardware",2)]}(n=t.TlsProtocolOOB||(t.TlsProtocolOOB={}))}(t.Protocol||(t.Protocol={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{static getProperty(e){return null}static setProperty$java_lang_String$boolean(e,t){}static setProperty$java_lang_String$byte(e,t){}static setProperty$java_lang_String$char(e,t){}static setProperty$java_lang_String$short(e,t){}static setProperty$java_lang_String$int(e,t){}static setProperty$java_lang_String$long(e,t){}static setProperty$java_lang_String$float(e,t){}static setProperty$java_lang_String$double(e,t){}static setProperty$java_lang_String$java_lang_String(e,t){}static setProperty(t,n){if("string"!=typeof t&&null!==t||"string"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||!(null!=n&&n instanceof Array&&(0==n.length||null==n[0]||"number"==typeof n[0])||null===n)){if("string"!=typeof t&&null!==t||"boolean"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"string"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||"number"!=typeof n&&null!==n){if("string"!=typeof t&&null!==t||null==n&&null!==n)throw new Error("invalid overload");return e.WacomGSS.STU.Component.setProperty$java_lang_String$java_lang_Object(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$double(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$float(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$long(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$int(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$short(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$char(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$byte(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$boolean(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$byte_A(t,n)}return e.WacomGSS.STU.Component.setProperty$java_lang_String$java_lang_String(t,n)}static setProperty$java_lang_String$byte_A(e,t){}static setProperty$java_lang_String$java_lang_Object(e,t){}static getComponentFiles(){return null}static diagnosticInformation(e){return null}}t.Component=n,n.__class="com.WacomGSS.STU.Component",function(e){class t{constructor(e,t){void 0===this.name&&(this.name=null),void 0===this.version&&(this.version=null),this.name=e,this.version=t}getName(){return this.name}getVersion(){return this.version}}e.ComponentFile=t,t.__class="com.WacomGSS.STU.Component.ComponentFile"}(n=t.Component||(t.Component={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.DeviceRemovedException=n,n.__class="com.WacomGSS.STU.DeviceRemovedException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.ErrorCodeException=n,n.__class="com.WacomGSS.STU.ErrorCodeException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{constructor(e){void 0===this.handlers&&(this.handlers=null),this.handlers=[],e.setRunnable(this)}run(t,n){0!=this.handlers.length&&new e.WacomGSS.STU.InterfaceHandler.InterfaceDispatch(this.handlers,t,n).run()}stop(){try{this.handlers.length=0,this.interfaceQueue.set_predicate(!0),this.interfaceQueue.notifyAll_getReport()}finally{}}addInterfaceHandler(e){this.handlers.push(e)}removeInterfaceHandler(e){(t=>{let n=t.indexOf(e);n>=0&&t.splice(n,1)})(this.handlers)}}t.InterfaceHandler=n,n.__class="com.WacomGSS.STU.InterfaceHandler",n.__interfaces=["java.lang.Runnable"],function(t){class n{constructor(t,n,i){if((null!=t&&t instanceof Array||null===t)&&(null!=n&&n instanceof Array&&(0==n.length||null==n[0]||"number"==typeof n[0])||null===n))void 0===this.handlers&&(this.handlers=null),void 0===this.report&&(this.report=null),this.handlers=t.slice(0),this.report=new e.WacomGSS.STU.Report(n),this.time=i;else{if(!(null!=t&&t instanceof Array||null===t)||!(null!=n&&n instanceof e.WacomGSS.STU.STUException||null===n))throw new Error("invalid overload");{let n=arguments[1];void 0===this.handlers&&(this.handlers=null),void 0===this.report&&(this.report=null),this.handlers=t.slice(0),this.report=new e.WacomGSS.STU.Report(n)}}}run(){if(null!=this.handlers)for(let e=0;e<this.handlers.length;e++){let t=this.handlers[e];try{t.onReport(this.report,this.time)}catch(e){}}}}t.InterfaceDispatch=n,n.__class="com.WacomGSS.STU.InterfaceHandler.InterfaceDispatch",n.__interfaces=["java.lang.Runnable"]}(n=t.InterfaceHandler||(t.InterfaceHandler={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){class t{constructor(){this.reports=[],this.promise=null,this.outsideResolve}getReport(e,t){this.promise?(this.outsideResolve(e),this.promise=null):this.runnable&&this.runnable.run(e,t)}setRunnable(e){this.runnable=e}clear(){}isEmpty(){return!0}notify_getReport(){}notifyAll_getReport(){}try_getReport(){return this.reports.length>0?this.reports.shift():null}async wait_until_getReport(e){return this.promise=new Promise(((e,t)=>{this.outsideResolve=e})),this.promise}get_predicate(){return!1}set_predicate(e){}wait_getReport_predicate(){return null}}e.InterfaceQueue=t,t.__class="com.WacomGSS.STU.InterfaceQueue"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){!function(e){!function(e){e[e.OOB=0]="OOB",e[e.SSL=1]="SSL"}(e.ConnectOption||(e.ConnectOption={})),function(e){e[e.tag=0]="tag"}(e.InterfaceQueueSelector||(e.InterfaceQueueSelector={}))}(e.InterfaceTLS||(e.InterfaceTLS={}))}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.IOErrorException=n,n.__class="com.WacomGSS.STU.IOErrorException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.NotConnectedException=n,n.__class="com.WacomGSS.STU.NotConnectedException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.NotSupportedException=n,n.__class="com.WacomGSS.STU.NotSupportedException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{constructor(t){if(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)void 0===this.report&&(this.report=null),void 0===this.e&&(this.e=null),this.report=t.slice(0),this.e=null;else{if(!(null!=t&&t instanceof e.WacomGSS.STU.STUException||null===t))throw new Error("invalid overload");{let e=arguments[0];void 0===this.report&&(this.report=null),void 0===this.e&&(this.e=null),this.report=null,this.e=e}}}getReport(){if(null!=this.e)throw this.e;return this.report.slice(0)}}t.Report=n,n.__class="com.WacomGSS.STU.Report"})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.SetErrorException=n,n.__class="com.WacomGSS.STU.SetErrorException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{constructor(t,i){if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler")>=0||null===t)&&(null!=i&&null!=i.constructor&&null!=i.constructor.__interfaces&&i.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler2")>=0||null===i))void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=n.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=t,this.encryptionHandler2=i})();else if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler")>=0||null===t)&&void 0===i)void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=n.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=t,this.encryptionHandler2=null})();else if((null!=t&&null!=t.constructor&&null!=t.constructor.__interfaces&&t.constructor.__interfaces.indexOf("com.WacomGSS.STU.Tablet.IEncryptionHandler2")>=0||null===t)&&void 0===i){let t=arguments[0];void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=n.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),(()=>{this.encryptionHandler=null,this.encryptionHandler2=t})()}else{if(void 0!==t||void 0!==i)throw new Error("invalid overload");void 0===this.encryptionHandler&&(this.encryptionHandler=null),void 0===this.encryptionHandler2&&(this.encryptionHandler2=null),void 0===this.protocol&&(this.protocol=null),void 0===this.isTls&&(this.isTls=!1),void 0===this.reportCountLengths&&(this.reportCountLengths=null),void 0===this.maxImageBlockSize&&(this.maxImageBlockSize=0),void 0===this.status&&(this.status=null),void 0===this.sessionId&&(this.sessionId=0),void 0===this.retries&&(this.retries=0),void 0===this.sleepBetweenRetries&&(this.sleepBetweenRetries=0),void 0===this.interfaceHandler&&(this.interfaceHandler=null),void 0===this.reportHandler&&(this.reportHandler=null),void 0===this.tabletHandlers&&(this.tabletHandlers=null),void 0===this.encryptionType&&(this.encryptionType=null),void 0===this.asymmetricKeySizeBytes&&(this.asymmetricKeySizeBytes=0),this.sessionId=0,this.retries=25,this.sleepBetweenRetries=50,this.interfaceHandler=null,this.reportHandler=new e.WacomGSS.STU.Protocol.ReportHandler,this.reportHandler.addReportHandler(this),this.maxImageBlockSize=0,this.tabletHandlers=[],this.encryptionHandler=null,this.encryptionHandler2=null,this.encryptionType=n.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0}}static I(e){return 255&e}async connect2(t){let n=0;try{try{this.isTls=null!=t&&t instanceof e.WacomGSS.STU.TlsInterface;const n=new e.WacomGSS.STU.Protocol.Protocol(t);this.status=await n.getStatus(),this.protocol=n,this.reportCountLengths=t.getReportCountLengths(),null!=this.reportCountLengths?this.maxImageBlockSize=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]-3:this.maxImageBlockSize=e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID;const i=this.status.getStatusCode();if(i!==e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$()){i===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()?this.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon):i===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()?await this.endCapture():e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$();try{await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())}catch(t){this.protocol.setReset(e.WacomGSS.STU.Protocol.ResetFlag.Software),await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())}this.status=await this.protocol.getStatus()}0!=this.tabletHandlers.length&&(this.interfaceHandler=new e.WacomGSS.STU.InterfaceHandler(t.interfaceQueue()),this.interfaceHandler.addInterfaceHandler(this))}catch(e){throw t.disconnect(),e}}catch(t){null!=t&&t instanceof e.WacomGSS.STU.STUException&&(n=-1),null!=t&&t instanceof e.WacomGSS.RuntimeException&&(n=-100),(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error)&&(n=-666)}return n}async initializeEncryption1(){if(this.encryptionHandler.requireDH()){const t=await this.protocol.getDHprime();if(await this.checkErrorCode(),!e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_DHprime(t))throw new e.WacomGSS.STU.NotSupportedException("Tablet does not have encryption enabled");const n=await this.protocol.getDHbase();await this.checkErrorCode(),await this.encryptionHandler.setDH(t.getValue(),n.getValue())}await this.reinitializeEncryption1()}async reinitializeEncryption1(){const t=new e.WacomGSS.STU.Protocol.PublicKey(this.encryptionHandler.generateHostPublicKey());await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.HostPublicKey_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const n=await e.WacomGSS.STU.Protocol.ProtocolHelper.setHostPublicKeyAndPollForDevicePublicKey(this.protocol,t,this.retries,this.sleepBetweenRetries);await this.checkErrorCode(),this.encryptionHandler.computeSharedKey(n.getValue())}async initializeEncryption2(t){switch(t||(this.symmetricKeyType=this.encryptionHandler2.getSymmetricKeyType(),this.asymmetricPaddingType=this.encryptionHandler2.getAsymmetricPaddingType(),this.asymmetricKeyType=this.encryptionHandler2.getAsymmetricKeyType()),this.asymmetricKeyType){case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA1024:this.asymmetricKeySizeBytes=128;break;case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA1536:this.asymmetricKeySizeBytes=192;break;case e.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA2048:this.asymmetricKeySizeBytes=256;break;default:throw new e.WacomGSS.RuntimeException("asymmetricKeyType unknown")}{await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.EncryptionCommand_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const t=await e.WacomGSS.STU.Protocol.Protocol.initializeSetEncryptionType(this.symmetricKeyType,this.asymmetricPaddingType,this.asymmetricKeyType);await this.protocol.setEncryptionCommand(t)}{this.publicExponent=await this.encryptionHandler2.getPublicExponent(),this.publicKey=await this.encryptionHandler2.generatePublicKey();let t=e.WacomGSS.STU.Protocol.Protocol.initializeSetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAe,this.publicExponent);await this.protocol.setEncryptionCommand(t);{let n=this.publicKey.length,i=0;for(;0!==n;){const o=n>64?64:n,r=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(o);((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(this.publicKey,i,r,0,o),t=e.WacomGSS.STU.Protocol.Protocol.initializeSetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAn,r),await this.protocol.setEncryptionCommand(t),n-=o,i+=o}}}{const t=await this.protocol.getEncryptionStatus();if(t.getStatusCodeRSAe()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$()||t.getStatusCodeRSAn()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$())throw new e.WacomGSS.RuntimeException("failed to upload public exponent and public key to tablet")}await this.reinitializeEncryption2()}async reinitializeEncryption2(t){{const t=await e.WacomGSS.STU.Protocol.ProtocolHelper.generateSymmetricKeyAndWaitForEncryptionStatus(this.protocol,this.retries,this.sleepBetweenRetries,this.retries*this.sleepBetweenRetries);if(t.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCodeRSA.None_$LI$())throw new e.WacomGSS.RuntimeException("EncryptionStatus.lastResultCode != ErrorCodeRSA_None after generateSymmetricKeyAndWaitForEncryptionStatus()");t.getStatusCodeRSAc()!==e.WacomGSS.STU.Protocol.StatusCodeRSA.Ready_$LI$()&&new e.WacomGSS.RuntimeException("EncryptionStatus.statusCodeRSAc != StatusCodeRSA.Ready after generateSymmetricKeyAndWaitForEncryptionStatus()")}const n=(e=>{let t=[];for(;e-- >0;)t.push(0);return t})(this.asymmetricKeySizeBytes);{let t=0,i=0;for(t=0;t<n.length;++i){let o=await e.WacomGSS.STU.Protocol.Protocol.initializeGetParameterBlock(e.WacomGSS.STU.Protocol.EncryptionCommandParameterBlockIndex.RSAc,i);await this.protocol.setEncryptionCommand(o),o=await this.protocol.getEncryptionCommand(e.WacomGSS.STU.Protocol.EncryptionCommandNumber.GetParameterBlock);const r=o.getData();if(null==r||0===r.length)throw new e.WacomGSS.RuntimeException("EncryptionCommand.data returned zero-length byte array");((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(r,0,n,t,r.length),t+=r.length}}await this.encryptionHandler2.computeSessionKey(n)}async waitForStatusToSend(t,n){await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatusToSend(this.protocol,t,n,this.retries,this.sleepBetweenRetries)}async waitForStatus(t){await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatus(this.protocol,t,this.retries,this.sleepBetweenRetries)}async clear(){this.sessionId=0,null!=this.encryptionHandler&&this.encryptionHandler.clearKeys(),null!=this.encryptionHandler2&&this.encryptionHandler2.clearKeys()}async checkErrorCode(){if(this.status=await this.protocol.getStatus(),this.status.getLastResultCode()!==e.WacomGSS.STU.Protocol.ErrorCode.None_$LI$())throw new e.WacomGSS.STU.ErrorCodeException}checkSupported(t){if(!this.isSupported(t))throw new e.WacomGSS.STU.NotSupportedException("ReportId="+t)}checkProtocol(){if(null==this.protocol)throw new e.WacomGSS.STU.NotConnectedException}onDecrypt(t){switch(this.encryptionType){case e.WacomGSS.STU.Tablet.EncryptionType.v1:if(null==this.encryptionHandler)throw new e.WacomGSS.RuntimeException("onDecrypt but no encryptionHandler");return this.encryptionHandler.decrypt(t);case e.WacomGSS.STU.Tablet.EncryptionType.v2:if(null==this.encryptionHandler2)throw new e.WacomGSS.RuntimeException("onDecrypt but no encryptionHandler2");return this.encryptionHandler2.decrypt(t);case e.WacomGSS.STU.Tablet.EncryptionType.None:case e.WacomGSS.STU.Tablet.EncryptionType.Unknown:}throw new e.WacomGSS.RuntimeException("Unexpected call to onDecrypt")}getEncryptionHandler(){return this.encryptionHandler}setEncryptionHandler(t){if(this.isConnected())throw new e.WacomGSS.RuntimeException("cannot set EncryptionHandler while connected");this.encryptionHandler=t}getEncryptionHandler2(){return this.encryptionHandler2}setEncryptionHandler2(t){if(this.isConnected())throw new e.WacomGSS.RuntimeException("cannot set EncryptionHandler2 while connected");this.encryptionHandler2=t}tlsConnect(t){return this.disconnect(),new e.WacomGSS.STU.TlsInterface,-1}async usbConnect(t){await this.disconnect();const n=new e.WacomGSS.STU.UsbInterface;await n.connect(t),await this.connect2(n)}getProtocol(){return new e.WacomGSS.STU.Protocol.Protocol(new n.TabletInterface(this))}isEmpty(){return null==this.protocol}isConnected(){return null!=this.protocol&&this.protocol.getInterface().isConnected()}async disconnect(){if(null!=this.protocol&&this.protocol.getInterface().disconnect(),this.clear(),this.protocol=null,this.status=null,this.encryptionType=n.EncryptionType.Unknown,this.asymmetricKeySizeBytes=0,this.maxImageBlockSize=0,null!=this.interfaceHandler){this.interfaceHandler.removeInterfaceHandler(this);try{this.interfaceHandler.stop()}catch(e){}this.interfaceHandler=null}null!=this.encryptionHandler&&this.encryptionHandler.reset(),null!=this.encryptionHandler2&&this.encryptionHandler2.reset()}interfaceQueue(){return this.checkProtocol(),this.protocol.getInterface().interfaceQueue()}addTabletHandler(t){this.tabletHandlers.push(t),null==this.interfaceHandler&&null!=this.protocol&&(this.interfaceHandler=new e.WacomGSS.STU.InterfaceHandler(this.protocol.getInterface().interfaceQueue()),this.interfaceHandler.addInterfaceHandler(this))}removeTabletHandler(e){if((t=>{let n=t.indexOf(e);n>=0&&t.splice(n,1)})(this.tabletHandlers),0==this.tabletHandlers.length&&null!=this.interfaceHandler){this.interfaceHandler.removeInterfaceHandler(this);try{this.interfaceHandler.stop()}catch(e){}this.interfaceHandler=null}}queueNotifyAll(){this.checkProtocol(),this.protocol.getInterface().queueNotifyAll()}supportsWrite(){return this.checkProtocol(),this.protocol.getInterface().supportsWrite()}getReportCountLengths(){return this.checkProtocol(),this.reportCountLengths=this.protocol.getInterface().getReportCountLengths(),this.reportCountLengths}getProductId(){return this.checkProtocol(),this.protocol.getInterface().getProductId()}isSupported(e){return this.checkProtocol(),null==this.reportCountLengths||null!=this.reportCountLengths[n.I(e)]}async getStatus(){return this.checkProtocol(),this.status=await this.protocol.getStatus(),this.status}async reset(){this.clear(),this.checkProtocol(),await this.protocol.setReset(e.WacomGSS.STU.Protocol.ResetFlag.Software),await this.checkErrorCode()}async getInformation(){this.checkProtocol();const e=await this.protocol.getInformation();return await this.checkErrorCode(),e}async getHidInformation(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HidInformation_$LI$());const t=await this.protocol.getHidInformation();return await this.checkErrorCode(),t}async getDefaultMode(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$());const t=await this.protocol.getDefaultMode();return await this.checkErrorCode(),t}async setDefaultMode(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.DefaultMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setDefaultMode(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getCapability(){this.checkProtocol();const e=await this.protocol.getCapability();return await this.checkErrorCode(),e}async getUid(){this.checkProtocol();const e=await this.protocol.getUid();return await this.checkErrorCode(),e}async setUid(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.Uid_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setUid(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getUid2(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.Uid2_$LI$());const t=await this.protocol.getUid2();return await this.checkErrorCode(),t}async getEserial(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.Eserial_$LI$());const t=await this.protocol.getEserial();return await this.checkErrorCode(),t}async setClearScreenArea(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ClearScreenArea_$LI$()),await this.protocol.setClearScreenArea(t),await await this.checkErrorCode()}async writeImageArea(t,i,o){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$());const r=new n.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImageArea$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$com_WacomGSS_STU_Protocol_Rectangle$int$byte_A$int$long(this.protocol,t,i,this.maxImageBlockSize,o,this.retries,this.sleepBetweenRetries),await this.checkErrorCode(),await r.restore(),await r.close()}async getHostPublicKey(){this.checkProtocol();const e=await this.protocol.getHostPublicKey();return await this.checkErrorCode(),e}async getDevicePublicKey(){this.checkProtocol();const e=await this.protocol.getDevicePublicKey();return await this.checkErrorCode(),e}async restartCapture(t){switch(this.encryptionType){case e.WacomGSS.STU.Tablet.EncryptionType.v1:await this.reinitializeEncryption1();break;case e.WacomGSS.STU.Tablet.EncryptionType.v2:await this.reinitializeEncryption2();break;case e.WacomGSS.STU.Tablet.EncryptionType.Unknown:case e.WacomGSS.STU.Tablet.EncryptionType.None:default:throw new e.WacomGSS.RuntimeException("unexpected restartCapture with invalid encryptionType setting")}e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(this.status.getStatusCode(),e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set)||await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setStartCapture(t),await this.checkErrorCode(),this.sessionId=t,await e.WacomGSS.STU.Protocol.ProtocolHelper.waitForStatus(this.protocol,e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$(),this.retries,this.sleepBetweenRetries)}async startCapture(t,i){if(this.checkProtocol(),null==this.encryptionHandler&&null==this.encryptionHandler2)throw new e.WacomGSS.RuntimeException("cannot startCapture without an EncryptionHandler or EncryptionHandler2");if(this.encryptionType===n.EncryptionType.None)throw new e.WacomGSS.STU.NotSupportedException("ReportId.StartCapture");if(this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()&&(this.sessionId=0,await this.endCapture()),this.encryptionType==n.EncryptionType.Unknown)if(this.encryptionType=n.EncryptionType.None,null!=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$()]){if(null==this.encryptionHandler2)throw new e.WacomGSS.STU.NotSupportedException("Cannot call startCapture on this tablet without an encryptionHandler2 set");this.encryptionType=n.EncryptionType.v2}else{if(!await e.WacomGSS.STU.Protocol.ProtocolHelper.supportsEncryption$com_WacomGSS_STU_Protocol_Protocol(this.protocol))throw new e.WacomGSS.STU.NotSupportedException("startCapture");if(null==this.encryptionHandler)throw new e.WacomGSS.STU.NotSupportedException("Cannot call startCapture on this tablet without an encryptionHandler set");this.encryptionType=n.EncryptionType.v1}this.encryptionType==n.EncryptionType.v2?await this.initializeEncryption2(i):await this.initializeEncryption1(),e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(this.status.getStatusCode(),e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set)||await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.StartCapture_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setStartCapture(t),await this.checkErrorCode(),this.sessionId=t,await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$())}async endCapture(){await new Promise((e=>setTimeout(e,100))),this.checkProtocol(),this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()&&(this.sessionId=0,await this.protocol.setEndCapture(),await this.checkErrorCode(),this.status.getStatusCode()!==e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$()&&(this.status=await this.waitForStatus(e.WacomGSS.STU.Protocol.StatusCode.Ready_$LI$())))}async getDHprime(){this.checkProtocol();const e=await this.protocol.getDHprime();return await this.checkErrorCode(),e}async setDHprime(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.DHprime_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),null!=this.encryptionHandler&&this.encryptionHandler.reset(),await this.protocol.setDHprime(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getDHbase(){this.checkProtocol();const e=await this.protocol.getDHbase();return await this.checkErrorCode(),e}async setDHbase(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.DHbase_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),null!=this.encryptionHandler&&this.encryptionHandler.reset(),await this.protocol.setDHbase(t),await this.checkErrorCode(),await i.restore(),await i.close()}async setClearScreen(){const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.ClearScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setClearScreen(),await this.checkErrorCode(),await t.restore(),await t.close()}async getInkingMode(){this.checkProtocol();const e=await this.protocol.getInkingMode();return await this.checkErrorCode(),e}async setInkingMode(e){this.checkProtocol(),await this.protocol.setInkingMode(e),await this.checkErrorCode()}async getInkThreshold(){this.checkProtocol();const e=await this.protocol.getInkThreshold();return await this.checkErrorCode(),e}async setInkThreshold(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.InkThreshold_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setInkThreshold(t),await this.checkErrorCode(),await i.restore(),await i.close()}async writeImage$com_WacomGSS_STU_Protocol_EncodingMode$byte_A(t,i){const o=new n.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$com_WacomGSS_STU_Protocol_EncodingMode$int$byte_A$int$long(this.protocol,t,this.maxImageBlockSize,i,this.retries,this.sleepBetweenRetries),await await this.checkErrorCode(),await o.restore(),await o.close()}async writeImage(e,t){if("number"!=typeof e&&null!==e||!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t)){if("number"!=typeof e&&null!==e||!(null!=t&&t instanceof Array&&(0==t.length||null==t[0]||"number"==typeof t[0])||null===t))throw new Error("invalid overload");return await this.writeImage$int$byte_A(e,t)}return await this.writeImage$com_WacomGSS_STU_Protocol_EncodingMode$byte_A(e,t)}async writeImage$int$byte_A(t,i){const o=new n.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.StartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await e.WacomGSS.STU.Protocol.ProtocolHelper.writeImage$com_WacomGSS_STU_Protocol_Protocol$int$byte_A$int$long(this.protocol,t,i,this.retries,this.sleepBetweenRetries),await await this.checkErrorCode(),await o.restore(),await o.close()}async endImageData(){this.checkProtocol(),this.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()&&(await this.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon),await await this.checkErrorCode())}async getHandwritingThicknessColor(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$());const t=await this.protocol.getHandwritingThicknessColor();return await this.checkErrorCode(),t}async setHandwritingThicknessColor(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingThicknessColor_$LI$()),await this.protocol.setHandwritingThicknessColor(t),await this.checkErrorCode()}async getBackgroundColor(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$());const t=await this.protocol.getBackgroundColor();return await this.checkErrorCode(),t}async setBackgroundColor(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BackgroundColor_$LI$()),await this.protocol.setBackgroundColor(t),await this.checkErrorCode()}async getHandwritingDisplayArea(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$());const t=await this.protocol.getHandwritingDisplayArea();return await this.checkErrorCode(),t}async setHandwritingDisplayArea(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.HandwritingDisplayArea_$LI$()),await this.protocol.setHandwritingDisplayArea(t),await this.checkErrorCode()}async getBacklightBrightness(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$());const t=await this.protocol.getBacklightBrightness();return await this.checkErrorCode(),t}async setBacklightBrightness(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$()),await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.BacklightBrightness_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setBacklightBrightness(t),await this.checkErrorCode()}async getScreenContrast(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$());const t=await this.protocol.getScreenContrast();return await this.checkErrorCode(),t}async setScreenContrast(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$()),await this.waitForStatusToSend(e.WacomGSS.STU.Protocol.ReportId.ScreenContrast_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setScreenContrast(t),await this.checkErrorCode()}async getPenDataOptionMode(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$());const t=await this.protocol.getPenDataOptionMode();return await this.checkErrorCode(),t}async setPenDataOptionMode(t){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.PenDataOptionMode_$LI$()),await this.protocol.setPenDataOptionMode(t),await this.checkErrorCode()}async getEncryptionStatus(){this.checkProtocol(),this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.EncryptionStatus_$LI$());const t=await this.protocol.getEncryptionStatus();return await this.checkErrorCode(),t}async getReportRate(){const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getReportRate();return await this.checkErrorCode(),await t.restore(),i}async setReportRate(t){const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.ReportRate_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setReportRate(t),await this.checkErrorCode(),await i.restore(),await i.close()}async setRenderingMode(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$());const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRenderingMode(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getRenderingMode(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$());const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.RenderingMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getRenderingMode();return await this.checkErrorCode(),await t.restore(),i}async setBootScreen(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$());const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setBootScreen(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getBootScreen(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$());const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.BootScreen_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getBootScreen();return await this.checkErrorCode(),await t.restore(),i}async setOperationMode(t){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$());const i=new n.StateHandler;await i.init(this,e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setOperationMode(t),await this.checkErrorCode(),await i.restore(),await i.close()}async getOperationMode(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$());const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.OperationMode_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getOperationMode();return await this.checkErrorCode(),await t.restore(),i}async writeRomImage(t,i){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$());const o=new n.StateHandler;await o.init(this,e.WacomGSS.STU.Protocol.ReportId.RomStartImageData_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set);const r=this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]>3?this.reportCountLengths[e.WacomGSS.STU.Protocol.ReportId.ImageDataBlock_$LI$()]-3:e.WacomGSS.STU.Protocol.ImageDataBlock.maxLengthHID;await e.WacomGSS.STU.Protocol.ProtocolHelper.writeRomImage(this.protocol,t,r,i,this.retries,this.sleepBetweenRetries),await this.checkErrorCode(),await o.restore(),await o.close()}async setRomImageHash(t,i,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$());const r=new n.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageHash(t,i,o),await await this.checkErrorCode(),await await r.restore(),await r.close()}async getRomImageHash(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$());const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageHash_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getRomImageHash();return await this.checkErrorCode(),await t.restore(),i}async setRomImageDelete(t,i,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$());const r=new n.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageDelete_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageDelete(t,i,o),await this.checkErrorCode(),await r.restore(),await r.close()}async getCurrentImageArea(){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$());const t=new n.StateHandler;await t.init(this,e.WacomGSS.STU.Protocol.ReportId.CurrentImageArea_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Get);const i=await this.protocol.getCurrentImageArea();return await this.checkErrorCode(),await t.restore(),i}async setRomImageDisplay(t,i,o){this.checkSupported(e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$());const r=new n.StateHandler;await r.init(this,e.WacomGSS.STU.Protocol.ReportId.RomImageDisplay_$LI$(),e.WacomGSS.STU.Protocol.ProtocolHelper.OpDirection_Set),await this.protocol.setRomImageDisplay(t,i,o),await this.checkErrorCode(),await r.restore(),await r.close()}onReport(e,t){let n=null;try{n=e.getReport()}catch(e){this.onGetReportException(e)}null!=n&&(n=this.reportHandler.handleReport(n,t,this.isTls),null!=n&&this.onUnhandledReportData(n))}onPenData(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenData(e,t)}catch(e){}}}onPenDataOption(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenDataOption(e,t)}catch(e){}}}onPenDataEncrypted(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenDataEncrypted(e,t)}catch(e){}}}onPenDataEncryptedOption(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenDataEncryptedOption(e,t)}catch(e){}}}onPenDataTimeCountSequence(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenDataTimeCountSequence(e,t)}catch(e){}}}onPenDataTimeCountSequenceEncrypted(e,t){for(let n=0;n<this.tabletHandlers.length;n++){let i=this.tabletHandlers[n];try{i.onPenDataTimeCountSequenceEncrypted(e,t)}catch(e){}}}onEventDataPinPad(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataPinPad(e)}catch(e){}}}onEventDataKeyPad(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataKeyPad(e)}catch(e){}}}onEventDataSignature(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataSignature(e)}catch(e){}}}onEventDataPinPadEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataPinPadEncrypted(e)}catch(e){}}}onEventDataKeyPadEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataKeyPadEncrypted(e)}catch(e){}}}onEventDataSignatureEncrypted(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEventDataSignatureEncrypted(e)}catch(e){}}}onDevicePublicKey(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onDevicePublicKey(e)}catch(e){}}}onEncryptionStatus(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onEncryptionStatus(e)}catch(e){}}}onGetReportException(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onGetReportException(e)}catch(e){}}}onUnhandledReportData(e){for(let t=0;t<this.tabletHandlers.length;t++){let n=this.tabletHandlers[t];try{n.onUnhandledReportData(e.slice(0))}catch(e){}}}}t.Tablet=n,n.__class="com.WacomGSS.STU.Tablet",n.__interfaces=["com.WacomGSS.STU.IInterfaceHandler","com.WacomGSS.STU.Protocol.IReportHandler"],function(t){!function(e){e[e.Unknown=0]="Unknown",e[e.None=1]="None",e[e.v1=2]="v1",e[e.v2=3]="v2"}(t.EncryptionType||(t.EncryptionType={}));class n{constructor(e){this.__parent=e}isConnected(){return this.__parent.protocol.getInterface().isConnected()}disconnect(){this.__parent.clear(),this.disconnect()}get(e){return this.__parent.protocol.getInterface().get(e)}set(e){this.__parent.clear(),this.__parent.protocol.getInterface().set(e)}supportsWrite(){return this.__parent.protocol.getInterface().supportsWrite()}write(e){this.__parent.clear(),this.__parent.protocol.getInterface().write(e)}interfaceQueue(){return this.__parent.protocol.getInterface().interfaceQueue()}queueNotifyAll(){this.__parent.protocol.getInterface().queueNotifyAll()}getReportCountLengths(){return this.__parent.protocol.getInterface().getReportCountLengths()}async getProductId(){return await this.__parent.protocol.getInterface().getProductId()}}t.TabletInterface=n,n.__class="com.WacomGSS.STU.Tablet.TabletInterface",n.__interfaces=["com.WacomGSS.STU.Interface"];class i{async init(t,n,i){this.__parent=t,this.encryptionEnabled=!1,this.sessionId=0,t.checkProtocol(),null==t.status&&(t.status=await t.protocol.getStatus()),e.WacomGSS.STU.Protocol.ProtocolHelper.statusCanSend(t.status.getStatusCode(),n,i)||(t.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Capture_$LI$()?(this.encryptionEnabled=!0,this.sessionId=t.sessionId,await t.endCapture()):t.status.getStatusCode()===e.WacomGSS.STU.Protocol.StatusCode.Image_$LI$()?await t.protocol.setEndImageData$com_WacomGSS_STU_Protocol_EndImageDataFlag(e.WacomGSS.STU.Protocol.EndImageDataFlag.Abandon):(t.status.getStatusCode(),e.WacomGSS.STU.Protocol.StatusCode.Image_Boot_$LI$()),await t.waitForStatusToSend(n,i))}async close(){await this.restore()}async restore(){this.encryptionEnabled&&(this.encryptionEnabled=!1,await this.__parent.startCapture(this.sessionId,!0))}}t.StateHandler=i,i.__class="com.WacomGSS.STU.Tablet.StateHandler",i.__interfaces=["java.lang.AutoCloseable"]}(n=t.Tablet||(t.Tablet={}))})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.TimeoutException=n,n.__class="com.WacomGSS.STU.TimeoutException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){class t{static getTlsDevices(){return null}}e.TlsDevice=t,t.__class="com.WacomGSS.STU.TlsDevice"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{connect(e,t){return-1}get(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const n=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacyGetReport(t[0]),i=this.send$byte_A(n);if(e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(i),i.length!==t.length+8)throw new e.WacomGSS.STU.STUException("report size doesn't match expected get size");((e,t,n,i,o)=>{if(e!==n||i>=t+o)for(;--o>=0;)n[i++]=e[t++];else{let r=e.slice(t,t+o);for(let e=0;e<o;e++)n[i++]=r[e]}})(i,8,t,0,t.length)}return t}set(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const n=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacySetReport(t),i=this.send$byte_A(n);e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(i)}}supportsWrite(){return!0}write(t){if(!this.isConnected())throw new e.WacomGSS.STU.NotConnectedException;if(null!=t&&0!==t.length){const n=e.WacomGSS.STU.Protocol.ProtocolHelper.makeLegacyWrite(t),i=this.send$byte_A(n);e.WacomGSS.STU.Protocol.ProtocolHelper.checkReturnValueStatus(i)}}send$byte_A(n){const i=e.WacomGSS.STU.Protocol.TlsProtocol.makeSendHint(n),o=this.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(n,t.InterfaceTLS.InterfaceQueueSelector.tag);return e.WacomGSS.STU.Protocol.ProtocolHelper.waitForReturn(o,2e3,i)}getProductId(){return new e.WacomGSS.STU.Protocol.TlsProtocolOOB(this).getDescriptor().getIdProduct()}getReportCountLengths(){return new e.WacomGSS.STU.Protocol.Protocol(this).getReportSizeCollection()}disconnect(){}isConnected(){return!1}interfaceQueue(){return null}queueNotifyAll(){}getPeerCertificate(){return 0}isConnectedOOB(){return!1}getOOB(e){return null}setOOB(e){}send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(e,t){return null}send(e,t){if(!(null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)||"number"!=typeof t&&null!==t){if((null!=e&&e instanceof Array&&(0==e.length||null==e[0]||"number"==typeof e[0])||null===e)&&void 0===t)return this.send$byte_A(e);throw new Error("invalid overload")}return this.send$byte_A$com_WacomGSS_STU_InterfaceTLS_InterfaceQueueSelector(e,t)}constructor(){}}t.TlsInterface=n,n.__class="com.WacomGSS.STU.TlsInterface",n.__interfaces=["com.WacomGSS.STU.InterfaceTLS","com.WacomGSS.STU.Interface"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){!function(e){!function(e){var t=function(){function e(e,t,n){void 0===this.idVendor&&(this.idVendor=0),void 0===this.idProduct&&(this.idProduct=0),void 0===this.bcdDevice&&(this.bcdDevice=0),this.idVendor=e,this.idProduct=t,this.bcdDevice=n}return e.VendorId_Wacom_$LI$=function(){return null==e.VendorId_Wacom&&(e.VendorId_Wacom=1386),e.VendorId_Wacom},e.ProductId_500_$LI$=function(){return null==e.ProductId_500&&(e.ProductId_500=161),e.ProductId_500},e.ProductId_300_$LI$=function(){return null==e.ProductId_300&&(e.ProductId_300=162),e.ProductId_300},e.ProductId_520A_$LI$=function(){return null==e.ProductId_520A&&(e.ProductId_520A=163),e.ProductId_520A},e.ProductId_430_$LI$=function(){return null==e.ProductId_430&&(e.ProductId_430=164),e.ProductId_430},e.ProductId_530_$LI$=function(){return null==e.ProductId_530&&(e.ProductId_530=165),e.ProductId_530},e.ProductId_430V_$LI$=function(){return null==e.ProductId_430V&&(e.ProductId_430V=166),e.ProductId_430V},e.ProductId_530V_$LI$=function(){return null==e.ProductId_530V&&(e.ProductId_530V=167),e.ProductId_530V},e.ProductId_540_$LI$=function(){return null==e.ProductId_540&&(e.ProductId_540=168),e.ProductId_540},e.ProductId_min_$LI$=function(){return null==e.ProductId_min&&(e.ProductId_min=161),e.ProductId_min},e.ProductId_max_$LI$=function(){return null==e.ProductId_max&&(e.ProductId_max=175),e.ProductId_max},e.prototype.getIdVendor=function(){return this.idVendor},e.prototype.getIdProduct=function(){return this.idProduct},e.prototype.getBcdDevice=function(){return this.bcdDevice},e.getUsbDevices=function(){const t=[];return navigator.hid.getDevices().then((n=>{n.forEach((n=>{t.push(new e(n.idVendor,n.idProduct,n.bcdDevice))}))})),t},e.requestDevices=async function(){return navigator.hid.requestDevice({filters:[{vendorId:1386,productId:161},{vendorId:1386,productId:162},{vendorId:1386,productId:163},{vendorId:1386,productId:164},{vendorId:1386,productId:165},{vendorId:1386,productId:166},{vendorId:1386,productId:168},{vendorId:1386,productId:169}]})},e}();e.UsbDevice=t,t.__class="com.WacomGSS.STU.UsbDevice"}(e.STU||(e.STU={}))}(e.WacomGSS||(e.WacomGSS={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n{constructor(){this.connected=!1}handleConnectedDevice(e){this.usbDevice.addEventListener("inputreport",this.handleInputReport),this.connected=!0,console.log("Device connected: "+this.usbDevice.productName)}handleDisconnectedDevice(e){this.connected=!1,this.usbDevice.removeEventListener("inputreport",this.handleInputReport),console.log("Device disconnected: "+this.usbDevice.productName)}handleInputReport(e){const t=new Uint8Array(e.data.buffer);let n=Array.from(t);n.unshift(e.reportId),this.interfaceQueue.getReport(n,performance.now())}connect(t,n){return new Promise(((n,i)=>(this.usbDevice=t,this.usbDevice.open().then((()=>{this.usbDevice.interfaceQueue=new e.WacomGSS.STU.InterfaceQueue,this.handleConnectedDevice(),n()}),(e=>{i(e)})))))}async disconnect(){this.usbDevice&&(await this.usbDevice.close(),this.handleDisconnectedDevice())}isConnected(){return this.connected}async get(e){let t,n=await this.usbDevice.receiveFeatureReport(e[0]),i=[];for(t=0;t<n.byteLength;t++)i.push(n.getUint8(t));return i}async set(e){let t=new Uint8Array(e.slice(1));await this.usbDevice.sendFeatureReport(e[0],t.buffer)}supportsWrite(){return!1}async write(e){let t=new Uint8Array(e.length-1);await this.usbDevice.sendFeatureReport(e[0],t.buffer)}interfaceQueue(){return this.usbDevice.interfaceQueue}queueNotifyAll(){}getReportCountLengths(){const e=[];for(let t of this.usbDevice.collections){for(let n of t.inputReports)e[n.reportId]=n.items[0].reportCount;for(let n of t.outputReports)e[n.reportId]=n.items[0].reportCount;for(let n of t.featureReports)e[n.reportId]=n.items[0].reportCount}return e}getProductId(){return this.usbDevice.productId}}t.UsbInterface=n,n.__class="com.WacomGSS.STU.UsbInterface",n.__interfaces=["com.WacomGSS.STU.Interface"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),function(e){var t;(function(t){class n extends e.WacomGSS.STU.STUException{constructor(e,t){if("string"!=typeof e&&null!==e||!(null!=t&&t.__classes&&t.__classes.indexOf("java.lang.Throwable")>=0||null!=t&&t instanceof Error||null===t))if("string"!=typeof e&&null!==e||void 0!==t)if((null!=e&&e.__classes&&e.__classes.indexOf("java.lang.Throwable")>=0||null!=e&&e instanceof Error||null===e)&&void 0===t)super(arguments[0]);else{if(void 0!==e||void 0!==t)throw new Error("invalid overload");super()}else super(e);else super(e,t)}}t.WriteNotSupportedException=n,n.__class="com.WacomGSS.STU.WriteNotSupportedException",n.__interfaces=["java.io.Serializable"]})((t=e.WacomGSS||(e.WacomGSS={})).STU||(t.STU={}))}(com$1||(com$1={})),window.com=com$1;class MyEncryptionHandler$1{constructor(){this.clearKeys()}reset(){this.clearKeys()}clearKeys(){this.bigint_p=null,this.bigint_g=null,this.sjcl_keyAES=null}requireDH(){return null==this.bigint_p||null==this.bigint_g}setDH(e,t){var n=e,i=t;this.bigint_p=BigInt("0x"+arrayToHex(n)),this.bigint_g=BigInt("0x"+arrayToHex(i))}generateHostPublicKey(){let e=new Uint8Array(64);return window.crypto.getRandomValues(e),this.bigint_a=BigInt("0x"+arrayToHex(e)),hexToArray(padLeft(powMod(this.bigint_g,this.bigint_a,this.bigint_p).toString(16),32,"0"))}computeSharedKey(e){var t=padLeft(powMod(BigInt("0x"+arrayToHex(e)),this.bigint_a,this.bigint_p).toString(16),32,"0");this.sjcl_keyAES=new sjcl.cipher.aes(sjcl.codec.hex.toBits(t))}decrypt(e){var t=arrayToHex(e),n=sjcl.codec.hex.toBits(t),i=this.sjcl_keyAES.decrypt(n);return hexToArray(sjcl.codec.hex.fromBits(i))}}class MyEncryptionHandler2$1{constructor(){this.clearKeys()}reset(){this.clearKeys()}clearKeys(){this.privateKey=null,this.keyAES=null,this.exponent=null,this.modulus=null}getSymmetricKeyType(){return com.WacomGSS.STU.Protocol.SymmetricKeyType.AES256}getAsymmetricPaddingType(){return com.WacomGSS.STU.Protocol.AsymmetricPaddingType.OAEP}getAsymmetricKeyType(){return com.WacomGSS.STU.Protocol.AsymmetricKeyType.RSA2048}async getPublicExponent(){const e=await window.crypto.subtle.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},!0,["encrypt","decrypt"]);this.privateKey=e.privateKey;const t=await window.crypto.subtle.exportKey("jwk",e.publicKey);return this.modulus=base64UrlDecode(t.n),this.exponent=base64UrlDecode(t.e),this.exponent}async generatePublicKey(){return this.modulus}async computeSessionKey(e){const t=await window.crypto.subtle.decrypt({name:"RSA-OAEP"},this.privateKey,Uint8Array.from(e)),n=padLeft(BigInt("0x"+arrayToHex(new Uint8Array(t))).toString(16),64,"0");this.keyAES=new sjcl.cipher.aes(sjcl.codec.hex.toBits(n))}decrypt(e){var t=arrayToHex(e),n=sjcl.codec.hex.toBits(t),i=this.keyAES.decrypt(n);return hexToArray(sjcl.codec.hex.fromBits(i))}}window.MyEncryptionHandler=MyEncryptionHandler$1,window.MyEncryptionHandler2=MyEncryptionHandler2$1;class EdataliaWacom{constructor(e,t,n,i,o,r,a,s,l,c,u){this.init(e,t,n,i,o,r,a,s,l,c,u)}init(e,t,n,i,o,r,a,s,l,c,u){this.wacomConfig=e,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.mouseCanvas=t,this.wacomCanvas=null,this.onAccept=n,this.onCancel=i,this.onReset=o,this.onError=r,this.onDown=a,this.onUp=s,this.onMove=l,this.onUpdatePoints=c,this.onWacomImageLoaded=u,this.wasPenDown=!1}setEdataliaEbp(e){this.edataliaEbp=e}async initWacom(){const e=await this.connectDevice();return this.wacomTablet?(e&&this.wacomConfig.enableEbp?await this.drawLoadingScreen():this.edataliaEbp||this.clearWacomScreen(),await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.On),e):e}async connectDevice(){if(this.wacomTablet)return;const e=await getFirstDeviceConnected();if(e){this.wacomTablet=new com.WacomGSS.STU.Tablet,this.wacomTablet.addTabletHandler(this),this.wacomTablet.setEncryptionHandler(new MyEncryptionHandler),this.wacomTablet.setEncryptionHandler2(new MyEncryptionHandler2);try{this.wacomUIDs={};let t=0,n=0;await this.wacomTablet.usbConnect(e),this.wacomCapability=await this.wacomTablet.getCapability(),this.wacomInformation=await this.wacomTablet.getInformation(),this.wacomInkThreshold=await this.wacomTablet.getInkThreshold();try{n=await this.wacomTablet.getUid2()}catch(e){}try{t=await this.wacomTablet.getUid()}catch(e){}this.wacomUIDs.uid=t,this.wacomUIDs.uid2=n;try{this.isSetPenDataOptionModeSupported()&&await this.wacomTablet.setPenDataOptionMode(com.WacomGSS.STU.Protocol.PenDataOptionMode.TimeCountSequence)}catch(e){console.log(e)}this.wacomCanvasScaleX=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=this.mouseCanvas.height/this.wacomCapability.tabletMaxY,this.wacomEncodingMode=await getWacomEncodingMode(this.wacomTablet,this.wacomCapability,this.wacomConfig.requestedEncodingBits),this.wacomSupportsColor=await isWacomSupportingColor(this.wacomEncodingMode),console.log("wacomSupportsColor")}catch(e){console.log(e)}return this.wacomTablet}this.onError({type:"no-device"})}async drawScreenSaver(){if(console.log("drawScreenSaver"),!this.wacomTablet||!this.wacomCapability||!this.wacomConfig.enableScreenSaver)return;if(await this.drawLoadingScreen(),this.wacomCanvasScreenSaver)return void await this.wacomTablet.writeImage(this.wacomEncodingMode,this.wacomCanvasScreenSaver);const e=document.createElement("canvas");var t=e.getContext("2d");let n;if(e.width=this.wacomCapability.screenWidth,e.height=this.wacomCapability.screenHeight,n=this.wacomSupportsColor?await loadImageFromPath(this.wacomConfig.colorScreenSaver):await loadImageFromPath(this.wacomConfig.blackAndWhiteScreenSaver),!n)return;t.drawImage(n,0,0,e.width,e.height);const i=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvasScreenSaver=i,await this.drawWacomCanvasOnWacom(i)}convertCanvasToWacomCanvasImage(e){return com.WacomGSS.STU.Protocol.ProtocolHelper.resizeAndFlatten(e,0,0,e.width,e.height,this.wacomCapability.screenWidth,this.wacomCapability.screenHeight,this.wacomEncodingMode,com.WacomGSS.STU.Protocol.ProtocolHelper.Scale.Stretch,"white",!1,!1)}async drawWacomCanvasOnWacom(e){this.wacomTablet&&this.wacomCapability&&(await Performance.logWithTimeAndBox("drawWacomCanvasOnWacom(wacom)",(async()=>{await this.wacomTablet.writeImage(this.wacomEncodingMode,e)}),this.wacomConfig.doPerformance),this.onWacomImageLoaded())}async drawInitialEbp(e){if(!this.wacomTablet||!this.wacomCapability||!this.wacomConfig.enableInitialEbp)return;this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomCapability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height;const t=this.convertCanvasToWacomCanvasImage(e);this.drawWacomCanvasOnWacom(t),await this.prepareInitialEbpState()}async prepareInitialEbpState(){const e=new com.WacomGSS.STU.Protocol.Rectangle(0,0,this.wacomCapability.screenWidth-1,this.wacomCapability.screenHeight-1);this.isSetHandwritingDisplayAreaSupported()&&await this.wacomTablet.setHandwritingDisplayArea(e),await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.Off)}async drawSignatureEbp(e,t){const n=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomCapability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height,this.wacomCanvasSignature=n,this.drawWacomCanvasOnWacom(n),await this.prepareSignatureEbpState(t)}async clearSignature(){this.drawWacomCanvasOnWacom(this.wacomCanvasSignature)}async prepareSignatureEbpState(e){if(await this.wacomTablet.setInkingMode(com.WacomGSS.STU.Protocol.InkingMode.On),this.wacomConfig.signatureColorHex){let e=await this.wacomTablet.getHandwritingThicknessColor(),t=hexToRgb(this.wacomConfig.signatureColorHex);e.penColor=rgb3216(t.r,t.g,t.b),await this.wacomTablet.setHandwritingThicknessColor(e)}this.lastTypeButtonClicked=null;const t=new com.WacomGSS.STU.Protocol.Rectangle(e.x,e.y,e.x+e.width-1,e.y+e.height-1);this.signatureAreaEbp=e,this.isSetHandwritingDisplayAreaSupported()&&await this.wacomTablet.setHandwritingDisplayArea(t)}async clearWacomScreen(){this.wacomTablet&&await this.wacomTablet.setClearScreen()}async disconnect(){if(this.wacomTablet)try{await this.wacomTablet.disconnect()}catch(e){console.log(e)}}onPenDataOption(e,t){this.onPenData(e,t)}onPenDataTimeCountSequence(e,t){this.onPenData(e,t)}onPenDataTimeCountSequenceEncrypted(e,t){this.onPenDataTimeCountSequence(e,t)}onPenDataEncryptedOption(e,t){this.onPenData(e.penData1,t),this.onPenData(e.penData2,t)}onPenDataEncrypted(e,t){this.onPenData(e.penData1,t),this.onPenData(e.penData2,t)}onPenData(e,t){let n=-1;e.timeCount||(e.timeCount=Math.trunc(t)%1e6),void 0===this.deferredDown&&(this.deferredDown=!1),void 0===this.isDrawing&&(this.isDrawing=!1),void 0===this.buttonClicked&&(this.buttonClicked=!1);const i=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,o=this.mouseCanvas.height/this.wacomCapability.tabletMaxY;let r=tabletToScreen(e,i,o),a=tabletToScreen(e,i,o);this.wacomConfig.enableEbp&&(a=tabletToScreen(e,this.wacomCanvasScaleX,this.wacomCanvasScaleY),r.x=a.x*this.canvasWidthRatio,r.y=a.y*this.canvasHeightRatio,n=this.edataliaEbp.getButtonType(this.initialEbpState,a));const s=e.pressure>this.wacomInkThreshold.onPressureMark,l=e.pressure/this.wacomCapability.tabletMaxPressure,c=!!this.initialEbpState||!!this.signatureAreaEbp&&!this.signatureAreaEbp.Contains(a),u=()=>{this.isDrawing=!0,this.deferredDown=!1,this.lastPoint={x:r.x,y:r.y};var e=new PointerEvent("pointerdown",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,offsetX:r.x,offsetY:r.y,clientX:r.x,clientY:r.y,pressure:l});this.onDown&&this.onDown(e)},p=()=>{var e=new PointerEvent("pointermove",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,offsetX:r.x,offsetY:r.y,clientX:r.x,clientY:r.y,pressure:l});this.onMove&&this.onMove(e),this.lastPoint={x:r.x,y:r.y}},h=e=>{var t=e||this.lastPoint||{x:r.x,y:r.y},n=new PointerEvent("pointerup",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:0,offsetX:t.x,offsetY:t.y,clientX:t.x,clientY:t.y,pressure:0});this.onUp&&this.onUp(n)},d=()=>{this.isDrawing&&h(this.lastPoint),this.isDrawing=!1,this.lastPoint=null};if(s&&c&&-1===n)return this.isDrawing&&d(),this.deferredDown=!0,void(this.wasPenDown=s);if(this.wasPenDown)if(s){if(c)return this.isDrawing&&d(),this.deferredDown=!0,void(this.wasPenDown=s);this.deferredDown&&!this.isDrawing&&-1===n&&u(),-1===n&&p()}else{if(n>-1)return n===this.lastTypeButtonClicked&&(this.buttonClicked=!0,this.onUpButtonPoint=this.wacomConfig.enableEbp?a:r,this.handleEbpTypeButtonClick(n)),this.isDrawing=!1,this.lastPoint=null,this.deferredDown=!1,void(this.wasPenDown=!1);if(c)return d(),this.deferredDown=!1,void(this.wasPenDown=!1);if(this.deferredDown)return this.deferredDown=!1,this.isDrawing=!1,this.lastPoint=null,void(this.wasPenDown=!1);h(null),this.isDrawing=!1,this.lastPoint=null}else if(s){if(this.lastTypeButtonClicked=n,-1===n){if(c)return this.deferredDown=!0,void(this.wasPenDown=s);u()}}else this.onUpdatePoints&&this.onUpdatePoints(e);this.wasPenDown=s}async handleEbpTypeButtonClick(e){switch(this.onUpButtonPoint&&"UTF-8"===document.characterSet&&await this.drawButtonPointer(this.onUpButtonPoint),e){case 0:const t=document.getElementById("websignpdfjs-ok-btn");t?this.handleSimulatedButtonClick(t):this.onAccept();break;case 1:this.onCancel();break;case 2:this.onReset();break;default:console.warn(`Unhandled button type: ${e}`)}}async drawButtonPointer(e){try{if(!this.wacomConfig.enableEbp)return;if(this.onUpButtonPoint=null,!this.isImageDataAreaSupported())return;const t=this.createIconCanvas(),n='900 30pt "Arial"';await this.loadFont(n);const i=t.getContext("2d"),{size:o,metrics:r}=this.getTextMetrics(i,n,"◉");this.resizeCanvas(t,o),this.fillCanvas(i,"white");const{x:a,y:s}=this.calculateIconPosition(e.x,e.y,o);this.drawIconBackground(i,this.wacomCanvas,a,s,o);const l="◉";this.drawIcon(i,l,n,o,r);const c=this.createImageFromCanvas(t,o,o),u=new com.WacomGSS.STU.Protocol.Rectangle(a,s,a+o-1,s+o-1);await this.wacomTablet.writeImageArea(this.wacomEncodingMode,u,c)}catch(e){console.warn("Could not display button pointer, review encoding, should be UTF-8: "+e)}}async drawLoadingScreen(){if(!this.isImageDataAreaSupported()||"UTF-8"!==document.characterSet)return;const e=this.createIconCanvas(),t='900 60pt "Arial"';await this.loadFont(t);const n=e.getContext("2d"),{size:i,metrics:o}=this.getTextMetrics(n,t,"⏳"),r=i+6;this.resizeCanvas(e,r),this.fillCanvas(n,"white");const a=Math.floor(this.wacomCapability.screenWidth/2-i/2),s=Math.floor(this.wacomCapability.screenHeight/2-i/2);this.wacomCanvas&&this.drawIconBackground(n,this.wacomCanvas,a,s,i);this.drawIconCentered(n,"⏳",t,o,e.width,e.height),this.drawCircularOutline(n,e,r,3);const l=this.createImageFromCanvas(e,e.width,e.height),c=new com.WacomGSS.STU.Protocol.Rectangle(a,s,a+e.width-1,s+e.height-1);await this.wacomTablet.writeImageArea(this.wacomEncodingMode,c,l)}isImageDataAreaSupported(){return this.wacomTablet.isSupported(com.WacomGSS.STU.Protocol.ReportId.StartImageDataArea_$LI$())}isSetPenDataOptionModeSupported(){return this.wacomTablet.isSupported(50)}isSetHandwritingDisplayAreaSupported(){return this.wacomTablet.isSupported(42)}createIconCanvas(){const e=document.createElement("canvas");return e.width=this.wacomCapability.screenWidth,e.height=this.wacomCapability.screenHeight,e}async loadFont(e){await document.fonts.load(e)}getTextMetrics(e,t,n){e.font=t;const i=e.measureText(n),o=i.width,r=i.fontBoundingBoxAscent+i.fontBoundingBoxDescent;return{size:Math.max(o,r),metrics:i}}resizeCanvas(e,t){e.width=t,e.height=t}fillCanvas(e,t){e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)}calculateIconPosition(e,t,n){return{x:e+n-1>=this.wacomCapability.screenWidth?this.wacomCapability.screenWidth-n-1:Math.floor(e-n/2),y:t+n-1>=this.wacomCapability.screenHeight?this.wacomCapability.screenHeight-n-1:Math.floor(t-n/2)}}drawIconBackground(e,t,n,i,o){e.drawImage(t,n,i,o,o,0,0,o,o)}drawIcon(e,t,n,i,o){e.fillStyle="black",e.font=n;const r=(i+o.fontBoundingBoxAscent)/2-2;e.fillText(t,0,r)}drawIconCentered(e,t,n,i,o,r){e.fillStyle="black",e.font=n;const a=(o-i.width)/2,s=r/2+(i.fontBoundingBoxAscent-i.fontBoundingBoxDescent)/2;e.fillText(t,a,s)}drawCircularOutline(e,t,n,i){e.strokeStyle="black",e.lineWidth=i,e.beginPath(),e.arc(t.width/2,t.height/2,(n-2*i)/2,0,2*Math.PI),e.stroke()}createImageFromCanvas(e,t,n){return com.WacomGSS.STU.Protocol.ProtocolHelper.resizeAndFlatten(e,0,0,t,n,t,n,this.wacomEncodingMode,0,"white",!1,!1)}handleSimulatedButtonClick(e){if("function"==typeof e.onclick)e.onclick();else{const t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(t)}}getWacomInfo(){return this.wacomInformation}getWacomUids(){return this.wacomUIDs}}function getElement(e,t){return null==e?document.getElementById(t):e.template.querySelector(`.${t}`)}function isMobile(){return window.matchMedia("(max-width: 768px)").matches}function ensureMinContainerSize(e,t,n){if(isMobile()||!e)return;const i=e.getBoundingClientRect();i.width<t&&(e.style.width=`${t}px`),i.height<n&&(e.style.height=`${n}px`)}function createWebSignContainers(e="100%",t="100%",n=null,i=null,o=null,r=null){const a=window.matchMedia("(max-width: 768px)").matches,s=getElement(r,"web-sign");if(!s)return void console.error("No se encontró el elemento con id 'web-sign'.");const l=document.getElementById("fieldset-container");l&&(l.style.display="block");const c=s.parentElement.getBoundingClientRect();function u(e,t){if("string"==typeof e&&e.endsWith("%")){const n=parseFloat(e),i="width"===t?c.width:c.height;return i?i*n/100+"px":e}return e}let p=u(a?"95%":n||"100%","width");const h=parseFloat(p);let d;if(a||h&&!(h<300)||(p="300px"),i){d=u(i,"height");const e=parseFloat(d);a||e&&!(e<150)||(d="150px")}else{const e=parseFloat(p);e>0?d=`${(e/1.6).toFixed(2)}px`:(requestAnimationFrame((()=>{const e=s.parentElement.getBoundingClientRect().width;e>0?s.style.height=`${(e/1.6).toFixed(2)}px`:(s.style.width="300px",s.style.height="150px")})),d="150px")}if(document.getElementById("websign-container"))return void Object.assign(s.style,{width:p,height:"certificate"===o?"auto":d,position:"relative",display:"block"});const g=document.createElement("div");g.id="websign-container",Object.assign(g.style,{width:e,height:t});const m=document.createElement("fieldset");m.id="fieldset-container",Object.assign(m.style,{width:p,height:"auto",padding:"5px",margin:"0",border:"1px solid #ccc",borderRadius:"4px",display:"certificate"===o?"block":"none",justifyContent:"center",alignItems:"center",flexDirection:"column"}),Object.assign(s.style,{width:p,height:"certificate"===o?"auto":d,position:"relative",display:"block"});const f=s.parentNode,S=s.nextSibling;m.appendChild(s),g.appendChild(m),S?f.insertBefore(g,S):f.appendChild(g)}function getOverlayHost(e=null){const t=document.getElementById("fieldset-container");if(t)return t;const n=getElement(e,"web-sign");return n?n.parentElement:null}function ensureOverlayStyles(){if(document.getElementById("websign-overlay-styles"))return;const e=document.createElement("style");e.id="websign-overlay-styles",e.textContent='\n @keyframes websign-spin { to { transform: rotate(360deg); } }\n @keyframes websign-fade-in { from { opacity: 0; } to { opacity: 1; } }\n\n .ws-overlay {\n position: absolute; inset: 0;\n display: flex; align-items: center; justify-content: center;\n background: rgba(16, 24, 40, 0.72); /* más opaco, profesional */\n backdrop-filter: blur(2px);\n z-index: 9999; pointer-events: auto;\n animation: websign-fade-in 160ms ease-out both;\n }\n .ws-card {\n display: flex; flex-direction: column; align-items: center; gap: 12px;\n padding: 18px 22px;\n background: rgba(255,255,255,0.94);\n border-radius: 12px;\n box-shadow: 0 8px 28px rgba(16,24,40,0.3);\n max-width: min(90vw, 480px);\n text-align: center;\n }\n .ws-spinner {\n width: 32px; height: 32px; border-radius: 50%;\n border: 3px solid rgba(16,24,40,0.18);\n border-top-color: rgba(16,24,40,0.75);\n animation: websign-spin 800ms linear infinite;\n }\n .ws-title {\n font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;\n font-size: 16px; font-weight: 700; color: #0F172A; /* slate-900 */\n margin: 0;\n }\n .ws-subtitle {\n font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;\n font-size: 13px; font-weight: 500; color: #334155; /* slate-700 */\n margin: 0;\n }\n ',document.head.appendChild(e)}function showWaitingOverlay(e="Esperando al firmante",t="Mantén esta ventana abierta mientras comienza la firma...",n=null,i=null,o=null,r="Empezar firma",a="Cancelar"){ensureOverlayStyles();const s=getOverlayHost(n);if(!s)return void console.error("No se encontró contenedor para el overlay (fieldset-container).");const l=getComputedStyle(s).position;"static"!==l&&l||(s.style.position="relative");let c=s.querySelector('[data-websign-overlay="true"]');if(c){const n=c.querySelector(".ws-title"),i=c.querySelector(".ws-subtitle");return n&&(n.textContent=e),i&&(i.textContent=t||""),void(c.style.display="flex")}c=document.createElement("div"),c.setAttribute("data-websign-overlay","true"),c.className="ws-overlay",c.setAttribute("role","status"),c.setAttribute("aria-live","polite");const u=document.createElement("div");u.className="ws-card";const p=document.createElement("div");p.className="ws-spinner",p.setAttribute("aria-hidden","true");const h=document.createElement("h2");h.className="ws-title",h.textContent=e;const d=document.createElement("p");if(d.className="ws-subtitle",d.textContent=t||"",u.appendChild(p),u.appendChild(h),t&&u.appendChild(d),o){const e=document.createElement("button");e.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-2px;margin-right:6px"><path d="M17 3a2.85 2.85 0 0 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/><path d="m15 5 4 4"/></svg>${r}`,e.className="ws-start-capture-btn",Object.assign(e.style,{marginTop:"18px",padding:"8px 22px",background:"#0057a2",color:"#fff",border:"none",borderRadius:"6px",fontSize:"14px",fontWeight:"bold",cursor:"pointer",display:"inline-flex",alignItems:"center"}),e.addEventListener("click",(async()=>{e.disabled=!0,e.style.opacity="0.6";try{await o()}catch(t){e.disabled=!1,e.style.opacity="1",console.warn("Error al iniciar captura:",t)}})),u.appendChild(e)}if(i){const e=document.createElement("button");e.textContent=a,e.className="ws-cancel-btn",Object.assign(e.style,{marginTop:"8px",padding:"6px 18px",background:"transparent",color:"#666",border:"none",borderRadius:"4px",fontSize:"13px",cursor:"pointer",textDecoration:"underline"}),e.addEventListener("click",(()=>{destroyWaitingOverlay(n),i()})),u.appendChild(e)}c.appendChild(u),s.appendChild(c)}function destroyWaitingOverlay(e=null){const t=getOverlayHost(e);if(!t)return;const n=t.querySelector('[data-websign-overlay="true"]');n&&n.remove()}class EdataliaWacomBridge{constructor(e,t,n,i,o,r,a,s,l,c,u,p=null,h){this.eventHandlers={penData:null,connected:null,deviceConnected:null,error:null,captureStopped:null,restartButtonClicked:null,captureStarted:null},this.init(e,t,n,i,o,r,a,s,l,c,u,p,h)}init(e,t,n,i,o,r,a,s,l,c,u,p,h){this.wacomConfig=e,this.webSignBridge=h,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.wacomUIDs={},this.mouseCanvas=t,this.wacomCanvas=null,this.onAccept=n,this.onCancel=i,this.onReset=o,this.onError=r,this.onDown=a,this.onUp=s,this.onMove=l,this.onUpdatePoints=c,this.onWacomImageLoaded=u,this.onCaptureStarted=null,this.wasPenDown=!1,this.penDataCount=0,this.isDrawing=!1,this.lastPoint=null,this.lastTypeButtonClicked=-1,this.signatureAreaEbp=null,this.pdf=p,this.pdfAlreadyOpen=!1,this.alreadyRestarted=!1,this.cleanup(),this.eventHandlers.penData=e=>{this.displayPenDataOnCanvas(e)},this.eventHandlers.connected=()=>{console.log("Bridge conectado")},this.eventHandlers.deviceConnected=e=>{console.log("Dispositivo conectado:",e),this.signotec="signotec"===e.deviceType,this.dtu="dtu"===e.deviceType},this.eventHandlers.error=e=>{console.error("Error del bridge:",e)},this.eventHandlers.captureStopped=e=>{"confirmed"===e.reason?this.onAccept():"cancelled"===e.reason&&this.onCancel()},this.eventHandlers.restartButtonClicked=e=>{this.onReset()},this.eventHandlers.captureStarted=()=>{destroyWaitingOverlay(),"function"==typeof this.onCaptureStarted&&this.onCaptureStarted()},this.webSignBridge.on("penData",this.eventHandlers.penData),this.webSignBridge.on("connected",this.eventHandlers.connected),this.webSignBridge.on("deviceConnected",this.eventHandlers.deviceConnected),this.webSignBridge.on("captureStarted",this.eventHandlers.captureStarted),this.webSignBridge.on("error",this.eventHandlers.error),this.webSignBridge.on("captureStopped",this.eventHandlers.captureStopped),this.webSignBridge.on("restartButtonClicked",this.eventHandlers.restartButtonClicked)}setEdataliaEbp(e){this.edataliaEbp=e}sleep(e){return new Promise((t=>setTimeout(t,e)))}async initWacomBridge(){if(!this.webSignBridge.isConnected())try{await this.webSignBridge.connect(),await this.drawLoadingScreen()}catch(e){return console.error("No se pudo conectar al bridge:",e),null}try{await this.webSignBridge.disconnectDevice()}catch(e){}const e=await this.webSignBridge.getAvailableDevices();if(!(e&&e.length>0))return console.warn("No se encontraron dispositivos"),this.onError({type:"no-device"}),null;await this.webSignBridge.connectToDevice(e[0].id,e[0].type),this.wacomInformation=this.webSignBridge.getDeviceInfo();const t=await this.webSignBridge.getSerialNumber();if(this.wacomUIDs.uid=t.serialNumber,this.wacomUIDs.uid2=0,this.wacomInformation&&this.wacomInformation.capability?(this.wacomCapability=this.wacomInformation.capability,this.wacomSupportsColor=this.wacomInformation.capability.supportsColor||!1,this.wacomCanvasScaleX=this.mouseCanvas.width/this.wacomCapability.tabletMaxX,this.wacomCanvasScaleY=this.mouseCanvas.height/this.wacomCapability.tabletMaxY,console.log("wacomSupportsColor:",this.wacomSupportsColor)):(console.warn("No se pudo obtener información del dispositivo"),this.wacomSupportsColor=!1),e&&this.wacomConfig.enableEbp?await this.drawLoadingScreen():this.edataliaEbp||await this.webSignBridge.clearDisplay(),this.signotec||this.dtu||await this.webSignBridge.setInkingMode(!0),(this.signotec&&!this.wacomConfig.enableEbp||this.dtu&&!this.wacomConfig.enableEbp)&&await this.webSignBridge.loadPDF(this.pdf),this.wacomConfig.signatureColorHex&&!this.signotec&&!this.dtu)try{await this.webSignBridge.setHandwritingThicknessColor(2,this.wacomConfig.signatureColorHex)}catch(e){console.warn("No se pudo configurar el color de la firma:",e)}return e}async writeImage(e){this.signotec||this.dtu||await this.webSignBridge.writeImage(e)}async drawLoadingScreen(){if(this.signotec||this.dtu)return;if(!this.wacomInformation||!this.wacomInformation.capability)return;const e=document.createElement("canvas");e.width=this.wacomInformation.capability.screenWidth,e.height=this.wacomInformation.capability.screenHeight;const t='900 60pt "Arial"';await this.loadFont(t);const n=e.getContext("2d"),{size:i,metrics:o}=this.getTextMetrics(n,t,"⏳"),r=i+6;this.resizeCanvas(e,r),this.fillCanvas(n,"white");const a=128,s=Math.floor((this.wacomInformation.capability.screenWidth-a)/2),l=Math.floor((this.wacomInformation.capability.screenHeight-a)/2);this.resizeCanvas(e,a),this.fillCanvas(n,"white");this.drawIconCentered(n,"⏳",t,o,e.width,e.height),this.drawCircularOutline(n,e,a,3);const c=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImageArea(c,s,l,a,a)}async drawScreenSaver(){if(this.signotec||this.dtu)return;if(console.log("drawScreenSaver - Bridge"),!this.webSignBridge.isConnected()||!this.wacomConfig.enableScreenSaver)return;if(await this.drawLoadingScreen(),!this.wacomInformation||!this.wacomInformation.capability)return;if(this.wacomCanvasScreenSaver){const e=this.wacomCanvasScreenSaver.toDataURL("image/png").split(",")[1];return void await this.webSignBridge.writeImageROM(e)}const e=document.createElement("canvas"),t=e.getContext("2d");let n;if(e.width=this.wacomInformation.capability.screenWidth,e.height=this.wacomInformation.capability.screenHeight,n=this.wacomInformation.capability.supportsColor?await loadImageFromPath(this.wacomConfig.colorScreenSaver):await loadImageFromPath(this.wacomConfig.blackAndWhiteScreenSaver),!n)return void console.warn("No se pudo cargar la imagen del screensaver");t.drawImage(n,0,0,e.width,e.height),this.wacomCanvasScreenSaver=e;const i=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImageROM(i),this.onWacomImageLoaded()}convertCanvasToWacomCanvasImage(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");return n.globalCompositeOperation="source-over",n.fillStyle="white",n.fillRect(0,0,t.width,t.height),n.drawImage(e,0,0,e.width,e.height),t}async drawSignatureEbp(e,t,n){const i=this.convertCanvasToWacomCanvasImage(e);this.wacomCanvas=e,this.ebpCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomInformation.capability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomInformation.capability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height,this.wacomCanvasSignature=i;const o=e.toDataURL("image/png").split(",")[1];if(await this.writeImage(o),this.onWacomImageLoaded(),(this.signotec||this.dtu)&&!this.pdfAlreadyOpen){this.pdfAlreadyOpen=!0;const e={pdfData:this.pdf,widgetX:100,widgetY:200,widgetWidth:300,widgetHeight:150,widgetPage:1};e.ebpImageData=o,e.ebpSignatureArea={x:t.x,y:t.y,width:t.width,height:t.height},n&&n.length>0&&(e.ebpButtons=n.map((e=>({bounds:{x:e.Bounds.x,y:e.Bounds.y,width:e.Bounds.width,height:e.Bounds.height},type:e.Type})))),this.wacomConfig.varEbp&&(e.ebpVariables=this.wacomConfig.varEbp),await this.webSignBridge.sendCustomCommand("setDisplayPDF",e)}await this.prepareSignatureEbpState(t)}async prepareSignatureEbpState(e){this.signatureAreaEbp=e,this.signotec||this.dtu||await this.webSignBridge.setInkingMode(!0),this.lastTypeButtonClicked=null,!e||this.signotec||this.dtu||await this.webSignBridge.setHandwritingDisplayArea(e.x,e.y,e.width,e.height),console.log("Área de escritura configurada en dispositivo Wacom o Signotec")}displayPenDataOnCanvas(e){if(!e||"number"!=typeof e.x||"number"!=typeof e.y)return;void 0===this.deferredDown&&(this.deferredDown=!1),void 0===this.isDrawing&&(this.isDrawing=!1),void 0===this.buttonClicked&&(this.buttonClicked=!1),this.penDataCount=(this.penDataCount||0)+1;let t,n,i=-1;e.timeCount||(e.timeCount=Math.trunc(Date.now())%1e6);let o,r,a=this.wacomInformation&&this.wacomInformation.capability||{};if(this.signotec){if(this.wacomConfig.enableEbp&&this.signatureAreaEbp){const i=400,o=300,r=8244,a=3e4,s=6e3,l=22050,c=this.mouseCanvas.getBoundingClientRect(),u=c.width||this.mouseCanvas.width,p=c.height||this.mouseCanvas.height,h=r,d=r+(a-r)*(u/i),g=s,m=s+(l-s)*(p/o)+400;t=(e.x-h)/(d-h)*u,n=(e.y-g)/(m-g)*p}else t=e.x/43835*this.mouseCanvas.width,n=e.y/27300*this.mouseCanvas.height;o={x:t,y:n},r={x:t,y:n}}else if(this.dtu){const t=this.signatureAreaEbp;if(t&&this.wacomCanvasScaleX&&this.wacomCanvasScaleY)r={x:t.x+e.x,y:t.y+e.y},o=tabletToScreen(r,this.wacomCanvasScaleX,this.wacomCanvasScaleY);else{const t=this.wacomInformation&&this.wacomInformation.capability||{},n=this.mouseCanvas.width/(t.tabletMaxX||65535),i=this.mouseCanvas.height/(t.tabletMaxY||65535);o=tabletToScreen(e,n,i),r={x:o.x/(this.wacomCanvasScaleX||1),y:o.y/(this.wacomCanvasScaleY||1)}}}else if(a&&"number"==typeof a.tabletMaxX&&"number"==typeof a.tabletMaxY){const t=this.mouseCanvas.width/(a.tabletMaxX||65535),n=this.mouseCanvas.height/(a.tabletMaxY||65535);o=tabletToScreen(e,t,n),r=tabletToScreen(e,t,n)}else t=e.x/65535*this.mouseCanvas.width,n=e.y/65535*this.mouseCanvas.height;this.wacomConfig.enableEbp&&this.wacomCanvasScaleX&&this.wacomCanvasScaleY&&(this.signotec?r={x:o.x/this.wacomCanvasScaleX,y:o.y/this.wacomCanvasScaleY}:this.dtu||(r=tabletToScreen(e,this.wacomCanvasScaleX,this.wacomCanvasScaleY)),o.x=r.x*this.canvasWidthRatio,o.y=r.y*this.canvasHeightRatio,i=this.edataliaEbp&&"function"==typeof this.edataliaEbp.getButtonType?this.edataliaEbp.getButtonType(this.initialEbpState,r):-1);const s=e.pressure>50;let l=e.pressure/(a.tabletMaxPressure||1023);this.dtu&&(l=Math.min(e.pressure/(a.tabletMaxPressure||1023)/100));const c=!!this.initialEbpState||!!this.signatureAreaEbp&&!this.signatureAreaEbp.Contains(r),u=()=>{this.isDrawing=!0,this.deferredDown=!1,this.lastPoint={x:o.x,y:o.y};const e=this.mouseCanvas.getBoundingClientRect(),t=e.left+o.x,n=e.top+o.y,i=new PointerEvent("pointerdown",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,clientX:t,clientY:n,pressure:l});i._customOffsetX=o.x,i._customOffsetY=o.y,this.onDown?.(i)},p=()=>{const e=this.mouseCanvas.getBoundingClientRect(),t=e.left+o.x,n=e.top+o.y,i=new PointerEvent("pointermove",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:1,clientX:t,clientY:n,pressure:l});i._customOffsetX=o.x,i._customOffsetY=o.y,this.onMove?.(i),this.lastPoint={x:o.x,y:o.y}},h=e=>{const t=e||this.lastPoint||{x:o.x,y:o.y},n=this.mouseCanvas.getBoundingClientRect(),i=n.left+t.x,r=n.top+t.y,a=new PointerEvent("pointerup",{pointerId:1,pointerType:"stu",isPrimary:!0,buttons:0,clientX:i,clientY:r,pressure:0});a._customOffsetX=t.x,a._customOffsetY=t.y,this.onUp?.(a)},d=()=>{this.isDrawing&&h(this.lastPoint),this.isDrawing=!1,this.lastPoint=null};if(s&&c&&-1===i)return this.isDrawing&&d(),this.deferredDown=!0,void(this.wasPenDown=s);if(this.wasPenDown)if(s){if(c)return this.isDrawing&&d(),this.deferredDown=!0,void(this.wasPenDown=!0);this.deferredDown&&!this.isDrawing&&-1===i&&u(),-1===i&&p()}else{if(i>-1)return i===this.lastTypeButtonClicked&&(this.buttonClicked=!0,this.onUpButtonPoint=this.wacomConfig?.enableEbp?r:o,this.handleEbpTypeButtonClick(i)),this.wasPenDown=!1,void(this.deferredDown=!1);if(c)return d(),this.deferredDown=!1,void(this.wasPenDown=!1);if(this.deferredDown)return this.deferredDown=!1,this.wasPenDown=!1,this.isDrawing=!1,void(this.lastPoint=null);d()}else if(s){if(this.lastTypeButtonClicked=i,-1===i){if(c)return this.deferredDown=!0,void(this.wasPenDown=!0);u()}}else this.onUpdatePoints?.(e);this.wasPenDown=s}async handleEbpTypeButtonClick(e){switch(this.onUpButtonPoint&&"UTF-8"===document.characterSet&&await this.drawButtonPointer(this.onUpButtonPoint),e){case 0:const t=document.getElementById("websignpdfjs-ok-btn");t?this.handleSimulatedButtonClick(t):this.onAccept();break;case 1:this.onCancel();break;case 2:this.onReset();break;default:console.warn(`Unhandled button type: ${e}`)}}async drawButtonPointer(e){try{if(!this.wacomConfig.enableEbp)return;this.onUpButtonPoint=null,console.log(`Botón presionado en posición: x=${e.x}, y=${e.y}`)}catch(e){console.warn("Could not display button pointer: "+e)}}async loadFont(e){if(document.fonts&&document.fonts.load)try{await document.fonts.load(e)}catch(e){console.warn("Could not load font:",e)}}getTextMetrics(e,t,n){e.font=t;const i=e.measureText(n);return{size:Math.max(i.width,i.fontBoundingBoxAscent+i.fontBoundingBoxDescent),metrics:i}}resizeCanvas(e,t){e.width=t,e.height=t}fillCanvas(e,t){e.fillStyle=t,e.fillRect(0,0,e.canvas.width,e.canvas.height)}drawIconBackground(e,t,n,i,o){e.drawImage(t,n,i,o,o,0,0,o,o)}drawIconCentered(e,t,n,i,o,r){e.fillStyle="black",e.font=n;const a=(o-i.width)/2,s=r/2+(i.fontBoundingBoxAscent-i.fontBoundingBoxDescent)/2;e.fillText(t,a,s)}drawCircularOutline(e,t,n,i){e.strokeStyle="black",e.lineWidth=i,e.beginPath(),e.arc(t.width/2,t.height/2,(n-i)/2,0,2*Math.PI),e.stroke()}handleSimulatedButtonClick(e){if("function"==typeof e.onclick)e.onclick();else{const t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(t)}}async drawInitialEbp(e){try{if(!this.wacomConfig.enableInitialEbp)return;if(!this.wacomInformation||!this.wacomInformation.capability)return;this.wacomCanvas=e,this.wacomCanvasScaleX=e.width/this.wacomInformation.capability.tabletMaxX,this.wacomCanvasScaleY=e.height/this.wacomInformation.capability.tabletMaxY,this.canvasWidthRatio=this.mouseCanvas.width/e.width,this.canvasHeightRatio=this.mouseCanvas.height/e.height;const t=e.toDataURL("image/png").split(",")[1];await this.webSignBridge.writeImage(t),await this.prepareInitialEbpState(),this.initialEbpState=!0,console.log("EBP inicial dibujado en el dispositivo")}catch(e){throw console.error("Error al dibujar EBP inicial en el dispositivo:",e),e}}async prepareInitialEbpState(){this.wacomInformation&&this.wacomInformation.capability&&(await this.webSignBridge.setHandwritingDisplayArea(0,0,this.wacomInformation.capability.screenWidth,this.wacomInformation.capability.screenHeight),await this.webSignBridge.setInkingMode(!1),console.log("Estado inicial EBP configurado: inkingMode OFF"))}async clearDeviceDisplay(){await this.webSignBridge.clearDeviceDisplay()}async restartSignature(){try{if(await this.drawLoadingScreen(),this.isDrawing=!1,this.lastPoint=null,this.wasPenDown=!1,this.penDataCount=0,this.ebpCanvas&&this.wacomConfig.enableEbp&&!this.signotec&&!this.dtu){const e=this.ebpCanvas.toDataURL("image/png").split(",")[1];await this.writeImage(e),console.log("Imagen EBP reescrita después del restart")}else this.webSignBridge.isWacomDevice()?await this.webSignBridge.clearDeviceDisplay():await this.webSignBridge.restartSignature();console.log("Firma reiniciada exitosamente en el dispositivo")}catch(e){throw console.error("Error al reiniciar firma en el dispositivo:",e),e}}async disconnect(){this.webSignBridge.isDeviceConnected()&&await this.webSignBridge.disconnectDevice()}cleanup(){this.eventHandlers.penData&&this.webSignBridge.off("penData",this.eventHandlers.penData),this.eventHandlers.connected&&this.webSignBridge.off("connected",this.eventHandlers.connected),this.eventHandlers.deviceConnected&&this.webSignBridge.off("deviceConnected",this.eventHandlers.deviceConnected),this.eventHandlers.error&&this.webSignBridge.off("error",this.eventHandlers.error),this.webSignBridge.off("captureStopped",this.eventHandlers.captureStopped),this.webSignBridge.off("restartButtonClicked",this.eventHandlers.restartButtonClicked),this.webSignBridge.off("captureStarted",this.eventHandlers.captureStarted)}destroy(){this.cleanup(),this.webSignBridge=null,this.wacomConfig=null,this.wacomTablet=null,this.wacomCapability=null,this.wacomInkThreshold=null,this.wacomSupportsColor=null,this.wacomEncodingMode=null,this.wacomCanvasScaleX=null,this.wacomCanvasScaleY=null,this.canvasWidthRatio=null,this.canvasHeightRatio=null,this.wacomCanvasScreenSaver=null,this.lastTypeButtonClicked=null,this.initialEbpState=!1,this.edataliaEbp=null,this.onUpButtonPoint=null,this.mouseCanvas=null,this.wacomCanvas=null,this.ebpCanvas=null,this.signatureAreaEbp=null,this.onAccept=null,this.onCancel=null,this.onReset=null,this.onError=null,this.onDown=null,this.onUp=null,this.onMove=null,this.onUpdatePoints=null,this.onWacomImageLoaded=null,this.onCaptureStarted=null,this.eventHandlers={penData:null,connected:null,deviceConnected:null,error:null}}getWacomInfo(){return this.wacomInformation.information}getWacomUids(){return this.wacomUIDs}}function checkSupportingWindowPointerEvents(){const e=void 0!==typeof window.PointerEvent;console.info("Supports Pointer Events:",e);const t=!!e&&void 0!==window.PointerEvent.prototype.getCoalescedEvents;console.info("Supports Coalesced Events:",t),t||console.warn("This web browser does not support getCoalescedEvents, the captured data won't be precisse enough for signature verification.")}function base64ToUint8Array(e){const t=atob(e),n=t.length,i=new Uint8Array(n);for(let e=0;e<n;e++)i[e]=t.charCodeAt(e);return i}class BinaryReader{constructor(e){this.view=new DataView(e),this.offset=0,this.littleEndian=!0}readByte(){const e=this.view.getUint8(this.offset);return this.offset+=1,e}readBytes(e){const t=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,t}readInt32(){const e=this.view.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}readChars(e){let t="";for(let n=0;n<e;n++)t+=String.fromCharCode(this.readByte());return t}get length(){return this.view.byteLength}get position(){return this.offset}set position(e){this.offset=e}}function convertToCSSColor(e,t="#000000"){if(isNaN(e))return t;const n=e>>16&255,i=e>>8&255;return`#${(255&e).toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}function readBinaryString(e,t){return e.readByte(),e.readChars(t).replace(/\0+$/,"")}class EBPDefinition{constructor(e,t){this.ebpB64=e,this.variables=t}}class EBPScreen{constructor(){this.BMPB64="",this.signatureAreaRect=null,this.buttons=[]}}class EBPScreenButton{constructor(e,t){this.rect=e,this.type=t}}const EBPDrawableElements={TRECTANGLE:"TRECTANGLE",TTEXT:"TTEXT",TBACKGROUND:"TBACKGROUND",TPASTER:"TPASTER"};class EBPConfiguration{constructor(e){this._configuration={};const t=e.split(/\r\n|\r|\n/).filter((e=>""!==e.trim()));let n="";for(let e of t)if(e=e.trim(),e.startsWith("[")&&e.endsWith("]"))n=e.substring(1,e.length-1),this._configuration[n]={};else{const[t,i]=e.split("=",2);""!==n&&(this._configuration[n][t]=i)}}get sections(){return Object.keys(this._configuration).map((e=>new ConfigurationSection(e,this._configuration[e])))}getSection(e){return new ConfigurationSection(e,this._configuration[e])}}class ConfigurationSection{constructor(e,t){this.name=e,this._data=t}get EBPElementType(){const e=this.name.toUpperCase().split(" ")[0];return Object.values(EBPDrawableElements).includes(e),e}getString(e,t=""){return this._data.hasOwnProperty(e)?this._data[e]:t}getInt32(e,t=0){const n=parseInt(this.getString(e,""),10);return isNaN(n)?t:n}}function drawText(e,t,n,i,o,r){let a;e.textAlign=i,a="center"===i?t.left+t.width/2:"right"===i?t.left+t.width:t.left;const s=splitTextByWidth(e,n,t.width);let l=t.top+o;for(let n of s){if(l>t.top+t.height)break;e.fillText(n,a,l),l+=r}}function splitTextByWidth(e,t,n){const i=t.split(" ");let o=[],r="";for(let t of i){let i=r?r+" "+t:t;e.measureText(i).width>n&&r?(o.push(r),r=t):r=i}return r&&o.push(r),o}function drawRectangle(e,t,n,i,o,r,a){if(e.lineWidth=r,e.strokeStyle=a,n){const n=(t.width+t.height)/2*(i/100);roundRect(e,t.left,t.top,t.width,t.height,n,!1),e.fillStyle=o,roundRect(e,t.left+r,t.top+r,t.width-2*r,t.height-2*r,n,!0)}else e.strokeRect(t.left,t.top,t.width,t.height),e.fillStyle=o,e.fillRect(t.left+r,t.top+r,t.width-2*r,t.height-2*r)}function roundRect(e,t,n,i,o,r,a){e.beginPath(),e.moveTo(t+r,n),e.lineTo(t+i-r,n),e.quadraticCurveTo(t+i,n,t+i,n+r),e.lineTo(t+i,n+o-r),e.quadraticCurveTo(t+i,n+o,t+i-r,n+o),e.lineTo(t+r,n+o),e.quadraticCurveTo(t,n+o,t,n+o-r),e.lineTo(t,n+r),e.quadraticCurveTo(t,n,t+r,n),e.closePath(),a?e.fill():e.stroke()}class EBPEngine{async getEBPScreen(e){const t=new EBPScreen,n=this.parseEBPVariables(e.variables),i=base64ToUint8Array(e.ebpB64),o=new BinaryReader(i.buffer);if("Imagen ecoBiometric"!==readBinaryString(o,50))throw new Error("Invalid EBP");o.readBytes(9);const r=o.readInt32(),a=this.getPicturesPositions(o);o.position=r;const s=o.length-o.position,l=o.readChars(s),c=new EBPConfiguration(l).sections,u=c.find((e=>e.EBPElementType===EBPDrawableElements.TBACKGROUND)),p=u.getInt32("Width"),h=u.getInt32("Height"),d=document.createElement("canvas");d.width=p,d.height=h;const g=d.getContext("2d");g.fillStyle="#FFFFFF",g.fillRect(0,0,d.width,d.height);for(let e of c){e.getInt32("ID",-1);const i=1===e.getInt32("FontBold"),r=1===e.getInt32("FontItalic"),s=e.getString("FontName","MS Sans Serif"),l=e.getInt32("FontSize",12)+4,c=i?"bold":"normal",u=r?"italic":"normal";g.font=`${u} ${c} ${l}px ${s}`;const h=convertToCSSColor(e.getInt32("PenColor"));g.strokeStyle=h;const d=e.getInt32("PenWidth");g.lineWidth=d;let m=e.getInt32("TextAlignment"),f="left";1===m?f="right":2===m&&(f="center");const S={left:e.getInt32("AnchorX"),top:e.getInt32("AnchorY"),width:Math.max(e.getInt32("Width")-1,0),height:Math.max(e.getInt32("Height")-1,0)};let b=e.getString("Text","").replace(/\t/g,"\r\n");switch(b=this.replaceVariables(b,n),e.EBPElementType){case EBPDrawableElements.TRECTANGLE:if(drawRectangle(g,S,0!==e.getInt32("Rounded"),e.getInt32("Curvature"),convertToCSSColor(e.getInt32("BrushColor",16777215)),d,convertToCSSColor(e.getInt32("PenColor",0))),b){const t=e.getInt32("FrameMargins",5),n={left:S.left+t,top:S.top+t,width:S.width-t,height:S.height-t};g.fillStyle=convertToCSSColor(e.getInt32("FontColor",0)),drawText(g,n,b,f,l,1.2*l)}break;case EBPDrawableElements.TTEXT:S.width=p-S.left,g.fillStyle=convertToCSSColor(e.getInt32("FontColor",0)),drawText(g,S,b,f,l,1.2*l);break;case EBPDrawableElements.TPASTER:{const t=e.name.toUpperCase();if(a[t]){const e=a[t].position,n=a[t].length,i=o.position;o.position=e;const r=o.readBytes(n),s=new Blob([r],{type:"image/png"}),l=await createImageBitmap(s);g.drawImage(l,S.left,S.top,S.width,S.height),o.position=i}break}}const y=e.getInt32("Boton_Tipo",-1);if(y>=0){const n={x:e.getInt32("Left"),y:e.getInt32("Top"),width:e.getInt32("Width"),height:e.getInt32("Height")};t.buttons.push(new EBPScreenButton(n,y))}1===e.getInt32("Zona_Firma")&&(t.signatureAreaRect={x:e.getInt32("Left"),y:e.getInt32("Top"),width:e.getInt32("Width"),height:e.getInt32("Height")})}const m=d.toDataURL("image/png",1);return t.BMPB64=m.split(",")[1],t}replaceVariables(e,t){for(let n in t){const i=new RegExp(`##${n}##`,"g");e=e.replace(i,t[n])}return e=e.replace(/##[^#]+##/g,"")}parseEBPVariables(e){const t={};if(!e)return t;const n=e.split("|||");for(const e of n){if(!e)continue;const n=e.indexOf("=");let i,o;-1===n?(i=e.trim(),o=""):(i=e.slice(0,n).trim(),o=e.slice(n+1).trim(),""!==o&&"null"!==o.toLowerCase()&&"undefined"!==o.toLowerCase()||(o="")),i&&(t[i]=o)}return t}getPicturesPositions(e){const t=[],n=[],i=[];for(let n=0;n<100;n++)t.push(e.readInt32());for(let t=0;t<100;t++)n.push(e.readInt32());for(let t=0;t<100;t++)i.push(readBinaryString(e,50));const o={};let r=0;for(;r<i.length&&i[r];)o[i[r].toUpperCase()]={position:n[r],length:t[r]},r++;return o}}class EdataliaEbp{constructor(e,t,n,i){this.initialEbpLocalUrl=e,this.signatureEbpLocalUrl=t,this.varInitialEbp=n,this.varSignatureEbp=i,this.initialEbpImageBase64=null,this.signatureEbpImageBase64=null,this.initialEbpButtons=null,this.signatureEbpButtons=null}async getInitialEbp(){let e;if(this.initialEbpImageBase64&&this.initialEbpButtons)console.log("returning initial ebp from caché class");else{e=this.isBase64(this.initialEbpLocalUrl)?this.initialEbpLocalUrl:await getBase64FromUrl(this.initialEbpLocalUrl);const t=this.varInitialEbp,n=new EBPDefinition(e,t),i=new EBPEngine,o=await i.getEBPScreen(n);this.initialEbpButtons=this.getSignatureEbpButtonsFromResponse(o),this.initialEbpImageBase64="data:image/png;base64,"+o.BMPB64}return{initialEbpImageBase64:this.initialEbpImageBase64,initialEbpButtons:this.initialEbpButtons}}async getSignatureEbp(){let e;if(this.signatureEbpImageBase64&&this.signatureEbpButtons)console.log("returning signature ebp from caché class");else{e=this.isBase64(this.signatureEbpLocalUrl)?this.signatureEbpLocalUrl:await getBase64FromUrl(this.signatureEbpLocalUrl);const t=this.varSignatureEbp,n=new EBPDefinition(e,t),i=new EBPEngine,o=await i.getEBPScreen(n);this.signatureEbpButtons=this.getSignatureEbpButtonsFromResponse(o),this.signatureAreaEbp=this.getSignatureAreaEbpFromResponse(o),this.signatureEbpImageBase64="data:image/png;base64,"+o.BMPB64}return{signatureEbpImageBase64:this.signatureEbpImageBase64,signatureEbpButtons:this.signatureEbpButtons,signatureAreaEbp:this.signatureAreaEbp}}hideEbpButtonsForMouseCanvas(e,t,n,i){e.fillStyle="white",t.forEach((t=>{const{x:o,y:r,width:a,height:s}=t.Bounds;e.fillRect(o*n-2,r*i-2,a*n+3,s*i+3)}))}getSignatureAreaEbpFromResponse(e){let t;return t=e.signatureAreaRect.x>-1&&e.signatureAreaRect.y>-1&&e.signatureAreaRect.width>-1&&e.signatureAreaRect.height>-1?new STURectangle(e.signatureAreaRect.x,e.signatureAreaRect.y,e.signatureAreaRect.width,e.signatureAreaRect.height):new STURectangle(0,0,this.wacomCapability.screenWidth,this.wacomCapability.screenHeight),t}getInitialEbpButtonsFromResponse(e){return e.buttons.map((e=>{const t=new ButtonEBP;return t.Bounds=new STURectangle(e.rect.x,e.rect.y,e.rect.width,e.rect.height),t.Type=e.type,t}))}getSignatureEbpButtonsFromResponse(e){return e.buttons.map((e=>{const t=new ButtonEBP;return t.Bounds=new STURectangle(e.rect.x,e.rect.y,e.rect.width,e.rect.height),t.Type=e.type,t}))}getButtonType(e,t){return e?this.getClickedInitialEbpButtonType(t):this.getClickedSignatureEbpButtonType(t)}getClickedInitialEbpButtonType(e){const t=this.initialEbpButtons.find((t=>t.Bounds.Contains(e)));return t?t.Type:-1}getClickedSignatureEbpButtonType(e){const t=this.signatureEbpButtons.find((t=>t.Bounds.Contains(e)));return t?t.Type:-1}isBase64(e){return/^[A-Za-z0-9+/]+={0,2}$/.test(e)&&e.length%4==0}}class LoadingSpinner{constructor(e=null){this.overlay=null,this.context=e}show(){this.overlay||(this.overlay=this.createOverlay());const e=this.getWebSignContainer();e&&!this.overlay.parentNode&&e.appendChild(this.overlay)}hide(){if(this.overlay){const e=this.getWebSignContainer();e&&this.overlay.parentNode&&e.removeChild(this.overlay),this.overlay=null}}createOverlay(){const e=document.createElement("div");e.id="loading-overlay",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.style.zIndex="9998";const t=this.createSpinner();return e.appendChild(t),e}createSpinner(){const e=document.createElement("div");e.id="loading-spinner",e.style.border="4px solid #f3f3f3",e.style.borderTop="4px solid #3498db",e.style.borderRadius="50%",e.style.width="50px",e.style.height="50px",e.style.animation="spin 0.75s linear infinite",e.style.zIndex="9999";const t=document.createElement("style");return t.textContent="\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ",document.head.appendChild(t),e}getWebSignContainer(){const e=getElement(this.context,"web-sign");return e||console.error("WebSign container not found. Ensure the element with ID 'web-sign' exists in the DOM."),e}}function translateTo(e,t){let n,i={nl:{ok:"Tekenen",cancel:"Annuleren",clear:"Herstarten",loading:"Afbeelding wordt geladen, het kan enkele seconden duren...",startCapture:"Handtekening starten",waitingForSigner:"Wachten op ondertekenaar",waitingSubtitle:"Houd dit venster open terwijl de handtekening begint...",fullscreen:"Klik om door te gaan"},de:{ok:"Unterschreiben",cancel:"Abbrechen",clear:"Zurücksetzen",loading:"Das Laden des Bildes kann einige Sekunden dauern...",startCapture:"Unterschrift starten",waitingForSigner:"Warten auf Unterzeichner",waitingSubtitle:"Halten Sie dieses Fenster geöffnet, während die Unterschrift beginnt...",fullscreen:"Klicken Sie, um fortzufahren"},en:{ok:"Sign",cancel:"Cancel",clear:"Reset",loading:"Loading image, it may take a few seconds...",startCapture:"Start signature",waitingForSigner:"Waiting for signer",waitingSubtitle:"Keep this window open while the signature begins...",fullscreen:"Tap to continue"},es:{ok:"Firmar",cancel:"Cancelar",clear:"Reiniciar",loading:"Cargando imagen, puede llevar unos segundos...",startCapture:"Empezar firma",waitingForSigner:"Esperando al firmante",waitingSubtitle:"Mantén esta ventana abierta mientras comienza la firma...",fullscreen:"Pulse para continuar"},fr:{ok:"Signer",cancel:"Annuler",clear:"Réinitialiser",loading:"Chargement de l'image, cela peut prendre quelques secondes...",startCapture:"Démarrer la signature",waitingForSigner:"En attente du signataire",waitingSubtitle:"Gardez cette fenêtre ouverte pendant que la signature commence...",fullscreen:"Appuyez pour continuer"},it:{ok:"Firmare",cancel:"Annulla",clear:"Reimposta",loading:"Caricamento immagine, potrebbe richiedere alcuni secondi...",startCapture:"Avvia firma",waitingForSigner:"In attesa del firmatario",waitingSubtitle:"Mantieni questa finestra aperta mentre inizia la firma...",fullscreen:"Tocca per continuare"},pt:{ok:"Assinar",cancel:"Cancelar",clear:"Reiniciar",loading:"Carregando a imagem, pode demorar alguns segundos...",startCapture:"Iniciar assinatura",waitingForSigner:"Aguardando assinante",waitingSubtitle:"Mantenha esta janela aberta enquanto a assinatura começa...",fullscreen:"Toque para continuar"}};return n=t||(navigator.language||navigator.userLanguage).split("-")[0],i[n][e]?i[n][e]:i.en[e]}function startSignatureTimeout(e,t){if(!e||e<=0)return null;const n=1e3*e;let i=0;const o=setInterval((async()=>{i+=1e3,i>=n&&(clearInterval(o),await t())}),1e3);return o}function clearSignatureTimeout(e){e&&clearInterval(e)}const TRANSLATION_KEYS={clear:"clear",cancel:"cancel",accept:"ok",restart:"clear"},ICONS={clear:'<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24"><path fill="rgba(0,87,162,1)" d="M15.14,3C14.63,3 14.12,3.2 13.73,3.59L2.59,14.73C1.81,15.5 1.81,16.77 2.59,17.56L5.03,20H12.69L21.41,11.27C22.2,10.5 22.2,9.23 21.41,8.44L16.56,3.59C16.17,3.2 15.65,3 15.14,3M17,18L15,20H22V18"></path></svg>',cancel:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="#c62828" d="M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z"/></svg>',accept:'<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12l5 5L19 7"></path></svg>',restart:'<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24"><path fill="rgba(0,87,162,1)" d="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"></path></svg>'},BTN_HEIGHT="40px",BTN_FONT_SIZE="13px",BTN_FONT_WEIGHT="600",BTN_LETTER_SPACING="0.4px",BTN_BORDER_RADIUS="6px",BUTTON_STYLES={clear:{background:"rgba(0, 87, 162, 0.12)",color:"#0057a2"},cancel:{background:"rgba(0, 87, 162, 0.12)",color:"#c62828"},accept:{background:"rgba(0, 87, 162, 0.82)",color:"#ffffff",flex:"1.2"},restart:{background:"rgba(0, 87, 162, 0.12)",color:"#0057a2"}},HOVER_STYLES={clear:{normal:"rgba(0, 87, 162, 0.12)",hover:"rgba(0, 87, 162, 0.2)"},cancel:{normal:"rgba(0, 87, 162, 0.12)",hover:"rgba(0, 87, 162, 0.2)"},accept:{normal:"rgba(0, 87, 162, 0.82)",hover:"rgba(0, 87, 162, 0.95)"},restart:{normal:"rgba(0, 87, 162, 0.12)",hover:"rgba(0, 87, 162, 0.2)"}};function setupSignatureLayout(e){const t=e.offsetHeight;return e.style.display="flex",e.style.flexDirection="column",t}function createSignatureButton(e,t,{id:n,compact:i=!1}={}){const o=translateTo(TRANSLATION_KEYS[e]||e,t),r=document.createElement("div");n&&(r.id=n),r.setAttribute("role","button"),r.setAttribute("aria-label",o);const a=ICONS[e]||"",s=i?"":`<span style="font-size:${BTN_FONT_SIZE};font-weight:${BTN_FONT_WEIGHT};letter-spacing:${BTN_LETTER_SPACING};margin-left:4px;pointer-events:none;">${o}</span>`;r.innerHTML=`${a}${s}`,Object.assign(r.style,{zIndex:"1002",cursor:"pointer",flex:"1",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:BTN_BORDER_RADIUS,transition:"background 0.15s ease, transform 0.15s ease",userSelect:"none",...BUTTON_STYLES[e]||{}});const l=HOVER_STYLES[e];return l&&(r.addEventListener("mouseenter",(()=>{r.style.background=l.hover,r.style.transform="scale(1.03)"})),r.addEventListener("mouseleave",(()=>{r.style.background=l.normal,r.style.transform="scale(1)"}))),r}function createSignatureButtonsBar({language:e,compact:t=!1,padding:n="4px 5px",marginTop:i="0",callbacks:o={},ids:r={}}){const a=document.getElementById("websign-signature-buttons");a&&a.remove();const s=document.createElement("div");s.id="websign-signature-buttons",Object.assign(s.style,{height:BTN_HEIGHT,minHeight:BTN_HEIGHT,display:"flex",gap:"5px",padding:n,background:"rgba(0, 87, 162, 0.04)",boxSizing:"border-box",width:"100%",borderTop:"1px solid rgba(0, 87, 162, 0.15)",zIndex:"1003",order:"1",marginTop:i});const l=e=>{e.stopPropagation()};if(s.addEventListener("pointerdown",l),s.addEventListener("mousedown",l),s.addEventListener("touchstart",l),o.onClear){const n=createSignatureButton("clear",e,{id:r.clear,compact:t});n.addEventListener("click",o.onClear),s.appendChild(n)}if(o.onRestart){const n=createSignatureButton("restart",e,{compact:t});n.addEventListener("click",o.onRestart),s.appendChild(n)}const c=createSignatureButton("cancel",e,{compact:t});c.addEventListener("click",o.onCancel),s.appendChild(c);const u=createSignatureButton("accept",e,{id:r.accept,compact:t});return u.addEventListener("click",o.onAccept),s.appendChild(u),s}function createProgressBar(){const e=document.getElementById("websign-signature-progress-container");e&&e.remove();const t=document.createElement("div");t.id="websign-signature-progress-container",Object.assign(t.style,{height:"5px",minHeight:"5px",width:"100%",backgroundColor:"rgba(0, 87, 162, 0.06)",overflow:"hidden",boxSizing:"border-box",zIndex:"1003",order:"-1"});const n=document.createElement("div");return n.id="websign-signature-progress",Object.assign(n.style,{height:"100%",backgroundColor:"rgba(0, 87, 162, 0.45)",borderRadius:"2px",width:"0%",transition:"width 0s ease"}),t.appendChild(n),{container:t,bar:n}}const SIGNATURE_BUTTONS_CSS=`\n .websign-btn-row {\n display: flex; gap: 5px; padding: 4px 5px;\n background: rgba(0, 87, 162, 0.04);\n border-top: 1px solid rgba(0, 87, 162, 0.15);\n width: 100%; box-sizing: border-box;\n }\n .websign-btn {\n flex: 1; height: ${BTN_HEIGHT}; display: flex; align-items: center; justify-content: center;\n border-radius: ${BTN_BORDER_RADIUS}; border: none; cursor: pointer;\n font-size: ${BTN_FONT_SIZE}; font-weight: ${BTN_FONT_WEIGHT}; letter-spacing: ${BTN_LETTER_SPACING}; gap: 4px;\n transition: background 0.15s ease, transform 0.15s ease;\n user-select: none;\n }\n .websign-btn svg, .websign-btn span { pointer-events: none; }\n .websign-btn span { font-size: ${BTN_FONT_SIZE}; font-weight: ${BTN_FONT_WEIGHT}; letter-spacing: ${BTN_LETTER_SPACING}; }\n .websign-btn-clear { background: ${BUTTON_STYLES.clear.background}; color: ${BUTTON_STYLES.clear.color}; }\n .websign-btn-clear:hover { background: ${HOVER_STYLES.clear.hover}; transform: scale(1.03); }\n .websign-btn-cancel { background: ${BUTTON_STYLES.cancel.background}; color: ${BUTTON_STYLES.cancel.color}; }\n .websign-btn-cancel:hover { background: ${HOVER_STYLES.cancel.hover}; transform: scale(1.03); }\n .websign-btn-accept { background: ${BUTTON_STYLES.accept.background}; color: ${BUTTON_STYLES.accept.color}; flex: 1.2; }\n .websign-btn-accept:hover { background: ${HOVER_STYLES.accept.hover}; transform: scale(1.03); }\n .websign-btn-restart { background: ${BUTTON_STYLES.restart.background}; color: ${BUTTON_STYLES.restart.color}; }\n .websign-btn-restart:hover { background: ${HOVER_STYLES.restart.hover}; transform: scale(1.03); }\n`;let globalSignatureTimer=null;class EdataliaMouse{constructor(e,t,n,i,o,r,a,s=null,l=null,c=null,u=null){this.config=e,this.onAccept=t,this.onCancel=n,this.onReset=i,this.onError=o,this.onNoDeviceConnected=r,this.onSignatureTimeOut=a,this.context=s,this.pdf=l,this.webSignBridge=c,this.edataliaDtu=u,this.init(),checkSupportingWindowPointerEvents(),this.createMouseCanvas(),"stu"!==this.config.signatureType||this.webSignBridge?!this.webSignBridge||"stu"!==this.config.signatureType&&"dtu"!==this.config.signatureType?this.config.mouseEBP&&this.initCanvasWithEBP():this.initWacomBridge():this.initWacom(),clearSignatureTimeout(globalSignatureTimer),this.startCapturingDate=new Date,this.signatureTimer=startSignatureTimeout(this.config.signatureTimeLimit,(async()=>{await this.cancel(),this.onSignatureTimeOut()})),globalSignatureTimer=this.signatureTimer}async init(){this.startCapturingDate=null,this.capturedPoints=new Array,this.mSignatureWindow=null,this.mFormDiv=null,this.mouseCanvas=null,this.mouseCanvasContext=null,this.traceDataCanvas=null,this.traceDataCanvasContext=null,this.lastPenSignTrace={x:0,y:0},this.loadingSpinner=new LoadingSpinner(this.context),this.canvasSignatureEbp=null,this.signatureEbpButtons=null,this.ebpBtnScaleX=null,this.ebpBtnScaleY=null,this.initialEbpState=!1,this.isWacomPressed=!1,this.edataliaEbp=null,this.initialEbpState=null}onWacomAccept=()=>{this.accept()};onWacomCancel=()=>{this.cancel()};onWacomReset=()=>{this.restartSignature()};onWacomError=e=>{this.manageErrors(e)};onWacomDown=e=>{this.onDown(e)};onWacomUp=e=>{this.onUp(e)};onWacomMove=e=>{this.onMoveInternal(e)};onWacomUpdatePoints=e=>{this.updateCapturedPoints(e)};onWacomImageLoaded=()=>{this.loadingSpinner.hide()};async initWacom(){this.config.wacom.enableEbp&&this.loadingSpinner.show();const e={...this.config.wacom,doPerformance:this.config.doPerformance,signatureColorHex:this.config.signatureColorHex,requestedEncodingBits:this.config.requestedEncodingBits};this.edataliaWacom=new EdataliaWacom(e,this.mouseCanvas,this.onWacomAccept,this.onWacomCancel,this.onWacomReset,this.onWacomError,this.onWacomDown,this.onWacomUp,this.onWacomMove,this.onWacomUpdatePoints,this.onWacomImageLoaded);if(!await this.edataliaWacom.initWacom())return;const t=this.edataliaWacom.wacomSupportsColor;if(console.log("wacom supports color: "+t),this.config.wacom.enableEbp&&this.initEbp(t),this.config.wacom.enableInitialEbp&&this.config.wacom.enableEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbp(e)}else this.config.wacom.enableEbp&&await this.drawSignatureEbp()}async initWacomBridge(){this.config.wacom.enableEbp&&this.loadingSpinner.show();const e={...this.config.wacom,doPerformance:this.config.doPerformance,signatureColorHex:this.config.signatureColorHex,requestedEncodingBits:this.config.requestedEncodingBits};this.edataliaWacomBridge=new EdataliaWacomBridge(e,this.mouseCanvas,this.onWacomAccept,this.onWacomCancel,this.onWacomReset,this.onWacomError,this.onWacomDown,this.onWacomUp,this.onWacomMove,this.onWacomUpdatePoints,this.onWacomImageLoaded,this.pdf,this.webSignBridge);if(!await this.edataliaWacomBridge.initWacomBridge())return;this.isDtuBridge()&&(this.edataliaWacomBridge.onCaptureStarted=()=>{this.enableWidgetButtons()});const t=this.edataliaWacomBridge.wacomSupportsColor;if(this.config.wacom.enableEbp&&this.initEbp(t),this.config.wacom.enableInitialEbp&&this.config.wacom.enableEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbpBridge(e)}else this.config.wacom.enableEbp&&this.drawSignatureEbpBridge();if("dtu"===this.config.signatureType&&this.webSignBridge){const e=this.config.language;showWaitingOverlay(translateTo("waitingForSigner",e),translateTo("waitingSubtitle",e),null,(()=>this.cancel()),(async()=>{await this.webSignBridge.startSignatureCapture()}),translateTo("startCapture",e),translateTo("cancel",e))}}async initCanvasWithEBP(){this.loadingSpinner.show(),this.initEbp(!0),await this.drawSignatureEbp(),this.loadingSpinner.hide()}initEbp(e){let t,n;e?(t=this.config.wacom.colorInitialEbp,n=this.config.wacom.colorEbp):(t=this.config.wacom.blackAndWhiteInitialEbp,n=this.config.wacom.blackAndWhiteEbp),this.edataliaEbp=new EdataliaEbp(t,n,this.config.wacom.varInitialEbp,this.config.wacom.varEbp),this.edataliaWacom?this.edataliaWacom.setEdataliaEbp(this.edataliaEbp):this.edataliaWacomBridge&&this.edataliaWacomBridge.setEdataliaEbp(this.edataliaEbp)}drawImgOnCanvas(e){this.mouseCanvasContext.drawImage(e,0,0,this.mouseCanvas.width,this.mouseCanvas.height)}async drawInitialEbp({initialEbpImageBase64:e,initialEbpButtons:t}){const n=await drawImageToCanvas(e);this.mouseCanvasContext.drawImage(n,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/n.width,this.ebpBtnScaleY=this.mouseCanvas.height/n.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,t,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacom.drawInitialEbp(n),this.initialEbpState=!0,this.edataliaWacom.initialEbpState=!0}async drawInitialEbpBridge({initialEbpImageBase64:e,initialEbpButtons:t}){const n=await drawImageToCanvas(e);this.mouseCanvasContext.drawImage(n,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/n.width,this.ebpBtnScaleY=this.mouseCanvas.height/n.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,t,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacomBridge.drawInitialEbp(n),this.initialEbpState=!0,this.edataliaWacomBridge.initialEbpState=!0,this.loadingSpinner.hide()}async drawSignatureEbpBridge(){const{signatureEbpImageBase64:e,signatureEbpButtons:t,signatureAreaEbp:n}=await this.edataliaEbp.getSignatureEbp();this.signatureEbpButtons=t,this.canvasSignatureEbp=await drawImageToCanvas(e),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/this.canvasSignatureEbp.width,this.ebpBtnScaleY=this.mouseCanvas.height/this.canvasSignatureEbp.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),this.config.mouseEBP&&this.setSignatureAreaForMouseEBP(n),this.ebpCropArea={x:n.x*this.ebpBtnScaleX,y:n.y*this.ebpBtnScaleY,width:n.width*this.ebpBtnScaleX,height:n.height*this.ebpBtnScaleY},await this.edataliaWacomBridge.drawSignatureEbp(this.canvasSignatureEbp,n,t),this.edataliaWacomBridge.initialEbpState=!1,this.initialEbpState=!1,this.startCapturingDate=new Date,this.loadingSpinner.hide()}async drawSignatureEbp(){const{signatureEbpImageBase64:e,signatureEbpButtons:t,signatureAreaEbp:n}=await this.edataliaEbp.getSignatureEbp();this.signatureEbpButtons=t,this.canvasSignatureEbp=await drawImageToCanvas(e),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.ebpBtnScaleX=this.mouseCanvas.width/this.canvasSignatureEbp.width,this.ebpBtnScaleY=this.mouseCanvas.height/this.canvasSignatureEbp.height,this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),this.config.mouseEBP&&this.setSignatureAreaForMouseEBP(n),this.ebpCropArea={x:n.x*this.ebpBtnScaleX,y:n.y*this.ebpBtnScaleY,width:n.width*this.ebpBtnScaleX,height:n.height*this.ebpBtnScaleY},this.edataliaWacom&&(await this.edataliaWacom.drawSignatureEbp(this.canvasSignatureEbp,n),this.edataliaWacom.initialEbpState=!1),this.initialEbpState=!1,this.startCapturingDate=new Date}setSignatureAreaForMouseEBP(e){const t=e.x*this.ebpBtnScaleX,n=e.y*this.ebpBtnScaleY,i=e.width*this.ebpBtnScaleX,o=e.height*this.ebpBtnScaleY;this.mouseCanvasContext.restore(),this.mouseCanvasContext.save(),this.mouseCanvasContext.beginPath(),this.mouseCanvasContext.rect(t,n,i,o),this.mouseCanvasContext.clip(),this.scaledSignatureArea={x:t,y:n,width:i,height:o}}isWithinSignatureArea(e,t){return this.scaledSignatureArea&&"stu"!==this.config.signatureType?e>=this.scaledSignatureArea.x&&e<=this.scaledSignatureArea.x+this.scaledSignatureArea.width&&t>=this.scaledSignatureArea.y&&t<=this.scaledSignatureArea.y+this.scaledSignatureArea.height:e>=0&&e<=this.mouseCanvas.width&&t>=0&&t<=this.mouseCanvas.height}createMouseCanvas(){document.getElementById("signature-window")&&document.getElementById("signature-window").remove();const e=getElement(this.context,"web-sign");if(!e)return void handleDebugMessage("Contenedor 'web-sign' no encontrado.","error",this.config.debug);this.mSignatureWindow=document.createElement("div"),this.mSignatureWindow.id="signature-window",this.mSignatureWindow.setAttribute("style","touch-action: none;z-index: 1001;overflow: hidden;position: relative;"),this.mSignatureWindow.style.top=0,this.mSignatureWindow.style.left=0,this.mSignatureWindow.style.width="100%",this.config.useFullMode?(this.mSignatureWindow.style.flex="1",this.mSignatureWindow.style.minHeight="0"):this.mSignatureWindow.style.height="100%",e.appendChild(this.mSignatureWindow),this.mFormDiv=document.createElement("div"),this.mFormDiv.setAttribute("style","touch-action: none;z-index: 1001;"),this.mFormDiv.style.position="absolute",this.mFormDiv.style.width="100%",this.mFormDiv.style.height="100%",this.mSignatureWindow.appendChild(this.mFormDiv);const t=(e,t,i,o="auto")=>{const r=document.createElement("canvas");r.id=e,r.style.position="absolute",r.style.pointerEvents=o,r.width=t,r.height=i,n&&(r.style.width="100%",r.style.height="100%");const a=r.getContext("2d");return a.strokeStyle=this.config.signatureColorHex,a.lineWidth=this.config.signatureThickness,a.lineCap="round",a.lineJoin="round",a.clearRect(0,0,t,i),{canvas:r,context:a}},n="dtu"===this.config.signatureType&&!this.webSignBridge;let i=e.offsetHeight;if(this.config.useFullMode)i-=56;else{const t=e.querySelector("#websign-signature-buttons"),n=e.querySelector("#websign-signature-progress-container");t&&(i-=t.offsetHeight),n&&(i-=n.offsetHeight),(t||n)&&(i-=8)}const o={width:n?parseInt(this.config.signatureContainerWidth)||400:e.offsetWidth,height:n?parseInt(this.config.signatureContainerHeight)||250:i},r=t("my-canvas",o.width,o.height,"stu"===this.config.signatureType?"none":"auto"),a=t("trace-data-canvas",o.width,o.height);this.mouseCanvas=r.canvas,this.mouseCanvasContext=r.context,this.mouseCanvasContext.save(),this.traceDataCanvas=a.canvas,this.traceDataCanvasContext=a.context,this.mFormDiv.appendChild(this.mouseCanvas),this.config.useFullMode||(this.createSignatureProgress(),this.createMouseCanvasButtons()),this.addListenerToCanvasEvents()}addListenerToCanvasEvents(){"dtu"!==this.config.signatureType&&(this.mouseCanvas.addEventListener("pointerdown",this.onDown.bind(this),!1),this.mouseCanvas.addEventListener("pointermove",this.onMove.bind(this),!1),this.mouseCanvas.addEventListener("pointerup",this.onUp.bind(this),!1),this.mouseCanvas.addEventListener("pointerenter",this.onDown.bind(this),!1),this.mouseCanvas.addEventListener("pointerleave",this.onUp.bind(this),!1))}createSignatureProgress(){const e=getElement(this.context,"web-sign"),{container:t}=createProgressBar();e.insertAdjacentElement("beforebegin",t)}createMouseCanvasButtons(){const e=getElement(this.context,"web-sign"),t=e&&e.offsetWidth<250,n=createSignatureButtonsBar({language:this.config.language,compact:t,marginTop:"8px",callbacks:{onClear:()=>this.reset(),onRestart:this.edataliaWacomBridge?()=>this.restartSignature():null,onCancel:()=>this.cancel(),onAccept:()=>this.accept()}});e.insertAdjacentElement("afterend",n),this.isDtuBridge()&&this.disableWidgetButtons()}isDtuBridge(){return Boolean(this.webSignBridge)&&"dtu"===this.config.signatureType}drawSinglePointCircle(e){const t=e.p>0?e.p:1,n=this.config.signatureThickness*t/2,i=t=>{t.fillStyle=this.config.signatureColorHex,t.strokeStyle=this.config.signatureColorHex,t.beginPath(),t.arc(e.x,e.y,n,0,2*Math.PI),t.fill(),t.stroke(),t.closePath()};return i(this.mouseCanvasContext),this.traceDataCanvasContext&&i(this.traceDataCanvasContext),n}handleDtuStrokePoint(e){if(!e)return;const t=Date.now(),n=e.p>0?e.p:1,i=parseInt(this.config.signatureContainerWidth)||400,o=parseInt(this.config.signatureContainerHeight)||250,r=this.mouseCanvas.width/i,a=this.mouseCanvas.height/o,s=e.x*r,l=e.y*a;if("down"===e.type&&(this.currentEventType="pen",this.lastDtuPcTrace={x:s,y:l}),"move"===e.type&&this.currentEventType&&this.lastDtuPcTrace&&(this.mouseCanvasContext.beginPath(),this.mouseCanvasContext.moveTo(this.lastDtuPcTrace.x,this.lastDtuPcTrace.y),this.mouseCanvasContext.lineWidth=this.config.signatureThickness*n,this.mouseCanvasContext.lineTo(s,l),this.mouseCanvasContext.stroke(),this.mouseCanvasContext.closePath(),this.lastDtuPcTrace={x:s,y:l}),"up"===e.type){const e=this.capturedPoints[this.capturedPoints.length-1];e&&"down"===e.type&&this.drawSinglePointCircle({x:s,y:l,p:n}),this.currentEventType=null,this.lastDtuPcTrace=null}const c=e.tiltX||0,u=e.tiltY||0,p=c*Math.PI/180,h=u*Math.PI/180,d=Math.PI/2-Math.acos(Math.cos(p)*Math.cos(h)),g=Math.atan2(Math.sin(p),Math.sin(h)),m={type:e.type,x:e.x,y:e.y,p:n,t:t,width:e.w||0,height:e.h||0,azimuth:g,altitude:d,twist:e.twist||0,isDown:"up"!==e.type,stroke_id:this.currentStrokeID};this.updateCapturedPoints(m)}handleSinglePointInOnUp(e){e&&"down"===e.type&&this.drawSinglePointCircle(e)}onUp(e){if(e.pointerType!=this.currentEventType)return;let t=e.pointerType,n=e.pressure;"touch"==e.pointerType&&(t="mouse",n=1);let i=Math.floor(e.timeStamp);new PointerEvent("pointerup",{pointerId:1,pointerType:t,pressure:n,isPrimary:!0}).timestamp=i,this.currentEventType=null;const o=getPenOrientation(e),r=(void 0!==e._customOffsetX?e._customOffsetX:e.offsetX)>0?void 0!==e._customOffsetX?e._customOffsetX:e.offsetX:0,a=(void 0!==e._customOffsetY?e._customOffsetY:e.offsetY)>0?void 0!==e._customOffsetY?e._customOffsetY:e.offsetY:0;if(this.isWithinSignatureArea(r,a)){const t=this.capturedPoints[this.capturedPoints.length-1];this.handleSinglePointInOnUp(t);var s={type:"up",x:r,y:a,p:n,t:i,width:e.width,height:e.height,azimuth:o.azimuth,altitude:o.altitude,twist:o.twist,isDown:!1,stroke_id:this.currentStrokeID};this.updateCapturedPoints(s)}}onDown(e){if(this.currentEventType)return;if(1!=e.buttons)return;this.currentEventType=e.pointerType;let t=e.pointerType,n=e.pressure;"touch"==e.pointerType&&(t="mouse",n=1);let i=Math.floor(e.timeStamp);new PointerEvent("pointerdown",{pointerId:1,pointerType:t,isPrimary:!0,pressure:n}).timestamp=i;const o=getPenOrientation(e),r=(void 0!==e._customOffsetX?e._customOffsetX:e.offsetX)>0?void 0!==e._customOffsetX?e._customOffsetX:e.offsetX:0,a=(void 0!==e._customOffsetY?e._customOffsetY:e.offsetY)>0?void 0!==e._customOffsetY?e._customOffsetY:e.offsetY:0;if(this.isWithinSignatureArea(r,a)){var s={type:"down",x:r,y:a,p:n,t:i,azimuth:o.azimuth,altitude:o.altitude,twist:o.twist,isDown:!0,width:e.width,height:e.height,stroke_id:this.currentStrokeID};this.updateCapturedPoints(s)}}onMove(e){if("function"==typeof e.getCoalescedEvents){const t=e.getCoalescedEvents(),n=this.mouseCanvas.getBoundingClientRect();for(const e of t)e._customOffsetX=e.clientX-n.left,e._customOffsetY=e.clientY-n.top,this.onMoveInternal(e)}else this.onMoveInternal(e)}onMoveInternal(e){if(e.pointerType!==this.currentEventType)return;let t="pointermove",n=e.pointerType,i=e.pressure;"touch"===e.pointerType&&(n="mouse",i=1);let o=void 0!==e._customOffsetX?e._customOffsetX:e.offsetX,r=void 0!==e._customOffsetY?e._customOffsetY:e.offsetY;if(this.scaledSignatureArea)if(this.isWithinSignatureArea(o,r))this.isOut&&(t="pointerdown",this.isOut=!1);else{if(this.isOut)return;this.isOut=!0,t="pointerup"}else if(o>this.mouseCanvas.width||o<0||r>this.mouseCanvas.height||r<0){if(this.isOut)return;this.isOut=!0,t="pointerup"}else this.isOut&&(t="pointerdown",this.isOut=!1);let a=Math.floor(e.timeStamp);new PointerEvent(t,{pointerId:1,pointerType:n,isPrimary:!0,pressure:i}).timestamp=a;this.capturedPoints[this.capturedPoints.length-1];const s=(e,t,n,i)=>{e.beginPath(),e.moveTo(t.x,t.y),e.lineWidth=this.config.signatureThickness*i,e.lineTo(n.x,n.y),e.fill(),e.stroke(),e.closePath()},l={x:o>0?o:0,y:r>0?r:0},c=getPenOrientation(e);var u={type:"move",x:o>0?o:0,y:r>0?r:0,p:i,t:a,width:e.width,height:e.height,azimuth:c.azimuth,altitude:c.altitude,twist:c.twist,isDown:1==e.buttons&&!this.isOut,stroke_id:this.currentStrokeID};if(0==this.capturedPoints.length)this.capturedPoints.push(u),this.setProgress();else if(this.capturedPoints[this.capturedPoints.length-1].t<=a){const e=this.capturedPoints[this.capturedPoints.length-1];s(this.mouseCanvasContext,e,l,i),this.updateCapturedPoints(u)}}updateCapturedPoints(e){if(0===e.pressure)return;Math.abs(this.lastPenSignTrace.x-e.x)+Math.abs(this.lastPenSignTrace.y-e.y)>0&&this.capturedPoints.push(e),this.lastPenSignTrace.x=e.x,this.lastPenSignTrace.y=e.y,this.setProgress()}setProgress(){let e=this.capturedPoints.length,t=document.getElementById("websign-signature-progress");if(t){let n=this.config.minPointsRequiredToSign;"100%"===t.style.width&&0!==e||(t.style.width=e/n*100/3+"%"),t.style.backgroundColor=e<n?"#d22828":e>=n&&e<n+100?"#dcba4f":"#57c56a"}}async reset(){this.edataliaWacom?this.clearSTUSignature():this.edataliaWacomBridge?await this.restartSignature():(this.clearMouseSignature(),this.config.mouseEBP&&this.edataliaEbp&&await this.drawSignatureEbp()),this.startCapturingDate=new Date,this.capturedPoints=new Array,this.setProgress(),this.onReset()}async restartSignature(){if(this.edataliaWacomBridge)try{if(this.loadingSpinner.show(),await this.edataliaWacomBridge.restartSignature(),this.startCapturingDate=new Date,this.capturedPoints=new Array,this.setProgress(),this.config.wacom.enableEbp&&this.edataliaEbp)if(this.initialEbpState&&this.config.wacom.enableInitialEbp){const e=await this.edataliaEbp.getInitialEbp();await this.drawInitialEbpBridge(e)}else await this.drawSignatureEbpBridge();else this.clearMouseSignature();console.log("Firma reiniciada exitosamente desde el bridge")}catch(e){console.error("Error al reiniciar firma desde el bridge:",e),this.onError("Error al reiniciar la firma")}finally{this.loadingSpinner.hide()}else await this.reset()}async clearSTUSignature(){this.config.wacom.enableEbp?(await this.edataliaWacom.drawLoadingScreen(),this.mouseCanvasContext.drawImage(this.canvasSignatureEbp,0,0,this.mouseCanvas.width,this.mouseCanvas.height),this.edataliaEbp.hideEbpButtonsForMouseCanvas(this.mouseCanvasContext,this.signatureEbpButtons,this.ebpBtnScaleX,this.ebpBtnScaleY),await this.edataliaWacom.clearSignature()):(this.edataliaWacom.clearWacomScreen(),this.clearMouseSignature())}clearMouseSignature(){this.mouseCanvasContext.clearRect(0,0,this.mouseCanvas.width,this.mouseCanvas.height)}async cancel(){this.loadingSpinner.show(),this.edataliaWacom&&(await this.edataliaWacom.clearWacomScreen(),await this.edataliaWacom.drawScreenSaver(),await this.edataliaWacom.disconnect()),this.edataliaWacomBridge&&(await this.edataliaWacomBridge.drawScreenSaver(),await this.edataliaWacomBridge.disconnect(),this.edataliaWacomBridge.destroy()),this.edataliaWacom=null,this.edataliaWacomBridge=null,this.stop(),this.hideFieldsetContainer(),this.loadingSpinner.hide(),this.init(),this.onCancel()}stop(){clearSignatureTimeout(this.signatureTimer),globalSignatureTimer===this.signatureTimer&&(globalSignatureTimer=null),this.signatureTimer=null;const e=document.getElementById("signature-window");e&&e.remove();const t=document.getElementById("websign-signature-progress-container");t&&t.remove();const n=document.getElementById("websign-signature-buttons");n&&n.remove()}capturedPointsAreEqualOrGreaterThanMinPoints(){return this.capturedPoints.length>this.config.minPointsRequiredToSign||(handleDebugMessage("La firma debe ser mas larga.","info",this.config.debug),this.onError("La firma debe ser mas larga"),this.enableWidgetButtons(),this.loadingSpinner.hide(),!1)}drawSinglePointInFinalSignature(e,t){const n=t.p>0?t.p:1,i=this.config.signatureThickness*n/2;e.fillStyle=this.config.signatureColorHex,e.strokeStyle=this.config.signatureColorHex,e.beginPath(),e.arc(t.x,t.y,i,0,2*Math.PI),e.fill(),e.stroke()}drawSignatureOnCanvasWithoutEBP(e,t){if(0!==t.length){e.beginPath();for(let n=0;n<t.length;n++){const i=t[n];"down"===i.type?(e.beginPath(),e.moveTo(i.x,i.y)):"move"===i.type&&(e.lineTo(i.x,i.y),e.lineWidth=this.config.signatureThickness*i.p,e.stroke()),"up"===i.type&&(n>0&&"down"===t[n-1].type&&this.drawSinglePointInFinalSignature(e,t[n-1]),e.closePath())}}}async accept(){this.initialEbpState?this.handleAcceptInitialEbp():this.handleAcceptSignature()}async handleAcceptInitialEbp(){this.loadingSpinner.show(),this.edataliaWacom?(await this.edataliaWacom.drawLoadingScreen(),await this.drawSignatureEbp()):this.edataliaWacomBridge&&(await this.edataliaWacomBridge.drawLoadingScreen(),await this.drawSignatureEbpBridge()),this.loadingSpinner.hide()}async handleAcceptSignature(){if(!this.capturedPointsAreEqualOrGreaterThanMinPoints())return void(this.edataliaWacomBridge&&(this.edataliaWacomBridge.disconnect(),this.edataliaWacomBridge.destroy(),this.edataliaWacomBridge=null,this.stop(),this.hideFieldsetContainer(),this.init(),this.onError("Firma rechazada: no se alcanzó el mínimo de puntos requerido")));let e;this.disableWidgetButtons(),this.loadingSpinner.show(),this.edataliaWacom?(await this.edataliaWacom.clearWacomScreen(),await this.edataliaWacom.drawScreenSaver(),await this.edataliaWacom.disconnect()):this.edataliaWacomBridge&&(await this.edataliaWacomBridge.clearDeviceDisplay(),await this.edataliaWacomBridge.drawScreenSaver(),await this.edataliaWacomBridge.disconnect(),this.edataliaWacomBridge.destroy()),this.drawSignatureOnCanvasWithoutEBP(this.traceDataCanvasContext,this.capturedPoints);let t,n,i=this.mouseCanvas.width,o=this.mouseCanvas.height,r=this.capturedPoints;if(this.ebpCropArea){const t=this.ebpCropArea,n=document.createElement("canvas");n.width=Math.round(t.width),n.height=Math.round(t.height);n.getContext("2d").drawImage(this.traceDataCanvas,t.x,t.y,t.width,t.height,0,0,n.width,n.height),e=n.toDataURL("image/png"),i=n.width,o=n.height,r=this.capturedPoints.map((e=>({...e,x:e.x-t.x,y:e.y-t.y})))}else e=this.traceDataCanvas.toDataURL("image/png");this.edataliaWacom?(t=this.edataliaWacom.getWacomInfo(),n=this.edataliaWacom.getWacomUids()):this.edataliaWacomBridge?(t=this.edataliaWacomBridge.getWacomInfo(),n=this.edataliaWacomBridge.getWacomUids()):(t=null,n=null),this.onAccept(r,this.startCapturingDate,e,i,o,t,n,this.edataliaWacom?this.edataliaWacom.wacomSupportsColor:!!this.edataliaWacomBridge||null),this.loadingSpinner.hide()}async manageErrors(e){if("no-device"===e.type)this.loadingSpinner.hide(),await this.cancel(),this.onNoDeviceConnected()}hideFieldsetContainer(){const e=getElement(null,"fieldset-container");return e&&(e.style.display="none"),e}showFieldsetContainer(){const e=getElement(null,"fieldset-container");return e&&(e.style.display="block"),e}disableWidgetButtons(){const e=getElement(this.context,"websign-signature-buttons");e&&e.querySelectorAll("[role='button']").forEach((e=>{e.style.opacity="0.7",e.style.pointerEvents="none"}))}enableWidgetButtons(){const e=getElement(this.context,"websign-signature-buttons");e&&e.querySelectorAll("[role='button']").forEach((e=>{e.style.opacity="1",e.style.pointerEvents="auto"}))}}function getDtuViewerHtml(e={}){const{signatureContainerWidth:t="400px",signatureContainerHeight:n="250px",originalContainerWidth:i=null,originalContainerHeight:o=null,displayCanvasSignatureButtons:r=!1,signatureColorHex:a="#0000ff",signatureThickness:s=5,language:l="es"}=e,c=parseInt(t),u=parseInt(n),p=i||c,h=o||u,d=translateTo("clear",l),g=translateTo("cancel",l),m=translateTo("ok",l),f=translateTo("waitingForSigner",l),S=translateTo("fullscreen",l);return`<!DOCTYPE html>\n<html>\n<head>\n <title>WebSign DTU</title>\n <meta charset="UTF-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n html, body { width: 100%; height: 100%; overflow: hidden; background: #1a1a2e; font-family: system-ui, -apple-system, sans-serif; }\n #dtu-container { display: flex; flex-direction: column; width: 100%; height: 100%; }\n #pdf-viewer { flex: 1; width: 100%; border: none; background: white; }\n #signature-overlay {\n display: none; position: fixed; inset: 0;\n background: rgba(0,0,0,0.5); z-index: 100;\n justify-content: center; align-items: center;\n }\n #signature-panel {\n background: white; border-radius: 12px; padding: 8px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.3); position: relative;\n }\n #signature-canvas {\n display: block; border: 1px solid #ccc; border-radius: 4px;\n touch-action: none; cursor: crosshair;\n }\n #sign-fab {\n position: fixed; bottom: 32px; right: 32px;\n background: #0057a2; color: white; border: none; border-radius: 12px;\n width: 60px; height: 60px; cursor: pointer; z-index: 50;\n box-shadow: 2px 2px 8px rgba(0,0,0,0.3); display: none;\n justify-content: center; align-items: center;\n }\n #sign-fab svg { width: 28px; height: 28px; }\n ${SIGNATURE_BUTTONS_CSS}\n #waiting-msg {\n display: flex; justify-content: center; align-items: center;\n width: 100%; height: 100%; color: #ccc; font-size: 1.2rem;\n }\n #fullscreen-overlay {\n display: none; position: fixed; inset: 0; z-index: 200;\n background: #1a1a2e;\n justify-content: center; align-items: center; flex-direction: column;\n }\n #fullscreen-btn {\n background: #0057a2; color: white; border: none; border-radius: 5px;\n padding: 20px 40px; font-size: 24px; font-weight: bold; cursor: pointer;\n box-shadow: 2px 2px 8px rgba(0,0,0,0.3);\n animation: bounce 1s infinite;\n }\n #fullscreen-btn:hover { background: #004080; }\n @keyframes bounce {\n 0%, 20%, 50%, 80%, 100% { transform: translateY(0); }\n 40% { transform: translateY(-20px); }\n 60% { transform: translateY(-10px); }\n }\n #loading-overlay {\n display: none; position: fixed; inset: 0; z-index: 300;\n background: rgba(0,0,0,0.6);\n justify-content: center; align-items: center;\n }\n .dtu-spinner {\n width: 48px; height: 48px; border: 5px solid rgba(255,255,255,0.3);\n border-top-color: white; border-radius: 50%;\n animation: dtu-spin 0.8s linear infinite;\n }\n @keyframes dtu-spin { to { transform: rotate(360deg); } }\n </style>\n</head>\n<body>\n <div id="dtu-container">\n <iframe id="pdf-viewer" style="display:none;"></iframe>\n <div id="waiting-msg">${f}</div>\n </div>\n\n <button id="sign-fab">\n <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n <path fill="#FFF" d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"/>\n </svg>\n </button>\n\n <div id="signature-overlay">\n <div id="signature-panel">\n <canvas id="signature-canvas"\n width="${c}"\n height="${u}">\n </canvas>\n ${r?`\n <div class="websign-btn-row">\n <div class="websign-btn websign-btn-clear" id="btn-clear" role="button" aria-label="${d}">\n ${ICONS.clear}\n <span>${d}</span>\n </div>\n <div class="websign-btn websign-btn-cancel" id="btn-cancel" role="button" aria-label="${g}">\n ${ICONS.cancel}\n <span>${g}</span>\n </div>\n <div class="websign-btn websign-btn-accept" id="btn-ok" role="button" aria-label="${m}">\n ${ICONS.accept}\n <span>${m}</span>\n </div>\n </div>`:""}\n </div>\n </div>\n <div id="fullscreen-overlay">\n <button id="fullscreen-btn">${S}</button>\n </div>\n <div id="loading-overlay">\n <div class="dtu-spinner"></div>\n </div>\n</body>\n<script>\n(function() {\n const canvas = document.getElementById("signature-canvas");\n const ctx = canvas.getContext("2d");\n const overlay = document.getElementById("signature-overlay");\n const signFab = document.getElementById("sign-fab");\n const pdfViewer = document.getElementById("pdf-viewer");\n const waitingMsg = document.getElementById("waiting-msg");\n\n ctx.strokeStyle = "${a}";\n ctx.lineWidth = ${s};\n ctx.lineCap = "round";\n ctx.lineJoin = "round";\n\n let lastPoint = null;\n let hasMoved = false;\n let signatureMode = false;\n\n // --- Recibir mensajes del opener ---\n window.addEventListener("message", (event) => {\n if (event.data == "" || event.data == null) return;\n \n // Parsear si viene como string (compatibilidad con Salesforce)\n let msg = event.data;\n if (typeof msg === "string") {\n try {\n msg = JSON.parse(msg);\n } catch (e) {\n return;\n }\n }\n \n if (!msg || !msg.type) return;\n\n switch (msg.type) {\n case "dtu:loadPdf":\n loadPdf(msg.data);\n break;\n\n case "dtu:showSignatureCanvas":\n showSignature();\n break;\n\n case "dtu:hideSignatureCanvas":\n hideSignature();\n break;\n\n case "dtu:drawStroke":\n drawStroke(msg.point);\n break;\n\n case "dtu:clearCanvas":\n clearCanvas();\n break;\n\n case "dtu:close":\n window.close();\n break;\n\n case "dtu:showLoading":\n document.getElementById("loading-overlay").style.display = "flex";\n break;\n\n case "dtu:hideLoading":\n document.getElementById("loading-overlay").style.display = "none";\n break;\n }\n });\n\n const fullscreenOverlay = document.getElementById("fullscreen-overlay");\n const fullscreenBtn = document.getElementById("fullscreen-btn");\n\n function loadPdf(pdfUrl) {\n try {\n pdfViewer.src = pdfUrl + "#toolbar=0";\n waitingMsg.style.display = "none";\n fullscreenOverlay.style.display = "flex";\n } catch (e) {\n console.error("Error loading PDF in DTU viewer:", e);\n }\n }\n\n fullscreenBtn.addEventListener("click", () => {\n fullscreenOverlay.style.display = "none";\n pdfViewer.style.display = "block";\n signFab.style.display = "flex";\n if (document.documentElement.requestFullscreen) {\n document.documentElement.requestFullscreen().catch(() => {});\n }\n });\n\n function showSignature() {\n signatureMode = true;\n overlay.style.display = "flex";\n signFab.style.display = "none";\n }\n\n function hideSignature() {\n signatureMode = false;\n overlay.style.display = "none";\n signFab.style.display = "flex";\n clearCanvas();\n }\n\n function clearCanvas() {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n lastPoint = null;\n }\n\n function drawStroke(point) {\n if (!point) return;\n\n const pressure = point.p || 1;\n const thickness = ${s} * pressure;\n\n if (point.type === "down") {\n lastPoint = { x: point.x, y: point.y };\n hasMoved = false;\n } else if (point.type === "move" && lastPoint) {\n hasMoved = true;\n ctx.beginPath();\n ctx.moveTo(lastPoint.x, lastPoint.y);\n ctx.lineWidth = thickness;\n ctx.lineTo(point.x, point.y);\n ctx.stroke();\n ctx.closePath();\n lastPoint = { x: point.x, y: point.y };\n } else if (point.type === "up") {\n // Solo dibujar círculo si fue un punto único (down seguido de up sin move)\n if (lastPoint && !hasMoved) {\n const radius = thickness / 2;\n ctx.fillStyle = "${a}";\n ctx.beginPath();\n ctx.arc(point.x, point.y, radius, 0, 2 * Math.PI);\n ctx.fill();\n ctx.closePath();\n }\n lastPoint = null;\n hasMoved = false;\n }\n }\n\n // --- Captura de trazos en el canvas de la DTU ---\n let isDrawing = false;\n\n // Escala para convertir coordenadas del canvas DTU a las del canvas principal\n const scaleX = ${p} / ${c};\n const scaleY = ${h} / ${u};\n\n function scalePoint(point) {\n return Object.assign({}, point, { x: point.x * scaleX, y: point.y * scaleY });\n }\n\n canvas.addEventListener("pointerdown", (e) => {\n if (!signatureMode) return;\n isDrawing = true;\n const point = { type: "down", x: e.offsetX, y: e.offsetY, p: e.pressure, w: e.width, h: e.height, tiltX: e.tiltX, tiltY: e.tiltY, twist: e.twist, pointerType: e.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: scalePoint(point) });\n });\n\n canvas.addEventListener("pointermove", (e) => {\n if (!signatureMode || !isDrawing) return;\n const events = (typeof e.getCoalescedEvents === "function") ? e.getCoalescedEvents() : [e];\n for (const ce of events) {\n const point = { type: "move", x: ce.offsetX, y: ce.offsetY, p: ce.pressure, w: ce.width, h: ce.height, tiltX: ce.tiltX, tiltY: ce.tiltY, twist: ce.twist, pointerType: ce.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: scalePoint(point) });\n }\n });\n\n canvas.addEventListener("pointerup", (e) => {\n if (!signatureMode) return;\n isDrawing = false;\n const point = { type: "up", x: e.offsetX, y: e.offsetY, p: e.pressure, w: e.width, h: e.height, tiltX: e.tiltX, tiltY: e.tiltY, twist: e.twist, pointerType: e.pointerType };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: scalePoint(point) });\n });\n\n canvas.addEventListener("pointerleave", (e) => {\n if (!isDrawing) return;\n isDrawing = false;\n const point = { type: "up", x: e.offsetX, y: e.offsetY, p: 0 };\n drawStroke(point);\n sendToOpener({ type: "dtu:strokePoint", point: scalePoint(point) });\n });\n\n // --- Botón firmar ---\n signFab.addEventListener("click", () => {\n showSignature();\n sendToOpener({ type: "dtu:signButtonClicked" });\n });\n\n // --- Botones de firma (si están habilitados) ---\n const btnClear = document.getElementById("btn-clear");\n const btnCancel = document.getElementById("btn-cancel");\n const btnOk = document.getElementById("btn-ok");\n\n if (btnClear) btnClear.addEventListener("click", () => sendToOpener({ type: "dtu:clearClicked" }));\n if (btnCancel) btnCancel.addEventListener("click", () => sendToOpener({ type: "dtu:cancelClicked" }));\n if (btnOk) btnOk.addEventListener("click", () => sendToOpener({ type: "dtu:acceptClicked" }));\n\n function sendToOpener(msg) {\n if (window.opener) {\n window.opener.postMessage(msg, window.location.origin);\n }\n }\n})();\n<\/script>\n</html>`}const APP_PRIMARY_COLOR="#0057a2",APP_PRIMARY_COLOR_HOVER="#003d73",ERROR_COLOR="#f44336",ERROR_COLOR_HOVER="#d32f2f";function addPopupAnimationStyles(){if(!document.getElementById("popup-animation-styles")){const e=document.createElement("style");e.id="popup-animation-styles",e.textContent="\n @keyframes slideIn {\n from {\n transform: translateX(100%);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n }\n ",document.head.appendChild(e)}}function createOverlay(){const e=document.createElement("div");return e.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9999;\n backdrop-filter: blur(2px);\n ",e}function createPopupContainer(){addPopupAnimationStyles();const e=document.createElement("div");return e.style.cssText="\n position: fixed;\n top: 20px;\n right: 20px;\n background-color: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n z-index: 10000;\n max-width: 400px;\n animation: slideIn 0.3s ease-out;\n ",e}function createPopupTitle(e,t=!1){const n=document.createElement("h3");return n.textContent=e,n.style.cssText=`\n margin: 0 0 12px 0;\n font-size: 18px;\n font-weight: 600;\n color: ${t?ERROR_COLOR_HOVER:"#333"};\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n `,n}function createPopupMessage(e){const t=document.createElement("p");return t.textContent=e,t.style.cssText='\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ',t}function createPopupButton(e,t,n=!1){const i=document.createElement("button");i.textContent=e;const o=n?ERROR_COLOR:APP_PRIMARY_COLOR,r=n?ERROR_COLOR_HOVER:APP_PRIMARY_COLOR_HOVER;return i.style.cssText=`\n width: 100%;\n padding: 12px 24px;\n font-size: 16px;\n font-weight: 500;\n background-color: ${o};\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n `,i.addEventListener("mouseenter",(()=>{i.style.backgroundColor=r})),i.addEventListener("mouseleave",(()=>{i.style.backgroundColor=o})),i.addEventListener("click",t),i}function createPopup({title:e,message:t,buttonText:n,onButtonClick:i,isError:o=!1}){const r=createOverlay(),a=createPopupContainer(),s=createPopupTitle(e,o),l=createPopupMessage(t),c=createPopupButton(n,i,o);return a.appendChild(s),a.appendChild(l),a.appendChild(c),document.body.appendChild(r),document.body.appendChild(a),{overlay:r,container:a,button:c}}function removePopup(e){e.overlay&&e.overlay.parentNode&&e.overlay.parentNode.removeChild(e.overlay),e.container&&e.container.parentNode&&e.container.parentNode.removeChild(e.container)}function configureSalesforceDtuHtml(e,t,n){if(!e||e.closed)return;const i={type:"dtu:config",data:{signatureContainerWidth:parseInt(t.signatureContainerWidth)||400,signatureContainerHeight:parseInt(t.signatureContainerHeight)||250,displayCanvasSignatureButtons:t.displayCanvasSignatureButtons,signatureColorHex:t.signatureColorHex,signatureThickness:t.signatureThickness,language:t.language}};e.postMessage(JSON.stringify(i),"*"),n&&n()}class EdataliaDtu{constructor(e,t){this.cachedScreens=null,this.newWindow=null,this.callback=t,this.popups=[],this.signatureContainerHeight=e.signatureContainerHeight,this.signatureContainerWidth=e.signatureContainerWidth,this.displayCanvasSignatureButtonsInDTU=e.displayCanvasSignatureButtonsInDTU,this.displayFile=e.displayFile,this.pdfBlobUrl=null,this.icbcMode=e.icbcMode||!1,this.signatureColorHex=e.signatureColorHex||"#0000ff",this.signatureThickness=e.signatureThickness||5,this.language=e.language||"es",this.continueButton=null,this.messageHandler=null,this.salesforceDtuViewerUrl=e.salesforceDtuViewerUrl||null,this.onMainWindowUnload=()=>this.closeDtuScreen(),window.addEventListener("beforeunload",this.onMainWindowUnload),this.init()}async init(){console.log("Inicializando EdataliaDtu - Etapa 1: Permiso USB...");try{await requestUsbPermission(),console.log("Permiso USB concedido"),await this.tryLaunchOrShowButton()}catch(e){console.error("USB permission request failed:",e),this.showRetryButton("Error al solicitar permiso USB. ¿Reintentar?")}}async tryLaunchOrShowButton(){if("getScreenDetails"in window&&!this.cachedScreens)try{this.cachedScreens=await window.getScreenDetails(),this.cachedScreens.addEventListener("screenschange",(async e=>{console.log("screenschange",e),this.closeAllPopups(),await this.doLaunch()})),this.cachedScreens.addEventListener("currentscreenchange",(async e=>{console.log("currentscreenchange",e)})),console.log("Token válido - continuando automáticamente"),await this.doLaunch()}catch(e){"NotAllowedError"===e.name||"SecurityError"===e.name?(console.log("Token expirado - mostrando botón para continuar"),this.showContinueButton()):(console.warn("Error al obtener pantallas, continuando con fallback:",e),await this.doLaunch())}else await this.doLaunch()}showContinueButton(){const e=createPopup({title:"Configuración de Pantallas",message:"Para continuar con la configuración de múltiples pantallas, haz clic en el botón de abajo.",buttonText:"Continuar",onButtonClick:async()=>{if(console.log("Inicializando EdataliaDtu - Etapa 2: Permiso de pantallas..."),this.removeContinueButton(),"getScreenDetails"in window&&!this.cachedScreens)try{if(console.log("Solicitando permiso de getScreenDetails..."),navigator.permissions&&navigator.permissions.query)try{const e=await navigator.permissions.query({name:"window-management"});console.log("Estado del permiso window-management:",e.state)}catch(e){console.log("No se pudo verificar el estado del permiso:",e.message)}this.cachedScreens=await window.getScreenDetails(),this.cachedScreens.addEventListener("screenschange",(async e=>{console.log("screenschange",e),this.closeAllPopups(),await this.doLaunch()})),this.cachedScreens.addEventListener("currentscreenchange",(async e=>{console.log("currentscreenchange",e)})),console.log("Permiso de pantallas concedido con éxito")}catch(e){console.error("Error al solicitar permiso de pantallas:",{name:e.name,message:e.message,stack:e.stack}),console.warn("Continuando con fallback a window.screen")}await this.doLaunch()},isError:!1});this.overlay=e.overlay,this.popupContainer=e.container,this.continueButton=e.button}showRetryButton(e){const t=createPopup({title:"Error de Permiso",message:e,buttonText:"Reintentar",onButtonClick:async()=>{this.removeContinueButton(),await this.init()},isError:!0});this.overlay=t.overlay,this.popupContainer=t.container,this.continueButton=t.button}removeContinueButton(){removePopup({overlay:this.overlay,container:this.popupContainer}),this.overlay=null,this.popupContainer=null,this.continueButton=null}getScreensInfo=async()=>"getScreenDetails"in window?this.cachedScreens?this.cachedScreens.screens:(console.log("Usando window.screen como fallback"),[window.screen]):[window.screen];openPopupWindow=(e,t,n,i)=>{const o=[`left=${e}`,`top=${t}`,`width=${n}`,`height=${i}`,"menubar=no","toolbar=no","location=no","status=no","resizable=yes","popup=yes","scrollbars=no"].join(",");this.listenToDtuMessages();const r=parseInt(this.signatureContainerWidth)||400,a=parseInt(this.signatureContainerHeight)||250,s=getDtuViewerHtml({signatureContainerWidth:Math.floor(.5*n),signatureContainerHeight:Math.floor(.5*i),originalContainerWidth:r,originalContainerHeight:a,displayCanvasSignatureButtons:this.displayCanvasSignatureButtonsInDTU,signatureColorHex:this.signatureColorHex,signatureThickness:this.signatureThickness,language:this.language});return this.newWindow=this.salesforceDtuViewerUrl?this.openPopupWithUrl(this.salesforceDtuViewerUrl,o):this.openPopupWithHtml(s,o),this.newWindow?this.newWindow:(alert("Parece que estás bloqueando los popups, necesitamos que los actives para lanzar websign en la Wacom DTU!. Más info en https://goo.gle/allow-popups."),null)};openPopupWithUrl=(e,t)=>window.open(e,Math.random().toString(),t);openPopupWithHtml=(e,t)=>{const n=window.open("",Math.random().toString(),t);if(!n)return null;try{return n.document.open(),n.document.write(e),n.document.close(),n.onload=()=>this.sendPdfToPopup(),n}catch(e){return console.error("Error al escribir en el documento del popup:",e),n.close(),null}};onPopupClose=e=>(e.preventDefault(),this.closeAllPopups(),this.callback({type:"cancelClicked"}),e.returnValue="This string must be non-empty");closeAllPopups=()=>{this.popups.forEach((e=>{e.close()})),this.popups=[]};doLaunch=async()=>{const e=await this.getScreensInfo();let t=!1;this.popups=[];let n=null;this.icbcMode&&(2===e.length?(console.log(e),n=e.find((e=>!e.isPrimary))||e[1],console.log(`Modo ICBC: 2 monitores detectados, seleccionando monitor no primario: ${n.label}`)):e.length>2&&(n=e[e.length-1],console.log(`Modo ICBC: ${e.length} monitores detectados, seleccionando el último: ${n.label}`))),n?t=!0:e.forEach(((e,i)=>{const o=isCompatibleTabletScreen(e);console.log(`Buscando en el monitor ${i}. Nombre de monitor: ${e.label}. devicePixelRatio: ${e.devicePixelRatio}`),o&&!t&&(console.log(`DTU encontrada en el monitor ${i}. Nombre de monitor: ${e.label}`),n=e,t=!0)})),n&&setTimeout((()=>{const e=this.openPopupWindow(n.availLeft,n.availTop,n.availWidth,n.availHeight);e?(e.addEventListener("beforeunload",this.onPopupClose),this.popups.push(e)):alert("Parece que estás bloqueando los popups, necesitamos que los actives para lanzar websign en la DTU!. Más info en https://goo.gle/allow-popups.")}),0),t||(console.log("DTU NO ENCONTRADA!!"),this.callback({type:"no-device"}))};closeDtuScreen(){this.newWindow&&!this.newWindow.closed&&(this.newWindow.removeEventListener("beforeunload",this.onPopupClose),this.sendMessageToDTU({type:"dtu:close"}),this.newWindow.close()),this.pdfBlobUrl&&(URL.revokeObjectURL(this.pdfBlobUrl),this.pdfBlobUrl=null),this.onMainWindowUnload&&(window.removeEventListener("beforeunload",this.onMainWindowUnload),this.onMainWindowUnload=null),this.removeMessageListener()}listenToDtuMessages(){this.removeMessageListener(),this.messageHandler=e=>{let t=e.data;if("string"==typeof t)try{t=JSON.parse(t)}catch{return}if(t&&t.type)switch(t.type){case"dtu:ready":configureSalesforceDtuHtml(this.newWindow,{signatureContainerWidth:this.signatureContainerWidth,signatureContainerHeight:this.signatureContainerHeight,displayCanvasSignatureButtons:this.displayCanvasSignatureButtonsInDTU,signatureColorHex:this.signatureColorHex,signatureThickness:this.signatureThickness,language:this.language},(()=>this.sendPdfToPopup()));break;case"dtu:signButtonClicked":this.callback({type:"signButtonClicked"});break;case"dtu:acceptClicked":this.callback({type:"acceptClicked"});break;case"dtu:cancelClicked":this.callback({type:"cancelClicked"});break;case"dtu:clearClicked":this.callback({type:"clearClicked"});break;case"dtu:strokePoint":this.callback({type:"strokePoint",point:t.point})}},window.addEventListener("message",this.messageHandler)}async sendPdfToPopup(){if(this.newWindow&&this.displayFile)try{let e;if(this.displayFile instanceof File||this.displayFile instanceof Blob)e=this.displayFile;else{const t=await transformFileTo(this.displayFile,"base64"),n=atob(t),i=new Uint8Array(n.length);for(let e=0;e<n.length;e++)i[e]=n.charCodeAt(e);e=new Blob([i],{type:"application/pdf"})}this.pdfBlobUrl=URL.createObjectURL(e),this.sendMessageToDTU({type:"dtu:loadPdf",data:this.pdfBlobUrl})}catch(e){console.error("Error creando Blob URL del PDF:",e)}}removeMessageListener(){this.messageHandler&&(window.removeEventListener("message",this.messageHandler),this.messageHandler=null)}sendMessageToDTU(e){if(this.newWindow&&!this.newWindow.closed)try{const t=JSON.stringify(e);this.newWindow.postMessage(t,"*")}catch(e){console.error("Error en postMessage:",e.name,e.message)}}showSignatureCanvas(){this.sendMessageToDTU({type:"dtu:showSignatureCanvas"})}hideSignatureCanvas(){this.sendMessageToDTU({type:"dtu:hideSignatureCanvas"})}sendStrokePoint(e){this.sendMessageToDTU({type:"dtu:drawStroke",point:e})}clearSignatureCanvas(){this.sendMessageToDTU({type:"dtu:clearCanvas"})}showLoading(){this.sendMessageToDTU({type:"dtu:showLoading"})}hideLoading(){this.sendMessageToDTU({type:"dtu:hideLoading"})}}const AUTHENTICATION_URLS={DEV:"https://token-dev.azurewebsites.net",PRE:"https://token.ecosignature.biz",SANDBOX:"https://acceso.firmar.info",PRO:"https://acceso.firmar.online",DEFAULT:"https://acceso.firmar.info"};function getAuthenticationUrl(e){return AUTHENTICATION_URLS[e]||AUTHENTICATION_URLS.DEFAULT}const webSignConfig={bearerToken:"",debug:!0,requestPermissions:!1,mainContainerWidth:"100%",mainContainerHeight:"100%",signatureContainerWidth:"400px",signatureContainerHeight:"250px",signatureEnvironment:"SANDBOX",signatureServiceUrl:null,renderDefaultIndexPage:null,signatureType:"auto",requestLocation:!0,signatureColorHex:"#0000ff",autoDownload:!0,minPointsRequiredToSign:100,signatureThickness:5,mouseEBP:!1,viewPDF:!1,displayCanvasSignatureButtonsInDTU:!1,doPerformance:!1,requestedEncodingBits:16,loadSignedPdf:!1,widget:{type:"manual",width:null,height:null,x:0,y:0,page:0,customText:[{text:"Documento firmado digitalmente",fontSize:6},{text:"Fecha y hora: ##TIMESTAMP##",fontSize:4}],text:null,fieldName:null,gapX:0,gapY:0},properties:{reason:"Firma digital del documento ",author:"Edatalia Test",contact:" ",location:" "},options:{includeTimestamp:!1,includeOCSP:!1,validateCertificate:!1,pdfCertifiedSignature:!1},certificate:{},encCertKey:null,language:"es",signatureTimeLimit:540,edataliaBaseUrl:"/src",wacom:{enableScreenSaver:!0,blackAndWhiteScreenSaver:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteScreenSaver.png",colorScreenSaver:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorScreenSaver.png",enableEbp:!0,blackAndWhiteEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteEbp.ebp",colorEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorEbp.ebp",varEbp:"Titulo=Firma WebSign Edatalia Wacom|||Subtitulo=Librería uso digital|||Nombre=Edatalia|||AreaFirma=Firma a continuación|||LOPD=De conformidad con el RGPD y la LOPDGDD, sus datos personales y su firma serán tratados por [NOMBRE DE LA EMPRESA] con la finalidad de gestionar y formalizar el presente documento. La base legal es la ejecución de la relación contractual y el cumplimiento de obligaciones legales. Puede ejercer sus derechos de acceso, rectificación, supresión y demás derechos en [EMAIL O DIRECCIÓN]",enableInitialEbp:!1,blackAndWhiteInitialEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/blackAndWhiteInitialEbp.ebp",colorInitialEbp:"https://cdn.jsdelivr.net/npm/edatalia-websign@3.4.7/dist/default-ebp/colorInitialEbp.ebp",varInitialEbp:"Titulo=Título inicial|||Subtitulo=Subtítulo inicial|||Nombre=Edatalia|||TextoPrevio=Estoy de acuerdo con el documento a firmar"},enableBridge:!1,enforceBridge:!1,useMiddleware:!1,offlineMode:!1,offlineModeAutoFetch:!1,useFullMode:!1};function isEbpActive(e){const{wacom:t,signatureType:n,enableBridge:i,mouseEBP:o}=e,r=t.enableEbp&&"stu"===n,a=t.enableEbp&&"dtu"===n&&i;return r||a||o}function applyRatioToWidget(e,t,n=160){null==e.width&&null==e.height?(e.width=n,e.height=Math.round(n/t)):null==e.width?e.width=Math.round(e.height*t):e.height=Math.round(e.width/t)}function getWidgetWithDefaults(e){const t={...e.widget};if(null!=t.width&&null!=t.height)return t;if(isEbpActive(e))applyRatioToWidget(t,3,180);else{applyRatioToWidget(t,(parseFloat(e.signatureContainerWidth)||400)/(parseFloat(e.signatureContainerHeight)||250))}return t}async function applyImageRatioToWidget(e,t){if(null!=e.width&&null!=e.height)return;const n=t.startsWith("data:")?t:`data:image/jpeg;base64,${t}`,{width:i,height:o}=await getImageDimensions(n);i&&o&&applyRatioToWidget(e,i/o,160)}function validateWidgetCoordinates(e){const t="number"==typeof e.x&&e.x<0,n="number"==typeof e.y&&e.y<0;return t||n?{valid:!1,message:`Coordenadas del widget no pueden ser negativas (x=${e.x}, y=${e.y}).`}:{valid:!0}}class NativePdfViewer{constructor(e=null,t=null){this.context=e,this.currentiFrame=null,this.signatureButton=null,this.renderDefaultIndexPage=t||0}async init(e){this._removeExistingPdfContainer();const t=await this._createIframeOrRenderInPdfJs(e),n=this._createPdfContainer();this.signatureButton=this._createFloatingButton(),n.appendChild(t),n.appendChild(this.signatureButton);const i=this._getParentContainer();i?(ensureMinContainerSize(i,500,500),i.appendChild(n),this.currentiFrame=n,this._shouldUsePdfJs()&&document.getElementById("websign-pdf-container").style.removeProperty("height")):console.error("Parent container not found for PDF viewer.")}_removeExistingPdfContainer(){const e=getElement(null,"websign-pdf-container");e&&e.remove()}_shouldUsePdfJs(){const e=navigator.userAgent;return/Mobi|Android|iPhone|iPad|iPod/i.test(e)}async _createIframeOrRenderInPdfJs(e){return this._shouldUsePdfJs()?(await this._loadPdfJs(),await this._renderInPdfJs(e)):this._createIframe(e)}_createIframe(e){const t=document.createElement("iframe");switch(t.style.width="100%",t.style.height="100%",t.style.border="none",this._determinePdfDataType(e)){case"url":t.src=e;break;case"base64":const n=atob(e),i=new Array(n.length).fill(0).map(((e,t)=>n.charCodeAt(t))),o=new Uint8Array(i),r=new Blob([o],{type:"application/pdf"}),a=URL.createObjectURL(r);t.src=a+`#page=${this.renderDefaultIndexPage}&toolbar=0`}return t}async _loadPdfJs(){if(!window.pdfjsLib)return new Promise(((e,t)=>{const n=document.createElement("script");n.src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.4.120/pdf.min.js",n.onload=()=>{window.pdfjsLib.GlobalWorkerOptions.workerSrc="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.4.120/pdf.worker.min.js",e()},n.onerror=t,document.head.appendChild(n)}))}async _renderInPdfJs(e){const t=document.createElement("div");let n;switch(t.style.display="flex",t.style.flexDirection="column",t.style.overflowY="auto",t.style.maxHeight="100vh",t.style.padding="1rem",t.style.boxSizing="border-box",t.style.gap="1rem",this._determinePdfDataType(e)){case"url":n=e;break;case"base64":const t=atob(e),i=Array.from(t,(e=>e.charCodeAt(0)));n={data:new Uint8Array(i)};break;default:throw new Error("Formato de PDF desconocido")}const i=window.pdfjsLib.getDocument(n),o=await i.promise,r=o.numPages;for(let e=1;e<=r;e++){const n=await o.getPage(e),i=n.getViewport({scale:1.5}),r=document.createElement("canvas"),a=r.getContext("2d");r.width=i.width,r.height=i.height,r.style.width="100%",r.style.height="auto",r.style.border="1px solid #ccc",r.style.boxShadow="0 2px 4px rgba(0,0,0,0.1)",r.style.borderRadius="8px",await n.render({canvasContext:a,viewport:i}).promise,t.appendChild(r)}return t}_createPdfContainer(){const e=document.createElement("div");return e.id="websign-pdf-container",e.className="websign-pdf-container",e.style.position="relative",e.style.display="flex",e.style.justifyContent="center",e.style.alignItems="center",e.style.height="100%",e}_getParentContainer(){return getElement(null,"websign-container")}_createFloatingButton(){const e=document.createElement("div");e.style.position="absolute",e.style.bottom="32px",e.style.right="32px",e.style.backgroundColor="#0057a2",e.style.color="#fff",e.style.borderRadius="12px",e.style.cursor="pointer",e.style.padding="16px",e.style.boxShadow="2px 2px 3px #999",e.style.width="28px",e.style.height="28px",e.style.boxSizing="content-box",e.id="websign-fab-sign";const t=this._createSvgIcon();return e.appendChild(t),e}_createSvgIcon(){const e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("xmlns",e);const n=document.createElementNS(e,"title");n.textContent="Iniciar firma",t.appendChild(n);const i=document.createElementNS(e,"path");return i.setAttribute("fill","#FFFFFF"),i.setAttribute("d","M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"),t.appendChild(i),t}_determinePdfDataType(e){return/^(data:.*?;base64,)?[A-Za-z0-9+/=]+$/.test(e)&&!e.includes(" ")?"base64":/^(https?:\/\/|www\.)[^\s/$.?#].[^\s]*$/i.test(e)?"url":"unknown"}signatureFloatMode(){this.removeSignatureFloatModeOverlay(),this._createSignatureFloatModeOverlay();let e=getElement(null,"fieldset-container");if(e||(e=this._createSignatureContainer()),e){e.style.padding="6px",e.style.boxShadow="rgb(203 203 203) 1px 2px 9px 0px",e.style.zIndex="10000",e.style.position="absolute",e.style.background="white",e.style.display="block",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.borderRadius="8px",e.style.border="none";document.getElementById("websign-pdf-container").appendChild(e)}}_createSignatureContainer(){const e=document.createElement("fieldset");e.id="fieldset-container",e.className="fieldset-container",e.style.width="0",e.style.padding="5px",e.style.margin="5px auto",e.style.display="none";const t=document.createElement("div");return t.id="web-sign",t.className="web-sign",t.style.width="350px",t.style.height="200px",t.style.position="relative",e.appendChild(t),e}_removeSignatureContainer(){const e=getElement(null,"fieldset-container");e&&(e.style.display="none")}_createSignatureFloatModeOverlay(){let e=document.getElementById("signature_overlay");if(!e){e=document.createElement("div"),e.id="signature_overlay",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="rgba(0, 0, 0, 0.4)",e.style.zIndex="9999",e.style.display="block";document.getElementById("websign-pdf-container").appendChild(e)}}removeSignatureFloatModeOverlay(){let e=document.getElementById("signature_overlay");e&&e.remove()}}class DevicePermissions{constructor(e){this.signatureType=e.signatureType,this.config=e,this.popupRefs=null}async hasDevicePermissions(){try{let e=[],t=[];return isWebUsbSupported()&&(e=await navigator.usb.getDevices()),isWebHidSupported()&&(t=await navigator.hid.getDevices()),e.length>0||t.length>0}catch(e){return console.error("Error al verificar permisos de dispositivos:",e),!1}}async requestDevicePermissions(){try{if("dtu"===this.signatureType){return await requestUsbPermission()}if("stu"===this.signatureType){return await getFirstDeviceConnected()}if("auto"===this.signatureType){return await setTypeOfDeviceToUse(this.config)}}catch(e){return console.warn("El usuario canceló o no concedió permisos:",e),!1}}showPermissionButton(e){let t="Para utilizar la firma digital, necesitas conceder permisos de acceso al dispositivo.";"dtu"===this.signatureType?t="Para utilizar la tableta DTU, necesitas conceder permisos de acceso USB.":"stu"===this.signatureType&&(t="Para utilizar la tableta STU, necesitas conceder permisos de acceso HID."),this.popupRefs=createPopup({title:"Permisos de Dispositivo",message:t,buttonText:"Conceder Permisos",onButtonClick:async()=>{const t=await this.requestDevicePermissions();if(t){let n;this.removePermissionButton(),n="auto"===this.signatureType?t:this.signatureType,e(n)}else this.removePermissionButton(),this.showPermissionError(e)},isError:!1})}showPermissionError(e){this.popupRefs=createPopup({title:"Error de Permiso",message:"No se pudo obtener el permiso del dispositivo. Por favor, intenta de nuevo.",buttonText:"Reintentar",onButtonClick:async()=>{this.removePermissionButton(),this.showPermissionButton(e)},isError:!0})}removePermissionButton(){this.popupRefs&&(removePopup(this.popupRefs),this.popupRefs=null)}}function mountCertificateTable(e=[],t={}){let n=t.container||document.getElementById("web-sign");const i=t.title??"🔐 Selección de Certificado",o=t.onSelect??null,r=t.onSign??null,a=t.onCancel??null,s=t.signText??"FIRMAR",l=t.cancelText??"CANCELAR";if(!n){const e=document.createElement("div");e.id="web-sign",document.body.appendChild(e),n=e}const c=`certpanel-${Math.random().toString(36).slice(2,9)}`,u=document.getElementById("fieldset-container");u&&(u.style.display="block");const p=(e,t={},n=[])=>{const i=document.createElement(e);return Object.assign(i,t),n.forEach((e=>i.appendChild("string"==typeof e?document.createTextNode(e):e))),i},h=(e,t)=>e&&e.length>t?e.slice(0,t-1)+"…":e||"",d=e=>String(e).padStart(2,"0"),g=e=>{const t=new Date(e);return isNaN(t)?"":`${d(t.getDate())}/${d(t.getMonth()+1)}/${t.getFullYear()} ${d(t.getHours())}:${d(t.getMinutes())}`};let m=[...e],f=null,S=!1;const b=p("style",{textContent:`\n [data-certpanel="${c}"] .cp-card {\n width: 100%; max-width: 1100px; background: #fff; border-radius: 10px;\n box-shadow: 0 8px 24px rgba(0,0,0,.08); overflow: hidden;\n font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n border: 1px solid #e9ecef;\n }\n [data-certpanel="${c}"] .cp-header {\n padding: 14px 16px; border-bottom: 1px solid #e9ecef; background: #f8f9fa;\n display:flex; align-items:center; gap: 10px;\n }\n [data-certpanel="${c}"] .cp-title { margin: 0; font-size: 16px; font-weight: 600; }\n [data-certpanel="${c}"] .cp-body { padding: 16px; }\n [data-certpanel="${c}"] .help-text { color:#495057; font-size:13px; margin-bottom: 10px; }\n\n /* Tabla base */\n [data-certpanel="${c}"] table {\n width: 100%;\n border-collapse: separate; /* necesario para sticky header fiable */\n border-spacing: 0;\n min-width: 920px; /* ayuda con scroll horizontal si hay columnas largas */\n }\n [data-certpanel="${c}"] thead tr { background: #f8f9fa; border-bottom: 2px solid #dee2e6; }\n [data-certpanel="${c}"] th, [data-certpanel="${c}"] td {\n padding: 12px; text-align: left; border: 1px solid #dee2e6; font-size: 14px; vertical-align: top;\n }\n [data-certpanel="${c}"] tbody tr:hover { background: #f4f8ff; }\n\n /* Área scrollable con encabezado sticky */\n [data-certpanel="${c}"] .cp-tablewrap {\n position: relative;\n max-height: 360px; /* <-- ajusta la altura visible */\n overflow: auto; /* vertical y horizontal */\n border: 1px solid #dee2e6;\n border-radius: 8px;\n }\n [data-certpanel="${c}"] thead th {\n position: sticky;\n top: 0;\n background: #f8f9fa;\n z-index: 3; /* por encima del body */\n }\n\n /* Panel de info seleccionado */\n [data-certpanel="${c}"] .selected-info {\n display: none; margin-top: 15px; padding: 15px; background: #e8f4fd;\n border: 1px solid #bee5eb; border-radius: 6px;\n }\n\n [data-certpanel="${c}"] .cp-footer {\n padding: 12px 16px; border-top: 1px solid #e9ecef; display:flex; gap:8px; justify-content:flex-end; background:#fff;\n }\n [data-certpanel="${c}"] .btn {\n padding: 8px 12px; border-radius: 6px; border: 1px solid #dee2e6; cursor: pointer; font-weight: 600; background:#fff;\n }\n [data-certpanel="${c}"] .btn.primary { background: #0d6efd; border-color: #0d6efd; color: #fff; }\n [data-certpanel="${c}"] .btn.secondary { background: #fff; color: #495057; }\n [data-certpanel="${c}"] .btn:disabled { opacity: .6; cursor: not-allowed; }\n\n /* Overlay/Spinner sobre el área scroll */\n [data-certpanel="${c}"] .cp-overlay {\n position: absolute; inset: 0; display: none; align-items: center; justify-content: center;\n background: rgba(255,255,255,0.7); backdrop-filter: blur(1px); z-index: 4; /* por encima del thead sticky */\n }\n [data-certpanel="${c}"] .cp-spinner {\n width: 28px; height: 28px; border: 3px solid currentColor; border-top-color: transparent;\n border-radius: 50%; animation: certspin .8s linear infinite; margin-right: 10px;\n }\n [data-certpanel="${c}"] .cp-overlay .txt { font-weight: 600; color: #0d6efd; }\n @keyframes certspin { to { transform: rotate(360deg); } }\n `}),y=p("div");y.setAttribute("data-certpanel",c);const _=p("div",{className:"cp-card"}),v=p("div",{className:"cp-header"},[p("h3",{className:"cp-title",textContent:i})]),w=p("div",{className:"cp-body"},[p("div",{className:"help-text",textContent:"Selecciona un certificado de la lista. Solo se muestran certificados vigentes con clave privada."})]),k=p("table",{"aria-busy":"false"}),E=p("thead");E.innerHTML="\n <tr>\n <th>Seleccionar</th><th>Nombre (Subject)</th><th>Emisor (Issuer)</th>\n <th>Válido Desde</th><th>Válido Hasta</th><th>Número de Serie</th>\n <th>Fingerprint</th><th>Nombre Amigable</th>\n </tr>";const I=p("tbody");k.appendChild(E),k.appendChild(I);const T=p("div",{className:"cp-tablewrap"}),C=p("div",{className:"cp-overlay"},[p("div",{className:"cp-spinner","aria-hidden":"true"}),p("span",{className:"txt",textContent:"Procesando..."})]);T.appendChild(k),T.appendChild(C);const A=p("div",{className:"selected-info"},[p("strong",{textContent:"Certificado seleccionado:"}),p("div",{id:`${c}-details`,style:"margin-top:8px;"})]);w.appendChild(T),w.appendChild(A);const P=p("div",{className:"cp-footer"},[p("button",{className:"btn secondary",textContent:l,id:`${c}-cancel`}),p("button",{className:"btn primary",textContent:s,id:`${c}-sign`,disabled:!0})]);_.appendChild(v),_.appendChild(w),_.appendChild(P),y.appendChild(b),y.appendChild(_),n.appendChild(y);const j=P.querySelector(`#${c}-cancel`),R=P.querySelector(`#${c}-sign`);function N(){I.innerHTML="",m.forEach(((e,t)=>{const n=document.createElement("tr");n.innerHTML=`\n <td style="text-align:center;"><input type="radio" name="${c}-certificate" value="${t}" /></td>\n <td>${h(e.subject,50)}</td>\n <td>${h(e.issuer,40)}</td>\n <td>${g(e.validFrom)}</td>\n <td>${g(e.validTo)}</td>\n <td>${h(e.serialNumber,20)}</td>\n <td>${h(e.fingerprint,20)}</td>\n <td>${e.friendlyName||"Sin nombre"}</td>\n `,n.querySelector("input").addEventListener("change",(()=>function(e){f=e;const t=m[e];y.querySelector(`#${c}-details`).innerHTML=`\n <div><strong>Subject:</strong> ${t.subject}</div>\n <div><strong>Issuer:</strong> ${t.issuer}</div>\n <div><strong>Válido:</strong> ${g(t.validFrom)} — ${g(t.validTo)}</div>\n <div><strong>Serie:</strong> ${t.serialNumber}</div>\n <div><strong>Fingerprint:</strong> ${t.fingerprint}</div>\n <div><strong>Nombre amigable:</strong> ${t.friendlyName||"Sin nombre"}</div>\n `,A.style.display="block",S||(R.disabled=!1);o&&o(t,e)}(t))),I.appendChild(n)}))}function D(e){S=!!e,R.disabled=!0,j.disabled=e,k.setAttribute("aria-busy",e?"true":"false"),C.style.display=e?"flex":"none",y.querySelectorAll(`input[name="${c}-certificate"]`).forEach((t=>{t.disabled=e})),e||null==f||(R.disabled=!1)}return R.addEventListener("click",(()=>{S||null!=f&&r&&r(m[f],f,{setBusy:D})})),j.addEventListener("click",(()=>{S||"function"==typeof a&&a({selectedCertificate:null!=f?m[f]:null,selectedIndex:f})})),N(),{destroy:function(){y.remove();const e=document.getElementById("fieldset-container");e&&(e.style.display="none")},updateCertificates:function(e=[]){m=[...e],f=null,A.style.display="none",R.disabled=!0,N()},setBusy:D,get selectedIndex(){return f},get selectedCertificate(){return null!=f?m[f]:null},get element(){return y}}}function deepMerge(e,t){for(const n of Object.keys(t)){const i=t[n],o=e[n];i&&"object"==typeof i&&!Array.isArray(i)?(o&&"object"==typeof o&&!Array.isArray(o)||(e[n]={}),deepMerge(e[n],i)):e[n]=i}return e}class WebSignBridgeClient{static CANDIDATE_PORTS=[8080,9080,18080];constructor(e={}){this.options={serverUrl:"ws://localhost:8080",accessKey:"edatalia-websign-bridge-key-2025",autoConnect:!0,reconnectDelay:3e3,maxReconnectAttempts:5,debug:!1,autoDiscover:!1,candidatePorts:WebSignBridgeClient.CANDIDATE_PORTS,discoveryTimeout:500,connectionTimeout:1e4,messageTimeout:3e4,maxRetries:3,retryDelay:1e3,logLevel:"error",maxImageSize:52428800,compressionEnabled:!0,validateResponses:!0,performanceMonitoring:!1,...e},this.ws=null,this.connected=!1,this.connecting=!1,this.messageId=0,this.pendingMessages=new Map,this.eventHandlers=new Map,this.reconnectAttempts=0,this.reconnectTimer=null,this.deviceConnected=!1,this.deviceInfo=null,this.deviceType=null,this.discoveredBridge=null,this.metrics={messagessent:0,messagesReceived:0,errors:0,reconnections:0,averageResponseTime:0,lastConnectionTime:null,totalDataTransferred:0},this.availableDevices=[],this.deviceCache=new Map,this.lastDeviceRefresh=0,this.availableDevices=[],this.currentDevice=null,this.options.autoConnect&&this.connect()}static CACHE_KEY="websign-bridge-port";_probePort(e,t){return new Promise(((n,i)=>{const o=`ws://localhost:${e}?key=${this.options.accessKey}`;let r;try{r=new WebSocket(o)}catch(e){return void i(new Error("WebSocket creation failed"))}const a=setTimeout((()=>{r.close(),i(new Error("WebSocket timeout"))}),t);r.onopen=()=>{clearTimeout(a),this._log("info",`Bridge encontrado en ws://localhost:${e}`),n({port:e,protocol:"http",version:"unknown",ports:{http:e},socket:r})},r.onerror=()=>{clearTimeout(a),i(new Error(`WebSocket error on port ${e}`))}}))}async discoverBridge(e={}){const t=e.ports||this.options.candidatePorts,n=e.timeout||this.options.discoveryTimeout||1e3;let i=null;try{const e=localStorage.getItem(WebSignBridgeClient.CACHE_KEY);e&&(i=parseInt(e,10))}catch(e){}const o=[];i&&t.includes(i)&&o.push(i);for(const e of t)o.includes(e)||o.push(e);this._log("info",`Descubrimiento secuencial de bridge — puertos: [${o.join(", ")}]${i?` (cacheado: ${i})`:""}`);for(const e of o)try{const t=await this._probePort(e,n);try{localStorage.setItem(WebSignBridgeClient.CACHE_KEY,String(e))}catch(e){}return this.discoveredBridge=t,this.options.serverUrl=`ws://localhost:${t.port}`,this._log("info",`URL actualizada — ws://localhost:${t.port}`),t}catch(e){}if(i)try{localStorage.removeItem(WebSignBridgeClient.CACHE_KEY)}catch(e){}throw this._log("error","No se encontró ningún WebSign Bridge en los puertos candidatos"),new Error("BRIDGE_NOT_FOUND: No se encontró WebSign Bridge ejecutándose. Verifique que la aplicación esté iniciada.")}async connect(){if(!this.connected){if(this.connecting)return new Promise(((e,t)=>{const n=()=>{this.connected?e():this.connecting?setTimeout(n,100):t(new Error("Connection failed"))};n()}));this.connecting=!0;try{if(this.options.autoDiscover)try{const e=await this.discoverBridge();if(e.socket&&e.socket.readyState===WebSocket.OPEN)return this._log("info","Reutilizando conexión WebSocket del descubrimiento"),this.ws=e.socket,this._setupWebSocketHandlers(this.ws),this.connected=!0,this.connecting=!1,this._log("Connected to WebSign Bridge Server"),void this.emit("connected")}catch(e){throw this.connecting=!1,e}await this._attemptConnection(this.options.serverUrl)}catch(e){throw this.connecting=!1,e}}}_attemptConnection(e){return new Promise(((t,n)=>{try{const i=new URL(e);i.searchParams.set("key",this.options.accessKey),this._log(`Connecting to: ${i.toString()}`),this.ws=new WebSocket(i.toString());const o=setTimeout((()=>{n(new Error("Connection timeout"))}),1e4);this.ws.onopen=()=>{clearTimeout(o),this.connected=!0,this.connecting=!1,this.reconnectAttempts=0,this._log("Connected to WebSign Bridge Server"),this.emit("connected"),t()},this._setupWebSocketHandlers(this.ws,o,n)}catch(e){this.connecting=!1,n(e)}}))}_setupWebSocketHandlers(e,t=null,n=null){e.onmessage=e=>{try{const t=JSON.parse(e.data);this.handleMessage(t)}catch(e){this._log("Error parsing message:",e)}},e.onclose=e=>{t&&clearTimeout(t),this.connected=!1,this.connecting=!1,this.deviceConnected=!1,this._log(`Disconnected from server. Code: ${e.code}, Reason: ${e.reason}`),this.emit("disconnected",{code:e.code,reason:e.reason}),1e3!==e.code&&this.reconnectAttempts<this.options.maxReconnectAttempts&&this._scheduleReconnect()},e.onerror=e=>{t&&clearTimeout(t),this._log("WebSocket error:",e),this.connecting=!1,n&&n(e)}}_scheduleReconnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectAttempts++,this._log(`Scheduling reconnection attempt ${this.reconnectAttempts}/${this.options.maxReconnectAttempts} in ${this.options.reconnectDelay}ms`),this.reconnectTimer=setTimeout((()=>{this.connect()}),this.options.reconnectDelay)}disconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempts=this.options.maxReconnectAttempts,this.ws&&(this.ws.close(1e3,"Client disconnect"),this.ws=null,this.connected=!1,this.deviceConnected=!1)}sendMessage(e,t={},n=null){return new Promise((async(i,o)=>{if(!this.connected)return void o(new Error("No conectado al servidor. Use connect() primero."));const r=n||this.options.messageTimeout,a=Date.now();if(this.options.validateResponses&&t.imageData){const e=JSON.stringify(t).length;if(e>this.options.maxImageSize)return void o(new Error(`Message too large: ${e} bytes exceeds limit of ${this.options.maxImageSize} bytes`))}const s=++this.messageId,l={id:s,type:e,timestamp:Date.now(),...t};let c=0;const u=this.options.maxRetries,p=async()=>{try{const t=setTimeout((()=>{this.pendingMessages.delete(s);const t=Date.now()-a;this._warn(`Message timeout after ${t}ms for ${e} (attempt ${c+1}/${u+1})`),c<u?(c++,this._info(`Retrying message ${e} (attempt ${c+1}/${u+1})`),setTimeout(p,this.options.retryDelay)):o(new Error(`Timeout: No se recibió respuesta para ${e} después de ${u+1} intentos`))}),r);this.pendingMessages.set(s,{resolve:n=>{clearTimeout(t);const o=Date.now()-a;if(this.options.performanceMonitoring&&(this.metrics.messagesReceived++,this.metrics.averageResponseTime=(this.metrics.averageResponseTime+o)/2,n&&"object"==typeof n)){const e=JSON.stringify(n).length;this.metrics.totalDataTransferred+=e}this._debug(`Message ${e} completed in ${o}ms`),i(n)},reject:n=>{clearTimeout(t),this._error(`Message ${e} failed:`,n.message),c<u&&this._shouldRetry(n)?(c++,this._info(`Retrying message ${e} due to error (attempt ${c+1}/${u+1})`),setTimeout(p,this.options.retryDelay)):o(n)}}),this._debug(`Sending message: ${e} (attempt ${c+1}/${u+1})`,"debug"===this.options.logLevel?l:{id:s,type:e}),this.ws.send(JSON.stringify(l)),this.options.performanceMonitoring&&this.metrics.messagessent++}catch(t){this._error(`Error sending message ${e}:`,t),c<u?(c++,setTimeout(p,this.options.retryDelay)):o(t)}};await p()}))}_shouldRetry(e){const t=e.message.toLowerCase();return["timeout","network","connection","websocket"].some((e=>t.includes(e)))}handleMessage(e){if(this._log("Received message:",e),"deviceInfo"===e.type&&(this.deviceConnected=e.data?.connected||!1,this.deviceInfo=e.data,this.emit("deviceStatusChanged",e.data)),"deviceConnected"===e.type&&e.data?.deviceInfo&&(this.deviceConnected=e.data.success||!1,this.deviceInfo=e.data.deviceInfo,this.deviceType=e.data.deviceType,this.emit("deviceStatusChanged",e.data.deviceInfo)),e.id&&this.pendingMessages.has(e.id)){const{resolve:t,reject:n}=this.pendingMessages.get(e.id);if(this.pendingMessages.delete(e.id),"error"===e.type||e.data&&!1===e.data.success){const t=e.message||e.data?.error||e.data?.message||"Error desconocido";n(new Error(t))}else t(e.data)}else{const t=e.data||e;this.emit(e.type,t)}}on(e,t){if("function"!=typeof t)throw new Error("El handler debe ser una función");this.eventHandlers.has(e)||this.eventHandlers.set(e,[]),this.eventHandlers.get(e).push(t)}off(e,t){if(this.eventHandlers.has(e)){const n=this.eventHandlers.get(e),i=n.indexOf(t);i>-1&&n.splice(i,1)}}emit(e,t){this.eventHandlers.has(e)&&this.eventHandlers.get(e).forEach((n=>{try{n(t)}catch(t){console.error(`Error en manejador de evento '${e}':`,t)}}))}_log(e,...t){"string"==typeof e&&["debug","info","warn","error"].includes(e)||(t.unshift(e),e="info");const n={debug:0,info:1,warn:2,error:3},i=n[this.options.logLevel]||1;if((n[e]||1)<i)return;const o=(new Date).toISOString().substr(11,12),r=`[WebSignBridge] [${e.toUpperCase()}] [${o}]`;({debug:console.debug,info:console.info,warn:console.warn,error:console.error}[e]||console.log)(r,...t),this.options.performanceMonitoring&&(this.metrics.errors+="error"===e?1:0)}_debug(...e){this._log("debug",...e)}_info(...e){this._log("info",...e)}_warn(...e){this._log("warn",...e)}_error(...e){this._log("error",...e)}async _ensureValidState(e){if(!this.connected)throw new Error("NOT_CONNECTED: No conectado al servidor. Use connect() primero.");if(["writeImage","writeImageROM","writeImageArea","clearScreen","setInkingMode","startCapture","endCapture","getSerialNumber","setHandwritingDisplayArea","setHandwritingThicknessColor"].includes(e)){if(!this.deviceConnected)throw new Error("NO_DEVICE: No hay dispositivo conectado. Use connectDevice() primero.");const t=this.getDeviceInfo();if(console.log("🔧 DEBUG: Validando deviceInfo para operación:",e),console.log("🔧 DEBUG: this.deviceConnected:",this.deviceConnected),console.log("🔧 DEBUG: this.deviceInfo:",this.deviceInfo),console.log("🔧 DEBUG: deviceInfo obtenido:",t),!t)throw new Error("NO_DEVICE_INFO: Información del dispositivo no disponible");await this._validateDeviceCapabilities(e,t)}}async _validateDeviceCapabilities(e,t){const n=t.capability;if(!n)throw new Error("NO_DEVICE_CAPABILITIES: Capacidades del dispositivo no disponibles");switch(e){case"writeImageROM":break;case"setHandwritingThicknessColor":n.supportsColor||console.warn("DEVICE_LIMITED: El dispositivo puede no soportar color completamente");break;case"startCapture":case"endCapture":if(!n.tabletMaxX||!n.tabletMaxY)throw new Error("DEVICE_NO_COORDINATES: El dispositivo no proporciona coordenadas válidas")}}_handleNetworkError(e){if("string"==typeof e)return new Error(e);if(e.code)switch(e.code){case"ECONNREFUSED":return new Error("SERVER_UNAVAILABLE: Servidor WebSign Bridge no disponible. Verifique que esté ejecutándose en el puerto correcto.");case"ENOTFOUND":return new Error("DNS_ERROR: No se puede resolver la dirección del servidor. Verifique la URL.");case"ETIMEDOUT":return new Error("NETWORK_TIMEOUT: Timeout de red. Verifique su conexión a internet.");case"ECONNRESET":return new Error("CONNECTION_RESET: Conexión reiniciada por el servidor. Puede ser un problema de firewall.");case"EHOSTUNREACH":return new Error("HOST_UNREACHABLE: Servidor no alcanzable. Verifique la red.");default:return new Error(`NETWORK_ERROR: Error de red (${e.code}): ${e.message}`)}return e}_validateImageData(e,t="writeImage"){if(!e||"string"!=typeof e)throw new Error("INVALID_IMAGE_DATA: Datos de imagen inválidos. Debe ser una cadena base64.");try{atob(e)}catch(e){throw new Error("INVALID_BASE64: Datos base64 inválidos en la imagen.")}const n=3*e.length/4;if(n>10485760)throw new Error("IMAGE_TOO_LARGE: Imagen demasiado grande (máximo 10MB)");if(n<100)throw new Error("IMAGE_TOO_SMALL: Imagen demasiado pequeña (mínimo 100 bytes)")}async connectDevice(e=null,t=null){if(!this.connected)throw new Error("NOT_CONNECTED: Debe conectar al servidor primero");try{if(!e||!t){const n=await this.getDevices();if(!n||0===n.length)throw new Error("NO_DEVICES_FOUND: No se encontraron dispositivos de firma. Verifique que la tableta esté conectada por USB y que los drivers estén instalados.");const i=n[0];e=i.id,t=i.type,this._log("info",`Auto-conectando con dispositivo: ${e} (${t})`)}const n=await this.sendMessage("connectDevice",{deviceId:e,deviceType:t});if(n.success)return console.log("🔧 DEBUG: Resultado de connectDevice:",n),console.log("🔧 DEBUG: deviceInfo recibido:",n.deviceInfo),this.deviceConnected=!0,this.deviceInfo=n.deviceInfo,this.deviceType=t,n.deviceInfo&&n.deviceInfo.capability||console.warn("DEVICE_INFO_INCOMPLETE: Información del dispositivo incompleta"),n;{const e=n.message||n.error||"Error desconocido";throw e.includes("No se encontraron dispositivos")?new Error("NO_DEVICES_FOUND: No se encontraron dispositivos de firma. Verifique que la tableta esté conectada por USB y que los drivers estén instalados."):e.includes("ya conectado")?new Error("DEVICE_ALREADY_CONNECTED: Ya hay un dispositivo conectado"):e.includes("ocupado")?new Error("DEVICE_BUSY: El dispositivo está siendo usado por otra aplicación"):new Error(`DEVICE_CONNECTION_FAILED: ${e}`)}}catch(e){if(e.message.includes("Timeout"))throw new Error("DEVICE_TIMEOUT: Timeout conectando al dispositivo. Verifique que esté encendido y conectado.");throw e}}async disconnectDevice(){const e=await this.sendMessage("disconnect");return e.success&&(this.deviceConnected=!1,this.deviceInfo=null),e}async hardResetSignotec(){try{this._log("Iniciando hard reset de Signotec...");const e=await this.sendMessage("hardResetSignotec");return e.success?this._log("Hard reset de Signotec completado exitosamente"):this._log("Hard reset de Signotec falló: "+(e.error||"Error desconocido")),e}catch(e){throw this._error("Error en hard reset de Signotec:",e.message),e}}async getDevices(){try{return(await this.sendMessage("getDevices")).devices||[]}catch(e){throw this._error("Error obteniendo dispositivos:",e.message),e}}async getStatus(){return this.sendMessage("getStatus")}async writeImage(e){await this._ensureValidState("writeImage"),this._validateImageData(e,"writeImage");try{return await this.sendMessage("writeImage",{data:e})}catch(e){if(e.message.includes("desconectado"))throw new Error("DEVICE_DISCONNECTED: La tableta se ha desconectado durante la operación");throw this._handleNetworkError(e)}}async writeImageROM(e){await this._ensureValidState("writeImageROM"),this._validateImageData(e,"writeImageROM");try{return await this.sendMessage("writeImageRom",{data:e})}catch(e){if(e.message.includes("desconectado"))throw new Error("DEVICE_DISCONNECTED: La tableta se ha desconectado durante la operación");if(e.message.includes("not a function"))throw new Error("OPERATION_NOT_SUPPORTED: El dispositivo no soporta escritura ROM");throw this._handleNetworkError(e)}}async writeImageRom(e){return this.writeImageROM(e)}async writeImageArea(e,t,n,i,o){if("string"!=typeof e)throw new Error("imageData debe ser una cadena base64");return this.sendMessage("writeImageArea",{imageData:e,x:t,y:n,width:i,height:o})}async clearScreen(){return this.sendMessage("clearScreen")}async setInkingMode(e){if("boolean"!=typeof e)throw new Error("enabled debe ser un booleano");return this.sendMessage("setInkingMode",{enabled:e})}async startCapture(e){return this.sendMessage("startCapture",{sessionId:e})}async endCapture(){return this.sendMessage("endCapture")}async getSerialNumber(){return this.sendMessage("getSerialNumber")}async supportsRomImages(){try{return!0===(await this.sendMessage("supportsRomImages")).success}catch(e){return this._log("warn","Error verificando soporte ROM:",e.message),!1}}async setHandwritingDisplayArea(e,t,n,i){if([e,t,n,i].some((e=>"number"!=typeof e)))throw new Error("Todos los parámetros deben ser números");return this.sendMessage("setHandwritingDisplayArea",{x:e,y:t,width:n,height:i})}async setHandwritingThicknessColor(e,t){if("number"!=typeof e||"number"!=typeof t)throw new Error("penWidth y penColor deben ser números");return this.sendMessage("setHandwritingThicknessColor",{penWidth:e,penColor:t})}async signPDF(e,t){if(!t||"object"!=typeof t)throw new Error("INVALID_CONFIG: Configuración es requerida y debe ser un objeto");t.certificateFingerprint&&""!==t.certificateFingerprint.trim()?await this.validateCertificate(t.certificateFingerprint):console.log("Usando certificado embebido (fingerprint vacío)");const n=this._validateAndConvertPDF(e);this._validateWidgetConfig(t.widget);try{const e={...t,b64PDFContent:n},i=await this.sendMessage("signPDF",{config:e},6e4);if(!i.success){const e=i.error||"Error desconocido";throw e.includes("certificado")?new Error(`CERT_ERROR: ${e}`):e.includes("PDF")?new Error(`PDF_ERROR: ${e}`):e.includes("timestamp")?new Error(`TIMESTAMP_ERROR: ${e}`):new Error(`SIGNING_ERROR: ${e}`)}return i}catch(e){if(e.message.includes("Timeout"))throw new Error("SIGNING_TIMEOUT: La firma tardó demasiado tiempo. Verifique la conexión y el certificado.");throw e}}arrayBufferToBase64(e){let t="";const n=new Uint8Array(e),i=n.byteLength;for(let e=0;e<i;e+=8192){const i=n.subarray(e,e+8192);t+=String.fromCharCode.apply(null,i)}return btoa(t)}_validateAndConvertPDF(e){if(!e)throw new Error("PDF_DATA_REQUIRED: Datos PDF requeridos");let t,n;if("string"==typeof e)t=e,n=3*e.length/4;else if(e instanceof ArrayBuffer)n=e.byteLength,t=this.arrayBufferToBase64(e);else{if(!(e instanceof Uint8Array))throw new Error("INVALID_PDF_TYPE: pdfData debe ser ArrayBuffer, Uint8Array o string (base64)");n=e.length,t=btoa(String.fromCharCode(...e))}if(n>52428800)throw new Error("PDF_TOO_LARGE: PDF demasiado grande (máximo 50MB)");try{"string"==typeof e&&atob(t)}catch(e){throw new Error("INVALID_BASE64: Datos base64 inválidos")}return t}_validateWidgetConfig(e){if(!e||"object"!=typeof e)throw new Error("WIDGET_CONFIG_REQUIRED: Configuración del widget requerida");if(!e.type||!["fixed","float","field"].includes(e.type))throw new Error('INVALID_WIDGET_TYPE: Tipo de widget debe ser "fixed", "float" o "field"');if("fixed"===e.type){if("number"!=typeof e.x||"number"!=typeof e.y)throw new Error('FIXED_POSITION_REQUIRED: Posición X e Y requeridas para tipo "fixed"');if("number"!=typeof e.page||e.page<0)throw new Error("INVALID_PAGE: Número de página debe ser 0 (todas) o mayor a 0")}else if("float"===e.type){if(!e.text||"string"!=typeof e.text)throw new Error('SEARCH_TEXT_REQUIRED: Texto de búsqueda requerido para tipo "float"')}else if("field"===e.type&&void 0!==e.fieldName&&"string"!=typeof e.fieldName)throw new Error("INVALID_FIELD_NAME: fieldName debe ser una cadena")}async getAvailableCertificates(){try{const e=await this.sendMessage("getAvailableCertificates"),t="string"==typeof e?JSON.parse(e):e;let n;if(Array.isArray(t))n=t;else{if(!t||!Array.isArray(t.certificates))return console.warn("getAvailableCertificates: formato de respuesta inesperado:",t),[];n=t.certificates}return n.map((e=>({...e,isExpired:new Date(e.validTo)<new Date,isNotYetValid:new Date(e.validFrom)>new Date,daysUntilExpiry:Math.ceil((new Date(e.validTo)-new Date)/864e5)})))}catch(e){if(e.message.includes("No se encontraron certificados"))return[];throw new Error(`CERT_LOAD_ERROR: Error cargando certificados: ${e.message}`)}}async validateCertificate(e){if(!e)throw new Error("CERT_FINGERPRINT_REQUIRED: Huella del certificado requerida");const t=(await this.getAvailableCertificates()).find((t=>t.fingerprint===e));if(!t)throw new Error("CERT_NOT_FOUND: Certificado no encontrado en el sistema");if(t.isExpired)throw new Error(`CERT_EXPIRED: Certificado expirado el ${t.validTo}`);if(t.isNotYetValid)throw new Error(`CERT_NOT_VALID_YET: Certificado válido desde ${t.validFrom}`);return t.daysUntilExpiry<=30&&console.warn(`CERT_EXPIRING_SOON: El certificado expira en ${t.daysUntilExpiry} días`),t}isConnected(){return this.connected}isDeviceConnected(){return this.deviceConnected}getDeviceInfo(){return this.deviceInfo}canvasToBase64(e,t="image/png"){if(!(e instanceof HTMLCanvasElement))throw new Error("canvas debe ser un HTMLCanvasElement");return e.toDataURL(t).split(",")[1]}fileToBase64(e){return new Promise(((t,n)=>{if(!(e instanceof File))return void n(new Error("file debe ser un objeto File"));const i=new FileReader;i.onload=()=>{const e=i.result.split(",")[1];t(e)},i.onerror=()=>n(i.error),i.readAsDataURL(e)}))}getDeviceInfo(){return this.deviceInfo}async getVersion(){try{return await this.sendMessage("getVersion")}catch(e){if(e.message.includes("Unknown message type")||e.message.includes("getVersion"))return{name:"WebSign Bridge Server",version:"1.1.0",apiVersion:"1.1",buildNumber:"unknown",buildDate:(new Date).toISOString(),platform:"unknown",arch:"unknown",nodeVersion:"unknown",features:["wacom-tablet-support","pdf-signing"]};throw e}}async getAvailableDevices(){try{const e=await this.sendMessage("getDevices");this.availableDevices=e.devices||[];const t=this.availableDevices.filter((e=>"wacom"===e.type)),n=this.availableDevices.filter((e=>"dtu"===e.type)),i=this.availableDevices.filter((e=>"signotec"===e.type));return this._log(`Dispositivos encontrados: ${t.length} Wacom, ${n.length} DTU, ${i.length} Signotec`),this.availableDevices}catch(e){throw this._log("Error obteniendo dispositivos:",e),new Error(`DEVICE_LIST_ERROR: Error obteniendo dispositivos: ${e.message}`)}}async connectToDevice(e,t){if(!e||!t)throw new Error("DEVICE_PARAMS_REQUIRED: deviceId y deviceType son requeridos");if(!["wacom","dtu","signotec"].includes(t))throw new Error('INVALID_DEVICE_TYPE: deviceType debe ser "wacom", "dtu" o "signotec"');try{const n=await this.sendMessage("connectDevice",{deviceId:e,deviceType:t});return n.success&&(this.deviceConnected=!0,this.deviceType=t,this.currentDevice={id:e,type:t},this._log(`Conectado exitosamente a dispositivo ${t}: ${e}`),this.emit("deviceConnected",{deviceId:e,deviceType:t})),n}catch(e){throw this._log("Error conectando dispositivo:",e),new Error(`DEVICE_CONNECTION_ERROR: Error conectando dispositivo: ${e.message}`)}}async getDeviceStatus(){try{const e=await this.sendMessage("getDeviceStatus");return e.status&&(this.deviceConnected=e.status.connected,this.deviceType=e.status.deviceType,this.currentDevice=e.status.device),e.status}catch(e){throw this._log("Error obteniendo estado del dispositivo:",e),new Error(`DEVICE_STATUS_ERROR: Error obteniendo estado: ${e.message}`)}}async startSignatureCapture(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("startCapture");return e.success&&(this._log(`Captura iniciada en dispositivo ${e.deviceType||this.deviceType}`),this.emit("captureStarted",{deviceType:e.deviceType||this.deviceType})),e}catch(e){throw this._log("Error iniciando captura:",e),new Error(`CAPTURE_START_ERROR: Error iniciando captura: ${e.message}`)}}async stopSignatureCapture(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("stopCapture");return e.success&&(this._log(`Captura detenida en dispositivo ${e.deviceType||this.deviceType}`),this.emit("captureStopped",{deviceType:e.deviceType||this.deviceType})),e}catch(e){throw this._log("Error deteniendo captura:",e),new Error(`CAPTURE_STOP_ERROR: Error deteniendo captura: ${e.message}`)}}async getSignatureData(e={}){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");const{validateImage:t=!0,compressResponse:n=this.options.compressionEnabled,maxSize:i=this.options.maxImageSize}=e;try{this._info("Obteniendo datos de firma...");const e=Date.now(),o=await this.sendMessage("getSignature",{compress:n,maxSize:i});if(this._debug("Signature response received:",{hasResult:!!o,hasSignature:!(!o||!o.signature),deviceType:o?.deviceType,responseSize:o?JSON.stringify(o).length:0}),o&&o.signature){const n=o.signature,i=o.deviceType||this.deviceType;if(t&&n.imageData){const e=this._validateImageData(n.imageData);e.valid||(this._warn("Image validation failed:",e.error),n._validationWarning=e.error)}n.imageData&&n.size>1048576&&(this._info(`Processing large image: ${(n.size/1024/1024).toFixed(2)}MB`),n._metadata={originalSize:n.size,format:n.format,dimensions:`${n.width}x${n.height}`,dpi:n.dpi,processingTime:Date.now()-e});const r=Date.now()-e;return this._info(`Firma obtenida de dispositivo ${i} en ${r}ms`),this.emit("signatureObtained",{signature:n,deviceType:i,processingTime:r}),n}return this._warn("No signature data in response",{hasResult:!!o,resultKeys:o?Object.keys(o):[]}),null}catch(e){throw this._error("Error obteniendo firma:",e),new Error(`SIGNATURE_GET_ERROR: Error obteniendo firma: ${e.message}`)}}_validateImageData(e){try{if(!e)return{valid:!1,error:"No image data provided"};if("Buffer"===e.type&&Array.isArray(e.data)){if(0===e.data.length)return{valid:!1,error:"Empty image buffer"};if(e.data.some((e=>"number"!=typeof e||e<0||e>255)))return{valid:!1,error:"Invalid byte values in image data"};if(e.data.length>=2){if("BM"===String.fromCharCode(e.data[0],e.data[1]))return{valid:!0}}return{valid:!0}}if("string"==typeof e)try{return atob(e),{valid:!0}}catch{return{valid:!1,error:"Invalid base64 image data"}}return{valid:!1,error:"Unknown image data format"}}catch(e){return{valid:!1,error:`Validation error: ${e.message}`}}}async clearDeviceDisplay(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("clearDisplay");return e.success&&(this._log(`Pantalla limpiada en dispositivo ${this.deviceType}`),this.emit("displayCleared",{deviceType:this.deviceType})),e}catch(e){throw this._log("Error limpiando pantalla:",e),new Error(`CLEAR_DISPLAY_ERROR: Error limpiando pantalla: ${e.message}`)}}getCurrentDeviceInfo(){return{connected:this.deviceConnected,type:this.deviceType,device:this.currentDevice,availableDevices:this.availableDevices}}isSignotecDevice(){return"signotec"===this.deviceType}async loadPDF(e,t="document.pdf"){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");if("signotec"!==this.deviceType&&"dtu"!==this.deviceType)throw new Error("UNSUPPORTED_DEVICE: La carga de PDF solo está disponible para dispositivos Signotec");if(!e||"string"!=typeof e)throw new Error("INVALID_PDF_DATA: Los datos del PDF deben ser una cadena base64 válida");try{const n=await this.sendMessage("customCommand",{command:"setDisplayPDF",params:{pdfData:e,fileName:t}});return n.success&&this._log(`PDF cargado exitosamente: ${t}`),n}catch(e){throw this._log(`Error al cargar PDF: ${e.message}`,"error"),e}}async loadEBP(e,t=""){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");if(!e||"string"!=typeof e)throw new Error("INVALID_EBP_DATA: Los datos del EBP deben ser una cadena base64 válida");try{const n=await this.sendMessage("customCommand",{command:"loadEBP",params:{ebpData:e,variables:t}});return n.success&&this._log("EBP cargado exitosamente"),n}catch(e){throw this._log(`Error al cargar EBP: ${e.message}`,"error"),e}}async confirmSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("confirmSignature");return e.success&&this._log("Firma confirmada exitosamente"),e}catch(e){throw this._log(`Error al confirmar firma: ${e.message}`,"error"),e}}async cancelSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("cancelSignature");return e.success&&this._log("Firma cancelada exitosamente"),e}catch(e){throw this._log(`Error al cancelar firma: ${e.message}`,"error"),e}}async restartSignature(){if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{const e=await this.sendMessage("restartSignature");return e.success&&this._log("Firma reiniciada exitosamente"),e}catch(e){throw this._log(`Error al reiniciar firma: ${e.message}`,"error"),e}}async getSignature(e={}){return this.getSignatureData(e)}async clearDisplay(){return this.clearDeviceDisplay()}isWacomDevice(){return"wacom"===this.deviceType}async captureSignatureComplete(e={}){const{timeout:t=3e4,clearFirst:n=!0}=e;if(!this.deviceConnected)throw new Error("DEVICE_NOT_CONNECTED: No hay dispositivo conectado");try{return n&&await this.clearDeviceDisplay(),await this.startSignatureCapture(),new Promise(((e,n)=>{const i=setTimeout((()=>{n(new Error("SIGNATURE_TIMEOUT: Timeout esperando firma del usuario"))}),t),o=async()=>{try{clearTimeout(i);const t=await this.getSignatureData();this.off("captureStopped",o),e(t)}catch(e){this.off("captureStopped",o),n(e)}};this.on("captureStopped",o)}))}catch(e){throw this._log("Error en captura completa:",e),new Error(`COMPLETE_CAPTURE_ERROR: Error en captura completa: ${e.message}`)}}getPerformanceMetrics(){return{...this.metrics,uptime:this.metrics.lastConnectionTime?Date.now()-this.metrics.lastConnectionTime:0,pendingMessages:this.pendingMessages.size,cacheSize:this.deviceCache.size,memoryUsage:this._estimateMemoryUsage()}}resetMetrics(){this.metrics={messagessent:0,messagesReceived:0,errors:0,reconnections:0,averageResponseTime:0,lastConnectionTime:Date.now(),totalDataTransferred:0}}_estimateMemoryUsage(){let e=0;return this.pendingMessages.forEach(((t,n)=>{e+=JSON.stringify(n).length})),this.deviceCache.forEach(((t,n)=>{e+=JSON.stringify(n).length+JSON.stringify(t).length})),this.deviceInfo&&(e+=JSON.stringify(this.deviceInfo).length),e}clearCache(){this.deviceCache.clear(),this.availableDevices=[],this.lastDeviceRefresh=0,this._info("Cache cleared")}static checkBrowserCompatibility(){const e={websocket:"undefined"!=typeof WebSocket,json:"undefined"!=typeof JSON,promises:"undefined"!=typeof Promise,arraybuffer:"undefined"!=typeof ArrayBuffer,uint8array:"undefined"!=typeof Uint8Array,blob:"undefined"!=typeof Blob,url:"undefined"!=typeof URL},t=Object.values(e).every(Boolean);return{compatible:t,features:e,recommendations:t?[]:["Este navegador no soporta todas las características necesarias","Se recomienda usar Chrome 60+, Firefox 55+, Safari 11+, o Edge 79+"]}}getSystemInfo(){return{version:"2.0.0",compatibility:WebSignBridgeClient.checkBrowserCompatibility(),connection:{connected:this.connected,serverUrl:this.options.serverUrl,reconnectAttempts:this.reconnectAttempts,lastConnectionTime:this.metrics.lastConnectionTime},device:{connected:this.deviceConnected,type:this.deviceType,info:this.deviceInfo},performance:this.getPerformanceMetrics(),configuration:{logLevel:this.options.logLevel,maxRetries:this.options.maxRetries,messageTimeout:this.options.messageTimeout,performanceMonitoring:this.options.performanceMonitoring}}}async sendCustomCommand(e,t={}){if(!this.connected)throw new Error("CLIENT_NOT_CONNECTED: Cliente no conectado al servidor");try{this._debug(`Enviando comando personalizado: ${e}`,t);const n=await this.sendMessage("customCommand",{command:e,params:t});return this._debug(`Comando personalizado ${e} ejecutado exitosamente`,n),n}catch(t){throw this._error(`Error ejecutando comando personalizado ${e}:`,t),new Error(`CUSTOM_COMMAND_ERROR: Error ejecutando comando ${e}: ${t.message}`)}}static async discover(e={}){const t=e.ports||WebSignBridgeClient.CANDIDATE_PORTS,n=e.timeout||500;try{return await Promise.any(t.map((e=>(async e=>{try{const t=new AbortController,i=setTimeout((()=>t.abort()),n),o=await fetch(`http://localhost:${e}/websign/identify`,{signal:t.signal,mode:"cors"});if(clearTimeout(i),o.ok){const t=await o.json();if("websign-bridge"===t.service)return{port:e,protocol:"http",version:t.version,ports:t.ports,timestamp:t.timestamp}}}catch(e){}throw new Error(`No bridge en puerto ${e}`)})(e))))}catch(e){throw new Error("BRIDGE_NOT_FOUND: No se encontró WebSign Bridge ejecutándose")}}static createWithAutoDiscover(e={}){return new WebSignBridgeClient({...e,autoDiscover:!0,autoConnect:!1!==e.autoConnect})}}"undefined"!=typeof window&&(window.WebSignBridgeClient=WebSignBridgeClient),"undefined"!=typeof module&&module.exports&&(module.exports=WebSignBridgeClient);let webSignBridgeInstance=null;async function getWebSignBridge(){if(webSignBridgeInstance||(webSignBridgeInstance=new WebSignBridgeClient({debug:!0,autoDiscover:!0,autoConnect:!1})),webSignBridgeInstance.isConnected())return webSignBridgeInstance;try{return await Promise.race([webSignBridgeInstance.connect(),new Promise(((e,t)=>setTimeout((()=>t(new Error("Bridge discovery timeout"))),3e3)))]),webSignBridgeInstance}catch(e){console.warn("WebSign Bridge no encontrado:",e.message);try{webSignBridgeInstance.disconnect()}catch{}return webSignBridgeInstance=null,null}}async function removeWebSignBridge(){if(webSignBridgeInstance){if(webSignBridgeInstance.isConnected())try{webSignBridgeInstance.disconnect()}catch{}webSignBridgeInstance=null}}const offlineCallbacks=new Map;let listenerConfigured=!1;async function registerOfflineServiceWorker(e){if("serviceWorker"in navigator)try{const t=await navigator.serviceWorker.getRegistration("/");if(!e)return void(t&&(await t.unregister(),console.log("[WebSign] Service Worker desregistrado (modo offline deshabilitado)")));if(t)console.log("[WebSign] Service Worker ya registrado, reutilizando");else{if(!(await fetch("/offline-sw.js")).ok)throw new Error("No se pudo cargar el Service Worker");await navigator.serviceWorker.register("/offline-sw.js",{scope:"/"}),console.log("[WebSign] Service Worker registrado correctamente para modo offline")}listenerConfigured||(setupServiceWorkerListener(),listenerConfigured=!0)}catch(e){console.warn("[WebSign] Service Worker no disponible (requiere HTTPS válido):",e.message)}else console.warn("[WebSign] Service Worker no soportado en este navegador")}function setupServiceWorkerListener(){navigator.serviceWorker.addEventListener("message",(e=>{"SIGNATURE_COMPLETED"===e.data.type?handleSignatureCompleted(e.data):"SIGNATURES_COMPLETED_MULTIPLE"===e.data.type&&handleMultipleSignaturesCompleted(e.data)}))}async function handleSignatureCompleted(e){console.log("[WebSign] Firma completada desde cola offline:",e.requestId);const{downloadBlob:t}=await Promise.resolve().then((function(){return documentUtils})),n=new Blob([e.data],{type:e.contentType}),i=offlineCallbacks.get(e.requestId);i?(i.autoDownload&&(t(n,`signed-${Date.now()}.pdf`),console.log("[WebSign] PDF firmado descargado automáticamente")),i.callback&&(console.log("[WebSign] Ejecutando callback para petición offline"),i.callback({type:"signed",data:n})),offlineCallbacks.delete(e.requestId)):(console.log("[WebSign] No hay callback registrado, descargando directamente"),t(n,`signed-${e.timestamp}.pdf`),console.log("[WebSign] PDF firmado descargado"));const o=new CustomEvent("websign:offline-signature-completed",{detail:{requestId:e.requestId,blob:n,timestamp:e.timestamp,url:e.url}});window.dispatchEvent(o),console.log("[WebSign] Evento websign:offline-signature-completed disparado")}async function handleMultipleSignaturesCompleted(e){console.log("[WebSign] Múltiples firmas completadas desde cola offline:",e.count);const{downloadBlob:t}=await Promise.resolve().then((function(){return documentUtils})),n=e.signedPdfs.map((e=>new Blob([e.data],{type:e.contentType}))),i=e.requestIds[0],o=offlineCallbacks.get(i);o?(o.autoDownload&&(n.forEach(((e,n)=>{t(e,`signed-${Date.now()}-${n+1}.pdf`)})),console.log(`[WebSign] ${n.length} PDFs firmados descargados automáticamente`)),o.callback&&(console.log("[WebSign] Ejecutando callback signed-multiple para peticiones offline"),o.callback({type:"signed-multiple",data:n})),e.requestIds.forEach((e=>offlineCallbacks.delete(e)))):(console.log("[WebSign] No hay callback registrado, descargando directamente"),n.forEach(((e,n)=>{t(e,`signed-${Date.now()}-${n+1}.pdf`)})),console.log(`[WebSign] ${n.length} PDFs firmados descargados`));const r=new CustomEvent("websign:offline-signatures-completed-multiple",{detail:{requestIds:e.requestIds,blobs:n,count:e.count}});window.dispatchEvent(r),console.log("[WebSign] Evento websign:offline-signatures-completed-multiple disparado")}function registerOfflineCallback(e,t,n){offlineCallbacks.set(e,{callback:t,autoDownload:n,timestamp:Date.now()}),console.log("[WebSign] Callback registrado para petición offline:",e)}function unregisterOfflineCallback(e){offlineCallbacks.delete(e)}function getOfflineCallbacks(){return offlineCallbacks}async function unregisterOfflineServiceWorker(){if(!("serviceWorker"in navigator))return!1;try{const e=await navigator.serviceWorker.getRegistration("/");if(e){const t=await e.unregister();return t&&console.log("[WebSign] Service Worker desregistrado manualmente"),t}return!1}catch(e){return console.error("[WebSign] Error al desregistrar Service Worker:",e),!1}}var offlineServiceWorkerManager=Object.freeze({__proto__:null,registerOfflineServiceWorker:registerOfflineServiceWorker,registerOfflineCallback:registerOfflineCallback,unregisterOfflineCallback:unregisterOfflineCallback,getOfflineCallbacks:getOfflineCallbacks,unregisterOfflineServiceWorker:unregisterOfflineServiceWorker});let modalPromise=null;async function checkPendingRequestsOnStartup(e,t,n=!1){try{if(modalPromise)return console.log("[WebSign] Modal en proceso, esperando..."),void await modalPromise;if(!navigator.onLine)return void console.log("[WebSign] Sin conexión, no se muestra modal de peticiones pendientes");await navigator.serviceWorker.ready;const i=await getPendingRequests();if(i.length>0){if(console.log(`[WebSign] ${i.length} peticiones pendientes encontradas`),e&&(i.forEach((n=>{registerOfflineCallback(n.id,e,t)})),console.log("[WebSign] Callbacks registrados para peticiones pendientes")),n){if(navigator.serviceWorker.controller){const e=i.map((e=>e.id));navigator.serviceWorker.controller.postMessage({type:"PROCESS_SELECTED",requestIds:e})}return}modalPromise=showPendingRequestsModal(i),await modalPromise,modalPromise=null}}catch(e){console.error("[WebSign] Error al comprobar peticiones pendientes:",e),modalPromise=null}}async function getPendingRequests(){return navigator.serviceWorker.controller?new Promise((e=>{const t=new MessageChannel;t.port1.onmessage=t=>{e(t.data.requests||[])},navigator.serviceWorker.controller.postMessage({type:"GET_PENDING_REQUESTS"},[t.port2])})):(console.warn("[WebSign] Service Worker controller no disponible"),[])}async function showPendingRequestsModal(e){return new Promise((t=>{const n=new Set(e.map((e=>e.id))),i=document.createElement("div");i.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n ";const o=document.createElement("div");o.style.cssText="\n background: white;\n padding: 24px;\n border-radius: 8px;\n max-width: 600px;\n width: 90%;\n max-height: 80vh;\n overflow-y: auto;\n position: relative;\n ";const r=navigator.onLine;o.innerHTML=`\n <button id="close-modal" style="position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer; color: #666; line-height: 1;">×</button>\n <h2 style="margin: 0 0 8px 0; color: #0057A2;">Peticiones de Firma Pendientes</h2>\n <p style="margin: 0 0 16px 0; color: #666;">\n Tienes ${e.length} petición${e.length>1?"es":""} de firma guardada${e.length>1?"s":""} mientras estabas sin conexión\n </p>\n <div id="requests-list" style="margin: 16px 0;">\n ${e.map((e=>`\n <div class="request-item" data-request-id="${e.id}" style="padding: 12px; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 8px; display: flex; align-items: center; gap: 12px; background: #f9f9f9;">\n <input type="checkbox" class="request-checkbox" data-request-id="${e.id}" checked style="width: 18px; height: 18px; cursor: pointer; accent-color: #0057A2;">\n <div style="flex: 1;">\n <div style="font-weight: 600; color: #333;">${new Date(e.timestamp).toLocaleString()}</div>\n <div style="font-size: 12px; color: #666; word-break: break-all;">${e.url}</div>\n </div>\n <button class="delete-request" data-request-id="${e.id}" style="background: #d22828; color: white; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;">Eliminar</button>\n </div>\n `)).join("")}\n </div>\n ${r?"":'<div style="padding: 12px; background: #fff3cd; border-radius: 4px; margin-bottom: 16px; color: #856404;">⚠️ Sin conexión. Conéctate para procesar las peticiones.</div>'}\n <div style="display: flex; gap: 12px; justify-content: flex-end; margin-top: 16px;">\n <button id="process-selected" style="padding: 10px 20px; border: none; background: #0057A2; color: white; border-radius: 4px; cursor: pointer; font-weight: 600;" ${r?"":"disabled"}>\n Procesar Seleccionadas\n </button>\n </div>\n `,i.appendChild(o),document.body.appendChild(i);const a=()=>{const e=o.querySelector("#process-selected"),t=o.querySelector('[style*="fff3cd"]');navigator.onLine?(e.disabled=!1,t&&(t.style.display="none")):(e.disabled=!0,t&&(t.style.display="block"))};window.addEventListener("online",a),window.addEventListener("offline",a),o.querySelector("#close-modal").addEventListener("click",(()=>{i.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a),t()})),o.querySelectorAll(".request-checkbox").forEach((e=>{e.addEventListener("change",(e=>{const t=e.target.dataset.requestId;e.target.checked?n.add(t):n.delete(t)}))})),o.querySelectorAll(".delete-request").forEach((e=>{e.addEventListener("click",(async e=>{const r=e.target.dataset.requestId;await cancelRequest(r);o.querySelector(`.request-item[data-request-id="${r}"]`).remove(),n.delete(r),0===o.querySelectorAll(".request-item").length&&(i.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a),t())}))})),o.querySelector("#process-selected").addEventListener("click",(async()=>{if(0===n.size)return void alert("No hay peticiones seleccionadas");i.remove(),window.removeEventListener("online",a),window.removeEventListener("offline",a);const{unregisterOfflineCallback:o}=await Promise.resolve().then((function(){return offlineServiceWorkerManager}));e.forEach((e=>{n.has(e.id)||o(e.id)})),navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({type:"PROCESS_SELECTED",requestIds:Array.from(n)}),t()}))}))}async function cancelRequest(e){if(navigator.serviceWorker.controller)return new Promise((t=>{const n=new MessageChannel;n.port1.onmessage=()=>{console.log(`[WebSign] Petición ${e} cancelada`),t()},navigator.serviceWorker.controller.postMessage({type:"CANCEL_REQUEST",requestId:e},[n.port2])}));console.warn("[WebSign] Service Worker controller no disponible")}class FullModeManager{static resolveSignatureType(e){e.useFullMode&&"dtu"===e.signatureType&&(e.signatureType="display")}constructor(e,t){this.webSignConfig=e,this.callbacks=t,this.edataliaPdfJs=null,this.EdataliaPdfJs=null}async initialize(e){const{default:t}=await Promise.resolve().then((function(){return edataliaPdf}));this.EdataliaPdfJs=t,this.edataliaPdfJs=new t(e,this.webSignConfig,this.callbacks.onActivateMouseCanvas,this.callbacks.onSign,this.callbacks.onReset,this.callbacks.onCancel)}reset(){this.edataliaPdfJs?.reset()}async getPdfBase64WithFormData(){let e=await window.PDFViewerApplication.pdfDocument.getData();const t=window.PDFViewerApplication.pdfDocument?.annotationStorage?.serializable;t&&(e=await saveIncrementalWithPdfLib(t,window.PDFViewerApplication));return transformFileTo(new File([e],"form-updated.pdf",{type:"application/pdf"}),"base64")}disableViewerDownload(){window.PDFViewerApplication?.downloadManager&&(window.PDFViewerApplication.downloadManager.downloadData=()=>{},window.PDFViewerApplication.downloadManager.download=()=>{})}async reloadSignedPdf(e){this.reset();const t=await e.arrayBuffer();await window.PDFViewerApplication.open({data:t})}isActive(){return null!==this.edataliaPdfJs}}class WebSign{constructor(e,t={},n,i=null){return this.webSignConfig=deepMerge(webSignConfig,t),e?(this.devicePermissions=new DevicePermissions(this.webSignConfig),this.VERSION="3.5.7",console.log("App Version WC:",this.VERSION),this.context=i,this.getWebSignContainer()||!0===this.webSignConfig.viewPDF?(this.shouldInitPdfViewer=this.webSignConfig.viewPDF,this.parseInputFiles(e),this.callback=n,this.loadingSpinner=new LoadingSpinner(this.context),void this.startApp()):(handleDebugMessage("web-sign div id not found in document","error",this.webSignConfig.debug),void n({type:"error",error:"web-sign div id not found in document"}))):(handleDebugMessage("Empty File","error",this.webSignConfig.debug),void n({type:"error",error:"Empty file"}))}parseInputFiles(e){Array.isArray(e)?(this.files=e,this.displayFile=(e.length,e[0])):(this.files=[e],this.displayFile=e)}isMultipleDocument(){return this.files.length>1}async startApp(){if(this.webSignConfig.requestLocation&&(this.locationPromise=requestLocation()),await registerOfflineServiceWorker(this.webSignConfig.offlineMode),this.webSignConfig.offlineMode&&await checkPendingRequestsOnStartup(this.callback,this.webSignConfig.autoDownload,this.webSignConfig.offlineModeAutoFetch),this.webSignConfig.enableBridge){if(this.webSignBridge=await getWebSignBridge(),!this.webSignBridge&&(this.callback({type:"error",error:"bridge not running"}),this.webSignConfig.enforceBridge))return}else removeWebSignBridge();if(this.isMultipleDocument()&&this.shouldInitPdfViewer){this.loadingSpinner.show();try{const e=await joinFilesIntoOneToDisplay(this.files);this.displayFile=e}catch(e){handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}this.loadingSpinner.hide()}if(this.webSignBridge&&"certificate"===this.webSignConfig.signatureType)return void this.initWithCert();await this.devicePermissions.hasDevicePermissions()||!this.webSignConfig.requestPermissions||"display"===this.webSignConfig.signatureType?("auto"===this.webSignConfig.signatureType&&await this.verifyTypeOfDevice(),this.init()):this.devicePermissions.showPermissionButton((async e=>{this.webSignConfig={...this.webSignConfig,signatureType:e},this.init()}))}async verifyTypeOfDevice(){const e=await setTypeOfDeviceToUse(this.webSignConfig);this.webSignConfig={...this.webSignConfig,signatureType:e}}getWebSignContainer(){return getElement(this.context,"web-sign")}async init(){FullModeManager.resolveSignatureType(this.webSignConfig);let e="";e="certificate"===this.webSignConfig.signatureType?"display":this.webSignConfig.signatureType,this.webSignConfig.useFullMode?createWebSignContainers():createWebSignContainers(this.webSignConfig.mainContainerWidth,this.webSignConfig.mainContainerHeight,this.webSignConfig.signatureContainerWidth,this.webSignConfig.signatureContainerHeight,e,this.context),!this.shouldInitPdfViewer&&!this.webSignConfig.useFullMode||this.webSignBridge||(this.webSignConfig.useFullMode?await this.initializeFullMode():await this.initializePdfViewer()),"dtu"!==this.webSignConfig.signatureType||this.webSignBridge||this.webSignConfig.useFullMode||this.initDTU(this.displayFile),this.webSignConfig.viewPDF||this.webSignConfig.useFullMode||this.startSignature()}async initWithCert(){let e;createWebSignContainers(this.webSignConfig.mainContainerWidth,this.webSignConfig.mainContainerHeight,this.webSignConfig.signatureContainerWidth,this.webSignConfig.signatureContainerHeight,this.webSignConfig.signatureType,this.context),this.loadingSpinner.show(),handleDebugMessage("Obteniendo certificados","info",this.webSignConfig.debug);try{e=await this.webSignBridge.getAvailableCertificates()}catch(e){return this.loadingSpinner.hide(),handleDebugMessage(`Error al obtener certificados: ${e?.message||e}`,"error",this.webSignConfig.debug),void this.callback({type:"error",error:"Signing with cert error or canceled"})}if(this.loadingSpinner.hide(),handleDebugMessage("Certificados cargados","success",this.webSignConfig.debug),Array.isArray(e)&&0!==e.length)if(e&&1===e.length){this.loadingSpinner.show();try{handleDebugMessage("Firmando con: "+(e[0].issuer||"N/D"),"success",this.webSignConfig.debug),await this.signWithCert(e[0])}catch(e){handleDebugMessage(`Error firmando: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"})}finally{this.loadingSpinner.hide()}}else{const t=mountCertificateTable(e,{onSelect:(e,t)=>{handleDebugMessage("Certificado seleccionado: "+(e.issuer||"N/D"),"info",this.webSignConfig.debug)},onSign:async(e,n,i)=>{i?.setBusy?.(!0),this.loadingSpinner.show(),handleDebugMessage("Firmando con: "+(e.issuer||"N/D"),"success",this.webSignConfig.debug);try{await this.signWithCert(e),t.destroy()}catch(e){handleDebugMessage(`Error firmando: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"})}finally{this.loadingSpinner.hide(),i?.setBusy?.(!1)}},onCancel:(e,n)=>{handleDebugMessage("Firma cancelada.","error",this.webSignConfig.debug),t.destroy(),this.callback({type:"cancel"})}})}else{handleDebugMessage("No hay certificados disponibles. Intentando otro tipo de firma.","info",this.webSignConfig.debug);const e=()=>{handleDebugMessage("No hay ningún dispositivo disponible. Cancelando firma.","error",this.webSignConfig.debug),this.callback?.({type:"cancel"})},t=e=>{const t=e?.[0];if(!t)return null;switch(t.type){case"dtu":return"dtu";case"wacom":case"signotec":return"stu";default:return null}};try{const n=t(await this.webSignBridge.getAvailableDevices());if(!n)return void e();this.webSignConfig.signatureType=n,await this.startApp()}catch{e()}}}async signWithCert(e){try{const t=await transformFileTo(this.displayFile,"base64"),n={...this.webSignConfig.widget},i={b64PDFContent:t,properties:this.webSignConfig.properties,options:this.webSignConfig.options,timestampProvider:this.webSignConfig.timestampProvider,ocspProvider:this.webSignConfig.ocspProvider,certificateFingerprint:e.fingerprint,deviceId:"",authenticationKey:this.webSignConfig.bearerToken,aarBaseUrl:getAuthenticationUrl(this.webSignConfig.signatureEnvironment),widget:n};n.b64Image||(n.b64Image="/9j/4AAQSkZJRgABAQAAAQABAAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjAtYzAwMCA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAwOjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjAyMSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkRGQTkzMTc0RDk1MTExRURCMDEwOUE2RjhGOTM4MDg2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkRGQTkzMTc1RDk1MTExRURCMDEwOUE2RjhGOTM4MDg2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REZBOTMxNzJEOTUxMTFFREIwMTA5QTZGOEY5MzgwODYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REZBOTMxNzNEOTUxMTFFREIwMTA5QTZGOEY5MzgwODYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wgARCACoAWQDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAYHAwQFAgH/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAQQFAgMG/9oADAMBAAIQAxAAAAG5QAAAAAAAAAAAAAAAAAAAAAAAEY492hP1ca/tUs9V0r4mTDP2QAAAAAAAAAAAAAAAAAEUldbXqGGS93d78uFtdNUtxOIzzhbHzE30I7t0NKVChvAAAHEynWAAAAAAAIeTA550HF7QAAAqq1am1si1vZk6w5XXHuGYJhr/ADWKQmV9CRuOefvY6tpKSQjaZIrXMjPJ6vuIyNWBFjq49FiuHrEbsalpUWE42ZPTVrkRYyupsbNcTWOk65XVjRvdfXyJyK8xosdXffJKE+aosuvtfGs98hOfodSK7E90ceJbULsL1p93S3YhhfWR20a26JOKo6PWJTWEx0yYfRNV2pVlporKfV1agicsr87Eo5nQKxtGsbOFUWlWpZWUTXU2ry0URX3yJWdSsLPqwtCA2DVhN+4J4vA3M6JME8GOdTBsY/j128HHEh5jnU7kCtWr7b0sX7BZ1x8T6jlySr5ITRBZWRzpIWWpyYnsnKs6v7AKttKopGTioutrlnc7qcpMXntRTBHaic3qcuDXhWA49uVtZJV1nVnvlgVZZtaloVbaVVFqoLoGrYNdWqegmOQ+0oXq5Ml6FObXrXtSHeI7Phv2ZC5pVuBnbOLR6Y1doGlujDmDz6DFq74efQA1vWcNfYGnuB59B51dwPPoPHsc/f8Ao8+gAA+cTuO/KA7czXKGPIUNMEgAAAAAAAAAADCjM8eww5gaxssP0yhIAAAAAAAAAAAGpG5Hyfer0PWls89aGXR2/XywbOPdidT772Ing9Txu9c6e9y+1x3xepw+l3z5w9TmROruZMfXG5z+pxue+8zq9nMI6AAAAAAAAAAAa2yRq7QAkAB49kfPokAAAAAAAAAAAAAAAAAAAAAAAAAAD//EACwQAAEEAgEDAwIHAQEAAAAAAAQBAgMFAAYSEBETFBUjICQWISIwQFBgNXD/2gAIAQEAAQUC/wDCTLkeFzr6VcdcmOxbI12MNLatZY+Z39NsZToBqypkKjbRipjakFMaAG3LgGFo7FVrmL3Y00d0/wDSbS7uaC3gH1vX8QAAO7S7JXurwf1/sXJqgh1JLzAf3622lLsssCmhiVJ7bCH67xfJctTs3qco7GFFTGy11e2FP2dyf2Hp4/FV/VtU0nrmJxb9UzuEOnN5E5aB+uEqgmgC/WvzX3U8yIVncmxJr4Bxn9LS4HBd7vbzIttcw5UW0Vh0traADG3FvPiWN6mXJZJkkbeEZM8Q0MuwkSye432Lc2sLaY9bAe2s5ApjC5CbT34zKguUwexNgBh99Pnd7jfY68sIMryPVB3T/HVaczsLl5ZrXIM9ZB5HtjYTsTnS+43y57tcRpSWa2PRy9m0vyXHS0smjYGLPYTFFxBs19FVuHToMHrYaGE9KxE/FM8iQwa+P7hY9LL59pzaZnzngixCD5tT+NTq7OFRlZ8+09C+9rsUUbImZub/AMq9njA2p/Gp1dnGnzbV8lgxOLNvJVGUwTAg8vH8KnT2dg8PdwC1dvewy1t8q6x5GdmQwqvd1G3iBm2ScayktAga52yiZNdHFN16rcHmyycKfUo+Nb0rvn2rA/udr6bk/wCGqZ462ReLNRTmdkzuEWoN5mdNnXzXKfkm5P7QVMfirMsPn2rLT7nZ+m1v41Wss4U+XzuNVqbfk2AiV0lTU8elo/xgJgTeAmbj39JSBhvrGwwt67d/zddTtTZZHQgw6k3nYZq353GKqNS/MjPPYnFls/x1mms+3y2XtWaYnwZPLHBFFMlhsmbcvOwjbxZlX8+0YP8Aq27ptNhEQtZH4q7Npd2rtUb9qQw9JvXERYMcMQ7YX9goG85elwJ60Gts56rPxGF2dso2AEeqEvxXl1tPdIEPLfyzqHWSNzTG/b5Is1NdO2Ufj2s7txo0MV/ltC4iup7Va1tdeRGlkRpNBWGS0xUuyRdoQj7WatYxdqza4ZYzmbNHxe/jDp6eQzLpk1fdfiUfgpFpc5ehwhtanFubDAs1bR2LQ8HMGI6eNnPZH/rqGc7DrJHHInt4ORjDx9ZRBZXRRRxJiIidJI2SNjDEjdnZO/SSCGRY4oo+k0MMyQijQrnZO+KiKiCjIuI1E6Oa1zWghtcmKiL9B9G2R5ARQyjWJcOMvXcSZ5CZtegXl/UlVYk+SUcyKLS9nMa1jf8ADyyMijY5HNxJGOf0fNEyWWRkTObPJ/JLc5gwzyhKYyZ0Uh86jjTSHjuSUokhD50BnnLgiWQyEuKcwlxU85dRMr/URyllZWTSEgSGOZAbO+F7ZyyJnEpFli0zwyGJFNA07vHOYQMDI+YP+MZEswkw5coXpyZTbGF80KrPNawwGwugAeyCwhllxg5Lzg4JIQ3hzNC8MrzYRToxBY0GCGglIqfTlSmAwOgjeDL6Vw5c5EgD5B4vVvxBD/bYm8Iv5JEEU7IB4YG/sOaj2p+Sf6L/xAAvEQABAwIEBAQFBQAAAAAAAAABAgMRAAQFEiExICJAQRATMFEUcZGx8AZQYYHR/9oACAEDAQE/AeodxO2bMFVLx23TsDVtjTLy8h0PSYk4UW5irfDWA2MyZNJs2E7IH0rE7TzLzIwO2tHE3H3g1aiY3PR4vqhKPc+DrqGk5lmBS1uYkuE8rf3/AN+VW1s3bIyNjgn1J8b/AJrhpNXN03bJzLpLDt+rzbjRHt+fesNdVc3oJ2TMD29IcJo8DnPiCf4pTTfxBcuJ+mlXVwj4Va0GdK/TzfMtfEOMeJ4L23dDgfZ3pGMFByvIrEsRYdY8trvWBtFFvmPc9K4yh0QsTQwe1CpigI0HQExUj1nQrNI9qlZCiP6oEk6TFAOZZNJCie8UEL776U1mmTSSuPnFEORPesq9Sn80pUxpNJ219UgHegI2/Yf/xAAsEQABAwIEBQEJAAAAAAAAAAABAgMRAAQFEiFAEyIxQVEwEBQyUGFxkbHw/9oACAECAQE/Adw3h9wsSE0MJe7xT+HONJzddphrYcuBNP4i+pZgwKNw6eqjVm/lt8zhr3RLaCp3Txs8I0WpfgexCFLOVNBKLNPNqr9U66p1WZWzsOW2eXVvbrfVlTS3W7McNnVXmrxsM28dztG+XDlHyaDy+AG2Y/OtMMq46UqFYur4U7SyuWuEWHulLwkKGZlU1ZWLrbudztWJuZno8bVtxbZlJijiVwRE7KPWaIiD5qEykUQANYmiW80CiUx9aKk9umtOZYgUoIB+00CiY7VmRoFf2tJjvFK66eqDFEz1+Q//xABBEAACAQIDBQMHCgUDBQAAAAABAgMAEQQSURATITFBIlJhIzJCYnGRsQUUIDBAcoGhwdEzNFBjoyRg4TVTcIOS/9oACAEBAAY/Av8AwSUjBmYacq7ECD2m9cN2vsFcZ/cKv84f8Tet1NbP0Ov9HESGzSfCt677uPpqa4vKfxr+ET7Wrhh0/GjPEoQrzt1oMOYoNqK3Ifjr0/osaaJUK6IPoEd4gVv8V2Ix01rJCPJjX0qE8oyi91X6nfKoY5gtjSYiRAha/AfYHw26QIubtX02PiHUsF6DrTSLE0eVrcfqGX2LQH0BLiOSG4HjQRQcvoqKEkvGTTT6qBNWJrDJ/bH04IY5GXs8bHU0BoPpu+i3qeU9347DhzIY7kG4FblXL9rMT9R7Zv1+h2uL9FrU/ktGJTmmt2jt3fGSXujpWaDA9n7hNZpsEMv3CKKZd3KBfLrsyW3kvdHT21eDBi3ghNdrAX/9ZqKPE4fcMvTj1pU0FqaaZsqCsmDwl/bxNfyX+I1mn+T7KOZIIppTFu7NbneljjwjzXW9x0pcS0BDLbyfsr/px/Omllg3PasBW8mP3VHM0RhMGLewsa/kv8RoHE/J+Uam61HiMmTOL2rEN6lqmfV7flsiyxCQvfrUcjDKWUEii7sFUcSTWTBYfP4t1/CrjBf4jRMnydwHM5SKkvDu8luuwmkPiW27qKzS/ktF2Y2v2nNfNcEOPpPU0p6nZLOfQW9SYzE+Uynr1ba254JnflpTytyRb1LisSM4XtG/VjtROgZF2RYGPpbh6xpYolAsOJ12Ed9wKjPfJbZJJozn9Nu4v5NTl/Ac6CRqFUcgNmGi9rVAmkYojvuBUZ7xLbIIfV+JoLoKiwinzu01KMo3hF3bx2Yg+pb31NJ3pLbJn0Q0Tomww4U+2T9qEs91i/Nq4AKqiiT1oHvEnZl77gUsUhfeXJay12IZW91GPBYJ1J9LnTTz/wAZ+FtBUvrWWi9uLudsj9A7H3cNjOeIV2Pu24ePViaw6f2xTNoKnmPd+J2O/dW9Tznu/HbDDooHvNWqBNWJrDppGNiJ0DqPdsSLoGVf125e84FResS357JvHhU7+AFLhIMx4XfLQmxQ49E/fZM3q22RL6o2Q/frDynDRF2XiStdmKMexdqj+4Kw/sPx2Z5T2j5q9TU8x7vxOydjo3x2XJsBUawcVTsg60FHQViG/tmp5NXt+WzEkf8AbNYg+sNhllcKi8yajlUHKXFr6DZBF6nxNKugtskk6BnOw36SN8Nq4eE5hGbs3S9YdNIxsUayCpX1e1GTDvCVPosK/wBTgZB4p2qyxydrQ8DQXvNSJqbbXhHn819tHC4mBsoPLkRX8Ob3V2cPKfdST5Cmb0TTpGLuvaUa182nidgp4W5jwrdYDCMXOvH8qfH/ACk+9nykgHktYiTVgNjSZLoSbesprs4eW/jarSD5thPj+9YLBwiyrl/Hjf8ATZNCnnMvCnglhLDNe3Ig0uHWF1LA8SakiPpqRUkM8RIPnD9RVocNIzdM1LN8okxwDzY+VTBAAsQNgOnIbI8YAclhx0IobzDNm62bhRk0W9Tzer8TsGNVeyzZgeniK44eXNpwrdwJ83w/Vv8AmsHhIebG7Hq3KgB02Nl5oc1NHKCY248OleSmU+HXZnyLm1tUMegJqLw4/QtIiuPEV/Jwf/ArsQRr7F25pcPE51K1aONUHgNnAW2ZZEVhoRWZMNCp8EGy9hfbeSJGPitdiNF9g2WliR/vC9XigjQ+C7L2GyxFxVxBED93ZwAGzKwDDQ1mGFhB+4NnED6BkwrhCfRPKvKxMB3hyrszEjRuNdrDgt4NRlk5mmxBHC1h/Sr7vI2qcK8nKjDx4VfESXHdWgqiwHIf7IMkjBVHMmgw5HjsZA6ll84X5bUiZwHfzRrReRgqjmTW6zDPa+Xrb7VI6FQVW/aFxUb5onuqZFynmx68fGsOiAEyyZTfSxppFXM3JV1JqAyTQvvJVQqI7c/xqZcO8cUcTZLsuYsetCUqkkhxG6XLwzcbVd900srhIkF7L7T1rDRSSxSiZiCBHa1hfWphFuo1SQpnYXvbwrDteNDPIqNw9b/isHDiFilZnY3y8rCnlhkihhViq3TMWt1qKeQAM4vwrGTxxx50mES8PO5Dj76w6oATLKFN9KmjgEaLHJl3jceg6VjsQIVJRhGpHNjYfvUaYiaJlllRSqx+Ot6x0rRrbDqouObeFK88sIHpIqcvxvTYxJIooeJQFLkgdTxqGaQAM6Bjb7PLCpyl0K3qNCsKyROrABjlNqgxE7RgR5vJr0v8aXdlc6SK4zcjasMkrR+Tu5jj45eFgSfxqaOMwiOSUvvD5wv4VgoiyncPnfxPH96hkhyl4pM1m5GosViHjsisAi9L0Yyy70ljfpcmsHHFuy+HKsQ3JuFQ4h8gCRkWB9I2o4NHhRO1aTmxv4VHGxHk0AJ9lI6WztPv7NyPavUGImeMLHfya+zWnzkFnkZzbxNSqGTeNiN8NOfKoJZ2jVY3zbtePTWsYhdQ08mdTpa1vhRWeKFFtzVyf0r5jngjUJkzi5LftSp3Rb7VkmjV152NZYYkjHqj6kqwBB5g1Yf7j//EACwQAQABAwEHAwQDAQEAAAAAAAERACExQRBRYXGBkaGxwfAg0eHxMEBQYHD/2gAIAQEAAT8h/wDCbXQGcDrXmnPsoz1L60fCnIPSo6XoPNOUZY7H5f46mkopoM0RmG5NHp2D2rM8yUT4KfWoALQEAmMU4sJI1L2g1cKdjUd0/wCLuwn7rXx0R9G8n332o5zKFZ5txUFRaYYbuVPNSud+E/wyb8iQX/VPAu5tAx/QnfawphQbIsAb5LEUJwsWM/wMVpF2K4UEfRAIyFrya0TFL7powTMaPz/i4v70PzTIZJOt/rPpOHLwVdeYCfrFCw3YUufBHmp9thEBdJhq+qpJF39fwNfX0z6EqUxby/it6eOoYZzix9ttrIcr+TpRFMWE8ujLIypu9PSp4mQbx2OX3JmiG9aV2Pr96ufwnGsXNFqZZvUTYPsKIiG6+lIYXS9OhQt8PlrTEuEuV1Cq1XBjWtdjFOyLX6K/d/ZUkIXVuQXvUpt7ZDwpeFo9goC7M+GtHgOwBN3pJ9lLMXq8UMx1t71YfGOR+WzRgExgI+9DlGRxJR/j0AKaR+k08go0o+etXlilDBUMnGSTGZ+2zhSTQX7y7y7ZbeP3OPCv0TEikIA21p92nBVIl2XgJAb3TzReQx3j3l5UW2NggQaKZ5g+hVzRwCTAOQUAEBAbIZ1J0u7E8fMw9j3okhgLve7I7b+Tn2r4ozHts37OybWcdKcaTnRX/gEBssjM+kVbmLnnFfCzv7VJBfz2yMXSdYKhLAFNqDH1DB39KGcWhXVpyNmhcr0verQaDkB99kfZR4ribvoUoErBXY8vjvTgsgPhahIc7BYCkvJUtfEkt7bEMuU5Z+1LDIrfO/lUyG+MPegSfFijiWCh4MEJT1t7XG/mtFbyU8Cx77Y5nsZsaIC9EG2MTkTkfmtOITuTQqYRp80POT22cXDsKjhc81O1gaIAAIDFX7yPQ/NfIxE7IZ/sZOy5r9DF3vt+M7PtU6/NbE8G4O5Km3DuP1V+qgC7uKEBub6fGlYriJ5Le+xZmIm2CWYHPajyJTFWvDqFBBbY00zN5ooGqPdsf7qeWkKXL+cntsGuBtlyYEqtikQeGrXJwocEAK0zQDmkVBGwHp+WxMwPToDVI+HYdpJoBMPHKGfbZDt4EnGgDcFsb++wTZfdxdFtkp0DLcKIH9HYgLiPZojVeAfmo3RY73rRDq8KCX3SaIPcZ0L0pmT8qACDZLkAjuIVJ+Yj5uNEovE3dH70eyXFHvWA/XVL1McRvg0qYIk48RDWGLhvHR7tWzFKmx84UepuvIn32SLvpWLzO8os17qB3mgxEkpCff6KACVRqpJd7sXfbTvS8eKcTMjexDSVWADgmsJHcSop8GFkxvCr+rggPEtOmWRuemnNvWmLpEAPfYoMits7WrVdhC9VHo6eM0VmffJskDk35EJ570XQ+JDvNM3Pvrnq5FDNLU5GHwocCEGyLKmiahn1pVEbslRRJu9HY7OjHW71JMyJz/TUQiRL6H0cN2E1dm5VcOVpt4Spa1wLoZSSXo2CHA2c7BorixkDsXn4yNvGxxNeE3NkKSbmnEDxmwNAlyxsZCTIlcZ8BphIrxeGxks5CSuJHSSgBAQUsKkxJtbkOKvyEfT7qkQLidxUGE+Eq174QFKCbowG4qTg63v/AMlBIakrl8hiuh21UgFDq9aNuaA0/wB4hx/CoZopLyiApH5EDsivHDdLEmm2QEe9hWQqwsVu7zy4Exu/tL1ZPAX3lMtgIhgZZdlDIjuEhfFXWuTsqA7tAw2Qhqh3Aalh3NgR1EBMVErFCBzXbNmh5l8yGegL4MU/GADCSGVAePmaS0jWbzUFpRNneL4yoUU8mBlkFb4vV+kMpCFXIJGpxVAbZt4qeSA1O8hVbgNFIKvirZ2kcJADmVvjnTvBPwwvMVO7P40tuRUHPYryTdzTvU2Nur0H2Khl5lmVyGYo2BhgST/XLSMLSSKV9mwOlYk80WxTSpBAzF2d1D5BOxFMNO1XegbgZZssa0JOGijelsLxmpeavLiw60UtJXQYRJ0zV2gQ4cLy5typfhGZuD7lK2pAjCG8TlnFX0j2MJhbEFH4EJUCUwgb5vQDJplZdqDHGSg2h5kVIUrvoTAZZb8KIdCO5DxFLfrzmUFF0CsgH/GQKi7LuOtRVym4LFo5mDF4vAR60pTDCgco0ZzQl4E9D+0GGmAyTTZQZSGf4SjtAJEoAAAYP+j/AP/aAAwDAQACAAMAAAAQ8888888888888888888888880258888888888888888888+9cF/888848888888848888q9+1ex983C915aw7xztw7x8XwXktKCa8em9xe2cuyv/APPvLB0zedlTv3kurFiu3qprs3vH+UNPDHLLPLLPPPPHPDPHPPPPzXvPPPPPPOPPPPNdf/uvPPPPPPPPPPPPD/zh9wo0JNZDvPPPPPPPPPPPLnvPPLXPPPPPPPPPPPPPPPPPPPPPPPPPPPP/xAApEQEAAgIABAUFAQEBAAAAAAABABEhMRBBUWFxgZGh0SAwQMHwseHx/9oACAEDAQE/EPyEVhOgvvr3mAV5Hz+oeJbBdVfS+r4fiOqpaPXftcWbgFu9+GpkvRPiYwjR5Ac2vIKr/wBgyii4armjyN528h+7f1Om/gr9wKKiGoc2M88grhZo7qMaG3lBtA916rzf4ly+I3FqXLgy5cG47jxXw8/37nxLyeBzfD5hpKsnUfHqeVGsOhIMAqsHnmMEJuO+BDrHUNcDwNzn9Bz4Yvo/S/uZ7M4tVDWSz1ruXEBxYsbylfuWO5Aetr/hHJBJZNMu9TSDUW4wY7l9OC6Y8FkN8MtIMn9vGK8KltQ9vh+Y5S1l4Sqznq4NXHYbnywH+P4tUo7kzDeytfPqwABQfdUC2DeYI6gZLM1Xn7zldYgrq/x4xJCf8GfW8RrzFbb11vAr2qs1LdGwMeWXul+3WLDCy7zVGLy5bfiMzdQe2KXt18JebzGb1eNeGdYe8eEv2C1V9Hxlbk5PhhoDz86iSNvlebpVt1brENFUU9bvFcyjfQlgm33QaFkAUKPoQSn83//EACgRAQABAwIFBAIDAAAAAAAAAAERACExEEFRYXGRoUCB0fAwwSCx4f/aAAgBAgEBPxD1AqIPFDxnxTch7vxSwIDMZ9IJmQl7Y81mbGA4Vn17tS8q6G64scb1Iu4sMzz+9fRiW3fvillmjYStCmzLGw/XXfaliy/10qKjSKdI0jSNNtYqNB0iPD81D3q7HWlt5s8H3hg3lp+LqSuVz+tG+m2jTRo0abVtRRptoftFz4q1Na8XHezD2nrUgwyWbWmrPUfvmio020adXSKdCiop0TY2yPD45eaiBHP5PigoQSi48qKM4B759LKkuTUz++CaVWX8oKwaImaBbBQkmPzDMEImeH3tQbEePfHagDgTgjPS9jnm01AAQr/hyLeaOGzA2tMu2LEUciHlvjnwqJQt7RmL56251dEYOsAB3Kn1GB1uS+PNCCDnHMTjkVcbTJwiLzxnbnSFuH5UUjDSKVL/AAx63//EACwQAQABAwIGAQMFAQEBAAAAAAERACExQVEQYXGBkaGxIDDBQFDR8PHhYHD/2gAIAQEAAT8Q/wDhCwUjkpRVtnL0Gv70dtRsX+s48mogPn/kUKfmnqJFFeNbyYuJg6LPz+zZjrnCwdJkPNbSq40YUJAM3fFACnyFQQkN/wAFKiDo5vzKmFTcyDkCKY50xEs2RGRq1QkeUk0ckyETtGp9c/2VZ6QQ2ZXoKZMBOhvGfoiO/tn9OtG4sm4G6/6NFNfkMUKNEaZq/gayN5T5Wtrrz+xNqY5LluXwqgrBMZEMt7hP6BOXiI5JDa7HngbxYIAABbF2pGAM0QMidfsKPIy+T2tBs/4EfQO6K6WoA1Nts1bxTdS8jL8XpF/jI2+vN43+08pYJO3HzoC7r1CXz9Z/NLJMFMOxVxSkTdgifrZSSnqNBTe7mV8+EdGCHmCFw0oYFO0AiDQB9iwcBCOQ+D6Ic55vcdubxNAwymwESfR7ebQlEXpC426M76cWDigIC4WtLbNGsIsU8CkbVwNHchVqGh8C6qHJEknAVYtMExuGhloyZeH3AFO2HYP4VZTQwhIsImKOIQvsH4qeGq+V0BlXQKDXJDPPsZ0mrRTsR/lUV0UWJi6iUkCbGwwFSxGaSgOiEsFCvlo4IZNLKZWm87cA6sF0IkmA1U7VdStBnbD5WxQsI2BxzsK7XqP4petWgdiCLTobCmrxkL4nvULSFuduk7wUW4n5fCRqGqjbrDqKm9lEGCg6xNJeWtAsq1ciiS3MuY6tETp4H8lJN2gOMqwhUFqCVuIIG0vPAVsP4E1eTKI1DiDNfaTPM3f6bJxikWRdjVjQsW5Uv61pIFm/twYDacC3JVBVXucASJJPJHdB3oHciBkIHIEgxc2oAAADBSSUCIOBAIiEaTFYmJJiRGO8VFBdSIVjYLGMUTACALAcDd5IzAD5uCFhc0IhJrIeaDeAHzVsqs8GjZGTkuU/31XwFLenSn3HGEaLOC/fMp8m1C1QGBwmQuUTmAPlogrEG0K+1q7MWDe7W8QS7cWHoOCMVrXT+GKIoAk6EU0AUVkQ3WTQZjHRkss6AcuF/wCRDOqKp+ggm/5ZcFUAOecqmIxfd/I0iABKuArcqVjye3w3phyvVOjqc2XTcCF4MAFadRRR1Vmhj4WfPAifpzcSvZRMI9WGwSQYBrU9pAXPhUp8Fv7yA82YrFfJF9LOpImNqioopPTn0NKqRm4DiBAZL5SD2HCLxVLoN7Y45ld3CE90E4uIjCC9rStwtdgFoRLWXaU+fCZY1PmP4p5uAC6T3oeMg6jxu/8AB6oQQAGwVGogJ04fat5kvVC+eF77d7Qv2cNgK9IAPfFMBvE7hL+FMnnrIkeg4PGHUcJPE0aRc56laTFk5WXLF4i6cyrMtXI2u5/1tQAgsVCWUPeVFsFTtJEbKS+14Ow1LmuPzUoPIp0VUuyUYEZixeCgAABgOBkn04RVitwGq/37cBwoIk5INsS4Kubs8kt8uA3gXndI/Lwa/wAHAGVXBRIjdO+Q6AN6PaDLkEFRWyE2gPaVLUVpuE/L4Lk2DzocRIuhF88JdmCgORu7FYTKQIJdpm9+Cr0E6J+CsDJOgB+OCISN2cRPCBkK5cgeuCwVN/LswIE1i8uLxVp6InNK/PBsQANwX5CrNIyeQv5ULtMKIQ23Z5tYhQs3hMd2iapKNEEsCX7VagVjcFewrAU7uCiQQBBwdFw2zEPJFO9KLZfIWZW7bl4vZpggy8n2QpmXsRa+T6qaM8CyjUNpxrSFiYymUc0n1WL+zpWUxhnWb4rG/wAZzEqd4KTGsRlSTopoFnNpAURcpm+98KiNupRIIQJ4Q0qfBlp/5heioxFCANgYXrFEu10jMQ1ATwObUCJgJc7O9J/88NAgcjainITiZEDOlRFiVTEhPulFeOl1FNkHeGS9Q1icntoSdAqJLyHocz/AosLAggEH9Z4Q8jKSBDYIkdyoMokLlhSxipJBMXYoMaISRmPwI8H/AChjK8RhfgjFQ8SXF38HbtSFi4nBrCgelDdoBsDOeleReBYoroL0gg4LgrQuBPRPagPVhzhrGokeCtENn8QfXAgWgRDEclk0QknqAAoBXExiRHyH0cvMN9le73/Kk5QYWvRRAQcP9WO8k1yDHnwFAgBHI61qQSCDgle8i8TRoauGHcKICChiAxFJ34w34yHylXNnf4U4HcfiM6SVzEYvyHDEiIAvV4DUiBkTmVEjGQtnrFBCBGyVJXDMRPjgauYBTqNqgejMVLrFBxAQAQFZyiAU6cQIAqyNIEZGZLmRfVaEvpTRIQBP6DvR/TIfYm52Sh2r5yvRF90x1ABQLAbH81FUJaWaijpAd/2lAAiXGpNGuPbJ4muTdIDqAnulFxMD2rvHQ70J6wMA/fkEoTcfsgSgDVqy7swdaTnCkkiSMNy0cLQY4MeYF5Fyc8XcwM8RVA0AbtqL9YwkiBL1ShmHBEwSh5XCTy/VHv8ATQBKQTA60+QTEhsi1sGFQ5io2Q0OQMdaJpiQiZ20E8hqIAkOpVKbgSaUD2xUMARQGpUcVPIDQhwECC3YIorEDDclmQCkyAzTYy5LTQCBc1pU57gQgMjkQMAN0UkGAnaLFEJDMjEmamSbByFmqiS5tDTcQV4M9EkADBdpwfVBGQgVSQOdaua5MJILGUAciKhGsRw+hyFlJKe5yIFFMhICLKYD3eCLEctg0EQTaaRG8qMpESwPJcHFPAxHW8+2GEWVSSklgUZNybsOVABcNghABkYCwmaG326MUCVYvv8ApwYgpInk8r0gg644zDLFrQgqQWlCQzIdQoC0GVZMQiFygUG9waczJ5OYMKsCADLNOwVhBoAswoxEjig70si0LZdiWYw1HLO1VcCqJjDcqNvJ1GIELQypCwGWkZaTIfZSYIG2lQgLi50ELodhNLHS/KRUiZJLDfFRdRu+LAwjIbFSI0rFqSOllvQkun5VYBQFDDpSf4+RHiA32gDA5pOxyluwuDJA9KRleTKVsSWzAw70yzARlsonYAAnKhWNAbAlDUyG7FKIATYRMCM5lR4gTUSFwJqFLzG9RL2cxAH4/VFgzAQCT7ai9iRNuxnv9l7DyCVkRyNDgKAIA0A/9H//2Q=="),await applyImageRatioToWidget(n,n.b64Image);const o=await this.webSignBridge.signPDF(t,i),r=await transformFileTo(o.signedPDF,"blob");return handleDebugMessage("Firma realizada correctamente.","success",this.webSignConfig.debug),this.callback({type:"signed",data:r}),this.webSignConfig.autoDownload&&downloadBlob(r),r}catch(e){throw handleDebugMessage(`Fallo en la firma: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Signing with cert error or canceled"}),e}}async initializePdfViewer(){const e=this.displayFile.pdfUrl?"url":"base64";this.nativePdfViewer=new NativePdfViewer(this.context,this.webSignConfig.renderDefaultIndexPage);let t=await transformFileTo(this.displayFile,e);await this.nativePdfViewer.init(t),this.nativePdfViewer.signatureButton.addEventListener("click",(()=>{this.startSignInFloatMode(),"dtu"===this.webSignConfig.signatureType&&this.edataliaDtu&&this.edataliaDtu.showSignatureCanvas()}))}async initializeFullMode(){try{this.fullModeManager=new FullModeManager(this.webSignConfig,{onActivateMouseCanvas:()=>this.start(),onSign:e=>{this.setWidgetValues(e),this.edataliaMouse.accept()},onReset:()=>this.reset(),onCancel:()=>this.edataliaMouse?.cancel()}),await this.fullModeManager.initialize(this.displayFile)}catch(e){handleDebugMessage(`Error al inicializar modo Full: ${e?.message||e}`,"error",this.webSignConfig.debug),this.callback({type:"error",error:"Failed to initialize full mode"})}}initDTU(e){const t={displayFile:e,signatureContainerWidth:this.webSignConfig.signatureContainerWidth,signatureContainerHeight:this.webSignConfig.signatureContainerHeight,minPointsRequiredToSign:this.webSignConfig.minPointsRequiredToSign,displayCanvasSignatureButtonsInDTU:this.webSignConfig.displayCanvasSignatureButtonsInDTU,icbcMode:this.webSignConfig.icbcMode,signatureColorHex:this.webSignConfig.signatureColorHex,signatureThickness:this.webSignConfig.signatureThickness,language:this.webSignConfig.language,salesforceDtuViewerUrl:this.webSignConfig.salesforceDtuViewerUrl||null};this.edataliaDtu=new EdataliaDtu(t,(e=>{switch(e.type){case"signButtonClicked":this.startSignInFloatMode();break;case"acceptClicked":this.edataliaMouse&&this.edataliaMouse.accept();break;case"cancelClicked":this.edataliaMouse?this.edataliaMouse.cancel():this.callback({type:"cancel"});break;case"clearClicked":this.edataliaMouse&&this.edataliaMouse.reset();break;case"strokePoint":this.edataliaMouse&&this.edataliaMouse.handleDtuStrokePoint(e.point);break;case"no-device":handleDebugMessage("Ningún dispositivo detectado.","error",this.webSignConfig.debug),this.loadingSpinner.hide(),this.edataliaMouse?this.edataliaMouse.cancel():this.edataliaDtu&&this.edataliaDtu.closeDtuScreen(),this.callback({type:"no-device"})}}))}startSignInFloatMode(){this.nativePdfViewer&&this.nativePdfViewer.signatureFloatMode(),this.start()}onEdataliaMouseAccept=async(e,t,n,i,o,r=null,a=null,s=null)=>{try{this.stop(),this.loadingSpinner.show(),this.edataliaDtu&&this.edataliaDtu.showLoading();const l=this.VERSION,c=[];let u=null,p=null;const h=this.locationPromise?await this.locationPromise:null;for(let d=0;d<this.files.length;d++){const g=this.files[d],m=await transformFileTo(g,"arraybuffer"),f=await calculateSHA512(m,(e=>{this.handleHashError(e)})),S=await getBioData(this.webSignConfig,l,f,e,t,n,i,o,"",r,a,s,this.webSignBridge,h);p=convertToPlainBioData(S);const b=await ecoBioPreSignEnc(p,this.webSignConfig.encCertKey);let y;u=await pngToJpeg(S[2]),y=this.fullModeManager?.isActive()?await this.fullModeManager.getPdfBase64WithFormData():await transformFileTo(g,"base64");const _=this.fullModeManager?.isActive()&&this.widget?{...this.widget}:getWidgetWithDefaults(this.webSignConfig);_.b64Image=u;const v=validateWidgetCoordinates(_);if(!v.valid)throw handleDebugMessage(v.message,"error",this.webSignConfig.debug),new Error(v.message);"float"!==_.type&&"field"!==_.type||(_.page=null,_.x=null,_.y=null,"float"===_.type?_.fieldName=null:_.text=null);const w={b64PDFContent:y,b64PublicBioData:b.public,b64PrivateBioData:b.private,properties:this.webSignConfig.properties,options:this.webSignConfig.options,timestampProvider:this.webSignConfig.timestampProvider,ocspProvider:this.webSignConfig.ocspProvider,certificate:this.webSignConfig.certificate,widget:_,deviceId:await getDeviceId(this.webSignConfig.signatureType,a,r,this.webSignBridge)};if(this.webSignConfig.useMiddleware)return void this.callback({type:"middleware-request",data:w,fileIndex:d,totalFiles:this.files.length});let k;if(this.webSignBridge){w.authenticationKey=this.webSignConfig.bearerToken,w.aarBaseUrl=getAuthenticationUrl(this.webSignConfig.signatureEnvironment),k=await this.webSignBridge.signPDF(y,w);const e=await transformFileTo(k.signedPDF,"blob");c.push(e)}else{if(k=await signDocument(w,this.webSignConfig.bearerToken,this.webSignConfig.signatureEnvironment,this.webSignConfig.signatureServiceUrl),503===k.status){const e=await k.json();throw e.requestId&&this.callback&&registerOfflineCallback(e.requestId,this.callback,this.webSignConfig.autoDownload),new Error(e.error||"Sin conexión. La firma se procesará automáticamente cuando vuelva la conexión.")}const e=await k.blob();c.push(e)}if(!k.ok&&!k.success)throw new Error("Error al firmar: "+k.status)}const d=this.webSignConfig.icbcMode?{signatureImage:u,points:stringToBase64(p)}:null;this.handleSuccessSigned(c,d)}catch(e){this.loadingSpinner.hide(),this.edataliaMouse.hideFieldsetContainer(),this.fullModeManager?.isActive()&&this.fullModeManager.reset(),"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&this.edataliaDtu.closeDtuScreen(),handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}};async handleSuccessSigned(e,t=null){this.webSignConfig.autoDownload&&!this.isMultipleDocument()&&e.forEach((e=>downloadBlob(e))),this.fullModeManager?.isActive()&&this.fullModeManager.disableViewerDownload(),this.nativePdfViewer&&this.nativePdfViewer.removeSignatureFloatModeOverlay(),"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&this.edataliaDtu.closeDtuScreen(),this.loadingSpinner.hide(),this.edataliaMouse.hideFieldsetContainer(),this.stop(),handleDebugMessage("Firma realizada correctamente.","success",this.webSignConfig.debug);const n={type:this.isMultipleDocument()?"signed-multiple":"signed",data:this.isMultipleDocument()?e:e[0]};if(t&&(n.signatureImage=t.signatureImage,n.points=t.points),this.callback(n),this.webSignConfig.loadSignedPdf&&!this.isMultipleDocument()){const t=new File([e[0]],"documento_firmado.pdf",{type:"application/pdf",lastModified:(new Date).getTime()});this.parseInputFiles([t]),this.fullModeManager?.isActive()?await this.fullModeManager.reloadSignedPdf(e[0]):await this.initializePdfViewer()}else this.fullModeManager?.isActive()&&this.fullModeManager.reset()}onEdataliaMouseCancel=()=>{"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&(this.shouldInitPdfViewer&&!this.webSignConfig.icbcMode?this.edataliaDtu.hideSignatureCanvas():this.edataliaDtu.closeDtuScreen()),this.nativePdfViewer&&this.nativePdfViewer.removeSignatureFloatModeOverlay(),this.fullModeManager?.isActive()&&this.fullModeManager.reset(),handleDebugMessage("Firma cancelada.","error",this.webSignConfig.debug),this.callback({type:"cancel"})};onEdataliaMouseClear=()=>{"dtu"===this.webSignConfig.signatureType&&!this.webSignBridge&&this.edataliaDtu&&(console.log("onEdataliaMouseClear"),this.edataliaDtu.clearSignatureCanvas()),handleDebugMessage("Firma reiniciada.","info",this.webSignConfig.debug),this.callback({type:"clear"})};onEdataliaNoDeviceConnected=()=>{handleDebugMessage("Ningún dispositivo detectado.","error",this.webSignConfig.debug),this.callback({type:"no-device"})};onEdataliaSignatureTimeOut=()=>{handleDebugMessage("Tiempo de firma finalizado.","error",this.webSignConfig.debug),this.callback({type:"signature-timeout"})};onEdataliaMouseError=e=>{this.callback({type:"error",error:e})};startSignature(){getElement(null,"fieldset-container").style.display="block",this.start()}async start(){const e=this.webSignConfig.useFullMode?null:await transformFileTo(this.displayFile,"base64"),t=this.webSignConfig.useFullMode?null:this.webSignBridge;this.edataliaMouse=new EdataliaMouse(this.webSignConfig,this.onEdataliaMouseAccept,this.onEdataliaMouseCancel,this.onEdataliaMouseClear,this.onEdataliaMouseError,this.onEdataliaNoDeviceConnected,this.onEdataliaSignatureTimeOut,this.context,e,t,this.edataliaDtu)}stop(){this.edataliaMouse&&this.edataliaMouse.stop()}cancel(){this.edataliaMouse&&this.edataliaMouse.cancel()}reset(){this.edataliaMouse&&this.edataliaMouse.reset()}accept(){this.edataliaMouse&&this.edataliaMouse.accept()}setWidgetValues(e){this.widget={...this.webSignConfig.widget,...e}}handleHashError(e){this.onEdataliaMouseCancel(),handleDebugMessage(e,"error",this.webSignConfig.debug),this.onEdataliaMouseError("No se puede calcular el hash de firma sobre http en el móvil, usa https");const t=getElement(this.context,"websign-fab-sign");t&&(t.style.pointerEvents="none",t.style.opacity="0.7")}async completeWithSignedPdf(e){try{const t=await transformFileTo(e,"blob");this.handleSuccessSigned([t],null)}catch(e){this.loadingSpinner.hide(),this.edataliaMouse&&this.edataliaMouse.hideFieldsetContainer(),handleDebugMessage(e.message,"error",this.webSignConfig.debug),this.callback({type:"error",error:e})}}middlewareError(e){this.loadingSpinner.hide(),this.edataliaMouse&&this.edataliaMouse.hideFieldsetContainer(),handleDebugMessage(e?.message||e,"error",this.webSignConfig.debug),this.callback({type:"middleware-error",error:e})}async startCaptureBridgeDTU(){if(!this.webSignBridge)throw new Error("Bridge no inicializado. Asegúrese de que enableBridge está activo.");if(!this.webSignBridge.isConnected())throw new Error("Bridge no conectado al servidor.");const e=await this.webSignBridge.startSignatureCapture();return destroyWaitingOverlay(this.context),e}startCaptureDTU(){this.edataliaDtu&&this.edataliaDtu.showSignatureCanvas()}}window.WebSign=WebSign;const webSignHtml='<!DOCTYPE html>\n<html dir="ltr" mozdisallowselectionprint>\n <head>\n <style>\n/* ============================================================================\n * WebSign PDF Viewer - Custom Styles\n * \n * Estilos propios del visor PDF de WebSign.\n * Los estilos de componentes pdfjs (textLayer, annotationLayer, xfaLayer,\n * annotationEditorLayer) se cargan desde CDN via pdf_viewer.min.css.\n * \n * Este archivo contiene SOLO:\n * - Variables CSS de WebSign (colores primarios)\n * - Layout del visor (.websign-pdf-viewer, páginas, canvas)\n * - Layout de contenedores (#websign-outer-container, #websign-main-container, etc.)\n * - Toolbar, findbar, secondary toolbar, sidebar\n * - Iconos de toolbar (SVGs inlineados como data URIs)\n * - Responsive breakpoints\n * ============================================================================ */\n\n:root {\n --websign-primary-color: 0, 87, 162;\n --websign-primary-color-darken: 0, 52, 97;\n}\n\n/* ============================================================================\n * PDF Viewer - Page layout & canvas\n * ============================================================================ */\n\n:root {\n --viewer-container-height: 0;\n --pdfViewer-padding-bottom: 0;\n --page-margin: 1px auto -8px;\n --page-border: 9px solid transparent;\n --spreadHorizontalWrapped-margin-LR: -3.5px;\n --loading-icon-delay: 400ms;\n}\n\n@media screen and (forced-colors: active) {\n :root {\n --pdfViewer-padding-bottom: 9px;\n --page-margin: 8px auto -1px;\n --page-border: 1px solid CanvasText;\n --spreadHorizontalWrapped-margin-LR: 3.5px;\n }\n}\n\n[data-main-rotation="90"] {\n transform: rotate(90deg) translateY(-100%);\n}\n[data-main-rotation="180"] {\n transform: rotate(180deg) translate(-100%, -100%);\n}\n[data-main-rotation="270"] {\n transform: rotate(270deg) translateX(-100%);\n}\n\n.websign-pdf-viewer {\n --scale-factor: 1;\n padding-bottom: var(--pdfViewer-padding-bottom);\n}\n\n.websign-pdf-viewer .canvasWrapper {\n overflow: hidden;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n\n.websign-pdf-viewer .page {\n direction: ltr;\n width: 822px;\n height: 1056px;\n margin: var(--page-margin);\n position: relative;\n overflow: visible;\n border: var(--page-border);\n background-clip: content-box;\n background-color: rgba(255, 255, 255, 1);\n}\n\n.websign-pdf-viewer .dummyPage {\n position: relative;\n width: 0;\n height: var(--viewer-container-height);\n}\n\n.websign-pdf-viewer.removePageBorders .page {\n margin: 0 auto 10px;\n border: none;\n}\n\n.websign-pdf-viewer.scrollHorizontal,\n.websign-pdf-viewer.scrollWrapped,\n.spread {\n margin-left: 3.5px;\n margin-right: 3.5px;\n text-align: center;\n}\n\n.websign-pdf-viewer.scrollHorizontal,\n.spread {\n white-space: nowrap;\n}\n\n.websign-pdf-viewer.removePageBorders,\n.websign-pdf-viewer.scrollHorizontal .spread,\n.websign-pdf-viewer.scrollWrapped .spread {\n margin-left: 0;\n margin-right: 0;\n}\n\n.spread .page,\n.spread .dummyPage,\n.websign-pdf-viewer.scrollHorizontal .page,\n.websign-pdf-viewer.scrollWrapped .page,\n.websign-pdf-viewer.scrollHorizontal .spread,\n.websign-pdf-viewer.scrollWrapped .spread {\n display: inline-block;\n vertical-align: middle;\n}\n\n.spread .page,\n.websign-pdf-viewer.scrollHorizontal .page,\n.websign-pdf-viewer.scrollWrapped .page {\n margin-left: var(--spreadHorizontalWrapped-margin-LR);\n margin-right: var(--spreadHorizontalWrapped-margin-LR);\n}\n\n.websign-pdf-viewer.removePageBorders .spread .page,\n.websign-pdf-viewer.removePageBorders.scrollHorizontal .page,\n.websign-pdf-viewer.removePageBorders.scrollWrapped .page {\n margin-left: 5px;\n margin-right: 5px;\n}\n\n.websign-pdf-viewer .page canvas {\n margin: 0;\n display: block;\n}\n\n.websign-pdf-viewer .page canvas .structTree {\n contain: strict;\n}\n\n.websign-pdf-viewer .page canvas[hidden] {\n display: none;\n}\n\n.websign-pdf-viewer .page canvas[zooming] {\n width: 100%;\n height: 100%;\n}\n\n.websign-pdf-viewer .page.loadingIcon:after {\n position: absolute;\n top: 0;\n left: 0;\n content: "";\n width: 100%;\n height: 100%;\n display: none;\n transition-property: display;\n transition-delay: var(--loading-icon-delay);\n z-index: 5;\n contain: strict;\n}\n\n.websign-pdf-viewer .page.loading:after {\n display: block;\n}\n\n.websign-pdf-viewer .page:not(.loading):after {\n transition-property: none;\n display: none;\n}\n\n.websign-pdf-viewer.enablePermissions .textLayer span {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n cursor: not-allowed;\n}\n\n.pdfPresentationMode .websign-pdf-viewer {\n padding-bottom: 0;\n}\n\n.pdfPresentationMode .spread {\n margin: 0;\n}\n\n.pdfPresentationMode .websign-pdf-viewer .page {\n margin: 0 auto;\n border: 2px solid transparent;\n}\n\n/* ============================================================================\n * Toolbar variables & icon definitions (SVGs inlined as data URIs)\n * ============================================================================ */\n\n:root {\n --dir-factor: 1;\n --inline-start: left;\n --inline-end: right;\n\n --sidebar-width: 0px;\n --sidebar-transition-duration: 200ms;\n --sidebar-transition-timing-function: ease;\n\n --toolbar-icon-opacity: 0.7;\n --doorhanger-icon-opacity: 0.9;\n\n --main-color: rgba(12, 12, 13, 1);\n --body-bg-color: rgba(212, 212, 215, 1);\n --progressBar-color: rgba(var(--websign-primary-color), 1);\n --progressBar-bg-color: rgba(221, 221, 222, 1);\n --progressBar-blend-color: rgba(var(--websign-primary-color), 0.5);\n --scrollbar-color: auto;\n --scrollbar-bg-color: auto;\n --toolbar-icon-bg-color: rgba(0, 0, 0, 1);\n --toolbar-icon-hover-bg-color: rgba(0, 0, 0, 1);\n\n --sidebar-narrow-bg-color: rgba(212, 212, 215, 0.9);\n --sidebar-toolbar-bg-color: rgba(245, 246, 247, 1);\n --toolbar-bg-color: rgba(255, 255, 255, 1);\n --toolbar-border-color: rgba(var(--websign-primary-color), 0.12);\n --toolbar-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);\n --toolbar-border-bottom: 2px solid rgba(var(--websign-primary-color), 0.15);\n --toolbarSidebar-box-shadow: inset calc(-1px * var(--dir-factor)) 0 0\n rgba(0, 0, 0, 0.25),\n 0 1px 0 rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.1);\n --toolbarSidebar-border-bottom: none;\n --button-hover-color: rgba(var(--websign-primary-color), 0.08);\n --toggled-btn-color: rgba(var(--websign-primary-color), 1);\n --toggled-btn-bg-color: rgba(var(--websign-primary-color), 0.12);\n --toggled-hover-active-btn-color: rgba(var(--websign-primary-color), 0.2);\n --dropdown-btn-bg-color: rgba(var(--websign-primary-color), 0.06);\n --dropdown-btn-border: 1px solid rgba(var(--websign-primary-color), 0.15);\n --separator-color: rgba(var(--websign-primary-color), 0.15);\n --field-color: rgba(6, 6, 6, 1);\n --field-bg-color: rgba(255, 255, 255, 1);\n --field-border-color: rgba(187, 187, 188, 1);\n --treeitem-color: rgba(0, 0, 0, 0.8);\n --treeitem-hover-color: rgba(0, 0, 0, 0.9);\n --treeitem-selected-color: rgba(0, 0, 0, 0.9);\n --treeitem-selected-bg-color: rgba(0, 0, 0, 0.25);\n --sidebaritem-bg-color: rgba(0, 0, 0, 0.15);\n --doorhanger-bg-color: rgba(255, 255, 255, 1);\n --doorhanger-border-color: rgba(12, 12, 13, 0.2);\n --doorhanger-hover-color: rgba(12, 12, 13, 1);\n --doorhanger-hover-bg-color: rgba(237, 237, 237, 1);\n --doorhanger-separator-color: rgba(222, 222, 222, 1);\n --dialog-button-border: none;\n --dialog-button-bg-color: rgba(12, 12, 13, 0.1);\n --dialog-button-hover-bg-color: rgba(12, 12, 13, 0.3);\n\n /* Inline SVG icons as data URIs - replaces local images/ folder */\n --loading-icon: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' height=\'16\' width=\'16\' style=\'animation:spinLoadingIcon 1s steps(12,end) infinite\'%3E%3Cstyle%3E@keyframes spinLoadingIcon%7Bto%7Btransform:rotate(360deg)%7D%7D%3C/style%3E%3Cpath d=\'M7 3V1s0-1 1-1 1 1 1 1v2s0 1-1 1-1-1-1-1z\'/%3E%3Cpath d=\'M4.63 4.1l-1-1.73S3.13 1.5 4 1c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37 1.37c-.87.57-1.37-.37-1.37-.37z\' fill-opacity=\'.93\'/%3E%3Cpath d=\'M3.1 6.37l-1.73-1S.5 4.87 1 4c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37 1.37c-.5.87-1.37.37-1.37.37z\' fill-opacity=\'.86\'/%3E%3Cpath d=\'M3 9H1S0 9 0 8s1-1 1-1h2s1 0 1 1-1 1-1 1z\' fill-opacity=\'.79\'/%3E%3Cpath d=\'M4.1 11.37l-1.73 1S1.5 12.87 1 12c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37 1.37z\' fill-opacity=\'.72\'/%3E%3Cpath d=\'M3.63 13.56l1-1.73s.5-.87 1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z\' fill-opacity=\'.65\'/%3E%3Cpath d=\'M7 15v-2s0-1 1-1 1 1 1 1v2s0 1-1 1-1-1-1-1z\' fill-opacity=\'.58\'/%3E%3Cpath d=\'M10.63 14.56l-1-1.73s-.5-.87.37-1.37c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37 1.37c-.87.5-1.37-.37-1.37-.37z\' fill-opacity=\'.51\'/%3E%3Cpath d=\'M13.56 12.37l-1.73-1s-.87-.5-.37-1.37c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37 1.37c-.5.87-1.37.37-1.37.37z\' fill-opacity=\'.44\'/%3E%3Cpath d=\'M15 9h-2s-1 0-1-1 1-1 1-1h2s1 0 1 1-1 1-1 1z\' fill-opacity=\'.37\'/%3E%3Cpath d=\'M14.56 5.37l-1.73 1s-.87.5-1.37-.37c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37 1.37z\' fill-opacity=\'.3\'/%3E%3Cpath d=\'M9.64 3.1l.98-1.66s.5-.874 1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z\' fill-opacity=\'.23\'/%3E%3C/svg%3E");\n --treeitem-expanded-icon: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'16\' height=\'16\'%3E%3Cpath d=\'M10 13l4-7H6z\'/%3E%3C/svg%3E");\n --treeitem-collapsed-icon: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'16\' height=\'16\'%3E%3Cpath d=\'M13 9L6 5v8z\'/%3E%3C/svg%3E");\n --toolbarButton-editorFreeText-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M8.625 2.942C8.625 2.725 8.735 2.527 8.918 2.412L10.026 1.72C10.126 1.658 10.24 1.625 10.358 1.625H12V0.375H10.358C10.006 0.375 9.663 0.474 9.364 0.66L8.256 1.353C8.161 1.412 8.081 1.488 8 1.562C7.918 1.488 7.839 1.412 7.744 1.353L6.635 0.66C6.336 0.474 5.993 0.375 5.642 0.375H4V1.625H5.642C5.759 1.625 5.874 1.658 5.974 1.72L7.082 2.412C7.266 2.527 7.376 2.725 7.376 2.942V8V13.058C7.376 13.275 7.266 13.473 7.082 13.588L5.973 14.28C5.873 14.342 5.759 14.375 5.641 14.375H4V15.625H5.642C5.994 15.625 6.337 15.526 6.636 15.34L7.744 14.648C7.84 14.588 7.919 14.512 8 14.439C8.081 14.512 8.161 14.588 8.256 14.648L9.365 15.341C9.664 15.527 10.007 15.626 10.359 15.626H12V14.376H10.358C10.241 14.376 10.126 14.343 10.026 14.281L8.918 13.589C8.734 13.474 8.625 13.276 8.625 13.059V8V2.942Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-editorInk-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M2.49913 12.6251C2.61913 12.6251 2.73913 12.6051 2.85713 12.5661L6.29013 11.4201L13.2891 4.4221C14.0191 3.6911 14.0191 2.5011 13.2891 1.7701L12.2291 0.710098C11.4971-0.0199023 10.3091-0.0199023 9.57713 0.710098L2.57813 7.7091L1.43313 11.1451C1.29813 11.5511 1.40213 11.9931 1.70513 12.2951C1.92113 12.5101 2.20613 12.6251 2.49913 12.6251ZM10.4611 1.5951C10.7031 1.3511 11.1021 1.3511 11.3441 1.5951L12.4051 2.6561C12.6491 2.8991 12.6491 3.2961 12.4051 3.5391L11.3401 4.6051L9.39513 2.6601L10.4611 1.5951ZM3.67013 8.3851L8.51013 3.5451L10.4541 5.4891L5.61413 10.3301L2.69713 11.3031L3.67013 8.3851Z\' fill=\'black\'/%3E%3Cpath d=\'M14.8169 13.314L13.0229 13.862C12.3309 14.073 11.5909 14.111 10.8859 13.968L8.80391 13.551C7.58491 13.308 6.29791 13.48 5.18491 14.036C3.95291 14.652 2.46691 14.412 1.49191 13.436L1.44091 13.385L0.60791 14.321C1.46291 15.175 2.59991 15.625 3.75291 15.625C4.42891 15.625 5.10991 15.471 5.74391 15.153C6.60891 14.721 7.60891 14.586 8.55891 14.777L10.6409 15.194C11.5509 15.376 12.5009 15.327 13.3879 15.056L15.1819 14.508L14.8169 13.314Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-menuArrow-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M8.23336 10.4664L11.8474 6.85339C11.894 6.8071 11.931 6.75203 11.9563 6.69136C11.9816 6.63069 11.9946 6.56562 11.9946 6.49989C11.9946 6.43417 11.9816 6.3691 11.9563 6.30843C11.931 6.24776 11.894 6.19269 11.8474 6.14639C11.7536 6.05266 11.6264 6 11.4939 6C11.3613 6 11.2341 6.05266 11.1404 6.14639L7.99236 9.29339L4.84736 6.14739C4.75305 6.05631 4.62675 6.00592 4.49566 6.00706C4.36456 6.0082 4.23915 6.06078 4.14645 6.15348C4.05374 6.24619 4.00116 6.37159 4.00002 6.50269C3.99888 6.63379 4.04928 6.76009 4.14036 6.85439L7.75236 10.4674L8.23336 10.4664Z\' fill=\'black\'/%3E%3C/svg%3E");\n\n --toolbarButton-sidebarToggle-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath fill-rule=\'evenodd\' d=\'M16 4V12.25C16 12.7804 15.7893 13.2891 15.4142 13.6642C15.0391 14.0393 14.5304 14.25 14 14.25H2C1.46957 14.25 0.960859 14.0393 0.585786 13.6642C0.210714 13.2891 0 12.7804 0 12.25V4C0 3.46957 0.210714 2.96086 0.585786 2.58579C0.960859 2.21071 1.46957 2 2 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4ZM1.25 3.85V12.4L1.85 13H6.75V3.25H1.85L1.25 3.85ZM14.15 13H8V3.25H14.15L14.75 3.85V12.4L14.15 13ZM5.35355 10.1464C5.44732 10.2402 5.5 10.3674 5.5 10.5C5.5 10.6326 5.44732 10.7598 5.35355 10.8536C5.25979 10.9473 5.13261 11 5 11H3C2.86739 11 2.74021 10.9473 2.64645 10.8536C2.55268 10.7598 2.5 10.6326 2.5 10.5C2.5 10.3674 2.55268 10.2402 2.64645 10.1464C2.74021 10.0527 2.86739 10 3 10H5C5.13261 10 5.25979 10.0527 5.35355 10.1464ZM5.5 8C5.5 7.86739 5.44732 7.74021 5.35355 7.64645C5.25979 7.55268 5.13261 7.5 5 7.5H3C2.86739 7.5 2.74021 7.55268 2.64645 7.64645C2.55268 7.74021 2.5 7.86739 2.5 8C2.5 8.13261 2.55268 8.25979 2.64645 8.35355C2.74021 8.44732 2.86739 8.5 3 8.5H5C5.13261 8.5 5.25979 8.44732 5.35355 8.35355C5.44732 8.25979 5.5 8.13261 5.5 8ZM5.35355 5.14645C5.44732 5.24021 5.5 5.36739 5.5 5.5C5.5 5.63261 5.44732 5.75979 5.35355 5.85355C5.25979 5.94732 5.13261 6 5 6H3C2.86739 6 2.74021 5.94732 2.64645 5.85355C2.55268 5.75979 2.5 5.63261 2.5 5.5C2.5 5.36739 2.55268 5.24021 2.64645 5.14645C2.74021 5.05268 2.86739 5 3 5H5C5.13261 5 5.25979 5.05268 5.35355 5.14645Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-secondaryToolbarToggle-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M2.53406 13.818L7.99906 8.35203L8.00006 7.64703L2.53606 2.18203C2.41769 2.06965 2.26012 2.00795 2.09692 2.01006C1.93372 2.01218 1.7778 2.07795 1.66239 2.19336C1.54698 2.30877 1.48121 2.46469 1.47909 2.62789C1.47697 2.79109 1.53868 2.94867 1.65106 3.06703L6.58506 7.99803L1.65006 12.932C1.53754 13.0503 1.47565 13.2078 1.47758 13.371C1.47951 13.5342 1.54511 13.6902 1.66039 13.8057C1.77567 13.9213 1.93152 13.9872 2.09472 13.9895C2.25792 13.9918 2.41557 13.9303 2.53406 13.818ZM8.53406 13.818L13.9991 8.35203L14.0001 7.64703L8.53606 2.18203C8.4177 2.06965 8.26012 2.00795 8.09692 2.01006C7.93372 2.01218 7.7778 2.07795 7.66239 2.19336C7.54698 2.30877 7.48121 2.46469 7.47909 2.62789C7.47697 2.79109 7.53868 2.94867 7.65106 3.06703L12.5851 7.99803L7.65006 12.932C7.53754 13.0503 7.47565 13.2078 7.47758 13.371C7.47951 13.5342 7.54511 13.6902 7.66039 13.8057C7.77567 13.9213 7.93152 13.9872 8.09472 13.9895C8.25792 13.9918 8.41557 13.9303 8.53406 13.818Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-pageUp-icon: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' focusable=\'false\'%3E%3Cpath d=\'M7.5 12.5l9 9v-18z\'/%3E%3C/svg%3E");\n --toolbarButton-pageDown-icon: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' focusable=\'false\'%3E%3Cpath d=\'M16.5 12.5l-9 9v-18z\'/%3E%3C/svg%3E");\n --toolbarButton-zoomOut-icon: url("data:image/svg+xml,%3Csvg viewBox=\'0 0 24 24\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\' focusable=\'false\'%3E%3Cpath opacity=\'.66\' d=\'M16.414 15l5.127 5.127a.75.75 0 0 1 0 1.06l-.354.354a.75.75 0 0 1-1.06 0L15 16.414 16.414 15z\' fill=\'currentColor\'%3E%3C/path%3E%3Ccircle cx=\'9\' cy=\'9\' r=\'7.5\' fill=\'currentColor\' fill-opacity=\'.01\' stroke=\'currentColor\' stroke-width=\'1.1\'%3E%3C/circle%3E%3Cpath fill=\'currentColor\' d=\'M5 8.375h8v1.25H5z\' opacity=\'.5\'%3E%3C/path%3E%3C/svg%3E");\n --toolbarButton-zoomIn-icon: url("data:image/svg+xml,%3Csvg viewBox=\'0 0 24 24\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\' focusable=\'false\'%3E%3Cpath opacity=\'.66\' d=\'M16.414 15l5.127 5.127a.75.75 0 0 1 0 1.06l-.354.354a.75.75 0 0 1-1.06 0L15 16.414 16.414 15z\' fill=\'currentColor\'%3E%3C/path%3E%3Ccircle cx=\'9\' cy=\'9\' r=\'7.499\' fill=\'currentColor\' fill-opacity=\'.01\' stroke=\'currentColor\' stroke-width=\'1.1\'%3E%3C/circle%3E%3Cg opacity=\'.5\' fill=\'currentColor\'%3E%3Cpath d=\'M5 8.375h8v1.25H5z\'%3E%3C/path%3E%3Cpath d=\'M9.625 5v8h-1.25V5z\'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");\n\n --toolbarButton-presentationMode-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M1.5 3C1.5 2.72421 1.72421 2.5 2 2.5H14C14.2758 2.5 14.5 2.72421 14.5 3V11C14.5 11.2758 14.2758 11.5 14 11.5H2C1.72421 11.5 1.5 11.2758 1.5 11V3ZM2 1C0.895786 1 0 1.89579 0 3V11C0 12.1042 0.895786 13 2 13H2.64979L1.35052 15.2499L2.64949 16L4.38194 13H11.6391L13.3715 16L14.6705 15.2499L13.3712 13H14C15.1042 13 16 12.1042 16 11V3C16 1.89579 15.1042 1 14 1H2ZM5.79501 4.64401V9.35601C5.79501 9.85001 6.32901 10.159 6.75701 9.91401L10.88 7.55801C11.312 7.31201 11.312 6.68901 10.88 6.44201L6.75701 4.08601C6.32801 3.84101 5.79501 4.15001 5.79501 4.64401Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-print-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M13 4H12V2C12 1.46957 11.7893 0.960859 11.4142 0.585786C11.0391 0.210714 10.5304 0 10 0L6 0C5.46957 0 4.96086 0.210714 4.58579 0.585786C4.21071 0.960859 4 1.46957 4 2V4H3C2.46957 4 1.96086 4.21071 1.58579 4.58579C1.21071 4.96086 1 5.46957 1 6V11C1 11.5304 1.21071 12.0391 1.58579 12.4142C1.96086 12.7893 2.46957 13 3 13H4V14C4 14.5304 4.21071 15.0391 4.58579 15.4142C4.96086 15.7893 5.46957 16 6 16H10C10.5304 16 11.0391 15.7893 11.4142 15.4142C11.7893 15.0391 12 14.5304 12 14V13H13C13.5304 13 14.0391 12.7893 14.4142 12.4142C14.7893 12.0391 15 11.5304 15 11V6C15 5.46957 14.7893 4.96086 14.4142 4.58579C14.0391 4.21071 13.5304 4 13 4V4ZM10.75 14.15L10.15 14.75H5.85L5.25 14.15V10H10.75V14.15ZM10.75 4H5.25V1.85L5.85 1.25H10.15L10.75 1.85V4V4ZM13 7.6L12.6 8H11.4L11 7.6V6.4L11.4 6H12.6L13 6.4V7.6Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-openFile-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M10.4287 1.08398C10.5111 1.02905 10.608 0.999824 10.707 1H14.7L15 1.3V5.293C15 5.39194 14.9706 5.48864 14.9156 5.57088C14.8606 5.65311 14.7824 5.71718 14.691 5.75498C14.5996 5.79277 14.499 5.80259 14.402 5.78319C14.3049 5.76379 14.2159 5.71605 14.146 5.646L12.973 4.473L12.692 4.192L9.067 7.817C8.94923 7.93347 8.79034 7.99888 8.6247 7.99907C8.45907 7.99925 8.30003 7.93421 8.182 7.818C8.06518 7.70036 7.99962 7.54129 7.99962 7.3755C7.99962 7.20971 8.06518 7.05065 8.182 6.933L11.807 3.308L10.353 1.854C10.2829 1.78407 10.2351 1.6949 10.2158 1.59779C10.1964 1.50068 10.2063 1.40001 10.2442 1.30854C10.2821 1.21707 10.3464 1.13891 10.4287 1.08398ZM7.81694 2.06694C7.69973 2.18415 7.54076 2.25 7.375 2.25H2.85L2.25 2.85V13.15L2.85 13.75H13.15L13.75 13.15V8.625C13.75 8.45924 13.8158 8.30027 13.9331 8.18306C14.0503 8.06585 14.2092 8 14.375 8C14.5408 8 14.6997 8.06585 14.8169 8.18306C14.9342 8.30027 15 8.45924 15 8.625V13C15 13.5304 14.7893 14.0391 14.4142 14.4142C14.0391 14.7893 13.5304 15 13 15H3C2.46957 15 1.96086 14.7893 1.58579 14.4142C1.21071 14.0391 1 13.5304 1 13V3C1 2.46957 1.21071 1.96086 1.58579 1.58579C1.96086 1.21071 2.46957 1 3 1H7.375C7.54076 1 7.69973 1.06585 7.81694 1.18306C7.93415 1.30027 8 1.45924 8 1.625C8 1.79076 7.93415 1.94973 7.81694 2.06694Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-editorSignature-icon: url("data:image/svg+xml,%3Csvg fill=\'%23000000\' width=\'64\' height=\'64\' viewBox=\'0 0 56 56\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M 1.1883 43.4869 L 13.6935 43.4869 C 13.4483 44.4300 13.3162 45.3542 13.3162 46.2030 C 13.3162 49.2397 15.0138 51.4088 18.5786 51.4088 C 22.9168 51.4088 26.4250 48.3532 28.6884 43.4869 L 54.8118 43.4869 C 55.4719 43.4869 56 42.9777 56 42.3175 C 56 41.6574 55.4719 41.1670 54.8118 41.1670 L 29.6315 41.1670 C 30.6877 38.0737 31.3290 34.4523 31.4611 30.5290 C 32.6494 30.2650 33.8941 30.1329 35.1769 30.1329 C 35.8371 30.1329 36.2141 30.4159 36.2141 30.9063 C 36.2141 32.5472 35.3276 33.8298 35.3276 35.4708 C 35.3276 36.9043 36.3841 37.7719 37.7608 37.7719 C 41.5896 37.7719 46.2108 31.2269 47.7385 31.2269 C 49.1342 31.2269 47.3990 37.1117 52.1522 37.1117 C 52.9256 37.1117 53.9253 36.9043 54.6986 36.4139 C 55.1513 36.0932 55.4719 35.6405 55.4719 35.0558 C 55.4719 34.3391 55.0192 33.7544 54.2648 33.7544 C 53.6046 33.7544 53.0577 34.3013 52.4164 34.3013 C 50.3792 34.3013 52.3218 28.0393 48.5687 28.0393 C 45.2868 28.0393 40.1561 34.4145 38.8548 34.4145 C 38.6852 34.4145 38.5531 34.3202 38.5531 34.0939 C 38.5531 33.4149 39.4017 31.8871 39.4017 30.3593 C 39.4017 28.4732 37.8361 27.2660 35.3844 27.2660 C 34.0451 27.2660 32.7248 27.3980 31.4611 27.6432 C 31.0461 17.7032 26.3307 9.8756 19.1256 9.8756 C 14.2782 9.8756 10.5436 14.0063 10.5436 19.2687 C 10.5436 25.4176 14.5423 30.6799 19.5217 34.1693 C 17.3149 36.3384 15.5985 38.8093 14.5423 41.1670 L 1.1883 41.1670 C .5281 41.1670 0 41.6574 0 42.3175 C 0 42.9777 .5281 43.4869 1.1883 43.4869 Z M 13.4106 19.2687 C 13.4106 15.5907 15.9003 12.7426 19.1256 12.7426 C 24.7841 12.7426 28.4432 19.7780 28.6130 28.4166 C 26.0101 29.3219 23.6335 30.6988 21.5776 32.3397 C 17.6544 29.6237 13.4106 25.1347 13.4106 19.2687 Z M .6413 37.1495 C 1.1317 37.6399 1.8673 37.6210 2.3765 37.1495 L 4.7342 34.7918 L 7.0919 37.1495 C 7.5823 37.6399 8.3368 37.6399 8.8272 37.1495 C 9.3176 36.6591 9.3176 35.9046 8.8272 35.4142 L 6.4695 33.0754 L 8.8272 30.7177 C 9.3176 30.2273 9.3176 29.4917 8.8272 29.0012 C 8.3368 28.4920 7.5823 28.5109 7.0919 29.0012 L 4.7342 31.3401 L 2.3765 29.0012 C 1.8673 28.4920 1.1317 28.4920 .6413 29.0012 C .1509 29.4917 .1509 30.2461 .6413 30.7177 L 2.9990 33.0754 L .6413 35.4142 C .1509 35.9235 .1509 36.6591 .6413 37.1495 Z M 23.6335 36.5459 C 23.8787 36.6591 24.1051 36.7156 24.3314 36.7156 C 25.1047 36.7156 25.6517 36.1121 25.6517 35.4708 C 25.6517 34.9992 25.4254 34.5466 24.8784 34.2825 C 24.6143 34.1505 24.3503 34.0184 24.0674 33.8675 C 25.4254 32.9056 26.9343 32.0568 28.5564 31.4155 C 28.3300 35.0558 27.6322 38.4132 26.5571 41.1670 L 17.5790 41.1670 C 18.5597 39.3185 20.0309 37.3758 21.8982 35.6594 C 22.4641 35.9800 23.0488 36.2630 23.6335 36.5459 Z M 16.2586 45.6560 C 16.2586 44.9959 16.3718 44.2603 16.6170 43.4869 L 25.4820 43.4869 C 23.7844 46.6180 21.5022 48.5418 18.8993 48.5418 C 17.0886 48.5418 16.2586 47.3536 16.2586 45.6560 Z\'/%3E%3C/svg%3E");\n --toolbarButton-download-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M9.79407 7.31811H7.86307C7.41807 7.31811 7.19407 7.85711 7.50907 8.17211L10.1911 10.8541C10.3861 11.0491 10.7031 11.0491 10.8981 10.8541L13.5801 8.17211C13.8951 7.85711 13.6721 7.31811 13.2261 7.31811H11.2941V4.38211H11.2961V3.13211H11.2941V2.30811H9.79407V3.13211H9.79107V4.38211H9.79507V7.31811H9.79407Z\' fill=\'black\'/%3E%3Cpath d=\'M14 3.13208H12.796V4.38208H14C14.345 4.38208 14.625 4.66208 14.625 5.00708V13.0071C14.625 13.3521 14.345 13.6321 14 13.6321H2C1.655 13.6321 1.375 13.3521 1.375 13.0071V3.00708C1.375 2.66208 1.655 2.38208 2 2.38208H5.643C5.82 2.38208 5.989 2.45808 6.108 2.58908L7.536 4.17508C7.654 4.30708 7.823 4.38208 8 4.38208H8.291V3.13208H8.278L7.036 1.75208C6.681 1.35808 6.173 1.13208 5.642 1.13208H2C0.966 1.13208 0.125 1.97308 0.125 3.00708V13.0071C0.125 14.0411 0.966 14.8821 2 14.8821H14C15.034 14.8821 15.875 14.0411 15.875 13.0071V5.00708C15.875 3.97308 15.034 3.13208 14 3.13208Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-bookmark-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M2 3.5C1.72421 3.5 1.5 3.72421 1.5 4V12C1.5 12.2758 1.72421 12.5 2 12.5H14C14.2758 12.5 14.5 12.2758 14.5 12V4C14.5 3.72421 14.2758 3.5 14 3.5H2ZM0 4C0 2.89579 0.895786 2 2 2H14C15.1042 2 16 2.89579 16 4V12C16 13.1042 15.1042 14 14 14H2C0.895786 14 0 13.1042 0 12V4ZM8.75 8.75H7.25V7.25H8.75V8.75ZM8.00001 4.625C5.91142 4.625 4.14736 5.94291 3.45159 7.77847L3.36761 8L3.45159 8.22153C4.14736 10.0571 5.91142 11.375 8.00001 11.375C10.0886 11.375 11.8527 10.0571 12.5484 8.22153L12.6324 8L12.5484 7.77847C11.8527 5.94291 10.0886 4.625 8.00001 4.625ZM8.00001 10.125C6.53912 10.125 5.28508 9.25455 4.71282 8C5.28508 6.74545 6.53912 5.875 8.00001 5.875C9.4609 5.875 10.7149 6.74545 11.2872 8C10.7149 9.25455 9.4609 10.125 8.00001 10.125Z\' fill=\'black\'/%3E%3C/svg%3E");\n\n --toolbarButton-viewThumbnail-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3.5 2C3.5 1.72421 3.72421 1.5 4 1.5H5.25C5.52579 1.5 5.75 1.72421 5.75 2V5.25C5.75 5.52579 5.52579 5.75 5.25 5.75H4C3.72421 5.75 3.5 5.52579 3.5 5.25V2ZM4 0C2.89579 0 2 0.895786 2 2V5.25C2 6.35421 2.89579 7.25 4 7.25H5.25C6.35421 7.25 7.25 6.35421 7.25 5.25V2C7.25 0.895786 6.35421 0 5.25 0H4ZM3.5 10.75C3.5 10.4742 3.72421 10.25 4 10.25H5.25C5.52579 10.25 5.75 10.4742 5.75 10.75V14C5.75 14.2758 5.52579 14.5 5.25 14.5H4C3.72421 14.5 3.5 14.2758 3.5 14V10.75ZM4 8.75C2.89579 8.75 2 9.64579 2 10.75V14C2 15.1042 2.89579 16 4 16H5.25C6.35421 16 7.25 15.1042 7.25 14V10.75C7.25 9.64579 6.35421 8.75 5.25 8.75H4ZM10.75 1.5C10.4742 1.5 10.25 1.72421 10.25 2V5.25C10.25 5.52579 10.4742 5.75 10.75 5.75H12C12.2758 5.75 12.5 5.52579 12.5 5.25V2C12.5 1.72421 12.2758 1.5 12 1.5H10.75ZM8.75 2C8.75 0.895786 9.64579 0 10.75 0H12C13.1042 0 14 0.895786 14 2V5.25C14 6.35421 13.1042 7.25 12 7.25H10.75C9.64579 7.25 8.75 6.35421 8.75 5.25V2ZM10.25 10.75C10.25 10.4742 10.4742 10.25 10.75 10.25H12C12.2758 10.25 12.5 10.4742 12.5 10.75V14C12.5 14.2758 12.2758 14.5 12 14.5H10.75C10.4742 14.5 10.25 14.2758 10.25 14V10.75ZM10.75 8.75C9.64579 8.75 8.75 9.64579 8.75 10.75V14C8.75 15.1042 9.64579 16 10.75 16H12C13.1042 16 14 15.1042 14 14V10.75C14 9.64579 13.1042 8.75 12 8.75H10.75Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-viewOutline-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3 1.25H15V2.75H3V1.25ZM15 5.25H3V6.75H15V5.25ZM15 13.25H3V14.75H15V13.25ZM15 9.25H6V10.75H15V9.25ZM0 5.25H1.5V6.75H0V5.25ZM1.5 13.25H0V14.75H1.5V13.25ZM0 1.25H1.5V2.75H0V1.25ZM4.5 9.25H3V10.75H4.5V9.25Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-viewAttachments-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3.5 3.75C3.5 1.67879 5.17879 0 7.25 0C9.32121 0 11 1.67879 11 3.75V10.25C11 11.4922 9.99221 12.5 8.75 12.5C7.50779 12.5 6.5 11.4922 6.5 10.25V3.5H8V10.25C8 10.6638 8.33621 11 8.75 11C9.16379 11 9.5 10.6638 9.5 10.25V3.75C9.5 2.50721 8.49279 1.5 7.25 1.5C6.00721 1.5 5 2.50721 5 3.75V10.75C5 12.8208 6.67921 14.5 8.75 14.5C10.8208 14.5 12.5 12.8208 12.5 10.75V3.5H14V10.75C14 13.6492 11.6492 16 8.75 16C5.85079 16 3.5 13.6492 3.5 10.75V3.75Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-viewLayers-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M8.36645 2.34562C8.13878 2.21813 7.86122 2.21813 7.63355 2.34562L1.38355 5.84562C1.14669 5.97826 1 6.22853 1 6.5C1 6.77147 1.14669 7.02174 1.38355 7.15438L7.63355 10.6544C7.86122 10.7819 8.13878 10.7819 8.36645 10.6544L14.6165 7.15438C14.8533 7.02174 15 6.77147 15 6.5C15 6.22853 14.8533 5.97826 14.6165 5.84562L8.36645 2.34562ZM8 9.14041L3.28499 6.5L8 3.85959L12.715 6.5L8 9.14041ZM1.63647 9.0766L7.99999 12.6404L14.3255 9.09761L15.0585 10.4063L8.36649 14.1543C8.13881 14.2818 7.86122 14.2819 7.63353 14.1543L0.903534 10.3853L1.63647 9.0766Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-currentOutlineItem-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M10.803 4.74998V6.02436C10.803 6.39302 10.3571 6.57793 10.0967 6.31753L7.87716 4.098C7.71566 3.93649 7.71566 3.67434 7.87716 3.51283L10.0967 1.29329C10.3571 1.0329 10.8036 1.21722 10.8036 1.58588V3.24998H15V4.74998H10.803ZM8 1.24998H3V2.74998H6.5L8 1.24998ZM6.5 5.24998H3V6.74998H8L6.5 5.24998ZM3 13.25H15V14.75H3V13.25ZM6 9.24998H15V10.75H6V9.24998ZM1.5 5.24998H0V6.74998H1.5V5.24998ZM0 13.25H1.5V14.75H0V13.25ZM1.5 1.24998H0V2.74998H1.5V1.24998ZM3 9.24998H4.5V10.75H3V9.24998Z\' fill=\'black\'/%3E%3C/svg%3E");\n --toolbarButton-search-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M10.089 10.973L13.934 14.817C13.9918 14.8754 14.0605 14.9218 14.1364 14.9534C14.2122 14.9851 14.2936 15.0013 14.3757 15.0012C14.4579 15.0011 14.5392 14.9847 14.6149 14.9529C14.6907 14.9211 14.7594 14.8746 14.817 14.816C14.875 14.7579 14.921 14.6889 14.9523 14.613C14.9836 14.5372 14.9997 14.4559 14.9996 14.3738C14.9995 14.2917 14.9833 14.2104 14.9518 14.1346C14.9203 14.0588 14.8741 13.99 14.816 13.932L10.983 10.1L10.989 9.67299C11.489 8.96674 11.8152 8.15249 11.9413 7.29642C12.0674 6.44034 11.9897 5.5666 11.7145 4.74621C11.4394 3.92582 10.9745 3.18192 10.3578 2.57498C9.74104 1.96804 8.98979 1.51519 8.16509 1.25322C7.34039 0.991255 6.46551 0.927572 5.61157 1.06735C4.75763 1.20712 3.94871 1.54641 3.25057 2.05764C2.55243 2.56887 1.98476 3.23761 1.59371 4.0095C1.20265 4.7814 0.999236 5.63468 1 6.49999C1 7.95868 1.57946 9.35763 2.61091 10.3891C3.64236 11.4205 5.04131 12 6.5 12C7.689 12 8.788 11.62 9.687 10.978L10.089 10.973V10.973ZM6.5 10.75C4.157 10.75 2.25 8.84299 2.25 6.49999C2.25 4.15699 4.157 2.24999 6.5 2.24999C8.843 2.24999 10.75 4.15699 10.75 6.49999C10.75 8.84299 8.843 10.75 6.5 10.75Z\' fill=\'black\'/%3E%3C/svg%3E");\n --findbarButton-previous-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M5.001 8.352L10.466 13.818C10.5845 13.9303 10.7421 13.9918 10.9053 13.9895C11.0685 13.9872 11.2244 13.9212 11.3397 13.8057C11.4549 13.6902 11.5205 13.5342 11.5225 13.3709C11.5244 13.2077 11.4625 13.0502 11.35 12.932L6.416 7.999L11.349 3.067C11.4614 2.94864 11.5231 2.79106 11.521 2.62786C11.5189 2.46466 11.4531 2.30874 11.3377 2.19333C11.2223 2.07792 11.0663 2.01215 10.9031 2.01003C10.7399 2.00792 10.5824 2.06962 10.464 2.182L5 7.647L5.001 8.352Z\' fill=\'black\'/%3E%3C/svg%3E");\n --findbarButton-next-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M10.999 8.352L5.534 13.818C5.41551 13.9303 5.25786 13.9918 5.09466 13.9895C4.93146 13.9872 4.77561 13.9212 4.66033 13.8057C4.54505 13.6902 4.47945 13.5342 4.47752 13.3709C4.47559 13.2077 4.53748 13.0502 4.65 12.932L9.585 7.998L4.651 3.067C4.53862 2.94864 4.47691 2.79106 4.47903 2.62786C4.48114 2.46466 4.54692 2.30874 4.66233 2.19333C4.77774 2.07792 4.93366 2.01215 5.09686 2.01003C5.26006 2.00792 5.41763 2.06962 5.536 2.182L11 7.647L10.999 8.352Z\' fill=\'black\'/%3E%3C/svg%3E");\n\n --secondaryToolbarButton-firstPage-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M14 3.5H2V5H14V3.5ZM8 8.811L12.939 13.75L14.001 12.689L8.531 7.219C8.238 6.926 7.763 6.926 7.47 7.219L2 12.689L3.061 13.75L8 8.811Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-lastPage-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M8 8.189L12.939 3.25L14 4.311L8.531 9.781C8.238 10.074 7.763 10.074 7.47 9.781L2 4.311L3.061 3.25L8 8.189ZM14 13.5V12H2V13.5H14Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-rotateCcw-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3.4105 4.83612L4.77001 6.19601C5.06701 6.49201 4.85701 7.00001 4.43701 7.00001H0.862006C0.602006 7.00001 0.391006 6.78901 0.391006 6.52901V2.95401C0.391006 2.53401 0.899006 2.32401 1.19601 2.62101L2.32796 3.75328C3.67958 1.78973 5.9401 0.5 8.5 0.5C12.636 0.5 16 3.864 16 8C16 12.136 12.636 15.5 8.5 15.5C4.704 15.5 1.566 12.663 1.075 9H2.59C3.068 11.833 5.532 14 8.5 14C11.809 14 14.5 11.309 14.5 8C14.5 4.691 11.809 2 8.5 2C6.35262 2 4.46893 3.13503 3.4105 4.83612Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-rotateCw-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M12.5895 4.83613L11.23 6.19601C10.933 6.49201 11.143 7.00001 11.563 7.00001H15.138C15.398 7.00001 15.609 6.78901 15.609 6.52901V2.95401C15.609 2.53401 15.101 2.32401 14.804 2.62101L13.672 3.75328C12.3204 1.78973 10.0599 0.5 7.5 0.5C3.364 0.5 0 3.864 0 8C0 12.136 3.364 15.5 7.5 15.5C11.296 15.5 14.434 12.663 14.925 9H13.41C12.932 11.833 10.468 14 7.5 14C4.191 14 1.5 11.309 1.5 8C1.5 4.691 4.191 2 7.5 2C9.64738 2 11.5311 3.13503 12.5895 4.83613Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-selectTool-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M0.371588 2.93131C-0.203366 1.33422 1.3342-0.20335 2.93129 0.371603L2.93263 0.372085L12.0716 3.68171C12.0718 3.68178 12.0714 3.68163 12.0716 3.68171C13.4459 4.17758 13.8478 5.9374 12.8076 6.9776L11.8079 7.97727L14.6876 10.8569C15.4705 11.6398 15.4705 12.9047 14.6876 13.6876L13.6476 14.7276C12.8647 15.5105 11.5998 15.5105 10.8169 14.7276L7.93725 11.8479L6.97758 12.8076C5.93739 13.8478 4.17779 13.4465 3.68192 12.0722C3.68184 12.072 3.682 12.0724 3.68192 12.0722L0.371588 2.93131ZM1.78292 2.42323C1.78298 2.4234 1.78286 2.42305 1.78292 2.42323L5.09281 11.5629C5.21725 11.9082 5.65728 12.0066 5.91692 11.7469L7.93725 9.72661L11.8776 13.6669C12.0747 13.864 12.3898 13.864 12.5869 13.6669L13.6269 12.6269C13.824 12.4298 13.824 12.1147 13.6269 11.9176L9.68659 7.97727L11.7469 5.91694C12.0066 5.65729 11.9081 5.21727 11.5629 5.09283L11.5619 5.09245L2.42321 1.78293C2.42304 1.78287 2.42339 1.783 2.42321 1.78293C2.02067 1.63847 1.63846 2.02069 1.78292 2.42323Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-handTool-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M7.75 2.125C7.75 1.78021 8.03021 1.5 8.375 1.5C8.71979 1.5 9 1.78021 9 2.125V3.125V8H10.5V3.125C10.5 2.78021 10.7802 2.5 11.125 2.5C11.4698 2.5 11.75 2.78021 11.75 3.125V4.625V8H13.25V4.625C13.25 4.28021 13.5302 4 13.875 4C14.2198 4 14.5 4.28021 14.5 4.625V12.0188L13.3802 13.6628C13.2954 13.7872 13.25 13.9344 13.25 14.085V16H14.75V14.3162L15.8698 12.6722C15.9546 12.5478 16 12.4006 16 12.25V4.625C16 3.45179 15.0482 2.5 13.875 2.5C13.6346 2.5 13.4035 2.53996 13.188 2.6136C12.959 1.68724 12.1219 1 11.125 1C10.8235 1 10.5366 1.06286 10.2768 1.17618C9.9281 0.478968 9.20726 0 8.375 0C7.54274 0 6.8219 0.478968 6.47323 1.17618C6.21337 1.06286 5.9265 1 5.625 1C4.45179 1 3.5 1.95179 3.5 3.125V7.25317C2.66504 6.54282 1.41035 6.58199 0.621672 7.37067C-0.208221 8.20056-0.208221 9.54644 0.621672 10.3763L0.62188 10.3765L5.499 15.2498V16H6.999V14.939C6.999 14.74 6.9199 14.5491 6.77912 14.4085L1.68233 9.31567C1.43823 9.07156 1.43823 8.67544 1.68233 8.43133C1.92644 8.18722 2.32257 8.18722 2.56667 8.43133L3.71967 9.58433C3.93417 9.79883 4.25676 9.863 4.53701 9.74691C4.81727 9.63082 5 9.35735 5 9.054V3.125C5 2.78021 5.28022 2.5 5.625 2.5C5.96921 2.5 6.24906 2.77927 6.25 3.12326V8H7.75L7.75 3.125L7.75 3.12178V2.125Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-scrollPage-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3.5 2C3.5 1.72421 3.72421 1.5 4 1.5H12C12.2758 1.5 12.5 1.72421 12.5 2V14C12.5 14.2758 12.2758 14.5 12 14.5H4C3.72421 14.5 3.5 14.2758 3.5 14V2ZM4 0C2.89579 0 2 0.895786 2 2V14C2 15.1042 2.89579 16 4 16H12C13.1042 16 14 15.1042 14 14V2C14 0.895786 13.1042 0 12 0H4ZM5.89301 6H7.25V10H5.89301C5.54301 10 5.36801 10.423 5.61501 10.67L7.72101 12.776C7.87401 12.929 8.12301 12.929 8.27601 12.776L10.383 10.669C10.63 10.422 10.455 9.99902 10.105 9.99902H8.75V6H10.106C10.456 6 10.632 5.577 10.383 5.331L8.27601 3.224C8.12301 3.071 7.87401 3.071 7.72101 3.224L5.61501 5.33C5.36801 5.577 5.54301 6 5.89301 6Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-scrollVertical-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M2 1V1.25H2.01476C2.11834 2.13279 2.7621 3 3.78 3H11.72C12.7379 3 13.3817 2.13279 13.4852 1.25H13.5V1H12C12 1.18133 11.9391 1.32279 11.8697 1.40708C11.8018 1.48961 11.7454 1.5 11.72 1.5H3.78C3.75458 1.5 3.69823 1.48961 3.63029 1.40708C3.5609 1.32279 3.5 1.18133 3.5 1H2ZM4 6C3.72386 6 3.5 6.22386 3.5 6.5V10C3.5 10.2761 3.72386 10.5 4 10.5H11.5C11.7761 10.5 12 10.2761 12 10V6.5C12 6.22386 11.7761 6 11.5 6H4ZM2 6.5C2 5.39543 2.89543 4.5 4 4.5H11.5C12.6046 4.5 13.5 5.39543 13.5 6.5V10C13.5 11.1046 12.6046 12 11.5 12H4C2.89543 12 2 11.1046 2 10V6.5ZM3.78 13.5C2.7621 13.5 2.11834 14.3672 2.01476 15.25H2V15.5H3.5C3.5 15.3187 3.5609 15.1772 3.63029 15.0929C3.69823 15.0104 3.75458 15 3.78 15H11.72C11.7454 15 11.8018 15.0104 11.8697 15.0929C11.9391 15.1772 12 15.3187 12 15.5H13.5V15.25H13.4852C13.3817 14.3672 12.7379 13.5 11.72 13.5H3.78Z\' fill=\'black\'/%3E%3C/svg%3E");\n\n --secondaryToolbarButton-scrollHorizontal-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M3 3.78C3 2.7621 2.13279 2.11834 1.25 2.01476V2H1V3.5C1.18133 3.5 1.32279 3.5609 1.40708 3.63029C1.48961 3.69823 1.5 3.75458 1.5 3.78V11.72C1.5 11.7454 1.48961 11.8018 1.40708 11.8697C1.32279 11.9391 1.18133 12 1 12V13.5H1.25V13.4852C2.13279 13.3817 3 12.7379 3 11.72V3.78ZM10.5 4C10.5 3.72386 10.2761 3.5 10 3.5H6.5C6.22386 3.5 6 3.72386 6 4V11.5C6 11.7761 6.22386 12 6.5 12H10C10.2761 12 10.5 11.7761 10.5 11.5V4ZM10 2C11.1046 2 12 2.89543 12 4V11.5C12 12.6046 11.1046 13.5 10 13.5H6.5C5.39543 13.5 4.5 12.6046 4.5 11.5V4C4.5 2.89543 5.39543 2 6.5 2H10ZM15.5 2H15.25V2.01476C14.3672 2.11834 13.5 2.7621 13.5 3.78V11.72C13.5 12.7379 14.3672 13.3817 15.25 13.4852V13.5H15.5V12C15.3187 12 15.1772 11.9391 15.0929 11.8697C15.0104 11.8018 15 11.7454 15 11.72V3.78C15 3.75458 15.0104 3.69823 15.0929 3.63029C15.1772 3.5609 15.3187 3.5 15.5 3.5V2Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-scrollWrapped-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M2.5 1C2.5 1.27579 2.72421 1.5 3 1.5H5C5.27579 1.5 5.5 1.27579 5.5 1H7C7 2.10421 6.10421 3 5 3H3C1.89579 3 1 2.10421 1 1H2.5ZM2.5 6C2.5 5.72421 2.72421 5.5 3 5.5H5C5.27579 5.5 5.5 5.72421 5.5 6V10C5.5 10.2758 5.27579 10.5 5 10.5H3C2.72421 10.5 2.5 10.2758 2.5 10V6ZM3 4C1.89579 4 1 4.89579 1 6V10C1 11.1042 1.89579 12 3 12H5C6.10421 12 7 11.1042 7 10V6C7 4.89579 6.10421 4 5 4H3ZM10 6C10 5.72421 10.2242 5.5 10.5 5.5H12.5C12.7758 5.5 13 5.72421 13 6V10C13 10.2758 12.7758 10.5 12.5 10.5H10.5C10.2242 10.5 10 10.2758 10 10V6ZM10.5 4C9.39579 4 8.5 4.89579 8.5 6V10C8.5 11.1042 9.39579 12 10.5 12H12.5C13.6042 12 14.5 11.1042 14.5 10V6C14.5 4.89579 13.6042 4 12.5 4H10.5ZM3 14.5C2.72421 14.5 2.5 14.7242 2.5 15H1C1 13.8958 1.89579 13 3 13H5C6.10421 13 7 13.8958 7 15H5.5C5.5 14.7242 5.27579 14.5 5 14.5H3ZM10 15C10 14.7242 10.2242 14.5 10.5 14.5H12.5C12.7758 14.5 13 14.7242 13 15H14.5C14.5 13.8958 13.6042 13 12.5 13H10.5C9.39579 13 8.5 13.8958 8.5 15H10ZM10.5 1.5C10.2242 1.5 10 1.27579 10 1H8.5C8.5 2.10421 9.39579 3 10.5 3H12.5C13.6042 3 14.5 2.10421 14.5 1H13C13 1.27579 12.7758 1.5 12.5 1.5H10.5Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-spreadNone-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M4 1.5C3.72421 1.5 3.5 1.72421 3.5 2V14C3.5 14.2758 3.72421 14.5 4 14.5H12C12.2758 14.5 12.5 14.2758 12.5 14V2C12.5 1.72421 12.2758 1.5 12 1.5H4ZM2 2C2 0.895786 2.89579 0 4 0H12C13.1042 0 14 0.895786 14 2V14C14 15.1042 13.1042 16 12 16H4C2.89579 16 2 15.1042 2 14V2Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-spreadOdd-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M1.5 4C1.5 3.72421 1.72421 3.5 2 3.5H7.25V13H2C1.72421 13 1.5 12.7758 1.5 12.5V4ZM8.75 13V3.5H14C14.2758 3.5 14.5 3.72421 14.5 4V12.5C14.5 12.7758 14.2758 13 14 13H8.75ZM2 2C0.895786 2 0 2.89579 0 4V12.5C0 13.6042 0.895786 14.5 2 14.5H14C15.1042 14.5 16 13.6042 16 12.5V4C16 2.89579 15.1042 2 14 2H2ZM4.75 5H3V6.5H4V11.5H5.5V5.75C5.5 5.33579 5.16421 5 4.75 5ZM10 6.5H11.5V7.28647L10.4146 7.82918C10.1605 7.95622 10 8.21592 10 8.5V10.75C10 11.1642 10.3358 11.5 10.75 11.5H13V10H11.5V8.96353L12.5854 8.42082C12.8395 8.29378 13 8.03408 13 7.75V5.75C13 5.33579 12.6642 5 12.25 5H10V6.5Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-spreadEven-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath fill-rule=\'evenodd\' d=\'M2 3.5C1.72421 3.5 1.5 3.72421 1.5 4V12.5C1.5 12.7758 1.72421 13 2 13H7.25V3.5H2ZM14 13H8.75V3.5H14C14.2758 3.5 14.5 3.72421 14.5 4V12.5C14.5 12.7758 14.2758 13 14 13ZM0 4C0 2.89579 0.895786 2 2 2H14C15.1042 2 16 2.89579 16 4V12.5C16 13.6042 15.1042 14.5 14 14.5H2C0.895786 14.5 0 13.6042 0 12.5V4ZM10 6.5H11.5V7.5H10V9H11.5V10H10V11.5H12.25C12.6642 11.5 13 11.1642 13 10.75V5.75C13 5.33579 12.6642 5 12.25 5H10V6.5ZM4.5 6.5H3V5H5.25C5.66421 5 6 5.33579 6 5.75V7.75C6 8.03408 5.8395 8.29378 5.58541 8.42082L4.5 8.96353V10H6V11.5H3.75C3.33579 11.5 3 11.1642 3 10.75V8.5C3 8.21592 3.1605 7.95622 3.41459 7.82918L4.5 7.28647V6.5Z\' fill=\'black\'/%3E%3C/svg%3E");\n --secondaryToolbarButton-documentProperties-icon: url("data:image/svg+xml,%3Csvg width=\'16\' height=\'16\' viewBox=\'0 0 16 16\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 11.5899 4.41015 14.5 8 14.5C11.5899 14.5 14.5 11.5899 14.5 8C14.5 4.41015 11.5899 1.5 8 1.5ZM0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8ZM8.75 4V5.5H7.25V4H8.75ZM8.75 12V7H7.25V12H8.75Z\' fill=\'black\'/%3E%3C/svg%3E");\n}\n\n[dir="rtl"]:root {\n --dir-factor: -1;\n --inline-start: right;\n --inline-end: left;\n}\n\n@media screen and (forced-colors: active) {\n :root {\n --button-hover-color: Highlight;\n --doorhanger-hover-bg-color: Highlight;\n --toolbar-icon-opacity: 1;\n --toolbar-icon-bg-color: ButtonText;\n --toolbar-icon-hover-bg-color: ButtonFace;\n --toolbar-border-color: CanvasText;\n --toolbar-border-bottom: 1px solid var(--toolbar-border-color);\n --toolbar-box-shadow: none;\n --toggled-btn-color: HighlightText;\n --toggled-btn-bg-color: LinkText;\n --doorhanger-hover-color: ButtonFace;\n --doorhanger-border-color-whcm: 1px solid ButtonText;\n --doorhanger-triangle-opacity-whcm: 0;\n --dialog-button-border: 1px solid Highlight;\n --dialog-button-hover-bg-color: Highlight;\n --dialog-button-hover-color: ButtonFace;\n --dropdown-btn-border: 1px solid ButtonText;\n --field-border-color: ButtonText;\n --main-color: CanvasText;\n --separator-color: GrayText;\n --doorhanger-separator-color: GrayText;\n --toolbarSidebar-box-shadow: none;\n --toolbarSidebar-border-bottom: 1px solid var(--toolbar-border-color);\n }\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n :root {\n --sidebar-transition-duration: 0;\n }\n}\n\n/* ============================================================================\n * Layout - Containers, sidebar, viewer\n * ============================================================================ */\n\nbody,\nhtml {\n height: 100%;\n}\n\n#websign-main-container .hidden,\n[hidden] {\n display: none !important;\n}\n\n#websign-viewer-container.pdfPresentationMode:-webkit-full-screen {\n top: 0;\n background-color: rgba(0, 0, 0, 1);\n width: 100%;\n height: 100%;\n overflow: hidden;\n cursor: none;\n -webkit-user-select: none;\n user-select: none;\n}\n\n#websign-viewer-container.pdfPresentationMode:fullscreen {\n top: 0;\n background-color: rgba(0, 0, 0, 1);\n width: 100%;\n height: 100%;\n overflow: hidden;\n cursor: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n.pdfPresentationMode:-webkit-full-screen section:not([data-internal-link]) {\n pointer-events: none;\n}\n\n.pdfPresentationMode:fullscreen section:not([data-internal-link]) {\n pointer-events: none;\n}\n\n.pdfPresentationMode:-webkit-full-screen .textLayer span {\n cursor: none;\n}\n\n.pdfPresentationMode:fullscreen .textLayer span {\n cursor: none;\n}\n\n.pdfPresentationMode.pdfPresentationModeControls > *,\n.pdfPresentationMode.pdfPresentationModeControls .textLayer span {\n cursor: default;\n}\n\n#websign-outer-container {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n#websign-sidebar-container {\n position: absolute;\n top: 50px;\n bottom: 0;\n inset-inline-start: calc(-1 * var(--sidebar-width));\n width: var(--sidebar-width);\n visibility: hidden;\n z-index: 100;\n font: message-box;\n border-top: 1px solid rgba(51, 51, 51, 1);\n -webkit-border-end: var(--doorhanger-border-color-whcm);\n border-inline-end: var(--doorhanger-border-color-whcm);\n transition-property: inset-inline-start;\n transition-duration: var(--sidebar-transition-duration);\n transition-timing-function: var(--sidebar-transition-timing-function);\n}\n\n#websign-outer-container.sidebarMoving #websign-sidebar-container,\n#websign-outer-container.sidebarOpen #websign-sidebar-container {\n visibility: visible;\n}\n#websign-outer-container.sidebarOpen #websign-sidebar-container {\n inset-inline-start: 0;\n}\n\n#websign-main-container {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n min-width: 300px;\n}\n\n#sidebarContent {\n top: 50px;\n bottom: 0;\n inset-inline-start: 0;\n overflow: auto;\n position: absolute;\n width: 100%;\n box-shadow: inset calc(-1px * var(--dir-factor)) 0 0 rgba(0, 0, 0, 0.25);\n}\n\n#websign-viewer-container {\n overflow: auto;\n position: absolute;\n top: 50px;\n right: 0;\n bottom: 0;\n left: 0;\n outline: none;\n background-color: #fbfbfb;\n}\n#websign-viewer-container:not(.pdfPresentationMode) {\n transition-duration: var(--sidebar-transition-duration);\n transition-timing-function: var(--sidebar-transition-timing-function);\n}\n\n#websign-outer-container.sidebarOpen #websign-viewer-container:not(.pdfPresentationMode) {\n inset-inline-start: var(--sidebar-width);\n transition-property: inset-inline-start;\n}\n\n/* ============================================================================\n * Toolbar layout & buttons\n * ============================================================================ */\n\n.toolbar {\n position: relative;\n left: 0;\n right: 0;\n z-index: 1000;\n cursor: default;\n}\n\n.toolbar input,\n.toolbar button,\n.toolbar select,\n.secondaryToolbar input,\n.secondaryToolbar button,\n.secondaryToolbar a,\n.secondaryToolbar select,\n.editorParamsToolbar input,\n.editorParamsToolbar button,\n.editorParamsToolbar select,\n.findbar input,\n.findbar button,\n.findbar select,\n#websign-sidebar-container input,\n#websign-sidebar-container button,\n#websign-sidebar-container select {\n outline: none;\n font: message-box;\n}\n\n#toolbarContainer {\n width: 100%;\n}\n\n#toolbarSidebar {\n width: 100%;\n height: 60px;\n background-color: var(--websign-primary-color);\n box-shadow: var(--toolbarSidebar-box-shadow);\n border-bottom: var(--toolbarSidebar-border-bottom);\n}\n\n#sidebarResizer {\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline-end: -6px;\n width: 6px;\n z-index: 200;\n cursor: ew-resize;\n}\n\n#toolbarContainer,\n.findbar,\n.secondaryToolbar,\n.editorParamsToolbar {\n position: relative;\n height: 50px;\n background-color: var(--toolbar-bg-color);\n box-shadow: var(--toolbar-box-shadow);\n border-bottom: var(--toolbar-border-bottom);\n}\n\n#toolbarViewer {\n height: 50px;\n}\n\n/* Loading bar */\n#loadingBar {\n --progressBar-percent: 0%;\n --progressBar-end-offset: 0;\n position: absolute;\n inset-inline: 0 var(--progressBar-end-offset);\n height: 4px;\n background-color: var(--progressBar-bg-color);\n border-bottom: 1px solid var(--toolbar-border-color);\n transition-property: inset-inline-start;\n transition-duration: var(--sidebar-transition-duration);\n transition-timing-function: var(--sidebar-transition-timing-function);\n}\n\n#websign-outer-container.sidebarOpen #loadingBar {\n inset-inline-start: var(--sidebar-width);\n}\n\n#loadingBar .progress {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n transform: scaleX(var(--progressBar-percent));\n transform-origin: 0 0;\n height: 100%;\n background-color: var(--progressBar-color);\n overflow: hidden;\n transition: transform 200ms;\n}\n\n@keyframes progressIndeterminate {\n 0% { transform: translateX(-142px); }\n 100% { transform: translateX(0); }\n}\n\n#loadingBar.indeterminate .progress {\n transform: none;\n background-color: var(--progressBar-bg-color);\n transition: none;\n}\n\n#loadingBar.indeterminate .progress .glimmer {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: calc(100% + 150px);\n background: repeating-linear-gradient(\n 135deg,\n var(--progressBar-blend-color) 0,\n var(--progressBar-bg-color) 5px,\n var(--progressBar-bg-color) 45px,\n var(--progressBar-color) 55px,\n var(--progressBar-color) 95px,\n var(--progressBar-blend-color) 100px\n );\n animation: progressIndeterminate 1s linear infinite;\n}\n\n#websign-outer-container.sidebarResizing #websign-sidebar-container,\n#websign-outer-container.sidebarResizing #websign-viewer-container,\n#websign-outer-container.sidebarResizing #loadingBar {\n transition-duration: 0s;\n}\n\n/* Findbar */\n.findbar,\n.secondaryToolbar,\n.editorParamsToolbar {\n top: 50px;\n position: absolute;\n z-index: 30000;\n height: auto;\n padding: 0 4px;\n margin: 4px 2px;\n font-size: 12px;\n line-height: 14px;\n text-align: left;\n cursor: default;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);\n}\n\n.findbar {\n inset-inline-start: 64px;\n min-width: 300px;\n background-color: var(--toolbar-bg-color);\n}\n.findbar > div {\n height: 50px;\n}\n.findbar > div#findbarInputContainer {\n -webkit-margin-end: 4px;\n margin-inline-end: 4px;\n}\n.findbar.wrapContainers > div,\n.findbar.wrapContainers > div#findbarMessageContainer > * {\n clear: both;\n}\n.findbar.wrapContainers > div#findbarMessageContainer {\n height: auto;\n}\n\n.findbar input[type="checkbox"] {\n pointer-events: none;\n}\n\n.findbar label {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n.findbar label:hover,\n.findbar input:focus-visible + label {\n color: var(--toggled-btn-color);\n background-color: var(--button-hover-color);\n}\n\n.findbar .toolbarField[type="checkbox"]:checked + .toolbarLabel {\n background-color: var(--toggled-btn-bg-color) !important;\n color: var(--toggled-btn-color);\n}\n\n#findInput {\n width: 200px;\n}\n#findInput::-moz-placeholder {\n font-style: normal;\n}\n#findInput::placeholder {\n font-style: normal;\n color: rgba(250, 250, 250, 0.8);\n}\n#findInput[data-status="pending"] {\n background-image: var(--loading-icon);\n background-repeat: no-repeat;\n background-position: calc(50% + 48% * var(--dir-factor));\n}\n#findInput[data-status="notFound"] {\n background-color: rgba(255, 102, 102, 0.2);\n border-color: rgba(198, 40, 40, 0.5);\n}\n\n/* Secondary toolbar & editor params */\n.secondaryToolbar,\n.editorParamsToolbar {\n padding: 6px 0 10px;\n inset-inline-end: 4px;\n height: auto;\n background-color: var(--doorhanger-bg-color);\n border-radius: 8px;\n}\n\n.editorParamsToolbarContainer {\n width: 220px;\n margin-bottom: -4px;\n}\n\n.editorParamsToolbarContainer > .editorParamsSetter {\n min-height: 26px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: 10px;\n}\n\n.editorParamsToolbarContainer .editorParamsLabel {\n -webkit-padding-end: 10px;\n padding-inline-end: 10px;\n flex: none;\n color: var(--main-color);\n}\n\n.editorParamsToolbarContainer .editorParamsColor {\n width: 50px;\n height: 50px;\n flex: none;\n}\n\n.editorParamsToolbarContainer .editorParamsSlider {\n background-color: transparent;\n width: 90px;\n flex: 0 1 0;\n}\n\n.editorParamsToolbarContainer .editorParamsSlider::-moz-range-progress {\n background-color: black;\n}\n\n.editorParamsToolbarContainer .editorParamsSlider::-webkit-slider-runnable-track,\n.editorParamsToolbarContainer .editorParamsSlider::-moz-range-track {\n background-color: black;\n}\n\n.editorParamsToolbarContainer .editorParamsSlider::-webkit-slider-thumb,\n.editorParamsToolbarContainer .editorParamsSlider::-moz-range-thumb {\n background-color: white;\n}\n\n#secondaryToolbarButtonContainer {\n max-width: 220px;\n min-height: 26px;\n max-height: calc(var(--viewer-container-height) - 50px);\n overflow-y: auto;\n margin-bottom: -4px;\n}\n\n#editorInkParamsToolbar {\n inset-inline-end: 50px;\n background-color: var(--toolbar-bg-color);\n}\n\n#editorFreeTextParamsToolbar {\n inset-inline-end: 68px;\n background-color: var(--toolbar-bg-color);\n}\n\n/* Doorhanger (dropdown panels) */\n.doorHanger,\n.doorHangerRight {\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12),\n 0 0 0 1px var(--doorhanger-border-color);\n border: var(--doorhanger-border-color-whcm);\n}\n.doorHanger:after,\n.doorHanger:before,\n.doorHangerRight:after,\n.doorHangerRight:before {\n bottom: 100%;\n border: 8px solid rgba(0, 0, 0, 0);\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n opacity: var(--doorhanger-triangle-opacity-whcm);\n}\n.doorHanger:after {\n inset-inline-start: 10px;\n -webkit-margin-start: -8px;\n margin-inline-start: -8px;\n border-bottom-color: var(--toolbar-bg-color);\n}\n.doorHangerRight:after {\n inset-inline-end: 10px;\n -webkit-margin-end: -8px;\n margin-inline-end: -8px;\n border-bottom-color: var(--doorhanger-bg-color);\n}\n.doorHanger:before,\n.doorHangerRight:before {\n border-bottom-color: var(--doorhanger-border-color);\n border-width: 9px;\n}\n.doorHanger:before {\n inset-inline-start: 10px;\n -webkit-margin-start: -9px;\n margin-inline-start: -9px;\n}\n.doorHangerRight:before {\n inset-inline-end: 10px;\n -webkit-margin-end: -9px;\n margin-inline-end: -9px;\n}\n\n#findResultsCount {\n background-color: rgba(var(--websign-primary-color), 0.08);\n color: rgba(var(--websign-primary-color), 1);\n text-align: center;\n padding: 4px 8px;\n margin: 5px;\n border-radius: 4px;\n font-weight: 500;\n}\n\n#findMsg {\n color: rgba(255, 255, 255, 1);\n}\n\n#findResultsCount:empty,\n#findMsg:empty {\n display: none;\n}\n\n/* Toolbar positioning */\n#toolbarViewerMiddle {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n}\n\n#toolbarViewerLeft,\n#toolbarSidebarLeft {\n float: var(--inline-start);\n}\n#toolbarViewerRight,\n#toolbarSidebarRight {\n float: var(--inline-end);\n}\n\n#toolbarViewerLeft > *,\n#toolbarViewerMiddle > *,\n#toolbarViewerRight > *,\n#toolbarSidebarLeft *,\n#toolbarSidebarRight *,\n.findbar * {\n position: relative;\n float: var(--inline-start);\n}\n\n#toolbarViewerLeft {\n -webkit-padding-start: 1px;\n padding-inline-start: 1px;\n}\n#toolbarViewerRight {\n -webkit-padding-end: 1px;\n padding-inline-end: 1px;\n}\n#toolbarSidebarRight {\n -webkit-padding-end: 2px;\n padding-inline-end: 2px;\n}\n\n.splitToolbarButton {\n margin: 4px;\n display: inline-block;\n}\n.splitToolbarButton > .toolbarButton {\n float: var(--inline-start);\n}\n\n.toolbarButton,\n.secondaryToolbarButton,\n.dialogButton {\n border: none;\n background: none;\n width: 34px;\n height: 34px;\n outline: none;\n}\n\n.dialogButton:hover,\n.dialogButton:focus-visible {\n background-color: var(--dialog-button-hover-bg-color);\n}\n\n.dialogButton:hover > span,\n.dialogButton:focus-visible > span {\n color: var(--dialog-button-hover-color);\n}\n\n.toolbarButton > span {\n display: inline-block;\n width: 0;\n height: 0;\n overflow: hidden;\n}\n\n.toolbarButton[disabled],\n.secondaryToolbarButton[disabled],\n.dialogButton[disabled] {\n opacity: 0.5;\n}\n\n.splitToolbarButton > .toolbarButton:hover,\n.splitToolbarButton > .toolbarButton:focus-visible,\n.dropdownToolbarButton:hover {\n background-color: var(--button-hover-color);\n}\n.splitToolbarButton > .toolbarButton {\n position: relative;\n margin: 0;\n}\n#toolbarSidebar .splitToolbarButton > .toolbarButton {\n -webkit-margin-end: 2px;\n margin-inline-end: 2px;\n}\n\n.splitToolbarButtonSeparator {\n float: var(--inline-start);\n margin: 4px 0;\n width: 1px;\n height: 20px;\n background-color: var(--separator-color);\n}\n\n.toolbarButton,\n.dropdownToolbarButton,\n.secondaryToolbarButton,\n.dialogButton {\n min-width: 22px;\n margin: 8px 1px;\n padding: 2px 6px 0;\n border: none;\n border-radius: 6px;\n color: var(--main-color);\n font-size: 12px;\n line-height: 14px;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n cursor: default;\n box-sizing: border-box;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n\n.toolbarButton:hover,\n.toolbarButton:focus-visible {\n background-color: var(--button-hover-color);\n}\n.secondaryToolbarButton:hover,\n.secondaryToolbarButton:focus-visible {\n background-color: var(--doorhanger-hover-bg-color);\n color: var(--doorhanger-hover-color);\n}\n\n.toolbarButton.toggled,\n.splitToolbarButton.toggled > .toolbarButton.toggled,\n.secondaryToolbarButton.toggled {\n background-color: var(--toggled-btn-bg-color);\n color: var(--toggled-btn-color);\n}\n\n.toolbarButton.toggled::before,\n.secondaryToolbarButton.toggled::before {\n background-color: rgba(var(--websign-primary-color), 1);\n}\n\n.toolbarButton.toggled:hover:active,\n.splitToolbarButton.toggled > .toolbarButton.toggled:hover:active,\n.secondaryToolbarButton.toggled:hover:active {\n background-color: var(--toggled-hover-active-btn-color);\n}\n\n/* Dropdown (scale select) */\n.dropdownToolbarButton {\n --scale-select-width: 140px;\n width: var(--scale-select-width);\n padding: 0;\n background-color: var(--dropdown-btn-bg-color);\n border: var(--dropdown-btn-border);\n border-radius: 6px;\n overflow: hidden;\n}\n.dropdownToolbarButton::after {\n top: 6px;\n inset-inline-end: 6px;\n pointer-events: none;\n -webkit-mask-image: var(--toolbarButton-menuArrow-icon);\n mask-image: var(--toolbarButton-menuArrow-icon);\n}\n\n.dropdownToolbarButton > select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: inherit;\n height: 34px;\n font-size: 12px;\n color: var(--main-color);\n margin: 0;\n padding: 1px 0 2px;\n -webkit-padding-start: 6px;\n padding-inline-start: 6px;\n border: none;\n background-color: var(--dropdown-btn-bg-color);\n}\n.dropdownToolbarButton > select:hover,\n.dropdownToolbarButton > select:focus-visible {\n background-color: var(--button-hover-color);\n color: var(--toggled-btn-color);\n}\n.dropdownToolbarButton > select > option {\n background: var(--doorhanger-bg-color);\n color: var(--main-color);\n}\n\n.toolbarButtonSpacer {\n width: 30px;\n display: inline-block;\n height: 1px;\n}\n\n/* Icon rendering via mask-image */\n.toolbarButton::before,\n.secondaryToolbarButton::before,\n.dropdownToolbarButton::after,\n.treeItemToggler::before {\n position: absolute;\n display: inline-block;\n width: 22px;\n height: 22px;\n content: "";\n background-color: var(--toolbar-icon-bg-color);\n -webkit-mask-size: cover;\n mask-size: cover;\n}\n\n.dropdownToolbarButton:hover::after,\n.dropdownToolbarButton:focus-visible::after,\n.dropdownToolbarButton:active::after {\n background-color: var(--toolbar-icon-hover-bg-color);\n}\n\n.toolbarButton::before {\n top: 6px;\n left: 6px;\n}\n\n.toolbarButton:hover::before,\n.toolbarButton:focus-visible::before,\n.secondaryToolbarButton:hover::before,\n.secondaryToolbarButton:focus-visible::before {\n background-color: var(--toolbar-icon-hover-bg-color);\n}\n\n.secondaryToolbarButton::before {\n opacity: var(--doorhanger-icon-opacity);\n top: 5px;\n inset-inline-start: 12px;\n}\n\n/* Button icon assignments */\n#sidebarToggle::before {\n -webkit-mask-image: var(--toolbarButton-sidebarToggle-icon);\n mask-image: var(--toolbarButton-sidebarToggle-icon);\n transform: scaleX(var(--dir-factor));\n}\n#secondaryToolbarToggle::before {\n -webkit-mask-image: var(--toolbarButton-secondaryToolbarToggle-icon);\n mask-image: var(--toolbarButton-secondaryToolbarToggle-icon);\n transform: scaleX(var(--dir-factor));\n}\n#findPrevious::before {\n -webkit-mask-image: var(--findbarButton-previous-icon);\n mask-image: var(--findbarButton-previous-icon);\n}\n#findNext::before {\n -webkit-mask-image: var(--findbarButton-next-icon);\n mask-image: var(--findbarButton-next-icon);\n}\n#previous::before {\n -webkit-mask-image: var(--toolbarButton-pageUp-icon);\n mask-image: var(--toolbarButton-pageUp-icon);\n}\n#next::before {\n -webkit-mask-image: var(--toolbarButton-pageDown-icon);\n mask-image: var(--toolbarButton-pageDown-icon);\n}\n#zoomOut::before {\n -webkit-mask-image: var(--toolbarButton-zoomOut-icon);\n mask-image: var(--toolbarButton-zoomOut-icon);\n}\n#zoomIn::before {\n -webkit-mask-image: var(--toolbarButton-zoomIn-icon);\n mask-image: var(--toolbarButton-zoomIn-icon);\n}\n\n#presentationMode::before {\n -webkit-mask-image: var(--toolbarButton-presentationMode-icon);\n mask-image: var(--toolbarButton-presentationMode-icon);\n}\n#editorFreeText::before {\n -webkit-mask-image: var(--toolbarButton-editorFreeText-icon);\n mask-image: var(--toolbarButton-editorFreeText-icon);\n}\n#editorInk::before {\n -webkit-mask-image: var(--toolbarButton-editorInk-icon);\n mask-image: var(--toolbarButton-editorInk-icon);\n}\n#print::before,\n#secondaryPrint::before {\n -webkit-mask-image: var(--toolbarButton-print-icon);\n mask-image: var(--toolbarButton-print-icon);\n}\n#openFile::before,\n#secondaryOpenFile::before {\n -webkit-mask-image: var(--toolbarButton-openFile-icon);\n mask-image: var(--toolbarButton-openFile-icon);\n}\n#editorSignature::before {\n -webkit-mask-image: var(--toolbarButton-editorSignature-icon);\n mask-image: var(--toolbarButton-editorSignature-icon);\n}\n#download::before,\n#secondaryDownload::before {\n -webkit-mask-image: var(--toolbarButton-download-icon);\n mask-image: var(--toolbarButton-download-icon);\n}\n\na.secondaryToolbarButton {\n padding-top: 5px;\n text-decoration: none;\n}\na.toolbarButton[href="#"],\na.secondaryToolbarButton[href="#"] {\n opacity: 0.5;\n pointer-events: none;\n}\n\n#viewBookmark::before {\n -webkit-mask-image: var(--toolbarButton-bookmark-icon);\n mask-image: var(--toolbarButton-bookmark-icon);\n}\n#viewThumbnail::before {\n -webkit-mask-image: var(--toolbarButton-viewThumbnail-icon);\n mask-image: var(--toolbarButton-viewThumbnail-icon);\n}\n#viewOutline::before {\n -webkit-mask-image: var(--toolbarButton-viewOutline-icon);\n mask-image: var(--toolbarButton-viewOutline-icon);\n transform: scaleX(var(--dir-factor));\n}\n#viewAttachments::before {\n -webkit-mask-image: var(--toolbarButton-viewAttachments-icon);\n mask-image: var(--toolbarButton-viewAttachments-icon);\n}\n#viewLayers::before {\n -webkit-mask-image: var(--toolbarButton-viewLayers-icon);\n mask-image: var(--toolbarButton-viewLayers-icon);\n}\n#currentOutlineItem::before {\n -webkit-mask-image: var(--toolbarButton-currentOutlineItem-icon);\n mask-image: var(--toolbarButton-currentOutlineItem-icon);\n transform: scaleX(var(--dir-factor));\n}\n#viewFind::before {\n -webkit-mask-image: var(--toolbarButton-search-icon);\n mask-image: var(--toolbarButton-search-icon);\n}\n\n.pdfSidebarNotification::after {\n position: absolute;\n display: inline-block;\n top: 2px;\n inset-inline-end: 2px;\n content: "";\n background-color: rgba(var(--websign-primary-color), 1);\n height: 9px;\n width: 9px;\n border-radius: 50%;\n}\n\n.secondaryToolbarButton {\n position: relative;\n margin: 0;\n padding: 0 0 1px;\n -webkit-padding-start: 36px;\n padding-inline-start: 36px;\n height: auto;\n min-height: 26px;\n width: auto;\n min-width: 100%;\n text-align: start;\n white-space: normal;\n border-radius: 0;\n box-sizing: border-box;\n display: inline-block;\n}\n.secondaryToolbarButton > span {\n -webkit-padding-end: 4px;\n padding-inline-end: 4px;\n}\n\n/* Secondary toolbar button icons */\n#firstPage::before {\n -webkit-mask-image: var(--secondaryToolbarButton-firstPage-icon);\n mask-image: var(--secondaryToolbarButton-firstPage-icon);\n}\n#lastPage::before {\n -webkit-mask-image: var(--secondaryToolbarButton-lastPage-icon);\n mask-image: var(--secondaryToolbarButton-lastPage-icon);\n}\n#pageRotateCcw::before {\n -webkit-mask-image: var(--secondaryToolbarButton-rotateCcw-icon);\n mask-image: var(--secondaryToolbarButton-rotateCcw-icon);\n}\n#pageRotateCw::before {\n -webkit-mask-image: var(--secondaryToolbarButton-rotateCw-icon);\n mask-image: var(--secondaryToolbarButton-rotateCw-icon);\n}\n#cursorSelectTool::before {\n -webkit-mask-image: var(--secondaryToolbarButton-selectTool-icon);\n mask-image: var(--secondaryToolbarButton-selectTool-icon);\n}\n#cursorHandTool::before {\n -webkit-mask-image: var(--secondaryToolbarButton-handTool-icon);\n mask-image: var(--secondaryToolbarButton-handTool-icon);\n}\n#scrollPage::before {\n -webkit-mask-image: var(--secondaryToolbarButton-scrollPage-icon);\n mask-image: var(--secondaryToolbarButton-scrollPage-icon);\n}\n#scrollVertical::before {\n -webkit-mask-image: var(--secondaryToolbarButton-scrollVertical-icon);\n mask-image: var(--secondaryToolbarButton-scrollVertical-icon);\n}\n#scrollHorizontal::before {\n -webkit-mask-image: var(--secondaryToolbarButton-scrollHorizontal-icon);\n mask-image: var(--secondaryToolbarButton-scrollHorizontal-icon);\n}\n#scrollWrapped::before {\n -webkit-mask-image: var(--secondaryToolbarButton-scrollWrapped-icon);\n mask-image: var(--secondaryToolbarButton-scrollWrapped-icon);\n}\n#spreadNone::before {\n -webkit-mask-image: var(--secondaryToolbarButton-spreadNone-icon);\n mask-image: var(--secondaryToolbarButton-spreadNone-icon);\n}\n#spreadOdd::before {\n -webkit-mask-image: var(--secondaryToolbarButton-spreadOdd-icon);\n mask-image: var(--secondaryToolbarButton-spreadOdd-icon);\n}\n#spreadEven::before {\n -webkit-mask-image: var(--secondaryToolbarButton-spreadEven-icon);\n mask-image: var(--secondaryToolbarButton-spreadEven-icon);\n}\n#documentProperties::before {\n -webkit-mask-image: var(--secondaryToolbarButton-documentProperties-icon);\n mask-image: var(--secondaryToolbarButton-documentProperties-icon);\n}\n\n/* Separators */\n.verticalToolbarSeparator {\n display: block;\n margin: 7px 2px;\n width: 1px;\n height: 22px;\n background-color: var(--separator-color);\n}\n.horizontalToolbarSeparator {\n display: block;\n margin: 6px 0;\n height: 1px;\n width: 100%;\n background-color: var(--doorhanger-separator-color);\n}\n\n/* Form fields */\n.toolbarField {\n padding: 4px 7px;\n margin: 5px 0;\n border-radius: 6px;\n background-color: var(--field-bg-color);\n background-clip: padding-box;\n border: 1px solid var(--field-border-color);\n box-shadow: none;\n color: var(--field-color);\n font-size: 12px;\n line-height: 22px;\n outline: none;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.toolbarField[type="checkbox"] {\n opacity: 0;\n position: absolute !important;\n left: 0;\n margin: 10px 0 3px;\n -webkit-margin-start: 7px;\n margin-inline-start: 7px;\n}\n\n#pageNumber {\n -moz-appearance: textfield;\n text-align: right;\n width: 25px;\n background-size: 0 0;\n transition-property: none;\n}\n#pageNumber.visiblePageIsLoading {\n background-image: var(--loading-icon);\n background-repeat: no-repeat;\n background-position: 3px;\n background-size: 22px 22px;\n transition-property: background-size;\n transition-delay: var(--loading-icon-delay);\n}\n#pageNumber::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\n.toolbarField:focus {\n border-color: rgba(var(--websign-primary-color), 1);\n box-shadow: 0 0 0 2px rgba(var(--websign-primary-color), 0.2);\n}\n\n.toolbarLabel {\n min-width: 22px;\n padding: 7px;\n margin: 5px 2px;\n border-radius: 2px;\n color: var(--main-color);\n font-size: 14px;\n line-height: 14px;\n text-align: left;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n cursor: default;\n}\n\n#numPages.toolbarLabel {\n -webkit-padding-start: 3px;\n padding-inline-start: 3px;\n}\n\n/* ============================================================================\n * Sidebar - Thumbnails, outline, attachments, layers\n * ============================================================================ */\n\n#thumbnailView,\n#outlineView,\n#attachmentsView,\n#layersView {\n position: absolute;\n width: calc(100% - 8px);\n top: 0;\n bottom: 0;\n padding: 4px 4px 0;\n overflow: auto;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n#thumbnailView {\n width: calc(100% - 60px);\n padding: 10px 30px 0;\n}\n\n#thumbnailView > a:active,\n#thumbnailView > a:focus {\n outline: 0;\n}\n\n.thumbnail {\n float: var(--inline-start);\n margin: 0 10px 5px;\n}\n\n#thumbnailView > a:last-of-type > .thumbnail {\n margin-bottom: 10px;\n}\n#thumbnailView > a:last-of-type > .thumbnail:not([data-loaded]) {\n margin-bottom: 9px;\n}\n\n.thumbnail:not([data-loaded]) {\n border: 1px dashed rgba(132, 132, 132, 1);\n margin: -1px 9px 4px;\n}\n\n.thumbnailImage {\n border: 1px solid rgba(0, 0, 0, 0);\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n opacity: 0.8;\n z-index: 99;\n background-color: rgba(255, 255, 255, 1);\n background-clip: content-box;\n}\n\n.thumbnailSelectionRing {\n border-radius: 4px;\n padding: 7px;\n}\n\na:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage,\n.thumbnail:hover > .thumbnailSelectionRing > .thumbnailImage {\n opacity: 0.9;\n}\n\na:focus > .thumbnail > .thumbnailSelectionRing,\n.thumbnail:hover > .thumbnailSelectionRing {\n background-color: var(--sidebaritem-bg-color);\n background-clip: padding-box;\n color: rgba(255, 255, 255, 0.9);\n}\n\n.thumbnail.selected > .thumbnailSelectionRing > .thumbnailImage {\n opacity: 1;\n}\n\n.thumbnail.selected > .thumbnailSelectionRing {\n background-color: var(--sidebaritem-bg-color);\n background-clip: padding-box;\n color: rgba(255, 255, 255, 1);\n}\n\n/* Tree items (outline) */\n.treeWithDeepNesting > .treeItem,\n.treeItem > .treeItems {\n -webkit-margin-start: 20px;\n margin-inline-start: 20px;\n}\n\n.treeItem > a {\n text-decoration: none;\n display: inline-block;\n min-width: calc(100% - 4px);\n height: auto;\n margin-bottom: 1px;\n padding: 2px 0 5px;\n -webkit-padding-start: 4px;\n padding-inline-start: 4px;\n border-radius: 2px;\n color: var(--treeitem-color);\n font-size: 13px;\n line-height: 15px;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: normal;\n cursor: pointer;\n}\n\n#layersView .treeItem > a * {\n cursor: pointer;\n}\n#layersView .treeItem > a > label {\n -webkit-padding-start: 4px;\n padding-inline-start: 4px;\n}\n#layersView .treeItem > a > label > input {\n float: var(--inline-start);\n margin-top: 1px;\n}\n\n.treeItemToggler {\n position: relative;\n float: var(--inline-start);\n height: 0;\n width: 0;\n color: rgba(255, 255, 255, 0.5);\n}\n.treeItemToggler::before {\n inset-inline-end: 4px;\n -webkit-mask-image: var(--treeitem-expanded-icon);\n mask-image: var(--treeitem-expanded-icon);\n}\n.treeItemToggler.treeItemsHidden::before {\n -webkit-mask-image: var(--treeitem-collapsed-icon);\n mask-image: var(--treeitem-collapsed-icon);\n transform: scaleX(var(--dir-factor));\n}\n.treeItemToggler.treeItemsHidden ~ .treeItems {\n display: none;\n}\n\n.treeItem.selected > a {\n background-color: var(--treeitem-selected-bg-color);\n color: var(--treeitem-selected-color);\n}\n\n.treeItemToggler:hover,\n.treeItemToggler:hover + a,\n.treeItemToggler:hover ~ .treeItems,\n.treeItem > a:hover {\n background-color: var(--sidebaritem-bg-color);\n background-clip: padding-box;\n border-radius: 2px;\n color: var(--treeitem-hover-color);\n}\n\n/* ============================================================================\n * Dialogs\n * ============================================================================ */\n\n.dialogButton {\n width: auto;\n margin: 3px 4px 2px !important;\n padding: 2px 11px;\n color: var(--main-color);\n background-color: var(--dialog-button-bg-color);\n border: var(--dialog-button-border) !important;\n border-radius: 6px;\n transition: background-color 0.15s ease;\n}\n\ndialog {\n margin: auto;\n padding: 15px;\n border-spacing: 4px;\n color: var(--main-color);\n font: message-box;\n font-size: 12px;\n line-height: 14px;\n background-color: var(--doorhanger-bg-color);\n border: 1px solid rgba(0, 0, 0, 0.5);\n border-radius: 10px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n}\ndialog::-webkit-backdrop {\n background-color: rgba(0, 0, 0, 0.2);\n}\ndialog::backdrop {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\ndialog > .row {\n display: table-row;\n}\ndialog > .row > * {\n display: table-cell;\n}\ndialog .toolbarField {\n margin: 5px 0;\n}\ndialog .separator {\n display: block;\n margin: 4px 0;\n height: 1px;\n width: 100%;\n background-color: var(--separator-color);\n}\ndialog .buttonRow {\n text-align: center;\n vertical-align: middle;\n}\ndialog :link {\n color: rgba(255, 255, 255, 1);\n}\n\n#passwordDialog {\n text-align: center;\n}\n#passwordDialog .toolbarField {\n width: 200px;\n}\n\n#documentPropertiesDialog {\n text-align: left;\n}\n#documentPropertiesDialog .row > * {\n min-width: 100px;\n text-align: start;\n}\n#documentPropertiesDialog .row > span {\n width: 125px;\n word-wrap: break-word;\n}\n#documentPropertiesDialog .row > p {\n max-width: 225px;\n word-wrap: break-word;\n}\n#documentPropertiesDialog .buttonRow {\n margin-top: 10px;\n}\n\n/* ============================================================================\n * Grab-to-pan, print, responsive\n * ============================================================================ */\n\n.grab-to-pan-grab {\n cursor: grab !important;\n}\n.grab-to-pan-grab\n *:not(input):not(textarea):not(button):not(select):not(:link) {\n cursor: inherit !important;\n}\n.grab-to-pan-grab:active,\n.grab-to-pan-grabbing {\n cursor: grabbing !important;\n position: fixed;\n background: rgba(0, 0, 0, 0);\n display: block;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n z-index: 50000;\n}\n\n@page {\n margin: 0;\n}\n\n#printContainer {\n display: none;\n}\n\n@media print {\n body {\n background: rgba(0, 0, 0, 0) none;\n }\n body[data-pdfjsprinting] #websign-outer-container {\n display: none;\n }\n body[data-pdfjsprinting] #printContainer {\n display: block;\n }\n #printContainer {\n height: 100%;\n }\n #printContainer > .printedPage {\n page-break-after: always;\n page-break-inside: avoid;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n #printContainer > .xfaPrintedPage .xfaPage {\n position: absolute;\n }\n #printContainer > .xfaPrintedPage {\n page-break-after: always;\n page-break-inside: avoid;\n width: 100%;\n height: 100%;\n position: relative;\n }\n #printContainer > .printedPage canvas,\n #printContainer > .printedPage img {\n max-width: 100%;\n max-height: 100%;\n direction: ltr;\n display: block;\n }\n}\n\n/* ============================================================================\n * Responsive breakpoints\n * ============================================================================ */\n\n.visibleLargeView,\n.visibleMediumView {\n display: none;\n}\n\n@media all and (max-width: 900px) {\n #toolbarViewerMiddle {\n display: table;\n margin: auto;\n left: auto;\n position: inherit;\n transform: none;\n }\n}\n\n@media all and (max-width: 840px) {\n #websign-sidebar-container {\n background-color: var(--sidebar-narrow-bg-color);\n }\n #websign-outer-container.sidebarOpen #websign-viewer-container {\n inset-inline-start: 0 !important;\n }\n}\n\n@media all and (max-width: 820px) {\n #websign-outer-container .hiddenLargeView {\n display: none;\n }\n #websign-outer-container .visibleLargeView {\n display: inherit;\n }\n}\n\n@media all and (max-width: 750px) {\n #websign-outer-container .hiddenMediumView {\n display: none;\n }\n #websign-outer-container .visibleMediumView {\n display: inherit;\n }\n}\n\n@media all and (max-width: 690px) {\n .hiddenSmallView,\n .hiddenSmallView * {\n display: none;\n }\n .toolbarButtonSpacer {\n width: 0;\n }\n .findbar {\n inset-inline-start: 34px;\n }\n}\n\n@media all and (max-width: 560px) {\n #scaleSelectContainer {\n display: none;\n }\n}\n\n </style>\n </head>\n\n <body tabindex="1">\n <div id="websign-overlay"></div>\n\n <div id="websign-outer-container">\n <div id="websign-floating-buttons">\n <div id="websign-fab-clear" class="websign-ripple websign-fab">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>eraser-variant</title><path fill="currentColor" d="M15.14,3C14.63,3 14.12,3.2 13.73,3.59L2.59,14.73C1.81,15.5 1.81,16.77 2.59,17.56L5.03,20H12.69L21.41,11.27C22.2,10.5 22.2,9.23 21.41,8.44L16.56,3.59C16.17,3.2 15.65,3 15.14,3M17,18L15,20H22V18" /></svg>\n </div>\n <div id="websign-fab-cancel" class="websign-ripple websign-fab">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>close-thick</title><path fill="currentColor" d="M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z" /></svg>\n </div>\n <div id="websign-fab-ok" class="websign-ripple websign-fab">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>check-bold</title><path fill="#FFFFFF" d="M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z" /></svg>\n </div>\n <div id="websign-fab-sign" class="websign-ripple websign-fab">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>pencil</title><path fill="#FFFFFF" d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z" /></svg>\n </div>\n </div>\n\n <div id="websign-loader-container"></div>\n\n <div id="websign-snackbar"></div>\n\n <div id="websign-sidebar-container" class="hidden">\n <div id="toolbarSidebar">\n <div id="toolbarSidebarLeft">\n <div\n id="sidebarViewButtons"\n class="splitToolbarButton toggled"\n role="radiogroup"\n >\n <button\n id="viewThumbnail"\n class="toolbarButton toggled"\n title="Show Thumbnails"\n tabindex="2"\n data-l10n-id="thumbs"\n role="radio"\n aria-checked="true"\n aria-controls="thumbnailView"\n >\n <span data-l10n-id="thumbs_label">Thumbnails</span>\n </button>\n <button\n id="viewOutline"\n class="toolbarButton"\n title="Show Document Outline (double-click to expand/collapse all items)"\n tabindex="3"\n data-l10n-id="document_outline"\n role="radio"\n aria-checked="false"\n aria-controls="outlineView"\n >\n <span data-l10n-id="document_outline_label"\n >Document Outline</span\n >\n </button>\n <button\n id="viewAttachments"\n class="toolbarButton"\n title="Show Attachments"\n tabindex="4"\n data-l10n-id="attachments"\n role="radio"\n aria-checked="false"\n aria-controls="attachmentsView"\n >\n <span data-l10n-id="attachments_label">Attachments</span>\n </button>\n <button\n id="viewLayers"\n class="toolbarButton"\n title="Show Layers (double-click to reset all layers to the default state)"\n tabindex="5"\n data-l10n-id="layers"\n role="radio"\n aria-checked="false"\n aria-controls="layersView"\n >\n <span data-l10n-id="layers_label">Layers</span>\n </button>\n </div>\n </div>\n\n <div id="toolbarSidebarRight">\n <div id="outlineOptionsContainer" class="hidden">\n <div class="verticalToolbarSeparator"></div>\n\n <button\n id="currentOutlineItem"\n class="toolbarButton"\n disabled="disabled"\n title="Find Current Outline Item"\n tabindex="6"\n data-l10n-id="current_outline_item"\n >\n <span data-l10n-id="current_outline_item_label"\n >Current Outline Item</span\n >\n </button>\n </div>\n </div>\n </div>\n <div id="sidebarContent">\n <div id="thumbnailView"></div>\n <div id="outlineView" class="hidden"></div>\n <div id="attachmentsView" class="hidden"></div>\n <div id="layersView" class="hidden"></div>\n </div>\n <div id="sidebarResizer"></div>\n </div>\n \x3c!-- websign-sidebar-container --\x3e\n\n <div id="websign-main-container">\n <div class="findbar hidden doorHanger" id="findbar">\n <div id="findbarInputContainer">\n <input\n id="findInput"\n class="toolbarField"\n title="Find"\n placeholder="Find in document…"\n tabindex="91"\n data-l10n-id="find_input"\n aria-invalid="false"\n />\n <div class="splitToolbarButton">\n <button\n id="findPrevious"\n class="toolbarButton"\n title="Find the previous occurrence of the phrase"\n tabindex="92"\n data-l10n-id="find_previous"\n >\n <span data-l10n-id="find_previous_label">Previous</span>\n </button>\n <div class="splitToolbarButtonSeparator"></div>\n <button\n id="findNext"\n class="toolbarButton"\n title="Find the next occurrence of the phrase"\n tabindex="93"\n data-l10n-id="find_next"\n >\n <span data-l10n-id="find_next_label">Next</span>\n </button>\n </div>\n </div>\n\n <div id="findbarOptionsOneContainer">\n <input\n type="checkbox"\n id="findHighlightAll"\n class="toolbarField"\n tabindex="94"\n />\n <label\n for="findHighlightAll"\n class="toolbarLabel"\n data-l10n-id="find_highlight"\n >Highlight All</label\n >\n <input\n type="checkbox"\n id="findMatchCase"\n class="toolbarField"\n tabindex="95"\n />\n <label\n for="findMatchCase"\n class="toolbarLabel"\n data-l10n-id="find_match_case_label"\n >Match Case</label\n >\n </div>\n <div id="findbarOptionsTwoContainer">\n <input\n type="checkbox"\n id="findMatchDiacritics"\n class="toolbarField"\n tabindex="96"\n />\n <label\n for="findMatchDiacritics"\n class="toolbarLabel"\n data-l10n-id="find_match_diacritics_label"\n >Match Diacritics</label\n >\n <input\n type="checkbox"\n id="findEntireWord"\n class="toolbarField"\n tabindex="97"\n />\n <label\n for="findEntireWord"\n class="toolbarLabel"\n data-l10n-id="find_entire_word_label"\n >Whole Words</label\n >\n </div>\n\n <div id="findbarMessageContainer" aria-live="polite">\n <span id="findResultsCount" class="toolbarLabel"></span>\n <span id="findMsg" class="toolbarLabel"></span>\n </div>\n </div>\n \x3c!-- findbar --\x3e\n\n <div\n class="editorParamsToolbar hidden doorHangerRight"\n id="editorFreeTextParamsToolbar"\n >\n <div class="editorParamsToolbarContainer">\n <div class="editorParamsSetter">\n <label\n for="editorFreeTextColor"\n class="editorParamsLabel"\n data-l10n-id="editor_free_text_color"\n >Color</label\n >\n <input\n type="color"\n id="editorFreeTextColor"\n class="editorParamsColor"\n tabindex="100"\n />\n </div>\n <div class="editorParamsSetter">\n <label\n for="editorFreeTextFontSize"\n class="editorParamsLabel"\n data-l10n-id="editor_free_text_size"\n >Size</label\n >\n <input\n type="range"\n id="editorFreeTextFontSize"\n class="editorParamsSlider"\n value="10"\n min="5"\n max="100"\n step="1"\n tabindex="101"\n />\n </div>\n </div>\n </div>\n\n <div\n class="editorParamsToolbar hidden doorHangerRight"\n id="editorInkParamsToolbar"\n >\n <div class="editorParamsToolbarContainer">\n <div class="editorParamsSetter">\n <label\n for="editorInkColor"\n class="editorParamsLabel"\n data-l10n-id="editor_ink_color"\n >Color</label\n >\n <input\n type="color"\n id="editorInkColor"\n class="editorParamsColor"\n tabindex="102"\n />\n </div>\n <div class="editorParamsSetter">\n <label\n for="editorInkThickness"\n class="editorParamsLabel"\n data-l10n-id="editor_ink_thickness"\n >Thickness</label\n >\n <input\n type="range"\n id="editorInkThickness"\n class="editorParamsSlider"\n value="1"\n min="1"\n max="20"\n step="1"\n tabindex="103"\n />\n </div>\n <div class="editorParamsSetter">\n <label\n for="editorInkOpacity"\n class="editorParamsLabel"\n data-l10n-id="editor_ink_opacity"\n >Opacity</label\n >\n <input\n type="range"\n id="editorInkOpacity"\n class="editorParamsSlider"\n value="100"\n min="1"\n max="100"\n step="1"\n tabindex="104"\n />\n </div>\n </div>\n </div>\n\n <div\n id="secondaryToolbar"\n class="secondaryToolbar hidden doorHangerRight"\n >\n <div id="secondaryToolbarButtonContainer">\n <button\n id="secondaryOpenFile"\n class="secondaryToolbarButton visibleLargeView"\n title="Open File"\n tabindex="51"\n data-l10n-id="open_file"\n >\n <span data-l10n-id="open_file_label">Open</span>\n </button>\n\n <button\n id="secondaryPrint"\n class="secondaryToolbarButton visibleMediumView"\n title="Print"\n tabindex="52"\n data-l10n-id="print"\n >\n <span data-l10n-id="print_label">Print</span>\n </button>\n\n <button\n id="secondaryDownload"\n class="secondaryToolbarButton visibleMediumView"\n title="Save"\n tabindex="53"\n data-l10n-id="save"\n >\n <span data-l10n-id="save_label">Save</span>\n </button>\n\n <div class="horizontalToolbarSeparator visibleLargeView"></div>\n\n <button\n id="presentationMode"\n class="secondaryToolbarButton"\n title="Switch to Presentation Mode"\n tabindex="54"\n data-l10n-id="presentation_mode"\n >\n <span data-l10n-id="presentation_mode_label"\n >Presentation Mode</span\n >\n </button>\n\n <a\n href="#"\n id="viewBookmark"\n class="secondaryToolbarButton"\n title="Current Page (View URL from Current Page)"\n tabindex="55"\n data-l10n-id="bookmark1"\n >\n <span data-l10n-id="bookmark1_label">Current Page</span>\n </a>\n\n <div\n id="viewBookmarkSeparator"\n class="horizontalToolbarSeparator"\n ></div>\n\n <button\n id="firstPage"\n class="secondaryToolbarButton"\n title="Go to First Page"\n tabindex="56"\n data-l10n-id="first_page"\n >\n <span data-l10n-id="first_page_label">Go to First Page</span>\n </button>\n <button\n id="lastPage"\n class="secondaryToolbarButton"\n title="Go to Last Page"\n tabindex="57"\n data-l10n-id="last_page"\n >\n <span data-l10n-id="last_page_label">Go to Last Page</span>\n </button>\n\n <div class="horizontalToolbarSeparator"></div>\n\n <button\n id="pageRotateCw"\n class="secondaryToolbarButton"\n title="Rotate Clockwise"\n tabindex="58"\n data-l10n-id="page_rotate_cw"\n >\n <span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>\n </button>\n <button\n id="pageRotateCcw"\n class="secondaryToolbarButton"\n title="Rotate Counterclockwise"\n tabindex="59"\n data-l10n-id="page_rotate_ccw"\n >\n <span data-l10n-id="page_rotate_ccw_label"\n >Rotate Counterclockwise</span\n >\n </button>\n\n <div class="horizontalToolbarSeparator"></div>\n\n <div id="cursorToolButtons" role="radiogroup">\n <button\n id="cursorSelectTool"\n class="secondaryToolbarButton toggled"\n title="Enable Text Selection Tool"\n tabindex="60"\n data-l10n-id="cursor_text_select_tool"\n role="radio"\n aria-checked="true"\n >\n <span data-l10n-id="cursor_text_select_tool_label"\n >Text Selection Tool</span\n >\n </button>\n <button\n id="cursorHandTool"\n class="secondaryToolbarButton"\n title="Enable Hand Tool"\n tabindex="61"\n data-l10n-id="cursor_hand_tool"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>\n </button>\n </div>\n\n <div class="horizontalToolbarSeparator"></div>\n\n <div id="scrollModeButtons" role="radiogroup">\n <button\n id="scrollPage"\n class="secondaryToolbarButton"\n title="Use Page Scrolling"\n tabindex="62"\n data-l10n-id="scroll_page"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="scroll_page_label">Page Scrolling</span>\n </button>\n <button\n id="scrollVertical"\n class="secondaryToolbarButton toggled"\n title="Use Vertical Scrolling"\n tabindex="63"\n data-l10n-id="scroll_vertical"\n role="radio"\n aria-checked="true"\n >\n <span data-l10n-id="scroll_vertical_label"\n >Vertical Scrolling</span\n >\n </button>\n <button\n id="scrollHorizontal"\n class="secondaryToolbarButton"\n title="Use Horizontal Scrolling"\n tabindex="64"\n data-l10n-id="scroll_horizontal"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="scroll_horizontal_label"\n >Horizontal Scrolling</span\n >\n </button>\n <button\n id="scrollWrapped"\n class="secondaryToolbarButton"\n title="Use Wrapped Scrolling"\n tabindex="65"\n data-l10n-id="scroll_wrapped"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="scroll_wrapped_label"\n >Wrapped Scrolling</span\n >\n </button>\n </div>\n\n <div class="horizontalToolbarSeparator"></div>\n\n <div id="spreadModeButtons" role="radiogroup">\n <button\n id="spreadNone"\n class="secondaryToolbarButton toggled"\n title="Do not join page spreads"\n tabindex="66"\n data-l10n-id="spread_none"\n role="radio"\n aria-checked="true"\n >\n <span data-l10n-id="spread_none_label">No Spreads</span>\n </button>\n <button\n id="spreadOdd"\n class="secondaryToolbarButton"\n title="Join page spreads starting with odd-numbered pages"\n tabindex="67"\n data-l10n-id="spread_odd"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="spread_odd_label">Odd Spreads</span>\n </button>\n <button\n id="spreadEven"\n class="secondaryToolbarButton"\n title="Join page spreads starting with even-numbered pages"\n tabindex="68"\n data-l10n-id="spread_even"\n role="radio"\n aria-checked="false"\n >\n <span data-l10n-id="spread_even_label">Even Spreads</span>\n </button>\n </div>\n\n <div class="horizontalToolbarSeparator"></div>\n\n <button\n id="documentProperties"\n class="secondaryToolbarButton"\n title="Document Properties…"\n tabindex="69"\n data-l10n-id="document_properties"\n aria-controls="documentPropertiesDialog"\n >\n <span data-l10n-id="document_properties_label"\n >Document Properties…</span\n >\n </button>\n </div>\n </div>\n \x3c!-- secondaryToolbar --\x3e\n\n <div class="toolbar">\n <div id="toolbarContainer">\n <div id="toolbarViewer" style="padding-top: 5px">\n <div id="toolbarViewerLeft">\n <button\n id="sidebarToggle"\n class="toolbarButton hidden"\n title="Toggle Sidebar"\n tabindex="11"\n data-l10n-id="toggle_sidebar"\n aria-expanded="false"\n aria-controls="websign-sidebar-container"\n >\n <span data-l10n-id="toggle_sidebar_label"\n >Toggle Sidebar</span\n >\n </button>\n\n <button\n id="viewFind"\n class="toolbarButton hidden"\n title="Find in Document"\n tabindex="12"\n data-l10n-id="findbar"\n aria-expanded="false"\n aria-controls="findbar"\n >\n <span data-l10n-id="findbar_label">Find</span>\n </button>\n <div class="splitToolbarButton hiddenSmallView">\n <button\n class="toolbarButton"\n title="Previous Page"\n id="previous"\n tabindex="13"\n data-l10n-id="previous"\n >\n <span data-l10n-id="previous_label">Previous</span>\n </button>\n <div class="splitToolbarButtonSeparator"></div>\n <button\n class="toolbarButton"\n title="Next Page"\n id="next"\n tabindex="14"\n data-l10n-id="next"\n >\n <span data-l10n-id="next_label">Next</span>\n </button>\n </div>\n <input\n type="number"\n id="pageNumber"\n class="toolbarField"\n title="Page"\n value="1"\n min="1"\n tabindex="15"\n data-l10n-id="page"\n autocomplete="off"\n />\n <span id="numPages" class="toolbarLabel"></span>\n </div>\n <div id="toolbarViewerRight">\n <button\n id="openFile"\n class="toolbarButton hiddenLargeView hidden"\n title="Open File"\n tabindex="31"\n data-l10n-id="open_file"\n >\n <span data-l10n-id="open_file_label">Open</span>\n </button>\n\n <button\n id="print"\n class="toolbarButton hidden"\n title="Print"\n tabindex="32"\n data-l10n-id="print"\n >\n <span data-l10n-id="print_label">Print</span>\n </button>\n\n <button\n id="download"\n class="toolbarButton hiddenMediumView hidden"\n title="Save"\n tabindex="33"\n data-l10n-id="save"\n >\n <span data-l10n-id="save_label">Save</span>\n </button>\n\n <div class="verticalToolbarSeparator hidden"></div>\n\n <div\n id="editorModeButtons"\n class="splitToolbarButton toggled"\n role="radiogroup"\n >\n <button\n id="editorSignature"\n class="toolbarButton"\n title="Signature"\n data-l10n-id="editor_signature"\n >\n <span data-l10n-id="editor_signature_label">Signature</span>\n </button>\n\n <button\n id="editorFreeText"\n class="toolbarButton hidden"\n disabled="disabled"\n title="Text"\n role="radio"\n aria-checked="false"\n tabindex="34"\n data-l10n-id="editor_free_text2"\n >\n <span data-l10n-id="editor_free_text2_label">Text</span>\n </button>\n <button\n id="editorInk"\n class="toolbarButton hidden"\n disabled="disabled"\n title="Draw"\n role="radio"\n aria-checked="false"\n tabindex="35"\n data-l10n-id="editor_ink2"\n >\n <span data-l10n-id="editor_ink2_label">Draw</span>\n </button>\n </div>\n\n <div\n id="editorModeSeparator"\n class="verticalToolbarSeparator hidden"\n ></div>\n\n <button\n id="secondaryToolbarToggle"\n class="toolbarButton hidden"\n title="Tools"\n tabindex="48"\n data-l10n-id="tools"\n aria-expanded="false"\n aria-controls="secondaryToolbar"\n >\n <span data-l10n-id="tools_label">Tools</span>\n </button>\n </div>\n <div id="toolbarViewerMiddle">\n <div class="splitToolbarButton">\n <button\n id="zoomOut"\n class="toolbarButton"\n title="Zoom Out"\n tabindex="21"\n data-l10n-id="zoom_out"\n >\n <span data-l10n-id="zoom_out_label">Zoom Out</span>\n </button>\n <div class="splitToolbarButtonSeparator"></div>\n <button\n id="zoomIn"\n class="toolbarButton"\n title="Zoom In"\n tabindex="22"\n data-l10n-id="zoom_in"\n >\n <span data-l10n-id="zoom_in_label">Zoom In</span>\n </button>\n </div>\n <span\n id="scaleSelectContainer"\n class="dropdownToolbarButton hidden"\n >\n <select\n id="scaleSelect"\n title="Zoom"\n tabindex="23"\n data-l10n-id="zoom"\n >\n <option\n id="pageAutoOption"\n title=""\n value="auto"\n selected="selected"\n data-l10n-id="page_scale_auto"\n >\n Automatic Zoom\n </option>\n <option\n id="pageActualOption"\n title=""\n value="page-actual"\n data-l10n-id="page_scale_actual"\n >\n Actual Size\n </option>\n <option\n id="pageFitOption"\n title=""\n value="page-fit"\n data-l10n-id="page_scale_fit"\n >\n Page Fit\n </option>\n <option\n id="pageWidthOption"\n title=""\n value="page-width"\n data-l10n-id="page_scale_width"\n >\n Page Width\n </option>\n <option\n id="customScaleOption"\n title=""\n value="custom"\n disabled="disabled"\n hidden="true"\n ></option>\n <option\n title=""\n value="0.5"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 50 }\'\n >\n 50%\n </option>\n <option\n title=""\n value="0.75"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 75 }\'\n >\n 75%\n </option>\n <option\n title=""\n value="1"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 100 }\'\n >\n 100%\n </option>\n <option\n title=""\n value="1.25"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 125 }\'\n >\n 125%\n </option>\n <option\n title=""\n value="1.5"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 150 }\'\n >\n 150%\n </option>\n <option\n title=""\n value="2"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 200 }\'\n >\n 200%\n </option>\n <option\n title=""\n value="3"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 300 }\'\n >\n 300%\n </option>\n <option\n title=""\n value="4"\n data-l10n-id="page_scale_percent"\n data-l10n-args=\'{ "scale": 400 }\'\n >\n 400%\n </option>\n </select>\n </span>\n </div>\n </div>\n <div id="loadingBar">\n <div class="progress">\n <div class="glimmer"></div>\n </div>\n </div>\n </div>\n </div>\n\n <div id="websign-viewer-container" tabindex="0">\n <div id="websign-viewer" class="pdfViewer websign-pdf-viewer"></div>\n </div>\n </div>\n \x3c!-- websign-main-container --\x3e\n\n <div id="dialogContainer">\n <dialog id="passwordDialog">\n <div class="row">\n <label\n for="password"\n id="passwordText"\n data-l10n-id="password_label"\n >Enter the password to open this PDF file:</label\n >\n </div>\n <div class="row">\n <input type="password" id="password" class="toolbarField" />\n </div>\n <div class="buttonRow">\n <button id="passwordCancel" class="dialogButton">\n <span data-l10n-id="password_cancel">Cancel</span>\n </button>\n <button id="passwordSubmit" class="dialogButton">\n <span data-l10n-id="password_ok">OK</span>\n </button>\n </div>\n </dialog>\n <dialog id="documentPropertiesDialog">\n <div class="row">\n <span\n id="fileNameLabel"\n data-l10n-id="document_properties_file_name"\n >File name:</span\n >\n <p id="fileNameField" aria-labelledby="fileNameLabel">-</p>\n </div>\n <div class="row">\n <span\n id="fileSizeLabel"\n data-l10n-id="document_properties_file_size"\n >File size:</span\n >\n <p id="fileSizeField" aria-labelledby="fileSizeLabel">-</p>\n </div>\n <div class="separator"></div>\n <div class="row">\n <span id="titleLabel" data-l10n-id="document_properties_title"\n >Title:</span\n >\n <p id="titleField" aria-labelledby="titleLabel">-</p>\n </div>\n <div class="row">\n <span id="authorLabel" data-l10n-id="document_properties_author"\n >Author:</span\n >\n <p id="authorField" aria-labelledby="authorLabel">-</p>\n </div>\n <div class="row">\n <span id="subjectLabel" data-l10n-id="document_properties_subject"\n >Subject:</span\n >\n <p id="subjectField" aria-labelledby="subjectLabel">-</p>\n </div>\n <div class="row">\n <span id="keywordsLabel" data-l10n-id="document_properties_keywords"\n >Keywords:</span\n >\n <p id="keywordsField" aria-labelledby="keywordsLabel">-</p>\n </div>\n <div class="row">\n <span\n id="creationDateLabel"\n data-l10n-id="document_properties_creation_date"\n >Creation Date:</span\n >\n <p id="creationDateField" aria-labelledby="creationDateLabel">-</p>\n </div>\n <div class="row">\n <span\n id="modificationDateLabel"\n data-l10n-id="document_properties_modification_date"\n >Modification Date:</span\n >\n <p\n id="modificationDateField"\n aria-labelledby="modificationDateLabel"\n >\n -\n </p>\n </div>\n <div class="row">\n <span id="creatorLabel" data-l10n-id="document_properties_creator"\n >Creator:</span\n >\n <p id="creatorField" aria-labelledby="creatorLabel">-</p>\n </div>\n <div class="separator"></div>\n <div class="row">\n <span id="producerLabel" data-l10n-id="document_properties_producer"\n >PDF Producer:</span\n >\n <p id="producerField" aria-labelledby="producerLabel">-</p>\n </div>\n <div class="row">\n <span id="versionLabel" data-l10n-id="document_properties_version"\n >PDF Version:</span\n >\n <p id="versionField" aria-labelledby="versionLabel">-</p>\n </div>\n <div class="row">\n <span\n id="pageCountLabel"\n data-l10n-id="document_properties_page_count"\n >Page Count:</span\n >\n <p id="pageCountField" aria-labelledby="pageCountLabel">-</p>\n </div>\n <div class="row">\n <span\n id="pageSizeLabel"\n data-l10n-id="document_properties_page_size"\n >Page Size:</span\n >\n <p id="pageSizeField" aria-labelledby="pageSizeLabel">-</p>\n </div>\n <div class="separator"></div>\n <div class="row">\n <span\n id="linearizedLabel"\n data-l10n-id="document_properties_linearized"\n >Fast Web View:</span\n >\n <p id="linearizedField" aria-labelledby="linearizedLabel">-</p>\n </div>\n <div class="buttonRow">\n <button id="documentPropertiesClose" class="dialogButton">\n <span data-l10n-id="document_properties_close">Close</span>\n </button>\n </div>\n </dialog>\n <dialog id="printServiceDialog" style="min-width: 200px">\n <div class="row">\n <span data-l10n-id="print_progress_message"\n >Preparing document for printing…</span\n >\n </div>\n <div class="row">\n <progress value="0" max="100"></progress>\n <span\n data-l10n-id="print_progress_percent"\n data-l10n-args=\'{ "progress": 0 }\'\n class="relative-progress"\n >0%</span\n >\n </div>\n <div class="buttonRow">\n <button id="printCancel" class="dialogButton">\n <span data-l10n-id="print_progress_close">Cancel</span>\n </button>\n </div>\n </dialog>\n </div>\n \x3c!-- dialogContainer --\x3e\n </div>\n \x3c!-- websign-outer-container --\x3e\n <div id="printContainer"></div>\n </body>\n</html>\n <style>\n\n.websign-ripple {\n background-position: center;\n transition: background 0.3s ease, transform 0.15s ease;\n}\n\n .websign-ripple:hover {\n background: rgba(0, 87, 162, 0.06) radial-gradient(circle, transparent 1%, rgba(0, 87, 162, 0.06) 1%)\n center/15000%;\n }\n\n .websign-ripple:active {\n background-size: 100%;\n transition: background 0s;\n }\n\n .websign-fab {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n cursor: pointer;\n padding: 12px;\n z-index: 1003;\n position: absolute;\n width: 28px;\n height: 28px;\n color: #fff;\n border-radius: 50%;\n text-align: center;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);\n box-sizing: content-box !important;\n transition: box-shadow 0.2s ease, transform 0.15s ease, background-color 0.15s ease;\n }\n\n .websign-fab:hover {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n transform: scale(1.05);\n }\n\n .websign-fab:active {\n transform: scale(0.95);\n }\n\n #websign-fab-clear {\n display: none;\n bottom: 160px;\n right: 24px;\n background-color: rgba(0, 87, 162, 0.13);\n border: none;\n color: rgba(0, 87, 162, 1);\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);\n }\n\n #websign-fab-cancel {\n display: none;\n bottom: 96px;\n right: 24px;\n background-color: rgba(0, 87, 162, 0.13);\n border: none;\n color: rgba(198, 40, 40, 0.7);\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);\n }\n\n #websign-fab-ok {\n display: none;\n bottom: 32px;\n right: 24px;\n background-color: rgba(var(--websign-primary-color), 0.82);\n }\n\n #websign-fab-sign {\n width: 32px;\n height: 32px;\n padding: 14px;\n bottom: 32px;\n right: 24px;\n background-color: rgba(var(--websign-primary-color), 1);\n }\n\n .websign-disabled {\n pointer-events: none;\n opacity: 0.7;\n }\n\n .websign-disabled-events {\n pointer-events: none;\n }\n\n .websign-antidisabled {\n pointer-events: auto !important;\n }\n\n #websign-overlay {\n pointer-events: none;\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #777;\n filter: alpha(opacity=50);\n -moz-opacity: 0.2;\n -khtml-opacity: 0.5;\n opacity: 0.5 !important;\n z-index: 1001;\n }\n\n .websign-loader {\n z-index: 1004;\n position: relative;\n width: 75px;\n height: 75px;\n left: calc(50% - 40px);\n top: calc(50% - 40px);\n border: 3px solid rgba(var(--websign-primary-color), 1);\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: websign-rotation 1s linear infinite;\n }\n\n #websign-snackbar {\n display: none;\n min-width: 250px;\n color: #fff;\n text-align: center;\n border-radius: 8px;\n top: calc(100% - 82px);\n padding: 16px;\n margin: auto;\n width: 50%;\n position: relative;\n z-index: 1005;\n font-size: 17px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n @keyframes websign-rotation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .ui-resizable-se {\n right: 0;\n bottom: 0;\n border-top: 1px solid #000;\n border-left: 1px solid #000;\n background: url("./js/web-sign/build/arrow-diagonal.svg");\n width: 24px;\n height: 24px;\n }\n dialog {\n display: none;\n }\n\n .arrow-up {\n width: 0;\n height: 0;\n animation: bounce 1s infinite;\n position: relative;\n }\n .arrow-down {\n width: 0;\n height: 0;\n animation: bounce 1s infinite;\n position: relative;\n }\n\n .arrow-up::before {\n content: "";\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 20px solid #3b98fc;\n border-style: solid;\n border-color: transparent transparent #3b98fc transparent;\n }\n\n .arrow-down::before {\n content: "";\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-top: 20px solid #3b98fc;\n }\n\n .signature-disabled {\n border: 1px solid #999999 !important;\n background-color: #e7e7e7 !important;\n color: #666666 !important;\n box-shadow: 10px 5px 5px grey;\n }\n\n .text-layer-disabled {\n background-color: rgb(29, 29, 29);\n }\n\n @keyframes bounce {\n 0%,\n 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(10px);\n }\n }\n</style>';class EdataliaPdfJsWidget{constructor(e,t,n,i,o){this.onActivateMouseCanvas=t,this.onSignCallback=n,this.onReset=i,this.onCancel=o,this.webSignConfig=e,this.WebSignWidgetType={Manual:"manual",Fixed:"fixed",Float:"float",Field:"field"},this.signatureConfigAppended={x:null,y:null,width:this.webSignConfig.widget.width,height:this.webSignConfig.widget.height},this.WebSignStatus={Initialized:"initialized",Appended:"appended",Positioned:"positioned"},this.WebSignSignatureType={Display:"display",STU:"stu",DTU:"dtu"},this.status=this.WebSignStatus.Initialized,this.snackbar=new Snackbar,this.configureWidgetFloat(),this.configureWidgetField(),this.configureWidgetFixed()}async init(){this.snackbar.show("Posiciona y/o reescala la caja de firma en la página","info",3e3),this.widgetControl={autoScroll:!0,savedPositionX:null,newDragTo:null,pdfPage:PDFViewerApplication.page,prevPage:PDFViewerApplication.page,isMovingUp:!1,resizeWidth:this.webSignConfig.widget.width,resizeHeight:this.webSignConfig.widget.height},this.enableButtons(),this.createSignatureContainer(),this.disablePdfFormFields();const e=document.querySelector("#websign-fab-sign"),t=document.querySelector("#websign-fab-ok"),n=document.querySelector("#websign-fab-cancel");if(this.hideElementWithAnimation(e,500),this.showElementWithAnimation(t,500),this.showElementWithAnimation(n,500),this.webSignConfig.widget.type===this.WebSignWidgetType.Fixed||this.webSignConfig.widget.type===this.WebSignWidgetType.Float||this.webSignConfig.widget.type===this.WebSignWidgetType.Field){const e=document.getElementById("websignpdfjs-ok-btn");this.handleSimulatedButtonClick(e)}window.addEventListener("orientationchange",(e=>{this.status===this.WebSignStatus.Positioned&&this.resetSignature()}))}createSignatureContainer(e){if(document.getElementById("websign-signature-container"))return;let t;t=null!=e?e:PDFViewerApplication.page,this.signaturePage||(this.webSignConfig.widget.type===this.WebSignWidgetType.Fixed||this.webSignConfig.widget.type===this.WebSignWidgetType.Float?this.webSignConfig.widget.page>PDFViewerApplication.pagesCount?this.signaturePage=PDFViewerApplication.pagesCount:this.signaturePage=this.webSignConfig.widget.page:this.signaturePage=t);const n=this.signaturePage-1;this.signaturePageView=PDFViewerApplication.pdfViewer.getPageView(n);const i=document.getElementById("websign-page-"+this.signaturePage),o=document.createElement("div");o.id="websign-signature-container",Object.assign(o.style,{position:"absolute",width:`${i.clientWidth}px`,height:`${i.clientHeight}px`,top:"0px",left:"0px",zIndex:"1002"}),i.appendChild(o),this.createSignatureWidget()}createSignatureWidget(){let e,t,n,i,o;this.status===this.WebSignStatus.Appended?e=this.PDFCoordsToScreenCoords(new EPKCoordintates(this.signatureConfigAppended.x,this.signatureConfigAppended.y,this.signatureConfigAppended.x+this.signatureConfigAppended.width,this.signatureConfigAppended.height+this.signatureConfigAppended.y)):(null!=this.signatureConfigAppended.x&&null!=this.signatureConfigAppended.y||this.positionateSignatureOnPDFPage(),e=this.PDFCoordsToScreenCoords(new EPKCoordintates(this.signatureConfigAppended.x,this.signatureConfigAppended.y,this.signatureConfigAppended.x+this.widgetControl.resizeWidth,this.widgetControl.resizeHeight+this.signatureConfigAppended.y)));const r=document.createElement("div");r.id="web-sign";const a=document.createElement("div");90===this.PDFDegree()||270===this.PDFDegree()?(n=Math.abs(e.y0-e.y1),t=Math.abs(e.x1-e.x0),i=e.y0,o=e.x1,t>n&&(n=Math.abs(e.x1-e.x0),t=Math.abs(e.y0-e.y1))):(n=Math.abs(e.x1-e.x0),t=Math.abs(e.y0-e.y1),i=e.y1,o=e.x0),Object.assign(r.style,{userSelect:"none",border:"1.5px solid rgba(0, 87, 162, 0.25)",position:"absolute",overflow:"hidden",opacity:"1",top:`${i}px`,left:`${o}px`,width:`${n}px`,height:`${t}px`,cursor:"move",background:"rgba(255, 255, 255, 0.95)",zIndex:"100",boxShadow:"0 2px 12px rgba(0, 87, 162, 0.12)",borderRadius:"10px"}),r.classList.add("websign-antidisabled"),Object.assign(a.style,{position:"absolute",bottom:"40%",left:"50%",transform:"translateX(-50%)"}),r.appendChild(a);const s=document.getElementById("websign-signature-container");s?s.appendChild(r):console.error("websign-signature-container no encontrado."),this.updateSignatureCoordinates(),this.setupResizableAndDraggable(r,{aspectRatio:!0,minWidth:83,minHeight:63,containmentSelector:"#websign-signature-container",onResizeStop:()=>{},onDragStop:()=>{this.status!==this.WebSignStatus.Initialized&&(this.widgetControlUpdateValues(),this.updateSignatureCoordinates())}}),this.createSignatureButtons(),this.status!==this.WebSignStatus.Appended&&(this.centersPdfOnScreenBasedOnSignature(!1,this.widgetControl.autoScroll),this.status=this.WebSignStatus.Appended)}async centersPdfOnScreenBasedOnSignature(e,t){let n=PDFViewerApplication.pdfViewer.currentScale;if(e){let e=PDFViewerApplication.pdfViewer.currentScale,t=document.querySelector("#websign-viewer-container"),i=document.querySelector("#web-sign"),o=t?t.clientWidth:0,r=i?i.clientWidth:0,a=e/(r/o),s=t?t.clientHeight:0,l=i?i.clientHeight:0,c=e/(l/s);n=Math.min(a,c),this.configWidthPx=n*r/e,this.configHeightPx=n*l/e}t&&this.status===this.WebSignStatus.Positioned&&(this.webSignConfig.widget.type===this.WebSignWidgetType.Field&&(this.signaturePage=this.webSignConfig.widget.page),await this.scrollAndZoomPage(parseInt(this.signaturePage),this.signatureConfigAppended.x,this.signatureConfigAppended.y+this.signatureConfigAppended.height,n))}scrollAndZoomPage(e,t,n,i){return console.log("websign-scrollAndZoomPage"),new Promise(((o,r)=>{try{PDFViewerApplication.pdfViewer.scrollPageIntoView({pageNumber:e,destArray:[null,{name:"XYZ"},t,n,i],allowNegativeOffset:!0});const r=()=>{console.log("websign-checkScrollZoomCompletion");const t=PDFViewerApplication.pdfViewer.getPageView(e-1);t&&3===t.renderingState?o():setTimeout(r,100)};r()}catch(e){r(e)}}))}PDFCoordsToScreenCoords(e){let t,n;return n=this.signaturePageView.viewport.convertToViewportPoint(e.x1,e.y1),t=this.signaturePageView.viewport.convertToViewportPoint(e.x0,e.y0),new EPKCoordintates(t[0],t[1],n[0],n[1])}positionateSignatureOnPDFPage(){let e=this.signaturePageView.viewport.viewBox;if(this.webSignConfig.widget.type===this.WebSignWidgetType.Fixed||this.webSignConfig.widget.type===this.WebSignWidgetType.Float||this.webSignConfig.widget.type===this.WebSignWidgetType.Field)return this.signatureConfigAppended.x=this.webSignConfig.widget.x,this.signatureConfigAppended.y=this.webSignConfig.widget.y,this.signatureConfigAppended.width=this.webSignConfig.widget.width,void(this.signatureConfigAppended.height=this.webSignConfig.widget.height);this.signaturePositionX(e),this.signaturePositionY(e)}signaturePositionX(e){let t=PDFViewerApplication.pdfViewer._location.left;t<0&&(t=0),null==this.signatureConfigAppended.x&&(this.widgetControl.autoScroll?this.isMobile()?this.signatureConfigAppended.x=t:PDFViewerApplication.pdfViewer.currentScale<1.8?90===this.PDFDegree()||270===this.PDFDegree()?this.signatureConfigAppended.x=(e[2]-e[0])/2-this.signatureConfigAppended.width/2:this.signatureConfigAppended.x=(e[2]-e[0])/2-this.signatureConfigAppended.width/2+t:this.signatureConfigAppended.x=t:this.signatureConfigAppended.x=this.widgetControl.savedPositionX)}signaturePositionY(e){let t=+getComputedStyle(document.getElementById("websign-page-1")).borderTopWidth.slice(0,-2);null==this.signatureConfigAppended.y&&(this.widgetControl.autoScroll?this.isMobile()?PDFViewerApplication.pdfViewer._location.pageNumber!==PDFViewerApplication.page?this.signatureConfigAppended.y=e[3]-e[1]-this.widgetControl.resizeHeight:1===PDFViewerApplication.page?this.signatureConfigAppended.y=PDFViewerApplication.pdfViewer._location.top-this.widgetControl.resizeHeight-t/PDFViewerApplication.pdfViewer.currentScale:this.signatureConfigAppended.y=PDFViewerApplication.pdfViewer._location.top-this.widgetControl.resizeHeight:PDFViewerApplication.pdfViewer._location.pageNumber!==PDFViewerApplication.page?90===this.PDFDegree()||270===this.PDFDegree()?this.signatureConfigAppended.y=(e[3]-e[1])/2-this.signatureConfigAppended.width:this.signatureConfigAppended.y=e[3]-e[1]-this.widgetControl.resizeHeight-PDFViewerApplication.pdfViewer._location.top/2:PDFViewerApplication.pdfViewer.currentScale<1.8?90===this.PDFDegree()||270===this.PDFDegree()?this.signatureConfigAppended.y=(e[3]-e[1])/2-this.signatureConfigAppended.width:this.signatureConfigAppended.y=PDFViewerApplication.pdfViewer._location.top/2+this.widgetControl.resizeHeight/2:1===PDFViewerApplication.page?this.signatureConfigAppended.y=PDFViewerApplication.pdfViewer._location.top-this.widgetControl.resizeHeight-t/PDFViewerApplication.pdfViewer.currentScale:this.signatureConfigAppended.y=PDFViewerApplication.pdfViewer._location.top-this.widgetControl.resizeHeight:"up"===this.widgetControl.newDragTo?this.signatureConfigAppended.y=0:"down"===this.widgetControl.newDragTo&&(this.signatureConfigAppended.y=e[3]-e[1]-this.widgetControl.resizeHeight))}async configureWidgetFloat(){if(this.webSignConfig.widget.type===this.WebSignWidgetType.Float){let e=await this.getTextPageCoordinates();null===e||(this.webSignConfig.widget.page=e[0],this.webSignConfig.widget.x=e[1]+this.webSignConfig.widget.gapX,this.webSignConfig.widget.y=e[2]-this.webSignConfig.widget.height-this.webSignConfig.widget.gapY,this.webSignConfig.widget.y<0&&(this.webSignConfig.widget.y=0),this.webSignConfig.widget.x<0&&(this.webSignConfig.widget.x=0))}}async configureWidgetField(){let e=!1;if(this.webSignConfig.widget.type===this.WebSignWidgetType.Field){const t=PDFViewerApplication.pdfDocument.numPages;for(let n=1;n<=t;n++){const t=await PDFViewerApplication.pdfDocument.getPage(n),i=await t.getAnnotations();for(let t=0;t<i.length;t++){const o=i[t],r={width:o.rect[2]-o.rect[0],height:o.rect[3]-o.rect[1]};this.webSignConfig.widget.width=r.width,this.webSignConfig.widget.height=r.height,o.fieldName===this.webSignConfig.widget.fieldName&&(e=!0,this.webSignConfig.widget.page=n,this.webSignConfig.widget.x=o.rect[0],this.webSignConfig.widget.y=o.rect[3]-this.webSignConfig.widget.height)}}if(!e)return this.snackbar.show("No se encuentra el campo de firma","error",3e3),void this.disableButtons()}}async configureWidgetFixed(){this.webSignConfig.widget.type===this.WebSignWidgetType.Fixed&&(null==this.webSignConfig.widget.x&&(this.webSignConfig.widget.x=0),null==this.webSignConfig.widget.y&&(this.webSignConfig.widget.y=0))}handleSimulatedButtonClick(e){if("function"==typeof e.onclick)e.onclick();else{const t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(t)}}setupResizableAndDraggable(e,t={}){const n=document.querySelectorAll(".page");this.isDraggingEnabled=!0;let i=this;const{aspectRatio:o=!1,minWidth:r=0,minHeight:a=0,containmentSelector:s,onResizeStop:l,onDragStop:c}=t;let u,p,h,d,g,m,f=!1,S=!1;const b=s?document.querySelector(s):null;this.startResize=t=>{f=!0,u=t.clientX||t.touches[0].clientX,p=t.clientY||t.touches[0].clientY;const n=e.getBoundingClientRect();h=n.width,d=n.height,this.isDraggingEnabled&&(document.addEventListener("mousemove",this.resize),document.addEventListener("mouseup",this.stopResize),document.addEventListener("touchmove",this.resize),document.addEventListener("touchend",this.stopResize)),t.stopPropagation()},this.resize=t=>{if(!f)return;const n=t.clientX||t.touches[0].clientX,i=t.clientY||t.touches[0].clientY;let s=h+(n-u),l=d+(i-p);if(o){const e=h/d;s/l>e?s=l*e:l=s/e}if(s=Math.max(s,r),l=Math.max(l,a),b){const t=b.getBoundingClientRect(),n=e.getBoundingClientRect();n.left+s>t.right&&(s=t.right-n.left),n.top+l>t.bottom&&(l=t.bottom-n.top)}e.style.width=`${s}px`,e.style.height=`${l}px`},this.stopResize=()=>{f=!1,document.removeEventListener("mousemove",this.resize),document.removeEventListener("mouseup",this.stopResize),document.removeEventListener("touchmove",this.resize),document.removeEventListener("touchend",this.stopResize),l&&l()},this.startDrag=t=>{if(f)return;S=!0,u=t.touches?t.touches[0].clientX:t.clientX,p=t.touches?t.touches[0].clientY:t.clientY;const n=e.getBoundingClientRect(),i=b.getBoundingClientRect();g=n.left-i.left,m=n.top-i.top,this.isDraggingEnabled&&(document.addEventListener("mousemove",this.drag),document.addEventListener("mouseup",this.stopDrag),document.addEventListener("touchmove",this.drag,{passive:!1}),document.addEventListener("touchend",this.stopDrag)),t.preventDefault()},this.drag=t=>{if(!S)return;const o=t.clientX||t.touches[0].clientX,r=t.clientY||t.touches[0].clientY;let a=g+(o-u),s=m+(r-p);if(b){const t=b.getBoundingClientRect(),n=e.getBoundingClientRect();a=Math.max(0,Math.min(a,t.width-n.width)),s=Math.max(0,Math.min(s,t.height-n.height))}e.style.left=`${a}px`,e.style.top=`${s}px`,this.updateSignatureCoordinates(),this.widgetControlUpdateValues(),n.forEach((e=>{e.addEventListener("mousemove",(function(e){i.moveWidgetDesktop(e)}))})),90!==this.PDFDegree()&&270!==this.PDFDegree()&&this.moveSignatureBetweenPages(this.widgetControl.pdfPage)},this.stopDrag=()=>{S=!1,document.removeEventListener("mousemove",this.drag),document.removeEventListener("mouseup",this.stopDrag),document.removeEventListener("touchmove",this.drag),document.removeEventListener("touchend",this.stopDrag),c&&c()};const y=document.createElement("div");y.id="websign-resizer",y.style.position="absolute",y.style.bottom="0",y.style.right="0",y.style.width="10px",y.style.height="10px",y.style.cursor="se-resize",y.style.background="rgba(0, 87, 162, 0.25)",y.style.borderRadius="2px 0 0 0",y.style.zIndex="1004",y.addEventListener("mousedown",this.startResize),y.addEventListener("touchstart",this.startResize),e.appendChild(y),e.addEventListener("mousedown",this.startDrag),e.addEventListener("touchstart",this.startDrag)}updateSignatureCoordinates(){let e=this.getPDFSignatureCoordinates(),t=this.getPDFSignatureCoordinates90Degrees();this.signatureConfigAppended=new EPKSignatureParam(e.x0,e.y1,e.x1-e.x0,e.y0-e.y1),this.rotatedCoords=new EPKSignatureParam(t.x0,this.signaturePageView.viewport.viewBox[2]-t.y1,t.x1-t.x0,t.y1-t.y0)}widgetControlUpdateValues(){this.widgetControl.savedPositionX=this.signatureConfigAppended.x,this.widgetControl.resizeWidth=this.signatureConfigAppended.width,this.widgetControl.resizeHeight=this.signatureConfigAppended.height}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}PDFDegree(){return PDFViewerApplication.pdfViewer._pages[PDFViewerApplication.page-1].pdfPageRotate}createSignatureButtons(){["websign-signature-progress","websign-signature-text"].forEach((e=>{const t=document.getElementById(e);t&&t.remove()}));const e=this.status===this.WebSignStatus.Positioned;if(navigator.userAgent.toLowerCase().includes("android")&&!e)return;const t=document.getElementById("web-sign");t&&setupSignatureLayout(t);const n=t&&t.offsetWidth<250,i=e?"4px 5px":"4px 12px",o=createSignatureButtonsBar({language:this.webSignConfig.language,compact:n,padding:i,callbacks:{onClear:e?()=>this.onReset():null,onCancel:()=>{this.onCancel(),this.resetSignature()},onAccept:async()=>{const e=document.getElementById("websign-fab-ok");e&&e.click()}},ids:{clear:"websign-signature-clear",accept:"websignpdfjs-ok-btn"}});if(t.appendChild(o),o.classList.add("websign-antidisabled"),e){const{container:e}=createProgressBar();t.appendChild(e)}if(!e){const e=document.createElement("p");e.id="websign-signature-text",e.textContent="Posiciona y/o reescala la caja de firma en la página",Object.assign(e.style,{textAlign:"center",padding:"6px 10px",margin:"0",color:"rgba(0, 87, 162, 0.6)",fontSize:"11px",lineHeight:"1.3"}),t&&t.appendChild(e)}}setSignerMode(){document.contains(document.getElementById("websign-signature-text"))&&document.getElementById("websign-signature-text").remove(),this.showElementWithAnimation(document.getElementById("websign-overlay"),10),document.querySelector("#websign-container").classList.add("websign-disabled-events"),document.querySelector("#web-sign").style.cursor="crosshair";const e=document.getElementById("websign-resizer");e&&(e.style.display="none"),document.querySelector("#web-sign").addEventListener("wheel",(function(e){e.preventDefault()})),this.stopDrag(),this.isDraggingEnabled=!1,document.querySelector("#web-sign").addEventListener("mousewheel",(function(e){e.preventDefault()})),document.addEventListener("touchmove",this.preventMobileZoom),document.addEventListener("wheel",this.preventZoomMouse,{passive:!1}),document.addEventListener("keydown",this.preventCntrlZoom)}async getTextPageCoordinates(){for(var e=1;e<=PDFViewerApplication.pdfDocument.numPages;e++)for(var t=await PDFViewerApplication.pdfDocument.getPage(e),n=await t.getTextContent(),i=0;i<n.items.length;i++){var o=n.items[i];if(o.str.includes(this.webSignConfig.widget.text))return[e,o.transform[4],o.transform[5]]}return null}preventZoomMouse(e){e.ctrlKey&&(e.stopImmediatePropagation(),e.preventDefault())}preventCntrlZoom(e){1!=e.ctrlKey&&!e.metaKey||"61"!=e.which&&"107"!=e.which&&"173"!=e.which&&"109"!=e.which&&"187"!=e.which&&"189"!=e.which||(e.preventDefault(),e.stopImmediatePropagation())}preventMobileZoom(e){e.preventDefault(),e.stopImmediatePropagation()}resetSignature(){this.enablePdfFormFields(),this.widgetControl.autoScroll=!0,this.readyToSign=!1,this.signaturePage=void 0,PDFViewerApplication.pdfViewer.currentScaleValue="auto",this.hideElementWithAnimation(document.getElementById("websign-overlay"),100);document.querySelector("#websign-container").classList.remove("websign-disabled-events"),document.getElementById("websign-signature-container")&&document.getElementById("websign-signature-container").remove();const e=document.querySelector("#websign-fab-sign"),t=document.querySelector("#websign-fab-ok"),n=document.querySelector("#websign-fab-cancel"),i=document.querySelector("#websign-fab-clear");this.widgetControl.autoScroll&&(this.showElementWithAnimation(e,0),this.hideElementWithAnimation(i,0),this.hideElementWithAnimation(t,0),this.hideElementWithAnimation(n,0)),this.signaturePositioned=!1,this.webSignConfig.widget.type===this.WebSignWidgetType.Fixed||this.webSignConfig.widget.type===this.WebSignWidgetType.Float?this.signatureConfigAppended={x:this.webSignConfig.widget.x,y:this.webSignConfig.widget.y,width:this.webSignConfig.widget.width,height:this.webSignConfig.widget.height}:this.signatureConfigAppended={x:null,y:null,width:this.webSignConfig.widget.width,height:this.webSignConfig.widget.height},this.signaturePage=void 0,PDFViewerApplication.pdfViewer.currentScaleValue="auto",this.widgetControl.autoScroll&&"positioned"===this.status&&this.disableButtons(),this.status=this.WebSignStatus.Initialized,document.removeEventListener("wheel",this.preventZoomMouse),document.removeEventListener("keydown",this.preventCntrlZoom),document.removeEventListener("touchmove",this.preventMobileZoom)}moveWidgetDesktop(e){let t=e.currentTarget.id;t=t.match(/\d+/),this.widgetControl.pdfPage=parseInt(t[0],10)}moveSignatureBetweenPages(e){if(e!==this.widgetControl.prevPage){this.resetSignature(),this.widgetControl.autoScroll=!1,e>this.widgetControl.prevPage&&(this.widgetControl.newDragTo="down"),e<this.widgetControl.prevPage&&(this.widgetControl.newDragTo="up"),this.createSignatureContainer(e);const t=document.querySelector("#websign-fab-sign"),n=document.querySelector("#websign-fab-ok"),i=document.querySelector("#websign-fab-cancel");this.hideElementWithAnimation(t),this.showElementWithAnimation(n),this.showElementWithAnimation(i),this.widgetControl.prevPage=e}}getPDFSignatureCoordinates(){const e=document.getElementById("web-sign"),t={top:parseFloat(e.style.top)||0,left:parseFloat(e.style.left)||0},n=e.offsetWidth,i=e.offsetHeight;return this.screenCoordsToPDFCoords(new EPKCoordintates(t.left,t.top,t.left+n,t.top+i))}getPDFSignatureCoordinates90Degrees(){const e=document.getElementById("web-sign"),t={top:parseFloat(e.style.left),left:parseFloat(e.style.top)};return this.screenCoordsToPDFCoords(new EPKCoordintates(t.left,t.top,t.left+e.offsetHeight,t.top+e.offsetWidth))}screenCoordsToPDFCoords(e){var t=this.signaturePageView.viewport.convertToPdfPoint(e.x0,e.y0),n=this.signaturePageView.viewport.convertToPdfPoint(e.x1,e.y1);return new EPKCoordintates(t[0],t[1],n[0],n[1])}getSignaturePage(){return this.signaturePage}hideElementWithAnimation(e,t=500){(e.style.display="none")||e&&(e.style.transition=`opacity ${t}ms`,e.style.opacity="0",setTimeout((()=>{e.style.display="none"}),t))}showElementWithAnimation(e,t=500){(e.style.display="block")||e&&(e.style.display="block",e.style.opacity="0",e.style.transition=`opacity ${t}ms`,setTimeout((()=>{e.style.opacity="1"}),0))}async handleSignOrAcceptButton(){if(this.readyToSign){90!==this.PDFDegree()&&270!==this.PDFDegree()||(this.signatureConfigAppended.x=Math.round(this.rotatedCoords.x),this.signatureConfigAppended.y=Math.round(this.rotatedCoords.y),this.signatureConfigAppended.width=Math.round(this.rotatedCoords.width),this.signatureConfigAppended.height=Math.round(this.rotatedCoords.height));const e={page:this.signaturePage,x:Math.round(this.signatureConfigAppended.x),y:Math.round(this.signatureConfigAppended.y),width:Math.round(this.signatureConfigAppended.width),height:Math.round(this.signatureConfigAppended.height)};return"fixed"===this.webSignConfig.widget.type&&(e.page=this.webSignConfig.widget.page,e.x=this.webSignConfig.widget.x,e.y=this.webSignConfig.widget.y,e.width=this.webSignConfig.widget.width,e.height=this.webSignConfig.widget.height),void this.onSignCallback(e)}this.snackbar.show("Realiza la firma en la caja","info",3e3),this.status=this.WebSignStatus.Positioned;const e=document.querySelector("#websign-fab-clear");this.showElementWithAnimation(e,500);"dtu"===this.webSignConfig.signatureType&&!this.webSignConfig.enableBridge||await this.centersPdfOnScreenBasedOnSignature(!0,!0),this.setSignerMode(),this.onActivateMouseCanvas(),document.getElementById("web-sign").style.background="white",this.readyToSign=!0}disableButtons(){const e=document.querySelector("#websign-fab-clear"),t=document.querySelector("#websign-fab-ok"),n=document.querySelector("#websign-fab-cancel"),i=document.querySelector("#websign-signature-buttons"),o=document.querySelector("#websign-fab-sign");e&&(e.style.pointerEvents="none",e.style.opacity="0.6"),t&&(t.style.pointerEvents="none",t.style.opacity="0.6"),n&&(n.style.pointerEvents="none",n.style.opacity="0.6"),i&&(i.classList.remove("websign-antidisabled"),i.style.pointerEvents="none",i.style.opacity="0.6"),o&&(o.style.pointerEvents="none",o.style.opacity="0.6")}enableButtons(){const e=document.querySelector("#websign-fab-clear"),t=document.querySelector("#websign-fab-ok"),n=document.querySelector("#websign-fab-cancel"),i=document.querySelector("#websign-signature-buttons"),o=document.querySelector("#websign-fab-sign");e&&(e.style.pointerEvents="auto",e.style.opacity="1"),t&&(t.style.pointerEvents="auto",t.style.opacity="1"),n&&(n.style.pointerEvents="auto",n.style.opacity="1"),i&&(i.classList.add("websign-antidisabled"),i.style.pointerEvents="auto",i.style.opacity="1"),o&&(o.style.pointerEvents="auto",o.style.opacity="1")}disablePdfFormFields(){document.getElementById("websign-viewer").querySelectorAll("input, textarea, select, button").forEach((e=>{e.disabled=!0}))}enablePdfFormFields(){document.getElementById("websign-viewer").querySelectorAll("input, textarea, select, button").forEach((e=>{e.disabled=!1}))}}class EPKSignatureParam{constructor(e,t,n,i){this.x=e<0?0:e,this.y=t<0?0:t,this.width=n,this.height=i}}class EPKCoordintates{constructor(e,t,n,i){this.x0=e,this.y0=t,this.x1=n,this.y1=i}}class EdataliaPdfJs{static PDFJS_CDN_VERSION="3.4.120";static PDFJS_CDN_BASE="https://cdnjs.cloudflare.com/ajax/libs/pdf.js";constructor(e,t,n,i,o,r){this.file=e,this.webSignConfig=t,this.onActivateMouseCanvas=n,this.onSignCallback=i,this.onReset=o,this.onCancel=r,this.isAtLeastOnePageRendered=!1,this.edataliaPdfJsWidget=null,this.init()}async init(){try{const e=URL.createObjectURL(this.file);this.setupSignatureKitContainer(),await this.loadAndInitializePdfViewer(e),this.setupEventListeners()}catch(e){console.error("Error initializing EdataliaPdfJs:",e)}}setupSignatureKitContainer(){const e=document.querySelector("#websign-container");e?(Object.assign(e.style,{width:this.webSignConfig.mainContainerWidth,height:this.webSignConfig.mainContainerHeight,minWidth:"300px"}),e.innerHTML=webSignHtml):console.error("#websign-container not found in the DOM.")}async loadAndInitializePdfViewer(e){const{PDFJS_CDN_BASE:t,PDFJS_CDN_VERSION:n}=EdataliaPdfJs,i=`${t}/${n}`;window.pdfjsLib||(await this.loadScript(`${i}/pdf.min.js`),window.pdfjsLib.GlobalWorkerOptions.workerSrc=`${i}/pdf.worker.min.js`),window.pdfjsViewer||await this.loadScript(`${i}/pdf_viewer.min.js`),await this.loadStylesheet(`${i}/pdf_viewer.min.css`),await this._createViewerApplication(e),this.edataliaPdfJsWidget=new EdataliaPdfJsWidget(this.webSignConfig,this.onActivateMouseCanvas,this.onSignCallback,this.onReset,this.onCancel)}async _createViewerApplication(e){const t=window.pdfjsLib,n=window.pdfjsViewer,i=new n.EventBus,o=new n.PDFLinkService({eventBus:i}),r=document.getElementById("websign-viewer-container"),a=document.getElementById("websign-viewer"),s=new n.PDFViewer({container:r,viewer:a,eventBus:i,linkService:o,l10n:n.NullL10n});o.setViewer(s),i.on("pagerender",(e=>{const t=s.getPageView(e.pageNumber-1);t&&t.div&&(t.div.id="websign-page-"+e.pageNumber)})),i.on("pagesinit",(()=>{for(let e=0;e<s.pagesCount;e++){const t=s.getPageView(e);t&&t.div&&(t.div.id="websign-page-"+(e+1))}}));const l=t.getDocument({url:e}),c=await l.promise;s.setDocument(c),o.setDocument(c,null);const u={initialized:!0,initializedPromise:Promise.resolve(),pdfViewer:s,pdfDocument:c,eventBus:i,pdfLinkService:o,get page(){return s.currentPageNumber},set page(e){s.currentPageNumber=e},get pagesCount(){return u.pdfDocument.numPages},async open(e){let n;n=e.data?{data:e.data}:e.url?{url:e.url}:e;const i=t.getDocument(n),r=await i.promise;u.pdfDocument=r,s.setDocument(r),o.setDocument(r,null)},downloadManager:{downloadData:()=>{},download:()=>{}}};window.PDFViewerApplication=u}activateWidgetForDTUScreen(){this.edataliaPdfJsWidget.init()}startSignInDTU(){this.edataliaPdfJsWidget.handleSignOrAcceptButton()}setupEventListeners(){const{eventBus:e,pdfViewer:t}=window.PDFViewerApplication;e.on("pagerendered",this.handlePageRendered.bind(this)),e.on("pagesloaded",(()=>{const e=t.pagesCount;let n=this.webSignConfig.renderDefaultIndexPage||1;n>e&&(n=e),t.currentPageNumber=n})),e.on("editorSignature",(()=>{this.edataliaPdfJsWidget.init()})),document.getElementById("websign-fab-sign")?.addEventListener("click",(()=>{this.edataliaPdfJsWidget.init()})),document.getElementById("websign-fab-ok")?.addEventListener("click",(()=>{this.edataliaPdfJsWidget.handleSignOrAcceptButton()})),document.getElementById("websign-fab-cancel")?.addEventListener("click",(()=>{this.edataliaPdfJsWidget.enableButtons(),this.edataliaPdfJsWidget.resetSignature(),this.onCancel()})),document.getElementById("websign-fab-clear")?.addEventListener("click",(()=>{this.onReset()})),this.setupToolbarListeners(t,e)}setupToolbarListeners(e,t){const n=e=>document.getElementById(e);n("zoomIn")?.addEventListener("click",(()=>{e.currentScale*=1.1})),n("zoomOut")?.addEventListener("click",(()=>{e.currentScale/=1.1}));const i=n("scaleSelect");i?.addEventListener("change",(()=>{const t=i.value;"custom"!==t&&(e.currentScaleValue=t)})),t.on("scalechanging",(e=>{if(!i)return;const t=n("customScaleOption");Array.from(i.options).map((e=>e.value)).includes(String(e.scale))?i.value=String(e.scale):(t.textContent=`${Math.round(100*e.scale)}%`,t.selected=!0)})),n("previous")?.addEventListener("click",(()=>{e.currentPageNumber>1&&e.currentPageNumber--})),n("next")?.addEventListener("click",(()=>{e.currentPageNumber<window.PDFViewerApplication.pagesCount&&e.currentPageNumber++}));const o=n("pageNumber"),r=n("numPages");o?.addEventListener("change",(()=>{const t=parseInt(o.value,10);t>=1&&t<=window.PDFViewerApplication.pagesCount?e.currentPageNumber=t:o.value=e.currentPageNumber})),t.on("pagechanging",(e=>{o&&(o.value=e.pageNumber)})),t.on("pagesloaded",(()=>{r&&(r.textContent=`/ ${window.PDFViewerApplication.pagesCount}`),o&&(o.max=window.PDFViewerApplication.pagesCount)})),n("pageRotateCw")?.addEventListener("click",(()=>{e.pagesRotation=(e.pagesRotation+90)%360})),n("pageRotateCcw")?.addEventListener("click",(()=>{e.pagesRotation=(e.pagesRotation+270)%360})),n("editorSignature")?.addEventListener("click",(()=>{this.edataliaPdfJsWidget.init()}))}handlePageRendered(e){this.isAtLeastOnePageRendered||(this.isAtLeastOnePageRendered=!0,window.PDFViewerApplication.pdfViewer.currentScaleValue="auto",document.getElementById("websign-viewer-container").scrollTop=0),this.edataliaPdfJsWidget.getSignaturePage()===e.pageNumber&&this.edataliaPdfJsWidget.createSignatureContainer(null)}loadScript(e){return new Promise(((t,n)=>{const i=document.createElement("script");i.src=e,i.async=!1,i.onload=t,i.onerror=()=>n(new Error(`Failed to load script: ${e}`)),document.head.appendChild(i)}))}loadStylesheet(e){return new Promise(((t,n)=>{const i=document.createElement("link");i.rel="stylesheet",i.href=e,i.onload=t,i.onerror=()=>n(new Error(`Failed to load stylesheet: ${e}`)),document.head.appendChild(i)}))}reset(){this.edataliaPdfJsWidget.resetSignature()}}var edataliaPdf=Object.freeze({__proto__:null,default:EdataliaPdfJs})}));