dynamsoft-mrz-scanner
Version:
Dynamsoft MRZ Scanner JavaScript Edition is a ready-to-use SDK for web applications that accurately recognizes and parses Machine-Readable Zones on Machine-Readable Travel Documents.
1 lines • 690 kB
JavaScript
const t=t=>t&&"object"==typeof t&&"function"==typeof t.then,e=(async()=>{})().constructor;let i=class extends e{get status(){return this._s}get isPending(){return"pending"===this._s}get isFulfilled(){return"fulfilled"===this._s}get isRejected(){return"rejected"===this._s}get task(){return this._task}set task(i){let n;this._task=i,t(i)?n=i:"function"==typeof i&&(n=new e(i)),n&&(async()=>{try{const t=await n;i===this._task&&this.resolve(t)}catch(t){i===this._task&&this.reject(t)}})()}get isEmpty(){return null==this._task}constructor(e){let i,n;super((t,e)=>{i=t,n=e}),this._s="pending",this.resolve=e=>{this.isPending&&(t(e)?this.task=e:(this._s="fulfilled",i(e)))},this.reject=t=>{this.isPending&&(this._s="rejected",n(t))},this.task=e}};function n(t,e,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(t):n?n.value:e.get(t)}function r(t,e,i,n,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,i),i}var s,a,o;"function"==typeof SuppressedError&&SuppressedError,function(t){t[t.BOPM_BLOCK=0]="BOPM_BLOCK",t[t.BOPM_UPDATE=1]="BOPM_UPDATE"}(s||(s={})),function(t){t[t.CCUT_AUTO=0]="CCUT_AUTO",t[t.CCUT_FULL_CHANNEL=1]="CCUT_FULL_CHANNEL",t[t.CCUT_Y_CHANNEL_ONLY=2]="CCUT_Y_CHANNEL_ONLY",t[t.CCUT_RGB_R_CHANNEL_ONLY=3]="CCUT_RGB_R_CHANNEL_ONLY",t[t.CCUT_RGB_G_CHANNEL_ONLY=4]="CCUT_RGB_G_CHANNEL_ONLY",t[t.CCUT_RGB_B_CHANNEL_ONLY=5]="CCUT_RGB_B_CHANNEL_ONLY"}(a||(a={})),function(t){t[t.IPF_BINARY=0]="IPF_BINARY",t[t.IPF_BINARYINVERTED=1]="IPF_BINARYINVERTED",t[t.IPF_GRAYSCALED=2]="IPF_GRAYSCALED",t[t.IPF_NV21=3]="IPF_NV21",t[t.IPF_RGB_565=4]="IPF_RGB_565",t[t.IPF_RGB_555=5]="IPF_RGB_555",t[t.IPF_RGB_888=6]="IPF_RGB_888",t[t.IPF_ARGB_8888=7]="IPF_ARGB_8888",t[t.IPF_RGB_161616=8]="IPF_RGB_161616",t[t.IPF_ARGB_16161616=9]="IPF_ARGB_16161616",t[t.IPF_ABGR_8888=10]="IPF_ABGR_8888",t[t.IPF_ABGR_16161616=11]="IPF_ABGR_16161616",t[t.IPF_BGR_888=12]="IPF_BGR_888",t[t.IPF_BINARY_8=13]="IPF_BINARY_8",t[t.IPF_NV12=14]="IPF_NV12",t[t.IPF_BINARY_8_INVERTED=15]="IPF_BINARY_8_INVERTED"}(o||(o={}));const l="undefined"==typeof self,h="function"==typeof importScripts,c=(()=>{if(!h){if(!l&&document.currentScript){let t=document.currentScript.src,e=t.indexOf("?");if(-1!=e)t=t.substring(0,e);else{let e=t.indexOf("#");-1!=e&&(t=t.substring(0,e))}return t.substring(0,t.lastIndexOf("/")+1)}return"./"}})(),d=t=>{if(null==t&&(t="./"),l||h);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t},u=t=>Object.prototype.toString.call(t),f=t=>Array.isArray?Array.isArray(t):"[object Array]"===u(t),g=t=>"number"==typeof t&&!Number.isNaN(t),m=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),p=t=>!(!m(t)||!g(t.x)||!g(t.y)||!g(t.radius)||t.radius<0||!g(t.startAngle)||!g(t.endAngle)),_=t=>!!m(t)&&!!f(t.points)&&0!=t.points.length&&!t.points.some(t=>!T(t)),v=t=>!(!m(t)||!g(t.width)||t.width<=0||!g(t.height)||t.height<=0||!g(t.stride)||t.stride<=0||!("format"in t)||"tag"in t&&!E(t.tag)),y=t=>!(!v(t)||!g(t.bytes.length)&&!g(t.bytes.ptr)),w=t=>!!v(t)&&t.bytes instanceof Uint8Array,C=t=>!(!m(t)||!g(t.left)||t.left<0||!g(t.top)||t.top<0||!g(t.right)||t.right<0||!g(t.bottom)||t.bottom<0||t.left>=t.right||t.top>=t.bottom),E=t=>null===t||!!m(t)&&!!g(t.imageId)&&"type"in t,S=t=>!(!m(t)||!T(t.startPoint)||!T(t.endPoint)||t.startPoint.x==t.endPoint.x&&t.startPoint.y==t.endPoint.y),T=t=>!!m(t)&&!!g(t.x)&&!!g(t.y),b=t=>!!m(t)&&!!f(t.points)&&0!=t.points.length&&!t.points.some(t=>!T(t)),I=t=>!!m(t)&&!!f(t.points)&&0!=t.points.length&&4==t.points.length&&!t.points.some(t=>!T(t)),x=t=>!(!m(t)||!g(t.x)||!g(t.y)||!g(t.width)||t.width<0||!g(t.height)||t.height<0),R=async(t,e)=>await new Promise((i,n)=>{let r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType=e,r.send(),r.onloadend=async()=>{r.status<200||r.status>=300?n(new Error(t+" "+r.status)):i(r.response)},r.onerror=()=>{n(new Error("Network Error: "+r.statusText))}}),O=t=>/^(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)|^[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?/.test(t),A=(t,e)=>{let i=t.split("."),n=e.split(".");for(let t=0;t<i.length&&t<n.length;++t){let e=i[t],r=n[t];if(e===r)continue;let s=parseInt(i[t]),a=parseInt(n[t]);return s===a||Number.isNaN(s)&&Number.isNaN(a)?e<r?-1:1:s<a||Number.isNaN(s)&&Number.isInteger(a)?-1:1}return i.length===n.length?0:i.length<n.length?-1:1},D=t=>{const e={};for(let i in t){if("rootDirectory"===i)continue;let n=i,r=t[n],s=r&&"object"==typeof r&&r.path?r.path:r,a=t.rootDirectory;if(a&&!a.endsWith("/")&&(a+="/"),"object"==typeof r&&r.isInternal)a&&(s=t[n].version?`${a}${B[n]}@${t[n].version}/${"dcvData"===n?"":"dist/"}${"ddv"===n?"engine":""}`:`${a}${B[n]}/${"dcvData"===n?"":"dist/"}${"ddv"===n?"engine":""}`);else{const i=/^@engineRootDirectory(\/?)/;if("string"==typeof s&&(s=s.replace(i,a||"")),"object"==typeof s&&"dwt"===n){const r=t[n].resourcesPath,s=t[n].serviceInstallerLocation;e[n]={resourcesPath:r.replace(i,a||""),serviceInstallerLocation:s.replace(i,a||"")};continue}}e[n]=d(s)}return e},M=async(t,e,i)=>await new Promise(async(n,r)=>{try{const r=e.split(".");let s=r[r.length-1];const a=await P(`image/${s}`,t);r.length<=1&&(s="png");const o=new File([a],e,{type:`image/${s}`});if(i){const t=URL.createObjectURL(o),i=document.createElement("a");i.href=t,i.download=e,i.click()}return n(o)}catch(t){return r()}}),L=t=>{w(t)&&(t=k(t));const e=document.createElement("canvas");return e.width=t.width,e.height=t.height,e.getContext("2d",{willReadFrequently:!0}).putImageData(t,0,0),e},F=(t,e)=>{w(e)&&(e=k(e));const i=L(e);let n=new Image,r=i.toDataURL(t);return n.src=r,n},P=async(t,e)=>{w(e)&&(e=k(e));const i=L(e);return new Promise((e,n)=>{i.toBlob(t=>e(t),t)})},k=t=>{let e,i=t.bytes;if(!(i&&i instanceof Uint8Array))throw Error("Parameter type error");if(Number(t.format)===o.IPF_BGR_888){const t=i.length/3;e=new Uint8ClampedArray(4*t);for(let n=0;n<t;++n)e[4*n]=i[3*n],e[4*n+1]=i[3*n+1],e[4*n+2]=i[3*n+2],e[4*n+3]=255}else if(Number(t.format)===o.IPF_RGB_888){const t=i.length/3;e=new Uint8ClampedArray(4*t);for(let n=0;n<t;++n)e[4*n]=i[3*n+2],e[4*n+1]=i[3*n+1],e[4*n+2]=i[3*n],e[4*n+3]=255}else if(Number(t.format)===o.IPF_GRAYSCALED){const t=i.length;e=new Uint8ClampedArray(4*t);for(let n=0;n<t;n++)e[4*n]=e[4*n+1]=e[4*n+2]=i[n],e[4*n+3]=255}else if(Number(t.format)===o.IPF_BINARY_8){const n=i.length,r=t.width,s=t.height,a=t.stride;e=new Uint8ClampedArray(r*s*4);for(let t=0;t<n;t++){let n=i[t],s=t%a,o=Math.floor(t/a);for(let t=0;t<8;t++){let i=s+t,a=4*(o*r+i);if(i>=r)break;e[a]=e[a+1]=e[a+2]=(128&n)/128*255,e[a+3]=255,n<<=1}}}else if(Number(t.format)===o.IPF_ABGR_8888){const t=i.length/4;e=new Uint8ClampedArray(i.length);for(let n=0;n<t;++n)e[4*n]=i[4*n],e[4*n+1]=i[4*n+1],e[4*n+2]=i[4*n+2],e[4*n+3]=i[4*n+3]}else if(Number(t.format)===o.IPF_ARGB_8888){const t=i.length/4;e=new Uint8ClampedArray(i.length);for(let n=0;n<t;++n)e[4*n]=i[4*n+2],e[4*n+1]=i[4*n+1],e[4*n+2]=i[4*n],e[4*n+3]=i[4*n+3]}else if(Number(t.format)===o.IPF_BINARY_8_INVERTED){const n=i.length,r=t.width,s=t.height,a=t.stride;e=new Uint8ClampedArray(r*s*4);for(let t=0;t<n;t++){let n=i[t],s=t%a,o=Math.floor(t/a);for(let t=0;t<8;t++){let i=s+t,a=4*(o*r+i);if(i>=r)break;e[a]=e[a+1]=e[a+2]=128&n?0:255,e[a+3]=255,n<<=1}}}return new ImageData(e,t.width,t.height)},N=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),B={std:"dynamsoft-capture-vision-std",dip:"dynamsoft-image-processing",core:"dynamsoft-core",dnn:"dynamsoft-capture-vision-dnn",license:"dynamsoft-license",utility:"dynamsoft-utility",cvr:"dynamsoft-capture-vision-router",dbr:"dynamsoft-barcode-reader",dlr:"dynamsoft-label-recognizer",ddn:"dynamsoft-document-normalizer",dcp:"dynamsoft-code-parser",dcvData:"dynamsoft-capture-vision-data",dce:"dynamsoft-camera-enhancer",ddv:"dynamsoft-document-viewer",dwt:"dwt",dbrBundle:"dynamsoft-barcode-reader-bundle",dcvBundle:"dynamsoft-capture-vision-bundle"};var j,V,U,G,W,Y,H,z;let X,q,Z,K,J,$=class t{get _isFetchingStarted(){return n(this,W,"f")}constructor(){j.add(this),V.set(this,[]),U.set(this,1),G.set(this,s.BOPM_BLOCK),W.set(this,!1),Y.set(this,void 0),H.set(this,a.CCUT_AUTO)}setErrorListener(t){}addImageToBuffer(t){var e;if(!w(t))throw new TypeError("Invalid 'image'.");if((null===(e=t.tag)||void 0===e?void 0:e.hasOwnProperty("imageId"))&&"number"==typeof t.tag.imageId&&this.hasImage(t.tag.imageId))throw new Error("Existed imageId.");if(n(this,V,"f").length>=n(this,U,"f"))switch(n(this,G,"f")){case s.BOPM_BLOCK:break;case s.BOPM_UPDATE:if(n(this,V,"f").push(t),m(n(this,Y,"f"))&&g(n(this,Y,"f").imageId)&&1==n(this,Y,"f").keepInBuffer)for(;n(this,V,"f").length>n(this,U,"f");){const t=n(this,V,"f").findIndex(t=>{var e;return(null===(e=t.tag)||void 0===e?void 0:e.imageId)!==n(this,Y,"f").imageId});n(this,V,"f").splice(t,1)}else n(this,V,"f").splice(0,n(this,V,"f").length-n(this,U,"f"))}else n(this,V,"f").push(t)}getImage(){if(0===n(this,V,"f").length)return null;let e;if(n(this,Y,"f")&&g(n(this,Y,"f").imageId)){const t=n(this,j,"m",z).call(this,n(this,Y,"f").imageId);if(t<0)throw new Error(`Image with id ${n(this,Y,"f").imageId} doesn't exist.`);e=n(this,V,"f").slice(t,t+1)[0]}else e=n(this,V,"f").pop();if([o.IPF_RGB_565,o.IPF_RGB_555,o.IPF_RGB_888,o.IPF_ARGB_8888,o.IPF_RGB_161616,o.IPF_ARGB_16161616,o.IPF_ABGR_8888,o.IPF_ABGR_16161616,o.IPF_BGR_888].includes(e.format)){if(n(this,H,"f")===a.CCUT_RGB_R_CHANNEL_ONLY){t._onLog&&t._onLog("only get R channel data.");const i=new Uint8Array(e.width*e.height);for(let t=0;t<i.length;t++)switch(e.format){case o.IPF_RGB_565:case o.IPF_RGB_555:case o.IPF_RGB_888:case o.IPF_RGB_161616:i[t]=e.bytes[3*t+2];break;case o.IPF_ARGB_8888:case o.IPF_ARGB_16161616:i[t]=e.bytes[4*t+2];break;case o.IPF_BGR_888:i[t]=e.bytes[3*t];break;case o.IPF_ABGR_8888:case o.IPF_ABGR_16161616:i[t]=e.bytes[4*t]}e.bytes=i,e.stride=e.width,e.format=o.IPF_GRAYSCALED}else if(n(this,H,"f")===a.CCUT_RGB_G_CHANNEL_ONLY){t._onLog&&t._onLog("only get G channel data.");const i=new Uint8Array(e.width*e.height);for(let t=0;t<i.length;t++)switch(e.format){case o.IPF_RGB_565:case o.IPF_RGB_555:case o.IPF_RGB_888:case o.IPF_RGB_161616:case o.IPF_BGR_888:i[t]=e.bytes[3*t+1];break;case o.IPF_ARGB_8888:case o.IPF_ARGB_16161616:case o.IPF_ABGR_8888:case o.IPF_ABGR_16161616:i[t]=e.bytes[4*t+1]}e.bytes=i,e.stride=e.width,e.format=o.IPF_GRAYSCALED}else if(n(this,H,"f")===a.CCUT_RGB_B_CHANNEL_ONLY){t._onLog&&t._onLog("only get B channel data.");const i=new Uint8Array(e.width*e.height);for(let t=0;t<i.length;t++)switch(e.format){case o.IPF_RGB_565:case o.IPF_RGB_555:case o.IPF_RGB_888:case o.IPF_RGB_161616:i[t]=e.bytes[3*t];break;case o.IPF_ARGB_8888:case o.IPF_ARGB_16161616:i[t]=e.bytes[4*t];break;case o.IPF_BGR_888:i[t]=e.bytes[3*t+2];break;case o.IPF_ABGR_8888:case o.IPF_ABGR_16161616:i[t]=e.bytes[4*t+2]}e.bytes=i,e.stride=e.width,e.format=o.IPF_GRAYSCALED}}else[o.IPF_NV21,o.IPF_NV12].includes(e.format)&&t._onLog&&t._onLog("NV21 or NV12 is not supported.");return e}setNextImageToReturn(t,e){if(!((...t)=>0!==t.length&&t.every(t=>g(t)))(t))throw new TypeError("Invalid 'imageId'.");if(void 0!==e&&"[object Boolean]"!==u(e))throw new TypeError("Invalid 'keepInBuffer'.");r(this,Y,{imageId:t,keepInBuffer:e})}_resetNextReturnedImage(){r(this,Y,null)}hasImage(t){return n(this,j,"m",z).call(this,t)>=0}startFetching(){r(this,W,!0)}stopFetching(){r(this,W,!1)}setMaxImageCount(t){if("number"!=typeof t)throw new TypeError("Invalid 'count'.");if(t<1||Math.round(t)!==t)throw new Error("Invalid 'count'.");for(r(this,U,t);n(this,V,"f")&&n(this,V,"f").length>t;)n(this,V,"f").shift()}getMaxImageCount(){return n(this,U,"f")}getImageCount(){return n(this,V,"f").length}clearBuffer(){n(this,V,"f").length=0}isBufferEmpty(){return 0===n(this,V,"f").length}setBufferOverflowProtectionMode(t){r(this,G,t)}getBufferOverflowProtectionMode(){return n(this,G,"f")}setColourChannelUsageType(t){r(this,H,t)}getColourChannelUsageType(){return n(this,H,"f")}};V=new WeakMap,U=new WeakMap,G=new WeakMap,W=new WeakMap,Y=new WeakMap,H=new WeakMap,j=new WeakSet,z=function(t){if("number"!=typeof t)throw new TypeError("Invalid 'imageId'.");return n(this,V,"f").findIndex(e=>{var i;return(null===(i=e.tag)||void 0===i?void 0:i.imageId)===t})},"undefined"!=typeof navigator&&(X=navigator,q=X.userAgent,Z=X.platform,K=X.mediaDevices),function(){if(!l){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:X.vendor,search:"Apple",verSearch:["Version","iPhone OS","CPU OS"]},Firefox:null,Explorer:{search:"MSIE",verSearch:"MSIE"}},e={HarmonyOS:null,Android:null,iPhone:null,iPad:null,Windows:{str:Z,search:"Win"},Mac:{str:Z},Linux:{str:Z}};let i="unknownBrowser",n=0,r="unknownOS";for(let e in t){const r=t[e]||{};let s=r.str||q,a=r.search||e,o=r.verStr||q,l=r.verSearch||e;if(l instanceof Array||(l=[l]),-1!=s.indexOf(a)){i=e;for(let t of l){let e=o.indexOf(t);if(-1!=e){n=parseFloat(o.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let n=i.str||q,s=i.search||t;if(-1!=n.indexOf(s)){r=t;break}}"Linux"==r&&-1!=q.indexOf("Windows NT")&&(r="HarmonyOS"),J={browser:i,version:n,OS:r}}l&&(J={browser:"ssr",version:0,OS:"ssr"})}();const Q="undefined"!=typeof WebAssembly&&q&&!(/Safari/.test(q)&&!/Chrome/.test(q)&&/\(.+\s11_2_([2-6]).*\)/.test(q)),tt=!("undefined"==typeof Worker),et=!(!K||!K.getUserMedia),it=async()=>{let t=!1;if(et)try{(await K.getUserMedia({video:!0})).getTracks().forEach(t=>{t.stop()}),t=!0}catch(t){}return t};var nt,rt,st,at,ot,lt,ht,ct,dt;"Chrome"===J.browser&&J.version>66||"Safari"===J.browser&&J.version>13||"OPR"===J.browser&&J.version>43||"Edge"===J.browser&&J.version,function(t){t[t.CRIT_ORIGINAL_IMAGE=1]="CRIT_ORIGINAL_IMAGE",t[t.CRIT_BARCODE=2]="CRIT_BARCODE",t[t.CRIT_TEXT_LINE=4]="CRIT_TEXT_LINE",t[t.CRIT_DETECTED_QUAD=8]="CRIT_DETECTED_QUAD",t[t.CRIT_DESKEWED_IMAGE=16]="CRIT_DESKEWED_IMAGE",t[t.CRIT_PARSED_RESULT=32]="CRIT_PARSED_RESULT",t[t.CRIT_ENHANCED_IMAGE=64]="CRIT_ENHANCED_IMAGE"}(nt||(nt={})),function(t){t[t.CT_NORMAL_INTERSECTED=0]="CT_NORMAL_INTERSECTED",t[t.CT_T_INTERSECTED=1]="CT_T_INTERSECTED",t[t.CT_CROSS_INTERSECTED=2]="CT_CROSS_INTERSECTED",t[t.CT_NOT_INTERSECTED=3]="CT_NOT_INTERSECTED"}(rt||(rt={})),function(t){t[t.EC_OK=0]="EC_OK",t[t.EC_UNKNOWN=-1e4]="EC_UNKNOWN",t[t.EC_NO_MEMORY=-10001]="EC_NO_MEMORY",t[t.EC_NULL_POINTER=-10002]="EC_NULL_POINTER",t[t.EC_LICENSE_INVALID=-10003]="EC_LICENSE_INVALID",t[t.EC_LICENSE_EXPIRED=-10004]="EC_LICENSE_EXPIRED",t[t.EC_FILE_NOT_FOUND=-10005]="EC_FILE_NOT_FOUND",t[t.EC_FILE_TYPE_NOT_SUPPORTED=-10006]="EC_FILE_TYPE_NOT_SUPPORTED",t[t.EC_BPP_NOT_SUPPORTED=-10007]="EC_BPP_NOT_SUPPORTED",t[t.EC_INDEX_INVALID=-10008]="EC_INDEX_INVALID",t[t.EC_CUSTOM_REGION_INVALID=-10010]="EC_CUSTOM_REGION_INVALID",t[t.EC_IMAGE_READ_FAILED=-10012]="EC_IMAGE_READ_FAILED",t[t.EC_TIFF_READ_FAILED=-10013]="EC_TIFF_READ_FAILED",t[t.EC_DIB_BUFFER_INVALID=-10018]="EC_DIB_BUFFER_INVALID",t[t.EC_PDF_READ_FAILED=-10021]="EC_PDF_READ_FAILED",t[t.EC_PDF_DLL_MISSING=-10022]="EC_PDF_DLL_MISSING",t[t.EC_PAGE_NUMBER_INVALID=-10023]="EC_PAGE_NUMBER_INVALID",t[t.EC_CUSTOM_SIZE_INVALID=-10024]="EC_CUSTOM_SIZE_INVALID",t[t.EC_TIMEOUT=-10026]="EC_TIMEOUT",t[t.EC_JSON_PARSE_FAILED=-10030]="EC_JSON_PARSE_FAILED",t[t.EC_JSON_TYPE_INVALID=-10031]="EC_JSON_TYPE_INVALID",t[t.EC_JSON_KEY_INVALID=-10032]="EC_JSON_KEY_INVALID",t[t.EC_JSON_VALUE_INVALID=-10033]="EC_JSON_VALUE_INVALID",t[t.EC_JSON_NAME_KEY_MISSING=-10034]="EC_JSON_NAME_KEY_MISSING",t[t.EC_JSON_NAME_VALUE_DUPLICATED=-10035]="EC_JSON_NAME_VALUE_DUPLICATED",t[t.EC_TEMPLATE_NAME_INVALID=-10036]="EC_TEMPLATE_NAME_INVALID",t[t.EC_JSON_NAME_REFERENCE_INVALID=-10037]="EC_JSON_NAME_REFERENCE_INVALID",t[t.EC_PARAMETER_VALUE_INVALID=-10038]="EC_PARAMETER_VALUE_INVALID",t[t.EC_DOMAIN_NOT_MATCH=-10039]="EC_DOMAIN_NOT_MATCH",t[t.EC_LICENSE_KEY_NOT_MATCH=-10043]="EC_LICENSE_KEY_NOT_MATCH",t[t.EC_SET_MODE_ARGUMENT_ERROR=-10051]="EC_SET_MODE_ARGUMENT_ERROR",t[t.EC_GET_MODE_ARGUMENT_ERROR=-10055]="EC_GET_MODE_ARGUMENT_ERROR",t[t.EC_IRT_LICENSE_INVALID=-10056]="EC_IRT_LICENSE_INVALID",t[t.EC_FILE_SAVE_FAILED=-10058]="EC_FILE_SAVE_FAILED",t[t.EC_STAGE_TYPE_INVALID=-10059]="EC_STAGE_TYPE_INVALID",t[t.EC_IMAGE_ORIENTATION_INVALID=-10060]="EC_IMAGE_ORIENTATION_INVALID",t[t.EC_CONVERT_COMPLEX_TEMPLATE_ERROR=-10061]="EC_CONVERT_COMPLEX_TEMPLATE_ERROR",t[t.EC_CALL_REJECTED_WHEN_CAPTURING=-10062]="EC_CALL_REJECTED_WHEN_CAPTURING",t[t.EC_NO_IMAGE_SOURCE=-10063]="EC_NO_IMAGE_SOURCE",t[t.EC_READ_DIRECTORY_FAILED=-10064]="EC_READ_DIRECTORY_FAILED",t[t.EC_MODULE_NOT_FOUND=-10065]="EC_MODULE_NOT_FOUND",t[t.EC_MULTI_PAGES_NOT_SUPPORTED=-10066]="EC_MULTI_PAGES_NOT_SUPPORTED",t[t.EC_FILE_ALREADY_EXISTS=-10067]="EC_FILE_ALREADY_EXISTS",t[t.EC_CREATE_FILE_FAILED=-10068]="EC_CREATE_FILE_FAILED",t[t.EC_IMGAE_DATA_INVALID=-10069]="EC_IMGAE_DATA_INVALID",t[t.EC_IMAGE_SIZE_NOT_MATCH=-10070]="EC_IMAGE_SIZE_NOT_MATCH",t[t.EC_IMAGE_PIXEL_FORMAT_NOT_MATCH=-10071]="EC_IMAGE_PIXEL_FORMAT_NOT_MATCH",t[t.EC_SECTION_LEVEL_RESULT_IRREPLACEABLE=-10072]="EC_SECTION_LEVEL_RESULT_IRREPLACEABLE",t[t.EC_AXIS_DEFINITION_INCORRECT=-10073]="EC_AXIS_DEFINITION_INCORRECT",t[t.EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE=-10074]="EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE",t[t.EC_PDF_LIBRARY_LOAD_FAILED=-10075]="EC_PDF_LIBRARY_LOAD_FAILED",t[t.EC_UNSUPPORTED_JSON_KEY_WARNING=-10077]="EC_UNSUPPORTED_JSON_KEY_WARNING",t[t.EC_MODEL_FILE_NOT_FOUND=-10078]="EC_MODEL_FILE_NOT_FOUND",t[t.EC_PDF_LICENSE_NOT_FOUND=-10079]="EC_PDF_LICENSE_NOT_FOUND",t[t.EC_RECT_INVALID=-10080]="EC_RECT_INVALID",t[t.EC_TEMPLATE_VERSION_INCOMPATIBLE=-10081]="EC_TEMPLATE_VERSION_INCOMPATIBLE",t[t.EC_NO_LICENSE=-2e4]="EC_NO_LICENSE",t[t.EC_LICENSE_BUFFER_FAILED=-20002]="EC_LICENSE_BUFFER_FAILED",t[t.EC_LICENSE_SYNC_FAILED=-20003]="EC_LICENSE_SYNC_FAILED",t[t.EC_DEVICE_NOT_MATCH=-20004]="EC_DEVICE_NOT_MATCH",t[t.EC_BIND_DEVICE_FAILED=-20005]="EC_BIND_DEVICE_FAILED",t[t.EC_INSTANCE_COUNT_OVER_LIMIT=-20008]="EC_INSTANCE_COUNT_OVER_LIMIT",t[t.EC_TRIAL_LICENSE=-20010]="EC_TRIAL_LICENSE",t[t.EC_LICENSE_VERSION_NOT_MATCH=-20011]="EC_LICENSE_VERSION_NOT_MATCH",t[t.EC_LICENSE_CACHE_USED=-20012]="EC_LICENSE_CACHE_USED",t[t.EC_LICENSE_AUTH_QUOTA_EXCEEDED=-20013]="EC_LICENSE_AUTH_QUOTA_EXCEEDED",t[t.EC_LICENSE_RESULTS_LIMIT_EXCEEDED=-20014]="EC_LICENSE_RESULTS_LIMIT_EXCEEDED",t[t.EC_BARCODE_FORMAT_INVALID=-30009]="EC_BARCODE_FORMAT_INVALID",t[t.EC_CUSTOM_MODULESIZE_INVALID=-30025]="EC_CUSTOM_MODULESIZE_INVALID",t[t.EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT=-40101]="EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT",t[t.EC_TEXT_LINE_GROUP_REGEX_CONFLICT=-40102]="EC_TEXT_LINE_GROUP_REGEX_CONFLICT",t[t.EC_QUADRILATERAL_INVALID=-50057]="EC_QUADRILATERAL_INVALID",t[t.EC_PANORAMA_LICENSE_INVALID=-70060]="EC_PANORAMA_LICENSE_INVALID",t[t.EC_RESOURCE_PATH_NOT_EXIST=-90001]="EC_RESOURCE_PATH_NOT_EXIST",t[t.EC_RESOURCE_LOAD_FAILED=-90002]="EC_RESOURCE_LOAD_FAILED",t[t.EC_CODE_SPECIFICATION_NOT_FOUND=-90003]="EC_CODE_SPECIFICATION_NOT_FOUND",t[t.EC_FULL_CODE_EMPTY=-90004]="EC_FULL_CODE_EMPTY",t[t.EC_FULL_CODE_PREPROCESS_FAILED=-90005]="EC_FULL_CODE_PREPROCESS_FAILED",t[t.EC_LICENSE_WARNING=-10076]="EC_LICENSE_WARNING",t[t.EC_BARCODE_READER_LICENSE_NOT_FOUND=-30063]="EC_BARCODE_READER_LICENSE_NOT_FOUND",t[t.EC_LABEL_RECOGNIZER_LICENSE_NOT_FOUND=-40103]="EC_LABEL_RECOGNIZER_LICENSE_NOT_FOUND",t[t.EC_DOCUMENT_NORMALIZER_LICENSE_NOT_FOUND=-50058]="EC_DOCUMENT_NORMALIZER_LICENSE_NOT_FOUND",t[t.EC_CODE_PARSER_LICENSE_NOT_FOUND=-90012]="EC_CODE_PARSER_LICENSE_NOT_FOUND"}(st||(st={})),function(t){t[t.GEM_SKIP=0]="GEM_SKIP",t[t.GEM_AUTO=1]="GEM_AUTO",t[t.GEM_GENERAL=2]="GEM_GENERAL",t[t.GEM_GRAY_EQUALIZE=4]="GEM_GRAY_EQUALIZE",t[t.GEM_GRAY_SMOOTH=8]="GEM_GRAY_SMOOTH",t[t.GEM_SHARPEN_SMOOTH=16]="GEM_SHARPEN_SMOOTH",t[t.GEM_REV=-2147483648]="GEM_REV",t[t.GEM_END=-1]="GEM_END"}(at||(at={})),function(t){t[t.GTM_SKIP=0]="GTM_SKIP",t[t.GTM_INVERTED=1]="GTM_INVERTED",t[t.GTM_ORIGINAL=2]="GTM_ORIGINAL",t[t.GTM_AUTO=4]="GTM_AUTO",t[t.GTM_REV=-2147483648]="GTM_REV",t[t.GTM_END=-1]="GTM_END"}(ot||(ot={})),function(t){t[t.ITT_FILE_IMAGE=0]="ITT_FILE_IMAGE",t[t.ITT_VIDEO_FRAME=1]="ITT_VIDEO_FRAME"}(lt||(lt={})),function(t){t[t.PDFRM_VECTOR=1]="PDFRM_VECTOR",t[t.PDFRM_RASTER=2]="PDFRM_RASTER",t[t.PDFRM_REV=-2147483648]="PDFRM_REV"}(ht||(ht={})),function(t){t[t.RDS_RASTERIZED_PAGES=0]="RDS_RASTERIZED_PAGES",t[t.RDS_EXTRACTED_IMAGES=1]="RDS_EXTRACTED_IMAGES"}(ct||(ct={})),function(t){t[t.CVS_NOT_VERIFIED=0]="CVS_NOT_VERIFIED",t[t.CVS_PASSED=1]="CVS_PASSED",t[t.CVS_FAILED=2]="CVS_FAILED"}(dt||(dt={}));const ut={IRUT_NULL:BigInt(0),IRUT_COLOUR_IMAGE:BigInt(1),IRUT_SCALED_COLOUR_IMAGE:BigInt(2),IRUT_GRAYSCALE_IMAGE:BigInt(4),IRUT_TRANSOFORMED_GRAYSCALE_IMAGE:BigInt(8),IRUT_ENHANCED_GRAYSCALE_IMAGE:BigInt(16),IRUT_PREDETECTED_REGIONS:BigInt(32),IRUT_BINARY_IMAGE:BigInt(64),IRUT_TEXTURE_DETECTION_RESULT:BigInt(128),IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE:BigInt(256),IRUT_TEXTURE_REMOVED_BINARY_IMAGE:BigInt(512),IRUT_CONTOURS:BigInt(1024),IRUT_LINE_SEGMENTS:BigInt(2048),IRUT_TEXT_ZONES:BigInt(4096),IRUT_TEXT_REMOVED_BINARY_IMAGE:BigInt(8192),IRUT_CANDIDATE_BARCODE_ZONES:BigInt(16384),IRUT_LOCALIZED_BARCODES:BigInt(32768),IRUT_SCALED_BARCODE_IMAGE:BigInt(65536),IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE:BigInt(1<<17),IRUT_COMPLEMENTED_BARCODE_IMAGE:BigInt(1<<18),IRUT_DECODED_BARCODES:BigInt(1<<19),IRUT_LONG_LINES:BigInt(1<<20),IRUT_CORNERS:BigInt(1<<21),IRUT_CANDIDATE_QUAD_EDGES:BigInt(1<<22),IRUT_DETECTED_QUADS:BigInt(1<<23),IRUT_LOCALIZED_TEXT_LINES:BigInt(1<<24),IRUT_RECOGNIZED_TEXT_LINES:BigInt(1<<25),IRUT_DESKEWED_IMAGE:BigInt(1<<26),IRUT_SHORT_LINES:BigInt(1<<27),IRUT_RAW_TEXT_LINES:BigInt(1<<28),IRUT_LOGIC_LINES:BigInt(1<<29),IRUT_ENHANCED_IMAGE:BigInt(Math.pow(2,30)),IRUT_ALL:BigInt("0xFFFFFFFFFFFFFFFF")};var ft,gt,mt,pt,_t,vt;!function(t){t[t.ROET_PREDETECTED_REGION=0]="ROET_PREDETECTED_REGION",t[t.ROET_LOCALIZED_BARCODE=1]="ROET_LOCALIZED_BARCODE",t[t.ROET_DECODED_BARCODE=2]="ROET_DECODED_BARCODE",t[t.ROET_LOCALIZED_TEXT_LINE=3]="ROET_LOCALIZED_TEXT_LINE",t[t.ROET_RECOGNIZED_TEXT_LINE=4]="ROET_RECOGNIZED_TEXT_LINE",t[t.ROET_DETECTED_QUAD=5]="ROET_DETECTED_QUAD",t[t.ROET_DESKEWED_IMAGE=6]="ROET_DESKEWED_IMAGE",t[t.ROET_SOURCE_IMAGE=7]="ROET_SOURCE_IMAGE",t[t.ROET_TARGET_ROI=8]="ROET_TARGET_ROI",t[t.ROET_ENHANCED_IMAGE=9]="ROET_ENHANCED_IMAGE"}(ft||(ft={})),function(t){t[t.ST_NULL=0]="ST_NULL",t[t.ST_REGION_PREDETECTION=1]="ST_REGION_PREDETECTION",t[t.ST_BARCODE_LOCALIZATION=2]="ST_BARCODE_LOCALIZATION",t[t.ST_BARCODE_DECODING=3]="ST_BARCODE_DECODING",t[t.ST_TEXT_LINE_LOCALIZATION=4]="ST_TEXT_LINE_LOCALIZATION",t[t.ST_TEXT_LINE_RECOGNITION=5]="ST_TEXT_LINE_RECOGNITION",t[t.ST_DOCUMENT_DETECTION=6]="ST_DOCUMENT_DETECTION",t[t.ST_DOCUMENT_DESKEWING=7]="ST_DOCUMENT_DESKEWING",t[t.ST_IMAGE_ENHANCEMENT=8]="ST_IMAGE_ENHANCEMENT"}(gt||(gt={})),function(t){t[t.IFF_JPEG=0]="IFF_JPEG",t[t.IFF_PNG=1]="IFF_PNG",t[t.IFF_BMP=2]="IFF_BMP",t[t.IFF_PDF=3]="IFF_PDF"}(mt||(mt={})),function(t){t[t.ICDM_NEAR=0]="ICDM_NEAR",t[t.ICDM_FAR=1]="ICDM_FAR"}(pt||(pt={})),function(t){t.MN_DYNAMSOFT_CAPTURE_VISION_ROUTER="cvr",t.MN_DYNAMSOFT_CORE="core",t.MN_DYNAMSOFT_LICENSE="license",t.MN_DYNAMSOFT_IMAGE_PROCESSING="dip",t.MN_DYNAMSOFT_UTILITY="utility",t.MN_DYNAMSOFT_BARCODE_READER="dbr",t.MN_DYNAMSOFT_DOCUMENT_NORMALIZER="ddn",t.MN_DYNAMSOFT_LABEL_RECOGNIZER="dlr",t.MN_DYNAMSOFT_CAPTURE_VISION_DATA="dcvData",t.MN_DYNAMSOFT_NEURAL_NETWORK="dnn",t.MN_DYNAMSOFT_CODE_PARSER="dcp",t.MN_DYNAMSOFT_CAMERA_ENHANCER="dce",t.MN_DYNAMSOFT_CAPTURE_VISION_STD="std"}(_t||(_t={})),function(t){t[t.TMT_LOCAL_TO_ORIGINAL_IMAGE=0]="TMT_LOCAL_TO_ORIGINAL_IMAGE",t[t.TMT_ORIGINAL_TO_LOCAL_IMAGE=1]="TMT_ORIGINAL_TO_LOCAL_IMAGE",t[t.TMT_LOCAL_TO_SECTION_IMAGE=2]="TMT_LOCAL_TO_SECTION_IMAGE",t[t.TMT_SECTION_TO_LOCAL_IMAGE=3]="TMT_SECTION_TO_LOCAL_IMAGE"}(vt||(vt={}));const yt={},wt=async t=>{let e="string"==typeof t?[t]:t,n=[];for(let t of e)n.push(yt[t]=yt[t]||new i);await Promise.all(n)},Ct=async(t,e)=>{let n,r="string"==typeof t?[t]:t,s=[];for(let t of r){let r;s.push(r=yt[t]=yt[t]||new i(n=n||e())),r.isEmpty&&(r.task=n=n||e())}await Promise.all(s)};let Et,St=0;const Tt=()=>St++,bt={};let It;const xt=t=>{It=t,Et&&Et.postMessage({type:"setBLog",body:{value:!!t}})};let Rt=!1;const Ot=t=>{Rt=t,Et&&Et.postMessage({type:"setBDebug",body:{value:!!t}})},At={},Dt={},Mt={dip:{wasm:!0}},Lt={std:{version:"2.0.0",path:d(c+"../../dynamsoft-capture-vision-std@2.0.0/dist/"),isInternal:!0},core:{version:"4.0.60-dev-20250812165815",path:c,isInternal:!0}};class Ft{static get engineResourcePaths(){return Lt}static set engineResourcePaths(t){Object.assign(Lt,t)}static get bSupportDce4Module(){return this._bSupportDce4Module}static get bSupportIRTModule(){return this._bSupportIRTModule}static get versions(){return this._versions}static get _onLog(){return It}static set _onLog(t){xt(t)}static get _bDebug(){return Rt}static set _bDebug(t){Ot(t)}static get _workerName(){return`${Ft._bundleEnv.toLowerCase()}.bundle.worker.js`}static isModuleLoaded(t){return t=(t=t||"core").toLowerCase(),!!yt[t]&&yt[t].isFulfilled}static async loadWasm(){return await(async()=>{let t,e;t instanceof Array||(t=t?[t]:[]);let n=yt.core;e=!n||n.isEmpty,e||await wt("core");let r=new Map;const s=t=>{if(t=t.toLowerCase(),_t.MN_DYNAMSOFT_CAPTURE_VISION_STD==t||_t.MN_DYNAMSOFT_CORE==t)return;let e=Mt[t].deps;if(null==e?void 0:e.length)for(let t of e)s(t);let i=yt[t];r.has(t)||r.set(t,!i||i.isEmpty)};for(let e of t)s(e);let a=[];e&&a.push("core"),a.push(...r.keys());const o=[...r.entries()].filter(t=>!t[1]).map(t=>t[0]);await Ct(a,async()=>{const t=[...r.entries()].filter(t=>t[1]).map(t=>t[0]);await wt(o);const n=D(Lt),s={};for(let e of t)s[e]=Mt[e];const a={engineResourcePaths:n,autoResources:s,names:t,_bundleEnv:Ft._bundleEnv,_useSimd:Ft._useSimd,_useMLBackend:Ft._useMLBackend};let l=new i;if(e){a.needLoadCore=!0;let t=n[`${Ft._bundleEnv.toLowerCase()}Bundle`]+Ft._workerName;t.startsWith(location.origin)||(t=await fetch(t).then(t=>t.blob()).then(t=>URL.createObjectURL(t))),Et=new Worker(t),Et.onerror=t=>{let e=new Error(t.message);l.reject(e)},Et.addEventListener("message",t=>{let e=t.data?t.data:t,i=e.type,n=e.id,r=e.body;switch(i){case"log":It&&It(e.message);break;case"task":try{bt[n](r),delete bt[n]}catch(t){throw delete bt[n],t}break;case"event":try{bt[n](r)}catch(t){throw t}break;default:console.log(t)}}),a.bLog=!!It,a.bd=Rt,a.dm=location.origin.startsWith("http")?location.origin:"https://localhost"}else await wt("core");let h=St++;bt[h]=t=>{if(t.success)Object.assign(At,t.versions),"{}"!==JSON.stringify(t.versions)&&(Ft._versions=t.versions),l.resolve(void 0);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),l.reject(e)}},Et.postMessage({type:"loadWasm",id:h,body:a}),await l})})()}static async detectEnvironment(){return await(async()=>({wasm:Q,worker:tt,getUserMedia:et,camera:await it(),browser:J.browser,version:J.version,OS:J.OS}))()}static async getModuleVersion(){return await new Promise((t,e)=>{let i=Tt();bt[i]=async i=>{if(i.success)return t(i.versions);{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Et.postMessage({type:"getModuleVersion",id:i})})}static getVersion(){return`4.0.60-dev-20250812165815(Worker: ${At.core&&At.core.worker||"Not Loaded"}, Wasm: ${At.core&&At.core.wasm||"Not Loaded"})`}static enableLogging(){$._onLog=console.log,Ft._onLog=console.log}static disableLogging(){$._onLog=null,Ft._onLog=null}static async cfd(t){return await new Promise((e,i)=>{let n=Tt();bt[n]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Et.postMessage({type:"cfd",id:n,body:{count:t}})})}}Ft._bSupportDce4Module=-1,Ft._bSupportIRTModule=-1,Ft._versions=null,Ft._bundleEnv="DCV",Ft._useMLBackend=!1,Ft._useSimd=!0,Ft.browserInfo=J;const Pt="undefined"==typeof self,kt="function"==typeof importScripts,Nt=(()=>{if(!kt){if(!Pt&&document.currentScript){let t=document.currentScript.src,e=t.indexOf("?");if(-1!=e)t=t.substring(0,e);else{let e=t.indexOf("#");-1!=e&&(t=t.substring(0,e))}return t.substring(0,t.lastIndexOf("/")+1)}return"./"}})();function Bt(t,e,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(t):n?n.value:e.get(t)}function jt(t,e,i,n,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,i),i}"function"==typeof SuppressedError&&SuppressedError;const Vt=t=>t&&"object"==typeof t&&"function"==typeof t.then,Ut=(async()=>{})().constructor;let Gt=class extends Ut{get status(){return this._s}get isPending(){return"pending"===this._s}get isFulfilled(){return"fulfilled"===this._s}get isRejected(){return"rejected"===this._s}get task(){return this._task}set task(t){let e;this._task=t,Vt(t)?e=t:"function"==typeof t&&(e=new Ut(t)),e&&(async()=>{try{const i=await e;t===this._task&&this.resolve(i)}catch(e){t===this._task&&this.reject(e)}})()}get isEmpty(){return null==this._task}constructor(t){let e,i;super((t,n)=>{e=t,i=n}),this._s="pending",this.resolve=t=>{this.isPending&&(Vt(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}},Wt=class{constructor(t){this._cvr=t}async getMaxBufferedItems(){return await new Promise((t,e)=>{let i=Tt();bt[i]=async i=>{if(i.success)return t(i.count);{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Et.postMessage({type:"cvr_getMaxBufferedItems",id:i,instanceID:this._cvr._instanceID})})}async setMaxBufferedItems(t){return await new Promise((e,i)=>{let n=Tt();bt[n]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Et.postMessage({type:"cvr_setMaxBufferedItems",id:n,instanceID:this._cvr._instanceID,body:{count:t}})})}async getBufferedCharacterItemSet(){return await new Promise((t,e)=>{let i=Tt();bt[i]=async i=>{if(i.success)return t(i.itemSet);{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Et.postMessage({type:"cvr_getBufferedCharacterItemSet",id:i,instanceID:this._cvr._instanceID})})}};var Yt={onTaskResultsReceived:!1,onTargetROIResultsReceived:!1,onTaskResultsReceivedForDce:!1,onPredetectedRegionsReceived:!1,onLocalizedBarcodesReceived:!1,onDecodedBarcodesReceived:!1,onLocalizedTextLinesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onDeskewedImageReceived:!1,onEnhancedImageReceived:!1,onColourImageUnitReceived:!1,onScaledColourImageUnitReceived:!1,onGrayscaleImageUnitReceived:!1,onTransformedGrayscaleImageUnitReceived:!1,onEnhancedGrayscaleImageUnitReceived:!1,onBinaryImageUnitReceived:!1,onTextureDetectionResultUnitReceived:!1,onTextureRemovedGrayscaleImageUnitReceived:!1,onTextureRemovedBinaryImageUnitReceived:!1,onContoursUnitReceived:!1,onLineSegmentsUnitReceived:!1,onTextZonesUnitReceived:!1,onTextRemovedBinaryImageUnitReceived:!1,onRawTextLinesUnitReceived:!1,onLongLinesUnitReceived:!1,onCornersUnitReceived:!1,onCandidateQuadEdgesUnitReceived:!1,onCandidateBarcodeZonesUnitReceived:!1,onScaledBarcodeImageUnitReceived:!1,onDeformationResistedBarcodeImageUnitReceived:!1,onComplementedBarcodeImageUnitReceived:!1,onShortLinesUnitReceived:!1,onLogicLinesUnitReceived:!1,onProcessedDocumentResultReceived:!1};const Ht=t=>{for(let e in t._irrRegistryState)t._irrRegistryState[e]=!1;for(let e of t._intermediateResultReceiverSet)if(e.isDce||e.isFilter)t._irrRegistryState.onTaskResultsReceivedForDce=!0;else for(let i in e)t._irrRegistryState[i]||(t._irrRegistryState[i]=!!e[i])};let zt=class{constructor(t){this._irrRegistryState=Yt,this._intermediateResultReceiverSet=new Set,this._cvr=t}async addResultReceiver(t){if("object"!=typeof t)throw new Error("Invalid receiver.");this._intermediateResultReceiverSet.add(t),Ht(this);let e=-1,i={};if(!t.isDce&&!t.isFilter){if(!t._observedResultUnitTypes||!t._observedTaskMap)throw new Error("Invalid Intermediate Result Receiver.");e=t._observedResultUnitTypes,t._observedTaskMap.forEach((t,e)=>{i[e]=t}),t._observedTaskMap.clear()}return await new Promise((t,n)=>{let r=Tt();bt[r]=async e=>{if(e.success)return t();{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,n(t)}},Et.postMessage({type:"cvr_setIrrRegistry",id:r,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState,observedResultUnitTypes:e.toString(),observedTaskMap:i}})})}async removeResultReceiver(t){return this._intermediateResultReceiverSet.delete(t),Ht(this),await new Promise((t,e)=>{let i=Tt();bt[i]=async i=>{if(i.success)return t();{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Et.postMessage({type:"cvr_setIrrRegistry",id:i,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState}})})}getOriginalImage(){return this._cvr._dsImage}};const Xt="undefined"==typeof self,qt="function"==typeof importScripts,Zt=(()=>{if(!qt){if(!Xt&&document.currentScript){let t=document.currentScript.src,e=t.indexOf("?");if(-1!=e)t=t.substring(0,e);else{let e=t.indexOf("#");-1!=e&&(t=t.substring(0,e))}return t.substring(0,t.lastIndexOf("/")+1)}return"./"}})(),Kt=t=>{if(null==t&&(t="./"),Xt||qt);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};var Jt;Ft.engineResourcePaths.cvr={version:"3.0.60-dev-20250812165839",path:Zt,isInternal:!0},Mt.cvr={js:!0,wasm:!0,deps:[_t.MN_DYNAMSOFT_LICENSE,_t.MN_DYNAMSOFT_IMAGE_PROCESSING,_t.MN_DYNAMSOFT_NEURAL_NETWORK]},Mt.dnn={wasm:!0,deps:[_t.MN_DYNAMSOFT_IMAGE_PROCESSING]},Dt.cvr={};const $t="2.0.0";"string"!=typeof Ft.engineResourcePaths.std&&A(Ft.engineResourcePaths.std.version,$t)<0&&(Ft.engineResourcePaths.std={version:$t,path:Kt(Zt+`../../dynamsoft-capture-vision-std@${$t}/dist/`),isInternal:!0});const Qt="3.0.10";(!Ft.engineResourcePaths.dip||"string"!=typeof Ft.engineResourcePaths.dip&&A(Ft.engineResourcePaths.dip.version,Qt)<0)&&(Ft.engineResourcePaths.dip={version:Qt,path:Kt(Zt+`../../dynamsoft-image-processing@${Qt}/dist/`),isInternal:!0});const te="2.0.10";(!Ft.engineResourcePaths.dnn||"string"!=typeof Ft.engineResourcePaths.dnn&&A(Ft.engineResourcePaths.dnn.version,te)<0)&&(Ft.engineResourcePaths.dnn={version:te,path:Kt(Zt+`../../dynamsoft-capture-vision-dnn@${te}/dist/`),isInternal:!0});let ee=class{static getVersion(){return this._version}};var ie,ne,re,se,ae,oe,le,he,ce,de,ue,fe,ge,me,pe,_e,ve,ye,we,Ce,Ee,Se,Te,be;function Ie(t,e){if(t&&t.sourceLocation){const i=t.sourceLocation.points;for(let t of i)t.x=t.x/e,t.y=t.y/e;Ie(t.referencedItem,e)}}function xe(t){if(t.disposed)throw new Error('"CaptureVisionRouter" instance has been disposed')}function Re(t){const e=[st.EC_UNSUPPORTED_JSON_KEY_WARNING,st.EC_LICENSE_AUTH_QUOTA_EXCEEDED,st.EC_LICENSE_RESULTS_LIMIT_EXCEEDED];if(t.errorCode&&e.includes(t.errorCode))return void console.warn(t.message);let i=new Error(t.errorCode?`[${t.functionName}] [${t.errorCode}] ${t.message}`:`[${t.functionName}] ${t.message}`);if(i.stack&&(i.stack=t.stack),t.isShouleThrow)throw i;return t.rj&&t.rj(i),!0}ee._version=`3.0.60-dev-20250812165839(Worker: ${null===(Jt=At.cvr)||void 0===Jt?void 0:Jt.worker}, Wasm: loading...`,function(t){t[t.ISS_BUFFER_EMPTY=0]="ISS_BUFFER_EMPTY",t[t.ISS_EXHAUSTED=1]="ISS_EXHAUSTED"}(ie||(ie={}));const Oe={onTaskResultsReceived:()=>{},isFilter:!0};bt[-2]=async t=>{Ae.onDataLoadProgressChanged&&Ae.onDataLoadProgressChanged(t.resourcesPath,t.tag,{loaded:t.loaded,total:t.total})};let Ae=class t{constructor(){ne.add(this),this.maxImageSideLength=["iPhone","Android","HarmonyOS"].includes(Ft.browserInfo.OS)?2048:4096,this.onCaptureError=null,this._instanceID=void 0,this._dsImage=null,this._isPauseScan=!0,this._isOutputOriginalImage=!1,this._isOpenDetectVerify=!1,this._isOpenNormalizeVerify=!1,this._isOpenBarcodeVerify=!1,this._isOpenLabelVerify=!1,this._minImageCaptureInterval=0,this._averageProcessintTimeArray=[],this._averageFetchImageTimeArray=[],this._currentSettings=null,this._averageTime=999,this._dynamsoft=!0,re.set(this,null),se.set(this,null),ae.set(this,null),oe.set(this,null),le.set(this,null),he.set(this,new Set),ce.set(this,new Set),de.set(this,new Set),ue.set(this,500),fe.set(this,0),ge.set(this,0),me.set(this,!1),pe.set(this,!1),_e.set(this,!1),ve.set(this,null),ye.set(this,null),this._singleFrameModeCallbackBind=this._singleFrameModeCallback.bind(this)}get disposed(){return Bt(this,_e,"f")}static async createInstance(e=!0){if(!Dt.license)throw Error("The `license` module cannot be found.");await Dt.license.dynamsoft(),await Ft.loadWasm();const i=new t,n=new Gt;let r=Tt();return bt[r]=async t=>{t.success?(i._instanceID=t.instanceID,i._currentSettings=JSON.parse(JSON.parse(t.outputSettings).data),ee._version=`3.0.60-dev-20250812165839(Worker: ${At.cvr.worker}, Wasm: ${t.version})`,jt(i,pe,!0),jt(i,oe,i.getIntermediateResultManager()),jt(i,pe,!1),n.resolve(i)):Re({message:t.message,rj:n.reject,stack:t.stack,functionName:"createInstance"})},Et.postMessage({type:"cvr_createInstance",id:r,body:{loadPresetTemplates:e,itemCountRecord:localStorage.getItem("dynamsoft")}}),n}static async appendModelBuffer(t,e){return await Ft.loadWasm(),await new Promise((i,n)=>{let r=Tt();const s=D(Ft.engineResourcePaths);let a;bt[r]=async t=>{if(t.success){const e=JSON.parse(t.response);return 0!==e.errorCode&&Re({message:e.errorString?e.errorString:"Append Model Buffer Failed.",rj:n,errorCode:e.errorCode,functionName:"appendModelBuffer"}),i(e)}Re({message:t.message,rj:n,stack:t.stack,functionName:"appendModelBuffer"})},e?a=e:"DCV"===Ft._bundleEnv?a=s.dcvData+"models/":"DBR"===Ft._bundleEnv&&(a=s.dbrBundle+"models/"),Et.postMessage({type:"cvr_appendModelBuffer",id:r,body:{modelName:t,path:a}})})}async _singleFrameModeCallback(t){for(let e of Bt(this,he,"f"))this._isOutputOriginalImage&&e.onOriginalImageResultReceived&&e.onOriginalImageResultReceived({imageData:t});const e={bytes:new Uint8Array(t.bytes),width:t.width,height:t.height,stride:t.stride,format:t.format,tag:t.tag};this._templateName||(this._templateName=this._currentSettings.CaptureVisionTemplates[0].Name);const i=await this.capture(e,this._templateName);i.originalImageTag=t.tag;for(let t of Bt(this,he,"f"))t.isDce?t.onCapturedResultReceived(i,{isDetectVerifyOpen:!1,isNormalizeVerifyOpen:!1,isBarcodeVerifyOpen:!1,isLabelVerifyOpen:!1}):Bt(this,ne,"m",Ce).call(this,t,i)}setInput(t){if(xe(this),!t)return Bt(this,ve,"f")&&(Bt(this,oe,"f").removeResultReceiver(Bt(this,ve,"f")),jt(this,ve,null)),Bt(this,ye,"f")&&(Bt(this,he,"f").delete(Bt(this,ye,"f")),jt(this,ye,null)),void jt(this,re,null);if(jt(this,re,t),t.isCameraEnhancer){Bt(this,oe,"f")&&(Bt(this,re,"f")._intermediateResultReceiver.isDce=!0,Bt(this,oe,"f").addResultReceiver(Bt(this,re,"f")._intermediateResultReceiver),jt(this,ve,Bt(this,re,"f")._intermediateResultReceiver));const t=Bt(this,re,"f").getCameraView();if(t){const e=t._capturedResultReceiver;e.isDce=!0,Bt(this,he,"f").add(e),jt(this,ye,e)}}}getInput(){return Bt(this,re,"f")}addImageSourceStateListener(t){if(xe(this),"object"!=typeof t)return console.warn("Invalid ISA state listener.");t&&Object.keys(t)&&Bt(this,ce,"f").add(t)}removeImageSourceStateListener(t){return xe(this),Bt(this,ce,"f").delete(t)}addResultReceiver(t){if(xe(this),"object"!=typeof t)throw new Error("Invalid receiver.");t&&Object.keys(t).length&&(Bt(this,he,"f").add(t),this._setCrrRegistry())}removeResultReceiver(t){xe(this),Bt(this,he,"f").delete(t),this._setCrrRegistry()}async _setCrrRegistry(){const t={onCapturedResultReceived:!1,onDecodedBarcodesReceived:!1,onRecognizedTextLinesReceived:!1,onProcessedDocumentResultReceived:!1,onParsedResultsReceived:!1};for(let e of Bt(this,he,"f"))e.isDce||(t.onCapturedResultReceived=!!e.onCapturedResultReceived,t.onDecodedBarcodesReceived=!!e.onDecodedBarcodesReceived,t.onRecognizedTextLinesReceived=!!e.onRecognizedTextLinesReceived,t.onProcessedDocumentResultReceived=!!e.onProcessedDocumentResultReceived,t.onParsedResultsReceived=!!e.onParsedResultsReceived);const e=new Gt;let i=Tt();return bt[i]=async t=>{t.success?e.resolve():Re({message:t.message,rj:e.reject,stack:t.stack,functionName:"addResultReceiver"})},Et.postMessage({type:"cvr_setCrrRegistry",id:i,instanceID:this._instanceID,body:{receiver:JSON.stringify(t)}}),e}async addResultFilter(t){if(xe(this),!t||"object"!=typeof t||!Object.keys(t).length)return console.warn("Invalid filter.");Bt(this,de,"f").add(t),t._dynamsoft(),await this._handleFilterUpdate()}async removeResultFilter(t){xe(this),Bt(this,de,"f").delete(t),await this._handleFilterUpdate()}async _handleFilterUpdate(){if(Bt(this,oe,"f").removeResultReceiver(Oe),0===Bt(this,de,"f").size){this._isOpenBarcodeVerify=!1,this._isOpenLabelVerify=!1,this._isOpenDetectVerify=!1,this._isOpenNormalizeVerify=!1;const t={[nt.CRIT_BARCODE]:!1,[nt.CRIT_TEXT_LINE]:!1,[nt.CRIT_DETECTED_QUAD]:!1,[nt.CRIT_DESKEWED_IMAGE]:!1},e={[nt.CRIT_BARCODE]:!1,[nt.CRIT_TEXT_LINE]:!1,[nt.CRIT_DETECTED_QUAD]:!1,[nt.CRIT_DESKEWED_IMAGE]:!1};return await Bt(this,ne,"m",Ee).call(this,t),void await Bt(this,ne,"m",Se).call(this,e)}for(let t of Bt(this,de,"f"))this._isOpenBarcodeVerify=t.isResultCrossVerificationEnabled(nt.CRIT_BARCODE),this._isOpenLabelVerify=t.isResultCrossVerificationEnabled(nt.CRIT_TEXT_LINE),this._isOpenDetectVerify=t.isResultCrossVerificationEnabled(nt.CRIT_DETECTED_QUAD),this._isOpenNormalizeVerify=t.isResultCrossVerificationEnabled(nt.CRIT_DESKEWED_IMAGE),t.isLatestOverlappingEnabled(nt.CRIT_BARCODE)&&([...Bt(this,oe,"f")._intermediateResultReceiverSet.values()].find(t=>t.isFilter)||Bt(this,oe,"f").addResultReceiver(Oe)),await Bt(this,ne,"m",Ee).call(this,t.verificationEnabled),await Bt(this,ne,"m",Se).call(this,t.duplicateFilterEnabled),await Bt(this,ne,"m",Te).call(this,t.duplicateForgetTime)}async startCapturing(e){if(xe(this),!this._isPauseScan)return;if(!Bt(this,re,"f"))throw new Error("'ImageSourceAdapter' is not set. call 'setInput' before 'startCapturing'");e||(e=t._defaultTemplate);const i=await this.containsTask(e);for(let t of Bt(this,de,"f"))await this.addResultFilter(t);const n=D(Ft.engineResourcePaths);return Bt(this,re,"f").isCameraEnhancer&&(i.includes("ddn")?Bt(this,re,"f").setPixelFormat(o.IPF_ABGR_8888):Bt(this,re,"f").setPixelFormat(o.IPF_GRAYSCALED)),void 0!==Bt(this,re,"f").singleFrameMode&&"disabled"!==Bt(this,re,"f").singleFrameMode?(this._templateName=e,void Bt(this,re,"f").on("singleFrameAcquired",this._singleFrameModeCallbackBind)):(Bt(this,re,"f").getColourChannelUsageType()===a.CCUT_AUTO&&Bt(this,re,"f").setColourChannelUsageType(i.includes("ddn")?a.CCUT_FULL_CHANNEL:a.CCUT_Y_CHANNEL_ONLY),Bt(this,ae,"f")&&Bt(this,ae,"f").isPending?Bt(this,ae,"f"):(jt(this,ae,new Gt((t,i)=>{if(this.disposed)return;let r=Tt();bt[r]=async n=>{Bt(this,ae,"f")&&!Bt(this,ae,"f").isFulfilled&&(n.success?(this._isPauseScan=!1,this._isOutputOriginalImage=n.isOutputOriginalImage,this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout(async()=>{-1!==this._minImageCaptureInterval&&Bt(this,re,"f").startFetching(),this._loopReadVideo(e),t()},0)):Re({message:n.message,rj:i,stack:n.stack,functionName:"startCapturing"}))},Et.postMessage({type:"cvr_startCapturing",id:r,instanceID:this._instanceID,body:{templateName:e,engineResourcePaths:n}})})),await Bt(this,ae,"f")))}stopCapturing(){xe(this),Bt(this,re,"f")&&(Bt(this,re,"f").isCameraEnhancer&&void 0!==Bt(this,re,"f").singleFrameMode&&"disabled"!==Bt(this,re,"f").singleFrameMode?Bt(this,re,"f").off("singleFrameAcquired",this._singleFrameModeCallbackBind):(Bt(this,ne,"m",be).call(this),Bt(this,re,"f").stopFetching(),this._averageProcessintTimeArray=[],this._averageTime=999,this._isPauseScan=!0,jt(this,ae,null),Bt(this,re,"f").setColourChannelUsageType(a.CCUT_AUTO)))}async containsTask(t){return xe(this),await new Promise((e,i)=>{let n=Tt();bt[n]=async t=>{if(t.success)return e(JSON.parse(t.tasks));Re({message:t.message,rj:i,stack:t.stack,functionName:"containsTask"})},Et.postMessage({type:"cvr_containsTask",id:n,instanceID:this._instanceID,body:{templateName:t}})})}async _loopReadVideo(e){if(this.disposed||this._isPauseScan)return;if(jt(this,me,!0),Bt(this,re,"f").isBufferEmpty())if(Bt(this,re,"f").hasNextImageToFetch())for(let t of Bt(this,ce,"f"))t.onImageSourceStateReceived&&t.onImageSourceStateReceived(ie.ISS_BUFFER_EMPTY);else if(!Bt(this,re,"f").hasNextImageToFetch())for(let t of Bt(this,ce,"f"))t.onImageSourceStateReceived&&t.onImageSourceStateReceived(ie.ISS_EXHAUSTED);if(-1===this._minImageCaptureInterval||Bt(this,re,"f").isBufferEmpty()&&Bt(this,re,"f").isCameraEnhancer)try{Bt(this,re,"f").isBufferEmpty()&&t._onLog&&t._onLog("buffer is empty so fetch image"),t._onLog&&t._onLog(`DCE: start fetching a frame: ${Date.now()}`),this._dsImage=Bt(this,re,"f").fetchImage(),t._onLog&&t._onLog(`DCE: finish fetching a frame: ${Date.now()}`),Bt(this,re,"f").setImageFetchInterval(this._averageTime)}catch(i){return void this._reRunCurrnetFunc(e)}else if(Bt(this,re,"f").isCameraEnhancer&&Bt(this,re,"f").setImageFetchInterval(this._averageTime-(this._dsImage&&this._dsImage.tag?this._dsImage.tag.timeSpent:0)),this._dsImage=Bt(this,re,"f").getImage(),this._dsImage&&this._dsImage.tag&&Date.now()-this._dsImage.tag.timeStamp>200)return void this._reRunCurrnetFunc(e);if(!this._dsImage)return void this._reRunCurrnetFunc(e);for(let t of Bt(this,he,"f"))this._isOutputOriginalImage&&t.onOriginalImageResultReceived&&t.onOriginalImageResultReceived({imageData:this._dsImage});const i=Date.now();this._captureDsimage(this._dsImage,e).then(async n=>{if(t._onLog&&t._onLog("no js handle time: "+(Date.now()-i)),this._isPauseScan)return void this._reRunCurrnetFunc(e);n.originalImageTag=this._dsImage.tag?this._dsImage.tag:null;for(let e of Bt(this,he,"f"))if(e.isDce){const i=Date.now();if(e.onCapturedResultReceived(n,{isDetectVerifyOpen:this._isOpenDetectVerify,isNormalizeVerifyOpen:this._isOpenNormalizeVerify,isBarcodeVerifyOpen:this._isOpenBarcodeVerify,isLabelVerifyOpen:this._isOpenLabelVerify}),t._onLog){const e=Date.now()-i;e>10&&t._onLog(`draw result time: ${e}`)}}else{for(let t of Bt(this,de,"f"))t.onDecodedBarcodesReceived(n),t.onRecognizedTextLinesReceived(n),t.onProcessedDocumentResultReceived(n);Bt(this,ne,"m",Ce).call(this,e,n)}const r=Date.now();if(this._minImageCaptureInterval>-1&&(5===this._averageProcessintTimeArray.length&&this._averageProcessintTimeArray.shift(),5===this._averageFetchImageTimeArray.length&&this._averageFetchImageTimeArray.shift(),this._averageProcessintTimeArray.push(Date.now()-i),this._averageFetchImageTimeArray.push(this._dsImage&&this._dsImage.tag?this._dsImage.tag.timeSpent:0),this._averageTime=Math.min(...this._averageProcessintTimeArray)-Math.max(...this._averageFetchImageTimeArray),this._averageTime=this._averageTime>0?this._averageTime:0,t._onLog&&(t._onLog(`minImageCaptureInterval: ${this._minImageCaptureInterval}`),t._onLog(`averageProcessintTimeArray: ${this._averageProcessintTimeArray}`),t._onLog(`averageFetchImageTimeArray: ${this._averageFetchImageTimeArray}`),t._onLog(`averageTime: ${this._averageTime}`))),t._onLog){const e=Date.now()-r;e>10&&t._onLog(`fetch image calculate time: ${e}`)}t._onLog&&t._onLog(`time finish decode: ${Date.now()}`),t._onLog&&t._onLog("main time: "+(Date.now()-i)),t._onLog&&t._onLog("===================================================="),this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._minImageCaptureInterval>0&&this._minImageCaptureInterval>=this._averageTime?this._loopReadVideoTimeoutId=setTimeout(()=>{this._loopReadVideo(e)},this._minImageCaptureInterval-this._averageTime):this._loopReadVideoTimeoutId=setTimeout(()=>{this._loopReadVideo(e)},Math.max(this._minImageCaptureInterval,0))}).catch(t=>{Bt(this,re,"f").stopFetching(),"platform error"!==t.message&&(t.errorCode&&0===t.errorCode&&(this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout(()=>{Bt(this,re,"f").startFetching(),this._loopReadVideo(e)},Math.max(this._minImageCaptureInterval,1e3))),setTimeout(()=>{if(!this.onCaptureError)throw t;this.onCaptureError(t)},0))})}_reRunCurrnetFunc(t){this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout(()=>{this._loopReadVideo(t)},0)}async capture(e,i){let n;if(xe(this),i||(i=t._defaultTemplate),jt(this,me,!1),w(e))n=await this._captureDsimage(e,i);else if("string"==typeof e)n="data:image/"==e.substring(0,11)?await this._captureBase64(e,i):await this._captureUrl(e,i);else if(e instanceof Blob)n=await this._captureBlob(e,i);else if(e instanceof HTMLImageElement)n=await this._captureImage(e,i);else if(e instanceof HTMLCanvasElement)n=await this._captureCanvas(e,i);else{if(!(e instanceof HTMLVideoElement))throw new TypeError("'capture(imageOrFile, templateName)': Type of 'imageOrFile' should be 'DSImageData', 'Url', 'Base64', 'Blob', 'HTMLImageElement', 'HTMLCanvasElement', 'HTMLVideoElement'.");n=await this._captureVideo(e,i)}return n}async _captureDsimage(t,e){return await this._captureInWorker(t,e)}async _captureUrl(t,e){let i=await R(t,"blob");return await this._captureBlob(i,e)}async _captureBase64(t,e){t=t.substring(t.indexOf(",")+1);let i=atob(t),n=i.length,r=new Uint8Array(n);for(;n--;)r[n]=i.charCodeAt(n);return await this._captureBlob(new Blob([r]),e)}async _captureBlob(t,e){let i=null,n=null;if("undefined"!=typeof createImageBitmap)try{i=await createImageBitmap(t)}catch(t){}i||(n=await async function(e){return await new Promise((i,n)=>{let r=URL.createObjectURL(e),s=new Image;s.src=r,s.onload=()=>{URL.revokeObjec