From bd0d545c2309fb88689f78ee8164dd1cbcde248d Mon Sep 17 00:00:00 2001 From: DMGithubPublisher Date: Thu, 23 May 2024 15:58:57 +0800 Subject: [PATCH] 10.2.1000 --- API Reference.url | 2 +- LEGAL.txt | 6 +- LICENSE | 2 +- README.md | 223 +++---- dist/DBR-PresetTemplates.json | 625 ------------------ dist/dbr.bundle.d.ts | 12 + dist/dbr.bundle.esm.d.ts | 6 + dist/dbr.bundle.js | 56 +- dist/dbr.bundle.mjs | 11 + dist/dbr.esm.js | 11 - dist/dbr.js | 11 - dist/dbr.mjs | 11 - dist/dbr.no-content-bundle.esm.js | 11 + dist/dbr.wasm | Bin 2837497 -> 0 bytes dist/types/class/BarcodeReaderModule.d.ts | 3 - dist/types/dbr.d.ts | 27 - .../enum/EnumExtendedBarcodeResultType.d.ts | 5 - dist/types/enum/enumbarcodeformat.d.ts | 197 ------ dist/types/enum/enumdeblurmode.d.ts | 29 - dist/types/enum/enumlocalizationmode.d.ts | 28 - .../enum/enumqrcodeerrorcorrectionlevel.d.ts | 6 - dist/types/interface/AztecDetails.d.ts | 6 - dist/types/interface/BarcodeDetails.d.ts | 2 - dist/types/interface/BarcodeResultItem.d.ts | 16 - .../types/interface/CandidateBarcodeZone.d.ts | 11 - .../interface/CandidateBarcodeZonesUnit.d.ts | 14 - .../ComplementedBarcodeImageUnit.d.ts | 10 - dist/types/interface/DataMatrixDetails.d.ts | 8 - .../interface/DecodedBarcodeElement.d.ts | 17 - .../interface/DecodedBarcodesResult.d.ts | 17 - dist/types/interface/DecodedBarcodesUnit.d.ts | 10 - .../interface/DeformationResistedBarcode.d.ts | 13 - .../DeformationResistedBarcodeImageUnit.d.ts | 14 - .../interface/ExtendedBarcodeResult.d.ts | 9 - .../interface/LocalizedBarcodeElement.d.ts | 9 - .../interface/LocalizedBarcodesUnit.d.ts | 10 - dist/types/interface/OneDCodeDetails.d.ts | 9 - dist/types/interface/PDF417Details.d.ts | 8 - dist/types/interface/QRCodeDetails.d.ts | 12 - .../interface/ScaledUpBarcodeImageUnit.d.ts | 9 - .../SimplifiedBarcodeReaderSettings.d.ts | 13 - package.json | 102 ++- samples.url | 2 +- 43 files changed, 180 insertions(+), 1423 deletions(-) delete mode 100644 dist/DBR-PresetTemplates.json create mode 100644 dist/dbr.bundle.d.ts create mode 100644 dist/dbr.bundle.esm.d.ts create mode 100644 dist/dbr.bundle.mjs delete mode 100644 dist/dbr.esm.js delete mode 100644 dist/dbr.js delete mode 100644 dist/dbr.mjs create mode 100644 dist/dbr.no-content-bundle.esm.js delete mode 100644 dist/dbr.wasm delete mode 100644 dist/types/class/BarcodeReaderModule.d.ts delete mode 100644 dist/types/dbr.d.ts delete mode 100644 dist/types/enum/EnumExtendedBarcodeResultType.d.ts delete mode 100644 dist/types/enum/enumbarcodeformat.d.ts delete mode 100644 dist/types/enum/enumdeblurmode.d.ts delete mode 100644 dist/types/enum/enumlocalizationmode.d.ts delete mode 100644 dist/types/enum/enumqrcodeerrorcorrectionlevel.d.ts delete mode 100644 dist/types/interface/AztecDetails.d.ts delete mode 100644 dist/types/interface/BarcodeDetails.d.ts delete mode 100644 dist/types/interface/BarcodeResultItem.d.ts delete mode 100644 dist/types/interface/CandidateBarcodeZone.d.ts delete mode 100644 dist/types/interface/CandidateBarcodeZonesUnit.d.ts delete mode 100644 dist/types/interface/ComplementedBarcodeImageUnit.d.ts delete mode 100644 dist/types/interface/DataMatrixDetails.d.ts delete mode 100644 dist/types/interface/DecodedBarcodeElement.d.ts delete mode 100644 dist/types/interface/DecodedBarcodesResult.d.ts delete mode 100644 dist/types/interface/DecodedBarcodesUnit.d.ts delete mode 100644 dist/types/interface/DeformationResistedBarcode.d.ts delete mode 100644 dist/types/interface/DeformationResistedBarcodeImageUnit.d.ts delete mode 100644 dist/types/interface/ExtendedBarcodeResult.d.ts delete mode 100644 dist/types/interface/LocalizedBarcodeElement.d.ts delete mode 100644 dist/types/interface/LocalizedBarcodesUnit.d.ts delete mode 100644 dist/types/interface/OneDCodeDetails.d.ts delete mode 100644 dist/types/interface/PDF417Details.d.ts delete mode 100644 dist/types/interface/QRCodeDetails.d.ts delete mode 100644 dist/types/interface/ScaledUpBarcodeImageUnit.d.ts delete mode 100644 dist/types/interface/SimplifiedBarcodeReaderSettings.d.ts diff --git a/API Reference.url b/API Reference.url index b3a5e549..bc2b1b86 100644 --- a/API Reference.url +++ b/API Reference.url @@ -1,2 +1,2 @@ [InternetShortcut] -URL=https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/?ver=10.2.10 \ No newline at end of file +URL=https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/?ver=10.2.1000 \ No newline at end of file diff --git a/LEGAL.txt b/LEGAL.txt index 7fea86c8..00ec6130 100644 --- a/LEGAL.txt +++ b/LEGAL.txt @@ -9,7 +9,7 @@ This SDK contains parts of following softwares which are used under license. =================================================================================== Zlib. -Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -27,8 +27,8 @@ Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. - Jean-loup Gailly - Mark Adler + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu =================================================================================== diff --git a/LICENSE b/LICENSE index 6cce8bcf..e7349294 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ Copyright © 2003–2024 Dynamsoft. All Rights Reserved. The use of this software is governed by the Dynamsoft Terms and Conditions. -https://www.dynamsoft.com/barcode-reader/license-agreement/#javascript \ No newline at end of file +URL=https://www.dynamsoft.com/barcode-reader/license-agreement/#javascript \ No newline at end of file diff --git a/README.md b/README.md index 6dcc2656..8c9d855f 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ In this guide, you will learn step by step on how to integrate the DBR-JS SDK in **Popular Examples** - Hello World - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/hello-world.html) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/hello-world.html?ver=10.2.10&utm_source=github) -- Angular App - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/angular) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/angular/dist/hello-world/?ver=10.2.10&utm_source=github) +- Angular App - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/angular) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/angular/dist/angular/?ver=10.2.10&utm_source=github) - React App - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/react) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/react/build/?ver=10.2.10&utm_source=github) - Vue App - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/vue) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/vue/dist/?ver=10.2.10&utm_source=github) - PWA App - [Github](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/v10.2.10/hello-world/pwa) \| [Run](https://demo.dynamsoft.com/Samples/DBR/JS/hello-world/pwa/helloworld-pwa.html?ver=10.2.10&utm_source=github) @@ -89,20 +89,20 @@ The complete code of the "Hello World" example is shown below
- + @@ -148,26 +148,26 @@ The complete code of the "Hello World" example is shown below - `Dynamsoft.Core.CoreModule.loadWasm(["dbr"])`: This is an optional code. Used to load wasm resources in advance, reducing latency between video playing and barcode decoding. -- `Dynamsoft.CVR.CaptureVisionRouter.createInstance()`: This method creates a `CaptureVisionRouter` object `router` which controls the entire process in three steps: +- `Dynamsoft.CVR.CaptureVisionRouter.createInstance()`: This method creates a `CaptureVisionRouter` object `cvRouter` which controls the entire process in three steps: - **Retrieve Images from the Image Source** - - `router` connects to the image source through the [ImageSourceAdapter](https://www.dynamsoft.com/capture-vision/docs/core/architecture/input.html#image-source-adapter?lang=js) interface with the method `setInput()`. + - `cvRouter` connects to the image source through the [ImageSourceAdapter](https://www.dynamsoft.com/capture-vision/docs/core/architecture/input.html#image-source-adapter?lang=js) interface with the method `setInput()`. ```js - router.setInput(cameraEnhancer); + cvRouter.setInput(cameraEnhancer); ``` > The image source in our case is a [CameraEnhancer](https://www.dynamsoft.com/camera-enhancer/docs/web/programming/javascript/user-guide/index.html) object created with `Dynamsoft.DCE.CameraEnhancer.createInstance(view)` - **Coordinate Image-Processing Tasks** - - The coordination happens behind the scenes. `router` starts the process by specifying a preset template "ReadSingleBarcode" in the method `startCapturing()`. + - The coordination happens behind the scenes. `cvRouter` starts the process by specifying a preset template "ReadSingleBarcode" in the method `startCapturing()`. ```js - router.startCapturing("ReadSingleBarcode"); + cvRouter.startCapturing("ReadSingleBarcode"); ``` - **Dispatch Results to Listening Objects** - - The processing results are returned through the [CapturedResultReceiver](https://www.dynamsoft.com/capture-vision/docs/core/architecture/output.html#captured-result-receiver?lang=js) interface. The `CapturedResultReceiver` object is registered to `router` via the method `addResultReceiver()`. For more information, please check out [Register a result receiver](#register-a-result-receiver). + - The processing results are returned through the [CapturedResultReceiver](https://www.dynamsoft.com/capture-vision/docs/core/architecture/output.html#captured-result-receiver?lang=js) interface. The `CapturedResultReceiver` object is registered to `cvRouter` via the method `addResultReceiver()`. For more information, please check out [Register a result receiver](#register-a-result-receiver). ```js - router.addResultReceiver({/*The-CapturedResultReceiver-Object"*/}); + cvRouter.addResultReceiver({/*The-CapturedResultReceiver-Object"*/}); ``` - - Also note that reading from video is extremely fast and there could be many duplicate results. We can use a [filter](#filter-the-results-important) with result deduplication enabled to filter out the duplicate results. The object is registered to `router` via the method `addResultFilter()`. + - Also note that reading from video is extremely fast and there could be many duplicate results. We can use a [filter](#filter-the-results-important) with result deduplication enabled to filter out the duplicate results. The object is registered to `cvRouter` via the method `addResultFilter()`. ```js - router.addResultFilter(filter); + cvRouter.addResultFilter(filter); ``` > Read more on [Capture Vision Router](https://www.dynamsoft.com/capture-vision/docs/core/architecture/#capture-vision-router). @@ -208,7 +208,19 @@ To utilize the SDK, the initial step involves including the corresponding resour * `cvr.js` introduces the `CaptureVisionRouter` class, which governs the entire image processing workflow. * `dce.js` comprises classes that offer camera support and basic user interface functionalities. -For simplification, starting from version 10.2.10, we introduced `dbr.bundle.js`. Including this file is equivalent to incorporating all six packages. +For simplification, starting from version 10.0.21, we introduced `dbr.bundle.js`. Including this file is equivalent to incorporating all six packages. + +* dynamsoft-core@3.2.30/dist/core.js +* dynamsoft-license@3.2.21/dist/license.js +* dynamsoft-utility@1.2.20/dist/utility.js +* dynamsoft-barcode-reader@10.2.10/dist/dbr.js +* dynamsoft-capture-vision-router@2.2.30/dist/cvr.js +* dynamsoft-camera-enhancer@4.0.3/dist/dce.js + +Equivalent to +* dynamsoft-barcode-reader-bundle@10.2.1000/dist/dbr.bundle.js + +In the following chapters, we will use `dbr.bundle.js`. #### Use a public CDN @@ -217,48 +229,22 @@ The simplest way to include the SDK is to use either the [jsDelivr](https://jsde - jsDelivr ```html - - - - - - + ``` - Or just +- UNPKG ```html - + ``` -- UNPKG +- In some rare cases (such as some restricted areas), you might not be able to access the CDN. If this happens, you can use the following files for the test. ```html - - - - - - + ``` - Or just - - ```html - - ``` - -In some rare cases (such as some restricted areas), you might not be able to access the CDN. If this happens, you can use the following files for the test. - -- https://download2.dynamsoft.com/packages/dynamsoft-core@3.2.10/dist/core.js -- https://download2.dynamsoft.com/packages/dynamsoft-license@3.2.10/dist/license.js -- https://download2.dynamsoft.com/packages/dynamsoft-utility@1.2.10/dist/utility.js -- https://download2.dynamsoft.com/packages/dynamsoft-barcode-reader@10.2.10/dist/dbr.js -- https://download2.dynamsoft.com/packages/dynamsoft-capture-vision-router@2.2.10/dist/cvr.js -- https://download2.dynamsoft.com/packages/dynamsoft-camera-enhancer@4.0.2/dist/dce.js -- or bundle: https://download2.dynamsoft.com/packages/dynamsoft-barcode-reader@10.2.10/dist/dbr.bundle.js - -However, please **DO NOT** use `download2.dynamsoft.com` resources in a production application as they are for temporary testing purposes only. Instead, you can try hosting the SDK yourself. + However, please **DO NOT** use `download2.dynamsoft.com` resources in a production application as they are for temporary testing purposes only. Instead, you can try hosting the SDK yourself. #### Host the SDK yourself (optional) @@ -270,30 +256,20 @@ Options to download the SDK: [Download Dynamsoft Barcode Reader JavaScript Package](https://www.dynamsoft.com/barcode-reader/downloads/?ver=10.2.10&utm_source=github&product=dbr&package=js) -- yarn +- npm ```cmd - yarn add dynamsoft-core@3.2.10 --save - yarn add dynamsoft-license@3.2.10 --save - yarn add dynamsoft-utility@1.2.10 --save - yarn add dynamsoft-barcode-reader@10.2.10 --save - yarn add dynamsoft-capture-vision-router@2.2.10 --save - yarn add dynamsoft-camera-enhancer@4.0.2 --save - yarn add dynamsoft-capture-vision-std@1.2.0 --save - yarn add dynamsoft-image-processing@2.2.10 --save + npm i dynamsoft-barcode-reader-bundle@10.2.1000 -E + npm i dynamsoft-capture-vision-std@1.2.0 -E + npm i dynamsoft-image-processing@2.2.10 -E ``` -- npm +- yarn ```cmd - npm install dynamsoft-core@3.2.10 --save - npm install dynamsoft-license@3.2.10 --save - npm install dynamsoft-utility@1.2.10 --save - npm install dynamsoft-barcode-reader@10.2.10 --save - npm install dynamsoft-capture-vision-router@2.2.10 --save - npm install dynamsoft-camera-enhancer@4.0.2 --save - npm install dynamsoft-capture-vision-std@1.2.0 --save - npm install dynamsoft-image-processing@2.2.10 --save + yarn add dynamsoft-barcode-reader-bundle@10.2.1000 -E + yarn add dynamsoft-capture-vision-std@1.2.0 -E + yarn add dynamsoft-image-processing@2.2.10 -E ``` Depending on how you downloaded the SDK and how you intend to use it, you can typically include it like this @@ -301,35 +277,13 @@ Depending on how you downloaded the SDK and how you intend to use it, you can ty - From the website ```html - - - - - - - ``` - - Or just - - ```html - + ``` - yarn or npm ```html - - - - - - - ``` - - Or just - - ```html - + ``` *Note*: @@ -402,9 +356,9 @@ To use the SDK, we first create a `CaptureVisionRouter` object. ```javascript Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9"); -let router = null; +let cvRouter = null; try { - router = await Dynamsoft.CVR.CaptureVisionRouter.createInstance(); + cvRouter = await Dynamsoft.CVR.CaptureVisionRouter.createInstance(); } catch (ex) { console.error(ex); } @@ -417,12 +371,12 @@ When creating a `CaptureVisionRouter` object within a function which may be call ```javascript Dynamsoft.License.LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9"); -let pRouter = null; // promise of router -let router = null; +let pCvRouter = null; // promise of cvRouter +let cvRouter = null; document.getElementById('btn-scan').addEventListener('click', async () => { try { - router = await (pRouter = pRouter || Dynamsoft.CVR.CaptureVisionRouter.createInstance()); + cvRouter = await (pCvRouter = pCvRouter || Dynamsoft.CVR.CaptureVisionRouter.createInstance()); } catch (ex) { console.error(ex); } @@ -431,7 +385,7 @@ document.getElementById('btn-scan').addEventListener('click', async () => { #### Connect an image source -The `CaptureVisionRouter` object, denoted as `router`, is responsible for handling images provided by an image source. In our scenario, we aim to detect barcodes directly from a live video stream. To facilitate this, we initialize a `CameraEnhancer` object, identified as `cameraEnhancer`, which is specifically designed to capture image frames from the video feed and subsequently forward them to `router`. +The `CaptureVisionRouter` object, denoted as `cvRouter`, is responsible for handling images provided by an image source. In our scenario, we aim to detect barcodes directly from a live video stream. To facilitate this, we initialize a `CameraEnhancer` object, identified as `cameraEnhancer`, which is specifically designed to capture image frames from the video feed and subsequently forward them to `cvRouter`. To enable video streaming on the webpage, we create a `CameraView` object referred to as `view`, which is then passed to `cameraEnhancer`, and its content is displayed on the webpage. @@ -443,7 +397,7 @@ To enable video streaming on the webpage, we create a `CameraView` object referr let view = await Dynamsoft.DCE.CameraView.createInstance(); let cameraEnhancer = await Dynamsoft.DCE.CameraEnhancer.createInstance(view); document.querySelector("#cameraViewContainer").append(view.getUIElement()); -router.setInput(cameraEnhancer); +cvRouter.setInput(cameraEnhancer); ``` #### Register a result receiver @@ -457,23 +411,23 @@ resultReceiver.onDecodedBarcodesReceived = (result) => { if (result.barcodeResultItems.length > 0) { resultsContainer.textContent = ''; for (let item of result.barcodeResultItems) { - // In this example, the barcode result is shown on the page beneath the video + // In this example, the barcode results are displayed on the page below the video. resultsContainer.textContent += `${item.formatString}: ${item.text}\n\n`; } } }; -router.addResultReceiver(resultReceiver); +cvRouter.addResultReceiver(resultReceiver); ``` You can also write code like this. It is the same. ```javascript const resultsContainer = document.querySelector("#results"); -router.addResultReceiver({ onDecodedBarcodesReceived: (result) => { +cvRouter.addResultReceiver({ onDecodedBarcodesReceived: (result) => { if (result.barcodeResultItems.length > 0) { resultsContainer.textContent = ''; for (let item of result.barcodeResultItems) { - // In this example, the barcode result is shown on the page beneath the video + // In this example, the barcode results are displayed on the page below the video. resultsContainer.textContent += `${item.formatString}: ${item.text}\n\n`; } } @@ -486,17 +440,17 @@ Check out [CapturedResultReceiver](https://www.dynamsoft.com/capture-vision/docs With the setup now complete, we can proceed to process the images in two straightforward steps: -1. Initiate the image source to commence image acquisition. In our scenario, we invoke the `open()` method on `cameraEnhancer` to initiate video streaming and simultaneously initiate the collection of images. These collected images will be dispatched to `router` as per its request. +1. Initiate the image source to commence image acquisition. In our scenario, we invoke the `open()` method on `cameraEnhancer` to initiate video streaming and simultaneously initiate the collection of images. These collected images will be dispatched to `cvRouter` as per its request. 2. Define a preset template to commence image processing. In our case, we utilize the "ReadSingleBarcode" template, specifically tailored for processing images containing a single barcode. ```javascript await cameraEnhancer.open(); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` *Note*: -* `router` is engineered to consistently request images from the image source. +* `cvRouter` is engineered to consistently request images from the image source. * Various preset templates are at your disposal for barcode reading: | Template Name | Function Description | @@ -522,11 +476,11 @@ When making adjustments to some basic tasks, we often only need to modify [Simpl The preset templates can be updated to meet different requirements. For example, the following code limits the barcode format to QR code. ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.barcodeSettings.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` For a list of adjustable barcode settings, check out [SimplifiedBarcodeReaderSettings](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/api-reference/interfaces/simplified-barcode-reader-settings.html). @@ -536,36 +490,33 @@ For a list of adjustable barcode settings, check out [SimplifiedBarcodeReaderSet Additionally, we have the option to modify the template to retrieve the original image containing the barcode. ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.capturedResultItemTypes |= Dynamsoft.Core.EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` Limit the barcode format to QR code, and retrieve the original image containing the barcode, at the same time. ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.capturedResultItemTypes = Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE | Dynamsoft.Core.EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` Please be aware that it is necessary to update the `CapturedResultReceiver` object to obtain the original image. For instance: ```javascript +const EnumCRIT = Dynamsoft.Core.EnumCapturedResultItemType; resultReceiver.onCapturedResultReceived = (result) => { - let barcodes = result.items.filter((item) => - item.type === Dynamsoft.Core.EnumCapturedResultItemType.CRIT_BARCODE - ); + let barcodes = result.items.filter(item => item.type === EnumCRIT.CRIT_BARCODE); if (barcodes.length > 0) { let image = result.items.filter( - (item) => - item.type === - Dynamsoft.Core.EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE + item => item.type === EnumCRIT.CRIT_ORIGINAL_IMAGE )[0].imageData; // The image that we found the barcode(s) on. } @@ -579,10 +530,10 @@ The SDK is initially configured to process images sequentially without any break > Please bear in mind that in the following code, if an image's processing time is shorter than 500 milliseconds, the SDK will wait for the full 500 milliseconds before proceeding to process the next image. Conversely, if an image's processing time exceeds 500 milliseconds, the subsequent image will be processed immediately upon completion. ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.minImageCaptureInterval = 500; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` ##### Specify a scan region @@ -590,7 +541,7 @@ await router.startCapturing("ReadSingleBarcode"); You can use the parameter `roi` (region of interest) together with the parameter `roiMeasuredInPercentage` to configure the SDK to only read a specific region on the image frames. For example, the following code limits the reading in the center 25%( = 50% * 50%) of the image frames: ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.roiMeasuredInPercentage = true; settings.roi.points = [ { x: 25, y: 25 }, @@ -598,8 +549,8 @@ settings.roi.points = [ { x: 75, y: 75 }, { x: 25, y: 75 }, ]; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` While the code above accomplishes the task, a more effective approach is to restrict the scan region directly at the image source, as demonstrated in the following code snippet. @@ -627,10 +578,10 @@ You can set the maximum time allowed for processing a single image with the prop > Please be aware that the SDK will cease processing an image if its processing time exceeds the duration specified by the `timeout` parameter. It should not be confused with the previously discussed parameter, `minImageCaptureInterval`. ```javascript -let settings = await router.getSimplifiedSettings("ReadSingleBarcode"); +let settings = await cvRouter.getSimplifiedSettings("ReadSingleBarcode"); settings.timeout = 500; -await router.updateSettings("ReadSingleBarcode", settings); -await router.startCapturing("ReadSingleBarcode"); +await cvRouter.updateSettings("ReadSingleBarcode", settings); +await cvRouter.startCapturing("ReadSingleBarcode"); ``` --> @@ -643,8 +594,8 @@ The preset templates have a lot more settings that can be customized to best sui Upon completing the template editing, you can invoke the `initSettings` method and provide it with the template path as an argument. ```javascript -await router.initSettings("PATH-TO-THE-FILE"); //e.g. "https://your-website/ReadSingleBarcode.json") -await router.startCapturing("ReadSingleBarcode"); // Make sure the name matches one of the CaptureVisionTemplates in the +await cvRouter.initSettings("PATH-TO-THE-FILE"); //e.g. "https://your-website/ReadSingleBarcode.json") +await cvRouter.startCapturing("ReadSingleBarcode"); // Make sure the name matches one of the CaptureVisionTemplates in the json file. ``` #### Filter the results (Important) @@ -656,7 +607,7 @@ While processing video frames, it's common for the same barcode to be detected m ```js let filter = new Dynamsoft.Utility.MultiFrameResultCrossFilter(); filter.enableResultCrossVerification("barcode", true); -await router.addResultFilter(filter); +await cvRouter.addResultFilter(filter); ``` *Note*: @@ -668,7 +619,7 @@ await router.addResultFilter(filter); ```js let filter = new Dynamsoft.Utility.MultiFrameResultCrossFilter(); filter.enableResultDeduplication("barcode", true); -await router.addResultFilter(filter); +await cvRouter.addResultFilter(filter); ``` *Note*: @@ -684,7 +635,7 @@ Under certain circumstances, this duration can be extended with the method `setD ```js let filter = new Dynamsoft.Utility.MultiFrameResultCrossFilter(); filter.setDuplicateForgetTime(5000); // Extend the duration to 5 seconds. -await router.addResultFilter(filter); +await cvRouter.addResultFilter(filter); ``` You can also enable both options at the same time: @@ -694,7 +645,7 @@ let filter = new Dynamsoft.Utility.MultiFrameResultCrossFilter(); filter.enableResultCrossVerification("barcode", true); filter.enableResultDeduplication("barcode", true); filter.setDuplicateForgetTime(5000); -await router.addResultFilter(filter); +await cvRouter.addResultFilter(filter); ``` #### Add feedback @@ -710,7 +661,7 @@ resultReceiver.onDecodedBarcodesReceived = (result) => { Dynamsoft.DCE.Feedback.beep(); } }; -router.addResultReceiver(resultReceiver); +cvRouter.addResultReceiver(resultReceiver); ``` ### Customize the UI diff --git a/dist/DBR-PresetTemplates.json b/dist/DBR-PresetTemplates.json deleted file mode 100644 index 08093841..00000000 --- a/dist/DBR-PresetTemplates.json +++ /dev/null @@ -1,625 +0,0 @@ -{ - "CaptureVisionTemplates": [ - { - "Name": "Default" - }, - { - "Name": "ReadBarcodes_Default", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes" - ], - "Timeout": 10000 - }, - { - "Name": "ReadBarcodes_SpeedFirst", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes-speed-first" - ], - "Timeout": 10000 - }, - { - "Name": "ReadBarcodes_ReadRateFirst", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes-read-rate" - ], - "Timeout": 100000 - }, - { - "Name": "ReadSingleBarcode", - "ImageROIProcessingNameArray": [ - "roi-read-single-barcode" - ], - "Timeout": 10000 - }, - { - "Name": "ReadBarcodes_Balance", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes-balance" - ], - "Timeout": 100000 - }, - { - "Name": "ReadDenseBarcodes", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes-dense" - ], - "Timeout": 10000 - }, - { - "Name": "ReadDistantBarcodes", - "ImageROIProcessingNameArray": [ - "roi-read-barcodes-distant" - ], - "Timeout": 10000 - } - ], - "TargetROIDefOptions": [ - { - "Name": "roi-read-barcodes", - "TaskSettingNameArray": [ - "task-read-barcodes" - ] - }, - { - "Name": "roi-read-barcodes-speed-first", - "TaskSettingNameArray": [ - "task-read-barcodes-speed-first" - ] - }, - { - "Name": "roi-read-barcodes-read-rate", - "TaskSettingNameArray": [ - "task-read-barcodes-read-rate" - ] - }, - { - "Name": "roi-read-single-barcode", - "TaskSettingNameArray": [ - "task-read-single-barcode" - ] - }, - { - "Name": "roi-read-barcodes-balance", - "TaskSettingNameArray": [ - "task-read-barcodes-balance" - ] - }, - { - "Name": "roi-read-barcodes-dense", - "TaskSettingNameArray": [ - "task-read-barcodes-dense" - ] - }, - { - "Name": "roi-read-barcodes-distant", - "TaskSettingNameArray": [ - "task-read-barcodes-distant" - ] - } - ], - "BarcodeFormatSpecificationOptions": [ - { - "Name": "bfs1", - "BarcodeFormatIds": [ - "BF_PDF417", - "BF_QR_CODE", - "BF_DATAMATRIX", - "BF_AZTEC", - "BF_MICRO_QR", - "BF_MICRO_PDF417", - "BF_DOTCODE" - ], - "MirrorMode": "MM_BOTH" - }, - { - "Name": "bfs2", - "BarcodeFormatIds": [ - "BF_ALL" - ], - "MirrorMode": "MM_NORMAL" - }, - { - "Name": "bfs1-speed-first", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-speed-first", - "BaseBarcodeFormatSpecification": "bfs2" - }, - { - "Name": "bfs1-read-rate-first", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-read-rate-first", - "BaseBarcodeFormatSpecification": "bfs2" - }, - { - "Name": "bfs1-single-barcode", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-single-barcode", - "BaseBarcodeFormatSpecification": "bfs2" - }, - { - "Name": "bfs1-balance", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-balance", - "BaseBarcodeFormatSpecification": "bfs2" - }, - { - "Name": "bfs1-dense", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-dense", - "BaseBarcodeFormatSpecification": "bfs2" - }, - { - "Name": "bfs1-distant", - "BaseBarcodeFormatSpecification": "bfs1" - }, - { - "Name": "bfs2-distant", - "BaseBarcodeFormatSpecification": "bfs2" - } - ], - "BarcodeReaderTaskSettingOptions": [ - { - "Name": "task-read-barcodes", - "ExpectedBarcodesCount" : 1, - "LocalizationModes": [ - { - "Mode": "LM_SCAN_DIRECTLY", - "ScanDirection": 2 - }, - { - "Mode": "LM_CONNECTED_BLOCKS" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1", - "bfs2" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes" - } - ] - }, - { - "Name": "task-read-barcodes-speed-first", - "ExpectedBarcodesCount": 0, - "BarcodeFormatIds" : [ "BF_DEFAULT" ], - "LocalizationModes": [ - { - "Mode": "LM_SCAN_DIRECTLY", - "ScanDirection": 2 - }, - { - "Mode": "LM_CONNECTED_BLOCKS" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-speed-first", - "bfs2-speed-first" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes-speed-first" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes-speed-first" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes-speed-first" - } - ] - }, - { - "Name": "task-read-barcodes-read-rate", - "ExpectedBarcodesCount" : 999, - "LocalizationModes": [ - { - "Mode": "LM_CONNECTED_BLOCKS" - }, - { - "Mode": "LM_LINES" - }, - { - "Mode": "LM_STATISTICS" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - }, - { - "Mode": "DM_DIRECT_BINARIZATION" - }, - { - "Mode": "DM_SMOOTHING" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-read-rate-first", - "bfs2-read-rate-first" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes-read-rate" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes-read-rate" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes-read-rate" - } - ] - }, - { - "Name": "task-read-single-barcode", - "ExpectedBarcodesCount": 1, - "LocalizationModes": [ - { - "Mode": "LM_SCAN_DIRECTLY", - "ScanDirection": 2 - }, - { - "Mode": "LM_CONNECTED_BLOCKS" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-single-barcode", - "bfs2-single-barcode" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-single-barcode" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-single-barcode" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-single-barcode" - } - ] - }, - { - "Name": "task-read-barcodes-balance", - "ExpectedBarcodesCount" : 999, - "LocalizationModes": [ - { - "Mode": "LM_CONNECTED_BLOCKS" - }, - { - "Mode": "LM_SCAN_DIRECTLY" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - }, - { - "Mode": "DM_DIRECT_BINARIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-balance", - "bfs2-balance" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes-balance" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes-balance" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes-balance" - } - ] - }, - { - "Name": "task-read-barcodes-dense", - "ExpectedBarcodesCount" : 0, - "LocalizationModes": [ - { - "Mode": "LM_CONNECTED_BLOCKS" - }, - { - "Mode": "LM_LINES" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - }, - { - "Mode": "DM_DIRECT_BINARIZATION" - }, - { - "Mode": "DM_SMOOTHING" - }, - { - "Mode": "DM_GRAY_EQUALIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-dense", - "bfs2-dense" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes-dense" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes-dense" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes-dense" - } - ] - }, - { - "Name": "task-read-barcodes-distant", - "ExpectedBarcodesCount" : 0, - "LocalizationModes": [ - { - "Mode": "LM_CONNECTED_BLOCKS" - }, - { - "Mode": "LM_LINES" - } - ], - "DeblurModes": [ - { - "Mode": "DM_BASED_ON_LOC_BIN" - }, - { - "Mode": "DM_THRESHOLD_BINARIZATION" - }, - { - "Mode": "DM_DIRECT_BINARIZATION" - } - ], - "BarcodeFormatSpecificationNameArray": [ - "bfs1-distant", - "bfs2-distant" - ], - "SectionImageParameterArray": [ - { - "Section": "ST_REGION_PREDETECTION", - "ImageParameterName": "ip-read-barcodes-distant" - }, - { - "Section": "ST_BARCODE_LOCALIZATION", - "ImageParameterName": "ip-read-barcodes-distant" - }, - { - "Section": "ST_BARCODE_DECODING", - "ImageParameterName": "ip-read-barcodes-distant" - } - ] - } - ], - "ImageParameterOptions": [ - { - "Name": "ip-read-barcodes", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 71, - "BlockSizeY": 71, - "EnableFillBinaryVacancy": 0 - } - ], - "GrayscaleTransformationModes" : [ - { - "Mode": "GTM_ORIGINAL" - } - ] - }, - { - "Name": "ip-read-barcodes-speed-first", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 71, - "BlockSizeY": 71, - "EnableFillBinaryVacancy": 0 - } - ], - "GrayscaleTransformationModes": [ - { - "Mode": "GTM_ORIGINAL" - } - ] - }, - { - "Name": "ip-read-barcodes-read-rate", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 0, - "BlockSizeY": 0, - "EnableFillBinaryVacancy": 1 - } - ], - "GrayscaleTransformationModes" : [ - { - "Mode": "GTM_ORIGINAL" - } - ], - "ScaleDownThreshold" : 100000 - }, - { - "Name": "ip-read-single-barcode", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 71, - "BlockSizeY": 71, - "EnableFillBinaryVacancy": 0 - } - ], - "GrayscaleTransformationModes": [ - { - "Mode": "GTM_ORIGINAL" - } - ] - }, - { - "Name": "ip-read-barcodes-balance", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 0, - "BlockSizeY": 0, - "EnableFillBinaryVacancy": 1 - } - ], - "GrayscaleTransformationModes" : [ - { - "Mode": "GTM_ORIGINAL" - } - ] - }, - { - "Name": "ip-read-barcodes-dense", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 0, - "BlockSizeY": 0, - "EnableFillBinaryVacancy": 1 - } - ], - "GrayscaleTransformationModes" : [ - { - "Mode": "GTM_ORIGINAL" - } - ], - "ScaleDownThreshold" : 100000 - }, - { - "Name": "ip-read-barcodes-distant", - "TextDetectionMode": { - "Mode": "TTDM_LINE", - "Direction": "UNKNOWN", - "Sensitivity": 3 - }, - "IfEraseTextZone": 1, - "BinarizationModes": [ - { - "Mode": "BM_LOCAL_BLOCK", - "BlockSizeX": 0, - "BlockSizeY": 0, - "EnableFillBinaryVacancy": 1 - } - ], - "GrayscaleTransformationModes" : [ - { - "Mode": "GTM_ORIGINAL" - } - ], - "ScaleDownThreshold" : 2300 - } - ] -} \ No newline at end of file diff --git a/dist/dbr.bundle.d.ts b/dist/dbr.bundle.d.ts new file mode 100644 index 00000000..1c54afb8 --- /dev/null +++ b/dist/dbr.bundle.d.ts @@ -0,0 +1,12 @@ +import * as dynamsoftCore from 'dynamsoft-core'; +export { dynamsoftCore as Core }; +import * as dynamsoftLicense from 'dynamsoft-license'; +export { dynamsoftLicense as License }; +import * as dynamsoftCaptureVisionRouter from 'dynamsoft-capture-vision-router'; +export { dynamsoftCaptureVisionRouter as CVR }; +import * as dynamsoftCameraEnhancer from 'dynamsoft-camera-enhancer'; +export { dynamsoftCameraEnhancer as DCE }; +import * as dynamsoftBarcodeReader from 'dynamsoft-barcode-reader'; +export { dynamsoftBarcodeReader as DBR }; +import * as dynamsoftUtility from 'dynamsoft-utility'; +export { dynamsoftUtility as Utility }; diff --git a/dist/dbr.bundle.esm.d.ts b/dist/dbr.bundle.esm.d.ts new file mode 100644 index 00000000..bbfbd479 --- /dev/null +++ b/dist/dbr.bundle.esm.d.ts @@ -0,0 +1,6 @@ +export * from 'dynamsoft-core'; +export * from 'dynamsoft-license'; +export * from 'dynamsoft-capture-vision-router'; +export * from 'dynamsoft-camera-enhancer'; +export * from 'dynamsoft-barcode-reader'; +export * from 'dynamsoft-utility'; diff --git a/dist/dbr.bundle.js b/dist/dbr.bundle.js index cbbaa9cb..bbdba9d5 100644 --- a/dist/dbr.bundle.js +++ b/dist/dbr.bundle.js @@ -1,61 +1,11 @@ /*! * Dynamsoft JavaScript Library -* @product Dynamsoft Barcode Reader JS Edition +* @product Dynamsoft Barcode Reader JS Edition Bundle * @website http://www.dynamsoft.com * @copyright Copyright 2024, Dynamsoft Corporation * @author Dynamsoft -* @version 10.2.10 +* @version 10.2.1000 * @fileoverview Dynamsoft JavaScript Library for Barcode Reader * More info on dbr JS: https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/ */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Dynamsoft={})}(this,(function(t){"use strict"; -/*! - * Dynamsoft JavaScript Library - * @product Dynamsoft Core JS Edition - * @website https://www.dynamsoft.com - * @copyright Copyright 2024, Dynamsoft Corporation - * @author Dynamsoft - * @version 3.2.10 - * @fileoverview Dynamsoft JavaScript Library for Core - * More info on Dynamsoft Core JS: https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/core/core-module.html - */function e(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function i(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}var r,n,s;"function"==typeof SuppressedError&&SuppressedError,function(t){t[t.BOPM_BLOCK=0]="BOPM_BLOCK",t[t.BOPM_UPDATE=1]="BOPM_UPDATE"}(r||(r={})),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"}(n||(n={})),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"}(s||(s={}));const o=t=>Object.prototype.toString.call(t),a=t=>Array.isArray?Array.isArray(t):"[object Array]"===o(t),h=t=>"[object Boolean]"===o(t),l=t=>"number"==typeof t&&!Number.isNaN(t),c=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),u=t=>!(!c(t)||!(t.bytes instanceof Uint8Array)||!l(t.width)||t.width<=0||!l(t.height)||t.height<=0||!l(t.stride)||t.stride<=0||!("format"in t)||"tag"in t&&!f(t.tag)),d=t=>!(!c(t)||!l(t.left)||t.left<0||!l(t.top)||t.top<0||!l(t.right)||t.right<0||!l(t.bottom)||t.bottom<0||t.left>=t.right||t.top>=t.bottom||!h(t.isMeasuredInPercentage)),f=t=>!!c(t)&&!!l(t.imageId)&&"type"in t,g=t=>!(!c(t)||!m(t.startPoint)||!m(t.endPoint)||t.startPoint.x==t.endPoint.x&&t.startPoint.y==t.endPoint.y),m=t=>!!c(t)&&!!l(t.x)&&!!l(t.y),p=t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&!t.points.some((t=>!m(t))),_=t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&4==t.points.length&&!t.points.some((t=>!m(t))),v=t=>!(!c(t)||!l(t.x)||!l(t.y)||!l(t.width)||t.width<0||!l(t.height)||t.height<0||"isMeasuredInPercentage"in t&&!h(t.isMeasuredInPercentage));async function y(t,e){return await new Promise(((i,r)=>{let n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType=e,n.send(),n.onloadend=async()=>{i(n.response)},n.onerror=()=>{r(new Error("Network Error: "+n.statusText))}}))}const w=(t,e)=>{let i=t.split("."),r=e.split(".");for(let t=0;t=e(this,b,"f"))switch(e(this,S,"f")){case r.BOPM_BLOCK:break;case r.BOPM_UPDATE:if(e(this,T,"f").push(t),c(e(this,x,"f"))&&l(e(this,x,"f").imageId)&&1==e(this,x,"f").keepInBuffer)for(;e(this,T,"f").length>e(this,b,"f");){const t=e(this,T,"f").findIndex((t=>{var i;return(null===(i=t.tag)||void 0===i?void 0:i.imageId)!==e(this,x,"f").imageId}));e(this,T,"f").splice(t,1)}else e(this,T,"f").splice(0,e(this,T,"f").length-e(this,b,"f"))}else e(this,T,"f").push(t)}getImage(){if(0===e(this,T,"f").length)return null;let t;if(e(this,x,"f")&&l(e(this,x,"f").imageId)){const i=e(this,C,"m",R).call(this,e(this,x,"f").imageId);if(i<0)throw new Error(`Image with id ${e(this,x,"f").imageId} doesn't exist.`);t=e(this,T,"f").slice(i,i+1)[0]}else t=e(this,T,"f").pop();if([s.IPF_RGB_565,s.IPF_RGB_555,s.IPF_RGB_888,s.IPF_ARGB_8888,s.IPF_RGB_161616,s.IPF_ARGB_16161616,s.IPF_ABGR_8888,s.IPF_ABGR_16161616,s.IPF_BGR_888].includes(t.format)){if(e(this,A,"f")===n.CCUT_RGB_R_CHANNEL_ONLY){O._onLog&&O._onLog("only get R channel data.");const e=new Uint8Array(t.width*t.height);for(let i=0;i0!==t.length&&t.every((t=>l(t))))(t))throw new TypeError("Invalid 'imageId'.");if(void 0!==e&&!h(e))throw new TypeError("Invalid 'keepInBuffer'.");i(this,x,{imageId:t,keepInBuffer:e},"f")}_resetNextReturnedImage(){i(this,x,null,"f")}hasImage(t){return e(this,C,"m",R).call(this,t)>=0}startFetching(){i(this,I,!0,"f")}stopFetching(){i(this,I,!1,"f")}setMaxImageCount(t){if("number"!=typeof t)throw new TypeError("Invalid 'count'.");if(t<1||Math.round(t)!==t)throw new Error("Invalid 'count'.");for(i(this,b,t,"f");e(this,T,"f")&&e(this,T,"f").length>t;)e(this,T,"f").shift()}getMaxImageCount(){return e(this,b,"f")}getImageCount(){return e(this,T,"f").length}clearBuffer(){e(this,T,"f").length=0}isBufferEmpty(){return 0===e(this,T,"f").length}setBufferOverflowProtectionMode(t){i(this,S,t,"f")}getBufferOverflowProtectionMode(){return e(this,S,"f")}setColourChannelUsageType(t){i(this,A,t,"f")}getColourChannelUsageType(){return e(this,A,"f")}}T=new WeakMap,b=new WeakMap,S=new WeakMap,I=new WeakMap,x=new WeakMap,A=new WeakMap,C=new WeakSet,R=function(t){if("number"!=typeof t)throw new TypeError("Invalid 'imageId'.");return e(this,T,"f").findIndex((e=>{var i;return(null===(i=e.tag)||void 0===i?void 0:i.imageId)===t}))};const D="undefined"==typeof self,L=(()=>{if(!D&&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"./"})(),M=t=>{if(null==t&&(t="./"),D);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};let F,P,k,B,N;"undefined"!=typeof navigator&&(F=navigator,P=F.userAgent,k=F.platform,B=F.mediaDevices),function(){if(!D){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:F.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:k,search:"Win"},Mac:{str:k},Linux:{str:k}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||P,o=n.search||e,a=n.verStr||P,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||P,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=P.indexOf("Windows NT")&&(n="HarmonyOS"),N={browser:i,version:r,OS:n}}D&&(N={browser:"ssr",version:0,OS:"ssr"})}();const U="undefined"!=typeof WebAssembly&&P&&!(/Safari/.test(P)&&!/Chrome/.test(P)&&/\(.+\s11_2_([2-6]).*\)/.test(P)),j=!("undefined"==typeof Worker),G=!(!B||!B.getUserMedia),W=async()=>{let t=!1;if(G)try{(await B.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===N.browser&&N.version>66||"Safari"===N.browser&&N.version>13||"OPR"===N.browser&&N.version>43||"Edge"===N.browser&&N.version;const V=t=>t&&"object"==typeof t&&"function"==typeof t.then;class Y extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(V(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,V(t)?e=t:"function"==typeof t&&(e=new Promise(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}}const H={},X=async t=>{let e="string"==typeof t?[t]:t,i=[];for(let t of e)i.push(H[t]=H[t]||new Y);await Promise.all(i)},z=async(t,e)=>{let i,r="string"==typeof t?[t]:t,n=[];for(let t of r){let r;n.push(r=H[t]=H[t]||new Y(i=i||e())),r.isEmpty&&(r.task=i=i||e())}await Promise.all(n)};let Z,K=0;const q=()=>K++,J={};let Q;const $=t=>{Q=t,Z&&Z.postMessage({type:"setBLog",body:{value:!!t}})};let tt=!1;const et=t=>{tt=t,Z&&Z.postMessage({type:"setBDebug",body:{value:!!t}})},it={},rt={},nt={std:{version:"1.2.0",path:M(L+"../../dynamsoft-capture-vision-std@1.2.0/dist/")},core:{version:"3.2.10",path:L}},st=new Proxy(nt,{get(t,e,i){let r=Reflect.get(t,e,i);return r&&r.path&&(r=r.path),r}}),ot={dip:{wasm:!0}},at=async t=>{let e;t instanceof Array||(t=t?[t]:[]);{let t=H.core;e=!t||t.isEmpty}let i=new Map;for(let e of t){if(e=e.toLowerCase(),"std"==e||"core"==e)continue;if(!ot[e])throw Error("Module '"+e+"' not existed.");let t=ot[e].deps;if(null==t?void 0:t.length)for(let e of t){let t=H[e];i.has(e)||i.set(e,!t||t.isEmpty)}let r=H[e];i.has(e)||i.set(e,!r||r.isEmpty)}let r=[];e&&r.push("core"),r.push(...i.keys()),await z(r,(async()=>{const t=[...i.entries()].filter((t=>t[1])).map((t=>t[0])),r={};for(let t in st){if("rootDirectory"==t)continue;let e=st[t];st.rootDirectory&&(e.startsWith("http://")||e.startsWith("https://")||(e=st.rootDirectory+"/"+e)),r[t]=M(e)}const n={};for(let e of t)n[e]=ot[e];const s={engineResourcePaths:r,autoResources:n,names:t};let o=new Y;if(e){s.needLoadCore=!0;let t=r.core+ht._workerName;r.rootDirectory&&(t=r.rootDirectory+t),t.startsWith(location.origin)||(t=await fetch(t).then((t=>t.blob())).then((t=>URL.createObjectURL(t)))),Z=new Worker(t),Z.onerror=t=>{let e=new Error(t.message);o.reject(e)},Z.addEventListener("message",(t=>{let e=t.data?t.data:t,i=e.type,r=e.id,n=e.body;switch(i){case"log":Q&&Q(e.message);break;case"task":try{J[r](n),delete J[r]}catch(t){throw delete J[r],t}break;case"event":try{J[r](n)}catch(t){throw t}break;default:console.log(t)}})),s.bLog=!!Q,s.bd=tt,s.dm=location.origin.startsWith("http")?location.origin:"https://localhost"}else await X("worker");let a=K++;J[a]=t=>{if(t.success)Object.assign(it,t.versions),"{}"!==JSON.stringify(t.versions)&&(ht._versions=t.versions),o.resolve(void 0);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),o.reject(e)}},Z.postMessage({type:"loadWasm",body:s,id:a}),e&&z("worker",(()=>Promise.resolve())),await o}))};class ht{static get engineResourcePaths(){return st}static set engineResourcePaths(t){Object.assign(nt,t)}static get bSupportDce4Module(){return this._bSupportDce4Module}static get bSupportIRTModule(){return this._bSupportIRTModule}static get versions(){return this._versions}static get _onLog(){return Q}static set _onLog(t){$(t)}static get _bDebug(){return tt}static set _bDebug(t){et(t)}static isModuleLoaded(t){return t=(t=t||"core").toLowerCase(),!!H[t]&&H[t].isFulfilled}static async loadWasm(t){return await at(t)}static async detectEnvironment(){return await(async()=>({wasm:U,worker:j,getUserMedia:G,camera:await W(),browser:N.browser,version:N.version,OS:N.OS}))()}static async getModuleVersion(){return await new Promise(((t,e)=>{let i=q();J[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)}},Z.postMessage({type:"getModuleVersion",id:i})}))}static getVersion(){return`3.2.10(Worker: ${it.core&&it.core.worker||"Not Loaded"}, Wasm: ${it.core&&it.core.wasm||"Not Loaded"})`}static enableLogging(){O._onLog=console.log,ht._onLog=console.log}static disableLogging(){O._onLog=null,ht._onLog=null}static async cfd(t){return await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cfd",id:r,body:{count:t}})}))}}var lt,ct,ut,dt,ft,gt,mt,pt,_t,vt,yt;ht._bSupportDce4Module=-1,ht._bSupportIRTModule=-1,ht._versions=null,ht._workerName="core.worker.js",ht.browserInfo=N,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_NORMALIZED_IMAGE=16]="CRIT_NORMALIZED_IMAGE",t[t.CRIT_PARSED_RESULT=32]="CRIT_PARSED_RESULT"}(lt||(lt={})),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"}(ct||(ct={})),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_RESERVED_INFO_NOT_MATCH=-10040]="EC_RESERVED_INFO_NOT_MATCH",t[t.EC_LICENSE_KEY_NOT_MATCH=-10043]="EC_LICENSE_KEY_NOT_MATCH",t[t.EC_REQUEST_FAILED=-10044]="EC_REQUEST_FAILED",t[t.EC_LICENSE_INIT_FAILED=-10045]="EC_LICENSE_INIT_FAILED",t[t.EC_SET_MODE_ARGUMENT_ERROR=-10051]="EC_SET_MODE_ARGUMENT_ERROR",t[t.EC_LICENSE_CONTENT_INVALID=-10052]="EC_LICENSE_CONTENT_INVALID",t[t.EC_LICENSE_KEY_INVALID=-10053]="EC_LICENSE_KEY_INVALID",t[t.EC_LICENSE_DEVICE_RUNS_OUT=-10054]="EC_LICENSE_DEVICE_RUNS_OUT",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_NO_LICENSE=-2e4]="EC_NO_LICENSE",t[t.EC_HANDSHAKE_CODE_INVALID=-20001]="EC_HANDSHAKE_CODE_INVALID",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_LICENSE_INIT_SEQUENCE_FAILED=-20009]="EC_LICENSE_INIT_SEQUENCE_FAILED",t[t.EC_TRIAL_LICENSE=-20010]="EC_TRIAL_LICENSE",t[t.EC_FAILED_TO_REACH_DLS=-20200]="EC_FAILED_TO_REACH_DLS",t[t.EC_LICENSE_CACHE_USED=-20012]="EC_LICENSE_CACHE_USED",t[t.EC_BARCODE_FORMAT_INVALID=-30009]="EC_BARCODE_FORMAT_INVALID",t[t.EC_QR_LICENSE_INVALID=-30016]="EC_QR_LICENSE_INVALID",t[t.EC_1D_LICENSE_INVALID=-30017]="EC_1D_LICENSE_INVALID",t[t.EC_PDF417_LICENSE_INVALID=-30019]="EC_PDF417_LICENSE_INVALID",t[t.EC_DATAMATRIX_LICENSE_INVALID=-30020]="EC_DATAMATRIX_LICENSE_INVALID",t[t.EC_CUSTOM_MODULESIZE_INVALID=-30025]="EC_CUSTOM_MODULESIZE_INVALID",t[t.EC_AZTEC_LICENSE_INVALID=-30041]="EC_AZTEC_LICENSE_INVALID",t[t.EC_PATCHCODE_LICENSE_INVALID=-30046]="EC_PATCHCODE_LICENSE_INVALID",t[t.EC_POSTALCODE_LICENSE_INVALID=-30047]="EC_POSTALCODE_LICENSE_INVALID",t[t.EC_DPM_LICENSE_INVALID=-30048]="EC_DPM_LICENSE_INVALID",t[t.EC_FRAME_DECODING_THREAD_EXISTS=-30049]="EC_FRAME_DECODING_THREAD_EXISTS",t[t.EC_STOP_DECODING_THREAD_FAILED=-30050]="EC_STOP_DECODING_THREAD_FAILED",t[t.EC_MAXICODE_LICENSE_INVALID=-30057]="EC_MAXICODE_LICENSE_INVALID",t[t.EC_GS1_DATABAR_LICENSE_INVALID=-30058]="EC_GS1_DATABAR_LICENSE_INVALID",t[t.EC_GS1_COMPOSITE_LICENSE_INVALID=-30059]="EC_GS1_COMPOSITE_LICENSE_INVALID",t[t.EC_DOTCODE_LICENSE_INVALID=-30061]="EC_DOTCODE_LICENSE_INVALID",t[t.EC_PHARMACODE_LICENSE_INVALID=-30062]="EC_PHARMACODE_LICENSE_INVALID",t[t.EC_CHARACTER_MODEL_FILE_NOT_FOUND=-40100]="EC_CHARACTER_MODEL_FILE_NOT_FOUND",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_ZA_DL_LICENSE_INVALID=-90006]="EC_ZA_DL_LICENSE_INVALID",t[t.EC_AAMVA_DL_ID_LICENSE_INVALID=-90007]="EC_AAMVA_DL_ID_LICENSE_INVALID",t[t.EC_AADHAAR_LICENSE_INVALID=-90008]="EC_AADHAAR_LICENSE_INVALID",t[t.EC_MRTD_LICENSE_INVALID=-90009]="EC_MRTD_LICENSE_INVALID",t[t.EC_VIN_LICENSE_INVALID=-90010]="EC_VIN_LICENSE_INVALID",t[t.EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID=-90011]="EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID"}(ut||(ut={})),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"}(dt||(dt={})),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"}(ft||(ft={})),function(t){t[t.ITT_FILE_IMAGE=0]="ITT_FILE_IMAGE",t[t.ITT_VIDEO_FRAME=1]="ITT_VIDEO_FRAME"}(gt||(gt={})),function(t){t[t.PDFRM_VECTOR=1]="PDFRM_VECTOR",t[t.PDFRM_RASTER=2]="PDFRM_RASTER",t[t.PDFRM_REV=-2147483648]="PDFRM_REV"}(mt||(mt={})),function(t){t[t.RDS_RASTERIZED_PAGES=0]="RDS_RASTERIZED_PAGES",t[t.RDS_EXTRACTED_IMAGES=1]="RDS_EXTRACTED_IMAGES"}(pt||(pt={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=268435455]="IRUT_ALL"}(_t||(_t={})),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_NORMALIZED_IMAGE=6]="ROET_NORMALIZED_IMAGE",t[t.ROET_SOURCE_IMAGE=7]="ROET_SOURCE_IMAGE",t[t.ROET_TARGET_ROI=8]="ROET_TARGET_ROI"}(vt||(vt={})),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_NORMALIZATION=7]="ST_DOCUMENT_NORMALIZATION"}(yt||(yt={}));var wt=Object.freeze({__proto__:null,CoreModule:ht,get EnumBufferOverflowProtectionMode(){return r},get EnumCapturedResultItemType(){return lt},get EnumColourChannelUsageType(){return n},get EnumCornerType(){return ct},get EnumErrorCode(){return ut},get EnumGrayscaleEnhancementMode(){return dt},get EnumGrayscaleTransformationMode(){return ft},get EnumImagePixelFormat(){return s},get EnumImageTagType(){return gt},get EnumIntermediateResultUnitType(){return _t},get EnumPDFReadingMode(){return mt},get EnumRasterDataSource(){return pt},get EnumRegionObjectElementType(){return vt},get EnumSectionType(){return yt},ImageSourceAdapter:O,_isArc:t=>!(!c(t)||!l(t.x)||!l(t.y)||!l(t.radius)||t.radius<0||!l(t.startAngle)||!l(t.endAngle)),_isContour:t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&!t.points.some((t=>!m(t))),_isDSImageData:u,_isDSRect:d,_isImageTag:f,_isLineSegment:g,_isPoint:m,_isPolygon:p,_isQuad:_,_isRect:v,get bDebug(){return tt},bSupportBigInt:E,checkIsLink:function(t){return/^(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)|^[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?/.test(t)},compareVersion:w,doOrWaitAsyncDependency:z,engineResourcePaths:nt,getNextTaskID:q,innerVersions:it,loadWasm:at,mapAsyncDependency:H,mapPackageRegister:rt,mapTaskCallBack:J,newAsyncDependency:t=>{let e=H[t],i=!1;return e?e.isEmpty?e.task=()=>{}:i=!0:e=H[t]=new Y((()=>{})),{p:e,justWait:i}},get onLog(){return Q},requestResource:y,setBDebug:et,setOnLog:$,waitAsyncDependency:X,get worker(){return Z},workerAutoResources:ot}); -/*! - * Dynamsoft JavaScript Library - * @product Dynamsoft License JS Edition - * @website https://www.dynamsoft.com - * @copyright Copyright 2024, Dynamsoft Corporation - * @author Dynamsoft - * @version 3.2.10 - * @fileoverview Dynamsoft JavaScript Library for Core - * More info DL JS: https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/license/license-module.html - */const Et="undefined"==typeof self,Ct=Et?{}:self,Tt=(()=>{if(!Et&&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"./"})(),bt=t=>{if(null==t&&(t="./"),Et);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t},St=t=>t&&"object"==typeof t&&"function"==typeof t.then;class It extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(St(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,St(t)?e=t:"function"==typeof t&&(e=new Promise(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}}const xt=" is not allowed to change after `createInstance` or `loadWasm` is called.",At=!Et&&document.currentScript&&(document.currentScript.getAttribute("data-license")||document.currentScript.getAttribute("data-productKeys")||document.currentScript.getAttribute("data-licenseKey")||document.currentScript.getAttribute("data-handshakeCode")||document.currentScript.getAttribute("data-organizationID"))||"",Rt=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`license`"+xt);i._license=e};!Et&&document.currentScript&&document.currentScript.getAttribute("data-sessionPassword");const Ot=t=>{if(null==t)t=[];else{t=t instanceof Array?[...t]:[t];for(let e=0;e{const i=t;if(!i._pLoad.isEmpty)throw new Error("`licenseServer`"+xt);i._licenseServer=Ot(e)},Lt=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`deviceFriendlyName`"+xt);i._deviceFriendlyName=e||""};let Mt,Ft,Pt,kt,Bt;"undefined"!=typeof navigator&&(Mt=navigator,Ft=Mt.userAgent,Pt=Mt.platform,kt=Mt.mediaDevices),function(){if(!Et){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:Mt.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:Pt,search:"Win"},Mac:{str:Pt},Linux:{str:Pt}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||Ft,o=n.search||e,a=n.verStr||Ft,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||Ft,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=Ft.indexOf("Windows NT")&&(n="HarmonyOS"),Bt={browser:i,version:r,OS:n}}Et&&(Bt={browser:"ssr",version:0,OS:"ssr"})}(),"undefined"!=typeof WebAssembly&&Ft&&(!/Safari/.test(Ft)||/Chrome/.test(Ft)||/\(.+\s11_2_([2-6]).*\)/.test(Ft)),kt&&kt.getUserMedia,"Chrome"===Bt.browser&&Bt.version>66||"Safari"===Bt.browser&&Bt.version>13||"OPR"===Bt.browser&&Bt.version>43||"Edge"===Bt.browser&&Bt.version;const Nt=async()=>(at("license"),z("dynamsoft_inited",(async()=>{let{lt:t,l:e,ls:i,sp:r,rmk:n,cv:s}=((t,e=!1)=>{const i=t;if(i._pLoad.isEmpty){let r,n,s,o=i._license||"",a=JSON.parse(JSON.stringify(i._licenseServer)),h=i._sessionPassword,l=0;if(o.startsWith("t")||o.startsWith("f"))l=0;else if(0===o.length||o.startsWith("P")||o.startsWith("L")||o.startsWith("Y")||o.startsWith("A"))l=1;else{l=2;const e=o.indexOf(":");-1!=e&&(o=o.substring(e+1));const i=o.indexOf("?");if(-1!=i&&(n=o.substring(i+1),o=o.substring(0,i)),o.startsWith("DLC2"))l=0;else{if(o.startsWith("DLS2")){let e;try{let t=o.substring(4);t=atob(t),e=JSON.parse(t)}catch(t){throw new Error("Format Error: The license string you specified is invalid, please check to make sure it is correct.")}if(o=e.handshakeCode?e.handshakeCode:e.organizationID?e.organizationID:"","number"==typeof o&&(o=JSON.stringify(o)),0===a.length){let t=[];e.mainServerURL&&(t[0]=e.mainServerURL),e.standbyServerURL&&(t[1]=e.standbyServerURL),a=Ot(t)}!h&&e.sessionPassword&&(h=e.sessionPassword),r=e.remark}o&&"200001"!==o&&!o.startsWith("200001-")||(l=1)}}if(l&&(e||(Ct.crypto||(s="Please upgrade your browser to support online key."),Ct.crypto.subtle||(s="Require https to use online key in this browser."))),s){if(1!==l)throw new Error(s);l=0,console.warn(s),i._lastErrorCode=-1,i._lastErrorString=s}return 1===l&&(o="",console.warn("Applying for a public trial license ...")),{lt:l,l:o,ls:a,sp:h,rmk:r,cv:n}}throw new Error("Can't preprocess license again"+xt)})(jt),o=new It;jt._pLoad.task=o,(async()=>{try{await jt._pLoad}catch(t){}})();let a=q();J[a]=e=>{if(e.message&&jt._onAuthMessage){let t=jt._onAuthMessage(e.message);null!=t&&(e.message=t)}let i,r=!1;if(1===t&&(r=!0),e.success?(Q&&Q("init license success"),e.message&&console.warn(e.message),ht._bSupportIRTModule=e.bSupportIRTModule,ht._bSupportDce4Module=e.bSupportDce4Module,jt.bPassValidation=!0):(i=Error(e.message),e.stack&&(i.stack=e.stack),e.ltsErrorCode&&(i.ltsErrorCode=e.ltsErrorCode),r||111==e.ltsErrorCode&&-1!=e.message.toLowerCase().indexOf("trial license")&&(r=!0)),r){let t=nt.license;nt.rootDirectory&&(t=nt.rootDirectory+"/"+t),t=bt(t),(async(t,e,i)=>{if(!t._bNeverShowDialog)try{let r=await fetch(t.engineResourcePath+"dls.license.dialog.html");if(!r.ok)throw Error("Get license dialog fail. Network Error: "+r.statusText);let n=await r.text();if(!n.trim().startsWith("<"))throw Error("Get license dialog fail. Can't get valid HTMLElement.");let s=document.createElement("div");s.innerHTML=n;let o=[];for(let t=0;t{if(t==e.target){a.remove();for(let t of o)t.remove()}}));else if(!l&&t.classList.contains("dls-license-icon-close"))l=t,t.addEventListener("click",(()=>{a.remove();for(let t of o)t.remove()}));else if(!c&&t.classList.contains("dls-license-icon-error"))c=t,"error"!=e&&t.remove();else if(!u&&t.classList.contains("dls-license-icon-warn"))u=t,"warn"!=e&&t.remove();else if(!d&&t.classList.contains("dls-license-msg-content")){d=t;let e=i;for(;e;){let i=e.indexOf("["),r=e.indexOf("]",i),n=e.indexOf("(",r),s=e.indexOf(")",n);if(-1==i||-1==r||-1==n||-1==s){t.appendChild(new Text(e));break}i>0&&t.appendChild(new Text(e.substring(0,i)));let o=document.createElement("a"),a=e.substring(i+1,r);o.innerText=a;let h=e.substring(n+1,s);o.setAttribute("href",h),o.setAttribute("target","_blank"),t.appendChild(o),e=e.substring(s+1)}}document.body.appendChild(a)}catch(e){t._onLog&&t._onLog(e.message||e)}})({_bNeverShowDialog:jt._bNeverShowDialog,engineResourcePath:t,_onLog:Q},e.success?"warn":"error",e.message)}e.success?o.resolve(void 0):o.reject(i)},await X("worker"),Z.postMessage({type:"dynamsoft",body:{v:"3.2.10",brtk:!!t,bptk:1===t,l:e,os:Bt,fn:jt.deviceFriendlyName,ls:i,sp:r,rmk:n,cv:s},id:a}),jt.bCallInitLicense=!0,await o})));let Ut;rt.license={},rt.license.dynamsoft=Nt,rt.license.getAR=async()=>{{let t=H.dynamsoft_inited;t&&t.isRejected&&await t}return Z?new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success){delete i.success;{let t=jt.license;t&&(t.startsWith("t")||t.startsWith("f"))&&(i.pk=t)}if(Object.keys(i).length){if(i.lem){let t=Error(i.lem);t.ltsErrorCode=i.lec,delete i.lem,delete i.lec,i.ae=t}t(i)}else t(null)}else{let t=Error(i.message);i.stack&&(t.stack=i.stack),e(t)}},Z.postMessage({type:"getAR",id:i})})):null};class jt{static setLicenseServer(t){Dt(jt,t)}static get license(){return this._license}static set license(t){Rt(jt,t)}static get licenseServer(){return this._licenseServer}static set licenseServer(t){Dt(jt,t)}static get deviceFriendlyName(){return this._deviceFriendlyName}static set deviceFriendlyName(t){Lt(jt,t)}static initLicense(t,e){if(Rt(jt,t),jt.bCallInitLicense=!0,e)return Nt()}static setDeviceFriendlyName(t){Lt(jt,t)}static getDeviceFriendlyName(){return jt._deviceFriendlyName}static getDeviceUUID(){return(async()=>(await z("dynamsoft_uuid",(async()=>{await at();let t=new It,e=q();J[e]=e=>{if(e.success)t.resolve(e.uuid);else{const i=Error(e.message);e.stack&&(i.stack=e.stack),t.reject(i)}},Z.postMessage({type:"getDeviceUUID",id:e}),Ut=await t})),Ut))()}}jt._pLoad=new It,jt.bPassValidation=!1,jt.bCallInitLicense=!1,jt._license=At,jt._licenseServer=[],jt._deviceFriendlyName="",null==nt.license&&(nt.license=Tt),ot.license={wasm:!0},rt.license.LicenseManager=jt;const Gt="1.2.0";"string"!=typeof nt.std&&w(nt.std.version,Gt)<0&&(nt.std={version:Gt,path:bt(Tt+`../../dynamsoft-capture-vision-std@${Gt}/dist/`)});var Wt=Object.freeze({__proto__:null,LicenseManager:jt,LicenseModule:class{static getVersion(){return`3.2.10(Worker: ${it.license&&it.license.worker||"Not Loaded"}, Wasm: ${it.license&&it.license.wasm||"Not Loaded"})`}}}); -/*! - * Dynamsoft JavaScript Library - * @product Dynamsoft Capture Vision Router JS Edition - * @website http://www.dynamsoft.com - * @copyright Copyright 2024, Dynamsoft Corporation - * @author Dynamsoft - * @version "2.2.10" - * @fileoverview Dynamsoft JavaScript Library for Capture Vision - * More info on cvr JS: https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/capture-vision-router/capture-vision-router-module.html - */const Vt=t=>t&&"object"==typeof t&&"function"==typeof t.then;class Yt extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),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}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 Promise(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}}class Ht{constructor(){this.addResultReceiver=null,this.removeResultReceiver=null,this.getOriginalImage=null}}var Xt={onTaskResultsReceived:!1,onTaskResultsReceivedForDce:!1,onPredetectedRegionsReceived:!1,onLocalizedBarcodesReceived:!1,onDecodedBarcodesReceived:!1,onLocalizedTextLinesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onColourImageUnitReceived:!1,onScaledDownColourImageUnitReceived:!1,onGrayscaleImageUnitReceived:!1,onTransformedGrayscaleImageUnitReceived:!1,onEnhancedGrayscaleImageUnitReceived:!1,onBinaryImageUnitReceived:!1,onTextureDetectionResultUnitReceived:!1,onTextureRemovedGrayscaleImageUnitReceived:!1,onTextureRemovedBinaryImageUnitReceived:!1,onContoursUnitReceived:!1,onLineSegmentsUnitReceived:!1,onTextZonesUnitReceived:!1,onTextRemovedBinaryImageUnitReceived:!1,onLongLinesUnitReceived:!1,onCornersUnitReceived:!1,onCandidateQuadEdgesUnitReceived:!1,onCandidateBarcodeZonesUnitReceived:!1,onScaledUpBarcodeImageUnitReceived:!1,onDeformationResistedBarcodeImageUnitReceived:!1,onComplementedBarcodeImageUnitReceived:!1,onShortLinesUnitReceived:!1};const zt="undefined"==typeof self,Zt=(()=>{if(!zt&&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="./"),zt);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};var qt;null==nt.cvr&&(nt.cvr=Zt),ot.cvr={js:!0,wasm:!0,deps:["license","dip"]},rt.cvr={};const Jt="1.2.0";"string"!=typeof nt.std&&w(nt.std.version,Jt)<0&&(nt.std={version:Jt,path:Kt(Zt+`../../dynamsoft-capture-vision-std@${Jt}/dist/`)});const Qt="2.2.10";(!nt.dip||"string"!=typeof nt.dip&&w(nt.dip.version,Qt)<0)&&(nt.dip={version:Qt,path:Kt(Zt+`../../dynamsoft-image-processing@${Qt}/dist/`)});class $t{static getVersion(){return this._version}}var te,ee;function ie(t,e){if(t&&t.location){const i=t.location.points;for(let t of i)t.x=t.x/e,t.y=t.y/e;ie(t.referencedItem,e)}}$t._version=`2.2.10(Worker: ${null===(qt=it.cvr)||void 0===qt?void 0:qt.worker}, Wasm: loading...`,function(t){t[t.ISS_BUFFER_EMPTY=0]="ISS_BUFFER_EMPTY",t[t.ISS_EXHAUSTED=1]="ISS_EXHAUSTED"}(te||(te={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=134217727]="IRUT_ALL"}(ee||(ee={}));class re{constructor(){this.maxCvsSideLength=["iPhone","Android","HarmonyOS"].includes(ht.browserInfo.OS)?2048:4096,this._isa=null,this._dsImage=null,this._instanceID=void 0,this._bPauseScan=!0,this._bNeedOutputOriginalImage=!1,this._canvas=null,this._irrRegistryState=Xt,this._resultReceiverSet=new Set,this._isaStateListenerSet=new Set,this._resultFilterSet=new Set,this._intermediateResultReceiverSet=new Set,this._intermediateResultManager=null,this._templateName="Default",this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1,this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._minImageCaptureInterval=0,this._averageProcessintTimeArray=[],this._averageFetchImageTimeArray=[],this._currentSettings=null,this._averageTime=999,this._compressRate=0,this._dynamsoft=!1,this.captureInParallel=!0,this.bDestroyed=!1,this._singleFrameModeCallbackBind=this._singleFrameModeCallback.bind(this),this._promiseStartScan=null}get disposed(){return this.bDestroyed}static async createInstance(){if(!rt.license)throw Error("Module `license` is not existed.");await rt.license.dynamsoft(),await at(["cvr"]);const t=new re,e=new Yt;let i=q();return J[i]=async i=>{var r;if(i.success)t._instanceID=i.instanceID,t._currentSettings=JSON.parse(i.outputSettings),$t._version=`2.2.10(Worker: ${null===(r=it.cvr)||void 0===r?void 0:r.worker}, Wasm: ${i.version})`,0===ht.bSupportDce4Module&&(t._intermediateResultManager=t.getIntermediateResultManager(!0)),e.resolve(t);else{const t=Error(i.message);i.stack&&(t.stack=i.stack),e.reject(t)}},Z.postMessage({type:"cvr_createInstance",id:i}),e}async _singleFrameModeCallback(t){this._isa.getCameraView().setScanLaserVisible(!0);for(let e of this._resultReceiverSet)this._bNeedOutputOriginalImage&&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},i=await this.capture(e,this._templateName);i.originalImageTag=t.tag;for(let t of this._resultReceiverSet)t.isDce&&t.onCapturedResultReceived(i,{isDetectVerifyOpen:!1,isNormalizeVerifyOpen:!1,isBarcodeVerifyOpen:!1,isLabelVerifyOpen:!1});const r={originalImageHashId:i.originalImageHashId,originalImageTag:i.originalImageTag,errorCode:i.errorCode,errorString:i.errorString};for(let e of this._resultReceiverSet)if(e.onDecodedBarcodesReceived&&i.barcodeResultItems&&e.onDecodedBarcodesReceived(Object.assign(Object.assign({},r),{barcodeResultItems:i.barcodeResultItems})),e.onRecognizedTextLinesReceived&&i.textLineResultItems&&e.onRecognizedTextLinesReceived(Object.assign(Object.assign({},r),{textLineResultItems:i.textLineResultItems})),e.onDetectedQuadsReceived&&i.detectedQuadResultItems&&e.onDetectedQuadsReceived(Object.assign(Object.assign({},r),{detectedQuadResultItems:i.detectedQuadResultItems})),e.onNormalizedImagesReceived&&i.normalizedImageResultItems&&e.onNormalizedImagesReceived(Object.assign(Object.assign({},r),{normalizedImageResultItems:i.normalizedImageResultItems})),e.onParsedResultsReceived&&i.parsedResultItems&&e.onParsedResultsReceived(Object.assign(Object.assign({},r),{parsedResultItems:i.parsedResultItems})),e.onCapturedResultReceived&&!e.isDce){if(this._bNeedOutputOriginalImage){const e=i.items.findIndex((t=>1===t.type));-1!==e&&(i.items[e].imageData=t)}e.onCapturedResultReceived(i)}}setInput(t){if(this._checkIsDisposed(),t){if(this._isa=t,t.isCameraEnhancer){this._intermediateResultManager&&(this._isa._intermediateResultReceiver.isDce=!0,this._intermediateResultManager.addResultReceiver(this._isa._intermediateResultReceiver));const t=this._isa.getCameraView();if(t){const e=t._capturedResultReceiver;e.isDce=!0,this._resultReceiverSet.add(e)}}}else this._isa=null}getInput(){return this._isa}addImageSourceStateListener(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid ISA state listener.");t&&Object.keys(t)&&this._isaStateListenerSet.add(t)}removeImageSourceStateListener(t){return this._checkIsDisposed(),this._isaStateListenerSet.delete(t)}addResultReceiver(t){if(this._checkIsDisposed(),"object"!=typeof t)throw new Error("Invalid receiver.");t&&Object.keys(t).length&&(this._resultReceiverSet.add(t),this._setCrrRegistry())}removeResultReceiver(t){this._checkIsDisposed(),this._resultReceiverSet.delete(t),this._setCrrRegistry()}async _setCrrRegistry(){const t={onCapturedResultReceived:!1,onDecodedBarcodesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onParsedResultsReceived:!1};for(let e of this._resultReceiverSet)e.isDce||(t.onCapturedResultReceived=!!e.onCapturedResultReceived,t.onDecodedBarcodesReceived=!!e.onDecodedBarcodesReceived,t.onRecognizedTextLinesReceived=!!e.onRecognizedTextLinesReceived,t.onDetectedQuadsReceived=!!e.onDetectedQuadsReceived,t.onNormalizedImagesReceived=!!e.onNormalizedImagesReceived,t.onParsedResultsReceived=!!e.onParsedResultsReceived);const e=new Yt;let i=q();return J[i]=async t=>{if(t.success)e.resolve();else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject()}},Z.postMessage({type:"cvr_setCrrRegistry",id:i,instanceID:this._instanceID,body:{receiver:JSON.stringify(t)}}),e}async addResultFilter(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid filter.");if(t&&Object.keys(t)){this._resultFilterSet.add(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}}async removeResultFilter(t){this._checkIsDisposed(),this._resultFilterSet.delete(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}_handleFilterSwitch(){this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1;for(let t of this._resultFilterSet)t.isResultCrossVerificationEnabled(lt.CRIT_BARCODE)&&(this._bOpenBarcodeVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_TEXT_LINE)&&(this._bOpenLabelVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_DETECTED_QUAD)&&(this._bOpenDetectVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_NORMALIZED_IMAGE)&&(this._bOpenNormalizeVerify=!0)}async startCapturing(t="Default"){if(this._checkIsDisposed(),!this._bPauseScan)return;if(!this._isa)throw new Error("'ImageSourceAdapter' is not set. call 'setInput' before 'startCapturing'");const e=await this.containsTask(t);return await at(e),this._isa.isCameraEnhancer&&(e.includes("ddn")?this._isa.setPixelFormat(s.IPF_ABGR_8888):this._isa.setPixelFormat(s.IPF_GRAYSCALED)),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode?(this._templateName=t,void this._isa.on("singleFrameAcquired",this._singleFrameModeCallbackBind)):(this._isa.getColourChannelUsageType()===n.CCUT_AUTO&&this._isa.setColourChannelUsageType(e.includes("ddn")?n.CCUT_FULL_CHANNEL:n.CCUT_Y_CHANNEL_ONLY),this._promiseStartScan&&this._promiseStartScan.isPending?this._promiseStartScan:(this._promiseStartScan=new Yt(((e,i)=>{if(this.disposed)return;let r=q();J[r]=async r=>{if(this._promiseStartScan&&!this._promiseStartScan.isFulfilled){if(!r.success){let t=new Error(r.message);return t.stack=r.stack+"\n"+t.stack,i(t)}for(let t of this._resultFilterSet)await this.addResultFilter(t);this._bPauseScan=!1,this._bNeedOutputOriginalImage=r.bNeedOutputOriginalImage,this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((async()=>{-1!==this._minImageCaptureInterval&&this._isa.startFetching(),this._loopReadVideo(t),e()}),0),this._isa.isCameraEnhancer&&this._isa.getCameraView().setScanLaserVisible(!0)}},Z.postMessage({type:"cvr_startCapturing",id:r,instanceID:this._instanceID,body:{templateName:t}})})),await this._promiseStartScan))}stopCapturing(){this._checkIsDisposed(),this._isa&&(this._isa.isCameraEnhancer&&(this._isa.getCameraView().setScanLaserVisible(!1),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode)?this._isa.off("singleFrameAcquired",this._singleFrameModeCallbackBind):(this._isa.stopFetching(),this._clearVerifyList(),this._averageProcessintTimeArray=[],this._averageTime=999,this._bPauseScan=!0,this._promiseStartScan=null,this._isa.setColourChannelUsageType(n.CCUT_AUTO)))}async _clearVerifyList(){let t=q();const e=new Yt;return J[t]=async t=>{if(t.success)return e.resolve();{let i=new Error(t.message);return i.stack=t.stack+"\n"+i.stack,e.reject(i)}},Z.postMessage({type:"cvr_clearVerifyList",id:t,instanceID:this._instanceID}),e}async _getIntermediateResult(){this._checkIsDisposed();let t=q();const e=new Yt;return J[t]=async t=>{if(t.success)e.resolve(t.result);else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject(i)}},Z.postMessage({type:"cvr_getIntermediateResult",id:t,instanceID:this._instanceID}),e}async containsTask(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(JSON.parse(t.tasks));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_containsTask",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async _loopReadVideo(t){if(this._dynamsoft=!0,this.disposed||this._bPauseScan)return;if(this._isa.isBufferEmpty())if(this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(te.ISS_BUFFER_EMPTY);else if(!this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(te.ISS_EXHAUSTED);if(-1===this._minImageCaptureInterval||this._isa.isBufferEmpty())try{this._isa.isBufferEmpty()&&re._onLog&&re._onLog("buffer is empty so fetch image"),re._onLog&&re._onLog(`DCE: start fetching a frame: ${Date.now()}`),this._dsImage=this._isa.fetchImage(),re._onLog&&re._onLog(`DCE: finish fetching a frame: ${Date.now()}`),this._isa.setImageFetchInterval(this._averageTime)}catch(e){return void this._reRunCurrnetFunc(t)}else if(this._isa.setImageFetchInterval(this._averageTime-(this._dsImage&&this._dsImage.tag?this._dsImage.tag.timeSpent:0)),this._dsImage=this._isa.getImage(),this._dsImage.tag&&Date.now()-this._dsImage.tag.timeStamp>200)return void this._reRunCurrnetFunc(t);if(!this._dsImage)return void this._reRunCurrnetFunc(t);for(let t of this._resultReceiverSet)this._bNeedOutputOriginalImage&&t.onOriginalImageResultReceived&&t.onOriginalImageResultReceived({imageData:this._dsImage});const e=Date.now();this._captureDsimage(this._dsImage,t).then((async i=>{if(re._onLog&&re._onLog("no js handle time: "+(Date.now()-e)),this._bPauseScan)return void this._reRunCurrnetFunc(t);i.originalImageTag=this._dsImage.tag?this._dsImage.tag:null;for(let t of this._resultReceiverSet)if(t.isDce){const e=Date.now();if(t.onCapturedResultReceived(i,{isDetectVerifyOpen:this._bOpenDetectVerify,isNormalizeVerifyOpen:this._bOpenNormalizeVerify,isBarcodeVerifyOpen:this._bOpenBarcodeVerify,isLabelVerifyOpen:this._bOpenLabelVerify}),re._onLog){const t=Date.now()-e;t>10&&re._onLog(`draw result time: ${t}`)}}const r={originalImageHashId:i.originalImageHashId,originalImageTag:i.originalImageTag,errorCode:i.errorCode,errorString:i.errorString};for(let t of this._resultReceiverSet)t.onDecodedBarcodesReceived&&i.barcodeResultItems&&t.onDecodedBarcodesReceived(Object.assign(Object.assign({},r),{barcodeResultItems:i.barcodeResultItems.filter((t=>!t.isFilter))})),t.onRecognizedTextLinesReceived&&i.textLineResultItems&&t.onRecognizedTextLinesReceived(Object.assign(Object.assign({},r),{textLineResultItems:i.textLineResultItems.filter((t=>!t.isFilter))})),t.onDetectedQuadsReceived&&i.detectedQuadResultItems&&t.onDetectedQuadsReceived(Object.assign(Object.assign({},r),{detectedQuadResultItems:i.detectedQuadResultItems.filter((t=>!t.isFilter))})),t.onNormalizedImagesReceived&&i.normalizedImageResultItems&&t.onNormalizedImagesReceived(Object.assign(Object.assign({},r),{normalizedImageResultItems:i.normalizedImageResultItems.filter((t=>!t.isFilter))})),t.onParsedResultsReceived&&i.parsedResultItems&&t.onParsedResultsReceived(Object.assign(Object.assign({},r),{parsedResultItems:i.parsedResultItems.filter((t=>!t.isFilter))})),t.onCapturedResultReceived&&!t.isDce&&(i.items=i.items.filter((t=>!t.isFilter)),i.barcodeResultItems&&(i.barcodeResultItems=i.barcodeResultItems.filter((t=>!t.isFilter))),i.textLineResultItems&&(i.textLineResultItems=i.textLineResultItems.filter((t=>!t.isFilter))),i.detectedQuadResultItems&&(i.detectedQuadResultItems=i.detectedQuadResultItems.filter((t=>!t.isFilter))),i.normalizedImageResultItems&&(i.normalizedImageResultItems=i.normalizedImageResultItems.filter((t=>!t.isFilter))),i.parsedResultItems&&(i.parsedResultItems=i.parsedResultItems.filter((t=>!t.isFilter))),t.onCapturedResultReceived(i));const n=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()-e),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,re._onLog&&(re._onLog(`minImageCaptureInterval: ${this._minImageCaptureInterval}`),re._onLog(`averageProcessintTimeArray: ${this._averageProcessintTimeArray}`),re._onLog(`averageFetchImageTimeArray: ${this._averageFetchImageTimeArray}`),re._onLog(`averageTime: ${this._averageTime}`))),re._onLog){const t=Date.now()-n;t>10&&re._onLog(`fetch image calculate time: ${t}`)}re._onLog&&re._onLog(`time finish decode: ${Date.now()}`),re._onLog&&re._onLog("main time: "+(Date.now()-e)),re._onLog&&re._onLog("===================================================="),this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._minImageCaptureInterval>0&&this._minImageCaptureInterval>=this._averageTime?this._loopReadVideoTimeoutId=setTimeout((()=>{this._loopReadVideo(t)}),this._minImageCaptureInterval-this._averageTime):this._loopReadVideoTimeoutId=setTimeout((()=>{this._loopReadVideo(t)}),Math.max(this._minImageCaptureInterval,0))})).catch((e=>{this._isa.stopFetching(),this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._isa.startFetching(),this._loopReadVideo(t)}),Math.max(this._minImageCaptureInterval,1e3)),"platform error"!==e.message&&setTimeout((()=>{throw e}),0)}))}_reRunCurrnetFunc(t){this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._loopReadVideo(t)}),0)}async capture(t,e="Default"){this._checkIsDisposed();const i=await this.containsTask(e);let r;if(await at(i),this._dynamsoft=!1,u(t))r=await this._captureDsimage(t,e);else if("string"==typeof t)r="data:image/"==t.substring(0,11)?await this._captureBase64(t,e):await this._captureUrl(t,e);else if(t instanceof Blob)r=await this._captureBlob(t,e);else if(t instanceof HTMLImageElement)r=await this._captureImage(t,e);else if(t instanceof HTMLCanvasElement)r=await this._captureCanvas(t,e);else{if(!(t instanceof HTMLVideoElement))throw new TypeError("'capture(imageOrFile, templateName)': Type of 'imageOrFile' should be 'DSImageData', 'Url', 'Base64', 'Blob', 'HTMLImageElement', 'HTMLCanvasElement', 'HTMLVideoElement'.");r=await this._captureVideo(t,e)}return r}async _captureDsimage(t,e){return await this._captureInWorker(t,e)}async _captureUrl(t,e){let i=await y(t,"blob");return await this._captureBlob(i,e)}async _captureBase64(t,e){t=t.substring(t.indexOf(",")+1);let i=atob(t),r=i.length,n=new Uint8Array(r);for(;r--;)n[r]=i.charCodeAt(r);return await this._captureBlob(new Blob([n]),e)}async _captureBlob(t,e){let i=null,r=null;if("undefined"!=typeof createImageBitmap)try{i=await createImageBitmap(t)}catch(t){}i||(r=await async function(t){return await new Promise(((e,i)=>{let r=URL.createObjectURL(t),n=new Image;n.src=r,n.onload=()=>{URL.revokeObjectURL(n.dbrObjUrl),e(n)},n.onerror=t=>{i(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}}))}(t));let n=await this._captureImage(i||r,e);return i&&i.close(),n}async _captureImage(t,e){let i,r,n=t instanceof HTMLImageElement?t.naturalWidth:t.width,s=t instanceof HTMLImageElement?t.naturalHeight:t.height,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),t.dbrObjUrl&&URL.revokeObjectURL(t.dbrObjUrl),await this._captureCanvas(a,e)}async _captureCanvas(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";if([t.width,t.height].includes(0))throw Error("The width or height of the 'canvas' is 0.");const i=t.ctx2d||t.getContext("2d",{willReadFrequently:!0}),r={bytes:Uint8Array.from(i.getImageData(0,0,t.width,t.height).data),width:t.width,height:t.height,stride:4*t.width,format:10};return await this._captureInWorker(r,e)}async _captureVideo(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";let i,r,n=t.videoWidth,s=t.videoHeight,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),await this._captureCanvas(a,e)}async _captureInWorker(t,e){const{bytes:i,width:r,height:n,stride:s,format:o}=t;let a=q();const h=new Yt;return J[a]=async e=>{var i,r;if(!e.success){let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,h.reject(t)}{const n=Date.now();re._onLog&&(re._onLog(`get result time from worker: ${n}`),re._onLog("worker to main time consume: "+(n-e.workerReturnMsgTime)));try{const n=e.captureResult;t.bytes=e.bytes;for(let e of n.items)0!==this._compressRate&&ie(e,this._compressRate),e.type===lt.CRIT_ORIGINAL_IMAGE?e.imageData=t:e.type===lt.CRIT_NORMALIZED_IMAGE?null===(i=rt.ddn)||void 0===i||i.handleNormalizedImageResultItem(e):e.type===lt.CRIT_PARSED_RESULT&&(null===(r=rt.dcp)||void 0===r||r.handleParsedResultItem(e));if(this._dynamsoft)for(let t of this._resultFilterSet)t.onDecodedBarcodesReceived(n.items),t.onRecognizedTextLinesReceived(n.items),t.onDetectedQuadsReceived(n.items),t.onNormalizedImagesReceived(n.items);const s=function(t){const e={barcodeResultItems:[],textLineResultItems:[],detectedQuadResultItems:[],normalizedImageResultItems:[],parsedResultItems:[]};return t.items.forEach((t=>{t.type===lt.CRIT_BARCODE?e.barcodeResultItems.push(t):t.type===lt.CRIT_TEXT_LINE?e.textLineResultItems.push(t):t.type===lt.CRIT_DETECTED_QUAD?e.detectedQuadResultItems.push(t):t.type===lt.CRIT_NORMALIZED_IMAGE?e.normalizedImageResultItems.push(t):t.type===lt.CRIT_PARSED_RESULT&&e.parsedResultItems.push(t)})),e}(n);s.barcodeResultItems.length&&(n.barcodeResultItems=s.barcodeResultItems),s.textLineResultItems.length&&(n.textLineResultItems=s.textLineResultItems),s.detectedQuadResultItems.length&&(n.detectedQuadResultItems=s.detectedQuadResultItems),s.normalizedImageResultItems.length&&(n.normalizedImageResultItems=s.normalizedImageResultItems),s.parsedResultItems.length&&(n.parsedResultItems=s.parsedResultItems);const o=n.intermediateResult;if(o){let e=0;for(let i of this._intermediateResultReceiverSet){e++;for(let r of o){if("onTaskResultsReceived"===r.info.callbackName){for(let e of r.intermediateResultUnits)e.originalImageTag=t.tag?t.tag:null;i[r.info.callbackName]&&i[r.info.callbackName]({intermediateResultUnits:r.intermediateResultUnits},r.info)}else i[r.info.callbackName]&&i[r.info.callbackName](r.result,r.info);e===this._intermediateResultReceiverSet.size&&delete r.info.callbackName}}}return n&&n.intermediateResult&&delete n.intermediateResult,this._compressRate=0,h.resolve(n)}catch(t){return h.reject(t)}}},re._onLog&&re._onLog(`send buffer to worker: ${Date.now()}`),Z.postMessage({type:"cvr_capture",id:a,instanceID:this._instanceID,body:{bytes:i,width:r,height:n,stride:s,format:o,templateName:e||"",dynamsoft:this._dynamsoft}},[i.buffer]),h}async initSettings(t){return this._checkIsDisposed(),t&&["string","object"].includes(typeof t)?("string"==typeof t?t.startsWith("{")?this._currentSettings=JSON.parse(t):t=await y(t,"text"):"object"==typeof t&&(this._currentSettings=t,t=JSON.stringify(t)),await new Promise(((e,i)=>{let r=q();J[r]=async r=>{if(r.success){const n=JSON.parse(r.response);if(0!==n.exception){let t=new Error(n.description?n.description:"Init Settings Failed.");return t.errorCode=n.exception,i(t)}let s=[],o=JSON.parse(t).CaptureVisionTemplates;for(let t=0;t{let r=q();J[r]=async t=>{if(t.success){const r=JSON.parse(t.settings);if(0!==r.errorCode){let t=new Error(r.errorString);return t.errorCode=r.errorCode,i(t)}return delete r.errorCode,delete r.errorString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_outputSettings",id:r,instanceID:this._instanceID,body:{templateName:t||"Default"}})}))}async outputSettingsToFile(t,e,i){const r=await this.outputSettings(t),n=new Blob([JSON.stringify(r,null,2,(function(t,e){return e instanceof Array?JSON.stringify(e):e}),2)],{type:"application/json"});if(i){const t=document.createElement("a");t.href=URL.createObjectURL(n),e.endsWith(".json")&&(e=e.replace(".json","")),t.download=`${e}.json`,t.onclick=()=>{setTimeout((()=>{URL.revokeObjectURL(t.href)}),500)},t.click()}return n}async getSimplifiedSettings(t="Default"){this._checkIsDisposed();const e=await this.containsTask(t);return await at(e),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success){const r=JSON.parse(t.settings,((t,e)=>E&&"barcodeFormatIds"===t?BigInt(e):e));if(r.minImageCaptureInterval=this._minImageCaptureInterval,0!==r.code){let t=new Error(r.codeString);return t.errorCode=r.errorCode,i(t)}return delete r.code,delete r.codeString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_getSimplifiedSettings",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async updateSettings(t,e){this._checkIsDisposed();const i=await this.containsTask(t);return await at(i),await new Promise(((i,r)=>{let n=q();J[n]=async t=>{if(t.success){const n=JSON.parse(t.response);if(e.minImageCaptureInterval&&e.minImageCaptureInterval>=-1&&(this._minImageCaptureInterval=e.minImageCaptureInterval),this._bNeedOutputOriginalImage=t.bNeedOutputOriginalImage,0!==n.exception){let t=new Error(n.description?n.description:"Update Settings Failed.");return t.errorCode=n.exception,r(t)}return this._currentSettings=await this.outputSettings("*"),i(n)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,r(e)}},Z.postMessage({type:"cvr_updateSettings",id:n,instanceID:this._instanceID,body:{settings:e,templateName:t}})}))}async resetSettings(){return this._checkIsDisposed(),await new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success){const r=JSON.parse(i.response);if(0!==r.exception){let t=new Error(r.description?r.description:"Reset Settings Failed.");return t.errorCode=r.exception,e(t)}return this._currentSettings=await this.outputSettings("*"),t(r)}{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Z.postMessage({type:"cvr_resetSettings",id:i,instanceID:this._instanceID})}))}getIntermediateResultManager(t){if(this._checkIsDisposed(),!t&&0!==ht.bSupportIRTModule)throw new Error("The current license does not support the use of intermediate results.");return this._intermediateResultManager||(this._intermediateResultManager=new Ht,this._intermediateResultManager.addResultReceiver=async t=>{if("object"!=typeof t)throw new Error("Invalid receiver.");this._intermediateResultReceiverSet.add(t),this._handleIntermediateResultReceiver();let e=-1,i={};if(!t.isDce){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(async()=>await new Promise(((t,r)=>{let n=q();J[n]=async e=>{if(e.success)return t();{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,r(t)}},Z.postMessage({type:"cvr_setIrrRegistry",id:n,instanceID:this._instanceID,body:{receiverObj:this._irrRegistryState,observedResultUnitTypes:String(e),observedTaskMap:i}})})))()},this._intermediateResultManager.removeResultReceiver=async t=>(this._intermediateResultReceiverSet.delete(t),this._handleIntermediateResultReceiver(),await new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success)return t();{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Z.postMessage({type:"cvr_setIrrRegistry",id:i,instanceID:this._instanceID,body:{receiverObj:this._irrRegistryState}})}))),this._intermediateResultManager.getOriginalImage=()=>this._dsImage),this._intermediateResultManager}_handleIntermediateResultReceiver(){for(let t in this._irrRegistryState)this._irrRegistryState[t]=!1;for(let t of this._intermediateResultReceiverSet)if(t.isDce)this._irrRegistryState.onTaskResultsReceivedForDce=!0;else for(let e in t)this._irrRegistryState[e]||(this._irrRegistryState[e]=!!t[e])}contains(t,e){return function(t,e){let i=e.x,r=e.y,n=t[0].x,s=t[0].y,o=t[1].x,a=t[1].y,h=t[2].x,l=t[2].y,c=t[3].x,u=t[3].y,d=p(i,r,n,s,o,a),f=p(i,r,o,a,h,l),g=p(i,r,h,l,c,u),m=p(i,r,c,u,n,s);function p(t,e,i,r,n,s){return(t-i)*(s-r)-(e-r)*(n-i)}return d>=0&&f>=0&&g>=0&&m>=0||d<=0&&f<=0&&g<=0&&m<=0}(t,e)}async parseRequiredResources(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(JSON.parse(t.resources));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_parseRequiredResources",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async dispose(){this._checkIsDisposed(),this._promiseStartScan&&this.stopCapturing(),this._isa=null,this._resultReceiverSet.clear(),this._isaStateListenerSet.clear(),this._resultFilterSet.clear(),this.bDestroyed=!0;let t=q();J[t]=t=>{if(!t.success){let e=new Error(t.message);throw e.stack=t.stack+"\n"+e.stack,e}},Z.postMessage({type:"cvr_dispose",id:t,instanceID:this._instanceID})}async _enableResultCrossVerification(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_enableResultCrossVerification",id:r,instanceID:this._instanceID,body:{verificationEnabled:t}})}))}async _enableResultDeduplication(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_enableResultDeduplication",id:r,instanceID:this._instanceID,body:{duplicateFilterEnabled:t}})}))}async _setDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_setDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{duplicateForgetTime:t}})}))}async _getDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.time);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_getDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{type:t}})}))}async _setThresholdValue(t,e,i){return await at("ddn"),await new Promise(((r,n)=>{let s=q();J[s]=async t=>{if(t.success)return r();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,n(e)}},Z.postMessage({type:"ddn_setThresholdValue",id:s,instanceID:this._instanceID,body:{threshold:t,leftLimit:e,rightLimit:i}})}))}_checkIsDisposed(){if(this.disposed)throw new Error('"CaptureVisionRouter" instance has been disposed')}}var ne=Object.freeze({__proto__:null,CaptureVisionRouter:re,CaptureVisionRouterModule:$t,CapturedResultReceiver:class{constructor(){this.onCapturedResultReceived=null,this.onOriginalImageResultReceived=null}},get EnumImageSourceState(){return te},IntermediateResultManager:Ht,IntermediateResultReceiver:class{constructor(){this._observedResultUnitTypes=_t.IRUT_ALL,this._observedTaskMap=new Map,this._parameters={setObservedResultUnitTypes:t=>{this._observedResultUnitTypes=t},getObservedResultUnitTypes:()=>this._observedResultUnitTypes,isResultUnitTypeObserved:t=>!!(t&this._observedResultUnitTypes),addObservedTask:t=>{this._observedTaskMap.set(t,!0)},removeObservedTask:t=>{this._observedTaskMap.set(t,!1)},isTaskObserved:t=>0===this._observedTaskMap.size||!!this._observedTaskMap.get(t)},this.onTaskResultsReceived=null,this.onPredetectedRegionsReceived=null,this.onColourImageUnitReceived=null,this.onScaledDownColourImageUnitReceived=null,this.onGrayscaleImageUnitReceived=null,this.onTransformedGrayscaleImageUnitReceived=null,this.onEnhancedGrayscaleImageUnitReceived=null,this.onBinaryImageUnitReceived=null,this.onTextureDetectionResultUnitReceived=null,this.onTextureRemovedGrayscaleImageUnitReceived=null,this.onTextureRemovedBinaryImageUnitReceived=null,this.onContoursUnitReceived=null,this.onLineSegmentsUnitReceived=null,this.onTextZonesUnitReceived=null,this.onTextRemovedBinaryImageUnitReceived=null,this.onShortLinesUnitReceived=null}getObservationParameters(){return this._parameters}}}); -/*! - * Dynamsoft JavaScript Library - * @product Dynamsoft Camera Enhancer JS Edition - * @website https://www.dynamsoft.com - * @copyright Copyright 2024, Dynamsoft Corporation - * @author Dynamsoft - * @version 4.0.2 - * @fileoverview Dynamsoft JavaScript Library for Camera Enhancer - * More info on DCE JS: https://www.dynamsoft.com/camera-enhancer/docs/programming/javascript/?ver=latest - */const se="undefined"==typeof self,oe=(()=>{if(!se&&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"./"})();null==nt.dce&&(nt.dce=oe),ot.dce={wasm:!1,js:!1},rt.dce={};function ae(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function he(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}let le,ce,ue,de,fe;"function"==typeof SuppressedError&&SuppressedError,"undefined"!=typeof navigator&&(le=navigator,ce=le.userAgent,ue=le.platform,de=le.mediaDevices),function(){if(!se){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:le.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:ue,search:"Win"},Mac:{str:ue},Linux:{str:ue}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||ce,o=n.search||e,a=n.verStr||ce,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||ce,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=ce.indexOf("Windows NT")&&(n="HarmonyOS"),fe={browser:i,version:r,OS:n}}se&&(fe={browser:"ssr",version:0,OS:"ssr"})}();const ge="undefined"!=typeof WebAssembly&&ce&&!(/Safari/.test(ce)&&!/Chrome/.test(ce)&&/\(.+\s11_2_([2-6]).*\)/.test(ce)),me=!("undefined"==typeof Worker),pe=!(!de||!de.getUserMedia),_e=async()=>{let t=!1;if(pe)try{(await de.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===fe.browser&&fe.version>66||"Safari"===fe.browser&&fe.version>13||"OPR"===fe.browser&&fe.version>43||"Edge"===fe.browser&&fe.version;var ve={653:(t,e,i)=>{var r,n,s,o,a,h,l,c,u,d,f,g,m,p,_,v,y,w,E,C,T,b=b||{version:"5.2.1"};if(e.fabric=b,"undefined"!=typeof document&&"undefined"!=typeof window)document instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document)?b.document=document:b.document=document.implementation.createHTMLDocument(""),b.window=window;else{var S=new(i(192).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;b.document=S.document,b.jsdomImplForWrapper=i(898).implForWrapper,b.nodeCanvas=i(245).Canvas,b.window=S,DOMParser=b.window.DOMParser}function I(t,e){var i=t.canvas,r=e.targetCanvas,n=r.getContext("2d");n.translate(0,r.height),n.scale(1,-1);var s=i.height-r.height;n.drawImage(i,0,s,r.width,r.height,0,0,r.width,r.height)}function x(t,e){var i=e.targetCanvas.getContext("2d"),r=e.destinationWidth,n=e.destinationHeight,s=r*n*4,o=new Uint8Array(this.imageBuffer,0,s),a=new Uint8ClampedArray(this.imageBuffer,0,s);t.readPixels(0,0,r,n,t.RGBA,t.UNSIGNED_BYTE,o);var h=new ImageData(a,r,n);i.putImageData(h,0,0)}b.isTouchSupported="ontouchstart"in b.window||"ontouchstart"in b.document||b.window&&b.window.navigator&&b.window.navigator.maxTouchPoints>0,b.isLikelyNode="undefined"!=typeof Buffer&&"undefined"==typeof window,b.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],b.DPI=96,b.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",b.commaWsp="(?:\\s+,?\\s*|,\\s*)",b.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,b.reNonWord=/[ \n\.,;!\?\-]/,b.fontPaths={},b.iMatrix=[1,0,0,1,0,0],b.svgNS="http://www.w3.org/2000/svg",b.perfLimitSizeTotal=2097152,b.maxCacheSideLimit=4096,b.minCacheSideLimit=256,b.charWidthsCache={},b.textureSize=2048,b.disableStyleCopyPaste=!1,b.enableGLFiltering=!0,b.devicePixelRatio=b.window.devicePixelRatio||b.window.webkitDevicePixelRatio||b.window.mozDevicePixelRatio||1,b.browserShadowBlurConstant=1,b.arcToSegmentsCache={},b.boundsOfCurveCache={},b.cachesBoundsOfCurve=!0,b.forceGLPutImageData=!1,b.initFilterBackend=function(){return b.enableGLFiltering&&b.isWebglSupported&&b.isWebglSupported(b.textureSize)?(console.log("max texture size: "+b.maxTextureSize),new b.WebglFilterBackend({tileSize:b.textureSize})):b.Canvas2dFilterBackend?new b.Canvas2dFilterBackend:void 0},"undefined"!=typeof document&&"undefined"!=typeof window&&(window.fabric=b),function(){function t(t,e){if(this.__eventListeners[t]){var i=this.__eventListeners[t];e?i[i.indexOf(e)]=!1:b.util.array.fill(i,!1)}}function e(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);this.on(t,i)}b.Observable={fire:function(t,e){if(!this.__eventListeners)return this;var i=this.__eventListeners[t];if(!i)return this;for(var r=0,n=i.length;r-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))},complexity:function(){return this._objects.reduce((function(t,e){return t+(e.complexity?e.complexity():0)}),0)}},b.CommonMethods={_setOptions:function(t){for(var e in t)this.set(e,t[e])},_initGradient:function(t,e){!t||!t.colorStops||t instanceof b.Gradient||this.set(e,new b.Gradient(t))},_initPattern:function(t,e,i){!t||!t.source||t instanceof b.Pattern?i&&i():this.set(e,new b.Pattern(t,i))},_setObject:function(t){for(var e in t)this._set(e,t[e])},set:function(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this},_set:function(t,e){this[t]=e},toggle:function(t){var e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this},get:function(t){return this[t]}},r=e,n=Math.sqrt,s=Math.atan2,o=Math.pow,a=Math.PI/180,h=Math.PI/2,b.util={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/h){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/h){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*a},radiansToDegrees:function(t){return t/a},rotatePoint:function(t,e,i){var r=new b.Point(t.x-e.x,t.y-e.y),n=b.util.rotateVector(r,i);return new b.Point(n.x,n.y).addEquals(e)},rotateVector:function(t,e){var i=b.util.sin(e),r=b.util.cos(e);return{x:t.x*r-t.y*i,y:t.x*i+t.y*r}},createVector:function(t,e){return new b.Point(e.x-t.x,e.y-t.y)},calcAngleBetweenVectors:function(t,e){return Math.acos((t.x*e.x+t.y*e.y)/(Math.hypot(t.x,t.y)*Math.hypot(e.x,e.y)))},getHatVector:function(t){return new b.Point(t.x,t.y).multiply(1/Math.hypot(t.x,t.y))},getBisector:function(t,e,i){var r=b.util.createVector(t,e),n=b.util.createVector(t,i),s=b.util.calcAngleBetweenVectors(r,n),o=s*(0===b.util.calcAngleBetweenVectors(b.util.rotateVector(r,s),n)?1:-1)/2;return{vector:b.util.getHatVector(b.util.rotateVector(r,o)),angle:s}},projectStrokeOnPoints:function(t,e,i){var r=[],n=e.strokeWidth/2,s=e.strokeUniform?new b.Point(1/e.scaleX,1/e.scaleY):new b.Point(1,1),o=function(t){var e=n/Math.hypot(t.x,t.y);return new b.Point(t.x*e*s.x,t.y*e*s.y)};return t.length<=1||t.forEach((function(a,h){var l,c,u=new b.Point(a.x,a.y);0===h?(c=t[h+1],l=i?o(b.util.createVector(c,u)).addEquals(u):t[t.length-1]):h===t.length-1?(l=t[h-1],c=i?o(b.util.createVector(l,u)).addEquals(u):t[0]):(l=t[h-1],c=t[h+1]);var d,f,g=b.util.getBisector(u,l,c),m=g.vector,p=g.angle;if("miter"===e.strokeLineJoin&&(d=-n/Math.sin(p/2),f=new b.Point(m.x*d*s.x,m.y*d*s.y),Math.hypot(f.x,f.y)/n<=e.strokeMiterLimit))return r.push(u.add(f)),void r.push(u.subtract(f));d=-n*Math.SQRT2,f=new b.Point(m.x*d*s.x,m.y*d*s.y),r.push(u.add(f)),r.push(u.subtract(f))})),r},transformPoint:function(t,e,i){return i?new b.Point(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new b.Point(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var i=0;i0&&(e>r?e-=r:e=0,i>r?i-=r:i=0);var n,s=!0,o=t.getImageData(e,i,2*r||1,2*r||1),a=o.data.length;for(n=3;n=n?s-n:2*Math.PI-(n-s)}function s(t,e,i){for(var s=i[1],o=i[2],a=i[3],h=i[4],l=i[5],c=function(t,e,i,s,o,a,h){var l=Math.PI,c=h*l/180,u=b.util.sin(c),d=b.util.cos(c),f=0,g=0,m=-d*t*.5-u*e*.5,p=-d*e*.5+u*t*.5,_=(i=Math.abs(i))*i,v=(s=Math.abs(s))*s,y=p*p,w=m*m,E=_*v-_*y-v*w,C=0;if(E<0){var T=Math.sqrt(1-E/(_*v));i*=T,s*=T}else C=(o===a?-1:1)*Math.sqrt(E/(_*y+v*w));var S=C*i*p/s,I=-C*s*m/i,x=d*S-u*I+.5*t,A=u*S+d*I+.5*e,R=n(1,0,(m-S)/i,(p-I)/s),O=n((m-S)/i,(p-I)/s,(-m-S)/i,(-p-I)/s);0===a&&O>0?O-=2*l:1===a&&O<0&&(O+=2*l);for(var D=Math.ceil(Math.abs(O/l*2)),L=[],M=O/D,F=8/3*Math.sin(M/4)*Math.sin(M/4)/Math.sin(M/2),P=R+M,k=0;kC)for(var S=1,I=m.length;S2;for(e=e||0,l&&(a=t[2].xt[i-2].x?1:n.x===t[i-2].x?0:-1,h=n.y>t[i-2].y?1:n.y===t[i-2].y?0:-1),r.push(["L",n.x+a*e,n.y+h*e]),r},b.util.getPathSegmentsInfo=d,b.util.getBoundsOfCurve=function(e,i,r,n,s,o,a,h){var l;if(b.cachesBoundsOfCurve&&(l=t.call(arguments),b.boundsOfCurveCache[l]))return b.boundsOfCurveCache[l];var c,u,d,f,g,m,p,_,v=Math.sqrt,y=Math.min,w=Math.max,E=Math.abs,C=[],T=[[],[]];u=6*e-12*r+6*s,c=-3*e+9*r-9*s+3*a,d=3*r-3*e;for(var S=0;S<2;++S)if(S>0&&(u=6*i-12*n+6*o,c=-3*i+9*n-9*o+3*h,d=3*n-3*i),E(c)<1e-12){if(E(u)<1e-12)continue;0<(f=-d/u)&&f<1&&C.push(f)}else(p=u*u-4*d*c)<0||(0<(g=(-u+(_=v(p)))/(2*c))&&g<1&&C.push(g),0<(m=(-u-_)/(2*c))&&m<1&&C.push(m));for(var I,x,A,R=C.length,O=R;R--;)I=(A=1-(f=C[R]))*A*A*e+3*A*A*f*r+3*A*f*f*s+f*f*f*a,T[0][R]=I,x=A*A*A*i+3*A*A*f*n+3*A*f*f*o+f*f*f*h,T[1][R]=x;T[0][O]=e,T[1][O]=i,T[0][O+1]=a,T[1][O+1]=h;var D=[{x:y.apply(null,T[0]),y:y.apply(null,T[1])},{x:w.apply(null,T[0]),y:w.apply(null,T[1])}];return b.cachesBoundsOfCurve&&(b.boundsOfCurveCache[l]=D),D},b.util.getPointOnPath=function(t,e,i){i||(i=d(t));for(var r=0;e-i[r].length>0&&r1e-4;)i=h(s),n=s,(r=o(l.x,l.y,i.x,i.y))+a>e?(s-=c,c/=2):(l=i,s+=c,a+=r);return i.angle=u(n),i}(s,e)}},b.util.transformPath=function(t,e,i){return i&&(e=b.util.multiplyTransformMatrices(e,[1,0,0,1,-i.x,-i.y])),t.map((function(t){for(var i=t.slice(0),r={},n=1;n=e}))}}}(),function(){function t(e,i,r){if(r)if(!b.isLikelyNode&&i instanceof Element)e=i;else if(i instanceof Array){e=[];for(var n=0,s=i.length;n57343)return t.charAt(e);if(55296<=i&&i<=56319){if(t.length<=e+1)throw"High surrogate without following low surrogate";var r=t.charCodeAt(e+1);if(56320>r||r>57343)throw"High surrogate without following low surrogate";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw"Low surrogate without preceding high surrogate";var n=t.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}b.util.string={camelize:function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")},graphemeSplit:function(e){var i,r=0,n=[];for(r=0;r-1?t.prototype[n]=function(t){return function(){var i=this.constructor.superclass;this.constructor.superclass=r;var n=e[t].apply(this,arguments);if(this.constructor.superclass=i,"initialize"!==t)return n}}(n):t.prototype[n]=e[n],i&&(e.toString!==Object.prototype.toString&&(t.prototype.toString=e.toString),e.valueOf!==Object.prototype.valueOf&&(t.prototype.valueOf=e.valueOf))};function n(){}function s(e){for(var i=null,r=this;r.constructor.superclass;){var n=r.constructor.superclass.prototype[e];if(r[e]!==n){i=n;break}r=r.constructor.superclass.prototype}return i?arguments.length>1?i.apply(this,t.call(arguments,1)):i.call(this):console.log("tried to callSuper "+e+", method not found in prototype chain",this)}b.util.createClass=function(){var i=null,o=t.call(arguments,0);function a(){this.initialize.apply(this,arguments)}"function"==typeof o[0]&&(i=o.shift()),a.superclass=i,a.subclasses=[],i&&(n.prototype=i.prototype,a.prototype=new n,i.subclasses.push(a));for(var h=0,l=o.length;h-1||"touch"===t.pointerType},d="string"==typeof(u=b.document.createElement("div")).style.opacity,f="string"==typeof u.style.filter,g=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,m=function(t){return t},d?m=function(t,e){return t.style.opacity=e,t}:f&&(m=function(t,e){var i=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(i.zoom=1),g.test(i.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",i.filter=i.filter.replace(g,e)):i.filter+=" alpha(opacity="+100*e+")",t}),b.util.setStyle=function(t,e){var i=t.style;if(!i)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?m(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var r in e)"opacity"===r?m(t,e[r]):i["float"===r||"cssFloat"===r?void 0===i.styleFloat?"cssFloat":"styleFloat":r]=e[r];return t},function(){var t,e,i,r,n=Array.prototype.slice,s=function(t){return n.call(t,0)};try{t=s(b.document.childNodes)instanceof Array}catch(t){}function o(t,e){var i=b.document.createElement(t);for(var r in e)"class"===r?i.className=e[r]:"for"===r?i.htmlFor=e[r]:i.setAttribute(r,e[r]);return i}function a(t){for(var e=0,i=0,r=b.document.documentElement,n=b.document.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===b.document?(e=n.scrollLeft||r.scrollLeft||0,i=n.scrollTop||r.scrollTop||0):(e+=t.scrollLeft||0,i+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:i}}t||(s=function(t){for(var e=new Array(t.length),i=t.length;i--;)e[i]=t[i];return e}),e=b.document.defaultView&&b.document.defaultView.getComputedStyle?function(t,e){var i=b.document.defaultView.getComputedStyle(t,null);return i?i[e]:void 0}:function(t,e){var i=t.style[e];return!i&&t.currentStyle&&(i=t.currentStyle[e]),i},i=b.document.documentElement.style,r="userSelect"in i?"userSelect":"MozUserSelect"in i?"MozUserSelect":"WebkitUserSelect"in i?"WebkitUserSelect":"KhtmlUserSelect"in i?"KhtmlUserSelect":"",b.util.makeElementUnselectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=b.util.falseFunction),r?t.style[r]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},b.util.makeElementSelectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=null),r?t.style[r]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},b.util.setImageSmoothing=function(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},b.util.getById=function(t){return"string"==typeof t?b.document.getElementById(t):t},b.util.toArray=s,b.util.addClass=function(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},b.util.makeElement=o,b.util.wrapElement=function(t,e,i){return"string"==typeof e&&(e=o(e,i)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},b.util.getScrollLeftTop=a,b.util.getElementOffset=function(t){var i,r,n=t&&t.ownerDocument,s={left:0,top:0},o={left:0,top:0},h={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!n)return o;for(var l in h)o[h[l]]+=parseInt(e(t,l),10)||0;return i=n.documentElement,void 0!==t.getBoundingClientRect&&(s=t.getBoundingClientRect()),r=a(t),{left:s.left+r.left-(i.clientLeft||0)+o.left,top:s.top+r.top-(i.clientTop||0)+o.top}},b.util.getNodeCanvas=function(t){var e=b.jsdomImplForWrapper(t);return e._canvas||e._image},b.util.cleanUpJsdomNode=function(t){if(b.isLikelyNode){var e=b.jsdomImplForWrapper(t);e&&(e._image=null,e._canvas=null,e._currentSrc=null,e._attributes=null,e._classList=null)}}}(),function(){function t(){}b.util.request=function(e,i){i||(i={});var r=i.method?i.method.toUpperCase():"GET",n=i.onComplete||function(){},s=new b.window.XMLHttpRequest,o=i.body||i.parameters;return s.onreadystatechange=function(){4===s.readyState&&(n(s),s.onreadystatechange=t)},"GET"===r&&(o=null,"string"==typeof i.parameters&&(e=function(t,e){return t+(/\?/.test(t)?"&":"?")+e}(e,i.parameters))),s.open(r,e,!0),"POST"!==r&&"PUT"!==r||s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.send(o),s}}(),b.log=console.log,b.warn=console.warn,function(){var t=b.util.object.extend,e=b.util.object.clone,i=[];function r(){return!1}function n(t,e,i,r){return-i*Math.cos(t/r*(Math.PI/2))+i+e}b.util.object.extend(i,{cancelAll:function(){var t=this.splice(0);return t.forEach((function(t){t.cancel()})),t},cancelByCanvas:function(t){if(!t)return[];var e=this.filter((function(e){return"object"==typeof e.target&&e.target.canvas===t}));return e.forEach((function(t){t.cancel()})),e},cancelByTarget:function(t){var e=this.findAnimationsByTarget(t);return e.forEach((function(t){t.cancel()})),e},findAnimationIndex:function(t){return this.indexOf(this.findAnimation(t))},findAnimation:function(t){return this.find((function(e){return e.cancel===t}))},findAnimationsByTarget:function(t){return t?this.filter((function(e){return e.target===t})):[]}});var s=b.window.requestAnimationFrame||b.window.webkitRequestAnimationFrame||b.window.mozRequestAnimationFrame||b.window.oRequestAnimationFrame||b.window.msRequestAnimationFrame||function(t){return b.window.setTimeout(t,1e3/60)},o=b.window.cancelAnimationFrame||b.window.clearTimeout;function a(){return s.apply(b.window,arguments)}b.util.animate=function(i){i||(i={});var s,o=!1,h=function(){var t=b.runningAnimations.indexOf(s);return t>-1&&b.runningAnimations.splice(t,1)[0]};return s=t(e(i),{cancel:function(){return o=!0,h()},currentValue:"startValue"in i?i.startValue:0,completionRate:0,durationRate:0}),b.runningAnimations.push(s),a((function(t){var e,l=t||+new Date,c=i.duration||500,u=l+c,d=i.onChange||r,f=i.abort||r,g=i.onComplete||r,m=i.easing||n,p="startValue"in i&&i.startValue.length>0,_="startValue"in i?i.startValue:0,v="endValue"in i?i.endValue:100,y=i.byValue||(p?_.map((function(t,e){return v[e]-_[e]})):v-_);i.onStart&&i.onStart(),function t(i){var r=(e=i||+new Date)>u?c:e-l,n=r/c,w=p?_.map((function(t,e){return m(r,_[e],y[e],c)})):m(r,_,y,c),E=p?Math.abs((w[0]-_[0])/y[0]):Math.abs((w-_)/y);if(s.currentValue=p?w.slice():w,s.completionRate=E,s.durationRate=n,!o){if(!f(w,E,n))return e>u?(s.currentValue=p?v.slice():v,s.completionRate=1,s.durationRate=1,d(p?v.slice():v,1,1),g(v,1,1),void h()):(d(w,E,n),void a(t));h()}}(l)})),s.cancel},b.util.requestAnimFrame=a,b.util.cancelAnimFrame=function(){return o.apply(b.window,arguments)},b.runningAnimations=i}(),function(){function t(t,e,i){var r="rgba("+parseInt(t[0]+i*(e[0]-t[0]),10)+","+parseInt(t[1]+i*(e[1]-t[1]),10)+","+parseInt(t[2]+i*(e[2]-t[2]),10);return(r+=","+(t&&e?parseFloat(t[3]+i*(e[3]-t[3])):1))+")"}b.util.animateColor=function(e,i,r,n){var s=new b.Color(e).getSource(),o=new b.Color(i).getSource(),a=n.onComplete,h=n.onChange;return n=n||{},b.util.animate(b.util.object.extend(n,{duration:r||500,startValue:s,endValue:o,byValue:o,easing:function(e,i,r,s){return t(i,r,n.colorEasing?n.colorEasing(e,s):1-Math.cos(e/s*(Math.PI/2)))},onComplete:function(e,i,r){if(a)return a(t(o,o,0),i,r)},onChange:function(e,i,r){if(h){if(Array.isArray(e))return h(t(e,e,0),i,r);h(e,i,r)}}}))}}(),function(){function t(t,e,i,r){return t-1&&c>-1&&c-1)&&(i="stroke")}else{if("href"===t||"xlink:href"===t||"font"===t)return i;if("imageSmoothing"===t)return"optimizeQuality"===i;a=h?i.map(s):s(i,n)}}else i="";return!h&&isNaN(a)?i:a}function f(t){return new RegExp("^("+t.join("|")+")\\b","i")}function g(t,e){var i,r,n,s,o=[];for(n=0,s=e.length;n1;)h.shift(),l=e.util.multiplyTransformMatrices(l,h[0]);return l}}();var v=new RegExp("^\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*$");function y(t){if(!e.svgViewBoxElementsRegEx.test(t.nodeName))return{};var i,r,n,o,a,h,l=t.getAttribute("viewBox"),c=1,u=1,d=t.getAttribute("width"),f=t.getAttribute("height"),g=t.getAttribute("x")||0,m=t.getAttribute("y")||0,p=t.getAttribute("preserveAspectRatio")||"",_=!l||!(l=l.match(v)),y=!d||!f||"100%"===d||"100%"===f,w=_&&y,E={},C="",T=0,b=0;if(E.width=0,E.height=0,E.toBeParsed=w,_&&(g||m)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") ",a=(t.getAttribute("transform")||"")+C,t.setAttribute("transform",a),t.removeAttribute("x"),t.removeAttribute("y")),w)return E;if(_)return E.width=s(d),E.height=s(f),E;if(i=-parseFloat(l[1]),r=-parseFloat(l[2]),n=parseFloat(l[3]),o=parseFloat(l[4]),E.minX=i,E.minY=r,E.viewBoxWidth=n,E.viewBoxHeight=o,y?(E.width=n,E.height=o):(E.width=s(d),E.height=s(f),c=E.width/n,u=E.height/o),"none"!==(p=e.util.parsePreserveAspectRatioAttribute(p)).alignX&&("meet"===p.meetOrSlice&&(u=c=c>u?u:c),"slice"===p.meetOrSlice&&(u=c=c>u?c:u),T=E.width-n*c,b=E.height-o*c,"Mid"===p.alignX&&(T/=2),"Mid"===p.alignY&&(b/=2),"Min"===p.alignX&&(T=0),"Min"===p.alignY&&(b=0)),1===c&&1===u&&0===i&&0===r&&0===g&&0===m)return E;if((g||m)&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") "),a=C+" matrix("+c+" 0 0 "+u+" "+(i*c+T)+" "+(r*u+b)+") ","svg"===t.nodeName){for(h=t.ownerDocument.createElementNS(e.svgNS,"g");t.firstChild;)h.appendChild(t.firstChild);t.appendChild(h)}else(h=t).removeAttribute("x"),h.removeAttribute("y"),a=h.getAttribute("transform")+a;return h.setAttribute("transform",a),E}function w(t,e){var i="xlink:href",r=_(t,e.getAttribute(i).slice(1));if(r&&r.getAttribute(i)&&w(t,r),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(t){r&&!e.hasAttribute(t)&&r.hasAttribute(t)&&e.setAttribute(t,r.getAttribute(t))})),!e.children.length)for(var n=r.cloneNode(!0);n.firstChild;)e.appendChild(n.firstChild);e.removeAttribute(i)}e.parseSVGDocument=function(t,i,n,s){if(t){!function(t){for(var i=g(t,["use","svg:use"]),r=0;i.length&&rt.x&&this.y>t.y},gte:function(t){return this.x>=t.x&&this.y>=t.y},lerp:function(t,e){return void 0===e&&(e=.5),e=Math.max(Math.min(1,e),0),new i(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},distanceFrom:function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},midPointFrom:function(t){return this.lerp(t)},min:function(t){return new i(Math.min(this.x,t.x),Math.min(this.y,t.y))},max:function(t){return new i(Math.max(this.x,t.x),Math.max(this.y,t.y))},toString:function(){return this.x+","+this.y},setXY:function(t,e){return this.x=t,this.y=e,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setFromPoint:function(t){return this.x=t.x,this.y=t.y,this},swap:function(t){var e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i},clone:function(){return new i(this.x,this.y)}})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){this.status=t,this.points=[]}e.Intersection?e.warn("fabric.Intersection is already defined"):(e.Intersection=i,e.Intersection.prototype={constructor:i,appendPoint:function(t){return this.points.push(t),this},appendPoints:function(t){return this.points=this.points.concat(t),this}},e.Intersection.intersectLineLine=function(t,r,n,s){var o,a=(s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x),h=(r.x-t.x)*(t.y-n.y)-(r.y-t.y)*(t.x-n.x),l=(s.y-n.y)*(r.x-t.x)-(s.x-n.x)*(r.y-t.y);if(0!==l){var c=a/l,u=h/l;0<=c&&c<=1&&0<=u&&u<=1?(o=new i("Intersection")).appendPoint(new e.Point(t.x+c*(r.x-t.x),t.y+c*(r.y-t.y))):o=new i}else o=new i(0===a||0===h?"Coincident":"Parallel");return o},e.Intersection.intersectLinePolygon=function(t,e,r){var n,s,o,a,h=new i,l=r.length;for(a=0;a0&&(h.status="Intersection"),h},e.Intersection.intersectPolygonPolygon=function(t,e){var r,n=new i,s=t.length;for(r=0;r0&&(n.status="Intersection"),n},e.Intersection.intersectPolygonRectangle=function(t,r,n){var s=r.min(n),o=r.max(n),a=new e.Point(o.x,s.y),h=new e.Point(s.x,o.y),l=i.intersectLinePolygon(s,a,t),c=i.intersectLinePolygon(a,o,t),u=i.intersectLinePolygon(o,h,t),d=i.intersectLinePolygon(h,s,t),f=new i;return f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(u.points),f.appendPoints(d.points),f.points.length>0&&(f.status="Intersection"),f})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){t?this._tryParsingColor(t):this.setSource([0,0,0,1])}function r(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}e.Color?e.warn("fabric.Color is already defined."):(e.Color=i,e.Color.prototype={_tryParsingColor:function(t){var e;t in i.colorNameMap&&(t=i.colorNameMap[t]),"transparent"===t&&(e=[255,255,255,0]),e||(e=i.sourceFromHex(t)),e||(e=i.sourceFromRgb(t)),e||(e=i.sourceFromHsl(t)),e||(e=[0,0,0,1]),e&&this.setSource(e)},_rgbToHsl:function(t,i,r){t/=255,i/=255,r/=255;var n,s,o,a=e.util.array.max([t,i,r]),h=e.util.array.min([t,i,r]);if(o=(a+h)/2,a===h)n=s=0;else{var l=a-h;switch(s=o>.5?l/(2-a-h):l/(a+h),a){case t:n=(i-r)/l+(i0)-(t<0)||+t};function f(t,e){var i=t.angle+u(Math.atan2(e.y,e.x))+360;return Math.round(i%360/45)}function g(t,i){var r=i.transform.target,n=r.canvas,s=e.util.object.clone(i);s.target=r,n&&n.fire("object:"+t,s),r.fire(t,i)}function m(t,e){var i=e.canvas,r=t[i.uniScaleKey];return i.uniformScaling&&!r||!i.uniformScaling&&r}function p(t){return t.originX===l&&t.originY===l}function _(t,e,i){var r=t.lockScalingX,n=t.lockScalingY;return!((!r||!n)&&(e||!r&&!n||!i)&&(!r||"x"!==e)&&(!n||"y"!==e))}function v(t,e,i,r){return{e:t,transform:e,pointer:{x:i,y:r}}}function y(t){return function(e,i,r,n){var s=i.target,o=s.getCenterPoint(),a=s.translateToOriginPoint(o,i.originX,i.originY),h=t(e,i,r,n);return s.setPositionByOrigin(a,i.originX,i.originY),h}}function w(t,e){return function(i,r,n,s){var o=e(i,r,n,s);return o&&g(t,v(i,r,n,s)),o}}function E(t,i,r,n,s){var o=t.target,a=o.controls[t.corner],h=o.canvas.getZoom(),l=o.padding/h,c=o.toLocalPoint(new e.Point(n,s),i,r);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=a.offsetX,c.y-=a.offsetY,c}function C(t){return t.flipX!==t.flipY}function T(t,e,i,r,n){if(0!==t[e]){var s=n/t._getTransformedDimensions()[r]*t[i];t.set(i,s)}}function b(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(0,l.skewY),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.x)-c.x,g=l.skewX;f<2?n=0:(n=u(Math.atan2(f/l.scaleX,c.y/l.scaleY)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().y;l.set("skewX",n),T(l,"skewY","scaleY","y",p)}return m}function S(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(l.skewX,0),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.y)-c.y,g=l.skewY;f<2?n=0:(n=u(Math.atan2(f/l.scaleY,c.x/l.scaleX)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().x;l.set("skewY",n),T(l,"skewX","scaleX","x",p)}return m}function I(t,e,i,r,n){n=n||{};var s,o,a,h,l,u,f=e.target,g=f.lockScalingX,v=f.lockScalingY,y=n.by,w=m(t,f),C=_(f,y,w),T=e.gestureScale;if(C)return!1;if(T)o=e.scaleX*T,a=e.scaleY*T;else{if(s=E(e,e.originX,e.originY,i,r),l="y"!==y?d(s.x):1,u="x"!==y?d(s.y):1,e.signX||(e.signX=l),e.signY||(e.signY=u),f.lockScalingFlip&&(e.signX!==l||e.signY!==u))return!1;if(h=f._getTransformedDimensions(),w&&!y){var b=Math.abs(s.x)+Math.abs(s.y),S=e.original,I=b/(Math.abs(h.x*S.scaleX/f.scaleX)+Math.abs(h.y*S.scaleY/f.scaleY));o=S.scaleX*I,a=S.scaleY*I}else o=Math.abs(s.x*f.scaleX/h.x),a=Math.abs(s.y*f.scaleY/h.y);p(e)&&(o*=2,a*=2),e.signX!==l&&"y"!==y&&(e.originX=c[e.originX],o*=-1,e.signX=l),e.signY!==u&&"x"!==y&&(e.originY=c[e.originY],a*=-1,e.signY=u)}var x=f.scaleX,A=f.scaleY;return y?("x"===y&&f.set("scaleX",o),"y"===y&&f.set("scaleY",a)):(!g&&f.set("scaleX",o),!v&&f.set("scaleY",a)),x!==f.scaleX||A!==f.scaleY}n.scaleCursorStyleHandler=function(t,e,r){var n=m(t,r),s="";if(0!==e.x&&0===e.y?s="x":0===e.x&&0!==e.y&&(s="y"),_(r,s,n))return"not-allowed";var o=f(r,e);return i[o]+"-resize"},n.skewCursorStyleHandler=function(t,e,i){var n="not-allowed";if(0!==e.x&&i.lockSkewingY)return n;if(0!==e.y&&i.lockSkewingX)return n;var s=f(i,e)%4;return r[s]+"-resize"},n.scaleSkewCursorStyleHandler=function(t,e,i){return t[i.canvas.altActionKey]?n.skewCursorStyleHandler(t,e,i):n.scaleCursorStyleHandler(t,e,i)},n.rotationWithSnapping=w("rotating",y((function(t,e,i,r){var n=e,s=n.target,o=s.translateToOriginPoint(s.getCenterPoint(),n.originX,n.originY);if(s.lockRotation)return!1;var a,h=Math.atan2(n.ey-o.y,n.ex-o.x),l=Math.atan2(r-o.y,i-o.x),c=u(l-h+n.theta);if(s.snapAngle>0){var d=s.snapAngle,f=s.snapThreshold||d,g=Math.ceil(c/d)*d,m=Math.floor(c/d)*d;Math.abs(c-m)0?s:a:(c>0&&(n=u===o?s:a),c<0&&(n=u===o?a:s),C(h)&&(n=n===s?a:s)),e.originX=n,w("skewing",y(b))(t,e,i,r))},n.skewHandlerY=function(t,e,i,r){var n,a=e.target,c=a.skewY,u=e.originX;return!a.lockSkewingY&&(0===c?n=E(e,l,l,i,r).y>0?o:h:(c>0&&(n=u===s?o:h),c<0&&(n=u===s?h:o),C(a)&&(n=n===o?h:o)),e.originY=n,w("skewing",y(S))(t,e,i,r))},n.dragHandler=function(t,e,i,r){var n=e.target,s=i-e.offsetX,o=r-e.offsetY,a=!n.get("lockMovementX")&&n.left!==s,h=!n.get("lockMovementY")&&n.top!==o;return a&&n.set("left",s),h&&n.set("top",o),(a||h)&&g("moving",v(t,e,i,r)),a||h},n.scaleOrSkewActionName=function(t,e,i){var r=t[i.canvas.altActionKey];return 0===e.x?r?"skewX":"scaleY":0===e.y?r?"skewY":"scaleX":void 0},n.rotationStyleHandler=function(t,e,i){return i.lockRotation?"not-allowed":e.cursorStyle},n.fireEvent=g,n.wrapWithFixedAnchor=y,n.wrapWithFireEvent=w,n.getLocalPoint=E,e.controlsUtils=n}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians,r=e.controlsUtils;r.renderCircleControl=function(t,e,i,r,n){r=r||{};var s,o=this.sizeX||r.cornerSize||n.cornerSize,a=this.sizeY||r.cornerSize||n.cornerSize,h=void 0!==r.transparentCorners?r.transparentCorners:n.transparentCorners,l=h?"stroke":"fill",c=!h&&(r.cornerStrokeColor||n.cornerStrokeColor),u=e,d=i;t.save(),t.fillStyle=r.cornerColor||n.cornerColor,t.strokeStyle=r.cornerStrokeColor||n.cornerStrokeColor,o>a?(s=o,t.scale(1,a/o),d=i*o/a):a>o?(s=a,t.scale(o/a,1),u=e*a/o):s=o,t.lineWidth=1,t.beginPath(),t.arc(u,d,s/2,0,2*Math.PI,!1),t[l](),c&&t.stroke(),t.restore()},r.renderSquareControl=function(t,e,r,n,s){n=n||{};var o=this.sizeX||n.cornerSize||s.cornerSize,a=this.sizeY||n.cornerSize||s.cornerSize,h=void 0!==n.transparentCorners?n.transparentCorners:s.transparentCorners,l=h?"stroke":"fill",c=!h&&(n.cornerStrokeColor||s.cornerStrokeColor),u=o/2,d=a/2;t.save(),t.fillStyle=n.cornerColor||s.cornerColor,t.strokeStyle=n.cornerStrokeColor||s.cornerStrokeColor,t.lineWidth=1,t.translate(e,r),t.rotate(i(s.angle)),t[l+"Rect"](-u,-d,o,a),c&&t.strokeRect(-u,-d,o,a),t.restore()}}(e),function(t){var e=t.fabric||(t.fabric={});e.Control=function(t){for(var e in t)this[e]=t[e]},e.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(t,e){return e.cursorStyle},getActionName:function(t,e){return e.actionName},getVisibility:function(t,e){var i=t._controlsVisibility;return i&&void 0!==i[e]?i[e]:this.visible},setVisibility:function(t){this.visible=t},positionHandler:function(t,i){return e.util.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},i)},calcCornerCoords:function(t,i,r,n,s){var o,a,h,l,c=s?this.touchSizeX:this.sizeX,u=s?this.touchSizeY:this.sizeY;if(c&&u&&c!==u){var d=Math.atan2(u,c),f=Math.sqrt(c*c+u*u)/2,g=d-e.util.degreesToRadians(t),m=Math.PI/2-d-e.util.degreesToRadians(t);o=f*e.util.cos(g),a=f*e.util.sin(g),h=f*e.util.cos(m),l=f*e.util.sin(m)}else f=.7071067812*(c&&u?c:i),g=e.util.degreesToRadians(45-t),o=h=f*e.util.cos(g),a=l=f*e.util.sin(g);return{tl:{x:r-l,y:n-h},tr:{x:r+o,y:n-a},bl:{x:r-o,y:n+a},br:{x:r+l,y:n+h}}},render:function(t,i,r,n,s){"circle"===((n=n||{}).cornerStyle||s.cornerStyle)?e.controlsUtils.renderCircleControl.call(this,t,i,r,n,s):e.controlsUtils.renderSquareControl.call(this,t,i,r,n,s)}}}(e),function(){function t(t,e){var i,r,n,s,o=t.getAttribute("style"),a=t.getAttribute("offset")||0;if(a=(a=parseFloat(a)/(/%$/.test(a)?100:1))<0?0:a>1?1:a,o){var h=o.split(/\s*;\s*/);for(""===h[h.length-1]&&h.pop(),s=h.length;s--;){var l=h[s].split(/\s*:\s*/),c=l[0].trim(),u=l[1].trim();"stop-color"===c?i=u:"stop-opacity"===c&&(n=u)}}return i||(i=t.getAttribute("stop-color")||"rgb(0,0,0)"),n||(n=t.getAttribute("stop-opacity")),r=(i=new b.Color(i)).getAlpha(),n=isNaN(parseFloat(n))?1:parseFloat(n),n*=r*e,{offset:a,color:i.toRgb(),opacity:n}}var e=b.util.object.clone;b.Gradient=b.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(t){t||(t={}),t.coords||(t.coords={});var e,i=this;Object.keys(t).forEach((function(e){i[e]=t[e]})),this.id?this.id+="_"+b.Object.__uid++:this.id=b.Object.__uid++,e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0},"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()},addColorStop:function(t){for(var e in t){var i=new b.Color(t[e]);this.colorStops.push({offset:parseFloat(e),color:i.toRgb(),opacity:i.getAlpha()})}return this},toObject:function(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return b.util.populateWithProperties(this,e,t),e},toSVG:function(t,i){var r,n,s,o,a=e(this.coords,!0),h=(i=i||{},e(this.colorStops,!0)),l=a.r1>a.r2,c=this.gradientTransform?this.gradientTransform.concat():b.iMatrix.concat(),u=-this.offsetX,d=-this.offsetY,f=!!i.additionalTransform,g="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(h.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===g?(u/=t.width,d/=t.height):(u+=t.width/2,d+=t.height/2),"path"===t.type&&"percentage"!==this.gradientUnits&&(u-=t.pathOffset.x,d-=t.pathOffset.y),c[4]-=u,c[5]-=d,o='id="SVGID_'+this.id+'" gradientUnits="'+g+'"',o+=' gradientTransform="'+(f?i.additionalTransform+" ":"")+b.util.matrixToSVG(c)+'" ',"linear"===this.type?s=["\n']:"radial"===this.type&&(s=["\n']),"radial"===this.type){if(l)for((h=h.concat()).reverse(),r=0,n=h.length;r0){var p=m/Math.max(a.r1,a.r2);for(r=0,n=h.length;r\n')}return s.push("linear"===this.type?"\n":"\n"),s.join("")},toLive:function(t){var e,i,r,n=b.util.object.clone(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(n.x1,n.y1,n.x2,n.y2):"radial"===this.type&&(e=t.createRadialGradient(n.x1,n.y1,n.r1,n.x2,n.y2,n.r2)),i=0,r=this.colorStops.length;i1?1:s,isNaN(s)&&(s=1);var o,a,h,l,c=e.getElementsByTagName("stop"),u="userSpaceOnUse"===e.getAttribute("gradientUnits")?"pixels":"percentage",d=e.getAttribute("gradientTransform")||"",f=[],g=0,m=0;for("linearGradient"===e.nodeName||"LINEARGRADIENT"===e.nodeName?(o="linear",a=function(t){return{x1:t.getAttribute("x1")||0,y1:t.getAttribute("y1")||0,x2:t.getAttribute("x2")||"100%",y2:t.getAttribute("y2")||0}}(e)):(o="radial",a=function(t){return{x1:t.getAttribute("fx")||t.getAttribute("cx")||"50%",y1:t.getAttribute("fy")||t.getAttribute("cy")||"50%",r1:0,x2:t.getAttribute("cx")||"50%",y2:t.getAttribute("cy")||"50%",r2:t.getAttribute("r")||"50%"}}(e)),h=c.length;h--;)f.push(t(c[h],s));return l=b.parseTransformAttribute(d),function(t,e,i,r){var n,s;Object.keys(e).forEach((function(t){"Infinity"===(n=e[t])?s=1:"-Infinity"===n?s=0:(s=parseFloat(e[t],10),"string"==typeof n&&/^(\d+\.\d+)%|(\d+)%$/.test(n)&&(s*=.01,"pixels"===r&&("x1"!==t&&"x2"!==t&&"r2"!==t||(s*=i.viewBoxWidth||i.width),"y1"!==t&&"y2"!==t||(s*=i.viewBoxHeight||i.height)))),e[t]=s}))}(0,a,n,u),"pixels"===u&&(g=-i.left,m=-i.top),new b.Gradient({id:e.getAttribute("id"),type:o,coords:a,colorStops:f,gradientUnits:u,gradientTransform:l,offsetX:g,offsetY:m})}})}(),_=b.util.toFixed,b.Pattern=b.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(t,e){if(t||(t={}),this.id=b.Object.__uid++,this.setOptions(t),!t.source||t.source&&"string"!=typeof t.source)e&&e(this);else{var i=this;this.source=b.util.createImage(),b.util.loadImage(t.source,(function(t,r){i.source=t,e&&e(i,r)}),null,this.crossOrigin)}},toObject:function(t){var e,i,r=b.Object.NUM_FRACTION_DIGITS;return"string"==typeof this.source.src?e=this.source.src:"object"==typeof this.source&&this.source.toDataURL&&(e=this.source.toDataURL()),i={type:"pattern",source:e,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:_(this.offsetX,r),offsetY:_(this.offsetY,r),patternTransform:this.patternTransform?this.patternTransform.concat():null},b.util.populateWithProperties(this,i,t),i},toSVG:function(t){var e="function"==typeof this.source?this.source():this.source,i=e.width/t.width,r=e.height/t.height,n=this.offsetX/t.width,s=this.offsetY/t.height,o="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(r=1,s&&(r+=Math.abs(s))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,n&&(i+=Math.abs(n))),e.src?o=e.src:e.toDataURL&&(o=e.toDataURL()),'\n\n\n'},setOptions:function(t){for(var e in t)this[e]=t[e]},toLive:function(t){var e=this.source;if(!e)return"";if(void 0!==e.src){if(!e.complete)return"";if(0===e.naturalWidth||0===e.naturalHeight)return""}return t.createPattern(e,this.repeat)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.toFixed;e.Shadow?e.warn("fabric.Shadow is already defined."):(e.Shadow=e.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(t){for(var i in"string"==typeof t&&(t=this._parseShadow(t)),t)this[i]=t[i];this.id=e.Object.__uid++},_parseShadow:function(t){var i=t.trim(),r=e.Shadow.reOffsetsAndBlur.exec(i)||[];return{color:(i.replace(e.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(r[1],10)||0,offsetY:parseFloat(r[2],10)||0,blur:parseFloat(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(t){var r=40,n=40,s=e.Object.NUM_FRACTION_DIGITS,o=e.util.rotateVector({x:this.offsetX,y:this.offsetY},e.util.degreesToRadians(-t.angle)),a=new e.Color(this.color);return t.width&&t.height&&(r=100*i((Math.abs(o.x)+this.blur)/t.width,s)+20,n=100*i((Math.abs(o.y)+this.blur)/t.height,s)+20),t.flipX&&(o.x*=-1),t.flipY&&(o.y*=-1),'\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var t={},i=e.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(e){this[e]!==i[e]&&(t[e]=this[e])}),this),t}}),e.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(e),function(){if(b.StaticCanvas)b.warn("fabric.StaticCanvas is already defined.");else{var t=b.util.object.extend,e=b.util.getElementOffset,i=b.util.removeFromArray,r=b.util.toFixed,n=b.util.transformPoint,s=b.util.invertTransform,o=b.util.getNodeCanvas,a=b.util.createCanvasElement,h=new Error("Could not initialize `canvas` element");b.StaticCanvas=b.util.createClass(b.CommonMethods,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:b.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(t,e){var i=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,i),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,i),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,i),e.overlayColor&&this.setOverlayColor(e.overlayColor,i),this.calcOffset()},_isRetinaScaling:function(){return b.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,b.devicePixelRatio):1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var t=b.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(t,e,i){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),i.scale(t,t)},calcOffset:function(){return this._offset=e(this.lowerCanvasEl),this},setOverlayImage:function(t,e,i){return this.__setBgOverlayImage("overlayImage",t,e,i)},setBackgroundImage:function(t,e,i){return this.__setBgOverlayImage("backgroundImage",t,e,i)},setOverlayColor:function(t,e){return this.__setBgOverlayColor("overlayColor",t,e)},setBackgroundColor:function(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)},__setBgOverlayImage:function(t,e,i,r){return"string"==typeof e?b.util.loadImage(e,(function(e,n){if(e){var s=new b.Image(e,r);this[t]=s,s.canvas=this}i&&i(e,n)}),this,r&&r.crossOrigin):(r&&e.setOptions(r),this[t]=e,e&&(e.canvas=this),i&&i(e,!1)),this},__setBgOverlayColor:function(t,e,i){return this[t]=e,this._initGradient(e,t),this._initPattern(e,t,i),this},_createCanvasElement:function(){var t=a();if(!t)throw h;if(t.style||(t.style={}),void 0===t.getContext)throw h;return t},_initOptions:function(t){var e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=b.util.getById(t)||this._createCanvasElement(),b.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(t,e){return this.setDimensions({width:t},e)},setHeight:function(t,e){return this.setDimensions({height:t},e)},setDimensions:function(t,e){var i;for(var r in e=e||{},t)i=t[r],e.cssOnly||(this._setBackstoreDimension(r,t[r]),i+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(r,i);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this},_setCssDimension:function(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(t){var e,i,r,n=this._activeObject,s=this.backgroundImage,o=this.overlayImage;for(this.viewportTransform=t,i=0,r=this._objects.length;i\n'),this._setSVGBgOverlayColor(i,"background"),this._setSVGBgOverlayImage(i,"backgroundImage",e),this._setSVGObjects(i,e),this.clipPath&&i.push("\n"),this._setSVGBgOverlayColor(i,"overlay"),this._setSVGBgOverlayImage(i,"overlayImage",e),i.push(""),i.join("")},_setSVGPreamble:function(t,e){e.suppressPreamble||t.push('\n','\n')},_setSVGHeader:function(t,e){var i,n=e.width||this.width,s=e.height||this.height,o='viewBox="0 0 '+this.width+" "+this.height+'" ',a=b.Object.NUM_FRACTION_DIGITS;e.viewBox?o='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(i=this.viewportTransform,o='viewBox="'+r(-i[4]/i[0],a)+" "+r(-i[5]/i[3],a)+" "+r(this.width/i[0],a)+" "+r(this.height/i[3],a)+'" '),t.push("\n',"Created with Fabric.js ",b.version,"\n","\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"\n")},createSVGClipPathMarkup:function(t){var e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+b.Object.__uid++,'\n'+this.clipPath.toClipPathSVG(t.reviver)+"\n"):""},createSVGRefElementsMarkup:function(){var t=this;return["background","overlay"].map((function(e){var i=t[e+"Color"];if(i&&i.toLive){var r=t[e+"Vpt"],n=t.viewportTransform,s={width:t.width/(r?n[0]:1),height:t.height/(r?n[3]:1)};return i.toSVG(s,{additionalTransform:r?b.util.matrixToSVG(n):""})}})).join("")},createSVGFontFacesMarkup:function(){var t,e,i,r,n,s,o,a,h="",l={},c=b.fontPaths,u=[];for(this._objects.forEach((function t(e){u.push(e),e._objects&&e._objects.forEach(t)})),o=0,a=u.length;o',"\n",h,"","\n"].join("")),h},_setSVGObjects:function(t,e){var i,r,n,s=this._objects;for(r=0,n=s.length;r\n")}else t.push('\n")},sendToBack:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(e=(n=s._objects).length;e--;)r=n[e],i(this._objects,r),this._objects.unshift(r);else i(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(n=s._objects,e=0;e0+l&&(o=s-1,i(this._objects,n),this._objects.splice(o,0,n)),l++;else 0!==(s=this._objects.indexOf(t))&&(o=this._findNewLowerIndex(t,s,e),i(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(t,e,i){var r,n;if(i){for(r=e,n=e-1;n>=0;--n)if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){r=n;break}}else r=e-1;return r},bringForward:function(t,e){if(!t)return this;var r,n,s,o,a,h=this._activeObject,l=0;if(t===h&&"activeSelection"===t.type)for(r=(a=h._objects).length;r--;)n=a[r],(s=this._objects.indexOf(n))"}}),t(b.StaticCanvas.prototype,b.Observable),t(b.StaticCanvas.prototype,b.Collection),t(b.StaticCanvas.prototype,b.DataURLExporter),t(b.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(t){var e=a();if(!e||!e.getContext)return null;var i=e.getContext("2d");return i&&"setLineDash"===t?void 0!==i.setLineDash:null}}),b.StaticCanvas.prototype.toJSON=b.StaticCanvas.prototype.toObject,b.isLikelyNode&&(b.StaticCanvas.prototype.createPNGStream=function(){var t=o(this.lowerCanvasEl);return t&&t.createPNGStream()},b.StaticCanvas.prototype.createJPEGStream=function(t){var e=o(this.lowerCanvasEl);return e&&e.createJPEGStream(t)})}}(),b.BaseBrush=b.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(t){var e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])},_setShadow:function(){if(this.shadow){var t=this.canvas,e=this.shadow,i=t.contextTop,r=t.getZoom();t&&t._isRetinaScaling()&&(r*=b.devicePixelRatio),i.shadowColor=e.color,i.shadowBlur=e.blur*r,i.shadowOffsetX=e.offsetX*r,i.shadowOffsetY=e.offsetY*r}},needsFullRender:function(){return new b.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0},_isOutSideCanvas:function(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}),b.PencilBrush=b.util.createClass(b.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(t){this.canvas=t,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(t,e,i){var r=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,r.x,r.y),r},onMouseDown:function(t,e){this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],this._prepareForDrawing(t),this._captureDrawingPath(t),this._render())},onMouseMove:function(t,e){if(this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._captureDrawingPath(t)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var i=this._points,r=i.length,n=this.canvas.contextTop;this._saveAndTransform(n),this.oldEnd&&(n.beginPath(),n.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(n,i[r-2],i[r-1],!0),n.stroke(),n.restore()}},onMouseUp:function(t){return!this.canvas._isMainEvent(t.e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(t){var e=new b.Point(t.x,t.y);this._reset(),this._addPoint(e),this.canvas.contextTop.moveTo(e.x,e.y)},_addPoint:function(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),0))},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(t){var e=new b.Point(t.x,t.y);return this._addPoint(e)},_render:function(t){var e,i,r=this._points[0],n=this._points[1];if(t=t||this.canvas.contextTop,this._saveAndTransform(t),t.beginPath(),2===this._points.length&&r.x===n.x&&r.y===n.y){var s=this.width/1e3;r=new b.Point(r.x,r.y),n=new b.Point(n.x,n.y),r.x-=s,n.x+=s}for(t.moveTo(r.x,r.y),e=1,i=this._points.length;e=n&&(o=t[i],a.push(o));return a.push(t[s]),a},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var t=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(t))this.canvas.requestRenderAll();else{var e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}}}),b.CircleBrush=b.util.createClass(b.BaseBrush,{width:10,initialize:function(t){this.canvas=t,this.points=[]},drawDot:function(t){var e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()},dot:function(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()},onMouseDown:function(t){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)},_render:function(){var t,e,i=this.canvas.contextTop,r=this.points;for(this._saveAndTransform(i),t=0,e=r.length;t0&&!this.preserveObjectStacking){e=[],i=[];for(var n=0,s=this._objects.length;n1&&(this._activeObject._objects=i),e.push.apply(e,i)}else e=this._objects;return e},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1);var t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this},renderTopLayer:function(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()},renderTop:function(){var t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this},_normalizePointer:function(t,e){var i=t.calcTransformMatrix(),r=b.util.invertTransform(i),n=this.restorePointerVpt(e);return b.util.transformPoint(n,r)},isTargetTransparent:function(t,e,i){if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){var r=this._normalizePointer(t,{x:e,y:i}),n=Math.max(t.cacheTranslationX+r.x*t.zoomX,0),s=Math.max(t.cacheTranslationY+r.y*t.zoomY,0);return b.util.isTransparent(t._cacheContext,Math.round(n),Math.round(s),this.targetFindTolerance)}var o=this.contextCache,a=t.selectionBackgroundColor,h=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(o),o.save(),o.transform(h[0],h[1],h[2],h[3],h[4],h[5]),t.render(o),o.restore(),t.selectionBackgroundColor=a,b.util.isTransparent(o,e,i,this.targetFindTolerance)},_isSelectionKeyPressed:function(t){return Array.isArray(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey]},_shouldClearSelection:function(t,e){var i=this.getActiveObjects(),r=this._activeObject;return!e||e&&r&&i.length>1&&-1===i.indexOf(e)&&r!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&r&&r!==e},_shouldCenterTransform:function(t,e,i){var r;if(t)return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?r=this.centeredScaling||t.centeredScaling:"rotate"===e&&(r=this.centeredRotation||t.centeredRotation),r?!i:i},_getOriginFromCorner:function(t,e){var i={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?i.x="right":"mr"!==e&&"tr"!==e&&"br"!==e||(i.x="left"),"tl"===e||"mt"===e||"tr"===e?i.y="bottom":"bl"!==e&&"mb"!==e&&"br"!==e||(i.y="top"),i},_getActionFromCorner:function(t,e,i,r){if(!e||!t)return"drag";var n=r.controls[e];return n.getActionName(i,n,r)},_setupCurrentTransform:function(t,i,r){if(i){var n=this.getPointer(t),s=i.__corner,o=i.controls[s],a=r&&s?o.getActionHandler(t,i,o):b.controlsUtils.dragHandler,h=this._getActionFromCorner(r,s,t,i),l=this._getOriginFromCorner(i,s),c=t[this.centeredKey],u={target:i,action:h,actionHandler:a,corner:s,scaleX:i.scaleX,scaleY:i.scaleY,skewX:i.skewX,skewY:i.skewY,offsetX:n.x-i.left,offsetY:n.y-i.top,originX:l.x,originY:l.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:e(i.angle),width:i.width*i.scaleX,shiftKey:t.shiftKey,altKey:c,original:b.util.saveObjectTransform(i)};this._shouldCenterTransform(i,h,c)&&(u.originX="center",u.originY="center"),u.original.originX=l.x,u.original.originY=l.y,this._currentTransform=u,this._beforeTransform(t)}},setCursor:function(t){this.upperCanvasEl.style.cursor=t},_drawSelection:function(t){var e=this._groupSelector,i=new b.Point(e.ex,e.ey),r=b.util.transformPoint(i,this.viewportTransform),n=new b.Point(e.ex+e.left,e.ey+e.top),s=b.util.transformPoint(n,this.viewportTransform),o=Math.min(r.x,s.x),a=Math.min(r.y,s.y),h=Math.max(r.x,s.x),l=Math.max(r.y,s.y),c=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(o,a,h-o,l-a)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,o+=c,a+=c,h-=c,l-=c,b.Object.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(o,a,h-o,l-a))},findTarget:function(t,e){if(!this.skipTargetFind){var r,n,s=this.getPointer(t,!0),o=this._activeObject,a=this.getActiveObjects(),h=i(t),l=a.length>1&&!e||1===a.length;if(this.targets=[],l&&o._findTargetCorner(s,h))return o;if(a.length>1&&!e&&o===this._searchPossibleTargets([o],s))return o;if(1===a.length&&o===this._searchPossibleTargets([o],s)){if(!this.preserveObjectStacking)return o;r=o,n=this.targets,this.targets=[]}var c=this._searchPossibleTargets(this._objects,s);return t[this.altSelectionKey]&&c&&r&&c!==r&&(c=r,this.targets=n),c}},_checkTarget:function(t,e,i){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,i.x,i.y))return!0}},_searchPossibleTargets:function(t,e){for(var i,r,n=t.length;n--;){var s=t[n],o=s.group?this._normalizePointer(s.group,e):e;if(this._checkTarget(o,s,e)){(i=t[n]).subTargetCheck&&i instanceof b.Group&&(r=this._searchPossibleTargets(i._objects,e))&&this.targets.push(r);break}}return i},restorePointerVpt:function(t){return b.util.transformPoint(t,b.util.invertTransform(this.viewportTransform))},getPointer:function(e,i){if(this._absolutePointer&&!i)return this._absolutePointer;if(this._pointer&&i)return this._pointer;var r,n=t(e),s=this.upperCanvasEl,o=s.getBoundingClientRect(),a=o.width||0,h=o.height||0;a&&h||("top"in o&&"bottom"in o&&(h=Math.abs(o.top-o.bottom)),"right"in o&&"left"in o&&(a=Math.abs(o.right-o.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,i||(n=this.restorePointerVpt(n));var l=this.getRetinaScaling();return 1!==l&&(n.x/=l,n.y/=l),r=0===a||0===h?{width:1,height:1}:{width:s.width/a,height:s.height/h},{x:n.x*r.width,y:n.y*r.height}},_createUpperCanvas:function(){var t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl,i=this.upperCanvasEl;i?i.className="":(i=this._createCanvasElement(),this.upperCanvasEl=i),b.util.addClass(i,"upper-canvas "+t),this.wrapperEl.appendChild(i),this._copyCanvasStyle(e,i),this._applyCanvasStyle(i),this.contextTop=i.getContext("2d")},getTopContext:function(){return this.contextTop},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=b.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),b.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),b.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(t){var e=this.width||t.width,i=this.height||t.height;b.util.setStyle(t,{position:"absolute",width:e+"px",height:i+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=i,b.util.makeElementUnselectable(t)},_copyCanvasStyle:function(t,e){e.style.cssText=t.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]},_onObjectRemoved:function(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",t)},_fireSelectionEvents:function(t,e){var i=!1,r=this.getActiveObjects(),n=[],s=[];t.forEach((function(t){-1===r.indexOf(t)&&(i=!0,t.fire("deselected",{e:e,target:t}),s.push(t))})),r.forEach((function(r){-1===t.indexOf(r)&&(i=!0,r.fire("selected",{e:e,target:r}),n.push(r))})),t.length>0&&r.length>0?i&&this.fire("selection:updated",{e:e,selected:n,deselected:s}):r.length>0?this.fire("selection:created",{e:e,selected:n}):t.length>0&&this.fire("selection:cleared",{e:e,deselected:s})},setActiveObject:function(t,e){var i=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(i,e),this},_setActiveObject:function(t,e){return this._activeObject!==t&&!!this._discardActiveObject(e,t)&&!t.onSelect({e:e})&&(this._activeObject=t,!0)},_discardActiveObject:function(t,e){var i=this._activeObject;if(i){if(i.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0},discardActiveObject:function(t){var e=this.getActiveObjects(),i=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:i,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this},dispose:function(){var t=this.wrapperEl;return this.removeListeners(),t.removeChild(this.upperCanvasEl),t.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){b.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,b.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(t){var e=this._activeObject;e&&e._renderControls(t)},_toObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(t),n=this.callSuper("_toObject",t,e,i);return this._unwindGroupTransformOnObject(t,r),n},_realizeGroupTransformOnObject:function(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){var e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(i){e[i]=t[i]})),b.util.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null},_unwindGroupTransformOnObject:function(t,e){e&&t.set(e)},_setSVGObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(e);this.callSuper("_setSVGObject",t,e,i),this._unwindGroupTransformOnObject(e,r)},setViewportTransform:function(t){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),b.StaticCanvas.prototype.setViewportTransform.call(this,t)}}),b.StaticCanvas)"prototype"!==r&&(b.Canvas[r]=b.StaticCanvas[r])}(),function(){var t=b.util.addListener,e=b.util.removeListener,i={passive:!1};function r(t,e){return t.button&&t.button===e-1}b.util.object.extend(b.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(t,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(t,e){var r=this.upperCanvasEl,n=this._getEventPrefix();t(b.window,"resize",this._onResize),t(r,n+"down",this._onMouseDown),t(r,n+"move",this._onMouseMove,i),t(r,n+"out",this._onMouseOut),t(r,n+"enter",this._onMouseEnter),t(r,"wheel",this._onMouseWheel),t(r,"contextmenu",this._onContextMenu),t(r,"dblclick",this._onDoubleClick),t(r,"dragover",this._onDragOver),t(r,"dragenter",this._onDragEnter),t(r,"dragleave",this._onDragLeave),t(r,"drop",this._onDrop),this.enablePointerEvents||t(r,"touchstart",this._onTouchStart,i),"undefined"!=typeof eventjs&&e in eventjs&&(eventjs[e](r,"gesture",this._onGesture),eventjs[e](r,"drag",this._onDrag),eventjs[e](r,"orientation",this._onOrientationChange),eventjs[e](r,"shake",this._onShake),eventjs[e](r,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(e,"remove");var t=this._getEventPrefix();e(b.document,t+"up",this._onMouseUp),e(b.document,"touchend",this._onTouchEnd,i),e(b.document,t+"move",this._onMouseMove,i),e(b.document,"touchmove",this._onMouseMove,i)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._onDrop.bind(this),this.eventsBound=!0)},_onGesture:function(t,e){this.__onTransformGesture&&this.__onTransformGesture(t,e)},_onDrag:function(t,e){this.__onDrag&&this.__onDrag(t,e)},_onMouseWheel:function(t){this.__onMouseWheel(t)},_onMouseOut:function(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var i=this;this._hoveredTargets.forEach((function(r){i.fire("mouse:out",{target:e,e:t}),r&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter:function(t){this._currentTransform||this.findTarget(t)||(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(t,e){this.__onOrientationChange&&this.__onOrientationChange(t,e)},_onShake:function(t,e){this.__onShake&&this.__onShake(t,e)},_onLongPress:function(t,e){this.__onLongPress&&this.__onLongPress(t,e)},_onDragOver:function(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onDrop:function(t){return this._simpleEventHandler("drop:before",t),this._simpleEventHandler("drop",t)},_onContextMenu:function(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId:function(t){var e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1},_isMainEvent:function(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId)},_onTouchStart:function(r){r.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(r)),this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();t(b.document,"touchend",this._onTouchEnd,i),t(b.document,"touchmove",this._onMouseMove,i),e(n,s+"down",this._onMouseDown)},_onMouseDown:function(r){this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();e(n,s+"move",this._onMouseMove,i),t(b.document,s+"up",this._onMouseUp),t(b.document,s+"move",this._onMouseMove,i)},_onTouchEnd:function(r){if(!(r.touches.length>0)){this.__onMouseUp(r),this._resetTransformEventData(),this.mainTouchId=null;var n=this._getEventPrefix();e(b.document,"touchend",this._onTouchEnd,i),e(b.document,"touchmove",this._onMouseMove,i);var s=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){t(s.upperCanvasEl,n+"down",s._onMouseDown),s._willAddMouseDown=0}),400)}},_onMouseUp:function(r){this.__onMouseUp(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();this._isMainEvent(r)&&(e(b.document,s+"up",this._onMouseUp),e(b.document,s+"move",this._onMouseMove,i),t(n,s+"move",this._onMouseMove,i))},_onMouseMove:function(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize:function(){this.calcOffset()},_shouldRender:function(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp:function(t){var e,i=this._currentTransform,n=this._groupSelector,s=!1,o=!n||0===n.left&&0===n.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),r(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,o);else{if(r(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,o),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(i&&(this._finalizeCurrentTransform(t),s=i.actionPerformed),!o){var a=e===this._activeObject;this._maybeGroupObjects(t),s||(s=this._shouldRender(e)||!a&&e===this._activeObject)}var h,l;if(e){if(h=e._findTargetCorner(this.getPointer(t,!0),b.util.isTouchEvent(t)),e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),s=!0;else{var c=e.controls[h],u=c&&c.getMouseUpHandler(t,e,c);u&&u(t,i,(l=this.getPointer(t)).x,l.y)}e.isMoving=!1}if(i&&(i.target!==e||i.corner!==h)){var d=i.target&&i.target.controls[i.corner],f=d&&d.getMouseUpHandler(t,e,c);l=l||this.getPointer(t),f&&f(t,i,l.x,l.y)}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,o),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),s?this.requestRenderAll():o||this.renderTop()}}},_simpleEventHandler:function(t,e){var i=this.findTarget(e),r=this.targets,n={e:e,target:i,subTargets:r};if(this.fire(t,n),i&&i.fire(t,n),!r)return i;for(var s=0;s1&&(e=new b.ActiveSelection(i.reverse(),{canvas:this}),this.setActiveObject(e,t))},_collectObjects:function(t){for(var e,i=[],r=this._groupSelector.ex,n=this._groupSelector.ey,s=r+this._groupSelector.left,o=n+this._groupSelector.top,a=new b.Point(v(r,s),v(n,o)),h=new b.Point(y(r,s),y(n,o)),l=!this.selectionFullyContained,c=r===s&&n===o,u=this._objects.length;u--&&!((e=this._objects[u])&&e.selectable&&e.visible&&(l&&e.intersectsWithRect(a,h,!0)||e.isContainedWithinRect(a,h,!0)||l&&e.containsPoint(a,null,!0)||l&&e.containsPoint(h,null,!0))&&(i.push(e),c)););return i.length>1&&(i=i.filter((function(e){return!e.onSelect({e:t})}))),i},_maybeGroupObjects:function(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}),b.util.object.extend(b.StaticCanvas.prototype,{toDataURL:function(t){t||(t={});var e=t.format||"png",i=t.quality||1,r=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),n=this.toCanvasElement(r,t);return b.util.toDataURL(n,e,i)},toCanvasElement:function(t,e){t=t||1;var i=((e=e||{}).width||this.width)*t,r=(e.height||this.height)*t,n=this.getZoom(),s=this.width,o=this.height,a=n*t,h=this.viewportTransform,l=(h[4]-(e.left||0))*t,c=(h[5]-(e.top||0))*t,u=this.interactive,d=[a,0,0,a,l,c],f=this.enableRetinaScaling,g=b.util.createCanvasElement(),m=this.contextTop;return g.width=i,g.height=r,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=d,this.width=i,this.height=r,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=h,this.width=s,this.height=o,this.calcViewportBoundaries(),this.interactive=u,this.enableRetinaScaling=f,this.contextTop=m,g}}),b.util.object.extend(b.StaticCanvas.prototype,{loadFromJSON:function(t,e,i){if(t){var r="string"==typeof t?JSON.parse(t):b.util.object.clone(t),n=this,s=r.clipPath,o=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete r.clipPath,this._enlivenObjects(r.objects,(function(t){n.clear(),n._setBgOverlay(r,(function(){s?n._enlivenObjects([s],(function(i){n.clipPath=i[0],n.__setupCanvas.call(n,r,t,o,e)})):n.__setupCanvas.call(n,r,t,o,e)}))}),i),this}},__setupCanvas:function(t,e,i,r){var n=this;e.forEach((function(t,e){n.insertAt(t,e)})),this.renderOnAddRemove=i,delete t.objects,delete t.backgroundImage,delete t.overlayImage,delete t.background,delete t.overlay,this._setOptions(t),this.renderAll(),r&&r()},_setBgOverlay:function(t,e){var i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(t.backgroundImage||t.overlayImage||t.background||t.overlay){var r=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&e&&e()};this.__setBgOverlay("backgroundImage",t.backgroundImage,i,r),this.__setBgOverlay("overlayImage",t.overlayImage,i,r),this.__setBgOverlay("backgroundColor",t.background,i,r),this.__setBgOverlay("overlayColor",t.overlay,i,r)}else e&&e()},__setBgOverlay:function(t,e,i,r){var n=this;if(!e)return i[t]=!0,void(r&&r());"backgroundImage"===t||"overlayImage"===t?b.util.enlivenObjects([e],(function(e){n[t]=e[0],i[t]=!0,r&&r()})):this["set"+b.util.string.capitalize(t,!0)](e,(function(){i[t]=!0,r&&r()}))},_enlivenObjects:function(t,e,i){t&&0!==t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),null,i):e&&e([])},_toDataURL:function(t,e){this.clone((function(i){e(i.toDataURL(t))}))},_toDataURLWithMultiplier:function(t,e,i){this.clone((function(r){i(r.toDataURLWithMultiplier(t,e))}))},clone:function(t,e){var i=JSON.stringify(this.toJSON(e));this.cloneWithoutData((function(e){e.loadFromJSON(i,(function(){t&&t(e)}))}))},cloneWithoutData:function(t){var e=b.util.createCanvasElement();e.width=this.width,e.height=this.height;var i=new b.Canvas(e);this.backgroundImage?(i.setBackgroundImage(this.backgroundImage.src,(function(){i.renderAll(),t&&t(i)})),i.backgroundImageOpacity=this.backgroundImageOpacity,i.backgroundImageStretch=this.backgroundImageStretch):t&&t(i)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n=e.util.toFixed,s=e.util.string.capitalize,o=e.util.degreesToRadians,a=!e.isLikelyNode;e.Object||(e.Object=e.util.createClass(e.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:a,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(t){t&&this.setOptions(t)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=e.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(t){var i=e.perfLimitSizeTotal,r=t.width,n=t.height,s=e.maxCacheSideLimit,o=e.minCacheSideLimit;if(r<=s&&n<=s&&r*n<=i)return rc&&(t.zoomX/=r/c,t.width=c,t.capped=!0),n>u&&(t.zoomY/=n/u,t.height=u,t.capped=!0),t},_getCacheCanvasDimensions:function(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),i=e.x*t.scaleX/this.scaleX,r=e.y*t.scaleY/this.scaleY;return{width:i+2,height:r+2,zoomX:t.scaleX,zoomY:t.scaleY,x:i,y:r}},_updateCacheCanvas:function(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var i=t._currentTransform.target,r=t._currentTransform.action;if(this===i&&r.slice&&"scale"===r.slice(0,5))return!1}var n,s,o=this._cacheCanvas,a=this._limitCacheSize(this._getCacheCanvasDimensions()),h=e.minCacheSideLimit,l=a.width,c=a.height,u=a.zoomX,d=a.zoomY,f=l!==this.cacheWidth||c!==this.cacheHeight,g=this.zoomX!==u||this.zoomY!==d,m=f||g,p=0,_=0,v=!1;if(f){var y=this._cacheCanvas.width,w=this._cacheCanvas.height,E=l>y||c>w;v=E||(l<.9*y||c<.9*w)&&y>h&&w>h,E&&!a.capped&&(l>h||c>h)&&(p=.1*l,_=.1*c)}return this instanceof e.Text&&this.path&&(m=!0,v=!0,p+=this.getHeightOfLine(0)*this.zoomX,_+=this.getHeightOfLine(0)*this.zoomY),!!m&&(v?(o.width=Math.ceil(l+p),o.height=Math.ceil(c+_)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,o.width,o.height)),n=a.x/2,s=a.y/2,this.cacheTranslationX=Math.round(o.width/2-n)+n,this.cacheTranslationY=Math.round(o.height/2-s)+s,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(u,d),this.zoomX=u,this.zoomY=d,!0)},setOptions:function(t){this._setOptions(t),this._initGradient(t.fill,"fill"),this._initGradient(t.stroke,"stroke"),this._initPattern(t.fill,"fill"),this._initPattern(t.stroke,"stroke")},transform:function(t){var e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,i=this.calcTransformMatrix(!e);t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},toObject:function(t){var i=e.Object.NUM_FRACTION_DIGITS,r={type:this.type,version:e.version,originX:this.originX,originY:this.originY,left:n(this.left,i),top:n(this.top,i),width:n(this.width,i),height:n(this.height,i),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:n(this.strokeWidth,i),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:n(this.strokeMiterLimit,i),scaleX:n(this.scaleX,i),scaleY:n(this.scaleY,i),angle:n(this.angle,i),flipX:this.flipX,flipY:this.flipY,opacity:n(this.opacity,i),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:n(this.skewX,i),skewY:n(this.skewY,i)};return this.clipPath&&!this.clipPath.excludeFromExport&&(r.clipPath=this.clipPath.toObject(t),r.clipPath.inverted=this.clipPath.inverted,r.clipPath.absolutePositioned=this.clipPath.absolutePositioned),e.util.populateWithProperties(this,r,t),this.includeDefaultValues||(r=this._removeDefaultValues(r)),r},toDatalessObject:function(t){return this.toObject(t)},_removeDefaultValues:function(t){var i=e.util.getKlass(t.type).prototype;return i.stateProperties.forEach((function(e){"left"!==e&&"top"!==e&&(t[e]===i[e]&&delete t[e],Array.isArray(t[e])&&Array.isArray(i[e])&&0===t[e].length&&0===i[e].length&&delete t[e])})),t},toString:function(){return"#"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=e.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}},getTotalObjectScaling:function(){var t=this.getObjectScaling(),e=t.scaleX,i=t.scaleY;if(this.canvas){var r=this.canvas.getZoom(),n=this.canvas.getRetinaScaling();e*=r*n,i*=r*n}return{scaleX:e,scaleY:i}},getObjectOpacity:function(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t},_set:function(t,i){var r="scaleX"===t||"scaleY"===t,n=this[t]!==i,s=!1;return r&&(i=this._constrainScale(i)),"scaleX"===t&&i<0?(this.flipX=!this.flipX,i*=-1):"scaleY"===t&&i<0?(this.flipY=!this.flipY,i*=-1):"shadow"!==t||!i||i instanceof e.Shadow?"dirty"===t&&this.group&&this.group.set("dirty",i):i=new e.Shadow(i),this[t]=i,n&&(s=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,s&&this.group.set("dirty",!0)):s&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:e.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())},renderCache:function(t){t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this._cacheContext=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!=typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(t,i){if(t.save(),i.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",i.absolutePositioned){var r=e.util.invertTransform(this.calcTransformMatrix());t.transform(r[0],r[1],r[2],r[3],r[4],r[5])}i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},drawObject:function(t,e){var i=this.fill,r=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t,this.clipPath),this.fill=i,this.stroke=r},_drawClipPath:function(t,e){e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t,e))},drawCacheOnCanvas:function(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&this._cacheContext&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!t){var e=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-i/2,e,i)}return!0}return!1},_renderBackground:function(t){if(this.backgroundColor){var e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}},_setOpacity:function(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity},_setStrokeStyles:function(t,e){var i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)},_setFillStyles:function(t,e){var i=e.fill;i&&(i.toLive?(t.fillStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=i)},_setClippingProperties:function(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"},_setLineDash:function(t,e){e&&0!==e.length&&(1&e.length&&e.push.apply(e,e),t.setLineDash(e))},_renderControls:function(t,i){var r,n,s,a=this.getViewportTransform(),h=this.calcTransformMatrix();n=void 0!==(i=i||{}).hasBorders?i.hasBorders:this.hasBorders,s=void 0!==i.hasControls?i.hasControls:this.hasControls,h=e.util.multiplyTransformMatrices(a,h),r=e.util.qrDecompose(h),t.save(),t.translate(r.translateX,r.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(r.angle-=180),t.rotate(o(this.group?r.angle:this.angle)),i.forActiveSelection||this.group?n&&this.drawBordersInGroup(t,r,i):n&&this.drawBorders(t,i),s&&this.drawControls(t,i),t.restore()},_setShadow:function(t){if(this.shadow){var i,r=this.shadow,n=this.canvas,s=n&&n.viewportTransform[0]||1,o=n&&n.viewportTransform[3]||1;i=r.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),n&&n._isRetinaScaling()&&(s*=e.devicePixelRatio,o*=e.devicePixelRatio),t.shadowColor=r.color,t.shadowBlur=r.blur*e.browserShadowBlurConstant*(s+o)*(i.scaleX+i.scaleY)/4,t.shadowOffsetX=r.offsetX*s*i.scaleX,t.shadowOffsetY=r.offsetY*o*i.scaleY}},_removeShadow:function(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)},_applyPatternGradientTransform:function(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var i=e.gradientTransform||e.patternTransform,r=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,r,n):t.transform(1,0,0,1,r,n),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:r,offsetY:n}},_renderPaintInOrder:function(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))},_render:function(){},_renderFill:function(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())},_renderStroke:function(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}},_applyPatternForTransformedGradient:function(t,i){var r,n=this._limitCacheSize(this._getCacheCanvasDimensions()),s=e.util.createCanvasElement(),o=this.canvas.getRetinaScaling(),a=n.x/this.scaleX/o,h=n.y/this.scaleY/o;s.width=a,s.height=h,(r=s.getContext("2d")).beginPath(),r.moveTo(0,0),r.lineTo(a,0),r.lineTo(a,h),r.lineTo(0,h),r.closePath(),r.translate(a/2,h/2),r.scale(n.zoomX/this.scaleX/o,n.zoomY/this.scaleY/o),this._applyPatternGradientTransform(r,i),r.fillStyle=i.toLive(t),r.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(o*this.scaleX/n.zoomX,o*this.scaleY/n.zoomY),t.strokeStyle=r.createPattern(s,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var t=e.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}},_removeTransformMatrix:function(t){var i=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),i=e.util.transformPoint(i,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,i.x+=t.offsetLeft,i.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(i,"center","center")},clone:function(t,i){var r=this.toObject(i);this.constructor.fromObject?this.constructor.fromObject(r,t):e.Object._fromObject("Object",r,t)},cloneAsImage:function(t,i){var r=this.toCanvasElement(i);return t&&t(new e.Image(r)),this},toCanvasElement:function(t){t||(t={});var i=e.util,r=i.saveObjectTransform(this),n=this.group,s=this.shadow,o=Math.abs,a=(t.multiplier||1)*(t.enableRetinaScaling?e.devicePixelRatio:1);delete this.group,t.withoutTransform&&i.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var h,l,c,u,d=e.util.createCanvasElement(),f=this.getBoundingRect(!0,!0),g=this.shadow,m={x:0,y:0};g&&(l=g.blur,h=g.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),m.x=2*Math.round(o(g.offsetX)+l)*o(h.scaleX),m.y=2*Math.round(o(g.offsetY)+l)*o(h.scaleY)),c=f.width+m.x,u=f.height+m.y,d.width=Math.ceil(c),d.height=Math.ceil(u);var p=new e.StaticCanvas(d,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(p.backgroundColor="#fff"),this.setPositionByOrigin(new e.Point(p.width/2,p.height/2),"center","center");var _=this.canvas;p.add(this);var v=p.toCanvasElement(a||1,t);return this.shadow=s,this.set("canvas",_),n&&(this.group=n),this.set(r).setCoords(),p._objects=[],p.dispose(),p=null,v},toDataURL:function(t){return t||(t={}),e.util.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)},isType:function(t){return arguments.length>1?Array.from(arguments).includes(this.type):this.type===t},complexity:function(){return 1},toJSON:function(t){return this.toObject(t)},rotate:function(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(t,i){i=i||this.canvas.getPointer(t);var r=new e.Point(i.x,i.y),n=this._getLeftTopCoords();return this.angle&&(r=e.util.rotatePoint(r,n,o(-this.angle))),{x:r.x-n.x,y:r.y-n.y}},_setupCompositeOperation:function(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){e.runningAnimations&&e.runningAnimations.cancelByTarget(this)}}),e.util.createAccessors&&e.util.createAccessors(e.Object),i(e.Object.prototype,e.Observable),e.Object.NUM_FRACTION_DIGITS=2,e.Object.ENLIVEN_PROPS=["clipPath"],e.Object._fromObject=function(t,i,n,s){var o=e[t];i=r(i,!0),e.util.enlivenPatterns([i.fill,i.stroke],(function(t){void 0!==t[0]&&(i.fill=t[0]),void 0!==t[1]&&(i.stroke=t[1]),e.util.enlivenObjectEnlivables(i,i,(function(){var t=s?new o(i[s],i):new o(i);n&&n(t)}))}))},e.Object.__uid=0)}(e),w=b.util.degreesToRadians,E={left:-.5,center:0,right:.5},C={top:-.5,center:0,bottom:.5},b.util.object.extend(b.Object.prototype,{translateToGivenOrigin:function(t,e,i,r,n){var s,o,a,h=t.x,l=t.y;return"string"==typeof e?e=E[e]:e-=.5,"string"==typeof r?r=E[r]:r-=.5,"string"==typeof i?i=C[i]:i-=.5,"string"==typeof n?n=C[n]:n-=.5,o=n-i,((s=r-e)||o)&&(a=this._getTransformedDimensions(),h=t.x+s*a.x,l=t.y+o*a.y),new b.Point(h,l)},translateToCenterPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,e,i,"center","center");return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},translateToOriginPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,"center","center",e,i);return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},getCenterPoint:function(){var t=new b.Point(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)},getPointByOrigin:function(t,e){var i=this.getCenterPoint();return this.translateToOriginPoint(i,t,e)},toLocalPoint:function(t,e,i){var r,n,s=this.getCenterPoint();return r=void 0!==e&&void 0!==i?this.translateToGivenOrigin(s,"center","center",e,i):new b.Point(this.left,this.top),n=new b.Point(t.x,t.y),this.angle&&(n=b.util.rotatePoint(n,s,-w(this.angle))),n.subtractEquals(r)},setPositionByOrigin:function(t,e,i){var r=this.translateToCenterPoint(t,e,i),n=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",n.x),this.set("top",n.y)},adjustPosition:function(t){var e,i,r=w(this.angle),n=this.getScaledWidth(),s=b.util.cos(r)*n,o=b.util.sin(r)*n;e="string"==typeof this.originX?E[this.originX]:this.originX-.5,i="string"==typeof t?E[t]:t-.5,this.left+=s*(i-e),this.top+=o*(i-e),this.setCoords(),this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y},_resetOrigin:function(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}}),function(){var t=b.util,e=t.degreesToRadians,i=t.multiplyTransformMatrices,r=t.transformPoint;t.object.extend(b.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(t,e){return e?t?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),t?this.aCoords:this.lineCoords)},getCoords:function(t,e){return i=this._getCoords(t,e),[new b.Point(i.tl.x,i.tl.y),new b.Point(i.tr.x,i.tr.y),new b.Point(i.br.x,i.br.y),new b.Point(i.bl.x,i.bl.y)];var i},intersectsWithRect:function(t,e,i,r){var n=this.getCoords(i,r);return"Intersection"===b.Intersection.intersectPolygonRectangle(n,t,e).status},intersectsWithObject:function(t,e,i){return"Intersection"===b.Intersection.intersectPolygonPolygon(this.getCoords(e,i),t.getCoords(e,i)).status||t.isContainedWithinObject(this,e,i)||this.isContainedWithinObject(t,e,i)},isContainedWithinObject:function(t,e,i){for(var r=this.getCoords(e,i),n=e?t.aCoords:t.lineCoords,s=0,o=t._getImageLines(n);s<4;s++)if(!t.containsPoint(r[s],o))return!1;return!0},isContainedWithinRect:function(t,e,i,r){var n=this.getBoundingRect(i,r);return n.left>=t.x&&n.left+n.width<=e.x&&n.top>=t.y&&n.top+n.height<=e.y},containsPoint:function(t,e,i,r){var n=this._getCoords(i,r),s=(e=e||this._getImageLines(n),this._findCrossPoints(t,e));return 0!==s&&s%2==1},isOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.getCoords(!0,t).some((function(t){return t.x<=i.x&&t.x>=e.x&&t.y<=i.y&&t.y>=e.y}))||!!this.intersectsWithRect(e,i,!0,t)||this._containsCenterOfCanvas(e,i,t)},_containsCenterOfCanvas:function(t,e,i){var r={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(r,null,!0,i)},isPartiallyOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,i,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=i.x||t.x<=e.x)&&(t.y>=i.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,i,t)},_getImageLines:function(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}},_findCrossPoints:function(t,e){var i,r,n,s=0;for(var o in e)if(!((n=e[o]).o.y=t.y&&n.d.y>=t.y||(n.o.x===n.d.x&&n.o.x>=t.x?r=n.o.x:(i=(n.d.y-n.o.y)/(n.d.x-n.o.x),r=-(t.y-0*t.x-(n.o.y-i*n.o.x))/(0-i)),r>=t.x&&(s+=1),2!==s)))break;return s},getBoundingRect:function(e,i){var r=this.getCoords(e,i);return t.makeBoundingBoxFromPoints(r)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(t){return Math.abs(t)\n')}},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})},toClipPathSVG:function(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})},_createBaseClipPathSVGMarkup:function(t,e){var i=(e=e||{}).reviver,r=e.additionalTransform||"",n=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),s=t.indexOf("COMMON_PARTS");return t[s]=n,i?i(t.join("")):t.join("")},_createBaseSVGMarkup:function(t,e){var i,r,n=(e=e||{}).noStyle,s=e.reviver,o=n?"":'style="'+this.getSvgStyles()+'" ',a=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",h=this.clipPath,l=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",c=h&&h.absolutePositioned,u=this.stroke,d=this.fill,f=this.shadow,g=[],m=t.indexOf("COMMON_PARTS"),p=e.additionalTransform;return h&&(h.clipPathId="CLIPPATH_"+b.Object.__uid++,r='\n'+h.toClipPathSVG(s)+"\n"),c&&g.push("\n"),g.push("\n"),i=[o,l,n?"":this.addPaintOrder()," ",p?'transform="'+p+'" ':""].join(""),t[m]=i,d&&d.toLive&&g.push(d.toSVG(this)),u&&u.toLive&&g.push(u.toSVG(this)),f&&g.push(f.toSVG(this)),h&&g.push(r),g.push(t.join("")),g.push("\n"),c&&g.push("\n"),s?s(g.join("")):g.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var t=b.util.object.extend,e="stateProperties";function i(e,i,r){var n={};r.forEach((function(t){n[t]=e[t]})),t(e[i],n,!0)}function r(t,e,i){if(t===e)return!0;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(var n=0,s=t.length;n=0;h--)if(n=a[h],this.isControlVisible(n)&&(r=this._getImageLines(e?this.oCoords[n].touchCorner:this.oCoords[n].corner),0!==(i=this._findCrossPoints({x:s,y:o},r))&&i%2==1))return this.__corner=n,n;return!1},forEachControl:function(t){for(var e in this.controls)t(this.controls[e],e,this)},_setCornerCoords:function(){var t=this.oCoords;for(var e in t){var i=this.controls[e];t[e].corner=i.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=i.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}},drawSelectionBackground:function(e){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;e.save();var i=this.getCenterPoint(),r=this._calculateCurrentDimensions(),n=this.canvas.viewportTransform;return e.translate(i.x,i.y),e.scale(1/n[0],1/n[3]),e.rotate(t(this.angle)),e.fillStyle=this.selectionBackgroundColor,e.fillRect(-r.x/2,-r.y/2,r.x,r.y),e.restore(),this},drawBorders:function(t,e){e=e||{};var i=this._calculateCurrentDimensions(),r=this.borderScaleFactor,n=i.x+r,s=i.y+r,o=void 0!==e.hasControls?e.hasControls:this.hasControls,a=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-n/2,-s/2,n,s),o&&(t.beginPath(),this.forEachControl((function(e,i,r){e.withConnection&&e.getVisibility(r,i)&&(a=!0,t.moveTo(e.x*n,e.y*s),t.lineTo(e.x*n+e.offsetX,e.y*s+e.offsetY))})),a&&t.stroke()),t.restore(),this},drawBordersInGroup:function(t,e,i){i=i||{};var r=b.util.sizeAfterTransform(this.width,this.height,e),n=this.strokeWidth,s=this.strokeUniform,o=this.borderScaleFactor,a=r.x+n*(s?this.canvas.getZoom():e.scaleX)+o,h=r.y+n*(s?this.canvas.getZoom():e.scaleY)+o;return t.save(),this._setLineDash(t,i.borderDashArray||this.borderDashArray),t.strokeStyle=i.borderColor||this.borderColor,t.strokeRect(-a/2,-h/2,a,h),t.restore(),this},drawControls:function(t,e){e=e||{},t.save();var i,r,n=this.canvas.getRetinaScaling();return t.setTransform(n,0,0,n,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl((function(n,s,o){r=o.oCoords[s],n.getVisibility(o,s)&&(i&&(r=b.util.transformPoint(r,i)),n.render(t,r.x,r.y,e,o))})),t.restore(),this},isControlVisible:function(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)},setControlVisible:function(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this},setControlsVisibility:function(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this},onDeselect:function(){},onSelect:function(){}})}(),b.util.object.extend(b.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(e){t.set("left",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxCenterObjectV:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(e){t.set("top",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxRemove:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(e){t.set("opacity",e),s.requestRenderAll(),n()},onComplete:function(){s.remove(t),r()}})}}),b.util.object.extend(b.Object.prototype,{animate:function(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,i=[],r=[];for(t in arguments[0])i.push(t);for(var n=0,s=i.length;n-1||n&&s.colorProperties.indexOf(n[1])>-1,a=n?this.get(n[0])[n[1]]:this.get(t);"from"in i||(i.from=a),o||(e=~e.indexOf("=")?a+parseFloat(e.replace("=","")):parseFloat(e));var h={target:this,startValue:i.from,endValue:e,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(t,e,r){return i.abort.call(s,t,e,r)},onChange:function(e,o,a){n?s[n[0]][n[1]]=e:s.set(t,e),r||i.onChange&&i.onChange(e,o,a)},onComplete:function(t,e,n){r||(s.setCoords(),i.onComplete&&i.onComplete(t,e,n))}};return o?b.util.animateColor(h.startValue,h.endValue,h.duration,h):b.util.animate(h)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n={x1:1,x2:1,y1:1,y2:1};function s(t,e){var i=t.origin,r=t.axis1,n=t.axis2,s=t.dimension,o=e.nearest,a=e.center,h=e.farthest;return function(){switch(this.get(i)){case o:return Math.min(this.get(r),this.get(n));case a:return Math.min(this.get(r),this.get(n))+.5*this.get(s);case h:return Math.max(this.get(r),this.get(n))}}}e.Line?e.warn("fabric.Line is already defined"):(e.Line=e.util.createClass(e.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:e.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(t,e){t||(t=[0,0,0,0]),this.callSuper("initialize",e),this.set("x1",t[0]),this.set("y1",t[1]),this.set("x2",t[2]),this.set("y2",t[3]),this._setWidthHeight(e)},_setWidthHeight:function(t){t||(t={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in t?t.left:this._getLeftToOriginX(),this.top="top"in t?t.top:this._getTopToOriginY()},_set:function(t,e){return this.callSuper("_set",t,e),void 0!==n[t]&&this._setWidthHeight(),this},_getLeftToOriginX:s({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:s({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(t){t.beginPath();var e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;var i=t.strokeStyle;t.strokeStyle=this.stroke||t.fillStyle,this.stroke&&this._renderStroke(t),t.strokeStyle=i},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(t){return i(this.callSuper("toObject",t),this.calcLinePoints())},_getNonTransformedDimensions:function(){var t=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t},calcLinePoints:function(){var t=this.x1<=this.x2?-1:1,e=this.y1<=this.y2?-1:1,i=t*this.width*.5,r=e*this.height*.5;return{x1:i,x2:t*this.width*-.5,y1:r,y2:e*this.height*-.5}},_toSVG:function(){var t=this.calcLinePoints();return["\n']}}),e.Line.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),e.Line.fromElement=function(t,r,n){n=n||{};var s=e.parseAttributes(t,e.Line.ATTRIBUTE_NAMES),o=[s.x1||0,s.y1||0,s.x2||0,s.y2||0];r(new e.Line(o,i(s,n)))},e.Line.fromObject=function(t,i){var n=r(t,!0);n.points=[t.x1,t.y1,t.x2,t.y2],e.Object._fromObject("Line",n,(function(t){delete t.points,i&&i(t)}),"points")})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians;e.Circle?e.warn("fabric.Circle is already defined."):(e.Circle=e.util.createClass(e.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,cacheProperties:e.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(t,e){return this.callSuper("_set",t,e),"radius"===t&&this.setRadius(e),this},toObject:function(t){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(t))},_toSVG:function(){var t,r=(this.endAngle-this.startAngle)%360;if(0===r)t=["\n'];else{var n=i(this.startAngle),s=i(this.endAngle),o=this.radius;t=['180?"1":"0")+" 1"," "+e.util.cos(s)*o+" "+e.util.sin(s)*o,'" ',"COMMON_PARTS"," />\n"]}return t},_render:function(t){t.beginPath(),t.arc(0,0,this.radius,i(this.startAngle),i(this.endAngle),!1),this._renderPaintInOrder(t)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}}),e.Circle.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),e.Circle.fromElement=function(t,i){var r,n=e.parseAttributes(t,e.Circle.ATTRIBUTE_NAMES);if(!("radius"in(r=n)&&r.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");n.left=(n.left||0)-n.radius,n.top=(n.top||0)-n.radius,i(new e.Circle(n))},e.Circle.fromObject=function(t,i){e.Object._fromObject("Circle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={});e.Triangle?e.warn("fabric.Triangle is already defined"):(e.Triangle=e.util.createClass(e.Object,{type:"triangle",width:100,height:100,_render:function(t){var e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,i),t.lineTo(0,-i),t.lineTo(e,i),t.closePath(),this._renderPaintInOrder(t)},_toSVG:function(){var t=this.width/2,e=this.height/2;return["']}}),e.Triangle.fromObject=function(t,i){return e.Object._fromObject("Triangle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=2*Math.PI;e.Ellipse?e.warn("fabric.Ellipse is already defined."):(e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this.set("rx",t&&t.rx||0),this.set("ry",t&&t.ry||0)},_set:function(t,e){switch(this.callSuper("_set",t,e),t){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']},_render:function(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,i,!1),t.restore(),this._renderPaintInOrder(t)}}),e.Ellipse.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),e.Ellipse.fromElement=function(t,i){var r=e.parseAttributes(t,e.Ellipse.ATTRIBUTE_NAMES);r.left=(r.left||0)-r.rx,r.top=(r.top||0)-r.ry,i(new e.Ellipse(r))},e.Ellipse.fromObject=function(t,i){e.Object._fromObject("Ellipse",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend;e.Rect?e.warn("fabric.Rect is already defined"):(e.Rect=e.util.createClass(e.Object,{stateProperties:e.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(t){var e=this.rx?Math.min(this.rx,this.width/2):0,i=this.ry?Math.min(this.ry,this.height/2):0,r=this.width,n=this.height,s=-this.width/2,o=-this.height/2,a=0!==e||0!==i,h=.4477152502;t.beginPath(),t.moveTo(s+e,o),t.lineTo(s+r-e,o),a&&t.bezierCurveTo(s+r-h*e,o,s+r,o+h*i,s+r,o+i),t.lineTo(s+r,o+n-i),a&&t.bezierCurveTo(s+r,o+n-h*i,s+r-h*e,o+n,s+r-e,o+n),t.lineTo(s+e,o+n),a&&t.bezierCurveTo(s+h*e,o+n,s,o+n-h*i,s,o+n-i),t.lineTo(s,o+i),a&&t.bezierCurveTo(s,o+h*i,s+h*e,o,s+e,o),t.closePath(),this._renderPaintInOrder(t)},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']}}),e.Rect.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),e.Rect.fromElement=function(t,r,n){if(!t)return r(null);n=n||{};var s=e.parseAttributes(t,e.Rect.ATTRIBUTE_NAMES);s.left=s.left||0,s.top=s.top||0,s.height=s.height||0,s.width=s.width||0;var o=new e.Rect(i(n?e.util.object.clone(n):{},s));o.visible=o.visible&&o.width>0&&o.height>0,r(o)},e.Rect.fromObject=function(t,i){return e.Object._fromObject("Rect",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.array.min,n=e.util.array.max,s=e.util.toFixed,o=e.util.projectStrokeOnPoints;e.Polyline?e.warn("fabric.Polyline is already defined"):(e.Polyline=e.util.createClass(e.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:e.Object.prototype.cacheProperties.concat("points"),initialize:function(t,e){e=e||{},this.points=t||[],this.callSuper("initialize",e),this._setPositionDimensions(e)},_projectStrokeOnPoints:function(){return o(this.points,this,!0)},_setPositionDimensions:function(t){var e,i=this._calcDimensions(t),r=this.exactBoundingBox?this.strokeWidth:0;this.width=i.width-r,this.height=i.height-r,t.fromSVG||(e=this.translateToGivenOrigin({x:i.left-this.strokeWidth/2+r/2,y:i.top-this.strokeWidth/2+r/2},"left","top",this.originX,this.originY)),void 0===t.left&&(this.left=t.fromSVG?i.left:e.x),void 0===t.top&&(this.top=t.fromSVG?i.top:e.y),this.pathOffset={x:i.left+this.width/2+r/2,y:i.top+this.height/2+r/2}},_calcDimensions:function(){var t=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,e=r(t,"x")||0,i=r(t,"y")||0;return{left:e,top:i,width:(n(t,"x")||0)-e,height:(n(t,"y")||0)-i}},toObject:function(t){return i(this.callSuper("toObject",t),{points:this.points.concat()})},_toSVG:function(){for(var t=[],i=this.pathOffset.x,r=this.pathOffset.y,n=e.Object.NUM_FRACTION_DIGITS,o=0,a=this.points.length;o\n']},commonRender:function(t){var e,i=this.points.length,r=this.pathOffset.x,n=this.pathOffset.y;if(!i||isNaN(this.points[i-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-r,this.points[0].y-n);for(var s=0;s"},toObject:function(t){return n(this.callSuper("toObject",t),{path:this.path.map((function(t){return t.slice()}))})},toDatalessObject:function(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e},_toSVG:function(){return["\n"]},_getOffsetTransform:function(){var t=e.Object.NUM_FRACTION_DIGITS;return" translate("+o(-this.pathOffset.x,t)+", "+o(-this.pathOffset.y,t)+")"},toClipPathSVG:function(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},toSVG:function(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var t,n,s=[],o=[],a=0,h=0,l=0,c=0,u=0,d=this.path.length;u"},addWithUpdate:function(t){var i=!!this.group;return this._restoreObjectsState(),e.util.resetObjectTransform(this),t&&(i&&e.util.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,i?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(t){return this._restoreObjectsState(),e.util.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)},_onObjectRemoved:function(t){this.dirty=!0,delete t.group},_set:function(t,i){var r=this._objects.length;if(this.useSetOnGroup)for(;r--;)this._objects[r].setOnGroup(t,i);if("canvas"===t)for(;r--;)this._objects[r]._set(t,i);e.Object.prototype._set.call(this,t,i)},toObject:function(t){var i=this.includeDefaultValues,r=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(e){var r=e.includeDefaultValues;e.includeDefaultValues=i;var n=e.toObject(t);return e.includeDefaultValues=r,n})),n=e.Object.prototype.toObject.call(this,t);return n.objects=r,n},toDatalessObject:function(t){var i,r=this.sourcePath;if(r)i=r;else{var n=this.includeDefaultValues;i=this._objects.map((function(e){var i=e.includeDefaultValues;e.includeDefaultValues=n;var r=e.toDatalessObject(t);return e.includeDefaultValues=i,r}))}var s=e.Object.prototype.toDatalessObject.call(this,t);return s.objects=i,s},render:function(t){this._transformDone=!0,this.callSuper("render",t),this._transformDone=!1},shouldCache:function(){var t=e.Object.prototype.shouldCache.call(this);if(t)for(var i=0,r=this._objects.length;i\n"],i=0,r=this._objects.length;i\n"),e},getSvgStyles:function(){var t=void 0!==this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")},toClipPathSVG:function(t){for(var e=[],i=0,r=this._objects.length;i"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",t,e),void 0===(i=i||{}).hasControls&&(i.hasControls=!1),i.forActiveSelection=!0;for(var r=0,n=this._objects.length;r\n','\t\n',"\n"),o=' clip-path="url(#imageCrop_'+h+')" '}if(this.imageSmoothing||(a='" image-rendering="optimizeSpeed'),i.push("\t\n"),this.stroke||this.strokeDashArray){var l=this.fill;this.fill=null,t=["\t\n'],this.fill=l}return"fill"!==this.paintFirst?e.concat(t,i):e.concat(i,t)},getSrc:function(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""},setSrc:function(t,e,i){return b.util.loadImage(t,(function(t,r){this.setElement(t,i),this._setWidthHeight(),e&&e(this,r)}),this,i&&i.crossOrigin),this},toString:function(){return'#'},applyResizeFilters:function(){var t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),r=i.scaleX,n=i.scaleY,s=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||r>e&&n>e)return this._element=s,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=r,void(this._lastScaleY=n);b.filterBackend||(b.filterBackend=b.initFilterBackend());var o=b.util.createCanvasElement(),a=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,h=s.width,l=s.height;o.width=h,o.height=l,this._element=o,this._lastScaleX=t.scaleX=r,this._lastScaleY=t.scaleY=n,b.filterBackend.applyFilters([t],s,h,l,this._element,a),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height},applyFilters:function(t){if(t=(t=t||this.filters||[]).filter((function(t){return t&&!t.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===t.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var e=this._originalElement,i=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(this._element===this._originalElement){var n=b.util.createCanvasElement();n.width=i,n.height=r,this._element=n,this._filteredEl=n}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,r),this._lastScaleX=1,this._lastScaleY=1;return b.filterBackend||(b.filterBackend=b.initFilterBackend()),b.filterBackend.applyFilters(t,this._originalElement,i,r,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)},drawCacheOnCanvas:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),b.Object.prototype.drawCacheOnCanvas.call(this,t)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(t){var e=this._element;if(e){var i=this._filterScalingX,r=this._filterScalingY,n=this.width,s=this.height,o=Math.min,a=Math.max,h=a(this.cropX,0),l=a(this.cropY,0),c=e.naturalWidth||e.width,u=e.naturalHeight||e.height,d=h*i,f=l*r,g=o(n*i,c-d),m=o(s*r,u-f),p=-n/2,_=-s/2,v=o(n,c/i-h),y=o(s,u/r-l);e&&t.drawImage(e,d,f,g,m,p,_,v,y)}},_needsResize:function(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(t,e){this.setElement(b.util.getById(t),e),b.util.addClass(this.getElement(),b.Image.CSS_CANVAS)},_initConfig:function(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)},_initFilters:function(t,e){t&&t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),"fabric.Image.filters"):e&&e()},_setWidthHeight:function(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0},parsePreserveAspectRatioAttribute:function(){var t,e=b.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),i=this._element.width,r=this._element.height,n=1,s=1,o=0,a=0,h=0,l=0,c=this.width,u=this.height,d={width:c,height:u};return!e||"none"===e.alignX&&"none"===e.alignY?(n=c/i,s=u/r):("meet"===e.meetOrSlice&&(t=(c-i*(n=s=b.util.findScaleToFit(this._element,d)))/2,"Min"===e.alignX&&(o=-t),"Max"===e.alignX&&(o=t),t=(u-r*s)/2,"Min"===e.alignY&&(a=-t),"Max"===e.alignY&&(a=t)),"slice"===e.meetOrSlice&&(t=i-c/(n=s=b.util.findScaleToCover(this._element,d)),"Mid"===e.alignX&&(h=t/2),"Max"===e.alignX&&(h=t),t=r-u/s,"Mid"===e.alignY&&(l=t/2),"Max"===e.alignY&&(l=t),i=c/n,r=u/s)),{width:i,height:r,scaleX:n,scaleY:s,offsetLeft:o,offsetTop:a,cropX:h,cropY:l}}}),b.Image.CSS_CANVAS="canvas-img",b.Image.prototype.getSvgSrc=b.Image.prototype.getSrc,b.Image.fromObject=function(t,e){var i=b.util.object.clone(t);b.util.loadImage(i.src,(function(t,r){r?e&&e(null,!0):b.Image.prototype._initFilters.call(i,i.filters,(function(r){i.filters=r||[],b.Image.prototype._initFilters.call(i,[i.resizeFilter],(function(r){i.resizeFilter=r[0],b.util.enlivenObjectEnlivables(i,i,(function(){var r=new b.Image(t,i);e(r,!1)}))}))}))}),null,i.crossOrigin)},b.Image.fromURL=function(t,e,i){b.util.loadImage(t,(function(t,r){e&&e(new b.Image(t,i),r)}),null,i&&i.crossOrigin)},b.Image.ATTRIBUTE_NAMES=b.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),b.Image.fromElement=function(t,i,r){var n=b.parseAttributes(t,b.Image.ATTRIBUTE_NAMES);b.Image.fromURL(n["xlink:href"],i,e(r?b.util.object.clone(r):{},n))})}(e),b.util.object.extend(b.Object.prototype,{_getAngleValueForStraighten:function(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten())},fxStraighten:function(t){var e=function(){},i=(t=t||{}).onComplete||e,r=t.onChange||e,n=this;return b.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(t){n.rotate(t),r()},onComplete:function(){n.setCoords(),i()}})}}),b.util.object.extend(b.StaticCanvas.prototype,{straightenObject:function(t){return t.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(t){return t.fxStraighten({onChange:this.requestRenderAllBound})}}),function(){function t(t,e){var i="precision "+e+" float;\nvoid main(){}",r=t.createShader(t.FRAGMENT_SHADER);return t.shaderSource(r,i),t.compileShader(r),!!t.getShaderParameter(r,t.COMPILE_STATUS)}function e(t){t&&t.tileSize&&(this.tileSize=t.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}b.isWebglSupported=function(e){if(b.isLikelyNode)return!1;e=e||b.WebglFilterBackend.prototype.tileSize;var i=document.createElement("canvas"),r=i.getContext("webgl")||i.getContext("experimental-webgl"),n=!1;if(r){b.maxTextureSize=r.getParameter(r.MAX_TEXTURE_SIZE),n=b.maxTextureSize>=e;for(var s=["highp","mediump","lowp"],o=0;o<3;o++)if(t(r,s[o])){b.webGlPrecision=s[o];break}}return this.isSupported=n,n},b.WebglFilterBackend=e,e.prototype={tileSize:2048,resources:{},setupGLContext:function(t,e){this.dispose(),this.createWebGLCanvas(t,e),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(t,e)},chooseFastestCopyGLTo2DMethod:function(t,e){var i,r=void 0!==window.performance;try{new ImageData(1,1),i=!0}catch(t){i=!1}var n="undefined"!=typeof ArrayBuffer,s="undefined"!=typeof Uint8ClampedArray;if(r&&i&&n&&s){var o=b.util.createCanvasElement(),a=new ArrayBuffer(t*e*4);if(b.forceGLPutImageData)return this.imageBuffer=a,void(this.copyGLTo2D=x);var h,l,c={imageBuffer:a,destinationWidth:t,destinationHeight:e,targetCanvas:o};o.width=t,o.height=e,h=window.performance.now(),I.call(c,this.gl,c),l=window.performance.now()-h,h=window.performance.now(),x.call(c,this.gl,c),l>window.performance.now()-h?(this.imageBuffer=a,this.copyGLTo2D=x):this.copyGLTo2D=I}},createWebGLCanvas:function(t,e){var i=b.util.createCanvasElement();i.width=t,i.height=e;var r={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},n=i.getContext("webgl",r);n||(n=i.getContext("experimental-webgl",r)),n&&(n.clearColor(0,0,0,0),this.canvas=i,this.gl=n)},applyFilters:function(t,e,i,r,n,s){var o,a=this.gl;s&&(o=this.getCachedTexture(s,e));var h={originalWidth:e.width||e.originalWidth,originalHeight:e.height||e.originalHeight,sourceWidth:i,sourceHeight:r,destinationWidth:i,destinationHeight:r,context:a,sourceTexture:this.createTexture(a,i,r,!o&&e),targetTexture:this.createTexture(a,i,r),originalTexture:o||this.createTexture(a,i,r,!o&&e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:n},l=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,l),t.forEach((function(t){t&&t.applyTo(h)})),function(t){var e=t.targetCanvas,i=e.width,r=e.height,n=t.destinationWidth,s=t.destinationHeight;i===n&&r===s||(e.width=n,e.height=s)}(h),this.copyGLTo2D(a,h),a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(h.sourceTexture),a.deleteTexture(h.targetTexture),a.deleteFramebuffer(l),n.getContext("2d").setTransform(1,0,0,1,0,0),h},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(t,e,i,r){var n=t.createTexture();return t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),r?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),n},getCachedTexture:function(t,e){if(this.textureCache[t])return this.textureCache[t];var i=this.createTexture(this.gl,e.width,e.height,e);return this.textureCache[t]=i,i},evictCachesForKey:function(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])},copyGLTo2D:I,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var t=this.gl,e={renderer:"",vendor:""};if(!t)return e;var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var r=t.getParameter(i.UNMASKED_RENDERER_WEBGL),n=t.getParameter(i.UNMASKED_VENDOR_WEBGL);r&&(e.renderer=r.toLowerCase()),n&&(e.vendor=n.toLowerCase())}return this.gpuInfo=e,e}}}(),function(){var t=function(){};function e(){}b.Canvas2dFilterBackend=e,e.prototype={evictCachesForKey:t,dispose:t,clearWebGLCaches:t,resources:{},applyFilters:function(t,e,i,r,n){var s=n.getContext("2d");s.drawImage(e,0,0,i,r);var o={sourceWidth:i,sourceHeight:r,imageData:s.getImageData(0,0,i,r),originalEl:e,originalImageData:s.getImageData(0,0,i,r),canvasEl:n,ctx:s,filterBackend:this};return t.forEach((function(t){t.applyTo(o)})),o.imageData.width===i&&o.imageData.height===r||(n.width=o.imageData.width,n.height=o.imageData.height),s.putImageData(o.imageData,0,0),o}}}(),b.Image=b.Image||{},b.Image.filters=b.Image.filters||{},b.Image.filters.BaseFilter=b.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(t){t&&this.setOptions(t)},setOptions:function(t){for(var e in t)this[e]=t[e]},createProgram:function(t,e,i){e=e||this.fragmentSource,i=i||this.vertexSource,"highp"!==b.webGlPrecision&&(e=e.replace(/precision highp float/g,"precision "+b.webGlPrecision+" float"));var r=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+t.getShaderInfoLog(r));var n=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+t.getShaderInfoLog(n));var s=t.createProgram();if(t.attachShader(s,r),t.attachShader(s,n),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+t.getProgramInfoLog(s));var o=this.getAttributeLocations(t,s),a=this.getUniformLocations(t,s)||{};return a.uStepW=t.getUniformLocation(s,"uStepW"),a.uStepH=t.getUniformLocation(s,"uStepH"),{program:s,attributeLocations:o,uniformLocations:a}},getAttributeLocations:function(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(t,e,i){var r=e.aPosition,n=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,n),t.enableVertexAttribArray(r),t.vertexAttribPointer(r,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)},_setupFrameBuffer:function(t){var e,i,r=t.context;t.passes>1?(e=t.destinationWidth,i=t.destinationHeight,t.sourceWidth===e&&t.sourceHeight===i||(r.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(r,e,i)),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t.targetTexture,0)):(r.bindFramebuffer(r.FRAMEBUFFER,null),r.finish())},_swapTextures:function(t){t.passes--,t.pass++;var e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e},isNeutralState:function(){var t=this.mainParameter,e=b.Image.filters[this.type].prototype;if(t){if(Array.isArray(e[t])){for(var i=e[t].length;i--;)if(this[t][i]!==e[t][i])return!1;return!0}return e[t]===this[t]}return!1},applyTo:function(t){t.webgl?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},retrieveShader:function(t){return t.programCache.hasOwnProperty(this.type)||(t.programCache[this.type]=this.createProgram(t.context)),t.programCache[this.type]},applyToWebGL:function(t){var e=t.context,i=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(i.program),this.sendAttributeData(e,i.attributeLocations,t.aPosition),e.uniform1f(i.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(i.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,i.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)},unbindAdditionalTexture:function(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(t){this[this.mainParameter]=t},sendUniformData:function(){},createHelpLayer:function(t){if(!t.helpLayer){var e=document.createElement("canvas");e.width=t.sourceWidth,e.height=t.sourceHeight,t.helpLayer=e}},toObject:function(){var t={type:this.type},e=this.mainParameter;return e&&(t[e]=this[e]),t},toJSON:function(){return this.toObject()}}),b.Image.filters.BaseFilter.fromObject=function(t,e){var i=new b.Image.filters[t.type](t);return e&&e(i),i},function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.ColorMatrix=r(i.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(t){this.callSuper("initialize",t),this.matrix=this.matrix.slice(0)},applyTo2d:function(t){var e,i,r,n,s,o=t.imageData.data,a=o.length,h=this.matrix,l=this.colorsOnly;for(s=0;s=w||o<0||o>=y||(h=4*(a*y+o),l=p[f*_+d],e+=m[h]*l,i+=m[h+1]*l,r+=m[h+2]*l,T||(n+=m[h+3]*l));C[s]=e,C[s+1]=i,C[s+2]=r,C[s+3]=T?m[s+3]:n}t.imageData=E},getUniformLocations:function(t,e){return{uMatrix:t.getUniformLocation(e,"uMatrix"),uOpaque:t.getUniformLocation(e,"uOpaque"),uHalfSize:t.getUniformLocation(e,"uHalfSize"),uSize:t.getUniformLocation(e,"uSize")}},sendUniformData:function(t,e){t.uniform1fv(e.uMatrix,this.matrix)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),e.Image.filters.Convolute.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Grayscale=r(i.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(t){var e,i,r=t.imageData.data,n=r.length,s=this.mode;for(e=0;el[0]&&n>l[1]&&s>l[2]&&r 0.0) {\n"+this.fragmentSource[t]+"}\n}"},retrieveShader:function(t){var e,i=this.type+"_"+this.mode;return t.programCache.hasOwnProperty(i)||(e=this.buildSource(this.mode),t.programCache[i]=this.createProgram(t.context,e)),t.programCache[i]},applyTo2d:function(t){var i,r,n,s,o,a,h,l=t.imageData.data,c=l.length,u=1-this.alpha;i=(h=new e.Color(this.color).getSource())[0]*this.alpha,r=h[1]*this.alpha,n=h[2]*this.alpha;for(var d=0;d=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;var i=(e*=Math.PI)/t;return a(e)/e*a(i)/i}},applyTo2d:function(t){var e=t.imageData,i=this.scaleX,r=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/r;var n,s=e.width,a=e.height,h=o(s*i),l=o(a*r);"sliceHack"===this.resizeType?n=this.sliceByTwo(t,s,a,h,l):"hermite"===this.resizeType?n=this.hermiteFastResize(t,s,a,h,l):"bilinear"===this.resizeType?n=this.bilinearFiltering(t,s,a,h,l):"lanczos"===this.resizeType&&(n=this.lanczosResize(t,s,a,h,l)),t.imageData=n},sliceByTwo:function(t,i,n,s,o){var a,h,l=t.imageData,c=.5,u=!1,d=!1,f=i*c,g=n*c,m=e.filterBackend.resources,p=0,_=0,v=i,y=0;for(m.sliceByTwo||(m.sliceByTwo=document.createElement("canvas")),((a=m.sliceByTwo).width<1.5*i||a.height=e)){L=r(1e3*s(b-E.x)),w[L]||(w[L]={});for(var F=C.y-y;F<=C.y+y;F++)F<0||F>=o||(M=r(1e3*s(F-E.y)),w[L][M]||(w[L][M]=f(n(i(L*p,2)+i(M*_,2))/1e3)),(S=w[L][M])>0&&(x+=S,A+=S*c[I=4*(F*e+b)],R+=S*c[I+1],O+=S*c[I+2],D+=S*c[I+3]))}d[I=4*(T*a+h)]=A/x,d[I+1]=R/x,d[I+2]=O/x,d[I+3]=D/x}return++h1&&M<-1||(y=2*M*M*M-3*M*M+1)>0&&(S+=y*f[3+(L=4*(D+x*e))],E+=y,f[L+3]<255&&(y=y*f[L+3]/250),C+=y*f[L],T+=y*f[L+1],b+=y*f[L+2],w+=y)}m[v]=C/w,m[v+1]=T/w,m[v+2]=b/w,m[v+3]=S/E}return g},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),e.Image.filters.Resize.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Contrast=r(i.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(t){if(0!==this.contrast){var e,i=t.imageData.data,r=i.length,n=Math.floor(255*this.contrast),s=259*(n+255)/(255*(259-n));for(e=0;e1&&(e=1/this.aspectRatio):this.aspectRatio<1&&(e=this.aspectRatio),t=e*this.blur*.12,this.horizontal?i[0]=t:i[1]=t,i}}),i.Blur.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Gamma=r(i.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(t){this.gamma=[1,1,1],i.BaseFilter.prototype.initialize.call(this,t)},applyTo2d:function(t){var e,i=t.imageData.data,r=this.gamma,n=i.length,s=1/r[0],o=1/r[1],a=1/r[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),e=0,n=256;e'},_getCacheCanvasDimensions:function(){var t=this.callSuper("_getCacheCanvasDimensions"),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t},_render:function(t){var e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")},_renderText:function(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))},_setTextStyles:function(t,e,i){if(t.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":t.textBaseline="middle";break;case"ascender":t.textBaseline="top";break;case"descender":t.textBaseline="bottom"}t.font=this._getFontDeclaration(e,i)},calcTextWidth:function(){for(var t=this.getLineWidth(0),e=1,i=this._textLines.length;et&&(t=r)}return t},_renderTextLine:function(t,e,i,r,n,s){this._renderChars(t,e,i,r,n,s)},_renderTextLinesBackground:function(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,i,r,n,s,o,a,h=t.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),u=0,d=0,f=this.path,g=0,m=this._textLines.length;g=0:ia?u%=a:u<0&&(u+=a),this._setGraphemeOnPath(u,s,o),u+=s.kernedWidth}return{width:h,numOfSpaces:0}},_setGraphemeOnPath:function(t,i,r){var n=t+i.kernedWidth/2,s=this.path,o=e.util.getPointOnPath(s.path,n,s.segmentsInfo);i.renderLeft=o.x-r.x,i.renderTop=o.y-r.y,i.angle=o.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(t,e,i,r,n){var s,o=this.getCompleteStyleDeclaration(e,i),a=r?this.getCompleteStyleDeclaration(e,i-1):{},h=this._measureChar(t,o,r,a),l=h.kernedWidth,c=h.width;0!==this.charSpacing&&(c+=s=this._getWidthOfCharSpacing(),l+=s);var u={width:c,left:0,height:o.fontSize,kernedWidth:l,deltaY:o.deltaY};if(i>0&&!n){var d=this.__charBounds[e][i-1];u.left=d.left+d.width+h.kernedWidth-h.width}return u},getHeightOfLine:function(t){if(this.__lineHeights[t])return this.__lineHeights[t];for(var e=this._textLines[t],i=this.getHeightOfChar(t,0),r=1,n=e.length;r0){var x=v+s+u;"rtl"===this.direction&&(x=this.width-x-d),l&&_&&(t.fillStyle=_,t.fillRect(x,c+C*r+o,d,this.fontSize/15)),u=f.left,d=f.width,l=g,_=p,r=n,o=a}else d+=f.kernedWidth;x=v+s+u,"rtl"===this.direction&&(x=this.width-x-d),t.fillStyle=p,g&&p&&t.fillRect(x,c+C*r+o,d-E,this.fontSize/15),y+=i}else y+=i;this._removeShadow(t)}},_getFontDeclaration:function(t,i){var r=t||this,n=this.fontFamily,s=e.Text.genericFonts.indexOf(n.toLowerCase())>-1,o=void 0===n||n.indexOf("'")>-1||n.indexOf(",")>-1||n.indexOf('"')>-1||s?r.fontFamily:'"'+r.fontFamily+'"';return[e.isLikelyNode?r.fontWeight:r.fontStyle,e.isLikelyNode?r.fontStyle:r.fontWeight,i?this.CACHE_FONT_SIZE+"px":r.fontSize+"px",o].join(" ")},render:function(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",t)))},_splitTextIntoLines:function(t){for(var i=t.split(this._reNewline),r=new Array(i.length),n=["\n"],s=[],o=0;o-1&&(t.underline=!0),t.textDecoration.indexOf("line-through")>-1&&(t.linethrough=!0),t.textDecoration.indexOf("overline")>-1&&(t.overline=!0),delete t.textDecoration)}b.IText=b.util.createClass(b.Text,b.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(t,e){this.callSuper("initialize",t,e),this.initBehavior()},setSelectionStart:function(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)},setSelectionEnd:function(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)},_updateAndFire:function(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(t){this.clearContextTop(),this.callSuper("render",t),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(t){this.callSuper("_render",t)},clearContextTop:function(t){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this.canvas.contextTop,i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e),this._clearTextArea(e),t||e.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this._getCursorBoundaries(),e=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(t,e):this.renderSelection(t,e),e.restore()}},_clearTextArea:function(t){var e=this.width+4,i=this.height+4;t.clearRect(-e/2,-i/2,e,i)},_getCursorBoundaries:function(t){void 0===t&&(t=this.selectionStart);var e=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t);return{left:e,top:i,leftOffset:r.left,topOffset:r.top}},_getCursorBoundariesOffsets:function(t){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var e,i,r,n,s=0,o=0,a=this.get2DCursorLocation(t);r=a.charIndex,i=a.lineIndex;for(var h=0;h0?o:0)},"rtl"===this.direction&&(n.left*=-1),this.cursorOffsetCache=n,this.cursorOffsetCache},renderCursor:function(t,e){var i=this.get2DCursorLocation(),r=i.lineIndex,n=i.charIndex>0?i.charIndex-1:0,s=this.getValueOfPropertyAt(r,n,"fontSize"),o=this.scaleX*this.canvas.getZoom(),a=this.cursorWidth/o,h=t.topOffset,l=this.getValueOfPropertyAt(r,n,"deltaY");h+=(1-this._fontSizeFraction)*this.getHeightOfLine(r)/this.lineHeight-s*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(t,e),e.fillStyle=this.cursorColor||this.getValueOfPropertyAt(r,n,"fill"),e.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,e.fillRect(t.left+t.leftOffset-a/2,h+t.top+l,a,s)},renderSelection:function(t,e){for(var i=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,r=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,n=-1!==this.textAlign.indexOf("justify"),s=this.get2DCursorLocation(i),o=this.get2DCursorLocation(r),a=s.lineIndex,h=o.lineIndex,l=s.charIndex<0?0:s.charIndex,c=o.charIndex<0?0:o.charIndex,u=a;u<=h;u++){var d,f=this._getLineLeftOffset(u)||0,g=this.getHeightOfLine(u),m=0,p=0;if(u===a&&(m=this.__charBounds[a][l].left),u>=a&&u1)&&(g/=this.lineHeight);var v=t.left+f+m,y=p-m,w=g,E=0;this.inCompositionMode?(e.fillStyle=this.compositionColor||"black",w=1,E=g):e.fillStyle=this.selectionColor,"rtl"===this.direction&&(v=this.width-v-y),e.fillRect(v,t.top+t.topOffset+E,y,w),t.topOffset+=d}},getCurrentCharFontSize:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")},getCurrentCharColor:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fill")},_getCurrentCharIndex:function(){var t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}}),b.IText.fromObject=function(e,i){if(t(e),e.styles)for(var r in e.styles)for(var n in e.styles[r])t(e.styles[r][n]);b.Object._fromObject("IText",e,i,"text")}}(),T=b.util.object.clone,b.util.object.extend(b.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var t=this;this.on("added",(function(){var e=t.canvas;e&&(e._hasITextHandlers||(e._hasITextHandlers=!0,t._initCanvasHandlers(e)),e._iTextInstances=e._iTextInstances||[],e._iTextInstances.push(t))}))},initRemovedHandler:function(){var t=this;this.on("removed",(function(){var e=t.canvas;e&&(e._iTextInstances=e._iTextInstances||[],b.util.removeFromArray(e._iTextInstances,t),0===e._iTextInstances.length&&(e._hasITextHandlers=!1,t._removeCanvasHandlers(e)))}))},_initCanvasHandlers:function(t){t._mouseUpITextHandler=function(){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.__isMousedown=!1}))},t.on("mouse:up",t._mouseUpITextHandler)},_removeCanvasHandlers:function(t){t.off("mouse:up",t._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(t,e,i,r){var n;return n={isAborted:!1,abort:function(){this.isAborted=!0}},t.animate("_currentCursorOpacity",e,{duration:i,onComplete:function(){n.isAborted||t[r]()},onChange:function(){t.canvas&&t.selectionStart===t.selectionEnd&&t.renderCursorOrSelection()},abort:function(){return n.isAborted}}),n},_onTickComplete:function(){var t=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){t._currentTickCompleteState=t._animateCursor(t,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(t){var e=this,i=t?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){e._tick()}),i)},abortCursorAnimation:function(){var t=this._currentTickState||this._currentTickCompleteState,e=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,t&&e&&e.clearContext(e.contextTop||e.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(t){var e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/\S/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findWordBoundaryRight:function(t){var e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/\S/.test(this._text[i])&&i-1;)e++,i--;return t-e},findLineBoundaryRight:function(t){for(var e=0,i=t;!/\n/.test(this._text[i])&&i0&&rthis.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=e):(this.selectionStart=e,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(t,e,i){var r=i.slice(0,t),n=b.util.string.graphemeSplit(r).length;if(t===e)return{selectionStart:n,selectionEnd:n};var s=i.slice(t,e);return{selectionStart:n,selectionEnd:n+b.util.string.graphemeSplit(s).length}},fromGraphemeToStringSelection:function(t,e,i){var r=i.slice(0,t).join("").length;return t===e?{selectionStart:r,selectionEnd:r}:{selectionStart:r,selectionEnd:r+i.slice(t,e).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var t=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=t.selectionEnd,this.inCompositionMode||(this.selectionStart=t.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),r=i.lineIndex,n=i.charIndex,s=this.getValueOfPropertyAt(r,n,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.calcTransformMatrix(),h={x:e.left+o,y:e.top+e.topOffset+s},l=this.canvas.getRetinaScaling(),c=this.canvas.upperCanvasEl,u=c.width/l,d=c.height/l,f=u-s,g=d-s,m=c.clientWidth/u,p=c.clientHeight/d;return h=b.util.transformPoint(h,a),(h=b.util.transformPoint(h,this.canvas.viewportTransform)).x*=m,h.y*=p,h.x<0&&(h.x=0),h.x>f&&(h.x=f),h.y<0&&(h.y=0),h.y>g&&(h.y=g),h.x+=this.canvas._offset.left,h.y+=this.canvas._offset.top,{left:h.x+"px",top:h.y+"px",fontSize:s+"px",charHeight:s}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var t=this._textBeforeEdit!==this.text,e=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,e&&(e.blur&&e.blur(),e.parentNode&&e.parentNode.removeChild(e)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var t in this.styles)this._textLines[t]||delete this.styles[t]},removeStyleFromTo:function(t,e){var i,r,n=this.get2DCursorLocation(t,!0),s=this.get2DCursorLocation(e,!0),o=n.lineIndex,a=n.charIndex,h=s.lineIndex,l=s.charIndex;if(o!==h){if(this.styles[o])for(i=a;i=l&&(r[c-d]=r[u],delete r[u])}},shiftLineStyles:function(t,e){var i=T(this.styles);for(var r in this.styles){var n=parseInt(r,10);n>t&&(this.styles[n+e]=i[n],i[n-e]||delete this.styles[n])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,e,i,r){var n,s={},o=!1,a=this._unwrappedTextLines[t].length===e;for(var h in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(n=this.styles[t][0===e?e:e-1]),this.styles[t]){var l=parseInt(h,10);l>=e&&(o=!0,s[l-e]=this.styles[t][h],a&&0===e||delete this.styles[t][h])}var c=!1;for(o&&!a&&(this.styles[t+i]=s,c=!0),c&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:T(r[i-1])}:n?this.styles[t+i]={0:T(n)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,e,i,r){this.styles||(this.styles={});var n=this.styles[t],s=n?T(n):{};for(var o in i||(i=1),s){var a=parseInt(o,10);a>=e&&(n[a+i]=s[a],s[a-i]||delete n[a])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=T(r[i]));else if(n)for(var h=n[e?e-1:1];h&&i--;)this.styles[t][e+i]=T(h)},insertNewStyleBlock:function(t,e,i){for(var r=this.get2DCursorLocation(e,!0),n=[0],s=0,o=0;o0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),s&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+n[0],s),o=1;o0?this.insertCharStyleObject(r.lineIndex+o,0,n[o],i):i&&this.styles[r.lineIndex+o]&&i[0]&&(this.styles[r.lineIndex+o][0]=i[0]),i=i&&i.slice(n[o]+1);n[o]>0&&this.insertCharStyleObject(r.lineIndex+o,0,n[o],i)},setSelectionStartEndWithShift:function(t,e,i){i<=t?(e===t?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=t),this.selectionStart=i):i>t&&it?this.selectionStart=t:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>t?this.selectionEnd=t:this.selectionEnd<0&&(this.selectionEnd=0)}}),b.util.object.extend(b.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(t){if(this.canvas){this.__newClickTime=+new Date;var e=t.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",t),this._stopEvent(t.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(t){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===t.x&&this.__lastPointer.y===t.y},_stopEvent:function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(t){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(t.e))},tripleClickHandler:function(t){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(t.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(t.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(t){if(this.__isMousedown=!1,!(!this.editable||this.group||t.transform&&t.transform.actionPerformed||t.e.button&&1!==t.e.button)){if(this.canvas){var e=this.canvas._activeObject;if(e&&e!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(t.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(t){var e=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,r,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(t){for(var e,i=this.getLocalPointer(t),r=0,n=0,s=0,o=0,a=0,h=0,l=this._textLines.length;h0&&(o+=this._textLines[h-1].length+this.missingNewlineOffset(h-1));n=this._getLineLeftOffset(a)*this.scaleX,e=this._textLines[a],"rtl"===this.direction&&(i.x=this.width*this.scaleX-i.x+n);for(var c=0,u=e.length;cs||o<0?0:1);return this.flipX&&(a=n-a),a>this._text.length&&(a=this._text.length),a}}),b.util.object.extend(b.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=b.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var t=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+t.top+"; left: "+t.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; paddingーtop: "+t.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):b.document.body.appendChild(this.hiddenTextarea),b.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),b.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),b.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),b.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(b.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(t){if(this.isEditing){var e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(t){var e=this.fromPaste;if(this.fromPaste=!1,t&&t.stopPropagation(),this.isEditing){var i,r,n,s,o,a=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,h=this._text.length,l=a.length,c=l-h,u=this.selectionStart,d=this.selectionEnd,f=u!==d;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var g=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),m=u>g.selectionStart;f?(i=this._text.slice(u,d),c+=d-u):l0&&(r+=(i=this.__charBounds[t][e-1]).left+i.width),r},getDownCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(n===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n+1,o);return this._textLines[n].slice(s).length+a+1+this.missingNewlineOffset(n)},_getSelectionForOffset:function(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(0===n||t.metaKey||33===t.keyCode)return-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n-1,o),h=this._textLines[n].slice(0,s),l=this.missingNewlineOffset(n-1);return-this._textLines[n-1].length+a-h.length+(1-l)},_getIndexOnLine:function(t,e){for(var i,r,n=this._textLines[t],s=this._getLineLeftOffset(t),o=0,a=0,h=n.length;ae){r=!0;var l=s-i,c=s,u=Math.abs(l-e);o=Math.abs(c-e)=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)},moveCursorUp:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)},_moveCursorUpOrDown:function(t,e){var i=this["get"+t+"CursorOffset"](e,"right"===this._selectionDirection);e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(t){var e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t},moveCursorWithoutShift:function(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t},moveCursorLeft:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)},_move:function(t,e,i){var r;if(t.altKey)r=this["findWordBoundary"+i](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;r=this["findLineBoundary"+i](this[e])}if(void 0!==typeof r&&this[e]!==r)return this[e]=r,!0},_moveLeft:function(t,e){return this._move(t,e,"Left")},_moveRight:function(t,e){return this._move(t,e,"Right")},moveCursorLeftWithoutShift:function(t){var e=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e},moveCursorLeftWithShift:function(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(t,"selectionStart")):void 0},moveCursorRight:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)},_moveCursorLeftOrRight:function(t,e){var i="moveCursor"+t+"With";this._currentCursorOpacity=1,e.shiftKey?i+="Shift":i+="outShift",this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(t,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(t){var e=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e},removeChars:function(t,e){void 0===e&&(e=t+1),this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(t,e,i,r){void 0===r&&(r=i),r>i&&this.removeStyleFromTo(i,r);var n=b.util.string.graphemeSplit(t);this.insertNewStyleBlock(n,i,e),this._text=[].concat(this._text.slice(0,i),n,this._text.slice(r)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var t=b.util.toFixed,e=/ +/g;b.util.object.extend(b.Text.prototype,{_toSVG:function(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t",t.textSpans.join(""),"\n"]},_getSVGTextAndBg:function(t,e){var i,r=[],n=[],s=t;this._setSVGBg(n);for(var o=0,a=this._textLines.length;o",b.util.string.escapeXml(i),""].join("")},_setSVGTextLineText:function(t,e,i,r){var n,s,o,a,h,l=this.getHeightOfLine(e),c=-1!==this.textAlign.indexOf("justify"),u="",d=0,f=this._textLines[e];r+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var g=0,m=f.length-1;g<=m;g++)h=g===m||this.charSpacing,u+=f[g],o=this.__charBounds[e][g],0===d?(i+=o.kernedWidth-o.width,d+=o.width):d+=o.kernedWidth,c&&!h&&this._reSpaceAndTab.test(f[g])&&(h=!0),h||(n=n||this.getCompleteStyleDeclaration(e,g),s=this.getCompleteStyleDeclaration(e,g+1),h=this._hasStyleChangedForSvg(n,s)),h&&(a=this._getStyleDeclaration(e,g)||{},t.push(this._createTextCharSpan(u,a,i,r)),u="",n=s,i+=d,d=0)},_pushTextBgRect:function(e,i,r,n,s,o){var a=b.Object.NUM_FRACTION_DIGITS;e.push("\t\t\n')},_setSVGTextLineBg:function(t,e,i,r){for(var n,s,o=this._textLines[e],a=this.getHeightOfLine(e)/this.lineHeight,h=0,l=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),u=0,d=o.length;uthis.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(t){for(var e=0,i=0,r=0,n={},s=0;s0?(i=0,r++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[r])&&s>0&&(i++,r++),n[s]={line:e,offset:i},r+=t.graphemeLines[s].length,i+=t.graphemeLines[s].length;return n},styleHas:function(t,i){if(this._styleMap&&!this.isWrapping){var r=this._styleMap[i];r&&(i=r.line)}return e.Text.prototype.styleHas.call(this,t,i)},isEmptyStyles:function(t){if(!this.styles)return!0;var e,i,r=0,n=!1,s=this._styleMap[t],o=this._styleMap[t+1];for(var a in s&&(t=s.line,r=s.offset),o&&(n=o.line===t,e=o.offset),i=void 0===t?this.styles:{line:this.styles[t]})for(var h in i[a])if(h>=r&&(!n||hr&&!p?(a.push(h),h=[],s=f,p=!0):s+=_,p||o||h.push(d),h=h.concat(c),g=o?0:this._measureWord([d],i,u),u++,p=!1,f>m&&(m=f);return v&&a.push(h),m+n>this.dynamicMinWidth&&(this.dynamicMinWidth=m-_+n),a},isEndOfWrapping:function(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line},missingNewlineOffset:function(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1},_splitTextIntoLines:function(t){for(var i=e.Text.prototype._splitTextIntoLines.call(this,t),r=this._wrapText(i.lines,this.width),n=new Array(r.length),s=0;s{},898:()=>{},245:()=>{}},ye={};function we(t){var e=ye[t];if(void 0!==e)return e.exports;var i=ye[t]={exports:{}};return ve[t](i,i.exports,we),i.exports}we.d=(t,e)=>{for(var i in e)we.o(e,i)&&!we.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},we.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Ee={};(()=>{let t;we.d(Ee,{R:()=>t}),t="undefined"!=typeof document&&"undefined"!=typeof window?we(653).fabric:{version:"5.2.1"}})();var Ce,Te,be,Se,Ie=Ee.R;!function(t){t[t.DIMT_RECTANGLE=1]="DIMT_RECTANGLE",t[t.DIMT_QUADRILATERAL=2]="DIMT_QUADRILATERAL",t[t.DIMT_TEXT=4]="DIMT_TEXT",t[t.DIMT_ARC=8]="DIMT_ARC",t[t.DIMT_IMAGE=16]="DIMT_IMAGE",t[t.DIMT_POLYGON=32]="DIMT_POLYGON",t[t.DIMT_LINE=64]="DIMT_LINE",t[t.DIMT_GROUP=128]="DIMT_GROUP"}(Ce||(Ce={})),function(t){t[t.DIS_DEFAULT=1]="DIS_DEFAULT",t[t.DIS_SELECTED=2]="DIS_SELECTED"}(Te||(Te={})),function(t){t[t.EF_ENHANCED_FOCUS=4]="EF_ENHANCED_FOCUS",t[t.EF_AUTO_ZOOM=16]="EF_AUTO_ZOOM",t[t.EF_TAP_TO_FOCUS=64]="EF_TAP_TO_FOCUS"}(be||(be={})),function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(Se||(Se={}));const xe=t=>"number"==typeof t&&!Number.isNaN(t),Ae=t=>"string"==typeof t;var Re,Oe,De,Le,Me,Fe;!function(t){t[t.ARC=0]="ARC",t[t.IMAGE=1]="IMAGE",t[t.LINE=2]="LINE",t[t.POLYGON=3]="POLYGON",t[t.QUAD=4]="QUAD",t[t.RECT=5]="RECT",t[t.TEXT=6]="TEXT",t[t.GROUP=7]="GROUP"}(Me||(Me={})),function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SELECTED=1]="SELECTED"}(Fe||(Fe={}));class Pe{get mediaType(){return new Map([["rect",Ce.DIMT_RECTANGLE],["quad",Ce.DIMT_QUADRILATERAL],["text",Ce.DIMT_TEXT],["arc",Ce.DIMT_ARC],["image",Ce.DIMT_IMAGE],["polygon",Ce.DIMT_POLYGON],["line",Ce.DIMT_LINE],["group",Ce.DIMT_GROUP]]).get(this._mediaType)}get styleSelector(){switch(ae(this,Oe,"f")){case Te.DIS_DEFAULT:return"default";case Te.DIS_SELECTED:return"selected"}}set drawingStyleId(t){this.styleId=t}get drawingStyleId(){return this.styleId}set coordinateBase(t){if(!["view","image"].includes(t))throw new Error("Invalid 'coordinateBase'.");this._drawingLayer&&("image"===ae(this,De,"f")&&"view"===t?this.updateCoordinateBaseFromImageToView():"view"===ae(this,De,"f")&&"image"===t&&this.updateCoordinateBaseFromViewToImage()),he(this,De,t,"f")}get coordinateBase(){return ae(this,De,"f")}get drawingLayerId(){return this._drawingLayerId}constructor(t,e){if(Re.add(this),Oe.set(this,void 0),De.set(this,"image"),this._zIndex=null,this._drawingLayer=null,this._drawingLayerId=null,this._mapStyle=new Map,this._mapState_StyleId=new Map,this.mapEvent_Callbacks=new Map([["selected",new Map],["deselected",new Map],["mousedown",new Map],["mouseup",new Map],["dblclick",new Map],["mouseover",new Map],["mouseout",new Map]]),this.mapNoteName_Content=new Map([]),this.isDrawingItem=!0,null!=e&&!xe(e))throw new TypeError("Invalid 'drawingStyleId'.");t&&this._setFabricObject(t),this.setState(Te.DIS_DEFAULT),this.styleId=e}_setFabricObject(t){this._fabricObject=t,this._fabricObject.on("selected",(()=>{this.setState(Te.DIS_SELECTED)})),this._fabricObject.on("deselected",(()=>{this._fabricObject.canvas&&this._fabricObject.canvas.getActiveObjects().includes(this._fabricObject)?this.setState(Te.DIS_SELECTED):this.setState(Te.DIS_DEFAULT),"textbox"===this._fabricObject.type&&(this._fabricObject.isEditing&&this._fabricObject.exitEditing(),this._fabricObject.selected=!1)})),t.getDrawingItem=()=>this}_getFabricObject(){return this._fabricObject}setState(t){he(this,Oe,t,"f")}getState(){return ae(this,Oe,"f")}_on(t,e){if(!e)return;const i=t.toLowerCase(),r=this.mapEvent_Callbacks.get(i);if(!r)throw new Error(`Event '${t}' does not exist.`);let n=r.get(e);n||(n=t=>{const i=t.e;if(!i)return void(e&&e.apply(this,[{targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null}]));const r={targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null};if(this._drawingLayer){let t,e,n,s;const o=i.target.getBoundingClientRect();t=o.left,e=o.top,n=t+window.scrollX,s=e+window.scrollY;const{width:a,height:h}=this._drawingLayer.fabricCanvas.lowerCanvasEl.getBoundingClientRect(),l=this._drawingLayer.width,c=this._drawingLayer.height,u=a/h,d=l/c,f=this._drawingLayer._getObjectFit();let g,m,p,_,v=1;if("contain"===f)unull!==t&&"object"==typeof t&&!Array.isArray(t),Be=t=>!!Ae(t)&&""!==t,Ne=u,Ue=d,je=g,Ge=p,We=m,Ve=_,Ye=v,He=t=>!(!ke(t)||"id"in t&&!xe(t.id)||"lineWidth"in t&&!xe(t.lineWidth)||"fillStyle"in t&&!Be(t.fillStyle)||"strokeStyle"in t&&!Be(t.strokeStyle)||"paintMode"in t&&!["fill","stroke","strokeAndFill"].includes(t.paintMode)||"fontFamily"in t&&!Be(t.fontFamily)||"fontSize"in t&&!xe(t.fontSize));class Xe{static convert(t,e,i){const r={x:0,y:0,width:e,height:i};if(!t)return r;if(Ye(t))t.isMeasuredInPercentage?(r.x=t.x/100*e,r.y=t.y/100*i,r.width=t.width/100*e,r.height=t.height/100*i):(r.x=t.x,r.y=t.y,r.width=t.width,r.height=t.height);else{if(!Ue(t))throw TypeError("Invalid region.");t.isMeasuredInPercentage?(r.x=t.left/100*e,r.y=t.top/100*i,r.width=(t.right-t.left)/100*e,r.height=(t.bottom-t.top)/100*i):(r.x=t.left,r.y=t.top,r.width=t.right-t.left,r.height=t.bottom-t.top)}return r.x=Math.round(r.x),r.y=Math.round(r.y),r.width=Math.round(r.width),r.height=Math.round(r.height),r}}var ze,Ze;class Ke{constructor(){ze.set(this,new Map),Ze.set(this,!1)}get disposed(){return ae(this,Ze,"f")}on(t,e){t=t.toLowerCase();const i=ae(this,ze,"f").get(t);if(i){if(i.includes(e))return;i.push(e)}else ae(this,ze,"f").set(t,[e])}off(t,e){t=t.toLowerCase();const i=ae(this,ze,"f").get(t);if(!i)return;const r=i.indexOf(e);-1!==r&&i.splice(r,1)}offAll(t){t=t.toLowerCase();const e=ae(this,ze,"f").get(t);e&&(e.length=0)}async fire(t,e=[],i={async:!1,copy:!0}){e||(e=[]),t=t.toLowerCase();const r=ae(this,ze,"f").get(t);if(r&&r.length){i=Object.assign({async:!1,copy:!0},i);for(let n of r){if(!n)continue;let r=[];if(i.copy)for(let i of e){try{i=JSON.parse(JSON.stringify(i))}catch(t){}r.push(i)}else r=e;let s=!1;if(i.async)setTimeout((()=>{this.disposed||n.apply(i.target,r)}),0);else try{s=await n.apply(i.target,r)}catch(t){}if(!0===s)break}}}dispose(){he(this,Ze,!0,"f")}}function qe(t,e,i){return(i.x-t.x)*(e.y-t.y)==(e.x-t.x)*(i.y-t.y)&&Math.min(t.x,e.x)<=i.x&&i.x<=Math.max(t.x,e.x)&&Math.min(t.y,e.y)<=i.y&&i.y<=Math.max(t.y,e.y)}function Je(t){return Math.abs(t)<1e-6?0:t<0?-1:1}function Qe(t,e,i,r){let n=t[0]*(i[1]-e[1])+e[0]*(t[1]-i[1])+i[0]*(e[1]-t[1]),s=t[0]*(r[1]-e[1])+e[0]*(t[1]-r[1])+r[0]*(e[1]-t[1]);return!((n^s)>=0&&0!==n&&0!==s||(n=i[0]*(t[1]-r[1])+r[0]*(i[1]-t[1])+t[0]*(r[1]-i[1]),s=i[0]*(e[1]-r[1])+r[0]*(i[1]-e[1])+e[0]*(r[1]-i[1]),(n^s)>=0&&0!==n&&0!==s))}ze=new WeakMap,Ze=new WeakMap;const $e=async t=>{if("string"!=typeof t)throw new TypeError("Invalid url.");const e=await fetch(t);if(!e.ok)throw Error("Network Error: "+e.statusText);const i=await e.text();if(!i.trim().startsWith("<"))throw Error("Unable to get valid HTMLElement.");const r=document.createElement("div");r.insertAdjacentHTML("beforeend",i);for(let t=0;t0?i-1:r,hi),actionName:"modifyPolygon",pointIndex:i}),t}),{}),he(this,ei,JSON.parse(JSON.stringify(t)),"f"),this._mediaType="polygon"}extendSet(t,e){if("vertices"===t){const t=this._fabricObject;if(t.group){const i=t.group;t.points=e.map((t=>({x:t.x-i.left-i.width/2,y:t.y-i.top-i.height/2}))),i.addWithUpdate()}else t.points=e;const i=t.points.length-1;return t.controls=t.points.reduce((function(t,e,r){return t["p"+r]=new Ie.Control({positionHandler:oi,actionHandler:li(r>0?r-1:i,hi),actionName:"modifyPolygon",pointIndex:r}),t}),{}),t._setPositionDimensions({}),!0}}extendGet(t){if("vertices"===t){const t=[],e=this._fabricObject;if(e.selectable&&!e.group)for(let i in e.oCoords)t.push({x:e.oCoords[i].x,y:e.oCoords[i].y});else for(let i of e.points){let r=i.x-e.pathOffset.x,n=i.y-e.pathOffset.y;const s=Ie.util.transformPoint({x:r,y:n},e.calcTransformMatrix());t.push({x:s.x,y:s.y})}return t}}updateCoordinateBaseFromImageToView(){const t=this.get("vertices").map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",t)}updateCoordinateBaseFromViewToImage(){const t=this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})));this.set("vertices",t)}setPosition(t){this.setPolygon(t)}getPosition(){return this.getPolygon()}updatePosition(){ae(this,ei,"f")&&this.setPolygon(ae(this,ei,"f"))}setPolygon(t){if(!Ge(t))throw new TypeError("Invalid 'polygon'.");if(this._drawingLayer){if("view"===this.coordinateBase){const e=t.points.map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else he(this,ei,JSON.parse(JSON.stringify(t)),"f")}getPolygon(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return ae(this,ei,"f")?JSON.parse(JSON.stringify(ae(this,ei,"f"))):null}}ei=new WeakMap;ii=new WeakMap,ri=new WeakMap;const ui=t=>{let e=(t=>t.split("\n").map((t=>t.split("\t"))))(t);return(t=>{for(let e=0;;e++){let i=-1;for(let r=0;ri&&(i=n.length)}if(-1===i)break;for(let r=0;r=t[r].length-1)continue;let n=" ".repeat(i+2-t[r][e].length);t[r][e]=t[r][e].concat(n)}}})(e),(t=>{let e="";for(let i=0;i({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else he(this,gi,JSON.parse(JSON.stringify(t)),"f")}getQuad(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return ae(this,gi,"f")?JSON.parse(JSON.stringify(ae(this,gi,"f"))):null}}gi=new WeakMap;class qi extends Pe{constructor(t){super(new Ie.Group(t.map((t=>t._getFabricObject())))),this._fabricObject.on("selected",(()=>{this.setState(Te.DIS_SELECTED);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("selected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._fabricObject.on("deselected",(()=>{this.setState(Te.DIS_DEFAULT);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("deselected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._mediaType="group"}extendSet(t,e){return!1}extendGet(t){}updateCoordinateBaseFromImageToView(){}updateCoordinateBaseFromViewToImage(){}setPosition(){}getPosition(){}updatePosition(){}getChildDrawingItems(){return this._fabricObject._objects.map((t=>t.getDrawingItem()))}setChildDrawingItems(t){if(!t||!t.isDrawingItem)throw TypeError("Illegal drawing item.");this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"add"):this._fabricObject.addWithUpdate(t._getFabricObject())}removeChildItem(t){t&&t.isDrawingItem&&(this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"remove"):this._fabricObject.removeWithUpdate(t._getFabricObject()))}}class Ji{static createDrawingStyle(t){if(!He(t))throw new Error("Invalid style definition.");let e,i=Ji.USER_START_STYLE_ID;for(;ae(Ji,mi,"f",pi).has(i);)i++;e=i;const r=JSON.parse(JSON.stringify(t));r.id=e;for(let t in ae(Ji,mi,"f",_i))r.hasOwnProperty(t)||(r[t]=ae(Ji,mi,"f",_i)[t]);return ae(Ji,mi,"f",pi).set(e,r),r.id}static _getDrawingStyle(t,e){if("number"!=typeof t)throw new Error("Invalid style id.");const i=ae(Ji,mi,"f",pi).get(t);return i?e?JSON.parse(JSON.stringify(i)):i:null}static getDrawingStyle(t){return this._getDrawingStyle(t,!0)}static getAllDrawingStyles(){return JSON.parse(JSON.stringify(Array.from(ae(Ji,mi,"f",pi).values())))}static _updateDrawingStyle(t,e){if(!He(e))throw new Error("Invalid style definition.");const i=ae(Ji,mi,"f",pi).get(t);if(i)for(let t in e)i.hasOwnProperty(t)&&(i[t]=e[t])}static updateDrawingStyle(t,e){this._updateDrawingStyle(t,e)}}mi=Ji,Ji.STYLE_BLUE_STROKE=1,Ji.STYLE_GREEN_STROKE=2,Ji.STYLE_ORANGE_STROKE=3,Ji.STYLE_YELLOW_STROKE=4,Ji.STYLE_BLUE_STROKE_FILL=5,Ji.STYLE_GREEN_STROKE_FILL=6,Ji.STYLE_ORANGE_STROKE_FILL=7,Ji.STYLE_YELLOW_STROKE_FILL=8,Ji.STYLE_BLUE_STROKE_TRANSPARENT=9,Ji.STYLE_GREEN_STROKE_TRANSPARENT=10,Ji.STYLE_ORANGE_STROKE_TRANSPARENT=11,Ji.USER_START_STYLE_ID=1024,pi={value:new Map([[Ji.STYLE_BLUE_STROKE,{id:Ji.STYLE_BLUE_STROKE,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_GREEN_STROKE,{id:Ji.STYLE_GREEN_STROKE,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_ORANGE_STROKE,{id:Ji.STYLE_ORANGE_STROKE,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_YELLOW_STROKE,{id:Ji.STYLE_YELLOW_STROKE,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_BLUE_STROKE_FILL,{id:Ji.STYLE_BLUE_STROKE_FILL,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_GREEN_STROKE_FILL,{id:Ji.STYLE_GREEN_STROKE_FILL,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_ORANGE_STROKE_FILL,{id:Ji.STYLE_ORANGE_STROKE_FILL,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_YELLOW_STROKE_FILL,{id:Ji.STYLE_YELLOW_STROKE_FILL,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_BLUE_STROKE_TRANSPARENT,{id:Ji.STYLE_BLUE_STROKE_TRANSPARENT,lineWidth:4,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_GREEN_STROKE_TRANSPARENT,{id:Ji.STYLE_GREEN_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[Ji.STYLE_ORANGE_STROKE_TRANSPARENT,{id:Ji.STYLE_ORANGE_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}]])},_i={value:{lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}},"undefined"!=typeof document&&"undefined"!=typeof window&&(Ie.StaticCanvas.prototype.dispose=function(){return this.isRendering&&(Ie.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),Ie.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},Ie.Object.prototype.transparentCorners=!1,Ie.Object.prototype.cornerSize=20,Ie.Object.prototype.touchCornerSize=100,Ie.Object.prototype.cornerColor="rgb(254,142,20)",Ie.Object.prototype.cornerStyle="circle",Ie.Object.prototype.strokeUniform=!0,Ie.Object.prototype.hasBorders=!1,Ie.Canvas.prototype.containerClass="",Ie.Canvas.prototype.getPointer=function(t,e){if(this._absolutePointer&&!e)return this._absolutePointer;if(this._pointer&&e)return this._pointer;var i,r=this.upperCanvasEl,n=Ie.util.getPointer(t,r),s=r.getBoundingClientRect(),o=s.width||0,a=s.height||0;o&&a||("top"in s&&"bottom"in s&&(a=Math.abs(s.top-s.bottom)),"right"in s&&"left"in s&&(o=Math.abs(s.right-s.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,e||(n=this.restorePointerVpt(n));var h=this.getRetinaScaling();if(1!==h&&(n.x/=h,n.y/=h),0!==o&&0!==a){var l=window.getComputedStyle(r).objectFit,c=r.width,u=r.height,d=o,f=a;i={width:c/d,height:u/f};var g,m,p=c/u,_=d/f;return"contain"===l?p>_?(g=d,m=d/p,{x:n.x*i.width,y:(n.y-(f-m)/2)*i.width}):(g=f*p,m=f,{x:(n.x-(d-g)/2)*i.height,y:n.y*i.height}):"cover"===l?p>_?{x:(c-i.height*d)/2+n.x*i.height,y:n.y*i.height}:{x:n.x*i.width,y:(u-i.width*f)/2+n.y*i.width}:{x:n.x*i.width,y:n.y*i.height}}return i={width:1,height:1},{x:n.x*i.width,y:n.y*i.height}},Ie.Canvas.prototype._onTouchStart=function(t){var e=this.findTarget(t);!this.allowTouchScrolling&&t.cancelable&&t.preventDefault&&t.preventDefault(),e&&t.cancelable&&t.preventDefault&&t.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t),this._resetTransformEventData();var i=this.upperCanvasEl,r=this._getEventPrefix();Ie.util.addListener(Ie.document,"touchend",this._onTouchEnd,{passive:!1}),Ie.util.addListener(Ie.document,"touchmove",this._onMouseMove,{passive:!1}),Ie.util.removeListener(i,r+"down",this._onMouseDown)},Ie.Textbox.prototype._wrapLine=function(t,e,i,r){const n=t.match(/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/g),s=!(!n||!n.length);var o=0,a=this.splitByGrapheme||s,h=[],l=[],c=a?Ie.util.string.graphemeSplit(t):t.split(this._wordJoiners),u="",d=0,f=a?"":" ",g=0,m=0,p=0,_=!0,v=this._getWidthOfCharSpacing();r=r||0,0===c.length&&c.push([]),i-=r;for(var y=0;yi&&!_?(h.push(l),l=[],o=g,_=!0):o+=v,_||a||l.push(f),l=l.concat(u),m=a?0:this._measureWord([f],e,d),d++,_=!1,g>p&&(p=g);return y&&h.push(l),p+r>this.dynamicMinWidth&&(this.dynamicMinWidth=p-v+r),h});class Qi{get width(){return this.fabricCanvas.width}get height(){return this.fabricCanvas.height}set _allowMultiSelect(t){this.fabricCanvas.selection=t,this.fabricCanvas.renderAll()}get _allowMultiSelect(){return this.fabricCanvas.selection}constructor(t,e,i){let r,n;switch(this.mapMediaType_Style=new Map,this.mapType_StateAndStyleId=new Map,this.mode="viewer",this.onSelectionChanged=null,this._arrDrwaingItem=[],this._arrFabricObject=[],this._visible=!0,t.hasOwnProperty("getFabricCanvas")?this.fabricCanvas=t.getFabricCanvas():(this.fabricCanvas=new Ie.Canvas(t,Object.assign(i,{allowTouchScrolling:!0,selection:!1})),this.fabricCanvas.setDimensions({width:"100%",height:"100%"},{cssOnly:!0}),this.fabricCanvas.lowerCanvasEl.className="",this.fabricCanvas.upperCanvasEl.className="",this.fabricCanvas.on("selection:created",(function(t){const e=t.selected,i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(i,[])}),0)}})),this.fabricCanvas.on("before:selection:cleared",(function(t){const e=this.getActiveObjects(),i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{const e=[];for(let r of i)t.hasDrawingItem(r)&&e.push(r);e.length>0&&t.onSelectionChanged&&t.onSelectionChanged([],e)}),0)}})),this.fabricCanvas.on("selection:updated",(function(t){const e=t.selected,i=t.deselected,r=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of i){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of r){const r=[],n=[];for(let i of e){const e=i.getDrawingItem();e._drawingLayer===t&&r.push(e)}for(let e of i){const i=e.getDrawingItem();i._drawingLayer===t&&n.push(i)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(r,n)}),0)}})),this.fabricCanvas.wrapperEl.style.position="absolute",t.getFabricCanvas=()=>this.fabricCanvas),this.id=e,e){case Qi.DDN_LAYER_ID:r=Ji.getDrawingStyle(Ji.STYLE_BLUE_STROKE),n=Ji.getDrawingStyle(Ji.STYLE_BLUE_STROKE_FILL);break;case Qi.DBR_LAYER_ID:r=Ji.getDrawingStyle(Ji.STYLE_ORANGE_STROKE),n=Ji.getDrawingStyle(Ji.STYLE_ORANGE_STROKE_FILL);break;case Qi.DLR_LAYER_ID:r=Ji.getDrawingStyle(Ji.STYLE_GREEN_STROKE),n=Ji.getDrawingStyle(Ji.STYLE_GREEN_STROKE_FILL);break;default:r=Ji.getDrawingStyle(Ji.STYLE_YELLOW_STROKE),n=Ji.getDrawingStyle(Ji.STYLE_YELLOW_STROKE_FILL)}for(let t of Pe.arrMediaTypes)this.mapType_StateAndStyleId.set(t,{default:r.id,selected:n.id})}getId(){return this.id}setVisible(t){if(t){for(let t of this._arrFabricObject)t.visible=!0,t.hasControls=!0;this._visible=!0}else{for(let t of this._arrFabricObject)t.visible=!1,t.hasControls=!1;this._visible=!1}this.fabricCanvas.renderAll()}isVisible(){return this._visible}_getItemCurrentStyleId(t){return t.styleId?t.styleId:this.mapType_StateAndStyleId.get(t._mediaType)[t.styleSelector]}_getItemCurrentStyle(t){if(t.styleId)return Ji.getDrawingStyle(t.styleId);return Ji.getDrawingStyle(t._mapState_StyleId.get(t.styleSelector))||null}_changeMediaTypeCurStyleInStyleSelector(t,e,i,r){const n=this.getDrawingItems((e=>e._mediaType===t));for(let t of n)t.styleSelector===e&&this._changeItemStyle(t,i,!0);r||this.fabricCanvas.renderAll()}_changeItemStyle(t,e,i){if(!t||!e)return;const r=t._getFabricObject();"number"==typeof t.styleId&&(e=Ji.getDrawingStyle(t.styleId)),r.strokeWidth=e.lineWidth,"fill"===e.paintMode?(r.fill=e.fillStyle,r.stroke=e.fillStyle):"stroke"===e.paintMode?(r.fill="transparent",r.stroke=e.strokeStyle):"strokeAndFill"===e.paintMode&&(r.fill=e.fillStyle,r.stroke=e.strokeStyle),r.fontFamily&&(r.fontFamily=e.fontFamily),r.fontSize&&(r.fontSize=e.fontSize),r.group||(r.dirty=!0),i||this.fabricCanvas.renderAll()}_updateGroupItem(t,e,i){if(!t||!e)return;const r=t.getChildDrawingItems();if("add"===i){if(r.includes(e))return;const i=e._getFabricObject();if(this.fabricCanvas.getObjects().includes(i)){if(!this._arrFabricObject.includes(i))throw new Error("Existed in other drawing layers.");e._zIndex=null}else{let i;if(e.styleId)i=Ji.getDrawingStyle(e.styleId);else{const r=this.mapType_StateAndStyleId.get(e._mediaType);i=Ji.getDrawingStyle(r[t.styleSelector]);const n=()=>{this._changeItemStyle(e,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).selected),!0)},s=()=>{this._changeItemStyle(e,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).default),!0)};e._on("selected",n),e._on("deselected",s),e._funcChangeStyleToSelected=n,e._funcChangeStyleToDefault=s}e._drawingLayer=this,e._drawingLayerId=this.id,this._changeItemStyle(e,i,!0)}t._fabricObject.addWithUpdate(e._getFabricObject())}else{if("remove"!==i)return;if(!r.includes(e))return;e._zIndex=null,e._drawingLayer=null,e._drawingLayerId=null,e._off("selected",e._funcChangeStyleToSelected),e._off("deselected",e._funcChangeStyleToDefault),e._funcChangeStyleToSelected=null,e._funcChangeStyleToDefault=null,t._fabricObject.removeWithUpdate(e._getFabricObject())}this.fabricCanvas.renderAll()}_addDrawingItem(t,e){if(!(t instanceof Pe))throw new TypeError("Invalid 'drawingItem'.");if(t._drawingLayer){if(t._drawingLayer==this)return;throw new Error("This drawing item has existed in other layer.")}let i=t._getFabricObject();const r=this.fabricCanvas.getObjects();let n,s;if(r.includes(i)){if(this._arrFabricObject.includes(i))return;throw new Error("Existed in other drawing layers.")}if("group"===t._mediaType){n=t.getChildDrawingItems();for(let t of n)if(t._drawingLayer&&t._drawingLayer!==this)throw new Error("The childItems of DT_Group have existed in other drawing layers.")}if(e&&"object"==typeof e&&!Array.isArray(e))for(let t in e)i.set(t,e[t]);if(n){for(let t of n){const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Pe.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=Ji.getDrawingStyle(t.styleId);else{s=Ji.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected),!0)},r=()=>{this._changeItemStyle(t,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default),!0)};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}t._drawingLayer=this,t._drawingLayerId=this.id,this._changeItemStyle(t,s,!0)}i.dirty=!0,this.fabricCanvas.renderAll()}else{const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Pe.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=Ji.getDrawingStyle(t.styleId);else{s=Ji.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected))},r=()=>{this._changeItemStyle(t,Ji.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default))};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}this._changeItemStyle(t,s)}t._zIndex=this.id,t._drawingLayer=this,t._drawingLayerId=this.id;const o=this._arrFabricObject.length;let a=r.length;if(o)a=r.indexOf(this._arrFabricObject[o-1])+1;else for(let e=0;et.toLowerCase())):e=Pe.arrMediaTypes,i?i.forEach((t=>t.toLowerCase())):i=Pe.arrStyleSelectors;const r=Ji.getDrawingStyle(t);if(!r)throw new Error(`The 'drawingStyle' with id '${t}' doesn't exist.`);let n;for(let s of e)if(n=this.mapType_StateAndStyleId.get(s),n)for(let e of i){this._changeMediaTypeCurStyleInStyleSelector(s,e,r,!0),n[e]=t;for(let i of this._arrDrwaingItem)i._mediaType===s&&i._mapState_StyleId.set(e,t)}this.fabricCanvas.renderAll()}setDefaultStyle(t,e,i){const r=[];i&Ce.DIMT_RECTANGLE&&r.push("rect"),i&Ce.DIMT_QUADRILATERAL&&r.push("quad"),i&Ce.DIMT_TEXT&&r.push("text"),i&Ce.DIMT_ARC&&r.push("arc"),i&Ce.DIMT_IMAGE&&r.push("image"),i&Ce.DIMT_POLYGON&&r.push("polygon"),i&Ce.DIMT_LINE&&r.push("line");const n=[];e&Te.DIS_DEFAULT&&n.push("default"),e&Te.DIS_SELECTED&&n.push("selected"),this._setDefaultStyle(t,r.length?r:null,n.length?n:null)}setMode(t){if("viewer"===(t=t.toLowerCase())){for(let t of this._arrDrwaingItem)t._setEditable(!1);this.fabricCanvas.discardActiveObject(),this.fabricCanvas.renderAll(),this.mode="viewer"}else{if("editor"!==t)throw new RangeError("Invalid value.");for(let t of this._arrDrwaingItem)t._setEditable(!0);this.mode="editor"}this._manager._switchPointerEvent()}getMode(){return this.mode}_setDimensions(t,e){this.fabricCanvas.setDimensions(t,e)}_setObjectFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);this.fabricCanvas.lowerCanvasEl.style.objectFit=t,this.fabricCanvas.upperCanvasEl.style.objectFit=t}_getObjectFit(){return this.fabricCanvas.lowerCanvasEl.style.objectFit}renderAll(){for(let t of this._arrDrwaingItem){const e=this._getItemCurrentStyle(t);this._changeItemStyle(t,e,!0)}this.fabricCanvas.renderAll()}dispose(){this.clearDrawingItems(),1===this._manager._arrDrawingLayer.length&&(this.fabricCanvas.wrapperEl.style.pointerEvents="none",this.fabricCanvas.dispose(),this._arrDrwaingItem.length=0,this._arrFabricObject.length=0)}}Qi.DDN_LAYER_ID=1,Qi.DBR_LAYER_ID=2,Qi.DLR_LAYER_ID=3,Qi.USER_DEFINED_LAYER_BASE_ID=100,Qi.TIP_LAYER_ID=999;class $i{constructor(){this._arrDrawingLayer=[]}createDrawingLayer(t,e){if(this.getDrawingLayer(e))throw new Error("Existed drawing layer id.");const i=new Qi(t,e,{enableRetinaScaling:!1});return i._manager=this,this._arrDrawingLayer.push(i),this._switchPointerEvent(),i}deleteDrawingLayer(t){const e=this.getDrawingLayer(t);if(!e)return;const i=this._arrDrawingLayer;e.dispose(),i.splice(i.indexOf(e),1),this._switchPointerEvent()}clearDrawingLayers(){for(let t of this._arrDrawingLayer)t.dispose();this._arrDrawingLayer.length=0}getDrawingLayer(t){for(let e of this._arrDrawingLayer)if(e.getId()===t)return e;return null}getAllDrawingLayers(){return Array.from(this._arrDrawingLayer)}getSelectedDrawingItems(){if(!this._arrDrawingLayer.length)return;const t=this._getFabricCanvas().getActiveObjects(),e=[];for(let i of t)e.push(i.getDrawingItem());return e}setDimensions(t,e){this._arrDrawingLayer.length&&this._arrDrawingLayer[0]._setDimensions(t,e)}setObjectFit(t){for(let e of this._arrDrawingLayer)e&&e._setObjectFit(t)}getObjectFit(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0]._getObjectFit():null}setVisible(t){if(!this._arrDrawingLayer.length)return;this._getFabricCanvas().wrapperEl.style.display=t?"block":"none"}_getFabricCanvas(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0].fabricCanvas:null}_switchPointerEvent(){if(this._arrDrawingLayer.length)for(let t of this._arrDrawingLayer)t.getMode()}}class tr extends di{constructor(t,e,i,r,n){super(t,{x:e,y:i,width:r,height:0},n),vi.set(this,void 0),yi.set(this,void 0),this._fabricObject.paddingTop=15,this._fabricObject.calcTextHeight=function(){for(var t=0,e=0,i=this._textLines.length;e=0&&he(this,yi,setTimeout((()=>{this.set("visible",!1),this._drawingLayer&&this._drawingLayer.renderAll()}),ae(this,vi,"f")),"f")}getDuration(){return ae(this,vi,"f")}}vi=new WeakMap,yi=new WeakMap;class er{constructor(){wi.add(this),Ei.set(this,void 0),Ci.set(this,void 0),Ti.set(this,void 0),bi.set(this,!0),this._drawingLayerManager=new $i}createDrawingLayerBaseCvs(t,e,i="contain"){if("number"!=typeof t||t<=1)throw new Error("Invalid 'width'.");if("number"!=typeof e||e<=1)throw new Error("Invalid 'height'.");if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");const r=document.createElement("canvas");return r.width==t&&r.height==e||(r.width=t,r.height=e),r.style.objectFit=i,r}_createDrawingLayer(t,e,i,r){if(!this._layerBaseCvs){let n;try{n=this.getContentDimensions()}catch(t){if("Invalid content dimensions."!==(t.message||t))throw t}e||(e=(null==n?void 0:n.width)||1280),i||(i=(null==n?void 0:n.height)||720),r||(r=(null==n?void 0:n.objectFit)||"contain"),this._layerBaseCvs=this.createDrawingLayerBaseCvs(e,i,r)}const n=this._layerBaseCvs,s=this._drawingLayerManager.createDrawingLayer(n,t);return this._innerComponent.getElement("drawing-layer")||this._innerComponent.setElement("drawing-layer",n.parentElement),s}createDrawingLayer(){let t;for(let e=Qi.USER_DEFINED_LAYER_BASE_ID;;e++)if(!this._drawingLayerManager.getDrawingLayer(e)&&e!==Qi.TIP_LAYER_ID){t=e;break}return this._createDrawingLayer(t)}deleteDrawingLayer(t){var e;this._drawingLayerManager.deleteDrawingLayer(t),this._drawingLayerManager.getAllDrawingLayers().length||(null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null)}deleteUserDefinedDrawingLayer(t){if("number"!=typeof t)throw new TypeError("Invalid id.");if(tt.getId()>=0&&t.getId()!==Qi.TIP_LAYER_ID))}updateDrawingLayers(t){((t,e,i)=>{if(!(t<=1||e<=1)){if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");this._drawingLayerManager.setDimensions({width:t,height:e},{backstoreOnly:!0}),this._drawingLayerManager.setObjectFit(i)}})(t.width,t.height,t.objectFit)}getSelectedDrawingItems(){return this._drawingLayerManager.getSelectedDrawingItems()}setTipConfig(t){if(!(ke(e=t)&&We(e.topLeftPoint)&&xe(e.width))||e.width<=0||!xe(e.duration)||"coordinateBase"in e&&!["view","image"].includes(e.coordinateBase))throw new Error("Invalid tip config.");var e;he(this,Ei,JSON.parse(JSON.stringify(t)),"f"),ae(this,Ei,"f").coordinateBase||(ae(this,Ei,"f").coordinateBase="view"),he(this,Ti,t.duration,"f"),ae(this,wi,"m",Ai).call(this)}getTipConfig(){return ae(this,Ei,"f")?ae(this,Ei,"f"):null}setTipVisible(t){if("boolean"!=typeof t)throw new TypeError("Invalid value.");this._tip&&(this._tip.set("visible",t),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll()),he(this,bi,t,"f")}isTipVisible(){return ae(this,bi,"f")}updateTipMessage(t){if(!ae(this,Ei,"f"))throw new Error("Tip config is not set.");this._tipStyleId||(this._tipStyleId=Ji.createDrawingStyle({fillStyle:"#FFFFFF",paintMode:"fill",fontFamily:"Open Sans",fontSize:40})),this._drawingLayerOfTip||(this._drawingLayerOfTip=this._drawingLayerManager.getDrawingLayer(Qi.TIP_LAYER_ID)||this._createDrawingLayer(Qi.TIP_LAYER_ID)),this._tip?this._tip.set("text",t):this._tip=ae(this,wi,"m",Si).call(this,t,ae(this,Ei,"f").topLeftPoint.x,ae(this,Ei,"f").topLeftPoint.y,ae(this,Ei,"f").width,ae(this,Ei,"f").coordinateBase,this._tipStyleId),ae(this,wi,"m",Ii).call(this,this._tip,this._drawingLayerOfTip),this._tip.set("visible",ae(this,bi,"f")),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll(),ae(this,Ci,"f")&&clearTimeout(ae(this,Ci,"f")),ae(this,Ti,"f")>=0&&he(this,Ci,setTimeout((()=>{ae(this,wi,"m",xi).call(this)}),ae(this,Ti,"f")),"f")}}Ei=new WeakMap,Ci=new WeakMap,Ti=new WeakMap,bi=new WeakMap,wi=new WeakSet,Si=function(t,e,i,r,n,s){const o=new tr(t,e,i,r,s);return o.coordinateBase=n,o},Ii=function(t,e){e.hasDrawingItem(t)||e.addDrawingItems([t])},xi=function(){this._tip&&this._drawingLayerOfTip.removeDrawingItems([this._tip])},Ai=function(){if(!this._tip)return;const t=ae(this,Ei,"f");this._tip.coordinateBase=t.coordinateBase,this._tip.setTextRect({x:t.topLeftPoint.x,y:t.topLeftPoint.y,width:t.width,height:0}),this._tip.set("width",this._tip.get("width")),this._tip._drawingLayer&&this._tip._drawingLayer.renderAll()};class ir extends HTMLElement{constructor(){super(),Ri.set(this,void 0);const t=document.createElement("template").content,e=document.createElement("div");e.setAttribute("class","wrapper"),t.appendChild(e),he(this,Ri,e,"f");const i=document.createElement("slot");i.setAttribute("name","single-frame-input-container"),e.append(i);const r=document.createElement("slot");r.setAttribute("name","content"),e.append(r);const n=document.createElement("slot");n.setAttribute("name","drawing-layer"),e.append(n);const s=document.createElement("style");s.textContent='\n.wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n::slotted(canvas[slot="content"]) {\n object-fit: contain;\n pointer-events: none;\n}\n::slotted(div[slot="single-frame-input-container"]) {\n width: 1px;\n height: 1px;\n overflow: hidden;\n pointer-events: none;\n}\n::slotted(*) {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n ',t.appendChild(s),this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}getWrapper(){return ae(this,Ri,"f")}setElement(t,e){if(!(e instanceof HTMLElement))throw new TypeError("Invalid 'el'.");if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");this.removeElement(t),e.setAttribute("slot",t),this.appendChild(e)}getElement(t){if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");return this.querySelector(`[slot="${t}"]`)}removeElement(t){var e;if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");null===(e=this.querySelectorAll(`[slot="${t}"]`))||void 0===e||e.forEach((t=>t.remove()))}}Ri=new WeakMap,customElements.get("dce-component")||customElements.define("dce-component",ir);class rr extends HTMLElement{constructor(){super();const t=window._dce_default_template.content;this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}showScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="")}hideScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="none")}getElement(t){return this.shadowRoot.querySelector(t)}getVideoContainer(){return this.shadowRoot.querySelector(".dce-video-container")}getScanAreaEl(){return this.shadowRoot.querySelector(".dce-scanarea")}getScanLightEl(){return this.shadowRoot.querySelector(".dce-scanlight")}getLoadingBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-loading")}getCameraBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-camera")}getCameraSelectEl(){return this.shadowRoot.querySelector(".dce-sel-camera")}getResolutionSelectEl(){return this.shadowRoot.querySelector(".dce-sel-resolution")}getResolutionOptionEl(){return this.shadowRoot.querySelector(".dce-opt-gotResolution")}getCloseBtnEl(){return this.shadowRoot.querySelector(".dce-btn-close")}getDLRSelectEl(){return this.shadowRoot.querySelector(".dlr-sel-minletter")}getDLROptionEl(){return this.shadowRoot.querySelector(".dlr-opt-gotMinLtr")}}class nr extends er{static get engineResourcePath(){return ht.engineResourcePaths.dce}static set defaultUIElementURL(t){nr._defaultUIElementURL=t}static get defaultUIElementURL(){var t;return null===(t=nr._defaultUIElementURL)||void 0===t?void 0:t.replace("@engineResourcePath/",nr.engineResourcePath)}static async createInstance(t){customElements.get(nr.uiComponentName)||customElements.define(nr.uiComponentName,rr);const e=new nr;return await e.setUIElement(t||nr.defaultUIElementURL),e}static _transformCoordinates(t,e,i,r,n,s,o){const a=s/r,h=o/n;t.x=Math.round(t.x/a+e),t.y=Math.round(t.y/h+i)}set _singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(t!==ae(this,Ui,"f")){if(he(this,Ui,t,"f"),ae(this,Oi,"m",Wi).call(this))he(this,Fi,null,"f"),this._videoContainer=null,this._innerComponent.removeElement("content"),this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block");else if(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none"),!ae(this,Fi,"f")){const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(fe.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),he(this,Fi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}ae(this,Oi,"m",Wi).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading())}}get _singleFrameMode(){return ae(this,Ui,"f")}get disposed(){return ae(this,Gi,"f")}constructor(){super(),Oi.add(this),Di.set(this,void 0),Li.set(this,void 0),Mi.set(this,void 0),this.containerClassName="dce-video-container",Fi.set(this,void 0),this.videoFit="contain",this._hideDefaultSelection=!1,this._divScanArea=null,this._divScanLight=null,this._bgLoading=null,this._selCam=null,this._bgCamera=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,Pi.set(this,null),this.regionMaskFillStyle="rgba(0,0,0,0.5)",this.regionMaskStrokeStyle="rgb(254,142,20)",this.regionMaskLineWidth=6,ki.set(this,!1),Bi.set(this,!1),Ni.set(this,{width:0,height:0}),this._updateLayersTimeout=500,this._videoResizeListener=()=>{ae(this,Oi,"m",zi).call(this),this._updateLayersTimeoutId&&clearTimeout(this._updateLayersTimeoutId),this._updateLayersTimeoutId=setTimeout((()=>{this.disposed||(this.eventHandler.fire("videoEl:resized",null,{async:!1}),this.eventHandler.fire("content:updated",null,{async:!1}),this.isScanLaserVisible()&&ae(this,Oi,"m",Xi).call(this))}),this._updateLayersTimeout)},this._windowResizeListener=()=>{nr._onLog&&nr._onLog("window resize event triggered."),ae(this,Ni,"f").width===document.documentElement.clientWidth&&ae(this,Ni,"f").height===document.documentElement.clientHeight||(ae(this,Ni,"f").width=document.documentElement.clientWidth,ae(this,Ni,"f").height=document.documentElement.clientHeight,this._videoResizeListener())},Ui.set(this,"disabled"),this._clickIptSingleFrameMode=()=>{if(!ae(this,Oi,"m",Wi).call(this))return;let t;if(this._singleFrameInputContainer)t=this._singleFrameInputContainer.firstElementChild;else{t=document.createElement("input"),t.setAttribute("type","file"),"camera"===this._singleFrameMode?(t.setAttribute("capture",""),t.setAttribute("accept","image/*")):"image"===this._singleFrameMode&&(t.removeAttribute("capture"),t.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp")),t.addEventListener("change",(async()=>{const e=t.files[0];t.value="";{const t=async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i},i=(t,e,i,r)=>{t.width==i&&t.height==r||(t.width=i,t.height=r);const n=t.getContext("2d");n.clearRect(0,0,t.width,t.height),n.drawImage(e,0,0)},r=await t(e),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=this._cvsSingleFrameMode;const a=null==o?void 0:o.width,h=null==o?void 0:o.height;o||(o=document.createElement("canvas"),this._cvsSingleFrameMode=o),i(o,r,n,s),this._innerComponent.setElement("content",o),a===o.width&&h===o.height||this.eventHandler.fire("content:updated",null,{async:!1})}this._onSingleFrameAcquired&&setTimeout((()=>{this._onSingleFrameAcquired(this._cvsSingleFrameMode)}),0)})),t.style.position="absolute",t.style.top="-9999px",t.style.backgroundColor="transparent",t.style.color="transparent";const e=document.createElement("div");e.append(t),this._innerComponent.setElement("single-frame-input-container",e),this._singleFrameInputContainer=e}null==t||t.click()},this.extraBindings=[],ji.set(this,[]),this._capturedResultReceiver={onCapturedResultReceived:(t,e)=>{var i,r,n,s;if(this.disposed)return;if(this.clearAllInnerDrawingItems(),!t)return;const o=t.originalImageTag;if(!o)return;const a=t.items;if(!(null==a?void 0:a.length))return;const h=(null===(i=o.cropRegion)||void 0===i?void 0:i.left)||0,l=(null===(r=o.cropRegion)||void 0===r?void 0:r.top)||0,c=(null===(n=o.cropRegion)||void 0===n?void 0:n.right)?o.cropRegion.right-h:o.originalWidth,u=(null===(s=o.cropRegion)||void 0===s?void 0:s.bottom)?o.cropRegion.bottom-l:o.originalHeight,d=o.currentWidth,f=o.currentHeight,g=(t,e,i,r,n,s,o,a,h=[],l)=>{e.forEach((t=>nr._transformCoordinates(t,i,r,n,s,o,a)));const c=new Ki({points:[{x:e[0].x,y:e[0].y},{x:e[1].x,y:e[1].y},{x:e[2].x,y:e[2].y},{x:e[3].x,y:e[3].y}]},l);for(let t of h)c.addNote(t);t.addDrawingItems([c]),ae(this,ji,"f").push(c)};let m,p;for(let t of a)switch(t.type){case lt.CRIT_ORIGINAL_IMAGE:break;case lt.CRIT_BARCODE:m=this.getDrawingLayer(Qi.DBR_LAYER_ID),p=[{name:"format",content:t.formatString},{name:"text",content:t.text}],(null==e?void 0:e.isBarcodeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,Ji.STYLE_ORANGE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case lt.CRIT_TEXT_LINE:m=this.getDrawingLayer(Qi.DLR_LAYER_ID),p=[{name:"text",content:t.text}],e.isLabelVerifyOpen?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,Ji.STYLE_GREEN_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case lt.CRIT_DETECTED_QUAD:m=this.getDrawingLayer(Qi.DDN_LAYER_ID),(null==e?void 0:e.isDetectVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],Ji.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case lt.CRIT_NORMALIZED_IMAGE:m=this.getDrawingLayer(Qi.DDN_LAYER_ID),(null==e?void 0:e.isNormalizeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],Ji.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case lt.CRIT_PARSED_RESULT:break;default:throw new Error("Illegal item type.")}}},Gi.set(this,!1),this.eventHandler=new Ke,this.eventHandler.on("content:updated",(()=>{ae(this,Di,"f")&&clearTimeout(ae(this,Di,"f")),he(this,Di,setTimeout((()=>{if(this.disposed)return;let t;this._updateVideoContainer();try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateDrawingLayers(t),this.updateConvertedRegion(t)}),0),"f")})),this.eventHandler.on("videoEl:resized",(()=>{ae(this,Li,"f")&&clearTimeout(ae(this,Li,"f")),he(this,Li,setTimeout((()=>{this.disposed||this._updateVideoContainer()}),0),"f")}))}_setUIElement(t){t instanceof HTMLTemplateElement?(window._dce_default_template=t,this.UIElement=new rr):this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await $e(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=await $e(nr.defaultUIElementURL);t instanceof HTMLTemplateElement?(window._dce_default_template=t,e.append(new rr)):e.append(t),this._setUIElement(e)}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){var t;if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;let e,i=this.UIElement;if(i instanceof rr?e=i.getElement(`.${this.containerClassName}`):i instanceof HTMLDivElement&&1===i.childElementCount&&i.firstElementChild instanceof rr?(e=i.firstElementChild.getElement(`.${this.containerClassName}`),i=i.firstElementChild):e=i.classList.contains(this.containerClassName)?i:i.querySelector(`.${this.containerClassName}`),!e)throw Error(`Can not find the element with class '${this.containerClassName}'.`);if(this._innerComponent=new ir,e.appendChild(this._innerComponent),ae(this,Oi,"m",Wi).call(this));else{const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(fe.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),he(this,Fi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}if(i instanceof rr?(this._selRsl=i.getElement(".dce-sel-resolution"),this._selMinLtr=i.getElement(".dlr-sel-minletter"),this._divScanArea=i.getElement(".dce-scanarea"),this._divScanLight=i.getElement(".dce-scanlight"),this._bgLoading=i.getElement(".dce-bg-loading"),this._bgCamera=i.getElement(".dce-bg-camera"),this._selCam=i.getElement(".dce-sel-camera"),this._optGotRsl=i.getElement(".dce-opt-gotResolution"),this._btnClose=i.getElement(".dce-btn-close"),this._optGotMinLtr=i.getElement(".dlr-opt-gotMinLtr")):(this._selRsl=i.querySelector(".dce-sel-resolution"),this._selMinLtr=i.querySelector(".dlr-sel-minletter"),this._divScanArea=i.querySelector(".dce-scanarea"),this._divScanLight=i.querySelector(".dce-scanlight"),this._bgLoading=i.querySelector(".dce-bg-loading"),this._bgCamera=i.querySelector(".dce-bg-camera"),this._selCam=i.querySelector(".dce-sel-camera"),this._optGotRsl=i.querySelector(".dce-opt-gotResolution"),this._btnClose=i.querySelector(".dce-btn-close"),this._optGotMinLtr=i.querySelector(".dlr-opt-gotMinLtr")),this._selRsl&&(this._hideDefaultSelection||ae(this,Oi,"m",Wi).call(this)||this._selRsl.options.length||(this._selRsl.innerHTML=['','','',''].join(""),this._optGotRsl=this._selRsl.options[0])),this._selMinLtr&&(this._hideDefaultSelection||ae(this,Oi,"m",Wi).call(this)||this._selMinLtr.options.length||(this._selMinLtr.innerHTML=['','','','','','','','','','',''].join(""),this._optGotMinLtr=this._selMinLtr.options[0])),this.isScanLaserVisible()||ae(this,Oi,"m",zi).call(this),ae(this,Oi,"m",Wi).call(this)&&(this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block")),ae(this,Oi,"m",Wi).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading()),window.ResizeObserver){this._resizeObserver||(this._resizeObserver=new ResizeObserver((t=>{var e;nr._onLog&&nr._onLog("resize observer triggered.");for(let i of t)i.target===(null===(e=this._innerComponent)||void 0===e?void 0:e.getWrapper())&&this._videoResizeListener()})));const e=null===(t=this._innerComponent)||void 0===t?void 0:t.getWrapper();e&&this._resizeObserver.observe(e)}ae(this,Ni,"f").width=document.documentElement.clientWidth,ae(this,Ni,"f").height=document.documentElement.clientHeight,window.addEventListener("resize",this._windowResizeListener)}_unbindUI(){var t,e,i,r;ae(this,Oi,"m",Wi).call(this)?(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none")):this._stopLoading(),ae(this,Oi,"m",zi).call(this),null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,this._drawingLayerOfMask=null,this._drawingLayerOfTip=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null,he(this,Fi,null,"f"),null===(r=this._videoContainer)||void 0===r||r.remove(),this._videoContainer=null,this._selCam=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,this._divScanArea=null,this._divScanLight=null,this._singleFrameInputContainer&&(this._singleFrameInputContainer.remove(),this._singleFrameInputContainer=null),window.ResizeObserver&&this._resizeObserver&&this._resizeObserver.disconnect(),window.removeEventListener("resize",this._windowResizeListener)}_startLoading(){this._bgLoading&&(this._bgLoading.style.display="",this._bgLoading.style.animationPlayState="")}_stopLoading(){this._bgLoading&&(this._bgLoading.style.display="none",this._bgLoading.style.animationPlayState="paused")}_renderCamerasInfo(t,e){if(!this._selCam)return;let i;this._selCam.textContent="";for(let r of e){const e=document.createElement("option");e.value=r.deviceId,e.innerText=r.label,this._selCam.append(e),r.deviceId&&t&&t.deviceId==r.deviceId&&(i=e)}this._selCam.value=i?i.value:""}_renderResolutionInfo(t){this._optGotRsl&&(this._optGotRsl.setAttribute("data-width",t.width),this._optGotRsl.setAttribute("data-height",t.height),this._optGotRsl.innerText="got "+t.width+"x"+t.height,this._selRsl&&this._optGotRsl.parentNode==this._selRsl&&(this._selRsl.value="got"))}getVideoElement(){return ae(this,Fi,"f")}isVideoLoaded(){return!!ae(this,Fi,"f")&&4==ae(this,Fi,"f").readyState}setVideoFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);if(this.videoFit=t,!ae(this,Fi,"f"))return;if(ae(this,Fi,"f").style.objectFit=t,ae(this,Oi,"m",Wi).call(this))return;let e;this._updateVideoContainer();try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}ae(this,Oi,"m",Zi).call(this,e,this.getConvertedRegion()),this.updateDrawingLayers(e)}getVideoFit(){return this.videoFit}getContentDimensions(){var t,e,i,r;let n,s,o;if(ae(this,Oi,"m",Wi).call(this)?(n=null===(i=this._cvsSingleFrameMode)||void 0===i?void 0:i.width,s=null===(r=this._cvsSingleFrameMode)||void 0===r?void 0:r.height,o="contain"):(n=null===(t=ae(this,Fi,"f"))||void 0===t?void 0:t.videoWidth,s=null===(e=ae(this,Fi,"f"))||void 0===e?void 0:e.videoHeight,o=this.getVideoFit()),!n||!s)throw new Error("Invalid content dimensions.");return{width:n,height:s,objectFit:o}}updateConvertedRegion(t){const e=Xe.convert(this.scanRegion,t.width,t.height);he(this,Pi,e,"f"),ae(this,Mi,"f")&&clearTimeout(ae(this,Mi,"f")),he(this,Mi,setTimeout((()=>{let t;try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}ae(this,Oi,"m",Vi).call(this,t,e),ae(this,Oi,"m",Zi).call(this,t,e)}),0),"f")}getConvertedRegion(){return ae(this,Pi,"f")}setScanRegion(t){if(null!=t&&!Ue(t)&&!Ye(t))throw TypeError("Invalid 'region'.");let e;this.scanRegion=t?JSON.parse(JSON.stringify(t)):null;try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateConvertedRegion(e)}getScanRegion(){return JSON.parse(JSON.stringify(this.scanRegion))}getVisibleRegionOfVideo(t){if(!this.isVideoLoaded())throw new Error("The video is not loaded.");const e=ae(this,Fi,"f").videoWidth,i=ae(this,Fi,"f").videoHeight,r=this.getVideoFit(),{width:n,height:s}=this._innerComponent.getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");let o;const a={x:0,y:0,width:e,height:i,isMeasuredInPercentage:!1};if("cover"===r&&(n/s1){const t=ae(this,Fi,"f").videoWidth,e=ae(this,Fi,"f").videoHeight,{width:r,height:n}=this._innerComponent.getBoundingClientRect(),s=t/e;if(r/nt.remove())),ae(this,ji,"f").length=0}dispose(){this._unbindUI(),delete window._dce_default_template,this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"disposed",{value:!0})}}function sr(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function or(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}Di=new WeakMap,Li=new WeakMap,Mi=new WeakMap,Fi=new WeakMap,Pi=new WeakMap,ki=new WeakMap,Bi=new WeakMap,Ni=new WeakMap,Ui=new WeakMap,ji=new WeakMap,Gi=new WeakMap,Oi=new WeakSet,Wi=function(){return"disabled"!==this._singleFrameMode},Vi=function(t,e){!e||0===e.x&&0===e.y&&e.width===t.width&&e.height===t.height?this.clearScanRegionMask():this.setScanRegionMask(e.x,e.y,e.width,e.height)},Yi=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!0)},Hi=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!1)},Xi=function(){this._divScanLight&&"none"==this._divScanLight.style.display&&(this._divScanLight.style.display="block")},zi=function(){this._divScanLight&&(this._divScanLight.style.display="none")},Zi=function(t,e){if(!this._divScanArea)return;if(!this._innerComponent.getElement("content"))return;const{width:i,height:r,objectFit:n}=t;e||(e={x:0,y:0,width:i,height:r});const{width:s,height:o}=this._innerComponent.getBoundingClientRect();if(s<=0||o<=0)return;const a=s/o,h=i/r;let l,c,u,d,f=1;if("contain"===n)a66||"Safari"===dr.browser&&dr.version>13||"OPR"===dr.browser&&dr.version>43||"Edge"===dr.browser&&dr.version,"function"==typeof SuppressedError&&SuppressedError;class mr{static multiply(t,e){const i=[];for(let r=0;r<3;r++){const n=e.slice(3*r,3*r+3);for(let e=0;e<3;e++){const r=[t[e],t[e+3],t[e+6]].reduce(((t,e,i)=>t+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(t,e,i){return mr.multiply(t,[1,0,0,0,1,0,e,i,1])}static rotate(t,e){var i=Math.cos(e),r=Math.sin(e);return mr.multiply(t,[i,-r,0,r,i,0,0,0,1])}static scale(t,e,i){return mr.multiply(t,[e,0,0,0,i,0,0,0,1])}}var pr,_r,vr,yr,wr,Er,Cr,Tr,br,Sr,Ir,xr,Ar,Rr,Or,Dr,Lr,Mr,Fr,Pr,kr,Br,Nr,Ur,jr,Gr,Wr,Vr,Yr,Hr,Xr,zr,Zr,Kr,qr,Jr,Qr,$r,tn,en,rn,nn,sn,on,an,hn,ln,cn,un,dn,fn,gn;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(pr||(pr={}));class mn{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(gr(mn,_r,!1,"f",vr),!1):(gr(mn,_r,!0,"f",vr),!0)}get disposed(){return fr(this,br,"f")}constructor(){yr.set(this,pr.RGBA),wr.set(this,null),Er.set(this,null),Cr.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,Tr.set(this,null),br.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==fr(mn,_r,"f",vr)&&mn.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!fr(mn,_r,"f",vr))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;mn._onLog&&(o=Date.now(),mn._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=pr.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!fr(mn,_r,"f",vr)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){mn._onLog&&mn._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);gr(this,Er,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),gr(this,Cr,e(t),"f"),gr(this,wr,i(t),"f"),gr(this,yr,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[pr.GREY,pr.GREY32].includes(p)?1:0);let m,_,v=mr.translate(mr.identity(),-1,-1);v=mr.scale(v,2,2),v=mr.scale(v,1/t.canvas.width,1/t.canvas.height),m=mr.translate(v,u,d),m=mr.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=mr.translate(mr.identity(),a/i,h/r),_=mr.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,fr(this,wr,"f"),e),v(t,fr(this,Er,"f"),fr(this,Cr,"f"),fr(this,wr,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){mn._onLog&&mn._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return mn._onLog&&mn._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===pr.GREY?pr.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return mn._onLog&&mn._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(mn._onLog&&(n=Date.now(),mn._onLog("transformPixelFormat(), START: "+n)),e===i)return mn._onLog&&mn._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[pr.RGBA,pr.RBGA,pr.GRBA,pr.GBRA,pr.BRGA,pr.BGRA];if(o.includes(e))if(i===pr.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;mn._onLog&&(s=Date.now(),mn._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=pr.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),fr(mn,_r,"f",vr)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){mn._onLog&&mn._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===pr.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{this.disposed||n.apply(i.target,r)}),0);else try{s=await n.apply(i.target,r)}catch(t){}if(!0===s)break}}}dispose(){or(this,Ir,!0,"f")}}Sr=new WeakMap,Ir=new WeakMap;const _n=(t,e,i,r)=>{if(!i)return t;let n=e+Math.round((t-e)/i)*i;return r&&(n=Math.min(n,r)),n};class vn{static get version(){return"2.0.2"}static isStorageAvailable(t){let e;try{e=window[t];const i="__storage_test__";return e.setItem(i,i),e.removeItem(i),!0}catch(t){return t instanceof DOMException&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&e&&0!==e.length}}static findBestRearCameraInIOS(t,e){if(!t||!t.length)return null;let i=!1;if((null==e?void 0:e.getMainCamera)&&(i=!0),i){const e=["후면 카메라","背面カメラ","後置鏡頭","后置相机","กล้องด้านหลัง","बैक कैमरा","الكاميرا الخلفية","מצלמה אחורית","камера на задней панели","задня камера","задна камера","артқы камера","πίσω κάμερα","zadní fotoaparát","zadná kamera","tylny aparat","takakamera","stražnja kamera","rückkamera","kamera på baksidan","kamera belakang","kamera bak","hátsó kamera","fotocamera (posteriore)","câmera traseira","câmara traseira","cámara trasera","càmera posterior","caméra arrière","cameră spate","camera mặt sau","camera aan achterzijde","bagsidekamera","back camera","arka kamera"],i=t.find((t=>e.includes(t.label.toLowerCase())));return null==i?void 0:i.deviceId}{const e=["후면","背面","後置","后置","านหลัง","बैक","خلفية","אחורית","задняя","задней","задна","πίσω","zadní","zadná","tylny","trasera","traseira","taka","stražnja","spate","sau","rück","posteriore","posterior","hátsó","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"],i=["트리플","三镜头","三鏡頭","トリプル","สาม","ट्रिपल","ثلاثية","משולשת","үштік","тройная","тройна","потроєна","τριπλή","üçlü","trójobiektywowy","trostruka","trojný","trojitá","trippelt","trippel","triplă","triple","tripla","tiga","kolmois","ba camera"],r=["듀얼 와이드","雙廣角","双广角","デュアル広角","คู่ด้านหลังมุมกว้าง","ड्युअल वाइड","مزدوجة عريضة","כפולה רחבה","қос кең бұрышты","здвоєна ширококутна","двойная широкоугольная","двойна широкоъгълна","διπλή ευρεία","çift geniş","laajakulmainen kaksois","kép rộng mặt sau","kettős, széles látószögű","grande angular dupla","ganda","dwuobiektywowy","dwikamera","dvostruka široka","duální širokoúhlý","duálna širokouhlá","dupla grande-angular","dublă","dubbel vidvinkel","dual-weitwinkel","dual wide","dual con gran angular","dual","double","doppia con grandangolo","doble","dobbelt vidvinkelkamera"],n=t.filter((t=>{const i=t.label.toLowerCase();return e.some((t=>i.includes(t)))}));if(!n.length)return null;const s=n.find((t=>{const e=t.label.toLowerCase();return i.some((t=>e.includes(t)))}));if(s)return s.deviceId;const o=n.find((t=>{const e=t.label.toLowerCase();return r.some((t=>e.includes(t)))}));return o?o.deviceId:n[0].deviceId}}static findBestRearCamera(t,e){if(!t||!t.length)return null;if(["iPhone","iPad","Mac"].includes(dr.OS))return vn.findBestRearCameraInIOS(t,{getMainCamera:null==e?void 0:e.getMainCameraInIOS});const i=["후","背面","背置","後面","後置","后面","后置","านหลัง","หลัง","बैक","خلفية","אחורית","задняя","задня","задней","задна","πίσω","zadní","zadná","tylny","trás","trasera","traseira","taka","stražnja","spate","sau","rück","rear","posteriore","posterior","hátsó","darrere","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"];for(let e of t){const t=e.label.toLowerCase();if(t&&i.some((e=>t.includes(e)))&&/\b0(\b)?/.test(t))return e.deviceId}return["Android","HarmonyOS"].includes(dr.OS)?t[t.length-1].deviceId:null}static findBestCamera(t,e,i){return t&&t.length?"environment"===e?this.findBestRearCamera(t,i):"user"===e?null:e?void 0:null:null}static async playVideo(t,e,i){if(!t)throw new Error("Invalid 'videoEl'.");if(!e)throw new Error("Invalid 'source'.");return new Promise((async(r,n)=>{let s;const o=()=>{t.removeEventListener("loadstart",c),t.removeEventListener("abort",u),t.removeEventListener("play",d),t.removeEventListener("error",f),t.removeEventListener("loadedmetadata",p)};let a=!1;const h=()=>{a=!0,s&&clearTimeout(s),o(),r(t)},l=t=>{s&&clearTimeout(s),o(),n(t)},c=()=>{t.addEventListener("abort",u,{once:!0})},u=()=>{const t=new Error("Video playing was interrupted.");t.name="AbortError",l(t)},d=()=>{h()},f=()=>{l(new Error(`Video error ${t.error.code}: ${t.error.message}.`))};let g;const m=new Promise((t=>{g=t})),p=()=>{g()};if(t.addEventListener("loadstart",c,{once:!0}),t.addEventListener("play",d,{once:!0}),t.addEventListener("error",f,{once:!0}),t.addEventListener("loadedmetadata",p,{once:!0}),"string"==typeof e||e instanceof String?t.src=e:t.srcObject=e,t.autoplay&&await new Promise((t=>{setTimeout(t,1e3)})),!a){i&&(s=setTimeout((()=>{o(),n(new Error("Failed to play video. Timeout."))}),i));try{t.src&&await t.load(),await t.play(),h()}catch(e){vn._onLog&&vn._onLog("1st play error: "+((null==e?void 0:e.message)||e)),await m;try{await t.play(),h()}catch(t){vn._onLog&&vn._onLog("2rd play error: "+((null==t?void 0:t.message)||t)),l(t)}}}}))}static async testCameraAccess(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))return{ok:!1,errorName:"InsecureContext",errorMessage:"Insecure context."};let r;try{r=t?await navigator.mediaDevices.getUserMedia(t):await navigator.mediaDevices.getUserMedia({video:!0})}catch(t){return{ok:!1,errorName:t.name,errorMessage:t.message}}finally{null==r||r.getTracks().forEach((t=>{t.stop()}))}return{ok:!0}}get state(){if(!sr(this,jr,"f"))return"closed";if("pending"===sr(this,jr,"f"))return"opening";if("fulfilled"===sr(this,jr,"f"))return"opened";throw new Error("Unknown state.")}set ifSaveLastUsedCamera(t){t?vn.isStorageAvailable("localStorage")?or(this,kr,!0,"f"):(or(this,kr,!1,"f"),console.warn("Local storage is unavailable")):or(this,kr,!1,"f")}get ifSaveLastUsedCamera(){return sr(this,kr,"f")}get isVideoPlaying(){return!(!sr(this,Rr,"f")||sr(this,Rr,"f").paused)&&"opened"===this.state}set tapFocusEventBoundEl(t){var e,i,r;if(!(t instanceof HTMLElement)&&null!=t)throw new TypeError("Invalid 'element'.");null===(e=sr(this,Xr,"f"))||void 0===e||e.removeEventListener("click",sr(this,Hr,"f")),null===(i=sr(this,Xr,"f"))||void 0===i||i.removeEventListener("touchend",sr(this,Hr,"f")),null===(r=sr(this,Xr,"f"))||void 0===r||r.removeEventListener("touchmove",sr(this,Yr,"f")),or(this,Xr,t,"f"),t&&(window.TouchEvent&&["Android","HarmonyOS","iPhone","iPad"].includes(dr.OS)?(t.addEventListener("touchend",sr(this,Hr,"f")),t.addEventListener("touchmove",sr(this,Yr,"f"))):t.addEventListener("click",sr(this,Hr,"f")))}get tapFocusEventBoundEl(){return sr(this,Xr,"f")}get disposed(){return sr(this,en,"f")}constructor(t){var e,i;Ar.add(this),Rr.set(this,null),Or.set(this,void 0),Dr.set(this,(()=>{"opened"===this.state&&sr(this,qr,"f").fire("resumed",null,{target:this,async:!0})})),Lr.set(this,(()=>{sr(this,qr,"f").fire("paused",null,{target:this,async:!1})})),Mr.set(this,void 0),Fr.set(this,void 0),this.cameraOpenTimeout=15e3,this._arrCameras=[],Pr.set(this,void 0),kr.set(this,!1),this.ifSkipCameraInspection=!1,this.selectIOSRearMainCameraAsDefault=!1,Br.set(this,void 0),Nr.set(this,!0),Ur.set(this,void 0),jr.set(this,void 0),Gr.set(this,!1),this._focusParameters={maxTimeout:400,minTimeout:300,kTimeout:void 0,oldDistance:null,fds:null,isDoingFocus:0,taskBackToContinous:null,curFocusTaskId:0,focusCancelableTime:1500,defaultFocusAreaSizeRatio:6,focusBackToContinousTime:5e3,tapFocusMinDistance:null,tapFocusMaxDistance:null,focusArea:null,tempBufferContainer:null,defaultTempBufferContainerLenRatio:1/4},Wr.set(this,!1),this._focusSupported=!0,this.calculateCoordInVideo=(t,e)=>{let i,r;const n=window.getComputedStyle(sr(this,Rr,"f")).objectFit,s=this.getResolution(),o=sr(this,Rr,"f").getBoundingClientRect(),a=o.left,h=o.top,{width:l,height:c}=sr(this,Rr,"f").getBoundingClientRect();if(l<=0||c<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const u=l/c,d=s.width/s.height;let f=1;if("contain"===n)d>u?(f=l/s.width,i=(t-a)/f,r=(e-h-(c-l/d)/2)/f):(f=c/s.height,r=(e-h)/f,i=(t-a-(l-c*d)/2)/f);else{if("cover"!==n)throw new Error("Unsupported object-fit.");d>u?(f=c/s.height,r=(e-h)/f,i=(t-a+(c*d-l)/2)/f):(f=l/s.width,i=(t-a)/f,r=(e-h+(l/d-c)/2)/f)}return{x:i,y:r}},Vr.set(this,!1),Yr.set(this,(()=>{or(this,Vr,!0,"f")})),Hr.set(this,(async t=>{var e;if(sr(this,Vr,"f"))return void or(this,Vr,!1,"f");if(!sr(this,Wr,"f"))return;if(!this.isVideoPlaying)return;if(!sr(this,Or,"f"))return;if(!this._focusSupported)return;if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(e=this.getCameraCapabilities())||void 0===e?void 0:e.focusDistance,!this._focusParameters.fds))return void(this._focusSupported=!1);if(null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),1==this._focusParameters.isDoingFocus)return;let i,r;if(this._focusParameters.taskBackToContinous&&(clearTimeout(this._focusParameters.taskBackToContinous),this._focusParameters.taskBackToContinous=null),t instanceof MouseEvent)i=t.clientX,r=t.clientY;else{if(!(t instanceof TouchEvent))throw new Error("Unknown event type.");if(!t.changedTouches.length)return;i=t.changedTouches[0].clientX,r=t.changedTouches[0].clientY}const n=this.getResolution(),s=2*Math.round(Math.min(n.width,n.height)/this._focusParameters.defaultFocusAreaSizeRatio/2);let o;try{o=this.calculateCoordInVideo(i,r)}catch(t){}if(o.x<0||o.x>n.width||o.y<0||o.y>n.height)return;const a={x:o.x+"px",y:o.y+"px"},h=s+"px",l=h;let c;vn._onLog&&(c=Date.now());try{await sr(this,Ar,"m",dn).call(this,a,h,l,this._focusParameters.tapFocusMinDistance,this._focusParameters.tapFocusMaxDistance)}catch(t){if(vn._onLog)throw vn._onLog(t),t}vn._onLog&&vn._onLog(`Tap focus costs: ${Date.now()-c} ms`),this._focusParameters.taskBackToContinous=setTimeout((()=>{var t;vn._onLog&&vn._onLog("Back to continuous focus."),null===(t=sr(this,Or,"f"))||void 0===t||t.applyConstraints({advanced:[{focusMode:"continuous"}]}).catch((()=>{}))}),this._focusParameters.focusBackToContinousTime),sr(this,qr,"f").fire("tapfocus",null,{target:this,async:!0})})),Xr.set(this,null),zr.set(this,1),Zr.set(this,{x:0,y:0}),this.updateVideoElWhenSoftwareScaled=()=>{if(!sr(this,Rr,"f"))return;const t=sr(this,zr,"f");if(t<1)throw new RangeError("Invalid scale value.");if(1===t)sr(this,Rr,"f").style.transform="";else{const e=window.getComputedStyle(sr(this,Rr,"f")).objectFit,i=sr(this,Rr,"f").videoWidth,r=sr(this,Rr,"f").videoHeight,{width:n,height:s}=sr(this,Rr,"f").getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const o=n/s,a=i/r;let h=1;"contain"===e?h=oo?s/(i/t):n/(r/t));const l=h*(1-1/t)*(i/2-sr(this,Zr,"f").x),c=h*(1-1/t)*(r/2-sr(this,Zr,"f").y);sr(this,Rr,"f").style.transform=`translate(${l}px, ${c}px) scale(${t})`}},Kr.set(this,(function(){if(!(this.data instanceof Uint8Array||this.data instanceof Uint8ClampedArray))throw new TypeError("Invalid data.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.pixelFormat===pr.GREY){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{var t,e;if("visible"===document.visibilityState){if(vn._onLog&&vn._onLog("document visible. video paused: "+(null===(t=sr(this,Rr,"f"))||void 0===t?void 0:t.paused)),sr(this,$r,"f")&&sr(this,Rr,"f")&&this.videoSrc&&"opened"===this.state)return void this.resume().catch((()=>{}));if(!this._mediaStream)return;if(this._mediaStream.active&&sr(this,Or,"f"))if(sr(this,Or,"f").muted&&["iPhone","iPad","Mac"].includes(dr.OS)){if(dr.version>=17)return void vn.playVideo(sr(this,Rr,"f"),this._mediaStream,this.cameraOpenTimeout);await sr(this,Ar,"m",an).call(this)}else sr(this,$r,"f")&&this.resume().catch((()=>{}));else await sr(this,Ar,"m",an).call(this)}else if("hidden"===document.visibilityState&&(vn._onLog&&vn._onLog("document hidden. video paused: "+(null===(e=sr(this,Rr,"f"))||void 0===e?void 0:e.paused)),["iPhone","iPad","Mac"].includes(dr.OS)?or(this,$r,!0,"f"):or(this,$r,this.isVideoPlaying,"f"),this.isVideoLoaded()&&"opened"==this.state)){if(["iPhone","iPad","Mac"].includes(dr.OS)&&dr.version>=17)return;this.pause()}})),en.set(this,!1),(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia)||setTimeout((()=>{vn.onWarning&&vn.onWarning("The browser is too old or the page is loaded from an insecure origin.")}),0),this.defaultConstraints={video:{facingMode:{ideal:"environment"}}},this.resetMediaStreamConstraints(),t instanceof HTMLVideoElement&&this.setVideoEl(t),or(this,qr,new pn,"f"),this.imageDataGetter=new mn,document.addEventListener("visibilitychange",sr(this,tn,"f"))}setVideoEl(t){if(!(t&&t instanceof HTMLVideoElement))throw new Error("Invalid 'videoEl'.");t.addEventListener("play",sr(this,Dr,"f")),t.addEventListener("pause",sr(this,Lr,"f")),or(this,Rr,t,"f")}getVideoEl(){return sr(this,Rr,"f")}releaseVideoEl(){var t,e;null===(t=sr(this,Rr,"f"))||void 0===t||t.removeEventListener("play",sr(this,Dr,"f")),null===(e=sr(this,Rr,"f"))||void 0===e||e.removeEventListener("pause",sr(this,Lr,"f")),or(this,Rr,null,"f")}isVideoLoaded(){return!!sr(this,Rr,"f")&&4==sr(this,Rr,"f").readyState}async open(){if(sr(this,Ur,"f")&&!sr(this,Nr,"f")){if("pending"===sr(this,jr,"f"))return sr(this,Ur,"f");if("fulfilled"===sr(this,jr,"f"))return}sr(this,qr,"f").fire("before:open",null,{target:this}),await sr(this,Ar,"m",an).call(this),sr(this,qr,"f").fire("opened",null,{target:this,async:!0}),sr(this,qr,"f").fire("played",null,{target:this,async:!0})}async close(){if("closed"===this.state)return;sr(this,qr,"f").fire("before:close",null,{target:this});const t=sr(this,Ur,"f");if(sr(this,Ar,"m",ln).call(this),t&&"pending"===sr(this,jr,"f")){try{await t}catch(t){}if(!1===sr(this,Nr,"f")){const t=new Error("'close()' was interrupted.");throw t.name="AbortError",t}}or(this,Ur,null,"f"),or(this,jr,null,"f"),sr(this,qr,"f").fire("closed",null,{target:this,async:!0})}pause(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");sr(this,Rr,"f").pause()}async resume(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");await sr(this,Rr,"f").play()}async setCamera(t){if("string"!=typeof t)throw new TypeError("Invalid 'deviceId'.");if("object"!=typeof sr(this,Mr,"f").video&&(sr(this,Mr,"f").video={}),delete sr(this,Mr,"f").video.facingMode,sr(this,Mr,"f").video.deviceId={exact:t},!("closed"===this.state||this.videoSrc||"opening"===this.state&&sr(this,Nr,"f"))){sr(this,qr,"f").fire("before:camera:change",[],{target:this,async:!1}),await sr(this,Ar,"m",hn).call(this);try{this.resetSoftwareScale()}catch(t){}return sr(this,Fr,"f")}}async switchToFrontCamera(t){if("object"!=typeof sr(this,Mr,"f").video&&(sr(this,Mr,"f").video={}),(null==t?void 0:t.resolution)&&(sr(this,Mr,"f").video.width={ideal:t.resolution.width},sr(this,Mr,"f").video.height={ideal:t.resolution.height}),delete sr(this,Mr,"f").video.deviceId,sr(this,Mr,"f").video.facingMode={exact:"user"},or(this,Pr,null,"f"),!("closed"===this.state||this.videoSrc||"opening"===this.state&&sr(this,Nr,"f"))){sr(this,qr,"f").fire("before:camera:change",[],{target:this,async:!1}),sr(this,Ar,"m",hn).call(this);try{this.resetSoftwareScale()}catch(t){}return sr(this,Fr,"f")}}getCamera(){var t;if(sr(this,Fr,"f"))return sr(this,Fr,"f");{let e=(null===(t=sr(this,Mr,"f").video)||void 0===t?void 0:t.deviceId)||"";if(e){e=e.exact||e.ideal||e;for(let t of this._arrCameras)if(t.deviceId===e)return JSON.parse(JSON.stringify(t))}return{deviceId:"",label:"",_checked:!1}}}async _getCameras(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;if(t){let t=await navigator.mediaDevices.getUserMedia({video:!0});r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind)),t.getTracks().forEach((t=>{t.stop()}))}else r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind));const n=[],s=[];if(this._arrCameras)for(let t of this._arrCameras)t._checked&&s.push(t);for(let t=0;t"videoinput"===t.kind));return i&&i.length&&!i[0].deviceId?this._getCameras(!0):this._getCameras(!1)}async getAllCameras(){return this.getCameras()}async setResolution(t,e,i){if("number"!=typeof t||t<=0)throw new TypeError("Invalid 'width'.");if("number"!=typeof e||e<=0)throw new TypeError("Invalid 'height'.");if("object"!=typeof sr(this,Mr,"f").video&&(sr(this,Mr,"f").video={}),i?(sr(this,Mr,"f").video.width={exact:t},sr(this,Mr,"f").video.height={exact:e}):(sr(this,Mr,"f").video.width={ideal:t},sr(this,Mr,"f").video.height={ideal:e}),"closed"===this.state||this.videoSrc||"opening"===this.state&&sr(this,Nr,"f"))return null;sr(this,qr,"f").fire("before:resolution:change",[],{target:this,async:!1}),await sr(this,Ar,"m",hn).call(this);try{this.resetSoftwareScale()}catch(t){}const r=this.getResolution();return{width:r.width,height:r.height}}getResolution(){if("opened"===this.state&&this.videoSrc&&sr(this,Rr,"f"))return{width:sr(this,Rr,"f").videoWidth,height:sr(this,Rr,"f").videoHeight};if(sr(this,Or,"f")){const t=sr(this,Or,"f").getSettings();return{width:t.width,height:t.height}}if(this.isVideoLoaded())return{width:sr(this,Rr,"f").videoWidth,height:sr(this,Rr,"f").videoHeight};{const t={width:0,height:0};let e=sr(this,Mr,"f").video.width||0,i=sr(this,Mr,"f").video.height||0;return e&&(t.width=e.exact||e.ideal||e),i&&(t.height=i.exact||i.ideal||i),t}}async getResolutions(t){var e,i,r,n,s,o,a,h,l,c,u;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let d="";const f=(t,e)=>{const i=sr(this,Qr,"f").get(t);if(!i||!i.length)return!1;for(let t of i)if(t.width===e.width&&t.height===e.height)return!0;return!1};if(this._mediaStream){d=null===(u=sr(this,Fr,"f"))||void 0===u?void 0:u.deviceId;let e=sr(this,Qr,"f").get(d);if(e&&!t)return JSON.parse(JSON.stringify(e));e=[],sr(this,Qr,"f").set(d,e),or(this,Gr,!0,"f");try{for(let t of this.detectedResolutions){await sr(this,Or,"f").applyConstraints({width:{ideal:t.width},height:{ideal:t.height}}),sr(this,Ar,"m",nn).call(this);const i=sr(this,Or,"f").getSettings(),r={width:i.width,height:i.height};f(d,r)||e.push({width:r.width,height:r.height})}}catch(t){throw sr(this,Ar,"m",ln).call(this),or(this,Gr,!1,"f"),t}try{await sr(this,Ar,"m",an).call(this)}catch(t){if("AbortError"===t.name)return e;throw t}finally{or(this,Gr,!1,"f")}return e}{const e=async(t,e,i)=>{const r={video:{deviceId:{exact:t},width:{ideal:e},height:{ideal:i}}};let n=null;try{n=await navigator.mediaDevices.getUserMedia(r)}catch(t){return null}if(!n)return null;const s=n.getVideoTracks();let o=null;try{const t=s[0].getSettings();o={width:t.width,height:t.height}}catch(t){const e=document.createElement("video");e.srcObject=n,o={width:e.videoWidth,height:e.videoHeight},e.srcObject=null}return s.forEach((t=>{t.stop()})),o};let i=(null===(s=null===(n=null===(r=sr(this,Mr,"f"))||void 0===r?void 0:r.video)||void 0===n?void 0:n.deviceId)||void 0===s?void 0:s.exact)||(null===(h=null===(a=null===(o=sr(this,Mr,"f"))||void 0===o?void 0:o.video)||void 0===a?void 0:a.deviceId)||void 0===h?void 0:h.ideal)||(null===(c=null===(l=sr(this,Mr,"f"))||void 0===l?void 0:l.video)||void 0===c?void 0:c.deviceId);if(!i)return[];let u=sr(this,Qr,"f").get(i);if(u&&!t)return JSON.parse(JSON.stringify(u));u=[],sr(this,Qr,"f").set(i,u);for(let t of this.detectedResolutions){const r=await e(i,t.width,t.height);r&&!f(i,r)&&u.push({width:r.width,height:r.height})}return u}}async setMediaStreamConstraints(t,e){if(!(t=>{return null!==t&&"[object Object]"===(e=t,Object.prototype.toString.call(e));var e})(t))throw new TypeError("Invalid 'mediaStreamConstraints'.");or(this,Mr,JSON.parse(JSON.stringify(t)),"f"),or(this,Pr,null,"f"),e&&sr(this,Ar,"m",hn).call(this)}getMediaStreamConstraints(){return JSON.parse(JSON.stringify(sr(this,Mr,"f")))}resetMediaStreamConstraints(){or(this,Mr,this.defaultConstraints?JSON.parse(JSON.stringify(this.defaultConstraints)):null,"f")}getCameraCapabilities(){if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return sr(this,Or,"f").getCapabilities?sr(this,Or,"f").getCapabilities():{}}getCameraSettings(){if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return sr(this,Or,"f").getSettings()}async turnOnTorch(){if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await sr(this,Or,"f").applyConstraints({advanced:[{torch:!0}]})}async turnOffTorch(){if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await sr(this,Or,"f").applyConstraints({advanced:[{torch:!1}]})}async setColorTemperature(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.colorTemperature;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=_n(t,r.min,r.step,r.max)),await sr(this,Or,"f").applyConstraints({advanced:[{colorTemperature:t,whiteBalanceMode:"manual"}]}),t}getColorTemperature(){return this.getCameraSettings().colorTemperature||0}async setExposureCompensation(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.exposureCompensation;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=_n(t,r.min,r.step,r.max)),await sr(this,Or,"f").applyConstraints({advanced:[{exposureCompensation:t}]}),t}getExposureCompensation(){return this.getCameraSettings().exposureCompensation||0}async setFrameRate(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");let r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.frameRate;if(!r)throw Error("Not supported.");e&&(tr.max&&(t=r.max));const n=this.getResolution();return await sr(this,Or,"f").applyConstraints({width:{ideal:Math.max(n.width,n.height)},frameRate:t}),t}getFrameRate(){return this.getCameraSettings().frameRate}async setFocus(t,e){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const i=this.getCameraCapabilities(),r=null==i?void 0:i.focusMode,n=null==i?void 0:i.focusDistance;if(!r)throw Error("Not supported.");if("string"!=typeof t.mode)throw TypeError("Invalid 'mode'.");const s=t.mode.toLowerCase();if(!r.includes(s))throw Error("Unsupported focus mode.");if("manual"===s){if(!n)throw Error("Manual focus unsupported.");if(t.hasOwnProperty("distance")){let i=t.distance;e&&(in.max&&(i=n.max),i=_n(i,n.min,n.step,n.max)),this._focusParameters.focusArea=null,await sr(this,Or,"f").applyConstraints({advanced:[{focusMode:s,focusDistance:i}]})}else{if(!t.area)throw new Error("'distance' or 'area' should be specified in 'manual' mode.");{const e=t.area.centerPoint;let i=t.area.width,r=t.area.height;if(!i||!r){const t=this.getResolution();i||(i=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px"),r||(r=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px")}this._focusParameters.focusArea={centerPoint:{x:e.x,y:e.y},width:i,height:r},await sr(this,Ar,"m",dn).call(this,e,i,r)}}}else this._focusParameters.focusArea=null,await sr(this,Or,"f").applyConstraints({advanced:[{focusMode:s}]})}getFocus(){const t=this.getCameraSettings(),e=t.focusMode;return e?"manual"===e?this._focusParameters.focusArea?{mode:"manual",area:JSON.parse(JSON.stringify(this._focusParameters.focusArea))}:{mode:"manual",distance:t.focusDistance}:{mode:e}:null}async enableTapToFocus(){or(this,Wr,!0,"f")}disableTapToFocus(){or(this,Wr,!1,"f")}isTapToFocusEnabled(){return sr(this,Wr,"f")}async setZoom(t){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if("number"!=typeof t.factor)throw new TypeError("Illegal type of 'factor'.");if(t.factor<1)throw new RangeError("Invalid 'factor'.");if("opened"!==this.state)throw new Error("Video is not playing.");t.centerPoint?sr(this,Ar,"m",fn).call(this,t.centerPoint):this.resetScaleCenter();try{if(sr(this,Ar,"m",gn).call(this,sr(this,Zr,"f"))){const e=await this.setHardwareScale(t.factor,!0);let i=this.getHardwareScale();1==i&&1!=e&&(i=e),t.factor>i?this.setSoftwareScale(t.factor/i):this.setSoftwareScale(1)}else await this.setHardwareScale(1),this.setSoftwareScale(t.factor)}catch(e){const i=e.message||e;if("Not supported."!==i&&"Camera is not open."!==i)throw e;this.setSoftwareScale(t.factor)}}getZoom(){if("opened"!==this.state)throw new Error("Video is not playing.");let t=1;try{t=this.getHardwareScale()}catch(t){if("Camera is not open."!==(t.message||t))throw t}return{factor:t*sr(this,zr,"f")}}async resetZoom(){await this.setZoom({factor:1})}async setHardwareScale(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if(!sr(this,Or,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.zoom;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=_n(t,r.min,r.step,r.max)),await sr(this,Or,"f").applyConstraints({advanced:[{zoom:t}]}),t}getHardwareScale(){return this.getCameraSettings().zoom||1}setSoftwareScale(t,e){if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if("opened"!==this.state)throw new Error("Video is not playing.");e&&sr(this,Ar,"m",fn).call(this,e),or(this,zr,t,"f"),this.updateVideoElWhenSoftwareScaled()}getSoftwareScale(){return sr(this,zr,"f")}resetScaleCenter(){if("opened"!==this.state)throw new Error("Video is not playing.");const t=this.getResolution();or(this,Zr,{x:t.width/2,y:t.height/2},"f")}resetSoftwareScale(){this.setSoftwareScale(1),this.resetScaleCenter()}getFrameData(t){if(this.disposed)throw Error("The 'Camera' instance has been disposed.");if(!this.isVideoLoaded())return null;if(sr(this,Gr,"f"))return null;const e=Date.now();vn._onLog&&vn._onLog("getFrameData() START: "+e);const i=sr(this,Rr,"f").videoWidth,r=sr(this,Rr,"f").videoHeight;let n={sx:0,sy:0,sWidth:i,sHeight:r,dWidth:i,dHeight:r};(null==t?void 0:t.position)&&(n=JSON.parse(JSON.stringify(t.position)));let s=pr.RGBA;(null==t?void 0:t.pixelFormat)&&(s=t.pixelFormat);let o=sr(this,zr,"f");(null==t?void 0:t.scale)&&(o=t.scale);let a=sr(this,Zr,"f");if(null==t?void 0:t.scaleCenter){if("string"!=typeof t.scaleCenter.x||"string"!=typeof t.scaleCenter.y)throw new Error("Invalid scale center.");let e=0,n=0;if(t.scaleCenter.x.endsWith("px"))e=parseFloat(t.scaleCenter.x);else{if(!t.scaleCenter.x.endsWith("%"))throw new Error("Invalid scale center.");e=parseFloat(t.scaleCenter.x)/100*i}if(t.scaleCenter.y.endsWith("px"))n=parseFloat(t.scaleCenter.y);else{if(!t.scaleCenter.y.endsWith("%"))throw new Error("Invalid scale center.");n=parseFloat(t.scaleCenter.y)/100*r}if(isNaN(e)||isNaN(n))throw new Error("Invalid scale center.");a.x=Math.round(e),a.y=Math.round(n)}let h=null;if((null==t?void 0:t.bufferContainer)&&(h=t.bufferContainer),0==i||0==r)return null;1!==o&&(n.sWidth=Math.round(n.sWidth/o),n.sHeight=Math.round(n.sHeight/o),n.sx=Math.round((1-1/o)*a.x+n.sx/o),n.sy=Math.round((1-1/o)*a.y+n.sy/o));const l=this.imageDataGetter.getImageData(sr(this,Rr,"f"),i,r,n,{pixelFormat:s,bufferContainer:h});if(!l)return null;const c=Date.now();return vn._onLog&&vn._onLog("getFrameData() END: "+c),{data:l.data,width:l.width,height:l.height,pixelFormat:l.pixelFormat,timeSpent:c-e,timeStamp:c,toCanvas:sr(this,Kr,"f")}}on(t,e){if(!sr(this,Jr,"f").includes(t.toLowerCase()))throw new Error(`Event '${t}' does not exist.`);sr(this,qr,"f").on(t,e)}off(t,e){sr(this,qr,"f").off(t,e)}async dispose(){this.tapFocusEventBoundEl=null,await this.close(),this.releaseVideoEl(),sr(this,qr,"f").dispose(),this.imageDataGetter.dispose(),document.removeEventListener("visibilitychange",sr(this,tn,"f")),or(this,en,!0,"f")}}var yn,wn,En,Cn,Tn,bn,Sn,In,xn,An,Rn,On,Dn,Ln,Mn,Fn,Pn,kn,Bn,Nn,Un,jn,Gn,Wn,Vn,Yn,Hn,Xn,zn,Zn,Kn,qn,Jn;Rr=new WeakMap,Or=new WeakMap,Dr=new WeakMap,Lr=new WeakMap,Mr=new WeakMap,Fr=new WeakMap,Pr=new WeakMap,kr=new WeakMap,Br=new WeakMap,Nr=new WeakMap,Ur=new WeakMap,jr=new WeakMap,Gr=new WeakMap,Wr=new WeakMap,Vr=new WeakMap,Yr=new WeakMap,Hr=new WeakMap,Xr=new WeakMap,zr=new WeakMap,Zr=new WeakMap,Kr=new WeakMap,qr=new WeakMap,Jr=new WeakMap,Qr=new WeakMap,$r=new WeakMap,tn=new WeakMap,en=new WeakMap,Ar=new WeakSet,rn=async function(){const t=this.getMediaStreamConstraints();if("boolean"==typeof t.video&&(t.video={}),t.video.deviceId);else if(sr(this,Pr,"f"))delete t.video.facingMode,t.video.deviceId={exact:sr(this,Pr,"f")};else if(this.ifSaveLastUsedCamera&&vn.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")){delete t.video.facingMode,t.video.deviceId={ideal:window.localStorage.getItem("dce_last_camera_id")};const e=JSON.parse(window.localStorage.getItem("dce_last_apply_width")),i=JSON.parse(window.localStorage.getItem("dce_last_apply_height"));e&&i&&(t.video.width=e,t.video.height=i)}else if(this.ifSkipCameraInspection);else{const e=async t=>{let e=null;return"environment"===t&&["Android","HarmonyOS","iPhone","iPad"].includes(dr.OS)?(await this._getCameras(!1),sr(this,Ar,"m",nn).call(this),e=vn.findBestCamera(this._arrCameras,"environment",{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})):t||["Android","HarmonyOS","iPhone","iPad"].includes(dr.OS)||(await this._getCameras(!1),sr(this,Ar,"m",nn).call(this),e=vn.findBestCamera(this._arrCameras,null,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})),e};let i=t.video.facingMode;i instanceof Array&&i.length&&(i=i[0]),"object"==typeof i&&(i=i.exact||i.ideal);const r=await e(i);r&&(delete t.video.facingMode,t.video.deviceId={exact:r})}return t},nn=function(){if(sr(this,Nr,"f")){const t=new Error("The operation was interrupted.");throw t.name="AbortError",t}},sn=async function(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;try{vn._onLog&&vn._onLog("======try getUserMedia========");let e=[0,500,1e3,2e3],i=null;const n=async t=>{for(let n of e){n&&(await new Promise((t=>setTimeout(t,n))),sr(this,Ar,"m",nn).call(this));try{vn._onLog&&vn._onLog("ask "+JSON.stringify(t)),r=await navigator.mediaDevices.getUserMedia(t),sr(this,Ar,"m",nn).call(this);break}catch(t){if("NotFoundError"===t.name||"NotAllowedError"===t.name||"AbortError"===t.name||"OverconstrainedError"===t.name)throw t;i=t,vn._onLog&&vn._onLog(t.message||t)}}};if(await n(t),r||"object"!=typeof t.video||(t.video.deviceId&&(delete t.video.deviceId,await n(t)),!r&&t.video.facingMode&&(delete t.video.facingMode,await n(t)),r||!t.video.width&&!t.video.height||(delete t.video.width,delete t.video.height,await n(t))),!r)throw i;return r}catch(t){throw null==r||r.getTracks().forEach((t=>{t.stop()})),"NotFoundError"===t.name&&(DOMException?t=new DOMException("No camera available, please use a device with an accessible camera.",t.name):(t=new Error("No camera available, please use a device with an accessible camera.")).name="NotFoundError"),t}},on=function(){this._mediaStream&&(this._mediaStream.getTracks().forEach((t=>{t.stop()})),this._mediaStream=null),or(this,Or,null,"f")},an=async function(){or(this,Nr,!1,"f");const t=or(this,Br,Symbol(),"f");if(sr(this,Ur,"f")&&"pending"===sr(this,jr,"f")){try{await sr(this,Ur,"f")}catch(t){}sr(this,Ar,"m",nn).call(this)}if(t!==sr(this,Br,"f"))return;const e=or(this,Ur,(async()=>{or(this,jr,"pending","f");try{if(this.videoSrc){if(!sr(this,Rr,"f"))throw new Error("'videoEl' should be set.");await vn.playVideo(sr(this,Rr,"f"),this.videoSrc,this.cameraOpenTimeout),sr(this,Ar,"m",nn).call(this)}else{let t=await sr(this,Ar,"m",rn).call(this);sr(this,Ar,"m",on).call(this);let e=await sr(this,Ar,"m",sn).call(this,t);await this._getCameras(!1),sr(this,Ar,"m",nn).call(this);const i=()=>{const t=e.getVideoTracks();let i,r;if(t.length&&(i=t[0]),i){const t=i.getSettings();if(t)for(let e of this._arrCameras)if(t.deviceId===e.deviceId){e._checked=!0,e.label=i.label,r=e;break}}return r},r=sr(this,Mr,"f");if("object"==typeof r.video){let n=r.video.facingMode;if(n instanceof Array&&n.length&&(n=n[0]),"object"==typeof n&&(n=n.exact||n.ideal),!(sr(this,Pr,"f")||this.ifSaveLastUsedCamera&&vn.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")||this.ifSkipCameraInspection||r.video.deviceId)){const r=i(),s=vn.findBestCamera(this._arrCameras,n,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault});s&&s!=(null==r?void 0:r.deviceId)&&(e.getTracks().forEach((t=>{t.stop()})),t.video.deviceId={exact:s},e=await sr(this,Ar,"m",sn).call(this,t),sr(this,Ar,"m",nn).call(this))}}const n=i();(null==n?void 0:n.deviceId)&&(or(this,Pr,n&&n.deviceId,"f"),this.ifSaveLastUsedCamera&&vn.isStorageAvailable&&(window.localStorage.setItem("dce_last_camera_id",sr(this,Pr,"f")),"object"==typeof t.video&&t.video.width&&t.video.height&&(window.localStorage.setItem("dce_last_apply_width",JSON.stringify(t.video.width)),window.localStorage.setItem("dce_last_apply_height",JSON.stringify(t.video.height))))),sr(this,Rr,"f")&&(await vn.playVideo(sr(this,Rr,"f"),e,this.cameraOpenTimeout),sr(this,Ar,"m",nn).call(this)),this._mediaStream=e;const s=e.getVideoTracks();(null==s?void 0:s.length)&&or(this,Or,s[0],"f"),or(this,Fr,n,"f")}}catch(t){throw sr(this,Ar,"m",ln).call(this),or(this,jr,null,"f"),t}or(this,jr,"fulfilled","f")})(),"f");return e},hn=async function(){var t;if("closed"===this.state||this.videoSrc)return;const e=null===(t=sr(this,Fr,"f"))||void 0===t?void 0:t.deviceId,i=this.getResolution();await sr(this,Ar,"m",an).call(this);const r=this.getResolution();e&&e!==sr(this,Fr,"f").deviceId&&sr(this,qr,"f").fire("camera:changed",[sr(this,Fr,"f").deviceId,e],{target:this,async:!0}),i.width==r.width&&i.height==r.height||sr(this,qr,"f").fire("resolution:changed",[{width:r.width,height:r.height},{width:i.width,height:i.height}],{target:this,async:!0}),sr(this,qr,"f").fire("played",null,{target:this,async:!0})},ln=function(){sr(this,Ar,"m",on).call(this),or(this,Fr,null,"f"),sr(this,Rr,"f")&&(sr(this,Rr,"f").srcObject=null,this.videoSrc&&(sr(this,Rr,"f").pause(),sr(this,Rr,"f").currentTime=0)),or(this,Nr,!0,"f");try{this.resetSoftwareScale()}catch(t){}},cn=async function t(e,i){const r=t=>{if(!sr(this,Or,"f")||!this.isVideoPlaying||t.focusTaskId!=this._focusParameters.curFocusTaskId){sr(this,Or,"f")&&this.isVideoPlaying||(this._focusParameters.isDoingFocus=0);const e=new Error(`Focus task ${t.focusTaskId} canceled.`);throw e.name="DeprecatedTaskError",e}1===this._focusParameters.isDoingFocus&&Date.now()-t.timeStart>this._focusParameters.focusCancelableTime&&(this._focusParameters.isDoingFocus=-1)};let n;i=_n(i,this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),await sr(this,Or,"f").applyConstraints({advanced:[{focusMode:"manual",focusDistance:i}]}),r(e),n=null==this._focusParameters.oldDistance?this._focusParameters.kTimeout*Math.max(Math.abs(1/this._focusParameters.fds.min-1/i),Math.abs(1/this._focusParameters.fds.max-1/i))+this._focusParameters.minTimeout:this._focusParameters.kTimeout*Math.abs(1/this._focusParameters.oldDistance-1/i)+this._focusParameters.minTimeout,this._focusParameters.oldDistance=i,await new Promise((t=>{setTimeout(t,n)})),r(e);let s=e.focusL-e.focusW/2,o=e.focusT-e.focusH/2,a=e.focusW,h=e.focusH;const l=this.getResolution();if(s>=l.width||o>=l.height)throw new Error("Invalid area.");s+a>l.width&&(a=l.width-s),o+h>l.height&&(h=l.height-o),s=Math.round(s),o=Math.round(o),a=Math.round(a),h=Math.round(h);const c=4*l.width*l.height*this._focusParameters.defaultTempBufferContainerLenRatio,u=4*a*h;let d=this._focusParameters.tempBufferContainer;if(d){const t=d.length;c>t&&c>=u?d=new Uint8Array(c):u>t&&u>=c&&(d=new Uint8Array(u))}else d=this._focusParameters.tempBufferContainer=new Uint8Array(Math.max(c,u));if(!this.imageDataGetter.getImageData(sr(this,Rr,"f"),l.width,l.height,{sx:s,sy:o,sWidth:a,sHeight:h,dWidth:a,dHeight:h},{pixelFormat:pr.RGBA,bufferContainer:d}))return sr(this,Ar,"m",t).call(this,e,i);const f=d;let g=0;for(let t=0,e=u-8;ta&&au)return await sr(this,Ar,"m",t).call(this,e,o,a,n,s,c,u)}else{let h=await sr(this,Ar,"m",cn).call(this,e,c);if(a>h)return await sr(this,Ar,"m",t).call(this,e,o,a,n,s,c,h);if(a==h)return await sr(this,Ar,"m",t).call(this,e,o,a,c,h);let u=await sr(this,Ar,"m",cn).call(this,e,l);if(u>a&&ao.width||h<0||h>o.height)throw new Error("Invalid 'centerPoint'.");let l=0;if(e.endsWith("px"))l=parseFloat(e);else{if(!e.endsWith("%"))throw new Error("Invalid 'width'.");l=parseFloat(e)/100*o.width}if(isNaN(l)||l<0)throw new Error("Invalid 'width'.");let c=0;if(i.endsWith("px"))c=parseFloat(i);else{if(!i.endsWith("%"))throw new Error("Invalid 'height'.");c=parseFloat(i)/100*o.height}if(isNaN(c)||c<0)throw new Error("Invalid 'height'.");if(1!==sr(this,zr,"f")){const t=sr(this,zr,"f"),e=sr(this,Zr,"f");l/=t,c/=t,a=(1-1/t)*e.x+a/t,h=(1-1/t)*e.y+h/t}if(!this._focusSupported)throw new Error("Manual focus unsupported.");if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(s=this.getCameraCapabilities())||void 0===s?void 0:s.focusDistance,!this._focusParameters.fds))throw this._focusSupported=!1,new Error("Manual focus unsupported.");null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),this._focusParameters.isDoingFocus=1;const u={focusL:a,focusT:h,focusW:l,focusH:c,focusTaskId:++this._focusParameters.curFocusTaskId,timeStart:Date.now()},d=async(t,e,i)=>{try{(null==e||ethis._focusParameters.fds.max)&&(i=this._focusParameters.fds.max),this._focusParameters.oldDistance=null;let r=_n(Math.sqrt(i*(e||this._focusParameters.fds.step)),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),n=_n(Math.sqrt((e||this._focusParameters.fds.step)*r),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),s=_n(Math.sqrt(r*i),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),o=await sr(this,Ar,"m",cn).call(this,t,s),a=await sr(this,Ar,"m",cn).call(this,t,n),h=await sr(this,Ar,"m",cn).call(this,t,r);if(a>h&&ho&&a>o){let e=await sr(this,Ar,"m",cn).call(this,t,i);const n=await sr(this,Ar,"m",un).call(this,t,r,h,i,e,s,o);return this._focusParameters.isDoingFocus=0,n}if(a==h&&hh){const e=await sr(this,Ar,"m",un).call(this,t,r,h,s,o);return this._focusParameters.isDoingFocus=0,e}return d(t,e,i)}catch(t){if("DeprecatedTaskError"!==t.name)throw t}};return d(u,r,n)},fn=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");if(!t||"string"!=typeof t.x||"string"!=typeof t.y)throw new Error("Invalid 'center'.");const e=this.getResolution();let i=0,r=0;if(t.x.endsWith("px"))i=parseFloat(t.x);else{if(!t.x.endsWith("%"))throw new Error("Invalid scale center.");i=parseFloat(t.x)/100*e.width}if(t.y.endsWith("px"))r=parseFloat(t.y);else{if(!t.y.endsWith("%"))throw new Error("Invalid scale center.");r=parseFloat(t.y)/100*e.height}if(isNaN(i)||isNaN(r))throw new Error("Invalid scale center.");or(this,Zr,{x:i,y:r},"f")},gn=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");const e=this.getResolution();return t&&t.x==e.width/2&&t.y==e.height/2},vn.browserInfo=dr,vn.onWarning=null===(xr=null===window||void 0===window?void 0:window.console)||void 0===xr?void 0:xr.warn;class Qn{constructor(t){yn.add(this),wn.set(this,void 0),En.set(this,0),Cn.set(this,void 0),Tn.set(this,0),bn.set(this,!1),he(this,wn,t,"f")}startCharging(){ae(this,bn,"f")||(Qn._onLog&&Qn._onLog("start charging."),ae(this,yn,"m",In).call(this),he(this,bn,!0,"f"))}stopCharging(){ae(this,Cn,"f")&&clearTimeout(ae(this,Cn,"f")),ae(this,bn,"f")&&(Qn._onLog&&Qn._onLog("stop charging."),he(this,En,Date.now()-ae(this,Tn,"f"),"f"),he(this,bn,!1,"f"))}}wn=new WeakMap,En=new WeakMap,Cn=new WeakMap,Tn=new WeakMap,bn=new WeakMap,yn=new WeakSet,Sn=function(){ht.cfd(1),Qn._onLog&&Qn._onLog("charge 1.")},In=function t(){0==ae(this,En,"f")&&ae(this,yn,"m",Sn).call(this),he(this,Tn,Date.now(),"f"),ae(this,Cn,"f")&&clearTimeout(ae(this,Cn,"f")),he(this,Cn,setTimeout((()=>{he(this,En,0,"f"),ae(this,yn,"m",t).call(this)}),ae(this,wn,"f")-ae(this,En,"f")),"f")};const $n=new Map([[s.IPF_GRAYSCALED,pr.GREY],[s.IPF_ABGR_8888,pr.RGBA],[s.IPF_ARGB_8888,pr.BGRA]]),ts=new Map([[pr.GREY,s.IPF_GRAYSCALED],[pr.RGBA,s.IPF_ABGR_8888],[pr.BGRA,s.IPF_ARGB_8888]]),es="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};class is extends O{static set _onLog(t){he(is,An,t,"f",Rn),vn._onLog=t,Qn._onLog=t}static get _onLog(){return ae(is,An,"f",Rn)}static async detectEnvironment(){return await(async()=>({wasm:ge,worker:me,getUserMedia:pe,camera:await _e(),browser:fe.browser,version:fe.version,OS:fe.OS}))()}static async testCameraAccess(){const t=await vn.testCameraAccess();return t.ok?{ok:!0,message:"Successfully accessed the camera."}:"InsecureContext"===t.errorName?{ok:!1,message:"Insecure context."}:"OverconstrainedError"===t.errorName||"NotFoundError"===t.errorName?{ok:!1,message:"No camera detected."}:"NotAllowedError"===t.errorName?{ok:!1,message:"No permission to access camera."}:"AbortError"===t.errorName?{ok:!1,message:"Some problem occurred which prevented the device from being used."}:"NotReadableError"===t.errorName?{ok:!1,message:"A hardware error occurred."}:"SecurityError"===t.errorName?{ok:!1,message:"User media support is disabled."}:{ok:!1,message:t.errorMessage}}static async createInstance(t){var e,i;if(t&&!(t instanceof nr))throw new TypeError("Invalid view.");if(null===(e=rt.license)||void 0===e?void 0:e.LicenseManager){if(!(null===(i=rt.license)||void 0===i?void 0:i.LicenseManager.bCallInitLicense))throw new Error("License is not set.");await ht.loadWasm(["license"]),await rt.license.dynamsoft()}const r=new is(t);return is.onWarning&&(location&&"file:"===location.protocol?setTimeout((()=>{is.onWarning&&is.onWarning({id:1,message:"The page is opened over file:// and Dynamsoft Camera Enhancer may not work properly. Please open the page via https://."})}),0):!1!==window.isSecureContext&&navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia||setTimeout((()=>{is.onWarning&&is.onWarning({id:2,message:"Dynamsoft Camera Enhancer may not work properly in a non-secure context. Please open the page via https://."})}),0)),r}get video(){return ae(this,On,"f").getVideoEl()}set videoSrc(t){if(!ae(this,On,"f"))throw new Error("Camera manager is null.");ae(this,Dn,"f")&&(ae(this,Dn,"f")._hideDefaultSelection=!0),ae(this,On,"f").videoSrc=t}get videoSrc(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.videoSrc}set ifSaveLastUsedCamera(t){if(!ae(this,On,"f"))throw new Error("Camera manager is null.");ae(this,On,"f").ifSaveLastUsedCamera=t}get ifSaveLastUsedCamera(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.ifSaveLastUsedCamera}set ifSkipCameraInspection(t){if(!ae(this,On,"f"))throw new Error("Camera manager is null.");ae(this,On,"f").ifSkipCameraInspection=t}get ifSkipCameraInspection(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.ifSkipCameraInspection}set cameraOpenTimeout(t){if(!ae(this,On,"f"))throw new Error("Camera manager is null.");ae(this,On,"f").cameraOpenTimeout=t}get cameraOpenTimeout(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.cameraOpenTimeout}set singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(this.isOpen())throw new Error("It is not allowed to change `singleFrameMode` when the camera is open.");he(this,Pn,t,"f")}get singleFrameMode(){return ae(this,Pn,"f")}get _isFetchingStarted(){return ae(this,Gn,"f")}get disposed(){return ae(this,Xn,"f")}constructor(t){if(super(),xn.add(this),On.set(this,void 0),Dn.set(this,void 0),Ln.set(this,"closed"),Mn.set(this,void 0),Fn.set(this,!1),Pn.set(this,void 0),this._onCameraSelChange=async()=>{this.isOpen()&&ae(this,Dn,"f")&&!ae(this,Dn,"f").disposed&&await this.selectCamera(ae(this,Dn,"f")._selCam.value)},this._onResolutionSelChange=async()=>{if(!this.isOpen())return;if(!ae(this,Dn,"f")||ae(this,Dn,"f").disposed)return;let t,e;if(ae(this,Dn,"f")._selRsl&&-1!=ae(this,Dn,"f")._selRsl.selectedIndex){let i=ae(this,Dn,"f")._selRsl.options[ae(this,Dn,"f")._selRsl.selectedIndex];t=parseInt(i.getAttribute("data-width")),e=parseInt(i.getAttribute("data-height"))}await this.setResolution({width:t,height:e})},this._onCloseBtnClick=async()=>{this.isOpen()&&ae(this,Dn,"f")&&!ae(this,Dn,"f").disposed&&this.close()},kn.set(this,((t,e,i,r)=>{const n=Date.now(),s={sx:r.x,sy:r.y,sWidth:r.width,sHeight:r.height,dWidth:r.width,dHeight:r.height},o=Math.max(s.dWidth,s.dHeight);if(this.canvasSizeLimit&&o>this.canvasSizeLimit){const t=this.canvasSizeLimit/o;s.dWidth>s.dHeight?(s.dWidth=this.canvasSizeLimit,s.dHeight=Math.round(s.dHeight*t)):(s.dWidth=Math.round(s.dWidth*t),s.dHeight=this.canvasSizeLimit)}const a=ae(this,On,"f").imageDataGetter.getImageData(t,e,i,s,{pixelFormat:$n.get(this.getPixelFormat())});let h=null;if(a){const t=Date.now();let o;o=a.pixelFormat===pr.GREY?a.width:4*a.width;let l=!0;0===s.sx&&0===s.sy&&s.sWidth===e&&s.sHeight===i&&(l=!1),h={bytes:a.data,width:a.width,height:a.height,stride:o,format:ts.get(a.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:gt.ITT_FILE_IMAGE,isCropped:l,cropRegion:{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height,isMeasuredInPercentage:!1},originalWidth:e,originalHeight:i,currentWidth:a.width,currentHeight:a.height,timeSpent:t-n,timeStamp:t},toCanvas:ae(this,Bn,"f"),isDCEFrame:!0}}return h})),this._onSingleFrameAcquired=t=>{let e;e=ae(this,Dn,"f")?ae(this,Dn,"f").getConvertedRegion():Xe.convert(ae(this,Un,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height});const i=ae(this,kn,"f").call(this,t,t.width,t.height,e);ae(this,Mn,"f").fire("singleFrameAcquired",[i],{async:!1,copy:!1})},Bn.set(this,(function(){if(!(this.bytes instanceof Uint8Array||this.bytes instanceof Uint8ClampedArray))throw new TypeError("Invalid bytes.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.format===s.IPF_GRAYSCALED){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{if(!this.video)return;const t=ae(this,On,"f").getSoftwareScale();if(t<1)throw new RangeError("Invalid scale value.");ae(this,Dn,"f")&&!ae(this,Dn,"f").disposed?(this.video.style.transform=1===t?"":`scale(${t})`,ae(this,Dn,"f")._updateVideoContainer()):this.video.style.transform=1===t?"":`scale(${t})`},["iPhone","iPad","Android","HarmonyOS"].includes(fe.OS)?ae(this,On,"f").setResolution(1280,720):ae(this,On,"f").setResolution(1920,1080),navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?this.singleFrameMode="disabled":this.singleFrameMode="image",t&&this.setCameraView(t),this._on("before:camera:change",(()=>{ae(this,Hn,"f").stopCharging();const t=ae(this,Dn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("camera:changed",(()=>{this.clearBuffer()})),this._on("before:resolution:change",(()=>{const t=ae(this,Dn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("resolution:changed",(()=>{this.clearBuffer(),t.eventHandler.fire("content:updated",null,{async:!1})})),this._on("paused",(()=>{ae(this,Hn,"f").stopCharging();const t=ae(this,Dn,"f");t&&t.disposed})),this._on("resumed",(()=>{const t=ae(this,Dn,"f");t&&t.disposed})),this._on("tapfocus",(()=>{ae(this,Vn,"f").tapToFocus&&ae(this,Hn,"f").startCharging()})),this._intermediateResultReceiver={},this._intermediateResultReceiver.onTaskResultsReceived=async(t,e)=>{var i,r,n,s;if(ae(this,xn,"m",zn).call(this)||!this.isOpen()||this.isPaused())return;const o=t.intermediateResultUnits;is._onLog&&(is._onLog("intermediateResultUnits:"),is._onLog(o));let a=!1,h=!1;for(let t of o){if(t.unitType===_t.IRUT_DECODED_BARCODES&&t.decodedBarcodes.length){a=!0;break}t.unitType===_t.IRUT_LOCALIZED_BARCODES&&t.localizedBarcodes.length&&(h=!0)}if(is._onLog&&(is._onLog("hasLocalizedBarcodes:"),is._onLog(h)),ae(this,Vn,"f").autoZoom||ae(this,Vn,"f").enhancedFocus)if(a)ae(this,Yn,"f").autoZoomInFrameArray.length=0,ae(this,Yn,"f").autoZoomOutFrameCount=0,ae(this,Yn,"f").frameArrayInIdealZoom.length=0,ae(this,Vn,"f").autoZoom&&ae(this,Vn,"f").enhancedFocus&&(ae(this,Yn,"f").nextActionInIdealZoom="focus"),ae(this,Yn,"f").autoFocusFrameArray.length=0,ae(this,Yn,"f").noIntermediateResultsCount=0;else{const e=async t=>{await this.setZoom(t),ae(this,Vn,"f").autoZoom&&ae(this,Hn,"f").startCharging()},a=async t=>{await this.setFocus(t),ae(this,Vn,"f").enhancedFocus&&ae(this,Hn,"f").startCharging()};if(h){const h=o[0].originalImageTag,l=(null===(i=h.cropRegion)||void 0===i?void 0:i.left)||0,c=(null===(r=h.cropRegion)||void 0===r?void 0:r.top)||0,u=(null===(n=h.cropRegion)||void 0===n?void 0:n.right)?h.cropRegion.right-l:h.originalWidth,d=(null===(s=h.cropRegion)||void 0===s?void 0:s.bottom)?h.cropRegion.bottom-c:h.originalHeight,f=h.currentWidth,g=h.currentHeight;let m;{let t,e,i,r,n;{const t=this.video.videoWidth*(1-ae(this,Yn,"f").autoZoomDetectionArea)/2,e=this.video.videoWidth*(1+ae(this,Yn,"f").autoZoomDetectionArea)/2,i=e,r=t,s=this.video.videoHeight*(1-ae(this,Yn,"f").autoZoomDetectionArea)/2,o=s,a=this.video.videoHeight*(1+ae(this,Yn,"f").autoZoomDetectionArea)/2;n=[{x:t,y:s},{x:e,y:o},{x:i,y:a},{x:r,y:a}]}is._onLog&&(is._onLog("detectionArea:"),is._onLog(n));const s=[];{const t=(t,e)=>{const i=(t,e)=>{if(!t&&!e)throw new Error("Invalid arguments.");return function(t,e,i){let r=!1;const n=t.length;if(n<=2)return!1;for(let s=0;s0!=Je(a.y-i)>0&&Je(e-(i-o.y)*(o.x-a.x)/(o.y-a.y)-o.x)<0&&(r=!r)}return r}(e,t.x,t.y)},r=(t,e)=>!!(Qe([t[0],t[1]],[t[2],t[3]],[e[0].x,e[0].y],[e[1].x,e[1].y])||Qe([t[0],t[1]],[t[2],t[3]],[e[1].x,e[1].y],[e[2].x,e[2].y])||Qe([t[0],t[1]],[t[2],t[3]],[e[2].x,e[2].y],[e[3].x,e[3].y])||Qe([t[0],t[1]],[t[2],t[3]],[e[3].x,e[3].y],[e[0].x,e[0].y]));return!!(i({x:t[0].x,y:t[0].y},e)||i({x:t[1].x,y:t[1].y},e)||i({x:t[2].x,y:t[2].y},e)||i({x:t[3].x,y:t[3].y},e))||!!(i({x:e[0].x,y:e[0].y},t)||i({x:e[1].x,y:e[1].y},t)||i({x:e[2].x,y:e[2].y},t)||i({x:e[3].x,y:e[3].y},t))||!!(r([e[0].x,e[0].y,e[1].x,e[1].y],t)||r([e[1].x,e[1].y,e[2].x,e[2].y],t)||r([e[2].x,e[2].y,e[3].x,e[3].y],t)||r([e[3].x,e[3].y,e[0].x,e[0].y],t))};for(let e of o)if(e.unitType===_t.IRUT_LOCALIZED_BARCODES)for(let i of e.localizedBarcodes){if(!i)continue;const e=i.location.points;e.forEach((t=>{nr._transformCoordinates(t,l,c,u,d,f,g)})),t(n,e)&&s.push(i)}if(is._debug&&ae(this,Dn,"f")){const t=this.__layer||(this.__layer=ae(this,Dn,"f")._createDrawingLayer(99));t.clearDrawingItems();const e=this.__styleId2||(this.__styleId2=Ji.createDrawingStyle({strokeStyle:"red"}));for(let i of o)if(i.unitType===_t.IRUT_LOCALIZED_BARCODES)for(let r of i.localizedBarcodes){if(!r)continue;const i=r.location.points,n=new ci({points:i},e);t.addDrawingItems([n])}}}if(is._onLog&&(is._onLog("intersectedResults:"),is._onLog(s)),!s.length)return;let a;if(s.length){let t=s.filter((t=>t.possibleFormats==es.BF_QR_CODE||t.possibleFormats==es.BF_DATAMATRIX));if(t.length||(t=s.filter((t=>t.possibleFormats==es.BF_ONED)),t.length||(t=s)),t.length){const e=t=>{const e=t.location.points,i=(e[0].x+e[1].x+e[2].x+e[3].x)/4,r=(e[0].y+e[1].y+e[2].y+e[3].y)/4;return(i-f/2)*(i-f/2)+(r-g/2)*(r-g/2)};a=t[0];let i=e(a);if(1!=t.length)for(let r=1;r1.1*a.confidence||t[r].confidence>.9*a.confidence&&ni&&s>i&&o>i&&h>i&&m.result.moduleSize{}))),ae(this,Yn,"f").autoZoomInFrameArray.filter((t=>!0===t)).length>=ae(this,Yn,"f").autoZoomInFrameLimit[1]){ae(this,Yn,"f").autoZoomInFrameArray.length=0;const i=[(.5-r)/(.5-n),(.5-r)/(.5-s),(.5-r)/(.5-o),(.5-r)/(.5-h)].filter((t=>t>0)),a=Math.min(...i,ae(this,Yn,"f").autoZoomInIdealModuleSize/m.result.moduleSize),l=this.getZoomSettings().factor;let c=Math.max(Math.pow(l*a,1/ae(this,Yn,"f").autoZoomInMaxTimes),ae(this,Yn,"f").autoZoomInMinStep);c=Math.min(c,a);let u=l*c;u=Math.max(ae(this,Yn,"f").minValue,u),u=Math.min(ae(this,Yn,"f").maxValue,u);try{await e({factor:u})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else if(ae(this,Yn,"f").autoZoomInFrameArray.length=0,ae(this,Yn,"f").frameArrayInIdealZoom.push(!0),ae(this,Yn,"f").frameArrayInIdealZoom.splice(0,ae(this,Yn,"f").frameArrayInIdealZoom.length-ae(this,Yn,"f").frameLimitInIdealZoom[0]),ae(this,Yn,"f").frameArrayInIdealZoom.filter((t=>!0===t)).length>=ae(this,Yn,"f").frameLimitInIdealZoom[1])if(ae(this,Yn,"f").frameArrayInIdealZoom.length=0,"focus"===ae(this,Yn,"f").nextActionInIdealZoom&&ae(this,Vn,"f").enhancedFocus){const e=m.points;try{await a({mode:"manual",area:{centerPoint:{x:(e[0].x+e[2].x)/2+"px",y:(e[0].y+e[2].y)/2+"px"},width:e[2].x-e[0].x+"px",height:e[2].y-e[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}else{if("zoomOut"!==ae(this,Yn,"f").nextActionInIdealZoom&&ae(this,Vn,"f").enhancedFocus)throw new Error("Invalid action.");if(ae(this,Yn,"f").enableZoomOutInIdealZoom){r=ae(this,Yn,"f").autoZoomIdealArea[1]+ae(this,Yn,"f").autoZoomOutStepRate_2;const i=[(.5-r)/(.5-n),(.5-r)/(.5-s),(.5-r)/(.5-o),(.5-r)/(.5-h)].filter((t=>t>0));let l=Math.min(...i)*this.getZoomSettings().factor;l=Math.max(ae(this,Yn,"f").minValue,l),l=Math.min(ae(this,Yn,"f").maxValue,l);try{await e({factor:l})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer(),ae(this,Vn,"f").enhancedFocus&&(ae(this,Yn,"f").nextActionInIdealZoom="focus",a({mode:"continuous"}).catch((()=>{})))}}}if(!ae(this,Vn,"f").autoZoom&&ae(this,Vn,"f").enhancedFocus&&(ae(this,Yn,"f").autoFocusFrameArray.push(!0),ae(this,Yn,"f").autoFocusFrameArray.splice(0,ae(this,Yn,"f").autoFocusFrameArray.length-ae(this,Yn,"f").autoFocusFrameLimit[0]),ae(this,Yn,"f").autoFocusFrameArray.filter((t=>!0===t)).length>=ae(this,Yn,"f").autoFocusFrameLimit[1])){ae(this,Yn,"f").autoFocusFrameArray.length=0;try{const t=m.points;await a({mode:"manual",area:{centerPoint:{x:(t[0].x+t[2].x)/2+"px",y:(t[0].y+t[2].y)/2+"px"},width:t[2].x-t[0].x+"px",height:t[2].y-t[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else{if(ae(this,Yn,"f").noIntermediateResultsCount++,ae(this,Vn,"f").autoZoom){if(ae(this,Yn,"f").autoZoomInFrameArray.push(!1),ae(this,Yn,"f").autoZoomInFrameArray.splice(0,ae(this,Yn,"f").autoZoomInFrameArray.length-ae(this,Yn,"f").autoZoomInFrameLimit[0]),ae(this,Yn,"f").autoZoomOutFrameCount++,ae(this,Yn,"f").frameArrayInIdealZoom.push(!1),ae(this,Yn,"f").frameArrayInIdealZoom.splice(0,ae(this,Yn,"f").frameArrayInIdealZoom.length-ae(this,Yn,"f").frameLimitInIdealZoom[0]),ae(this,Yn,"f").autoZoomOutFrameCount>=ae(this,Yn,"f").autoZoomOutFrameLimit){ae(this,Yn,"f").autoZoomOutFrameCount=0;const i=this.getZoomSettings().factor;let r=i-Math.max((i-1)*ae(this,Yn,"f").autoZoomOutStepRate,ae(this,Yn,"f").autoZoomOutMinStep);r=Math.max(ae(this,Yn,"f").minValue,r),r=Math.min(ae(this,Yn,"f").maxValue,r);try{await e({factor:r})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}ae(this,Vn,"f").enhancedFocus&&(ae(this,Yn,"f").nextActionInIdealZoom="focus",a({mode:"continuous"}).catch((()=>{})))}!ae(this,Vn,"f").autoZoom&&ae(this,Vn,"f").enhancedFocus&&(ae(this,Yn,"f").autoFocusFrameArray.length=0,a({mode:"continuous"}).catch((()=>{})))}}},he(this,Hn,new Qn(1e4),"f")}setCameraView(t){if(!(t instanceof nr))throw new TypeError("Invalid view.");if(t.disposed)throw new Error("The camera view has been disposed.");if(this.isOpen())throw new Error("It is not allowed to change camera view when the camera is open.");this.releaseCameraView(),t._singleFrameMode=this.singleFrameMode,t._onSingleFrameAcquired=this._onSingleFrameAcquired,this.videoSrc&&(ae(this,Dn,"f")._hideDefaultSelection=!0),ae(this,xn,"m",zn).call(this)||ae(this,On,"f").setVideoEl(t.getVideoElement()),he(this,Dn,t,"f"),this.addListenerToView()}getCameraView(){return ae(this,Dn,"f")}releaseCameraView(){ae(this,Dn,"f")&&(this.removeListenerFromView(),ae(this,Dn,"f").disposed||(ae(this,Dn,"f")._singleFrameMode="disabled",ae(this,Dn,"f")._onSingleFrameAcquired=null,ae(this,Dn,"f")._hideDefaultSelection=!1),ae(this,On,"f").releaseVideoEl(),he(this,Dn,null,"f"))}addListenerToView(){if(!ae(this,Dn,"f"))return;if(ae(this,Dn,"f").disposed)throw new Error("'cameraView' has been disposed.");const t=ae(this,Dn,"f");ae(this,xn,"m",zn).call(this)||this.videoSrc||(t._innerComponent&&(ae(this,On,"f").tapFocusEventBoundEl=t._innerComponent),t._selCam&&t._selCam.addEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.addEventListener("change",this._onResolutionSelChange)),t._btnClose&&t._btnClose.addEventListener("click",this._onCloseBtnClick)}removeListenerFromView(){if(!ae(this,Dn,"f")||ae(this,Dn,"f").disposed)return;const t=ae(this,Dn,"f");ae(this,On,"f").tapFocusEventBoundEl=null,t._selCam&&t._selCam.removeEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.removeEventListener("change",this._onResolutionSelChange),t._btnClose&&t._btnClose.removeEventListener("click",this._onCloseBtnClick)}getCameraState(){return ae(this,xn,"m",zn).call(this)?ae(this,Ln,"f"):new Map([["closed","closed"],["opening","opening"],["opened","open"]]).get(ae(this,On,"f").state)}isOpen(){return"open"===this.getCameraState()}getVideoEl(){return this.video}async open(){const t=ae(this,Dn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");t&&(t._singleFrameMode=this.singleFrameMode,ae(this,xn,"m",zn).call(this)?t._clickIptSingleFrameMode():(ae(this,On,"f").setVideoEl(t.getVideoElement()),t._startLoading()));let e={width:0,height:0,deviceId:""};if(ae(this,xn,"m",zn).call(this));else{try{await ae(this,On,"f").open()}catch(e){throw t&&t._stopLoading(),e}ae(this,Fn,"f")&&this.turnOnTorch().catch((()=>{}));const i=this.getResolution();e.width=i.width,e.height=i.height,e.deviceId=this.getSelectedCamera().deviceId}return he(this,Ln,"open","f"),t&&(t._innerComponent.style.display="",ae(this,xn,"m",zn).call(this)||(t._stopLoading(),t._renderCamerasInfo(this.getSelectedCamera(),ae(this,On,"f")._arrCameras),t._renderResolutionInfo({width:e.width,height:e.height}),t.eventHandler.fire("content:updated",null,{async:!0}),t.eventHandler.fire("videoEl:resized",null,{async:!0}))),ae(this,Mn,"f").fire("opened",null,{target:this,async:!0}),e}close(){const t=ae(this,Dn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");this.stopFetching(),this.clearBuffer(),ae(this,xn,"m",zn).call(this)||ae(this,On,"f").close(),he(this,Ln,"closed","f"),ae(this,Hn,"f").stopCharging(),t&&(t._innerComponent.style.display="none",ae(this,xn,"m",zn).call(this)&&t._innerComponent.removeElement("content"),t._stopLoading()),ae(this,Mn,"f").fire("closed",null,{target:this,async:!0})}pause(){if(ae(this,xn,"m",zn).call(this))throw new Error("'pause()' is invalid in 'singleFrameMode'.");ae(this,On,"f").pause()}isPaused(){var t;return!ae(this,xn,"m",zn).call(this)&&!0===(null===(t=this.video)||void 0===t?void 0:t.paused)}async resume(){if(ae(this,xn,"m",zn).call(this))throw new Error("'resume()' is invalid in 'singleFrameMode'.");await ae(this,On,"f").resume()}async selectCamera(t){if(!t)throw new Error("Invalid value.");let e;e="string"==typeof t?t:t.deviceId,await ae(this,On,"f").setCamera(e),he(this,Fn,!1,"f");const i=this.getResolution(),r=ae(this,Dn,"f");return r&&!r.disposed&&(r._stopLoading(),r._renderCamerasInfo(this.getSelectedCamera(),ae(this,On,"f")._arrCameras),r._renderResolutionInfo({width:i.width,height:i.height})),{width:i.width,height:i.height,deviceId:this.getSelectedCamera().deviceId}}getSelectedCamera(){return ae(this,On,"f").getCamera()}async getAllCameras(){return ae(this,On,"f").getCameras()}async setResolution(t){await ae(this,On,"f").setResolution(t.width,t.height),ae(this,Fn,"f")&&this.turnOnTorch().catch((()=>{}));const e=this.getResolution(),i=ae(this,Dn,"f");return i&&!i.disposed&&(i._stopLoading(),i._renderResolutionInfo({width:e.width,height:e.height})),{width:e.width,height:e.height,deviceId:this.getSelectedCamera().deviceId}}getResolution(){return ae(this,On,"f").getResolution()}getAvailableResolutions(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getResolutions()}_on(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?ae(this,Mn,"f").on(t,e):ae(this,On,"f").on(t,e)}_off(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?ae(this,Mn,"f").off(t,e):ae(this,On,"f").off(t,e)}on(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._on(r,e)}off(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._off(r,e)}getVideoSettings(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getMediaStreamConstraints()}async updateVideoSettings(t){var e;await(null===(e=ae(this,On,"f"))||void 0===e?void 0:e.setMediaStreamConstraints(t,!0))}getCapabilities(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getCameraCapabilities()}getCameraSettings(){return ae(this,On,"f").getCameraSettings()}async turnOnTorch(){var t;if(ae(this,xn,"m",zn).call(this))throw new Error("'turnOnTorch()' is invalid in 'singleFrameMode'.");await(null===(t=ae(this,On,"f"))||void 0===t?void 0:t.turnOnTorch()),he(this,Fn,!0,"f")}async turnOffTorch(){var t;if(ae(this,xn,"m",zn).call(this))throw new Error("'turnOffTorch()' is invalid in 'singleFrameMode'.");await(null===(t=ae(this,On,"f"))||void 0===t?void 0:t.turnOffTorch()),he(this,Fn,!1,"f")}async setColorTemperature(t){if(ae(this,xn,"m",zn).call(this))throw new Error("'setColorTemperature()' is invalid in 'singleFrameMode'.");await ae(this,On,"f").setColorTemperature(t,!0)}getColorTemperature(){return ae(this,On,"f").getColorTemperature()}async setExposureCompensation(t){var e;if(ae(this,xn,"m",zn).call(this))throw new Error("'setExposureCompensation()' is invalid in 'singleFrameMode'.");await(null===(e=ae(this,On,"f"))||void 0===e?void 0:e.setExposureCompensation(t,!0))}getExposureCompensation(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getExposureCompensation()}async _setZoom(t){var e;if(ae(this,xn,"m",zn).call(this))throw new Error("'setZoom()' is invalid in 'singleFrameMode'.");await(null===(e=ae(this,On,"f"))||void 0===e?void 0:e.setZoom(t))}async setZoom(t){await this._setZoom(t)}getZoomSettings(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getZoom()}async resetZoom(){var t;if(ae(this,xn,"m",zn).call(this))throw new Error("'resetZoom()' is invalid in 'singleFrameMode'.");await(null===(t=ae(this,On,"f"))||void 0===t?void 0:t.resetZoom())}async setFrameRate(t){var e;if(ae(this,xn,"m",zn).call(this))throw new Error("'setFrameRate()' is invalid in 'singleFrameMode'.");await(null===(e=ae(this,On,"f"))||void 0===e?void 0:e.setFrameRate(t,!0))}getFrameRate(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getFrameRate()}async setFocus(t){var e;if(ae(this,xn,"m",zn).call(this))throw new Error("'setFocus()' is invalid in 'singleFrameMode'.");await(null===(e=ae(this,On,"f"))||void 0===e?void 0:e.setFocus(t,!0))}getFocusSettings(){var t;return null===(t=ae(this,On,"f"))||void 0===t?void 0:t.getFocus()}setAutoZoomRange(t){ae(this,Yn,"f").minValue=t.min,ae(this,Yn,"f").maxValue=t.max}getAutoZoomRange(){return{min:ae(this,Yn,"f").minValue,max:ae(this,Yn,"f").maxValue}}async enableEnhancedFeatures(t){var e,i;if(!(null===(i=null===(e=rt.license)||void 0===e?void 0:e.LicenseManager)||void 0===i?void 0:i.bPassValidation))throw new Error("License is not verified, or license is invalid.");if(0!==ht.bSupportDce4Module)throw new Error("Please set a license containing the DCE module.");t&be.EF_ENHANCED_FOCUS&&(ae(this,Vn,"f").enhancedFocus=!0),t&be.EF_AUTO_ZOOM&&(ae(this,Vn,"f").autoZoom=!0),t&be.EF_TAP_TO_FOCUS&&(ae(this,Vn,"f").tapToFocus=!0,ae(this,On,"f").enableTapToFocus())}disableEnhancedFeatures(t){t&be.EF_ENHANCED_FOCUS&&(ae(this,Vn,"f").enhancedFocus=!1,this.setFocus({mode:"continuous"}).catch((()=>{}))),t&be.EF_AUTO_ZOOM&&(ae(this,Vn,"f").autoZoom=!1,this.resetZoom().catch((()=>{}))),t&be.EF_TAP_TO_FOCUS&&(ae(this,Vn,"f").tapToFocus=!1,ae(this,On,"f").disableTapToFocus()),ae(this,xn,"m",Kn).call(this)&&ae(this,xn,"m",Zn).call(this)||ae(this,Hn,"f").stopCharging()}_setScanRegion(t){if(null!=t&&!Ue(t)&&!Ye(t))throw TypeError("Invalid 'region'.");he(this,Un,t?JSON.parse(JSON.stringify(t)):null,"f"),ae(this,Dn,"f")&&!ae(this,Dn,"f").disposed&&ae(this,Dn,"f").setScanRegion(t)}setScanRegion(t){this._setScanRegion(t),ae(this,Dn,"f")&&!ae(this,Dn,"f").disposed&&(null===t?ae(this,Dn,"f").setScanRegionMaskVisible(!1):ae(this,Dn,"f").setScanRegionMaskVisible(!0))}getScanRegion(){return JSON.parse(JSON.stringify(ae(this,Un,"f")))}setErrorListener(t){if(!t)throw new TypeError("Invalid 'listener'");he(this,Nn,t,"f")}hasNextImageToFetch(){return!("open"!==this.getCameraState()||!ae(this,On,"f").isVideoLoaded()||ae(this,xn,"m",zn).call(this))}startFetching(){if(ae(this,xn,"m",zn).call(this))throw Error("'startFetching()' is unavailable in 'singleFrameMode'.");ae(this,Gn,"f")||(he(this,Gn,!0,"f"),ae(this,xn,"m",qn).call(this))}stopFetching(){ae(this,Gn,"f")&&(is._onLog&&is._onLog("DCE: stop fetching loop: "+Date.now()),ae(this,Wn,"f")&&clearTimeout(ae(this,Wn,"f")),he(this,Gn,!1,"f"))}fetchImage(){if(ae(this,xn,"m",zn).call(this))throw new Error("'fetchImage()' is unavailable in 'singleFrameMode'.");if(!this.video)throw new Error("The video element does not exist.");if(4!==this.video.readyState)throw new Error("The video is not loaded.");const t=this.getResolution();if(!(null==t?void 0:t.width)||!(null==t?void 0:t.height))throw new Error("The video is not loaded.");let e;if(e=Xe.convert(ae(this,Un,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height}),e.x>t.width||e.y>t.height)throw new Error("Invalid scan region.");e.x+e.width>t.width&&(e.width=t.width-e.x),e.y+e.height>t.height&&(e.height=t.height-e.y);const i={sx:e.x,sy:e.y,sWidth:e.width,sHeight:e.height,dWidth:e.width,dHeight:e.height},r=Math.max(i.dWidth,i.dHeight);if(this.canvasSizeLimit&&r>this.canvasSizeLimit){const t=this.canvasSizeLimit/r;i.dWidth>i.dHeight?(i.dWidth=this.canvasSizeLimit,i.dHeight=Math.round(i.dHeight*t)):(i.dWidth=Math.round(i.dWidth*t),i.dHeight=this.canvasSizeLimit)}const n=ae(this,On,"f").getFrameData({position:i,pixelFormat:$n.get(this.getPixelFormat())});if(!n)return null;let s;s=n.pixelFormat===pr.GREY?n.width:4*n.width;let o=!0;return 0===i.sx&&0===i.sy&&i.sWidth===t.width&&i.sHeight===t.height&&(o=!1),{bytes:n.data,width:n.width,height:n.height,stride:s,format:ts.get(n.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:gt.ITT_VIDEO_FRAME,isCropped:o,cropRegion:{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height,isMeasuredInPercentage:!1},originalWidth:t.width,originalHeight:t.height,currentWidth:n.width,currentHeight:n.height,timeSpent:n.timeSpent,timeStamp:n.timeStamp},toCanvas:ae(this,Bn,"f"),isDCEFrame:!0}}setImageFetchInterval(t){this.fetchInterval=t,ae(this,Gn,"f")&&(ae(this,Wn,"f")&&clearTimeout(ae(this,Wn,"f")),he(this,Wn,setTimeout((()=>{this.disposed||ae(this,xn,"m",qn).call(this)}),t),"f"))}getImageFetchInterval(){return this.fetchInterval}setPixelFormat(t){he(this,jn,t,"f")}getPixelFormat(){return ae(this,jn,"f")}takePhoto(t){if(!this.isOpen())throw new Error("Not open.");if(ae(this,xn,"m",zn).call(this))throw new Error("'takePhoto()' is unavailable in 'singleFrameMode'.");const e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp"),e.setAttribute("capture",""),e.style.position="absolute",e.style.top="-9999px",e.style.backgroundColor="transparent",e.style.color="transparent",e.addEventListener("click",(()=>{const t=this.isOpen();this.close(),window.addEventListener("focus",(()=>{t&&this.open(),e.remove()}),{once:!0})})),e.addEventListener("change",(async()=>{const i=e.files[0],r=await(async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i})(i),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=Xe.convert(ae(this,Un,"f"),n,s);o||(o={x:0,y:0,width:n,height:s});const a=ae(this,kn,"f").call(this,r,n,s,o);t&&t(a)})),document.body.appendChild(e),e.click()}convertToPageCoordinates(t){const e=ae(this,xn,"m",Jn).call(this,t);return{x:e.pageX,y:e.pageY}}convertToClientCoordinates(t){const e=ae(this,xn,"m",Jn).call(this,t);return{x:e.clientX,y:e.clientY}}dispose(){this.close(),ae(this,On,"f").dispose(),this.releaseCameraView(),this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"isCameraEnhancer",{value:!0}),Object.defineProperty(this,"disposed",{value:!0})}}function rs(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function ns(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}An=is,On=new WeakMap,Dn=new WeakMap,Ln=new WeakMap,Mn=new WeakMap,Fn=new WeakMap,Pn=new WeakMap,kn=new WeakMap,Bn=new WeakMap,Nn=new WeakMap,Un=new WeakMap,jn=new WeakMap,Gn=new WeakMap,Wn=new WeakMap,Vn=new WeakMap,Yn=new WeakMap,Hn=new WeakMap,Xn=new WeakMap,xn=new WeakSet,zn=function(){return"disabled"!==this.singleFrameMode},Zn=function(){return!this.videoSrc&&"opened"===ae(this,On,"f").state},Kn=function(){for(let t in ae(this,Vn,"f"))if(1==ae(this,Vn,"f")[t])return!0;return!1},qn=function t(){if(this.disposed)return;if("open"!==this.getCameraState()||!ae(this,Gn,"f"))return ae(this,Wn,"f")&&clearTimeout(ae(this,Wn,"f")),void he(this,Wn,setTimeout((()=>{this.disposed||ae(this,xn,"m",t).call(this)}),this.fetchInterval),"f");const e=()=>{var t;let e;is._onLog&&is._onLog("DCE: start fetching a frame into buffer: "+Date.now());try{e=this.fetchImage()}catch(e){const i=e.message||e;if("The video is not loaded."===i)return;if(null===(t=ae(this,Nn,"f"))||void 0===t?void 0:t.onErrorReceived)return void setTimeout((()=>{var t;null===(t=ae(this,Nn,"f"))||void 0===t||t.onErrorReceived(ut.EC_IMAGE_READ_FAILED,i)}),0);console.warn(e)}e?(this.addImageToBuffer(e),is._onLog&&is._onLog("DCE: finish fetching a frame into buffer: "+Date.now()),ae(this,Mn,"f").fire("frameAddedToBuffer",null,{async:!0})):is._onLog&&is._onLog("DCE: get a invalid frame, abandon it: "+Date.now())};if(this.getImageCount()>=this.getMaxImageCount())switch(this.getBufferOverflowProtectionMode()){case r.BOPM_BLOCK:break;case r.BOPM_UPDATE:e()}else e();ae(this,Wn,"f")&&clearTimeout(ae(this,Wn,"f")),he(this,Wn,setTimeout((()=>{this.disposed||ae(this,xn,"m",t).call(this)}),this.fetchInterval),"f")},Jn=function(t){if(!ae(this,Dn,"f"))throw new Error("Camera view is not set.");if(ae(this,Dn,"f").disposed)throw new Error("'cameraView' has been disposed.");if(!this.isOpen())throw new Error("Not open.");if(!ae(this,xn,"m",zn).call(this)&&!ae(this,On,"f").isVideoLoaded())throw new Error("Video is not loaded.");if(ae(this,xn,"m",zn).call(this)&&!ae(this,Dn,"f")._cvsSingleFrameMode)throw new Error("No image is selected.");const e=ae(this,Dn,"f")._innerComponent.getBoundingClientRect(),i=e.left,r=e.top,n=i+window.scrollX,s=r+window.scrollY,{width:o,height:a}=ae(this,Dn,"f")._innerComponent.getBoundingClientRect();if(o<=0||a<=0)throw new Error("Unable to get content dimensions. Camera view may not be rendered on the page.");let h,l,c;if(ae(this,xn,"m",zn).call(this)){const t=ae(this,Dn,"f")._innerComponent.getElement("content");h=t.width,l=t.height,c="contain"}else{const t=this.getVideoEl();h=t.videoWidth,l=t.videoHeight,c=ae(this,Dn,"f").getVideoFit()}const u=o/a,d=h/l;let f,g,m,p,_=1;if("contain"===c)ut+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(t,e,i){return ss.multiply(t,[1,0,0,0,1,0,e,i,1])}static rotate(t,e){var i=Math.cos(e),r=Math.sin(e);return ss.multiply(t,[i,-r,0,r,i,0,0,0,1])}static scale(t,e,i){return ss.multiply(t,[e,0,0,0,i,0,0,0,1])}}var os,as,hs,ls,cs,us,ds,fs,gs,ms,ps,_s,vs,ys,ws,Es,Cs,Ts,bs,Ss,Is,xs,As;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(os||(os={}));class Rs{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(ns(Rs,as,!1,"f",hs),!1):(ns(Rs,as,!0,"f",hs),!0)}get disposed(){return rs(this,gs,"f")}constructor(){ls.set(this,os.RGBA),cs.set(this,null),us.set(this,null),ds.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,fs.set(this,null),gs.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==rs(Rs,as,"f",hs)&&Rs.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!rs(Rs,as,"f",hs))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;Rs._onLog&&(o=Date.now(),Rs._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=os.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!rs(Rs,as,"f",hs)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){Rs._onLog&&Rs._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);ns(this,us,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),ns(this,ds,e(t),"f"),ns(this,cs,i(t),"f"),ns(this,ls,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[os.GREY,os.GREY32].includes(p)?1:0);let m,_,v=ss.translate(ss.identity(),-1,-1);v=ss.scale(v,2,2),v=ss.scale(v,1/t.canvas.width,1/t.canvas.height),m=ss.translate(v,u,d),m=ss.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=ss.translate(ss.identity(),a/i,h/r),_=ss.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,rs(this,cs,"f"),e),v(t,rs(this,us,"f"),rs(this,ds,"f"),rs(this,cs,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){Rs._onLog&&Rs._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return Rs._onLog&&Rs._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===os.GREY?os.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return Rs._onLog&&Rs._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(Rs._onLog&&(n=Date.now(),Rs._onLog("transformPixelFormat(), START: "+n)),e===i)return Rs._onLog&&Rs._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[os.RGBA,os.RBGA,os.GRBA,os.GBRA,os.BRGA,os.BGRA];if(o.includes(e))if(i===os.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;Rs._onLog&&(s=Date.now(),Rs._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=os.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),rs(Rs,as,"f",hs)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){Rs._onLog&&Rs._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===os.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{var e;if(!this.isUseMagnifier)return;if(ae(this,ys,"f")||he(this,ys,new Os,"f"),!ae(this,ys,"f").magnifierCanvas)return;document.body.contains(ae(this,ys,"f").magnifierCanvas)||(ae(this,ys,"f").magnifierCanvas.style.position="fixed",ae(this,ys,"f").magnifierCanvas.style.boxSizing="content-box",ae(this,ys,"f").magnifierCanvas.style.border="2px solid #FFFFFF",document.body.append(ae(this,ys,"f").magnifierCanvas));const i=this._innerComponent.getElement("content");if(!i)return;if(t.pointer.x<0||t.pointer.x>i.width||t.pointer.y<0||t.pointer.y>i.height)return void ae(this,Es,"f").call(this);const r=null===(e=this._drawingLayerManager._getFabricCanvas())||void 0===e?void 0:e.lowerCanvasEl;if(!r)return;const n=Math.max(i.clientWidth/5/1.5,i.clientHeight/4/1.5),s=1.5*n,o=[{image:i,width:i.width,height:i.height},{image:r,width:r.width,height:r.height}];ae(this,ys,"f").update(s,t.pointer,n,o);{let e=0,i=0;t.e instanceof MouseEvent?(e=t.e.clientX,i=t.e.clientY):t.e instanceof TouchEvent&&t.e.changedTouches.length&&(e=t.e.changedTouches[0].clientX,i=t.e.changedTouches[0].clientY),e<1.5*s&&i<1.5*s?(ae(this,ys,"f").magnifierCanvas.style.left="auto",ae(this,ys,"f").magnifierCanvas.style.top="0",ae(this,ys,"f").magnifierCanvas.style.right="0"):(ae(this,ys,"f").magnifierCanvas.style.left="0",ae(this,ys,"f").magnifierCanvas.style.top="0",ae(this,ys,"f").magnifierCanvas.style.right="auto")}ae(this,ys,"f").show()})),Es.set(this,(()=>{ae(this,ys,"f")&&ae(this,ys,"f").hide()})),Cs.set(this,!1)}_setUIElement(t){this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await $e(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=ae(this,_s,"m",Ts).call(this);this._setUIElement(t),e.append(this.getUIElement()),this.UIElement=e}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;const t=this.UIElement;let e=t.classList.contains(this.containerClassName)?t:t.querySelector(`.${this.containerClassName}`);e||(e=document.createElement("div"),e.style.width="100%",e.style.height="100%",e.className=this.containerClassName,t.append(e)),this._innerComponent=new ir,e.appendChild(this._innerComponent)}_unbindUI(){var t,e,i;null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null}setImage(t,e,i){if(!this._innerComponent)throw new Error("Need to set 'UIElement'.");let r=this._innerComponent.getElement("content");r||(r=document.createElement("canvas"),r.style.objectFit="contain",this._innerComponent.setElement("content",r)),r.width===e&&r.height===i||(r.width=e,r.height=i);const n=r.getContext("2d");n.clearRect(0,0,r.width,r.height),t instanceof Uint8Array||t instanceof Uint8ClampedArray?(t instanceof Uint8Array&&(t=new Uint8ClampedArray(t.buffer)),n.putImageData(new ImageData(t,e,i),0,0)):(t instanceof HTMLCanvasElement||t instanceof HTMLImageElement)&&n.drawImage(t,0,0)}getImage(){return this._innerComponent.getElement("content")}clearImage(){if(!this._innerComponent)return;let t=this._innerComponent.getElement("content");t&&t.getContext("2d").clearRect(0,0,t.width,t.height)}removeImage(){this._innerComponent&&this._innerComponent.removeElement("content")}setOriginalImage(t){if(Ne(t)){he(this,vs,t,"f");const{width:e,height:i,bytes:r,format:n}=Object.assign({},t);let o;if(n===s.IPF_GRAYSCALED){o=new Uint8ClampedArray(e*i*4);for(let t=0;t{t.removeEventListener("loadedmetadata",i),t.play(),e=setTimeout((()=>{ae(this,bs,"f",As).delete(t)}),2e3*t.duration)};t.addEventListener("loadedmetadata",i),t.addEventListener("ended",(()=>{null!=e&&(clearTimeout(e),e=null),t.pause(),t.currentTime=0,ae(this,bs,"f",As).delete(t),ae(this,bs,"f",xs).add(t)}))}else ae(this,bs,"f",Is)||(he(this,bs,!0,"f",Is),console.warn("The requested audio tracks exceed 64 and will not be played."));t&&ae(this,bs,"f",As).add(t)}static vibrate(){if(!navigator||!navigator.vibrate)throw new Error("Not supported.");navigator.vibrate(Ls.vibrateDuration)}}bs=Ls,Ss={value:"data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAABQAAAkAAgICAgICAgICAgICAgICAgICAgKCgoKCgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4ODg4P//////////////////////////AAAAAExhdmM1OC41NAAAAAAAAAAAAAAAACQEUQAAAAAAAAJAk0uXRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAANQAbGeUEQAAHZYZ3fASqD4P5TKBgocg+Bw/8+CAYBA4XB9/4EBAEP4nB9+UOf/6gfUCAIKyjgQ/Kf//wfswAAAwQA/+MYxAYOqrbdkZGQAMA7DJLCsQxNOij///////////+tv///3RWiZGBEhsf/FO/+LoCSFs1dFVS/g8f/4Mhv0nhqAieHleLy/+MYxAYOOrbMAY2gABf/////////////////usPJ66R0wI4boY9/8jQYg//g2SPx1M0N3Z0kVJLIs///Uw4aMyvHJJYmPBYG/+MYxAgPMALBucAQAoGgaBoFQVBUFQWDv6gZBUFQVBUGgaBr5YSgqCoKhIGg7+IQVBUFQVBoGga//SsFSoKnf/iVTEFNRTMu/+MYxAYAAANIAAAAADEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"},Is={value:!1},xs={value:new Set},As={value:new Set},Ls.beepSoundSource=ae(Ls,bs,"f",Ss),Ls.vibrateDuration=300;var Ms=Object.freeze({__proto__:null,CameraEnhancer:is,CameraEnhancerModule:class{static getVersion(){return"4.0.2"}},CameraView:nr,DrawingStyleManager:Ji,get EnumDrawingItemMediaType(){return Ce},get EnumDrawingItemState(){return Te},get EnumEnhancedFeatures(){return be},Feedback:Ls,ImageDrawingItem:class extends Pe{set maintainAspectRatio(t){t&&this.set("scaleY",this.get("scaleX"))}get maintainAspectRatio(){return ae(this,ri,"f")}constructor(t,e,i,r){if(super(null,r),ii.set(this,void 0),ri.set(this,void 0),!Ye(e))throw new TypeError("Invalid 'rect'.");if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)this._setFabricObject(new Ie.Image(t,{left:e.x,top:e.y}));else{if(!Ne(t))throw new TypeError("Invalid 'image'.");{const i=document.createElement("canvas");let r;if(i.width=t.width,i.height=t.height,t.format===s.IPF_GRAYSCALED){r=new Uint8ClampedArray(t.width*t.height*4);for(let e=0;e({x:e.x-t.left-t.width/2,y:e.y-t.top-t.height/2}))),t.addWithUpdate()}else i.points=e;const r=i.points.length-1;return i.controls=i.points.reduce((function(t,e,i){return t["p"+i]=new Ie.Control({positionHandler:oi,actionHandler:li(i>0?i-1:r,hi),actionName:"modifyPolygon",pointIndex:i}),t}),{}),i._setPositionDimensions({}),!0}}extendGet(t){if("startPoint"===t||"endPoint"===t){const e=[],i=this._fabricObject;if(i.selectable&&!i.group)for(let t in i.oCoords)e.push({x:i.oCoords[t].x,y:i.oCoords[t].y});else for(let t of i.points){let r=t.x-i.pathOffset.x,n=t.y-i.pathOffset.y;const s=Ie.util.transformPoint({x:r,y:n},i.calcTransformMatrix());e.push({x:s.x,y:s.y})}return"startPoint"===t?e[0]:e[1]}}updateCoordinateBaseFromImageToView(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(e.x),y:this.convertPropFromViewToImage(e.y)})}updateCoordinateBaseFromViewToImage(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)}),this.set("endPoint",{x:this.convertPropFromImageToView(e.x),y:this.convertPropFromImageToView(e.y)})}setPosition(t){this.setLine(t)}getPosition(){return this.getLine()}updatePosition(){ae(this,fi,"f")&&this.setLine(ae(this,fi,"f"))}setPolygon(){}getPolygon(){return null}setLine(t){if(!je(t))throw new TypeError("Invalid 'line'.");if(this._drawingLayer){if("view"===this.coordinateBase)this.set("startPoint",{x:this.convertPropFromViewToImage(t.startPoint.x),y:this.convertPropFromViewToImage(t.startPoint.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(t.endPoint.x),y:this.convertPropFromViewToImage(t.endPoint.y)});else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("startPoint",t.startPoint),this.set("endPoint",t.endPoint)}this._drawingLayer.renderAll()}else he(this,fi,JSON.parse(JSON.stringify(t)),"f")}getLine(){if(this._drawingLayer){if("view"===this.coordinateBase)return{startPoint:{x:this.convertPropFromImageToView(this.get("startPoint").x),y:this.convertPropFromImageToView(this.get("startPoint").y)},endPoint:{x:this.convertPropFromImageToView(this.get("endPoint").x),y:this.convertPropFromImageToView(this.get("endPoint").y)}};if("image"===this.coordinateBase)return{startPoint:this.get("startPoint"),endPoint:this.get("endPoint")};throw new Error("Invalid 'coordinateBase'.")}return ae(this,fi,"f")?JSON.parse(JSON.stringify(ae(this,fi,"f"))):null}},QuadDrawingItem:Ki,RectDrawingItem:si,TextDrawingItem:di});const Fs="undefined"==typeof self,Ps=(()=>{if(!Fs&&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"./"})(),ks=t=>{if(null==t&&(t="./"),Fs);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};null==nt.dbr&&(nt.dbr=Ps),ot.dbr={js:!1,wasm:!0,deps:["license","dip"]},rt.dbr={};const Bs="1.2.0";"string"!=typeof nt.std&&w(nt.std.version,Bs)<0&&(nt.std={version:Bs,path:ks(Ps+`../../dynamsoft-capture-vision-std@${Bs}/dist/`)});const Ns="2.2.10";(!nt.dip||"string"!=typeof nt.dip&&w(nt.dip.version,Ns)<0)&&(nt.dip={version:Ns,path:ks(Ps+`../../dynamsoft-image-processing@${Ns}/dist/`)});const Us="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var js,Gs,Ws,Vs;!function(t){t[t.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",t[t.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",t[t.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT"}(js||(js={})),function(t){t[t.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",t[t.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",t[t.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",t[t.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q"}(Gs||(Gs={})),function(t){t[t.LM_AUTO=1]="LM_AUTO",t[t.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",t[t.LM_STATISTICS=4]="LM_STATISTICS",t[t.LM_LINES=8]="LM_LINES",t[t.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",t[t.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",t[t.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",t[t.LM_CENTRE=128]="LM_CENTRE",t[t.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",t[t.LM_REV=-2147483648]="LM_REV",t[t.LM_SKIP=0]="LM_SKIP"}(Ws||(Ws={})),function(t){t[t.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",t[t.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",t[t.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",t[t.DM_SMOOTHING=8]="DM_SMOOTHING",t[t.DM_MORPHING=16]="DM_MORPHING",t[t.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",t[t.DM_SHARPENING=64]="DM_SHARPENING",t[t.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",t[t.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",t[t.DM_REV=-2147483648]="DM_REV",t[t.DM_SKIP=0]="DM_SKIP"}(Vs||(Vs={}));var Ys=Object.freeze({__proto__:null,BarcodeReaderModule:class{static getVersion(){const t=it.dbr&&it.dbr.wasm,e=it.dbr&&it.dbr.worker;return`10.2.10(Worker: ${e||"Not Loaded"}, Wasm: ${t||"Not Loaded"})`}},EnumBarcodeFormat:Us,get EnumExtendedBarcodeResultType(){return js},get EnumQRCodeErrorCorrectionLevel(){return Gs},get EnumLocalizationMode(){return Ws},get EnumDeblurMode(){return Vs}}); -/*! - * Dynamsoft JavaScript Library - * @product Dynamsoft Utility JS Edition - * @website https://www.dynamsoft.com - * @copyright Copyright 2024, Dynamsoft Corporation - * @author Dynamsoft - * @version 1.2.10 - * @fileoverview Dynamsoft JavaScript Library for Core - * More info DU JS: https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/utility/utility-module.html - */const Hs=async(t,e,i)=>await new Promise((async(r,n)=>{try{const n=e.split(".");let s=n[n.length-1];const o=await zs(`image/${s}`,t);n.length<=1&&(s="png");const a=new File([o],e,{type:`image/${s}`});if(i){const t=URL.createObjectURL(a),i=document.createElement("a");i.href=t,i.download=e,i.click()}return r(a)}catch(t){return n()}})),Xs=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},zs=async(t,e)=>{const i=Xs(e);return new Promise(((e,r)=>{i.toBlob((t=>e(t)),t)}))},Zs=t=>{let e,i=t.bytes;if(!(i&&i instanceof Uint8Array))throw Error("Parameter type error");if(Number(t.format)===s.IPF_BGR_888){const t=i.length/3;e=new Uint8ClampedArray(4*t);for(let r=0;r=n)break;e[o]=e[o+1]=e[o+2]=(128&r)/128*255,e[o+3]=255,r<<=1}}}else if(Number(t.format)===s.IPF_ABGR_8888){const t=i.length/4;e=new Uint8ClampedArray(i.length);for(let r=0;rObject.values(Ks).includes(t)||Ks.hasOwnProperty(t),Js=(t,e)=>"string"==typeof t?e[Ks[t]]:e[t],Qs=(t,e,i)=>{"string"==typeof t?e[Ks[t]]=i:e[t]=i};var $s=Object.freeze({__proto__:null,ImageManager:class{async saveToFile(t,e,i){if(!t||!e)return null;if("string"!=typeof e)throw new TypeError("FileName must be of type string.");const r=Zs(t);return Hs(r,e,i)}},MultiFrameResultCrossFilter:class{constructor(){this.verificationEnabled={[lt.CRIT_BARCODE]:!1,[lt.CRIT_TEXT_LINE]:!0,[lt.CRIT_DETECTED_QUAD]:!0,[lt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateFilterEnabled={[lt.CRIT_BARCODE]:!1,[lt.CRIT_TEXT_LINE]:!1,[lt.CRIT_DETECTED_QUAD]:!1,[lt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateForgetTime={[lt.CRIT_BARCODE]:3e3,[lt.CRIT_TEXT_LINE]:3e3,[lt.CRIT_DETECTED_QUAD]:3e3,[lt.CRIT_NORMALIZED_IMAGE]:3e3}}enableResultCrossVerification(t,e){qs(t)&&Qs(t,this.verificationEnabled,e)}isResultCrossVerificationEnabled(t){return!!qs(t)&&Js(t,this.verificationEnabled)}enableResultDeduplication(t,e){qs(t)&&Qs(t,this.duplicateFilterEnabled,e)}isResultDeduplicationEnabled(t){return!!qs(t)&&Js(t,this.duplicateFilterEnabled)}setDuplicateForgetTime(t,e){qs(t)&&(e>18e4&&(e=18e4),e<0&&(e=0),Qs(t,this.duplicateForgetTime,e))}getDuplicateForgetTime(t){return qs(t)?Js(t,this.duplicateForgetTime):-1}getFilteredResultItemTypes(){let t=0;const e=[lt.CRIT_BARCODE,lt.CRIT_TEXT_LINE,lt.CRIT_DETECTED_QUAD];for(let i=0;i{const i=Xs(e);let r=new Image,n=i.toDataURL(t);return r.src=n,r}});let to="./";if(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))}to=t.substring(0,t.lastIndexOf("/")+1)}const eo=t=>{null==t&&(t="./");let e=document.createElement("a");return e.href=t,(t=e.href).endsWith("/")||(t+="/"),t};ht.engineResourcePaths={std:eo(to+"../../dynamsoft-capture-vision-std@1.2.0/dist/"),dip:eo(to+"../../dynamsoft-image-processing@2.2.10/dist/"),core:eo(to+"../../dynamsoft-core@3.2.10/dist/"),license:eo(to+"../../dynamsoft-license@3.2.10/dist/"),cvr:eo(to+"../../dynamsoft-capture-vision-router@2.2.10/dist/"),dce:eo(to+"../../dynamsoft-camera-enhancer@4.0.2/dist/")},t.CVR=ne,t.Core=wt,t.DBR=Ys,t.DCE=Ms,t.License=Wt,t.Utility=$s,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Dynamsoft={})}(this,(function(t){"use strict";function e(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function i(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}var r,n,s;"function"==typeof SuppressedError&&SuppressedError,function(t){t[t.BOPM_BLOCK=0]="BOPM_BLOCK",t[t.BOPM_UPDATE=1]="BOPM_UPDATE"}(r||(r={})),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"}(n||(n={})),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"}(s||(s={}));const o=t=>Object.prototype.toString.call(t),a=t=>Array.isArray?Array.isArray(t):"[object Array]"===o(t),h=t=>"[object Boolean]"===o(t),l=t=>"number"==typeof t&&!Number.isNaN(t),c=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),u=t=>!(!c(t)||!(t.bytes instanceof Uint8Array)||!l(t.width)||t.width<=0||!l(t.height)||t.height<=0||!l(t.stride)||t.stride<=0||!("format"in t)||"tag"in t&&!f(t.tag)),d=t=>!(!c(t)||!l(t.left)||t.left<0||!l(t.top)||t.top<0||!l(t.right)||t.right<0||!l(t.bottom)||t.bottom<0||t.left>=t.right||t.top>=t.bottom||!h(t.isMeasuredInPercentage)),f=t=>!!c(t)&&!!l(t.imageId)&&"type"in t,g=t=>!(!c(t)||!m(t.startPoint)||!m(t.endPoint)||t.startPoint.x==t.endPoint.x&&t.startPoint.y==t.endPoint.y),m=t=>!!c(t)&&!!l(t.x)&&!!l(t.y),p=t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&!t.points.some((t=>!m(t))),_=t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&4==t.points.length&&!t.points.some((t=>!m(t))),v=t=>!(!c(t)||!l(t.x)||!l(t.y)||!l(t.width)||t.width<0||!l(t.height)||t.height<0||"isMeasuredInPercentage"in t&&!h(t.isMeasuredInPercentage));async function y(t,e){return await new Promise(((i,r)=>{let n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType=e,n.send(),n.onloadend=async()=>{n.status<200||n.status>=300?r(t+" "+n.status):i(n.response)},n.onerror=()=>{r(new Error("Network Error: "+n.statusText))}}))}const w=(t,e)=>{let i=t.split("."),r=e.split(".");for(let t=0;t=e(this,b,"f"))switch(e(this,S,"f")){case r.BOPM_BLOCK:break;case r.BOPM_UPDATE:if(e(this,T,"f").push(t),c(e(this,x,"f"))&&l(e(this,x,"f").imageId)&&1==e(this,x,"f").keepInBuffer)for(;e(this,T,"f").length>e(this,b,"f");){const t=e(this,T,"f").findIndex((t=>{var i;return(null===(i=t.tag)||void 0===i?void 0:i.imageId)!==e(this,x,"f").imageId}));e(this,T,"f").splice(t,1)}else e(this,T,"f").splice(0,e(this,T,"f").length-e(this,b,"f"))}else e(this,T,"f").push(t)}getImage(){if(0===e(this,T,"f").length)return null;let i;if(e(this,x,"f")&&l(e(this,x,"f").imageId)){const t=e(this,C,"m",R).call(this,e(this,x,"f").imageId);if(t<0)throw new Error(`Image with id ${e(this,x,"f").imageId} doesn't exist.`);i=e(this,T,"f").slice(t,t+1)[0]}else i=e(this,T,"f").pop();if([s.IPF_RGB_565,s.IPF_RGB_555,s.IPF_RGB_888,s.IPF_ARGB_8888,s.IPF_RGB_161616,s.IPF_ARGB_16161616,s.IPF_ABGR_8888,s.IPF_ABGR_16161616,s.IPF_BGR_888].includes(i.format)){if(e(this,A,"f")===n.CCUT_RGB_R_CHANNEL_ONLY){t._onLog&&t._onLog("only get R channel data.");const e=new Uint8Array(i.width*i.height);for(let t=0;t0!==t.length&&t.every((t=>l(t))))(t))throw new TypeError("Invalid 'imageId'.");if(void 0!==e&&!h(e))throw new TypeError("Invalid 'keepInBuffer'.");i(this,x,{imageId:t,keepInBuffer:e},"f")}_resetNextReturnedImage(){i(this,x,null,"f")}hasImage(t){return e(this,C,"m",R).call(this,t)>=0}startFetching(){i(this,I,!0,"f")}stopFetching(){i(this,I,!1,"f")}setMaxImageCount(t){if("number"!=typeof t)throw new TypeError("Invalid 'count'.");if(t<1||Math.round(t)!==t)throw new Error("Invalid 'count'.");for(i(this,b,t,"f");e(this,T,"f")&&e(this,T,"f").length>t;)e(this,T,"f").shift()}getMaxImageCount(){return e(this,b,"f")}getImageCount(){return e(this,T,"f").length}clearBuffer(){e(this,T,"f").length=0}isBufferEmpty(){return 0===e(this,T,"f").length}setBufferOverflowProtectionMode(t){i(this,S,t,"f")}getBufferOverflowProtectionMode(){return e(this,S,"f")}setColourChannelUsageType(t){i(this,A,t,"f")}getColourChannelUsageType(){return e(this,A,"f")}};T=new WeakMap,b=new WeakMap,S=new WeakMap,I=new WeakMap,x=new WeakMap,A=new WeakMap,C=new WeakSet,R=function(t){if("number"!=typeof t)throw new TypeError("Invalid 'imageId'.");return e(this,T,"f").findIndex((e=>{var i;return(null===(i=e.tag)||void 0===i?void 0:i.imageId)===t}))};const D="undefined"==typeof self,L=(()=>{if(!D&&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"./"})(),M=t=>{if(null==t&&(t="./"),D);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};let F,P,k,B,N;"undefined"!=typeof navigator&&(F=navigator,P=F.userAgent,k=F.platform,B=F.mediaDevices),function(){if(!D){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:F.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:k,search:"Win"},Mac:{str:k},Linux:{str:k}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||P,o=n.search||e,a=n.verStr||P,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||P,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=P.indexOf("Windows NT")&&(n="HarmonyOS"),N={browser:i,version:r,OS:n}}D&&(N={browser:"ssr",version:0,OS:"ssr"})}();const U="undefined"!=typeof WebAssembly&&P&&!(/Safari/.test(P)&&!/Chrome/.test(P)&&/\(.+\s11_2_([2-6]).*\)/.test(P)),j=!("undefined"==typeof Worker),G=!(!B||!B.getUserMedia),V=async()=>{let t=!1;if(G)try{(await B.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===N.browser&&N.version>66||"Safari"===N.browser&&N.version>13||"OPR"===N.browser&&N.version>43||"Edge"===N.browser&&N.version;const W=t=>t&&"object"==typeof t&&"function"==typeof t.then;let Y=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(W(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,W(t)?e=t:"function"==typeof t&&(e=new Promise(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}};const H={},X=async t=>{let e="string"==typeof t?[t]:t,i=[];for(let t of e)i.push(H[t]=H[t]||new Y);await Promise.all(i)},z=async(t,e)=>{let i,r="string"==typeof t?[t]:t,n=[];for(let t of r){let r;n.push(r=H[t]=H[t]||new Y(i=i||e())),r.isEmpty&&(r.task=i=i||e())}await Promise.all(n)};let Z,K=0;const q=()=>K++,J={};let Q;const $=t=>{Q=t,Z&&Z.postMessage({type:"setBLog",body:{value:!!t}})};let tt=!1;const et=t=>{tt=t,Z&&Z.postMessage({type:"setBDebug",body:{value:!!t}})},it={},rt={},nt={std:{version:"1.2.10",path:M(L+"../../dynamsoft-capture-vision-std@1.2.10/dist/")},core:{version:"3.2.30",path:L}},st=new Proxy(nt,{get(t,e,i){let r=Reflect.get(t,e,i);return r&&r.path&&(r=r.path),r}}),ot={dip:{wasm:!0}},at=async t=>{let e;t instanceof Array||(t=t?[t]:[]);{let t=H.core;e=!t||t.isEmpty}let i=new Map;for(let e of t){if(e=e.toLowerCase(),"std"==e||"core"==e)continue;if(!ot[e])throw Error("The '"+e+"' module cannot be found.");let t=ot[e].deps;if(null==t?void 0:t.length)for(let e of t){let t=H[e];i.has(e)||i.set(e,!t||t.isEmpty)}let r=H[e];i.has(e)||i.set(e,!r||r.isEmpty)}let r=[];e&&r.push("core"),r.push(...i.keys()),await z(r,(async()=>{const t=[...i.entries()].filter((t=>t[1])).map((t=>t[0])),r={};for(let t in st){if("rootDirectory"==t)continue;let e=st[t];st.rootDirectory&&(e.startsWith("http://")||e.startsWith("https://")||(e=st.rootDirectory+"/"+e)),r[t]=M(e)}const n={};for(let e of t)n[e]=ot[e];const s={engineResourcePaths:r,autoResources:n,names:t};let o=new Y;if(e){s.needLoadCore=!0;let t=r.core+ht._workerName;r.rootDirectory&&(t=r.rootDirectory+t),t.startsWith(location.origin)||(t=await fetch(t).then((t=>t.blob())).then((t=>URL.createObjectURL(t)))),Z=new Worker(t),Z.onerror=t=>{let e=new Error(t.message);o.reject(e)},Z.addEventListener("message",(t=>{let e=t.data?t.data:t,i=e.type,r=e.id,n=e.body;switch(i){case"log":Q&&Q(e.message);break;case"task":try{J[r](n),delete J[r]}catch(t){throw delete J[r],t}break;case"event":try{J[r](n)}catch(t){throw t}break;default:console.log(t)}})),s.bLog=!!Q,s.bd=tt,s.dm=location.origin.startsWith("http")?location.origin:"https://localhost"}else await X("worker");let a=K++;J[a]=t=>{if(t.success)Object.assign(it,t.versions),"{}"!==JSON.stringify(t.versions)&&(ht._versions=t.versions),o.resolve(void 0);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),o.reject(e)}},Z.postMessage({type:"loadWasm",body:s,id:a}),e&&z("worker",(()=>Promise.resolve())),await o}))};class ht{static get engineResourcePaths(){return st}static set engineResourcePaths(t){Object.assign(nt,t)}static get bSupportDce4Module(){return this._bSupportDce4Module}static get bSupportIRTModule(){return this._bSupportIRTModule}static get versions(){return this._versions}static get _onLog(){return Q}static set _onLog(t){$(t)}static get _bDebug(){return tt}static set _bDebug(t){et(t)}static isModuleLoaded(t){return t=(t=t||"core").toLowerCase(),!!H[t]&&H[t].isFulfilled}static async loadWasm(t){return await at(t)}static async detectEnvironment(){return await(async()=>({wasm:U,worker:j,getUserMedia:G,camera:await V(),browser:N.browser,version:N.version,OS:N.OS}))()}static async getModuleVersion(){return await new Promise(((t,e)=>{let i=q();J[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)}},Z.postMessage({type:"getModuleVersion",id:i})}))}static getVersion(){return`3.2.30(Worker: ${it.core&&it.core.worker||"Not Loaded"}, Wasm: ${it.core&&it.core.wasm||"Not Loaded"})`}static enableLogging(){O._onLog=console.log,ht._onLog=console.log}static disableLogging(){O._onLog=null,ht._onLog=null}static async cfd(t){return await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cfd",id:r,body:{count:t}})}))}}var lt,ct,ut,dt,ft,gt,mt,pt,_t,vt,yt;ht._bSupportDce4Module=-1,ht._bSupportIRTModule=-1,ht._versions=null,ht._workerName="core.worker.js",ht.browserInfo=N,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_NORMALIZED_IMAGE=16]="CRIT_NORMALIZED_IMAGE",t[t.CRIT_PARSED_RESULT=32]="CRIT_PARSED_RESULT"}(lt||(lt={})),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"}(ct||(ct={})),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_RESERVED_INFO_NOT_MATCH=-10040]="EC_RESERVED_INFO_NOT_MATCH",t[t.EC_LICENSE_KEY_NOT_MATCH=-10043]="EC_LICENSE_KEY_NOT_MATCH",t[t.EC_REQUEST_FAILED=-10044]="EC_REQUEST_FAILED",t[t.EC_LICENSE_INIT_FAILED=-10045]="EC_LICENSE_INIT_FAILED",t[t.EC_SET_MODE_ARGUMENT_ERROR=-10051]="EC_SET_MODE_ARGUMENT_ERROR",t[t.EC_LICENSE_CONTENT_INVALID=-10052]="EC_LICENSE_CONTENT_INVALID",t[t.EC_LICENSE_KEY_INVALID=-10053]="EC_LICENSE_KEY_INVALID",t[t.EC_LICENSE_DEVICE_RUNS_OUT=-10054]="EC_LICENSE_DEVICE_RUNS_OUT",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_NO_LICENSE=-2e4]="EC_NO_LICENSE",t[t.EC_HANDSHAKE_CODE_INVALID=-20001]="EC_HANDSHAKE_CODE_INVALID",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_LICENSE_INIT_SEQUENCE_FAILED=-20009]="EC_LICENSE_INIT_SEQUENCE_FAILED",t[t.EC_TRIAL_LICENSE=-20010]="EC_TRIAL_LICENSE",t[t.EC_FAILED_TO_REACH_DLS=-20200]="EC_FAILED_TO_REACH_DLS",t[t.EC_LICENSE_CACHE_USED=-20012]="EC_LICENSE_CACHE_USED",t[t.EC_BARCODE_FORMAT_INVALID=-30009]="EC_BARCODE_FORMAT_INVALID",t[t.EC_QR_LICENSE_INVALID=-30016]="EC_QR_LICENSE_INVALID",t[t.EC_1D_LICENSE_INVALID=-30017]="EC_1D_LICENSE_INVALID",t[t.EC_PDF417_LICENSE_INVALID=-30019]="EC_PDF417_LICENSE_INVALID",t[t.EC_DATAMATRIX_LICENSE_INVALID=-30020]="EC_DATAMATRIX_LICENSE_INVALID",t[t.EC_CUSTOM_MODULESIZE_INVALID=-30025]="EC_CUSTOM_MODULESIZE_INVALID",t[t.EC_AZTEC_LICENSE_INVALID=-30041]="EC_AZTEC_LICENSE_INVALID",t[t.EC_PATCHCODE_LICENSE_INVALID=-30046]="EC_PATCHCODE_LICENSE_INVALID",t[t.EC_POSTALCODE_LICENSE_INVALID=-30047]="EC_POSTALCODE_LICENSE_INVALID",t[t.EC_DPM_LICENSE_INVALID=-30048]="EC_DPM_LICENSE_INVALID",t[t.EC_FRAME_DECODING_THREAD_EXISTS=-30049]="EC_FRAME_DECODING_THREAD_EXISTS",t[t.EC_STOP_DECODING_THREAD_FAILED=-30050]="EC_STOP_DECODING_THREAD_FAILED",t[t.EC_MAXICODE_LICENSE_INVALID=-30057]="EC_MAXICODE_LICENSE_INVALID",t[t.EC_GS1_DATABAR_LICENSE_INVALID=-30058]="EC_GS1_DATABAR_LICENSE_INVALID",t[t.EC_GS1_COMPOSITE_LICENSE_INVALID=-30059]="EC_GS1_COMPOSITE_LICENSE_INVALID",t[t.EC_DOTCODE_LICENSE_INVALID=-30061]="EC_DOTCODE_LICENSE_INVALID",t[t.EC_PHARMACODE_LICENSE_INVALID=-30062]="EC_PHARMACODE_LICENSE_INVALID",t[t.EC_CHARACTER_MODEL_FILE_NOT_FOUND=-40100]="EC_CHARACTER_MODEL_FILE_NOT_FOUND",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_ZA_DL_LICENSE_INVALID=-90006]="EC_ZA_DL_LICENSE_INVALID",t[t.EC_AAMVA_DL_ID_LICENSE_INVALID=-90007]="EC_AAMVA_DL_ID_LICENSE_INVALID",t[t.EC_AADHAAR_LICENSE_INVALID=-90008]="EC_AADHAAR_LICENSE_INVALID",t[t.EC_MRTD_LICENSE_INVALID=-90009]="EC_MRTD_LICENSE_INVALID",t[t.EC_VIN_LICENSE_INVALID=-90010]="EC_VIN_LICENSE_INVALID",t[t.EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID=-90011]="EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID"}(ut||(ut={})),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"}(dt||(dt={})),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"}(ft||(ft={})),function(t){t[t.ITT_FILE_IMAGE=0]="ITT_FILE_IMAGE",t[t.ITT_VIDEO_FRAME=1]="ITT_VIDEO_FRAME"}(gt||(gt={})),function(t){t[t.PDFRM_VECTOR=1]="PDFRM_VECTOR",t[t.PDFRM_RASTER=2]="PDFRM_RASTER",t[t.PDFRM_REV=-2147483648]="PDFRM_REV"}(mt||(mt={})),function(t){t[t.RDS_RASTERIZED_PAGES=0]="RDS_RASTERIZED_PAGES",t[t.RDS_EXTRACTED_IMAGES=1]="RDS_EXTRACTED_IMAGES"}(pt||(pt={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=268435455]="IRUT_ALL"}(_t||(_t={})),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_NORMALIZED_IMAGE=6]="ROET_NORMALIZED_IMAGE",t[t.ROET_SOURCE_IMAGE=7]="ROET_SOURCE_IMAGE",t[t.ROET_TARGET_ROI=8]="ROET_TARGET_ROI"}(vt||(vt={})),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_NORMALIZATION=7]="ST_DOCUMENT_NORMALIZATION"}(yt||(yt={}));var wt=Object.freeze({__proto__:null,CoreModule:ht,get EnumBufferOverflowProtectionMode(){return r},get EnumCapturedResultItemType(){return lt},get EnumColourChannelUsageType(){return n},get EnumCornerType(){return ct},get EnumErrorCode(){return ut},get EnumGrayscaleEnhancementMode(){return dt},get EnumGrayscaleTransformationMode(){return ft},get EnumImagePixelFormat(){return s},get EnumImageTagType(){return gt},get EnumIntermediateResultUnitType(){return _t},get EnumPDFReadingMode(){return mt},get EnumRasterDataSource(){return pt},get EnumRegionObjectElementType(){return vt},get EnumSectionType(){return yt},ImageSourceAdapter:O,_isArc:t=>!(!c(t)||!l(t.x)||!l(t.y)||!l(t.radius)||t.radius<0||!l(t.startAngle)||!l(t.endAngle)),_isContour:t=>!!c(t)&&!!a(t.points)&&0!=t.points.length&&!t.points.some((t=>!m(t))),_isDSImageData:u,_isDSRect:d,_isImageTag:f,_isLineSegment:g,_isPoint:m,_isPolygon:p,_isQuad:_,_isRect:v,get bDebug(){return tt},bSupportBigInt:E,checkIsLink:function(t){return/^(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)|^[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?/.test(t)},compareVersion:w,doOrWaitAsyncDependency:z,engineResourcePaths:nt,getNextTaskID:q,innerVersions:it,loadWasm:at,mapAsyncDependency:H,mapPackageRegister:rt,mapTaskCallBack:J,newAsyncDependency:t=>{let e=H[t],i=!1;return e?e.isEmpty?e.task=()=>{}:i=!0:e=H[t]=new Y((()=>{})),{p:e,justWait:i}},get onLog(){return Q},requestResource:y,setBDebug:et,setOnLog:$,waitAsyncDependency:X,get worker(){return Z},workerAutoResources:ot});let Et="./";if(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))}Et=t.substring(0,t.lastIndexOf("/")+1)}const Ct=t=>{null==t&&(t="./");let e=document.createElement("a");return e.href=t,(t=e.href).endsWith("/")||(t+="/"),t};ht.engineResourcePaths={std:Ct(Et+"../../dynamsoft-capture-vision-std@1.2.10/dist/"),dip:Ct(Et+"../../dynamsoft-image-processing@2.2.30/dist/"),core:Ct(Et+"../../dynamsoft-core@3.2.30/dist/"),license:Ct(Et+"../../dynamsoft-license@3.2.21/dist/"),cvr:Ct(Et+"../../dynamsoft-capture-vision-router@2.2.30/dist/"),dce:Ct(Et+"../../dynamsoft-camera-enhancer@4.0.3/dist/"),dbr:Ct(Et+"../../dynamsoft-barcode-reader@10.2.10/dist/")};const Tt="undefined"==typeof self,bt=Tt?{}:self,St=(()=>{if(!Tt&&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"./"})(),It=t=>{if(null==t&&(t="./"),Tt);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t},xt=t=>t&&"object"==typeof t&&"function"==typeof t.then;let At=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(xt(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,xt(t)?e=t:"function"==typeof t&&(e=new Promise(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}};const Rt=" is not allowed to change after `createInstance` or `loadWasm` is called.",Ot=!Tt&&document.currentScript&&(document.currentScript.getAttribute("data-license")||document.currentScript.getAttribute("data-productKeys")||document.currentScript.getAttribute("data-licenseKey")||document.currentScript.getAttribute("data-handshakeCode")||document.currentScript.getAttribute("data-organizationID"))||"",Dt=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`license`"+Rt);i._license=e};!Tt&&document.currentScript&&document.currentScript.getAttribute("data-sessionPassword");const Lt=t=>{if(null==t)t=[];else{t=t instanceof Array?[...t]:[t];for(let e=0;e{const i=t;if(!i._pLoad.isEmpty)throw new Error("`licenseServer`"+Rt);i._licenseServer=Lt(e)},Ft=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`deviceFriendlyName`"+Rt);i._deviceFriendlyName=e||""};let Pt,kt,Bt,Nt,Ut;"undefined"!=typeof navigator&&(Pt=navigator,kt=Pt.userAgent,Bt=Pt.platform,Nt=Pt.mediaDevices),function(){if(!Tt){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:Pt.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:Bt,search:"Win"},Mac:{str:Bt},Linux:{str:Bt}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||kt,o=n.search||e,a=n.verStr||kt,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||kt,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=kt.indexOf("Windows NT")&&(n="HarmonyOS"),Ut={browser:i,version:r,OS:n}}Tt&&(Ut={browser:"ssr",version:0,OS:"ssr"})}(),Nt&&Nt.getUserMedia,"Chrome"===Ut.browser&&Ut.version>66||"Safari"===Ut.browser&&Ut.version>13||"OPR"===Ut.browser&&Ut.version>43||"Edge"===Ut.browser&&Ut.version;const jt=async()=>(at("license"),z("dynamsoft_inited",(async()=>{let{lt:t,l:e,ls:i,sp:r,rmk:n,cv:s}=((t,e=!1)=>{const i=t;if(i._pLoad.isEmpty){let r,n,s,o=i._license||"",a=JSON.parse(JSON.stringify(i._licenseServer)),h=i._sessionPassword,l=0;if(o.startsWith("t")||o.startsWith("f"))l=0;else if(0===o.length||o.startsWith("P")||o.startsWith("L")||o.startsWith("Y")||o.startsWith("A"))l=1;else{l=2;const e=o.indexOf(":");-1!=e&&(o=o.substring(e+1));const i=o.indexOf("?");if(-1!=i&&(n=o.substring(i+1),o=o.substring(0,i)),o.startsWith("DLC2"))l=0;else{if(o.startsWith("DLS2")){let e;try{let t=o.substring(4);t=atob(t),e=JSON.parse(t)}catch(t){throw new Error("Format Error: The license string you specified is invalid, please check to make sure it is correct.")}if(o=e.handshakeCode?e.handshakeCode:e.organizationID?e.organizationID:"","number"==typeof o&&(o=JSON.stringify(o)),0===a.length){let t=[];e.mainServerURL&&(t[0]=e.mainServerURL),e.standbyServerURL&&(t[1]=e.standbyServerURL),a=Lt(t)}!h&&e.sessionPassword&&(h=e.sessionPassword),r=e.remark}o&&"200001"!==o&&!o.startsWith("200001-")||(l=1)}}if(l&&(e||(bt.crypto||(s="Please upgrade your browser to support online key."),bt.crypto.subtle||(s="Require https to use online key in this browser."))),s){if(1!==l)throw new Error(s);l=0,console.warn(s),i._lastErrorCode=-1,i._lastErrorString=s}return 1===l&&(o="",console.warn("Applying for a public trial license ...")),{lt:l,l:o,ls:a,sp:h,rmk:r,cv:n}}throw new Error("Can't preprocess license again"+Rt)})(Vt),o=new At;Vt._pLoad.task=o,(async()=>{try{await Vt._pLoad}catch(t){}})();let a=q();J[a]=e=>{if(e.message&&Vt._onAuthMessage){let t=Vt._onAuthMessage(e.message);null!=t&&(e.message=t)}let i,r=!1;if(1===t&&(r=!0),e.success?(Q&&Q("init license success"),e.message&&console.warn(e.message),ht._bSupportIRTModule=e.bSupportIRTModule,ht._bSupportDce4Module=e.bSupportDce4Module,Vt.bPassValidation=!0):(i=Error(e.message),e.stack&&(i.stack=e.stack),e.ltsErrorCode&&(i.ltsErrorCode=e.ltsErrorCode),r||111==e.ltsErrorCode&&-1!=e.message.toLowerCase().indexOf("trial license")&&(r=!0)),r){let t=nt.license;nt.rootDirectory&&(t=nt.rootDirectory+"/"+t),t=It(t),(async(t,e,i)=>{if(!t._bNeverShowDialog)try{let r=await fetch(t.engineResourcePath+"dls.license.dialog.html");if(!r.ok)throw Error("Get license dialog fail. Network Error: "+r.statusText);let n=await r.text();if(!n.trim().startsWith("<"))throw Error("Get license dialog fail. Can't get valid HTMLElement.");let s=document.createElement("div");s.innerHTML=n;let o=[];for(let t=0;t{if(t==e.target){a.remove();for(let t of o)t.remove()}}));else if(!l&&t.classList.contains("dls-license-icon-close"))l=t,t.addEventListener("click",(()=>{a.remove();for(let t of o)t.remove()}));else if(!c&&t.classList.contains("dls-license-icon-error"))c=t,"error"!=e&&t.remove();else if(!u&&t.classList.contains("dls-license-icon-warn"))u=t,"warn"!=e&&t.remove();else if(!d&&t.classList.contains("dls-license-msg-content")){d=t;let e=i;for(;e;){let i=e.indexOf("["),r=e.indexOf("]",i),n=e.indexOf("(",r),s=e.indexOf(")",n);if(-1==i||-1==r||-1==n||-1==s){t.appendChild(new Text(e));break}i>0&&t.appendChild(new Text(e.substring(0,i)));let o=document.createElement("a"),a=e.substring(i+1,r);o.innerText=a;let h=e.substring(n+1,s);o.setAttribute("href",h),o.setAttribute("target","_blank"),t.appendChild(o),e=e.substring(s+1)}}document.body.appendChild(a)}catch(e){t._onLog&&t._onLog(e.message||e)}})({_bNeverShowDialog:Vt._bNeverShowDialog,engineResourcePath:t,_onLog:Q},e.success?"warn":"error",e.message)}e.success?o.resolve(void 0):o.reject(i)},await X("worker"),Z.postMessage({type:"dynamsoft",body:{v:"3.2.21",brtk:!!t,bptk:1===t,l:e,os:Ut,fn:Vt.deviceFriendlyName,ls:i,sp:r,rmk:n,cv:s},id:a}),Vt.bCallInitLicense=!0,await o})));let Gt;rt.license={},rt.license.dynamsoft=jt,rt.license.getAR=async()=>{{let t=H.dynamsoft_inited;t&&t.isRejected&&await t}return Z?new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success){delete i.success;{let t=Vt.license;t&&(t.startsWith("t")||t.startsWith("f"))&&(i.pk=t)}if(Object.keys(i).length){if(i.lem){let t=Error(i.lem);t.ltsErrorCode=i.lec,delete i.lem,delete i.lec,i.ae=t}t(i)}else t(null)}else{let t=Error(i.message);i.stack&&(t.stack=i.stack),e(t)}},Z.postMessage({type:"getAR",id:i})})):null};let Vt=class t{static setLicenseServer(e){Mt(t,e)}static get license(){return this._license}static set license(e){Dt(t,e)}static get licenseServer(){return this._licenseServer}static set licenseServer(e){Mt(t,e)}static get deviceFriendlyName(){return this._deviceFriendlyName}static set deviceFriendlyName(e){Ft(t,e)}static initLicense(e,i){if(Dt(t,e),t.bCallInitLicense=!0,i)return jt()}static setDeviceFriendlyName(e){Ft(t,e)}static getDeviceFriendlyName(){return t._deviceFriendlyName}static getDeviceUUID(){return(async()=>(await z("dynamsoft_uuid",(async()=>{await at();let t=new At,e=q();J[e]=e=>{if(e.success)t.resolve(e.uuid);else{const i=Error(e.message);e.stack&&(i.stack=e.stack),t.reject(i)}},Z.postMessage({type:"getDeviceUUID",id:e}),Gt=await t})),Gt))()}};Vt._pLoad=new At,Vt.bPassValidation=!1,Vt.bCallInitLicense=!1,Vt._license=Ot,Vt._licenseServer=[],Vt._deviceFriendlyName="",null==nt.license&&(nt.license=St),ot.license={wasm:!0},rt.license.LicenseManager=Vt;const Wt="1.2.10";"string"!=typeof nt.std&&w(nt.std.version,Wt)<0&&(nt.std={version:Wt,path:It(St+`../../dynamsoft-capture-vision-std@${Wt}/dist/`)});var Yt=Object.freeze({__proto__:null,LicenseManager:Vt,LicenseModule:class{static getVersion(){return`3.2.21(Worker: ${it.license&&it.license.worker||"Not Loaded"}, Wasm: ${it.license&&it.license.wasm||"Not Loaded"})`}}});const Ht=t=>t&&"object"==typeof t&&"function"==typeof t.then;let Xt=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(Ht(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,Ht(t)?e=t:"function"==typeof t&&(e=new Promise(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}};class zt{constructor(t){this._cvr=t}async getMaxBufferedItems(){return await new Promise(((t,e)=>{let i=q();J[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)}},Z.postMessage({type:"cvr_getMaxBufferedItems",id:i,instanceID:this._cvr._instanceID})}))}async setMaxBufferedItems(t){return await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_setMaxBufferedItems",id:r,instanceID:this._cvr._instanceID,body:{count:t}})}))}async getBufferedCharacterItemSet(){return await new Promise(((t,e)=>{let i=q();J[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)}},Z.postMessage({type:"cvr_getBufferedCharacterItemSet",id:i,instanceID:this._cvr._instanceID})}))}}var Zt={onTaskResultsReceived:!1,onTaskResultsReceivedForDce:!1,onPredetectedRegionsReceived:!1,onLocalizedBarcodesReceived:!1,onDecodedBarcodesReceived:!1,onLocalizedTextLinesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onColourImageUnitReceived:!1,onScaledDownColourImageUnitReceived:!1,onGrayscaleImageUnitReceived:!1,onTransformedGrayscaleImageUnitReceived:!1,onEnhancedGrayscaleImageUnitReceived:!1,onBinaryImageUnitReceived:!1,onTextureDetectionResultUnitReceived:!1,onTextureRemovedGrayscaleImageUnitReceived:!1,onTextureRemovedBinaryImageUnitReceived:!1,onContoursUnitReceived:!1,onLineSegmentsUnitReceived:!1,onTextZonesUnitReceived:!1,onTextRemovedBinaryImageUnitReceived:!1,onLongLinesUnitReceived:!1,onCornersUnitReceived:!1,onCandidateQuadEdgesUnitReceived:!1,onCandidateBarcodeZonesUnitReceived:!1,onScaledUpBarcodeImageUnitReceived:!1,onDeformationResistedBarcodeImageUnitReceived:!1,onComplementedBarcodeImageUnitReceived:!1,onShortLinesUnitReceived:!1};const Kt=(t,e)=>{for(let t in e._irrRegistryState)e._irrRegistryState[t]=!1;for(let i of t._intermediateResultReceiverSet)if(i.isDce)e._irrRegistryState.onTaskResultsReceivedForDce=!0;else for(let t in i)e._irrRegistryState[t]||(e._irrRegistryState[t]=!!i[t])};let qt=class{constructor(t){this._irrRegistryState=Zt,this._cvr=t}async addResultReceiver(t){if("object"!=typeof t)throw new Error("Invalid receiver.");this._cvr._intermediateResultReceiverSet.add(t),Kt(this._cvr,this);let e=-1,i={};if(!t.isDce){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,r)=>{let n=q();J[n]=async e=>{if(e.success)return t();{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,r(t)}},Z.postMessage({type:"cvr_setIrrRegistry",id:n,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState,observedResultUnitTypes:String(e),observedTaskMap:i}})}))}async removeResultReceiver(t){return this._cvr._intermediateResultReceiverSet.delete(t),Kt(this._cvr,this),await new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success)return t();{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Z.postMessage({type:"cvr_setIrrRegistry",id:i,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState}})}))}getOriginalImage(){return this._cvr._dsImage}};const Jt="undefined"==typeof self,Qt=(()=>{if(!Jt&&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"./"})(),$t=t=>{if(null==t&&(t="./"),Jt);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};var te;null==nt.cvr&&(nt.cvr=Qt),ot.cvr={js:!0,wasm:!0,deps:["license","dip"]},rt.cvr={};const ee="1.2.10";"string"!=typeof nt.std&&w(nt.std.version,ee)<0&&(nt.std={version:ee,path:$t(Qt+`../../dynamsoft-capture-vision-std@${ee}/dist/`)});const ie="2.2.30";(!nt.dip||"string"!=typeof nt.dip&&w(nt.dip.version,ie)<0)&&(nt.dip={version:ie,path:$t(Qt+`../../dynamsoft-image-processing@${ie}/dist/`)});let re=class{static getVersion(){return this._version}};var ne,se;function oe(t,e){if(t&&t.location){const i=t.location.points;for(let t of i)t.x=t.x/e,t.y=t.y/e;oe(t.referencedItem,e)}}re._version=`2.2.30(Worker: ${null===(te=it.cvr)||void 0===te?void 0:te.worker}, Wasm: loading...`,function(t){t[t.ISS_BUFFER_EMPTY=0]="ISS_BUFFER_EMPTY",t[t.ISS_EXHAUSTED=1]="ISS_EXHAUSTED"}(ne||(ne={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=134217727]="IRUT_ALL"}(se||(se={}));var ae=Object.freeze({__proto__:null,CaptureVisionRouter:class t{constructor(){this.maxCvsSideLength=["iPhone","Android","HarmonyOS"].includes(ht.browserInfo.OS)?2048:4096,this._isa=null,this._dsImage=null,this._instanceID=void 0,this._bPauseScan=!0,this._bNeedOutputOriginalImage=!1,this._canvas=null,this._resultReceiverSet=new Set,this._isaStateListenerSet=new Set,this._resultFilterSet=new Set,this._intermediateResultReceiverSet=new Set,this._intermediateResultManager=null,this._bufferdItemsManager=null,this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1,this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._minImageCaptureInterval=0,this._averageProcessintTimeArray=[],this._averageFetchImageTimeArray=[],this._currentSettings=null,this._averageTime=999,this._compressRate=0,this._dynamsoft=!1,this.captureInParallel=!0,this.bDestroyed=!1,this._singleFrameModeCallbackBind=this._singleFrameModeCallback.bind(this),this._promiseStartScan=null}get disposed(){return this.bDestroyed}static async createInstance(){if(!rt.license)throw Error("Module `license` is not existed.");await rt.license.dynamsoft(),await at(["cvr"]);const e=new t,i=new Xt;let r=q();return J[r]=async t=>{var r;if(t.success)e._instanceID=t.instanceID,e._currentSettings=JSON.parse(t.outputSettings),re._version=`2.2.30(Worker: ${null===(r=it.cvr)||void 0===r?void 0:r.worker}, Wasm: ${t.version})`,0===ht.bSupportDce4Module&&(e._intermediateResultManager=e.getIntermediateResultManager(!0)),i.resolve(e);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),i.reject(e)}},Z.postMessage({type:"cvr_createInstance",id:r}),i}async _singleFrameModeCallback(t){this._isa.getCameraView().setScanLaserVisible(!0);for(let e of this._resultReceiverSet)this._bNeedOutputOriginalImage&&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 this._resultReceiverSet)t.isDce&&t.onCapturedResultReceived(i,{isDetectVerifyOpen:!1,isNormalizeVerifyOpen:!1,isBarcodeVerifyOpen:!1,isLabelVerifyOpen:!1});const r={originalImageHashId:i.originalImageHashId,originalImageTag:i.originalImageTag,errorCode:i.errorCode,errorString:i.errorString};for(let e of this._resultReceiverSet)if(e.onDecodedBarcodesReceived&&i.barcodeResultItems&&e.onDecodedBarcodesReceived(Object.assign(Object.assign({},r),{barcodeResultItems:i.barcodeResultItems})),e.onRecognizedTextLinesReceived&&i.textLineResultItems&&e.onRecognizedTextLinesReceived(Object.assign(Object.assign({},r),{textLineResultItems:i.textLineResultItems})),e.onDetectedQuadsReceived&&i.detectedQuadResultItems&&e.onDetectedQuadsReceived(Object.assign(Object.assign({},r),{detectedQuadResultItems:i.detectedQuadResultItems})),e.onNormalizedImagesReceived&&i.normalizedImageResultItems&&e.onNormalizedImagesReceived(Object.assign(Object.assign({},r),{normalizedImageResultItems:i.normalizedImageResultItems})),e.onParsedResultsReceived&&i.parsedResultItems&&e.onParsedResultsReceived(Object.assign(Object.assign({},r),{parsedResultItems:i.parsedResultItems})),e.onCapturedResultReceived&&!e.isDce){if(this._bNeedOutputOriginalImage){const e=i.items.findIndex((t=>1===t.type));-1!==e&&(i.items[e].imageData=t)}e.onCapturedResultReceived(i)}}setInput(t){if(this._checkIsDisposed(),t){if(this._isa=t,t.isCameraEnhancer){this._intermediateResultManager&&(this._isa._intermediateResultReceiver.isDce=!0,this._intermediateResultManager.addResultReceiver(this._isa._intermediateResultReceiver));const t=this._isa.getCameraView();if(t){const e=t._capturedResultReceiver;e.isDce=!0,this._resultReceiverSet.add(e)}}}else this._isa=null}getInput(){return this._isa}addImageSourceStateListener(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid ISA state listener.");t&&Object.keys(t)&&this._isaStateListenerSet.add(t)}removeImageSourceStateListener(t){return this._checkIsDisposed(),this._isaStateListenerSet.delete(t)}addResultReceiver(t){if(this._checkIsDisposed(),"object"!=typeof t)throw new Error("Invalid receiver.");t&&Object.keys(t).length&&(this._resultReceiverSet.add(t),this._setCrrRegistry())}removeResultReceiver(t){this._checkIsDisposed(),this._resultReceiverSet.delete(t),this._setCrrRegistry()}async _setCrrRegistry(){const t={onCapturedResultReceived:!1,onDecodedBarcodesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onParsedResultsReceived:!1};for(let e of this._resultReceiverSet)e.isDce||(t.onCapturedResultReceived=!!e.onCapturedResultReceived,t.onDecodedBarcodesReceived=!!e.onDecodedBarcodesReceived,t.onRecognizedTextLinesReceived=!!e.onRecognizedTextLinesReceived,t.onDetectedQuadsReceived=!!e.onDetectedQuadsReceived,t.onNormalizedImagesReceived=!!e.onNormalizedImagesReceived,t.onParsedResultsReceived=!!e.onParsedResultsReceived);const e=new Xt;let i=q();return J[i]=async t=>{if(t.success)e.resolve();else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject()}},Z.postMessage({type:"cvr_setCrrRegistry",id:i,instanceID:this._instanceID,body:{receiver:JSON.stringify(t)}}),e}async addResultFilter(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid filter.");if(t&&Object.keys(t)){this._resultFilterSet.add(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}}async removeResultFilter(t){this._checkIsDisposed(),this._resultFilterSet.delete(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}_handleFilterSwitch(){this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1;for(let t of this._resultFilterSet)t.isResultCrossVerificationEnabled(lt.CRIT_BARCODE)&&(this._bOpenBarcodeVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_TEXT_LINE)&&(this._bOpenLabelVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_DETECTED_QUAD)&&(this._bOpenDetectVerify=!0),t.isResultCrossVerificationEnabled(lt.CRIT_NORMALIZED_IMAGE)&&(this._bOpenNormalizeVerify=!0)}async startCapturing(t){var e,i;if(this._checkIsDisposed(),!this._bPauseScan)return;if(!this._isa)throw new Error("'ImageSourceAdapter' is not set. call 'setInput' before 'startCapturing'");t||(t=this._currentSettings.CaptureVisionTemplates[0].Name);const r=await this.containsTask(t);return await at(r),r.includes("dlr")&&!(null===(e=rt.dlr)||void 0===e?void 0:e.bLoadConfusableCharsData)&&await(null===(i=rt.dlr)||void 0===i?void 0:i.loadRecognitionData("ConfusableChars",nt.dlr)),this._isa.isCameraEnhancer&&(r.includes("ddn")?this._isa.setPixelFormat(s.IPF_ABGR_8888):this._isa.setPixelFormat(s.IPF_GRAYSCALED)),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode?(this._templateName=t,void this._isa.on("singleFrameAcquired",this._singleFrameModeCallbackBind)):(this._isa.getColourChannelUsageType()===n.CCUT_AUTO&&this._isa.setColourChannelUsageType(r.includes("ddn")?n.CCUT_FULL_CHANNEL:n.CCUT_Y_CHANNEL_ONLY),this._promiseStartScan&&this._promiseStartScan.isPending?this._promiseStartScan:(this._promiseStartScan=new Xt(((e,i)=>{if(this.disposed)return;let r=q();J[r]=async r=>{if(this._promiseStartScan&&!this._promiseStartScan.isFulfilled){if(!r.success){let t=new Error(r.message);return t.stack=r.stack+"\n"+t.stack,i(t)}for(let t of this._resultFilterSet)await this.addResultFilter(t);this._bPauseScan=!1,this._bNeedOutputOriginalImage=r.bNeedOutputOriginalImage,this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((async()=>{-1!==this._minImageCaptureInterval&&this._isa.startFetching(),this._loopReadVideo(t),e()}),0),this._isa.isCameraEnhancer&&this._isa.getCameraView().setScanLaserVisible(!0)}},Z.postMessage({type:"cvr_startCapturing",id:r,instanceID:this._instanceID,body:{templateName:t}})})),await this._promiseStartScan))}stopCapturing(){this._checkIsDisposed(),this._isa&&(this._isa.isCameraEnhancer&&(this._isa.getCameraView().setScanLaserVisible(!1),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode)?this._isa.off("singleFrameAcquired",this._singleFrameModeCallbackBind):(this._isa.stopFetching(),this._clearVerifyList(),this._averageProcessintTimeArray=[],this._averageTime=999,this._bPauseScan=!0,this._promiseStartScan=null,this._isa.setColourChannelUsageType(n.CCUT_AUTO)))}async _clearVerifyList(){let t=q();const e=new Xt;return J[t]=async t=>{if(t.success)return e.resolve();{let i=new Error(t.message);return i.stack=t.stack+"\n"+i.stack,e.reject(i)}},Z.postMessage({type:"cvr_clearVerifyList",id:t,instanceID:this._instanceID}),e}async _getIntermediateResult(){this._checkIsDisposed();let t=q();const e=new Xt;return J[t]=async t=>{if(t.success)e.resolve(t.result);else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject(i)}},Z.postMessage({type:"cvr_getIntermediateResult",id:t,instanceID:this._instanceID}),e}async containsTask(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(JSON.parse(t.tasks));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_containsTask",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async _loopReadVideo(e){if(this._dynamsoft=!0,this.disposed||this._bPauseScan)return;if(this._isa.isBufferEmpty())if(this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(ne.ISS_BUFFER_EMPTY);else if(!this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(ne.ISS_EXHAUSTED);if(-1===this._minImageCaptureInterval||this._isa.isBufferEmpty())try{this._isa.isBufferEmpty()&&t._onLog&&t._onLog("buffer is empty so fetch image"),t._onLog&&t._onLog(`DCE: start fetching a frame: ${Date.now()}`),this._dsImage=this._isa.fetchImage(),t._onLog&&t._onLog(`DCE: finish fetching a frame: ${Date.now()}`),this._isa.setImageFetchInterval(this._averageTime)}catch(i){return void this._reRunCurrnetFunc(e)}else if(this._isa.setImageFetchInterval(this._averageTime-(this._dsImage&&this._dsImage.tag?this._dsImage.tag.timeSpent:0)),this._dsImage=this._isa.getImage(),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 this._resultReceiverSet)this._bNeedOutputOriginalImage&&t.onOriginalImageResultReceived&&t.onOriginalImageResultReceived({imageData:this._dsImage});const i=Date.now();this._captureDsimage(this._dsImage,e).then((async r=>{if(t._onLog&&t._onLog("no js handle time: "+(Date.now()-i)),this._bPauseScan)return void this._reRunCurrnetFunc(e);r.originalImageTag=this._dsImage.tag?this._dsImage.tag:null;for(let e of this._resultReceiverSet)if(e.isDce){const i=Date.now();if(e.onCapturedResultReceived(r,{isDetectVerifyOpen:this._bOpenDetectVerify,isNormalizeVerifyOpen:this._bOpenNormalizeVerify,isBarcodeVerifyOpen:this._bOpenBarcodeVerify,isLabelVerifyOpen:this._bOpenLabelVerify}),t._onLog){const e=Date.now()-i;e>10&&t._onLog(`draw result time: ${e}`)}}const n={originalImageHashId:r.originalImageHashId,originalImageTag:r.originalImageTag,errorCode:r.errorCode,errorString:r.errorString};for(let t of this._resultReceiverSet)t.onDecodedBarcodesReceived&&r.barcodeResultItems&&t.onDecodedBarcodesReceived(Object.assign(Object.assign({},n),{barcodeResultItems:r.barcodeResultItems.filter((t=>!t.isFilter))})),t.onRecognizedTextLinesReceived&&r.textLineResultItems&&t.onRecognizedTextLinesReceived(Object.assign(Object.assign({},n),{textLineResultItems:r.textLineResultItems.filter((t=>!t.isFilter))})),t.onDetectedQuadsReceived&&r.detectedQuadResultItems&&t.onDetectedQuadsReceived(Object.assign(Object.assign({},n),{detectedQuadResultItems:r.detectedQuadResultItems.filter((t=>!t.isFilter))})),t.onNormalizedImagesReceived&&r.normalizedImageResultItems&&t.onNormalizedImagesReceived(Object.assign(Object.assign({},n),{normalizedImageResultItems:r.normalizedImageResultItems.filter((t=>!t.isFilter))})),t.onParsedResultsReceived&&r.parsedResultItems&&t.onParsedResultsReceived(Object.assign(Object.assign({},n),{parsedResultItems:r.parsedResultItems.filter((t=>!t.isFilter))})),t.onCapturedResultReceived&&!t.isDce&&(r.items=r.items.filter((t=>!t.isFilter)),r.barcodeResultItems&&(r.barcodeResultItems=r.barcodeResultItems.filter((t=>!t.isFilter))),r.textLineResultItems&&(r.textLineResultItems=r.textLineResultItems.filter((t=>!t.isFilter))),r.detectedQuadResultItems&&(r.detectedQuadResultItems=r.detectedQuadResultItems.filter((t=>!t.isFilter))),r.normalizedImageResultItems&&(r.normalizedImageResultItems=r.normalizedImageResultItems.filter((t=>!t.isFilter))),r.parsedResultItems&&(r.parsedResultItems=r.parsedResultItems.filter((t=>!t.isFilter))),t.onCapturedResultReceived(r));const s=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()-s;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=>{this._isa.stopFetching(),this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._isa.startFetching(),this._loopReadVideo(e)}),Math.max(this._minImageCaptureInterval,1e3)),"platform error"!==t.message&&setTimeout((()=>{throw t}),0)}))}_reRunCurrnetFunc(t){this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._loopReadVideo(t)}),0)}async capture(t,e){var i,r;this._checkIsDisposed(),e||(e=this._currentSettings.CaptureVisionTemplates[0].Name);const n=await this.containsTask(e);let s;if(await at(n),n.includes("dlr")&&!(null===(i=rt.dlr)||void 0===i?void 0:i.bLoadConfusableCharsData)&&await(null===(r=rt.dlr)||void 0===r?void 0:r.loadRecognitionData("ConfusableChars",nt.dlr)),this._dynamsoft=!1,u(t))s=await this._captureDsimage(t,e);else if("string"==typeof t)s="data:image/"==t.substring(0,11)?await this._captureBase64(t,e):await this._captureUrl(t,e);else if(t instanceof Blob)s=await this._captureBlob(t,e);else if(t instanceof HTMLImageElement)s=await this._captureImage(t,e);else if(t instanceof HTMLCanvasElement)s=await this._captureCanvas(t,e);else{if(!(t instanceof HTMLVideoElement))throw new TypeError("'capture(imageOrFile, templateName)': Type of 'imageOrFile' should be 'DSImageData', 'Url', 'Base64', 'Blob', 'HTMLImageElement', 'HTMLCanvasElement', 'HTMLVideoElement'.");s=await this._captureVideo(t,e)}return s}async _captureDsimage(t,e){return await this._captureInWorker(t,e)}async _captureUrl(t,e){let i=await y(t,"blob");return await this._captureBlob(i,e)}async _captureBase64(t,e){t=t.substring(t.indexOf(",")+1);let i=atob(t),r=i.length,n=new Uint8Array(r);for(;r--;)n[r]=i.charCodeAt(r);return await this._captureBlob(new Blob([n]),e)}async _captureBlob(t,e){let i=null,r=null;if("undefined"!=typeof createImageBitmap)try{i=await createImageBitmap(t)}catch(t){}i||(r=await async function(t){return await new Promise(((e,i)=>{let r=URL.createObjectURL(t),n=new Image;n.src=r,n.onload=()=>{URL.revokeObjectURL(n.dbrObjUrl),e(n)},n.onerror=t=>{i(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}}))}(t));let n=await this._captureImage(i||r,e);return i&&i.close(),n}async _captureImage(t,e){let i,r,n=t instanceof HTMLImageElement?t.naturalWidth:t.width,s=t instanceof HTMLImageElement?t.naturalHeight:t.height,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),t.dbrObjUrl&&URL.revokeObjectURL(t.dbrObjUrl),await this._captureCanvas(a,e)}async _captureCanvas(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";if([t.width,t.height].includes(0))throw Error("The width or height of the 'canvas' is 0.");const i=t.ctx2d||t.getContext("2d",{willReadFrequently:!0}),r={bytes:Uint8Array.from(i.getImageData(0,0,t.width,t.height).data),width:t.width,height:t.height,stride:4*t.width,format:10};return await this._captureInWorker(r,e)}async _captureVideo(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";let i,r,n=t.videoWidth,s=t.videoHeight,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),await this._captureCanvas(a,e)}async _captureInWorker(e,i){const{bytes:r,width:n,height:s,stride:o,format:a}=e;let h=q();const l=new Xt;return J[h]=async i=>{var r,n;if(!i.success){let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,l.reject(t)}{const s=Date.now();t._onLog&&(t._onLog(`get result time from worker: ${s}`),t._onLog("worker to main time consume: "+(s-i.workerReturnMsgTime)));try{const t=i.captureResult;e.bytes=i.bytes;for(let i of t.items)0!==this._compressRate&&oe(i,this._compressRate),i.type===lt.CRIT_ORIGINAL_IMAGE?i.imageData=e:i.type===lt.CRIT_NORMALIZED_IMAGE?null===(r=rt.ddn)||void 0===r||r.handleNormalizedImageResultItem(i):i.type===lt.CRIT_PARSED_RESULT&&(null===(n=rt.dcp)||void 0===n||n.handleParsedResultItem(i));if(this._dynamsoft)for(let e of this._resultFilterSet)e.onDecodedBarcodesReceived(t.items),e.onRecognizedTextLinesReceived(t.items),e.onDetectedQuadsReceived(t.items),e.onNormalizedImagesReceived(t.items);const s=function(t){const e={barcodeResultItems:[],textLineResultItems:[],detectedQuadResultItems:[],normalizedImageResultItems:[],parsedResultItems:[]};return t.items.forEach((t=>{t.type===lt.CRIT_BARCODE?e.barcodeResultItems.push(t):t.type===lt.CRIT_TEXT_LINE?e.textLineResultItems.push(t):t.type===lt.CRIT_DETECTED_QUAD?e.detectedQuadResultItems.push(t):t.type===lt.CRIT_NORMALIZED_IMAGE?e.normalizedImageResultItems.push(t):t.type===lt.CRIT_PARSED_RESULT&&e.parsedResultItems.push(t)})),e}(t);if(s.barcodeResultItems.length&&(t.barcodeResultItems=s.barcodeResultItems),s.textLineResultItems.length&&(t.textLineResultItems=s.textLineResultItems),s.detectedQuadResultItems.length&&(t.detectedQuadResultItems=s.detectedQuadResultItems),s.normalizedImageResultItems.length&&(t.normalizedImageResultItems=s.normalizedImageResultItems),s.parsedResultItems.length&&(t.parsedResultItems=s.parsedResultItems),!this._bPauseScan||!this._dynamsoft){const i=t.intermediateResult;if(i){let t=0;for(let r of this._intermediateResultReceiverSet){t++;for(let n of i){if("onTaskResultsReceived"===n.info.callbackName){for(let t of n.intermediateResultUnits)t.originalImageTag=e.tag?e.tag:null;r[n.info.callbackName]&&r[n.info.callbackName]({intermediateResultUnits:n.intermediateResultUnits},n.info)}else r[n.info.callbackName]&&r[n.info.callbackName](n.result,n.info);t===this._intermediateResultReceiverSet.size&&delete n.info.callbackName}}}t&&t.intermediateResult&&delete t.intermediateResult}return this._compressRate=0,l.resolve(t)}catch(i){return l.reject(i)}}},t._onLog&&t._onLog(`send buffer to worker: ${Date.now()}`),Z.postMessage({type:"cvr_capture",id:h,instanceID:this._instanceID,body:{bytes:r,width:n,height:s,stride:o,format:a,templateName:i||"",dynamsoft:this._dynamsoft}},[r.buffer]),l}async initSettings(t){return this._checkIsDisposed(),t&&["string","object"].includes(typeof t)?("string"==typeof t?t.startsWith("{")?this._currentSettings=JSON.parse(t):t=await y(t,"text"):"object"==typeof t&&(this._currentSettings=t,t=JSON.stringify(t)),await new Promise(((e,i)=>{let r=q();J[r]=async r=>{if(r.success){const n=JSON.parse(r.response);if(0!==n.exception){let t=new Error(n.description?n.description:"Init Settings Failed.");return t.errorCode=n.exception,i(t)}let s=[],o=JSON.parse(t).CaptureVisionTemplates;for(let t=0;t{let r=q();J[r]=async t=>{if(t.success){const r=JSON.parse(t.settings);if(0!==r.errorCode){let t=new Error(r.errorString);return t.errorCode=r.errorCode,i(t)}return delete r.errorCode,delete r.errorString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_outputSettings",id:r,instanceID:this._instanceID,body:{templateName:t||"*"}})}))}async outputSettingsToFile(t,e,i){const r=await this.outputSettings(t),n=new Blob([JSON.stringify(r,null,2,(function(t,e){return e instanceof Array?JSON.stringify(e):e}),2)],{type:"application/json"});if(i){const t=document.createElement("a");t.href=URL.createObjectURL(n),e.endsWith(".json")&&(e=e.replace(".json","")),t.download=`${e}.json`,t.onclick=()=>{setTimeout((()=>{URL.revokeObjectURL(t.href)}),500)},t.click()}return n}async getSimplifiedSettings(t){this._checkIsDisposed(),t||(t=this._currentSettings.CaptureVisionTemplates[0].Name);const e=await this.containsTask(t);return await at(e),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success){const r=JSON.parse(t.settings,((t,e)=>E&&"barcodeFormatIds"===t?BigInt(e):e));if(r.minImageCaptureInterval=this._minImageCaptureInterval,0!==r.code){let t=new Error(r.codeString);return t.errorCode=r.errorCode,i(t)}return delete r.code,delete r.codeString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_getSimplifiedSettings",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async updateSettings(t,e){this._checkIsDisposed();const i=await this.containsTask(t);return await at(i),await new Promise(((i,r)=>{let n=q();J[n]=async t=>{if(t.success){const n=JSON.parse(t.response);if(e.minImageCaptureInterval&&e.minImageCaptureInterval>=-1&&(this._minImageCaptureInterval=e.minImageCaptureInterval),this._bNeedOutputOriginalImage=t.bNeedOutputOriginalImage,0!==n.exception){let t=new Error(n.description?n.description:"Update Settings Failed.");return t.errorCode=n.exception,r(t)}return this._currentSettings=await this.outputSettings("*"),i(n)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,r(e)}},Z.postMessage({type:"cvr_updateSettings",id:n,instanceID:this._instanceID,body:{settings:e,templateName:t}})}))}async resetSettings(){return this._checkIsDisposed(),await new Promise(((t,e)=>{let i=q();J[i]=async i=>{if(i.success){const r=JSON.parse(i.response);if(0!==r.exception){let t=new Error(r.description?r.description:"Reset Settings Failed.");return t.errorCode=r.exception,e(t)}return this._currentSettings=await this.outputSettings("*"),t(r)}{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},Z.postMessage({type:"cvr_resetSettings",id:i,instanceID:this._instanceID})}))}getBufferedItemsManager(){return this._bufferdItemsManager||(this._bufferdItemsManager=new zt(this)),this._bufferdItemsManager}getIntermediateResultManager(t){if(this._checkIsDisposed(),!t&&0!==ht.bSupportIRTModule)throw new Error("The current license does not support the use of intermediate results.");return this._intermediateResultManager||(this._intermediateResultManager=new qt(this)),this._intermediateResultManager}contains(t,e){return function(t,e){let i=e.x,r=e.y,n=t[0].x,s=t[0].y,o=t[1].x,a=t[1].y,h=t[2].x,l=t[2].y,c=t[3].x,u=t[3].y,d=p(i,r,n,s,o,a),f=p(i,r,o,a,h,l),g=p(i,r,h,l,c,u),m=p(i,r,c,u,n,s);function p(t,e,i,r,n,s){return(t-i)*(s-r)-(e-r)*(n-i)}return d>=0&&f>=0&&g>=0&&m>=0||d<=0&&f<=0&&g<=0&&m<=0}(t,e)}async parseRequiredResources(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(JSON.parse(t.resources));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_parseRequiredResources",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async dispose(){this._checkIsDisposed(),this._promiseStartScan&&this.stopCapturing(),this._isa=null,this._resultReceiverSet.clear(),this._isaStateListenerSet.clear(),this._resultFilterSet.clear(),this.bDestroyed=!0;let t=q();J[t]=t=>{if(!t.success){let e=new Error(t.message);throw e.stack=t.stack+"\n"+e.stack,e}},Z.postMessage({type:"cvr_dispose",id:t,instanceID:this._instanceID})}async _enableResultCrossVerification(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_enableResultCrossVerification",id:r,instanceID:this._instanceID,body:{verificationEnabled:t}})}))}async _enableResultDeduplication(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_enableResultDeduplication",id:r,instanceID:this._instanceID,body:{duplicateFilterEnabled:t}})}))}async _setDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_setDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{duplicateForgetTime:t}})}))}async _getDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=q();J[r]=async t=>{if(t.success)return e(t.time);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},Z.postMessage({type:"cvr_getDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{type:t}})}))}async _setThresholdValue(t,e,i){return await at("ddn"),await new Promise(((r,n)=>{let s=q();J[s]=async t=>{if(t.success)return r();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,n(e)}},Z.postMessage({type:"ddn_setThresholdValue",id:s,instanceID:this._instanceID,body:{threshold:t,leftLimit:e,rightLimit:i}})}))}_checkIsDisposed(){if(this.disposed)throw new Error('"CaptureVisionRouter" instance has been disposed')}},CaptureVisionRouterModule:re,CapturedResultReceiver:class{constructor(){this.onCapturedResultReceived=null,this.onOriginalImageResultReceived=null}},get EnumImageSourceState(){return ne},IntermediateResultManager:qt,IntermediateResultReceiver:class{constructor(){this._observedResultUnitTypes=_t.IRUT_ALL,this._observedTaskMap=new Map,this._parameters={setObservedResultUnitTypes:t=>{this._observedResultUnitTypes=t},getObservedResultUnitTypes:()=>this._observedResultUnitTypes,isResultUnitTypeObserved:t=>!!(t&this._observedResultUnitTypes),addObservedTask:t=>{this._observedTaskMap.set(t,!0)},removeObservedTask:t=>{this._observedTaskMap.set(t,!1)},isTaskObserved:t=>0===this._observedTaskMap.size||!!this._observedTaskMap.get(t)},this.onTaskResultsReceived=null,this.onPredetectedRegionsReceived=null,this.onColourImageUnitReceived=null,this.onScaledDownColourImageUnitReceived=null,this.onGrayscaleImageUnitReceived=null,this.onTransformedGrayscaleImageUnitReceived=null,this.onEnhancedGrayscaleImageUnitReceived=null,this.onBinaryImageUnitReceived=null,this.onTextureDetectionResultUnitReceived=null,this.onTextureRemovedGrayscaleImageUnitReceived=null,this.onTextureRemovedBinaryImageUnitReceived=null,this.onContoursUnitReceived=null,this.onLineSegmentsUnitReceived=null,this.onTextZonesUnitReceived=null,this.onTextRemovedBinaryImageUnitReceived=null,this.onShortLinesUnitReceived=null}getObservationParameters(){return this._parameters}}});const he="undefined"==typeof self,le=(()=>{if(!he&&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"./"})();null==nt.dce&&(nt.dce=le),ot.dce={wasm:!1,js:!1},rt.dce={};let ce,ue,de,fe,ge;function me(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function pe(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}"function"==typeof SuppressedError&&SuppressedError,"undefined"!=typeof navigator&&(ce=navigator,ue=ce.userAgent,de=ce.platform,fe=ce.mediaDevices),function(){if(!he){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:ce.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:de,search:"Win"},Mac:{str:de},Linux:{str:de}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||ue,o=n.search||e,a=n.verStr||ue,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||ue,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=ue.indexOf("Windows NT")&&(n="HarmonyOS"),ge={browser:i,version:r,OS:n}}he&&(ge={browser:"ssr",version:0,OS:"ssr"})}();const _e="undefined"!=typeof WebAssembly&&ue&&!(/Safari/.test(ue)&&!/Chrome/.test(ue)&&/\(.+\s11_2_([2-6]).*\)/.test(ue)),ve=!("undefined"==typeof Worker),ye=!(!fe||!fe.getUserMedia),we=async()=>{let t=!1;if(ye)try{(await fe.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===ge.browser&&ge.version>66||"Safari"===ge.browser&&ge.version>13||"OPR"===ge.browser&&ge.version>43||"Edge"===ge.browser&&ge.version;var Ee={653:(t,e,i)=>{var r,n,s,o,a,h,l,c,u,d,f,g,m,p,_,v,y,w,E,C,T,b=b||{version:"5.2.1"};if(e.fabric=b,"undefined"!=typeof document&&"undefined"!=typeof window)document instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document)?b.document=document:b.document=document.implementation.createHTMLDocument(""),b.window=window;else{var S=new(i(192).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;b.document=S.document,b.jsdomImplForWrapper=i(898).implForWrapper,b.nodeCanvas=i(245).Canvas,b.window=S,DOMParser=b.window.DOMParser}function I(t,e){var i=t.canvas,r=e.targetCanvas,n=r.getContext("2d");n.translate(0,r.height),n.scale(1,-1);var s=i.height-r.height;n.drawImage(i,0,s,r.width,r.height,0,0,r.width,r.height)}function x(t,e){var i=e.targetCanvas.getContext("2d"),r=e.destinationWidth,n=e.destinationHeight,s=r*n*4,o=new Uint8Array(this.imageBuffer,0,s),a=new Uint8ClampedArray(this.imageBuffer,0,s);t.readPixels(0,0,r,n,t.RGBA,t.UNSIGNED_BYTE,o);var h=new ImageData(a,r,n);i.putImageData(h,0,0)}b.isTouchSupported="ontouchstart"in b.window||"ontouchstart"in b.document||b.window&&b.window.navigator&&b.window.navigator.maxTouchPoints>0,b.isLikelyNode="undefined"!=typeof Buffer&&"undefined"==typeof window,b.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],b.DPI=96,b.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",b.commaWsp="(?:\\s+,?\\s*|,\\s*)",b.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,b.reNonWord=/[ \n\.,;!\?\-]/,b.fontPaths={},b.iMatrix=[1,0,0,1,0,0],b.svgNS="http://www.w3.org/2000/svg",b.perfLimitSizeTotal=2097152,b.maxCacheSideLimit=4096,b.minCacheSideLimit=256,b.charWidthsCache={},b.textureSize=2048,b.disableStyleCopyPaste=!1,b.enableGLFiltering=!0,b.devicePixelRatio=b.window.devicePixelRatio||b.window.webkitDevicePixelRatio||b.window.mozDevicePixelRatio||1,b.browserShadowBlurConstant=1,b.arcToSegmentsCache={},b.boundsOfCurveCache={},b.cachesBoundsOfCurve=!0,b.forceGLPutImageData=!1,b.initFilterBackend=function(){return b.enableGLFiltering&&b.isWebglSupported&&b.isWebglSupported(b.textureSize)?(console.log("max texture size: "+b.maxTextureSize),new b.WebglFilterBackend({tileSize:b.textureSize})):b.Canvas2dFilterBackend?new b.Canvas2dFilterBackend:void 0},"undefined"!=typeof document&&"undefined"!=typeof window&&(window.fabric=b),function(){function t(t,e){if(this.__eventListeners[t]){var i=this.__eventListeners[t];e?i[i.indexOf(e)]=!1:b.util.array.fill(i,!1)}}function e(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);this.on(t,i)}b.Observable={fire:function(t,e){if(!this.__eventListeners)return this;var i=this.__eventListeners[t];if(!i)return this;for(var r=0,n=i.length;r-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))},complexity:function(){return this._objects.reduce((function(t,e){return t+(e.complexity?e.complexity():0)}),0)}},b.CommonMethods={_setOptions:function(t){for(var e in t)this.set(e,t[e])},_initGradient:function(t,e){!t||!t.colorStops||t instanceof b.Gradient||this.set(e,new b.Gradient(t))},_initPattern:function(t,e,i){!t||!t.source||t instanceof b.Pattern?i&&i():this.set(e,new b.Pattern(t,i))},_setObject:function(t){for(var e in t)this._set(e,t[e])},set:function(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this},_set:function(t,e){this[t]=e},toggle:function(t){var e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this},get:function(t){return this[t]}},r=e,n=Math.sqrt,s=Math.atan2,o=Math.pow,a=Math.PI/180,h=Math.PI/2,b.util={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/h){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/h){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*a},radiansToDegrees:function(t){return t/a},rotatePoint:function(t,e,i){var r=new b.Point(t.x-e.x,t.y-e.y),n=b.util.rotateVector(r,i);return new b.Point(n.x,n.y).addEquals(e)},rotateVector:function(t,e){var i=b.util.sin(e),r=b.util.cos(e);return{x:t.x*r-t.y*i,y:t.x*i+t.y*r}},createVector:function(t,e){return new b.Point(e.x-t.x,e.y-t.y)},calcAngleBetweenVectors:function(t,e){return Math.acos((t.x*e.x+t.y*e.y)/(Math.hypot(t.x,t.y)*Math.hypot(e.x,e.y)))},getHatVector:function(t){return new b.Point(t.x,t.y).multiply(1/Math.hypot(t.x,t.y))},getBisector:function(t,e,i){var r=b.util.createVector(t,e),n=b.util.createVector(t,i),s=b.util.calcAngleBetweenVectors(r,n),o=s*(0===b.util.calcAngleBetweenVectors(b.util.rotateVector(r,s),n)?1:-1)/2;return{vector:b.util.getHatVector(b.util.rotateVector(r,o)),angle:s}},projectStrokeOnPoints:function(t,e,i){var r=[],n=e.strokeWidth/2,s=e.strokeUniform?new b.Point(1/e.scaleX,1/e.scaleY):new b.Point(1,1),o=function(t){var e=n/Math.hypot(t.x,t.y);return new b.Point(t.x*e*s.x,t.y*e*s.y)};return t.length<=1||t.forEach((function(a,h){var l,c,u=new b.Point(a.x,a.y);0===h?(c=t[h+1],l=i?o(b.util.createVector(c,u)).addEquals(u):t[t.length-1]):h===t.length-1?(l=t[h-1],c=i?o(b.util.createVector(l,u)).addEquals(u):t[0]):(l=t[h-1],c=t[h+1]);var d,f,g=b.util.getBisector(u,l,c),m=g.vector,p=g.angle;if("miter"===e.strokeLineJoin&&(d=-n/Math.sin(p/2),f=new b.Point(m.x*d*s.x,m.y*d*s.y),Math.hypot(f.x,f.y)/n<=e.strokeMiterLimit))return r.push(u.add(f)),void r.push(u.subtract(f));d=-n*Math.SQRT2,f=new b.Point(m.x*d*s.x,m.y*d*s.y),r.push(u.add(f)),r.push(u.subtract(f))})),r},transformPoint:function(t,e,i){return i?new b.Point(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new b.Point(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var i=0;i0&&(e>r?e-=r:e=0,i>r?i-=r:i=0);var n,s=!0,o=t.getImageData(e,i,2*r||1,2*r||1),a=o.data.length;for(n=3;n=n?s-n:2*Math.PI-(n-s)}function s(t,e,i){for(var s=i[1],o=i[2],a=i[3],h=i[4],l=i[5],c=function(t,e,i,s,o,a,h){var l=Math.PI,c=h*l/180,u=b.util.sin(c),d=b.util.cos(c),f=0,g=0,m=-d*t*.5-u*e*.5,p=-d*e*.5+u*t*.5,_=(i=Math.abs(i))*i,v=(s=Math.abs(s))*s,y=p*p,w=m*m,E=_*v-_*y-v*w,C=0;if(E<0){var T=Math.sqrt(1-E/(_*v));i*=T,s*=T}else C=(o===a?-1:1)*Math.sqrt(E/(_*y+v*w));var S=C*i*p/s,I=-C*s*m/i,x=d*S-u*I+.5*t,A=u*S+d*I+.5*e,R=n(1,0,(m-S)/i,(p-I)/s),O=n((m-S)/i,(p-I)/s,(-m-S)/i,(-p-I)/s);0===a&&O>0?O-=2*l:1===a&&O<0&&(O+=2*l);for(var D=Math.ceil(Math.abs(O/l*2)),L=[],M=O/D,F=8/3*Math.sin(M/4)*Math.sin(M/4)/Math.sin(M/2),P=R+M,k=0;kC)for(var S=1,I=m.length;S2;for(e=e||0,l&&(a=t[2].xt[i-2].x?1:n.x===t[i-2].x?0:-1,h=n.y>t[i-2].y?1:n.y===t[i-2].y?0:-1),r.push(["L",n.x+a*e,n.y+h*e]),r},b.util.getPathSegmentsInfo=d,b.util.getBoundsOfCurve=function(e,i,r,n,s,o,a,h){var l;if(b.cachesBoundsOfCurve&&(l=t.call(arguments),b.boundsOfCurveCache[l]))return b.boundsOfCurveCache[l];var c,u,d,f,g,m,p,_,v=Math.sqrt,y=Math.min,w=Math.max,E=Math.abs,C=[],T=[[],[]];u=6*e-12*r+6*s,c=-3*e+9*r-9*s+3*a,d=3*r-3*e;for(var S=0;S<2;++S)if(S>0&&(u=6*i-12*n+6*o,c=-3*i+9*n-9*o+3*h,d=3*n-3*i),E(c)<1e-12){if(E(u)<1e-12)continue;0<(f=-d/u)&&f<1&&C.push(f)}else(p=u*u-4*d*c)<0||(0<(g=(-u+(_=v(p)))/(2*c))&&g<1&&C.push(g),0<(m=(-u-_)/(2*c))&&m<1&&C.push(m));for(var I,x,A,R=C.length,O=R;R--;)I=(A=1-(f=C[R]))*A*A*e+3*A*A*f*r+3*A*f*f*s+f*f*f*a,T[0][R]=I,x=A*A*A*i+3*A*A*f*n+3*A*f*f*o+f*f*f*h,T[1][R]=x;T[0][O]=e,T[1][O]=i,T[0][O+1]=a,T[1][O+1]=h;var D=[{x:y.apply(null,T[0]),y:y.apply(null,T[1])},{x:w.apply(null,T[0]),y:w.apply(null,T[1])}];return b.cachesBoundsOfCurve&&(b.boundsOfCurveCache[l]=D),D},b.util.getPointOnPath=function(t,e,i){i||(i=d(t));for(var r=0;e-i[r].length>0&&r1e-4;)i=h(s),n=s,(r=o(l.x,l.y,i.x,i.y))+a>e?(s-=c,c/=2):(l=i,s+=c,a+=r);return i.angle=u(n),i}(s,e)}},b.util.transformPath=function(t,e,i){return i&&(e=b.util.multiplyTransformMatrices(e,[1,0,0,1,-i.x,-i.y])),t.map((function(t){for(var i=t.slice(0),r={},n=1;n=e}))}}}(),function(){function t(e,i,r){if(r)if(!b.isLikelyNode&&i instanceof Element)e=i;else if(i instanceof Array){e=[];for(var n=0,s=i.length;n57343)return t.charAt(e);if(55296<=i&&i<=56319){if(t.length<=e+1)throw"High surrogate without following low surrogate";var r=t.charCodeAt(e+1);if(56320>r||r>57343)throw"High surrogate without following low surrogate";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw"Low surrogate without preceding high surrogate";var n=t.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}b.util.string={camelize:function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")},graphemeSplit:function(e){var i,r=0,n=[];for(r=0;r-1?t.prototype[n]=function(t){return function(){var i=this.constructor.superclass;this.constructor.superclass=r;var n=e[t].apply(this,arguments);if(this.constructor.superclass=i,"initialize"!==t)return n}}(n):t.prototype[n]=e[n],i&&(e.toString!==Object.prototype.toString&&(t.prototype.toString=e.toString),e.valueOf!==Object.prototype.valueOf&&(t.prototype.valueOf=e.valueOf))};function n(){}function s(e){for(var i=null,r=this;r.constructor.superclass;){var n=r.constructor.superclass.prototype[e];if(r[e]!==n){i=n;break}r=r.constructor.superclass.prototype}return i?arguments.length>1?i.apply(this,t.call(arguments,1)):i.call(this):console.log("tried to callSuper "+e+", method not found in prototype chain",this)}b.util.createClass=function(){var i=null,o=t.call(arguments,0);function a(){this.initialize.apply(this,arguments)}"function"==typeof o[0]&&(i=o.shift()),a.superclass=i,a.subclasses=[],i&&(n.prototype=i.prototype,a.prototype=new n,i.subclasses.push(a));for(var h=0,l=o.length;h-1||"touch"===t.pointerType},d="string"==typeof(u=b.document.createElement("div")).style.opacity,f="string"==typeof u.style.filter,g=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,m=function(t){return t},d?m=function(t,e){return t.style.opacity=e,t}:f&&(m=function(t,e){var i=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(i.zoom=1),g.test(i.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",i.filter=i.filter.replace(g,e)):i.filter+=" alpha(opacity="+100*e+")",t}),b.util.setStyle=function(t,e){var i=t.style;if(!i)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?m(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var r in e)"opacity"===r?m(t,e[r]):i["float"===r||"cssFloat"===r?void 0===i.styleFloat?"cssFloat":"styleFloat":r]=e[r];return t},function(){var t,e,i,r,n=Array.prototype.slice,s=function(t){return n.call(t,0)};try{t=s(b.document.childNodes)instanceof Array}catch(t){}function o(t,e){var i=b.document.createElement(t);for(var r in e)"class"===r?i.className=e[r]:"for"===r?i.htmlFor=e[r]:i.setAttribute(r,e[r]);return i}function a(t){for(var e=0,i=0,r=b.document.documentElement,n=b.document.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===b.document?(e=n.scrollLeft||r.scrollLeft||0,i=n.scrollTop||r.scrollTop||0):(e+=t.scrollLeft||0,i+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:i}}t||(s=function(t){for(var e=new Array(t.length),i=t.length;i--;)e[i]=t[i];return e}),e=b.document.defaultView&&b.document.defaultView.getComputedStyle?function(t,e){var i=b.document.defaultView.getComputedStyle(t,null);return i?i[e]:void 0}:function(t,e){var i=t.style[e];return!i&&t.currentStyle&&(i=t.currentStyle[e]),i},i=b.document.documentElement.style,r="userSelect"in i?"userSelect":"MozUserSelect"in i?"MozUserSelect":"WebkitUserSelect"in i?"WebkitUserSelect":"KhtmlUserSelect"in i?"KhtmlUserSelect":"",b.util.makeElementUnselectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=b.util.falseFunction),r?t.style[r]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},b.util.makeElementSelectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=null),r?t.style[r]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},b.util.setImageSmoothing=function(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},b.util.getById=function(t){return"string"==typeof t?b.document.getElementById(t):t},b.util.toArray=s,b.util.addClass=function(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},b.util.makeElement=o,b.util.wrapElement=function(t,e,i){return"string"==typeof e&&(e=o(e,i)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},b.util.getScrollLeftTop=a,b.util.getElementOffset=function(t){var i,r,n=t&&t.ownerDocument,s={left:0,top:0},o={left:0,top:0},h={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!n)return o;for(var l in h)o[h[l]]+=parseInt(e(t,l),10)||0;return i=n.documentElement,void 0!==t.getBoundingClientRect&&(s=t.getBoundingClientRect()),r=a(t),{left:s.left+r.left-(i.clientLeft||0)+o.left,top:s.top+r.top-(i.clientTop||0)+o.top}},b.util.getNodeCanvas=function(t){var e=b.jsdomImplForWrapper(t);return e._canvas||e._image},b.util.cleanUpJsdomNode=function(t){if(b.isLikelyNode){var e=b.jsdomImplForWrapper(t);e&&(e._image=null,e._canvas=null,e._currentSrc=null,e._attributes=null,e._classList=null)}}}(),function(){function t(){}b.util.request=function(e,i){i||(i={});var r=i.method?i.method.toUpperCase():"GET",n=i.onComplete||function(){},s=new b.window.XMLHttpRequest,o=i.body||i.parameters;return s.onreadystatechange=function(){4===s.readyState&&(n(s),s.onreadystatechange=t)},"GET"===r&&(o=null,"string"==typeof i.parameters&&(e=function(t,e){return t+(/\?/.test(t)?"&":"?")+e}(e,i.parameters))),s.open(r,e,!0),"POST"!==r&&"PUT"!==r||s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.send(o),s}}(),b.log=console.log,b.warn=console.warn,function(){var t=b.util.object.extend,e=b.util.object.clone,i=[];function r(){return!1}function n(t,e,i,r){return-i*Math.cos(t/r*(Math.PI/2))+i+e}b.util.object.extend(i,{cancelAll:function(){var t=this.splice(0);return t.forEach((function(t){t.cancel()})),t},cancelByCanvas:function(t){if(!t)return[];var e=this.filter((function(e){return"object"==typeof e.target&&e.target.canvas===t}));return e.forEach((function(t){t.cancel()})),e},cancelByTarget:function(t){var e=this.findAnimationsByTarget(t);return e.forEach((function(t){t.cancel()})),e},findAnimationIndex:function(t){return this.indexOf(this.findAnimation(t))},findAnimation:function(t){return this.find((function(e){return e.cancel===t}))},findAnimationsByTarget:function(t){return t?this.filter((function(e){return e.target===t})):[]}});var s=b.window.requestAnimationFrame||b.window.webkitRequestAnimationFrame||b.window.mozRequestAnimationFrame||b.window.oRequestAnimationFrame||b.window.msRequestAnimationFrame||function(t){return b.window.setTimeout(t,1e3/60)},o=b.window.cancelAnimationFrame||b.window.clearTimeout;function a(){return s.apply(b.window,arguments)}b.util.animate=function(i){i||(i={});var s,o=!1,h=function(){var t=b.runningAnimations.indexOf(s);return t>-1&&b.runningAnimations.splice(t,1)[0]};return s=t(e(i),{cancel:function(){return o=!0,h()},currentValue:"startValue"in i?i.startValue:0,completionRate:0,durationRate:0}),b.runningAnimations.push(s),a((function(t){var e,l=t||+new Date,c=i.duration||500,u=l+c,d=i.onChange||r,f=i.abort||r,g=i.onComplete||r,m=i.easing||n,p="startValue"in i&&i.startValue.length>0,_="startValue"in i?i.startValue:0,v="endValue"in i?i.endValue:100,y=i.byValue||(p?_.map((function(t,e){return v[e]-_[e]})):v-_);i.onStart&&i.onStart(),function t(i){var r=(e=i||+new Date)>u?c:e-l,n=r/c,w=p?_.map((function(t,e){return m(r,_[e],y[e],c)})):m(r,_,y,c),E=p?Math.abs((w[0]-_[0])/y[0]):Math.abs((w-_)/y);if(s.currentValue=p?w.slice():w,s.completionRate=E,s.durationRate=n,!o){if(!f(w,E,n))return e>u?(s.currentValue=p?v.slice():v,s.completionRate=1,s.durationRate=1,d(p?v.slice():v,1,1),g(v,1,1),void h()):(d(w,E,n),void a(t));h()}}(l)})),s.cancel},b.util.requestAnimFrame=a,b.util.cancelAnimFrame=function(){return o.apply(b.window,arguments)},b.runningAnimations=i}(),function(){function t(t,e,i){var r="rgba("+parseInt(t[0]+i*(e[0]-t[0]),10)+","+parseInt(t[1]+i*(e[1]-t[1]),10)+","+parseInt(t[2]+i*(e[2]-t[2]),10);return(r+=","+(t&&e?parseFloat(t[3]+i*(e[3]-t[3])):1))+")"}b.util.animateColor=function(e,i,r,n){var s=new b.Color(e).getSource(),o=new b.Color(i).getSource(),a=n.onComplete,h=n.onChange;return n=n||{},b.util.animate(b.util.object.extend(n,{duration:r||500,startValue:s,endValue:o,byValue:o,easing:function(e,i,r,s){return t(i,r,n.colorEasing?n.colorEasing(e,s):1-Math.cos(e/s*(Math.PI/2)))},onComplete:function(e,i,r){if(a)return a(t(o,o,0),i,r)},onChange:function(e,i,r){if(h){if(Array.isArray(e))return h(t(e,e,0),i,r);h(e,i,r)}}}))}}(),function(){function t(t,e,i,r){return t-1&&c>-1&&c-1)&&(i="stroke")}else{if("href"===t||"xlink:href"===t||"font"===t)return i;if("imageSmoothing"===t)return"optimizeQuality"===i;a=h?i.map(s):s(i,n)}}else i="";return!h&&isNaN(a)?i:a}function f(t){return new RegExp("^("+t.join("|")+")\\b","i")}function g(t,e){var i,r,n,s,o=[];for(n=0,s=e.length;n1;)h.shift(),l=e.util.multiplyTransformMatrices(l,h[0]);return l}}();var v=new RegExp("^\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*$");function y(t){if(!e.svgViewBoxElementsRegEx.test(t.nodeName))return{};var i,r,n,o,a,h,l=t.getAttribute("viewBox"),c=1,u=1,d=t.getAttribute("width"),f=t.getAttribute("height"),g=t.getAttribute("x")||0,m=t.getAttribute("y")||0,p=t.getAttribute("preserveAspectRatio")||"",_=!l||!(l=l.match(v)),y=!d||!f||"100%"===d||"100%"===f,w=_&&y,E={},C="",T=0,b=0;if(E.width=0,E.height=0,E.toBeParsed=w,_&&(g||m)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") ",a=(t.getAttribute("transform")||"")+C,t.setAttribute("transform",a),t.removeAttribute("x"),t.removeAttribute("y")),w)return E;if(_)return E.width=s(d),E.height=s(f),E;if(i=-parseFloat(l[1]),r=-parseFloat(l[2]),n=parseFloat(l[3]),o=parseFloat(l[4]),E.minX=i,E.minY=r,E.viewBoxWidth=n,E.viewBoxHeight=o,y?(E.width=n,E.height=o):(E.width=s(d),E.height=s(f),c=E.width/n,u=E.height/o),"none"!==(p=e.util.parsePreserveAspectRatioAttribute(p)).alignX&&("meet"===p.meetOrSlice&&(u=c=c>u?u:c),"slice"===p.meetOrSlice&&(u=c=c>u?c:u),T=E.width-n*c,b=E.height-o*c,"Mid"===p.alignX&&(T/=2),"Mid"===p.alignY&&(b/=2),"Min"===p.alignX&&(T=0),"Min"===p.alignY&&(b=0)),1===c&&1===u&&0===i&&0===r&&0===g&&0===m)return E;if((g||m)&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") "),a=C+" matrix("+c+" 0 0 "+u+" "+(i*c+T)+" "+(r*u+b)+") ","svg"===t.nodeName){for(h=t.ownerDocument.createElementNS(e.svgNS,"g");t.firstChild;)h.appendChild(t.firstChild);t.appendChild(h)}else(h=t).removeAttribute("x"),h.removeAttribute("y"),a=h.getAttribute("transform")+a;return h.setAttribute("transform",a),E}function w(t,e){var i="xlink:href",r=_(t,e.getAttribute(i).slice(1));if(r&&r.getAttribute(i)&&w(t,r),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(t){r&&!e.hasAttribute(t)&&r.hasAttribute(t)&&e.setAttribute(t,r.getAttribute(t))})),!e.children.length)for(var n=r.cloneNode(!0);n.firstChild;)e.appendChild(n.firstChild);e.removeAttribute(i)}e.parseSVGDocument=function(t,i,n,s){if(t){!function(t){for(var i=g(t,["use","svg:use"]),r=0;i.length&&rt.x&&this.y>t.y},gte:function(t){return this.x>=t.x&&this.y>=t.y},lerp:function(t,e){return void 0===e&&(e=.5),e=Math.max(Math.min(1,e),0),new i(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},distanceFrom:function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},midPointFrom:function(t){return this.lerp(t)},min:function(t){return new i(Math.min(this.x,t.x),Math.min(this.y,t.y))},max:function(t){return new i(Math.max(this.x,t.x),Math.max(this.y,t.y))},toString:function(){return this.x+","+this.y},setXY:function(t,e){return this.x=t,this.y=e,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setFromPoint:function(t){return this.x=t.x,this.y=t.y,this},swap:function(t){var e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i},clone:function(){return new i(this.x,this.y)}})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){this.status=t,this.points=[]}e.Intersection?e.warn("fabric.Intersection is already defined"):(e.Intersection=i,e.Intersection.prototype={constructor:i,appendPoint:function(t){return this.points.push(t),this},appendPoints:function(t){return this.points=this.points.concat(t),this}},e.Intersection.intersectLineLine=function(t,r,n,s){var o,a=(s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x),h=(r.x-t.x)*(t.y-n.y)-(r.y-t.y)*(t.x-n.x),l=(s.y-n.y)*(r.x-t.x)-(s.x-n.x)*(r.y-t.y);if(0!==l){var c=a/l,u=h/l;0<=c&&c<=1&&0<=u&&u<=1?(o=new i("Intersection")).appendPoint(new e.Point(t.x+c*(r.x-t.x),t.y+c*(r.y-t.y))):o=new i}else o=new i(0===a||0===h?"Coincident":"Parallel");return o},e.Intersection.intersectLinePolygon=function(t,e,r){var n,s,o,a,h=new i,l=r.length;for(a=0;a0&&(h.status="Intersection"),h},e.Intersection.intersectPolygonPolygon=function(t,e){var r,n=new i,s=t.length;for(r=0;r0&&(n.status="Intersection"),n},e.Intersection.intersectPolygonRectangle=function(t,r,n){var s=r.min(n),o=r.max(n),a=new e.Point(o.x,s.y),h=new e.Point(s.x,o.y),l=i.intersectLinePolygon(s,a,t),c=i.intersectLinePolygon(a,o,t),u=i.intersectLinePolygon(o,h,t),d=i.intersectLinePolygon(h,s,t),f=new i;return f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(u.points),f.appendPoints(d.points),f.points.length>0&&(f.status="Intersection"),f})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){t?this._tryParsingColor(t):this.setSource([0,0,0,1])}function r(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}e.Color?e.warn("fabric.Color is already defined."):(e.Color=i,e.Color.prototype={_tryParsingColor:function(t){var e;t in i.colorNameMap&&(t=i.colorNameMap[t]),"transparent"===t&&(e=[255,255,255,0]),e||(e=i.sourceFromHex(t)),e||(e=i.sourceFromRgb(t)),e||(e=i.sourceFromHsl(t)),e||(e=[0,0,0,1]),e&&this.setSource(e)},_rgbToHsl:function(t,i,r){t/=255,i/=255,r/=255;var n,s,o,a=e.util.array.max([t,i,r]),h=e.util.array.min([t,i,r]);if(o=(a+h)/2,a===h)n=s=0;else{var l=a-h;switch(s=o>.5?l/(2-a-h):l/(a+h),a){case t:n=(i-r)/l+(i0)-(t<0)||+t};function f(t,e){var i=t.angle+u(Math.atan2(e.y,e.x))+360;return Math.round(i%360/45)}function g(t,i){var r=i.transform.target,n=r.canvas,s=e.util.object.clone(i);s.target=r,n&&n.fire("object:"+t,s),r.fire(t,i)}function m(t,e){var i=e.canvas,r=t[i.uniScaleKey];return i.uniformScaling&&!r||!i.uniformScaling&&r}function p(t){return t.originX===l&&t.originY===l}function _(t,e,i){var r=t.lockScalingX,n=t.lockScalingY;return!((!r||!n)&&(e||!r&&!n||!i)&&(!r||"x"!==e)&&(!n||"y"!==e))}function v(t,e,i,r){return{e:t,transform:e,pointer:{x:i,y:r}}}function y(t){return function(e,i,r,n){var s=i.target,o=s.getCenterPoint(),a=s.translateToOriginPoint(o,i.originX,i.originY),h=t(e,i,r,n);return s.setPositionByOrigin(a,i.originX,i.originY),h}}function w(t,e){return function(i,r,n,s){var o=e(i,r,n,s);return o&&g(t,v(i,r,n,s)),o}}function E(t,i,r,n,s){var o=t.target,a=o.controls[t.corner],h=o.canvas.getZoom(),l=o.padding/h,c=o.toLocalPoint(new e.Point(n,s),i,r);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=a.offsetX,c.y-=a.offsetY,c}function C(t){return t.flipX!==t.flipY}function T(t,e,i,r,n){if(0!==t[e]){var s=n/t._getTransformedDimensions()[r]*t[i];t.set(i,s)}}function b(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(0,l.skewY),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.x)-c.x,g=l.skewX;f<2?n=0:(n=u(Math.atan2(f/l.scaleX,c.y/l.scaleY)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().y;l.set("skewX",n),T(l,"skewY","scaleY","y",p)}return m}function S(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(l.skewX,0),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.y)-c.y,g=l.skewY;f<2?n=0:(n=u(Math.atan2(f/l.scaleY,c.x/l.scaleX)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().x;l.set("skewY",n),T(l,"skewX","scaleX","x",p)}return m}function I(t,e,i,r,n){n=n||{};var s,o,a,h,l,u,f=e.target,g=f.lockScalingX,v=f.lockScalingY,y=n.by,w=m(t,f),C=_(f,y,w),T=e.gestureScale;if(C)return!1;if(T)o=e.scaleX*T,a=e.scaleY*T;else{if(s=E(e,e.originX,e.originY,i,r),l="y"!==y?d(s.x):1,u="x"!==y?d(s.y):1,e.signX||(e.signX=l),e.signY||(e.signY=u),f.lockScalingFlip&&(e.signX!==l||e.signY!==u))return!1;if(h=f._getTransformedDimensions(),w&&!y){var b=Math.abs(s.x)+Math.abs(s.y),S=e.original,I=b/(Math.abs(h.x*S.scaleX/f.scaleX)+Math.abs(h.y*S.scaleY/f.scaleY));o=S.scaleX*I,a=S.scaleY*I}else o=Math.abs(s.x*f.scaleX/h.x),a=Math.abs(s.y*f.scaleY/h.y);p(e)&&(o*=2,a*=2),e.signX!==l&&"y"!==y&&(e.originX=c[e.originX],o*=-1,e.signX=l),e.signY!==u&&"x"!==y&&(e.originY=c[e.originY],a*=-1,e.signY=u)}var x=f.scaleX,A=f.scaleY;return y?("x"===y&&f.set("scaleX",o),"y"===y&&f.set("scaleY",a)):(!g&&f.set("scaleX",o),!v&&f.set("scaleY",a)),x!==f.scaleX||A!==f.scaleY}n.scaleCursorStyleHandler=function(t,e,r){var n=m(t,r),s="";if(0!==e.x&&0===e.y?s="x":0===e.x&&0!==e.y&&(s="y"),_(r,s,n))return"not-allowed";var o=f(r,e);return i[o]+"-resize"},n.skewCursorStyleHandler=function(t,e,i){var n="not-allowed";if(0!==e.x&&i.lockSkewingY)return n;if(0!==e.y&&i.lockSkewingX)return n;var s=f(i,e)%4;return r[s]+"-resize"},n.scaleSkewCursorStyleHandler=function(t,e,i){return t[i.canvas.altActionKey]?n.skewCursorStyleHandler(t,e,i):n.scaleCursorStyleHandler(t,e,i)},n.rotationWithSnapping=w("rotating",y((function(t,e,i,r){var n=e,s=n.target,o=s.translateToOriginPoint(s.getCenterPoint(),n.originX,n.originY);if(s.lockRotation)return!1;var a,h=Math.atan2(n.ey-o.y,n.ex-o.x),l=Math.atan2(r-o.y,i-o.x),c=u(l-h+n.theta);if(s.snapAngle>0){var d=s.snapAngle,f=s.snapThreshold||d,g=Math.ceil(c/d)*d,m=Math.floor(c/d)*d;Math.abs(c-m)0?s:a:(c>0&&(n=u===o?s:a),c<0&&(n=u===o?a:s),C(h)&&(n=n===s?a:s)),e.originX=n,w("skewing",y(b))(t,e,i,r))},n.skewHandlerY=function(t,e,i,r){var n,a=e.target,c=a.skewY,u=e.originX;return!a.lockSkewingY&&(0===c?n=E(e,l,l,i,r).y>0?o:h:(c>0&&(n=u===s?o:h),c<0&&(n=u===s?h:o),C(a)&&(n=n===o?h:o)),e.originY=n,w("skewing",y(S))(t,e,i,r))},n.dragHandler=function(t,e,i,r){var n=e.target,s=i-e.offsetX,o=r-e.offsetY,a=!n.get("lockMovementX")&&n.left!==s,h=!n.get("lockMovementY")&&n.top!==o;return a&&n.set("left",s),h&&n.set("top",o),(a||h)&&g("moving",v(t,e,i,r)),a||h},n.scaleOrSkewActionName=function(t,e,i){var r=t[i.canvas.altActionKey];return 0===e.x?r?"skewX":"scaleY":0===e.y?r?"skewY":"scaleX":void 0},n.rotationStyleHandler=function(t,e,i){return i.lockRotation?"not-allowed":e.cursorStyle},n.fireEvent=g,n.wrapWithFixedAnchor=y,n.wrapWithFireEvent=w,n.getLocalPoint=E,e.controlsUtils=n}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians,r=e.controlsUtils;r.renderCircleControl=function(t,e,i,r,n){r=r||{};var s,o=this.sizeX||r.cornerSize||n.cornerSize,a=this.sizeY||r.cornerSize||n.cornerSize,h=void 0!==r.transparentCorners?r.transparentCorners:n.transparentCorners,l=h?"stroke":"fill",c=!h&&(r.cornerStrokeColor||n.cornerStrokeColor),u=e,d=i;t.save(),t.fillStyle=r.cornerColor||n.cornerColor,t.strokeStyle=r.cornerStrokeColor||n.cornerStrokeColor,o>a?(s=o,t.scale(1,a/o),d=i*o/a):a>o?(s=a,t.scale(o/a,1),u=e*a/o):s=o,t.lineWidth=1,t.beginPath(),t.arc(u,d,s/2,0,2*Math.PI,!1),t[l](),c&&t.stroke(),t.restore()},r.renderSquareControl=function(t,e,r,n,s){n=n||{};var o=this.sizeX||n.cornerSize||s.cornerSize,a=this.sizeY||n.cornerSize||s.cornerSize,h=void 0!==n.transparentCorners?n.transparentCorners:s.transparentCorners,l=h?"stroke":"fill",c=!h&&(n.cornerStrokeColor||s.cornerStrokeColor),u=o/2,d=a/2;t.save(),t.fillStyle=n.cornerColor||s.cornerColor,t.strokeStyle=n.cornerStrokeColor||s.cornerStrokeColor,t.lineWidth=1,t.translate(e,r),t.rotate(i(s.angle)),t[l+"Rect"](-u,-d,o,a),c&&t.strokeRect(-u,-d,o,a),t.restore()}}(e),function(t){var e=t.fabric||(t.fabric={});e.Control=function(t){for(var e in t)this[e]=t[e]},e.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(t,e){return e.cursorStyle},getActionName:function(t,e){return e.actionName},getVisibility:function(t,e){var i=t._controlsVisibility;return i&&void 0!==i[e]?i[e]:this.visible},setVisibility:function(t){this.visible=t},positionHandler:function(t,i){return e.util.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},i)},calcCornerCoords:function(t,i,r,n,s){var o,a,h,l,c=s?this.touchSizeX:this.sizeX,u=s?this.touchSizeY:this.sizeY;if(c&&u&&c!==u){var d=Math.atan2(u,c),f=Math.sqrt(c*c+u*u)/2,g=d-e.util.degreesToRadians(t),m=Math.PI/2-d-e.util.degreesToRadians(t);o=f*e.util.cos(g),a=f*e.util.sin(g),h=f*e.util.cos(m),l=f*e.util.sin(m)}else f=.7071067812*(c&&u?c:i),g=e.util.degreesToRadians(45-t),o=h=f*e.util.cos(g),a=l=f*e.util.sin(g);return{tl:{x:r-l,y:n-h},tr:{x:r+o,y:n-a},bl:{x:r-o,y:n+a},br:{x:r+l,y:n+h}}},render:function(t,i,r,n,s){"circle"===((n=n||{}).cornerStyle||s.cornerStyle)?e.controlsUtils.renderCircleControl.call(this,t,i,r,n,s):e.controlsUtils.renderSquareControl.call(this,t,i,r,n,s)}}}(e),function(){function t(t,e){var i,r,n,s,o=t.getAttribute("style"),a=t.getAttribute("offset")||0;if(a=(a=parseFloat(a)/(/%$/.test(a)?100:1))<0?0:a>1?1:a,o){var h=o.split(/\s*;\s*/);for(""===h[h.length-1]&&h.pop(),s=h.length;s--;){var l=h[s].split(/\s*:\s*/),c=l[0].trim(),u=l[1].trim();"stop-color"===c?i=u:"stop-opacity"===c&&(n=u)}}return i||(i=t.getAttribute("stop-color")||"rgb(0,0,0)"),n||(n=t.getAttribute("stop-opacity")),r=(i=new b.Color(i)).getAlpha(),n=isNaN(parseFloat(n))?1:parseFloat(n),n*=r*e,{offset:a,color:i.toRgb(),opacity:n}}var e=b.util.object.clone;b.Gradient=b.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(t){t||(t={}),t.coords||(t.coords={});var e,i=this;Object.keys(t).forEach((function(e){i[e]=t[e]})),this.id?this.id+="_"+b.Object.__uid++:this.id=b.Object.__uid++,e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0},"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()},addColorStop:function(t){for(var e in t){var i=new b.Color(t[e]);this.colorStops.push({offset:parseFloat(e),color:i.toRgb(),opacity:i.getAlpha()})}return this},toObject:function(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return b.util.populateWithProperties(this,e,t),e},toSVG:function(t,i){var r,n,s,o,a=e(this.coords,!0),h=(i=i||{},e(this.colorStops,!0)),l=a.r1>a.r2,c=this.gradientTransform?this.gradientTransform.concat():b.iMatrix.concat(),u=-this.offsetX,d=-this.offsetY,f=!!i.additionalTransform,g="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(h.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===g?(u/=t.width,d/=t.height):(u+=t.width/2,d+=t.height/2),"path"===t.type&&"percentage"!==this.gradientUnits&&(u-=t.pathOffset.x,d-=t.pathOffset.y),c[4]-=u,c[5]-=d,o='id="SVGID_'+this.id+'" gradientUnits="'+g+'"',o+=' gradientTransform="'+(f?i.additionalTransform+" ":"")+b.util.matrixToSVG(c)+'" ',"linear"===this.type?s=["\n']:"radial"===this.type&&(s=["\n']),"radial"===this.type){if(l)for((h=h.concat()).reverse(),r=0,n=h.length;r0){var p=m/Math.max(a.r1,a.r2);for(r=0,n=h.length;r\n')}return s.push("linear"===this.type?"\n":"\n"),s.join("")},toLive:function(t){var e,i,r,n=b.util.object.clone(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(n.x1,n.y1,n.x2,n.y2):"radial"===this.type&&(e=t.createRadialGradient(n.x1,n.y1,n.r1,n.x2,n.y2,n.r2)),i=0,r=this.colorStops.length;i1?1:s,isNaN(s)&&(s=1);var o,a,h,l,c=e.getElementsByTagName("stop"),u="userSpaceOnUse"===e.getAttribute("gradientUnits")?"pixels":"percentage",d=e.getAttribute("gradientTransform")||"",f=[],g=0,m=0;for("linearGradient"===e.nodeName||"LINEARGRADIENT"===e.nodeName?(o="linear",a=function(t){return{x1:t.getAttribute("x1")||0,y1:t.getAttribute("y1")||0,x2:t.getAttribute("x2")||"100%",y2:t.getAttribute("y2")||0}}(e)):(o="radial",a=function(t){return{x1:t.getAttribute("fx")||t.getAttribute("cx")||"50%",y1:t.getAttribute("fy")||t.getAttribute("cy")||"50%",r1:0,x2:t.getAttribute("cx")||"50%",y2:t.getAttribute("cy")||"50%",r2:t.getAttribute("r")||"50%"}}(e)),h=c.length;h--;)f.push(t(c[h],s));return l=b.parseTransformAttribute(d),function(t,e,i,r){var n,s;Object.keys(e).forEach((function(t){"Infinity"===(n=e[t])?s=1:"-Infinity"===n?s=0:(s=parseFloat(e[t],10),"string"==typeof n&&/^(\d+\.\d+)%|(\d+)%$/.test(n)&&(s*=.01,"pixels"===r&&("x1"!==t&&"x2"!==t&&"r2"!==t||(s*=i.viewBoxWidth||i.width),"y1"!==t&&"y2"!==t||(s*=i.viewBoxHeight||i.height)))),e[t]=s}))}(0,a,n,u),"pixels"===u&&(g=-i.left,m=-i.top),new b.Gradient({id:e.getAttribute("id"),type:o,coords:a,colorStops:f,gradientUnits:u,gradientTransform:l,offsetX:g,offsetY:m})}})}(),_=b.util.toFixed,b.Pattern=b.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(t,e){if(t||(t={}),this.id=b.Object.__uid++,this.setOptions(t),!t.source||t.source&&"string"!=typeof t.source)e&&e(this);else{var i=this;this.source=b.util.createImage(),b.util.loadImage(t.source,(function(t,r){i.source=t,e&&e(i,r)}),null,this.crossOrigin)}},toObject:function(t){var e,i,r=b.Object.NUM_FRACTION_DIGITS;return"string"==typeof this.source.src?e=this.source.src:"object"==typeof this.source&&this.source.toDataURL&&(e=this.source.toDataURL()),i={type:"pattern",source:e,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:_(this.offsetX,r),offsetY:_(this.offsetY,r),patternTransform:this.patternTransform?this.patternTransform.concat():null},b.util.populateWithProperties(this,i,t),i},toSVG:function(t){var e="function"==typeof this.source?this.source():this.source,i=e.width/t.width,r=e.height/t.height,n=this.offsetX/t.width,s=this.offsetY/t.height,o="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(r=1,s&&(r+=Math.abs(s))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,n&&(i+=Math.abs(n))),e.src?o=e.src:e.toDataURL&&(o=e.toDataURL()),'\n\n\n'},setOptions:function(t){for(var e in t)this[e]=t[e]},toLive:function(t){var e=this.source;if(!e)return"";if(void 0!==e.src){if(!e.complete)return"";if(0===e.naturalWidth||0===e.naturalHeight)return""}return t.createPattern(e,this.repeat)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.toFixed;e.Shadow?e.warn("fabric.Shadow is already defined."):(e.Shadow=e.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(t){for(var i in"string"==typeof t&&(t=this._parseShadow(t)),t)this[i]=t[i];this.id=e.Object.__uid++},_parseShadow:function(t){var i=t.trim(),r=e.Shadow.reOffsetsAndBlur.exec(i)||[];return{color:(i.replace(e.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(r[1],10)||0,offsetY:parseFloat(r[2],10)||0,blur:parseFloat(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(t){var r=40,n=40,s=e.Object.NUM_FRACTION_DIGITS,o=e.util.rotateVector({x:this.offsetX,y:this.offsetY},e.util.degreesToRadians(-t.angle)),a=new e.Color(this.color);return t.width&&t.height&&(r=100*i((Math.abs(o.x)+this.blur)/t.width,s)+20,n=100*i((Math.abs(o.y)+this.blur)/t.height,s)+20),t.flipX&&(o.x*=-1),t.flipY&&(o.y*=-1),'\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var t={},i=e.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(e){this[e]!==i[e]&&(t[e]=this[e])}),this),t}}),e.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(e),function(){if(b.StaticCanvas)b.warn("fabric.StaticCanvas is already defined.");else{var t=b.util.object.extend,e=b.util.getElementOffset,i=b.util.removeFromArray,r=b.util.toFixed,n=b.util.transformPoint,s=b.util.invertTransform,o=b.util.getNodeCanvas,a=b.util.createCanvasElement,h=new Error("Could not initialize `canvas` element");b.StaticCanvas=b.util.createClass(b.CommonMethods,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:b.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(t,e){var i=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,i),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,i),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,i),e.overlayColor&&this.setOverlayColor(e.overlayColor,i),this.calcOffset()},_isRetinaScaling:function(){return b.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,b.devicePixelRatio):1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var t=b.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(t,e,i){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),i.scale(t,t)},calcOffset:function(){return this._offset=e(this.lowerCanvasEl),this},setOverlayImage:function(t,e,i){return this.__setBgOverlayImage("overlayImage",t,e,i)},setBackgroundImage:function(t,e,i){return this.__setBgOverlayImage("backgroundImage",t,e,i)},setOverlayColor:function(t,e){return this.__setBgOverlayColor("overlayColor",t,e)},setBackgroundColor:function(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)},__setBgOverlayImage:function(t,e,i,r){return"string"==typeof e?b.util.loadImage(e,(function(e,n){if(e){var s=new b.Image(e,r);this[t]=s,s.canvas=this}i&&i(e,n)}),this,r&&r.crossOrigin):(r&&e.setOptions(r),this[t]=e,e&&(e.canvas=this),i&&i(e,!1)),this},__setBgOverlayColor:function(t,e,i){return this[t]=e,this._initGradient(e,t),this._initPattern(e,t,i),this},_createCanvasElement:function(){var t=a();if(!t)throw h;if(t.style||(t.style={}),void 0===t.getContext)throw h;return t},_initOptions:function(t){var e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=b.util.getById(t)||this._createCanvasElement(),b.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(t,e){return this.setDimensions({width:t},e)},setHeight:function(t,e){return this.setDimensions({height:t},e)},setDimensions:function(t,e){var i;for(var r in e=e||{},t)i=t[r],e.cssOnly||(this._setBackstoreDimension(r,t[r]),i+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(r,i);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this},_setCssDimension:function(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(t){var e,i,r,n=this._activeObject,s=this.backgroundImage,o=this.overlayImage;for(this.viewportTransform=t,i=0,r=this._objects.length;i\n'),this._setSVGBgOverlayColor(i,"background"),this._setSVGBgOverlayImage(i,"backgroundImage",e),this._setSVGObjects(i,e),this.clipPath&&i.push("\n"),this._setSVGBgOverlayColor(i,"overlay"),this._setSVGBgOverlayImage(i,"overlayImage",e),i.push(""),i.join("")},_setSVGPreamble:function(t,e){e.suppressPreamble||t.push('\n','\n')},_setSVGHeader:function(t,e){var i,n=e.width||this.width,s=e.height||this.height,o='viewBox="0 0 '+this.width+" "+this.height+'" ',a=b.Object.NUM_FRACTION_DIGITS;e.viewBox?o='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(i=this.viewportTransform,o='viewBox="'+r(-i[4]/i[0],a)+" "+r(-i[5]/i[3],a)+" "+r(this.width/i[0],a)+" "+r(this.height/i[3],a)+'" '),t.push("\n',"Created with Fabric.js ",b.version,"\n","\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"\n")},createSVGClipPathMarkup:function(t){var e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+b.Object.__uid++,'\n'+this.clipPath.toClipPathSVG(t.reviver)+"\n"):""},createSVGRefElementsMarkup:function(){var t=this;return["background","overlay"].map((function(e){var i=t[e+"Color"];if(i&&i.toLive){var r=t[e+"Vpt"],n=t.viewportTransform,s={width:t.width/(r?n[0]:1),height:t.height/(r?n[3]:1)};return i.toSVG(s,{additionalTransform:r?b.util.matrixToSVG(n):""})}})).join("")},createSVGFontFacesMarkup:function(){var t,e,i,r,n,s,o,a,h="",l={},c=b.fontPaths,u=[];for(this._objects.forEach((function t(e){u.push(e),e._objects&&e._objects.forEach(t)})),o=0,a=u.length;o',"\n",h,"","\n"].join("")),h},_setSVGObjects:function(t,e){var i,r,n,s=this._objects;for(r=0,n=s.length;r\n")}else t.push('\n")},sendToBack:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(e=(n=s._objects).length;e--;)r=n[e],i(this._objects,r),this._objects.unshift(r);else i(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(n=s._objects,e=0;e0+l&&(o=s-1,i(this._objects,n),this._objects.splice(o,0,n)),l++;else 0!==(s=this._objects.indexOf(t))&&(o=this._findNewLowerIndex(t,s,e),i(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(t,e,i){var r,n;if(i){for(r=e,n=e-1;n>=0;--n)if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){r=n;break}}else r=e-1;return r},bringForward:function(t,e){if(!t)return this;var r,n,s,o,a,h=this._activeObject,l=0;if(t===h&&"activeSelection"===t.type)for(r=(a=h._objects).length;r--;)n=a[r],(s=this._objects.indexOf(n))"}}),t(b.StaticCanvas.prototype,b.Observable),t(b.StaticCanvas.prototype,b.Collection),t(b.StaticCanvas.prototype,b.DataURLExporter),t(b.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(t){var e=a();if(!e||!e.getContext)return null;var i=e.getContext("2d");return i&&"setLineDash"===t?void 0!==i.setLineDash:null}}),b.StaticCanvas.prototype.toJSON=b.StaticCanvas.prototype.toObject,b.isLikelyNode&&(b.StaticCanvas.prototype.createPNGStream=function(){var t=o(this.lowerCanvasEl);return t&&t.createPNGStream()},b.StaticCanvas.prototype.createJPEGStream=function(t){var e=o(this.lowerCanvasEl);return e&&e.createJPEGStream(t)})}}(),b.BaseBrush=b.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(t){var e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])},_setShadow:function(){if(this.shadow){var t=this.canvas,e=this.shadow,i=t.contextTop,r=t.getZoom();t&&t._isRetinaScaling()&&(r*=b.devicePixelRatio),i.shadowColor=e.color,i.shadowBlur=e.blur*r,i.shadowOffsetX=e.offsetX*r,i.shadowOffsetY=e.offsetY*r}},needsFullRender:function(){return new b.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0},_isOutSideCanvas:function(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}),b.PencilBrush=b.util.createClass(b.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(t){this.canvas=t,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(t,e,i){var r=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,r.x,r.y),r},onMouseDown:function(t,e){this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],this._prepareForDrawing(t),this._captureDrawingPath(t),this._render())},onMouseMove:function(t,e){if(this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._captureDrawingPath(t)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var i=this._points,r=i.length,n=this.canvas.contextTop;this._saveAndTransform(n),this.oldEnd&&(n.beginPath(),n.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(n,i[r-2],i[r-1],!0),n.stroke(),n.restore()}},onMouseUp:function(t){return!this.canvas._isMainEvent(t.e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(t){var e=new b.Point(t.x,t.y);this._reset(),this._addPoint(e),this.canvas.contextTop.moveTo(e.x,e.y)},_addPoint:function(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),0))},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(t){var e=new b.Point(t.x,t.y);return this._addPoint(e)},_render:function(t){var e,i,r=this._points[0],n=this._points[1];if(t=t||this.canvas.contextTop,this._saveAndTransform(t),t.beginPath(),2===this._points.length&&r.x===n.x&&r.y===n.y){var s=this.width/1e3;r=new b.Point(r.x,r.y),n=new b.Point(n.x,n.y),r.x-=s,n.x+=s}for(t.moveTo(r.x,r.y),e=1,i=this._points.length;e=n&&(o=t[i],a.push(o));return a.push(t[s]),a},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var t=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(t))this.canvas.requestRenderAll();else{var e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}}}),b.CircleBrush=b.util.createClass(b.BaseBrush,{width:10,initialize:function(t){this.canvas=t,this.points=[]},drawDot:function(t){var e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()},dot:function(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()},onMouseDown:function(t){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)},_render:function(){var t,e,i=this.canvas.contextTop,r=this.points;for(this._saveAndTransform(i),t=0,e=r.length;t0&&!this.preserveObjectStacking){e=[],i=[];for(var n=0,s=this._objects.length;n1&&(this._activeObject._objects=i),e.push.apply(e,i)}else e=this._objects;return e},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1);var t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this},renderTopLayer:function(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()},renderTop:function(){var t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this},_normalizePointer:function(t,e){var i=t.calcTransformMatrix(),r=b.util.invertTransform(i),n=this.restorePointerVpt(e);return b.util.transformPoint(n,r)},isTargetTransparent:function(t,e,i){if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){var r=this._normalizePointer(t,{x:e,y:i}),n=Math.max(t.cacheTranslationX+r.x*t.zoomX,0),s=Math.max(t.cacheTranslationY+r.y*t.zoomY,0);return b.util.isTransparent(t._cacheContext,Math.round(n),Math.round(s),this.targetFindTolerance)}var o=this.contextCache,a=t.selectionBackgroundColor,h=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(o),o.save(),o.transform(h[0],h[1],h[2],h[3],h[4],h[5]),t.render(o),o.restore(),t.selectionBackgroundColor=a,b.util.isTransparent(o,e,i,this.targetFindTolerance)},_isSelectionKeyPressed:function(t){return Array.isArray(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey]},_shouldClearSelection:function(t,e){var i=this.getActiveObjects(),r=this._activeObject;return!e||e&&r&&i.length>1&&-1===i.indexOf(e)&&r!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&r&&r!==e},_shouldCenterTransform:function(t,e,i){var r;if(t)return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?r=this.centeredScaling||t.centeredScaling:"rotate"===e&&(r=this.centeredRotation||t.centeredRotation),r?!i:i},_getOriginFromCorner:function(t,e){var i={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?i.x="right":"mr"!==e&&"tr"!==e&&"br"!==e||(i.x="left"),"tl"===e||"mt"===e||"tr"===e?i.y="bottom":"bl"!==e&&"mb"!==e&&"br"!==e||(i.y="top"),i},_getActionFromCorner:function(t,e,i,r){if(!e||!t)return"drag";var n=r.controls[e];return n.getActionName(i,n,r)},_setupCurrentTransform:function(t,i,r){if(i){var n=this.getPointer(t),s=i.__corner,o=i.controls[s],a=r&&s?o.getActionHandler(t,i,o):b.controlsUtils.dragHandler,h=this._getActionFromCorner(r,s,t,i),l=this._getOriginFromCorner(i,s),c=t[this.centeredKey],u={target:i,action:h,actionHandler:a,corner:s,scaleX:i.scaleX,scaleY:i.scaleY,skewX:i.skewX,skewY:i.skewY,offsetX:n.x-i.left,offsetY:n.y-i.top,originX:l.x,originY:l.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:e(i.angle),width:i.width*i.scaleX,shiftKey:t.shiftKey,altKey:c,original:b.util.saveObjectTransform(i)};this._shouldCenterTransform(i,h,c)&&(u.originX="center",u.originY="center"),u.original.originX=l.x,u.original.originY=l.y,this._currentTransform=u,this._beforeTransform(t)}},setCursor:function(t){this.upperCanvasEl.style.cursor=t},_drawSelection:function(t){var e=this._groupSelector,i=new b.Point(e.ex,e.ey),r=b.util.transformPoint(i,this.viewportTransform),n=new b.Point(e.ex+e.left,e.ey+e.top),s=b.util.transformPoint(n,this.viewportTransform),o=Math.min(r.x,s.x),a=Math.min(r.y,s.y),h=Math.max(r.x,s.x),l=Math.max(r.y,s.y),c=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(o,a,h-o,l-a)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,o+=c,a+=c,h-=c,l-=c,b.Object.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(o,a,h-o,l-a))},findTarget:function(t,e){if(!this.skipTargetFind){var r,n,s=this.getPointer(t,!0),o=this._activeObject,a=this.getActiveObjects(),h=i(t),l=a.length>1&&!e||1===a.length;if(this.targets=[],l&&o._findTargetCorner(s,h))return o;if(a.length>1&&!e&&o===this._searchPossibleTargets([o],s))return o;if(1===a.length&&o===this._searchPossibleTargets([o],s)){if(!this.preserveObjectStacking)return o;r=o,n=this.targets,this.targets=[]}var c=this._searchPossibleTargets(this._objects,s);return t[this.altSelectionKey]&&c&&r&&c!==r&&(c=r,this.targets=n),c}},_checkTarget:function(t,e,i){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,i.x,i.y))return!0}},_searchPossibleTargets:function(t,e){for(var i,r,n=t.length;n--;){var s=t[n],o=s.group?this._normalizePointer(s.group,e):e;if(this._checkTarget(o,s,e)){(i=t[n]).subTargetCheck&&i instanceof b.Group&&(r=this._searchPossibleTargets(i._objects,e))&&this.targets.push(r);break}}return i},restorePointerVpt:function(t){return b.util.transformPoint(t,b.util.invertTransform(this.viewportTransform))},getPointer:function(e,i){if(this._absolutePointer&&!i)return this._absolutePointer;if(this._pointer&&i)return this._pointer;var r,n=t(e),s=this.upperCanvasEl,o=s.getBoundingClientRect(),a=o.width||0,h=o.height||0;a&&h||("top"in o&&"bottom"in o&&(h=Math.abs(o.top-o.bottom)),"right"in o&&"left"in o&&(a=Math.abs(o.right-o.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,i||(n=this.restorePointerVpt(n));var l=this.getRetinaScaling();return 1!==l&&(n.x/=l,n.y/=l),r=0===a||0===h?{width:1,height:1}:{width:s.width/a,height:s.height/h},{x:n.x*r.width,y:n.y*r.height}},_createUpperCanvas:function(){var t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl,i=this.upperCanvasEl;i?i.className="":(i=this._createCanvasElement(),this.upperCanvasEl=i),b.util.addClass(i,"upper-canvas "+t),this.wrapperEl.appendChild(i),this._copyCanvasStyle(e,i),this._applyCanvasStyle(i),this.contextTop=i.getContext("2d")},getTopContext:function(){return this.contextTop},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=b.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),b.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),b.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(t){var e=this.width||t.width,i=this.height||t.height;b.util.setStyle(t,{position:"absolute",width:e+"px",height:i+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=i,b.util.makeElementUnselectable(t)},_copyCanvasStyle:function(t,e){e.style.cssText=t.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]},_onObjectRemoved:function(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",t)},_fireSelectionEvents:function(t,e){var i=!1,r=this.getActiveObjects(),n=[],s=[];t.forEach((function(t){-1===r.indexOf(t)&&(i=!0,t.fire("deselected",{e:e,target:t}),s.push(t))})),r.forEach((function(r){-1===t.indexOf(r)&&(i=!0,r.fire("selected",{e:e,target:r}),n.push(r))})),t.length>0&&r.length>0?i&&this.fire("selection:updated",{e:e,selected:n,deselected:s}):r.length>0?this.fire("selection:created",{e:e,selected:n}):t.length>0&&this.fire("selection:cleared",{e:e,deselected:s})},setActiveObject:function(t,e){var i=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(i,e),this},_setActiveObject:function(t,e){return this._activeObject!==t&&!!this._discardActiveObject(e,t)&&!t.onSelect({e:e})&&(this._activeObject=t,!0)},_discardActiveObject:function(t,e){var i=this._activeObject;if(i){if(i.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0},discardActiveObject:function(t){var e=this.getActiveObjects(),i=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:i,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this},dispose:function(){var t=this.wrapperEl;return this.removeListeners(),t.removeChild(this.upperCanvasEl),t.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){b.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,b.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(t){var e=this._activeObject;e&&e._renderControls(t)},_toObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(t),n=this.callSuper("_toObject",t,e,i);return this._unwindGroupTransformOnObject(t,r),n},_realizeGroupTransformOnObject:function(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){var e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(i){e[i]=t[i]})),b.util.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null},_unwindGroupTransformOnObject:function(t,e){e&&t.set(e)},_setSVGObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(e);this.callSuper("_setSVGObject",t,e,i),this._unwindGroupTransformOnObject(e,r)},setViewportTransform:function(t){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),b.StaticCanvas.prototype.setViewportTransform.call(this,t)}}),b.StaticCanvas)"prototype"!==r&&(b.Canvas[r]=b.StaticCanvas[r])}(),function(){var t=b.util.addListener,e=b.util.removeListener,i={passive:!1};function r(t,e){return t.button&&t.button===e-1}b.util.object.extend(b.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(t,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(t,e){var r=this.upperCanvasEl,n=this._getEventPrefix();t(b.window,"resize",this._onResize),t(r,n+"down",this._onMouseDown),t(r,n+"move",this._onMouseMove,i),t(r,n+"out",this._onMouseOut),t(r,n+"enter",this._onMouseEnter),t(r,"wheel",this._onMouseWheel),t(r,"contextmenu",this._onContextMenu),t(r,"dblclick",this._onDoubleClick),t(r,"dragover",this._onDragOver),t(r,"dragenter",this._onDragEnter),t(r,"dragleave",this._onDragLeave),t(r,"drop",this._onDrop),this.enablePointerEvents||t(r,"touchstart",this._onTouchStart,i),"undefined"!=typeof eventjs&&e in eventjs&&(eventjs[e](r,"gesture",this._onGesture),eventjs[e](r,"drag",this._onDrag),eventjs[e](r,"orientation",this._onOrientationChange),eventjs[e](r,"shake",this._onShake),eventjs[e](r,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(e,"remove");var t=this._getEventPrefix();e(b.document,t+"up",this._onMouseUp),e(b.document,"touchend",this._onTouchEnd,i),e(b.document,t+"move",this._onMouseMove,i),e(b.document,"touchmove",this._onMouseMove,i)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._onDrop.bind(this),this.eventsBound=!0)},_onGesture:function(t,e){this.__onTransformGesture&&this.__onTransformGesture(t,e)},_onDrag:function(t,e){this.__onDrag&&this.__onDrag(t,e)},_onMouseWheel:function(t){this.__onMouseWheel(t)},_onMouseOut:function(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var i=this;this._hoveredTargets.forEach((function(r){i.fire("mouse:out",{target:e,e:t}),r&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter:function(t){this._currentTransform||this.findTarget(t)||(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(t,e){this.__onOrientationChange&&this.__onOrientationChange(t,e)},_onShake:function(t,e){this.__onShake&&this.__onShake(t,e)},_onLongPress:function(t,e){this.__onLongPress&&this.__onLongPress(t,e)},_onDragOver:function(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onDrop:function(t){return this._simpleEventHandler("drop:before",t),this._simpleEventHandler("drop",t)},_onContextMenu:function(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId:function(t){var e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1},_isMainEvent:function(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId)},_onTouchStart:function(r){r.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(r)),this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();t(b.document,"touchend",this._onTouchEnd,i),t(b.document,"touchmove",this._onMouseMove,i),e(n,s+"down",this._onMouseDown)},_onMouseDown:function(r){this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();e(n,s+"move",this._onMouseMove,i),t(b.document,s+"up",this._onMouseUp),t(b.document,s+"move",this._onMouseMove,i)},_onTouchEnd:function(r){if(!(r.touches.length>0)){this.__onMouseUp(r),this._resetTransformEventData(),this.mainTouchId=null;var n=this._getEventPrefix();e(b.document,"touchend",this._onTouchEnd,i),e(b.document,"touchmove",this._onMouseMove,i);var s=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){t(s.upperCanvasEl,n+"down",s._onMouseDown),s._willAddMouseDown=0}),400)}},_onMouseUp:function(r){this.__onMouseUp(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();this._isMainEvent(r)&&(e(b.document,s+"up",this._onMouseUp),e(b.document,s+"move",this._onMouseMove,i),t(n,s+"move",this._onMouseMove,i))},_onMouseMove:function(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize:function(){this.calcOffset()},_shouldRender:function(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp:function(t){var e,i=this._currentTransform,n=this._groupSelector,s=!1,o=!n||0===n.left&&0===n.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),r(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,o);else{if(r(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,o),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(i&&(this._finalizeCurrentTransform(t),s=i.actionPerformed),!o){var a=e===this._activeObject;this._maybeGroupObjects(t),s||(s=this._shouldRender(e)||!a&&e===this._activeObject)}var h,l;if(e){if(h=e._findTargetCorner(this.getPointer(t,!0),b.util.isTouchEvent(t)),e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),s=!0;else{var c=e.controls[h],u=c&&c.getMouseUpHandler(t,e,c);u&&u(t,i,(l=this.getPointer(t)).x,l.y)}e.isMoving=!1}if(i&&(i.target!==e||i.corner!==h)){var d=i.target&&i.target.controls[i.corner],f=d&&d.getMouseUpHandler(t,e,c);l=l||this.getPointer(t),f&&f(t,i,l.x,l.y)}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,o),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),s?this.requestRenderAll():o||this.renderTop()}}},_simpleEventHandler:function(t,e){var i=this.findTarget(e),r=this.targets,n={e:e,target:i,subTargets:r};if(this.fire(t,n),i&&i.fire(t,n),!r)return i;for(var s=0;s1&&(e=new b.ActiveSelection(i.reverse(),{canvas:this}),this.setActiveObject(e,t))},_collectObjects:function(t){for(var e,i=[],r=this._groupSelector.ex,n=this._groupSelector.ey,s=r+this._groupSelector.left,o=n+this._groupSelector.top,a=new b.Point(v(r,s),v(n,o)),h=new b.Point(y(r,s),y(n,o)),l=!this.selectionFullyContained,c=r===s&&n===o,u=this._objects.length;u--&&!((e=this._objects[u])&&e.selectable&&e.visible&&(l&&e.intersectsWithRect(a,h,!0)||e.isContainedWithinRect(a,h,!0)||l&&e.containsPoint(a,null,!0)||l&&e.containsPoint(h,null,!0))&&(i.push(e),c)););return i.length>1&&(i=i.filter((function(e){return!e.onSelect({e:t})}))),i},_maybeGroupObjects:function(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}),b.util.object.extend(b.StaticCanvas.prototype,{toDataURL:function(t){t||(t={});var e=t.format||"png",i=t.quality||1,r=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),n=this.toCanvasElement(r,t);return b.util.toDataURL(n,e,i)},toCanvasElement:function(t,e){t=t||1;var i=((e=e||{}).width||this.width)*t,r=(e.height||this.height)*t,n=this.getZoom(),s=this.width,o=this.height,a=n*t,h=this.viewportTransform,l=(h[4]-(e.left||0))*t,c=(h[5]-(e.top||0))*t,u=this.interactive,d=[a,0,0,a,l,c],f=this.enableRetinaScaling,g=b.util.createCanvasElement(),m=this.contextTop;return g.width=i,g.height=r,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=d,this.width=i,this.height=r,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=h,this.width=s,this.height=o,this.calcViewportBoundaries(),this.interactive=u,this.enableRetinaScaling=f,this.contextTop=m,g}}),b.util.object.extend(b.StaticCanvas.prototype,{loadFromJSON:function(t,e,i){if(t){var r="string"==typeof t?JSON.parse(t):b.util.object.clone(t),n=this,s=r.clipPath,o=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete r.clipPath,this._enlivenObjects(r.objects,(function(t){n.clear(),n._setBgOverlay(r,(function(){s?n._enlivenObjects([s],(function(i){n.clipPath=i[0],n.__setupCanvas.call(n,r,t,o,e)})):n.__setupCanvas.call(n,r,t,o,e)}))}),i),this}},__setupCanvas:function(t,e,i,r){var n=this;e.forEach((function(t,e){n.insertAt(t,e)})),this.renderOnAddRemove=i,delete t.objects,delete t.backgroundImage,delete t.overlayImage,delete t.background,delete t.overlay,this._setOptions(t),this.renderAll(),r&&r()},_setBgOverlay:function(t,e){var i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(t.backgroundImage||t.overlayImage||t.background||t.overlay){var r=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&e&&e()};this.__setBgOverlay("backgroundImage",t.backgroundImage,i,r),this.__setBgOverlay("overlayImage",t.overlayImage,i,r),this.__setBgOverlay("backgroundColor",t.background,i,r),this.__setBgOverlay("overlayColor",t.overlay,i,r)}else e&&e()},__setBgOverlay:function(t,e,i,r){var n=this;if(!e)return i[t]=!0,void(r&&r());"backgroundImage"===t||"overlayImage"===t?b.util.enlivenObjects([e],(function(e){n[t]=e[0],i[t]=!0,r&&r()})):this["set"+b.util.string.capitalize(t,!0)](e,(function(){i[t]=!0,r&&r()}))},_enlivenObjects:function(t,e,i){t&&0!==t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),null,i):e&&e([])},_toDataURL:function(t,e){this.clone((function(i){e(i.toDataURL(t))}))},_toDataURLWithMultiplier:function(t,e,i){this.clone((function(r){i(r.toDataURLWithMultiplier(t,e))}))},clone:function(t,e){var i=JSON.stringify(this.toJSON(e));this.cloneWithoutData((function(e){e.loadFromJSON(i,(function(){t&&t(e)}))}))},cloneWithoutData:function(t){var e=b.util.createCanvasElement();e.width=this.width,e.height=this.height;var i=new b.Canvas(e);this.backgroundImage?(i.setBackgroundImage(this.backgroundImage.src,(function(){i.renderAll(),t&&t(i)})),i.backgroundImageOpacity=this.backgroundImageOpacity,i.backgroundImageStretch=this.backgroundImageStretch):t&&t(i)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n=e.util.toFixed,s=e.util.string.capitalize,o=e.util.degreesToRadians,a=!e.isLikelyNode;e.Object||(e.Object=e.util.createClass(e.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:a,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(t){t&&this.setOptions(t)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=e.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(t){var i=e.perfLimitSizeTotal,r=t.width,n=t.height,s=e.maxCacheSideLimit,o=e.minCacheSideLimit;if(r<=s&&n<=s&&r*n<=i)return rc&&(t.zoomX/=r/c,t.width=c,t.capped=!0),n>u&&(t.zoomY/=n/u,t.height=u,t.capped=!0),t},_getCacheCanvasDimensions:function(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),i=e.x*t.scaleX/this.scaleX,r=e.y*t.scaleY/this.scaleY;return{width:i+2,height:r+2,zoomX:t.scaleX,zoomY:t.scaleY,x:i,y:r}},_updateCacheCanvas:function(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var i=t._currentTransform.target,r=t._currentTransform.action;if(this===i&&r.slice&&"scale"===r.slice(0,5))return!1}var n,s,o=this._cacheCanvas,a=this._limitCacheSize(this._getCacheCanvasDimensions()),h=e.minCacheSideLimit,l=a.width,c=a.height,u=a.zoomX,d=a.zoomY,f=l!==this.cacheWidth||c!==this.cacheHeight,g=this.zoomX!==u||this.zoomY!==d,m=f||g,p=0,_=0,v=!1;if(f){var y=this._cacheCanvas.width,w=this._cacheCanvas.height,E=l>y||c>w;v=E||(l<.9*y||c<.9*w)&&y>h&&w>h,E&&!a.capped&&(l>h||c>h)&&(p=.1*l,_=.1*c)}return this instanceof e.Text&&this.path&&(m=!0,v=!0,p+=this.getHeightOfLine(0)*this.zoomX,_+=this.getHeightOfLine(0)*this.zoomY),!!m&&(v?(o.width=Math.ceil(l+p),o.height=Math.ceil(c+_)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,o.width,o.height)),n=a.x/2,s=a.y/2,this.cacheTranslationX=Math.round(o.width/2-n)+n,this.cacheTranslationY=Math.round(o.height/2-s)+s,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(u,d),this.zoomX=u,this.zoomY=d,!0)},setOptions:function(t){this._setOptions(t),this._initGradient(t.fill,"fill"),this._initGradient(t.stroke,"stroke"),this._initPattern(t.fill,"fill"),this._initPattern(t.stroke,"stroke")},transform:function(t){var e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,i=this.calcTransformMatrix(!e);t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},toObject:function(t){var i=e.Object.NUM_FRACTION_DIGITS,r={type:this.type,version:e.version,originX:this.originX,originY:this.originY,left:n(this.left,i),top:n(this.top,i),width:n(this.width,i),height:n(this.height,i),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:n(this.strokeWidth,i),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:n(this.strokeMiterLimit,i),scaleX:n(this.scaleX,i),scaleY:n(this.scaleY,i),angle:n(this.angle,i),flipX:this.flipX,flipY:this.flipY,opacity:n(this.opacity,i),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:n(this.skewX,i),skewY:n(this.skewY,i)};return this.clipPath&&!this.clipPath.excludeFromExport&&(r.clipPath=this.clipPath.toObject(t),r.clipPath.inverted=this.clipPath.inverted,r.clipPath.absolutePositioned=this.clipPath.absolutePositioned),e.util.populateWithProperties(this,r,t),this.includeDefaultValues||(r=this._removeDefaultValues(r)),r},toDatalessObject:function(t){return this.toObject(t)},_removeDefaultValues:function(t){var i=e.util.getKlass(t.type).prototype;return i.stateProperties.forEach((function(e){"left"!==e&&"top"!==e&&(t[e]===i[e]&&delete t[e],Array.isArray(t[e])&&Array.isArray(i[e])&&0===t[e].length&&0===i[e].length&&delete t[e])})),t},toString:function(){return"#"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=e.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}},getTotalObjectScaling:function(){var t=this.getObjectScaling(),e=t.scaleX,i=t.scaleY;if(this.canvas){var r=this.canvas.getZoom(),n=this.canvas.getRetinaScaling();e*=r*n,i*=r*n}return{scaleX:e,scaleY:i}},getObjectOpacity:function(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t},_set:function(t,i){var r="scaleX"===t||"scaleY"===t,n=this[t]!==i,s=!1;return r&&(i=this._constrainScale(i)),"scaleX"===t&&i<0?(this.flipX=!this.flipX,i*=-1):"scaleY"===t&&i<0?(this.flipY=!this.flipY,i*=-1):"shadow"!==t||!i||i instanceof e.Shadow?"dirty"===t&&this.group&&this.group.set("dirty",i):i=new e.Shadow(i),this[t]=i,n&&(s=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,s&&this.group.set("dirty",!0)):s&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:e.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())},renderCache:function(t){t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this._cacheContext=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!=typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(t,i){if(t.save(),i.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",i.absolutePositioned){var r=e.util.invertTransform(this.calcTransformMatrix());t.transform(r[0],r[1],r[2],r[3],r[4],r[5])}i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},drawObject:function(t,e){var i=this.fill,r=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t,this.clipPath),this.fill=i,this.stroke=r},_drawClipPath:function(t,e){e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t,e))},drawCacheOnCanvas:function(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&this._cacheContext&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!t){var e=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-i/2,e,i)}return!0}return!1},_renderBackground:function(t){if(this.backgroundColor){var e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}},_setOpacity:function(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity},_setStrokeStyles:function(t,e){var i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)},_setFillStyles:function(t,e){var i=e.fill;i&&(i.toLive?(t.fillStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=i)},_setClippingProperties:function(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"},_setLineDash:function(t,e){e&&0!==e.length&&(1&e.length&&e.push.apply(e,e),t.setLineDash(e))},_renderControls:function(t,i){var r,n,s,a=this.getViewportTransform(),h=this.calcTransformMatrix();n=void 0!==(i=i||{}).hasBorders?i.hasBorders:this.hasBorders,s=void 0!==i.hasControls?i.hasControls:this.hasControls,h=e.util.multiplyTransformMatrices(a,h),r=e.util.qrDecompose(h),t.save(),t.translate(r.translateX,r.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(r.angle-=180),t.rotate(o(this.group?r.angle:this.angle)),i.forActiveSelection||this.group?n&&this.drawBordersInGroup(t,r,i):n&&this.drawBorders(t,i),s&&this.drawControls(t,i),t.restore()},_setShadow:function(t){if(this.shadow){var i,r=this.shadow,n=this.canvas,s=n&&n.viewportTransform[0]||1,o=n&&n.viewportTransform[3]||1;i=r.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),n&&n._isRetinaScaling()&&(s*=e.devicePixelRatio,o*=e.devicePixelRatio),t.shadowColor=r.color,t.shadowBlur=r.blur*e.browserShadowBlurConstant*(s+o)*(i.scaleX+i.scaleY)/4,t.shadowOffsetX=r.offsetX*s*i.scaleX,t.shadowOffsetY=r.offsetY*o*i.scaleY}},_removeShadow:function(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)},_applyPatternGradientTransform:function(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var i=e.gradientTransform||e.patternTransform,r=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,r,n):t.transform(1,0,0,1,r,n),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:r,offsetY:n}},_renderPaintInOrder:function(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))},_render:function(){},_renderFill:function(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())},_renderStroke:function(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}},_applyPatternForTransformedGradient:function(t,i){var r,n=this._limitCacheSize(this._getCacheCanvasDimensions()),s=e.util.createCanvasElement(),o=this.canvas.getRetinaScaling(),a=n.x/this.scaleX/o,h=n.y/this.scaleY/o;s.width=a,s.height=h,(r=s.getContext("2d")).beginPath(),r.moveTo(0,0),r.lineTo(a,0),r.lineTo(a,h),r.lineTo(0,h),r.closePath(),r.translate(a/2,h/2),r.scale(n.zoomX/this.scaleX/o,n.zoomY/this.scaleY/o),this._applyPatternGradientTransform(r,i),r.fillStyle=i.toLive(t),r.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(o*this.scaleX/n.zoomX,o*this.scaleY/n.zoomY),t.strokeStyle=r.createPattern(s,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var t=e.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}},_removeTransformMatrix:function(t){var i=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),i=e.util.transformPoint(i,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,i.x+=t.offsetLeft,i.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(i,"center","center")},clone:function(t,i){var r=this.toObject(i);this.constructor.fromObject?this.constructor.fromObject(r,t):e.Object._fromObject("Object",r,t)},cloneAsImage:function(t,i){var r=this.toCanvasElement(i);return t&&t(new e.Image(r)),this},toCanvasElement:function(t){t||(t={});var i=e.util,r=i.saveObjectTransform(this),n=this.group,s=this.shadow,o=Math.abs,a=(t.multiplier||1)*(t.enableRetinaScaling?e.devicePixelRatio:1);delete this.group,t.withoutTransform&&i.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var h,l,c,u,d=e.util.createCanvasElement(),f=this.getBoundingRect(!0,!0),g=this.shadow,m={x:0,y:0};g&&(l=g.blur,h=g.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),m.x=2*Math.round(o(g.offsetX)+l)*o(h.scaleX),m.y=2*Math.round(o(g.offsetY)+l)*o(h.scaleY)),c=f.width+m.x,u=f.height+m.y,d.width=Math.ceil(c),d.height=Math.ceil(u);var p=new e.StaticCanvas(d,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(p.backgroundColor="#fff"),this.setPositionByOrigin(new e.Point(p.width/2,p.height/2),"center","center");var _=this.canvas;p.add(this);var v=p.toCanvasElement(a||1,t);return this.shadow=s,this.set("canvas",_),n&&(this.group=n),this.set(r).setCoords(),p._objects=[],p.dispose(),p=null,v},toDataURL:function(t){return t||(t={}),e.util.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)},isType:function(t){return arguments.length>1?Array.from(arguments).includes(this.type):this.type===t},complexity:function(){return 1},toJSON:function(t){return this.toObject(t)},rotate:function(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(t,i){i=i||this.canvas.getPointer(t);var r=new e.Point(i.x,i.y),n=this._getLeftTopCoords();return this.angle&&(r=e.util.rotatePoint(r,n,o(-this.angle))),{x:r.x-n.x,y:r.y-n.y}},_setupCompositeOperation:function(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){e.runningAnimations&&e.runningAnimations.cancelByTarget(this)}}),e.util.createAccessors&&e.util.createAccessors(e.Object),i(e.Object.prototype,e.Observable),e.Object.NUM_FRACTION_DIGITS=2,e.Object.ENLIVEN_PROPS=["clipPath"],e.Object._fromObject=function(t,i,n,s){var o=e[t];i=r(i,!0),e.util.enlivenPatterns([i.fill,i.stroke],(function(t){void 0!==t[0]&&(i.fill=t[0]),void 0!==t[1]&&(i.stroke=t[1]),e.util.enlivenObjectEnlivables(i,i,(function(){var t=s?new o(i[s],i):new o(i);n&&n(t)}))}))},e.Object.__uid=0)}(e),w=b.util.degreesToRadians,E={left:-.5,center:0,right:.5},C={top:-.5,center:0,bottom:.5},b.util.object.extend(b.Object.prototype,{translateToGivenOrigin:function(t,e,i,r,n){var s,o,a,h=t.x,l=t.y;return"string"==typeof e?e=E[e]:e-=.5,"string"==typeof r?r=E[r]:r-=.5,"string"==typeof i?i=C[i]:i-=.5,"string"==typeof n?n=C[n]:n-=.5,o=n-i,((s=r-e)||o)&&(a=this._getTransformedDimensions(),h=t.x+s*a.x,l=t.y+o*a.y),new b.Point(h,l)},translateToCenterPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,e,i,"center","center");return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},translateToOriginPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,"center","center",e,i);return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},getCenterPoint:function(){var t=new b.Point(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)},getPointByOrigin:function(t,e){var i=this.getCenterPoint();return this.translateToOriginPoint(i,t,e)},toLocalPoint:function(t,e,i){var r,n,s=this.getCenterPoint();return r=void 0!==e&&void 0!==i?this.translateToGivenOrigin(s,"center","center",e,i):new b.Point(this.left,this.top),n=new b.Point(t.x,t.y),this.angle&&(n=b.util.rotatePoint(n,s,-w(this.angle))),n.subtractEquals(r)},setPositionByOrigin:function(t,e,i){var r=this.translateToCenterPoint(t,e,i),n=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",n.x),this.set("top",n.y)},adjustPosition:function(t){var e,i,r=w(this.angle),n=this.getScaledWidth(),s=b.util.cos(r)*n,o=b.util.sin(r)*n;e="string"==typeof this.originX?E[this.originX]:this.originX-.5,i="string"==typeof t?E[t]:t-.5,this.left+=s*(i-e),this.top+=o*(i-e),this.setCoords(),this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y},_resetOrigin:function(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}}),function(){var t=b.util,e=t.degreesToRadians,i=t.multiplyTransformMatrices,r=t.transformPoint;t.object.extend(b.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(t,e){return e?t?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),t?this.aCoords:this.lineCoords)},getCoords:function(t,e){return i=this._getCoords(t,e),[new b.Point(i.tl.x,i.tl.y),new b.Point(i.tr.x,i.tr.y),new b.Point(i.br.x,i.br.y),new b.Point(i.bl.x,i.bl.y)];var i},intersectsWithRect:function(t,e,i,r){var n=this.getCoords(i,r);return"Intersection"===b.Intersection.intersectPolygonRectangle(n,t,e).status},intersectsWithObject:function(t,e,i){return"Intersection"===b.Intersection.intersectPolygonPolygon(this.getCoords(e,i),t.getCoords(e,i)).status||t.isContainedWithinObject(this,e,i)||this.isContainedWithinObject(t,e,i)},isContainedWithinObject:function(t,e,i){for(var r=this.getCoords(e,i),n=e?t.aCoords:t.lineCoords,s=0,o=t._getImageLines(n);s<4;s++)if(!t.containsPoint(r[s],o))return!1;return!0},isContainedWithinRect:function(t,e,i,r){var n=this.getBoundingRect(i,r);return n.left>=t.x&&n.left+n.width<=e.x&&n.top>=t.y&&n.top+n.height<=e.y},containsPoint:function(t,e,i,r){var n=this._getCoords(i,r),s=(e=e||this._getImageLines(n),this._findCrossPoints(t,e));return 0!==s&&s%2==1},isOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.getCoords(!0,t).some((function(t){return t.x<=i.x&&t.x>=e.x&&t.y<=i.y&&t.y>=e.y}))||!!this.intersectsWithRect(e,i,!0,t)||this._containsCenterOfCanvas(e,i,t)},_containsCenterOfCanvas:function(t,e,i){var r={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(r,null,!0,i)},isPartiallyOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,i,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=i.x||t.x<=e.x)&&(t.y>=i.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,i,t)},_getImageLines:function(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}},_findCrossPoints:function(t,e){var i,r,n,s=0;for(var o in e)if(!((n=e[o]).o.y=t.y&&n.d.y>=t.y||(n.o.x===n.d.x&&n.o.x>=t.x?r=n.o.x:(i=(n.d.y-n.o.y)/(n.d.x-n.o.x),r=-(t.y-0*t.x-(n.o.y-i*n.o.x))/(0-i)),r>=t.x&&(s+=1),2!==s)))break;return s},getBoundingRect:function(e,i){var r=this.getCoords(e,i);return t.makeBoundingBoxFromPoints(r)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(t){return Math.abs(t)\n')}},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})},toClipPathSVG:function(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})},_createBaseClipPathSVGMarkup:function(t,e){var i=(e=e||{}).reviver,r=e.additionalTransform||"",n=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),s=t.indexOf("COMMON_PARTS");return t[s]=n,i?i(t.join("")):t.join("")},_createBaseSVGMarkup:function(t,e){var i,r,n=(e=e||{}).noStyle,s=e.reviver,o=n?"":'style="'+this.getSvgStyles()+'" ',a=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",h=this.clipPath,l=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",c=h&&h.absolutePositioned,u=this.stroke,d=this.fill,f=this.shadow,g=[],m=t.indexOf("COMMON_PARTS"),p=e.additionalTransform;return h&&(h.clipPathId="CLIPPATH_"+b.Object.__uid++,r='\n'+h.toClipPathSVG(s)+"\n"),c&&g.push("\n"),g.push("\n"),i=[o,l,n?"":this.addPaintOrder()," ",p?'transform="'+p+'" ':""].join(""),t[m]=i,d&&d.toLive&&g.push(d.toSVG(this)),u&&u.toLive&&g.push(u.toSVG(this)),f&&g.push(f.toSVG(this)),h&&g.push(r),g.push(t.join("")),g.push("\n"),c&&g.push("\n"),s?s(g.join("")):g.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var t=b.util.object.extend,e="stateProperties";function i(e,i,r){var n={};r.forEach((function(t){n[t]=e[t]})),t(e[i],n,!0)}function r(t,e,i){if(t===e)return!0;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(var n=0,s=t.length;n=0;h--)if(n=a[h],this.isControlVisible(n)&&(r=this._getImageLines(e?this.oCoords[n].touchCorner:this.oCoords[n].corner),0!==(i=this._findCrossPoints({x:s,y:o},r))&&i%2==1))return this.__corner=n,n;return!1},forEachControl:function(t){for(var e in this.controls)t(this.controls[e],e,this)},_setCornerCoords:function(){var t=this.oCoords;for(var e in t){var i=this.controls[e];t[e].corner=i.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=i.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}},drawSelectionBackground:function(e){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;e.save();var i=this.getCenterPoint(),r=this._calculateCurrentDimensions(),n=this.canvas.viewportTransform;return e.translate(i.x,i.y),e.scale(1/n[0],1/n[3]),e.rotate(t(this.angle)),e.fillStyle=this.selectionBackgroundColor,e.fillRect(-r.x/2,-r.y/2,r.x,r.y),e.restore(),this},drawBorders:function(t,e){e=e||{};var i=this._calculateCurrentDimensions(),r=this.borderScaleFactor,n=i.x+r,s=i.y+r,o=void 0!==e.hasControls?e.hasControls:this.hasControls,a=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-n/2,-s/2,n,s),o&&(t.beginPath(),this.forEachControl((function(e,i,r){e.withConnection&&e.getVisibility(r,i)&&(a=!0,t.moveTo(e.x*n,e.y*s),t.lineTo(e.x*n+e.offsetX,e.y*s+e.offsetY))})),a&&t.stroke()),t.restore(),this},drawBordersInGroup:function(t,e,i){i=i||{};var r=b.util.sizeAfterTransform(this.width,this.height,e),n=this.strokeWidth,s=this.strokeUniform,o=this.borderScaleFactor,a=r.x+n*(s?this.canvas.getZoom():e.scaleX)+o,h=r.y+n*(s?this.canvas.getZoom():e.scaleY)+o;return t.save(),this._setLineDash(t,i.borderDashArray||this.borderDashArray),t.strokeStyle=i.borderColor||this.borderColor,t.strokeRect(-a/2,-h/2,a,h),t.restore(),this},drawControls:function(t,e){e=e||{},t.save();var i,r,n=this.canvas.getRetinaScaling();return t.setTransform(n,0,0,n,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl((function(n,s,o){r=o.oCoords[s],n.getVisibility(o,s)&&(i&&(r=b.util.transformPoint(r,i)),n.render(t,r.x,r.y,e,o))})),t.restore(),this},isControlVisible:function(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)},setControlVisible:function(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this},setControlsVisibility:function(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this},onDeselect:function(){},onSelect:function(){}})}(),b.util.object.extend(b.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(e){t.set("left",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxCenterObjectV:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(e){t.set("top",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxRemove:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(e){t.set("opacity",e),s.requestRenderAll(),n()},onComplete:function(){s.remove(t),r()}})}}),b.util.object.extend(b.Object.prototype,{animate:function(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,i=[],r=[];for(t in arguments[0])i.push(t);for(var n=0,s=i.length;n-1||n&&s.colorProperties.indexOf(n[1])>-1,a=n?this.get(n[0])[n[1]]:this.get(t);"from"in i||(i.from=a),o||(e=~e.indexOf("=")?a+parseFloat(e.replace("=","")):parseFloat(e));var h={target:this,startValue:i.from,endValue:e,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(t,e,r){return i.abort.call(s,t,e,r)},onChange:function(e,o,a){n?s[n[0]][n[1]]=e:s.set(t,e),r||i.onChange&&i.onChange(e,o,a)},onComplete:function(t,e,n){r||(s.setCoords(),i.onComplete&&i.onComplete(t,e,n))}};return o?b.util.animateColor(h.startValue,h.endValue,h.duration,h):b.util.animate(h)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n={x1:1,x2:1,y1:1,y2:1};function s(t,e){var i=t.origin,r=t.axis1,n=t.axis2,s=t.dimension,o=e.nearest,a=e.center,h=e.farthest;return function(){switch(this.get(i)){case o:return Math.min(this.get(r),this.get(n));case a:return Math.min(this.get(r),this.get(n))+.5*this.get(s);case h:return Math.max(this.get(r),this.get(n))}}}e.Line?e.warn("fabric.Line is already defined"):(e.Line=e.util.createClass(e.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:e.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(t,e){t||(t=[0,0,0,0]),this.callSuper("initialize",e),this.set("x1",t[0]),this.set("y1",t[1]),this.set("x2",t[2]),this.set("y2",t[3]),this._setWidthHeight(e)},_setWidthHeight:function(t){t||(t={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in t?t.left:this._getLeftToOriginX(),this.top="top"in t?t.top:this._getTopToOriginY()},_set:function(t,e){return this.callSuper("_set",t,e),void 0!==n[t]&&this._setWidthHeight(),this},_getLeftToOriginX:s({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:s({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(t){t.beginPath();var e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;var i=t.strokeStyle;t.strokeStyle=this.stroke||t.fillStyle,this.stroke&&this._renderStroke(t),t.strokeStyle=i},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(t){return i(this.callSuper("toObject",t),this.calcLinePoints())},_getNonTransformedDimensions:function(){var t=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t},calcLinePoints:function(){var t=this.x1<=this.x2?-1:1,e=this.y1<=this.y2?-1:1,i=t*this.width*.5,r=e*this.height*.5;return{x1:i,x2:t*this.width*-.5,y1:r,y2:e*this.height*-.5}},_toSVG:function(){var t=this.calcLinePoints();return["\n']}}),e.Line.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),e.Line.fromElement=function(t,r,n){n=n||{};var s=e.parseAttributes(t,e.Line.ATTRIBUTE_NAMES),o=[s.x1||0,s.y1||0,s.x2||0,s.y2||0];r(new e.Line(o,i(s,n)))},e.Line.fromObject=function(t,i){var n=r(t,!0);n.points=[t.x1,t.y1,t.x2,t.y2],e.Object._fromObject("Line",n,(function(t){delete t.points,i&&i(t)}),"points")})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians;e.Circle?e.warn("fabric.Circle is already defined."):(e.Circle=e.util.createClass(e.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,cacheProperties:e.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(t,e){return this.callSuper("_set",t,e),"radius"===t&&this.setRadius(e),this},toObject:function(t){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(t))},_toSVG:function(){var t,r=(this.endAngle-this.startAngle)%360;if(0===r)t=["\n'];else{var n=i(this.startAngle),s=i(this.endAngle),o=this.radius;t=['180?"1":"0")+" 1"," "+e.util.cos(s)*o+" "+e.util.sin(s)*o,'" ',"COMMON_PARTS"," />\n"]}return t},_render:function(t){t.beginPath(),t.arc(0,0,this.radius,i(this.startAngle),i(this.endAngle),!1),this._renderPaintInOrder(t)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}}),e.Circle.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),e.Circle.fromElement=function(t,i){var r,n=e.parseAttributes(t,e.Circle.ATTRIBUTE_NAMES);if(!("radius"in(r=n)&&r.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");n.left=(n.left||0)-n.radius,n.top=(n.top||0)-n.radius,i(new e.Circle(n))},e.Circle.fromObject=function(t,i){e.Object._fromObject("Circle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={});e.Triangle?e.warn("fabric.Triangle is already defined"):(e.Triangle=e.util.createClass(e.Object,{type:"triangle",width:100,height:100,_render:function(t){var e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,i),t.lineTo(0,-i),t.lineTo(e,i),t.closePath(),this._renderPaintInOrder(t)},_toSVG:function(){var t=this.width/2,e=this.height/2;return["']}}),e.Triangle.fromObject=function(t,i){return e.Object._fromObject("Triangle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=2*Math.PI;e.Ellipse?e.warn("fabric.Ellipse is already defined."):(e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this.set("rx",t&&t.rx||0),this.set("ry",t&&t.ry||0)},_set:function(t,e){switch(this.callSuper("_set",t,e),t){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']},_render:function(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,i,!1),t.restore(),this._renderPaintInOrder(t)}}),e.Ellipse.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),e.Ellipse.fromElement=function(t,i){var r=e.parseAttributes(t,e.Ellipse.ATTRIBUTE_NAMES);r.left=(r.left||0)-r.rx,r.top=(r.top||0)-r.ry,i(new e.Ellipse(r))},e.Ellipse.fromObject=function(t,i){e.Object._fromObject("Ellipse",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend;e.Rect?e.warn("fabric.Rect is already defined"):(e.Rect=e.util.createClass(e.Object,{stateProperties:e.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(t){var e=this.rx?Math.min(this.rx,this.width/2):0,i=this.ry?Math.min(this.ry,this.height/2):0,r=this.width,n=this.height,s=-this.width/2,o=-this.height/2,a=0!==e||0!==i,h=.4477152502;t.beginPath(),t.moveTo(s+e,o),t.lineTo(s+r-e,o),a&&t.bezierCurveTo(s+r-h*e,o,s+r,o+h*i,s+r,o+i),t.lineTo(s+r,o+n-i),a&&t.bezierCurveTo(s+r,o+n-h*i,s+r-h*e,o+n,s+r-e,o+n),t.lineTo(s+e,o+n),a&&t.bezierCurveTo(s+h*e,o+n,s,o+n-h*i,s,o+n-i),t.lineTo(s,o+i),a&&t.bezierCurveTo(s,o+h*i,s+h*e,o,s+e,o),t.closePath(),this._renderPaintInOrder(t)},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']}}),e.Rect.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),e.Rect.fromElement=function(t,r,n){if(!t)return r(null);n=n||{};var s=e.parseAttributes(t,e.Rect.ATTRIBUTE_NAMES);s.left=s.left||0,s.top=s.top||0,s.height=s.height||0,s.width=s.width||0;var o=new e.Rect(i(n?e.util.object.clone(n):{},s));o.visible=o.visible&&o.width>0&&o.height>0,r(o)},e.Rect.fromObject=function(t,i){return e.Object._fromObject("Rect",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.array.min,n=e.util.array.max,s=e.util.toFixed,o=e.util.projectStrokeOnPoints;e.Polyline?e.warn("fabric.Polyline is already defined"):(e.Polyline=e.util.createClass(e.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:e.Object.prototype.cacheProperties.concat("points"),initialize:function(t,e){e=e||{},this.points=t||[],this.callSuper("initialize",e),this._setPositionDimensions(e)},_projectStrokeOnPoints:function(){return o(this.points,this,!0)},_setPositionDimensions:function(t){var e,i=this._calcDimensions(t),r=this.exactBoundingBox?this.strokeWidth:0;this.width=i.width-r,this.height=i.height-r,t.fromSVG||(e=this.translateToGivenOrigin({x:i.left-this.strokeWidth/2+r/2,y:i.top-this.strokeWidth/2+r/2},"left","top",this.originX,this.originY)),void 0===t.left&&(this.left=t.fromSVG?i.left:e.x),void 0===t.top&&(this.top=t.fromSVG?i.top:e.y),this.pathOffset={x:i.left+this.width/2+r/2,y:i.top+this.height/2+r/2}},_calcDimensions:function(){var t=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,e=r(t,"x")||0,i=r(t,"y")||0;return{left:e,top:i,width:(n(t,"x")||0)-e,height:(n(t,"y")||0)-i}},toObject:function(t){return i(this.callSuper("toObject",t),{points:this.points.concat()})},_toSVG:function(){for(var t=[],i=this.pathOffset.x,r=this.pathOffset.y,n=e.Object.NUM_FRACTION_DIGITS,o=0,a=this.points.length;o\n']},commonRender:function(t){var e,i=this.points.length,r=this.pathOffset.x,n=this.pathOffset.y;if(!i||isNaN(this.points[i-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-r,this.points[0].y-n);for(var s=0;s"},toObject:function(t){return n(this.callSuper("toObject",t),{path:this.path.map((function(t){return t.slice()}))})},toDatalessObject:function(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e},_toSVG:function(){return["\n"]},_getOffsetTransform:function(){var t=e.Object.NUM_FRACTION_DIGITS;return" translate("+o(-this.pathOffset.x,t)+", "+o(-this.pathOffset.y,t)+")"},toClipPathSVG:function(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},toSVG:function(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var t,n,s=[],o=[],a=0,h=0,l=0,c=0,u=0,d=this.path.length;u"},addWithUpdate:function(t){var i=!!this.group;return this._restoreObjectsState(),e.util.resetObjectTransform(this),t&&(i&&e.util.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,i?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(t){return this._restoreObjectsState(),e.util.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)},_onObjectRemoved:function(t){this.dirty=!0,delete t.group},_set:function(t,i){var r=this._objects.length;if(this.useSetOnGroup)for(;r--;)this._objects[r].setOnGroup(t,i);if("canvas"===t)for(;r--;)this._objects[r]._set(t,i);e.Object.prototype._set.call(this,t,i)},toObject:function(t){var i=this.includeDefaultValues,r=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(e){var r=e.includeDefaultValues;e.includeDefaultValues=i;var n=e.toObject(t);return e.includeDefaultValues=r,n})),n=e.Object.prototype.toObject.call(this,t);return n.objects=r,n},toDatalessObject:function(t){var i,r=this.sourcePath;if(r)i=r;else{var n=this.includeDefaultValues;i=this._objects.map((function(e){var i=e.includeDefaultValues;e.includeDefaultValues=n;var r=e.toDatalessObject(t);return e.includeDefaultValues=i,r}))}var s=e.Object.prototype.toDatalessObject.call(this,t);return s.objects=i,s},render:function(t){this._transformDone=!0,this.callSuper("render",t),this._transformDone=!1},shouldCache:function(){var t=e.Object.prototype.shouldCache.call(this);if(t)for(var i=0,r=this._objects.length;i\n"],i=0,r=this._objects.length;i\n"),e},getSvgStyles:function(){var t=void 0!==this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")},toClipPathSVG:function(t){for(var e=[],i=0,r=this._objects.length;i"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",t,e),void 0===(i=i||{}).hasControls&&(i.hasControls=!1),i.forActiveSelection=!0;for(var r=0,n=this._objects.length;r\n','\t\n',"\n"),o=' clip-path="url(#imageCrop_'+h+')" '}if(this.imageSmoothing||(a='" image-rendering="optimizeSpeed'),i.push("\t\n"),this.stroke||this.strokeDashArray){var l=this.fill;this.fill=null,t=["\t\n'],this.fill=l}return"fill"!==this.paintFirst?e.concat(t,i):e.concat(i,t)},getSrc:function(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""},setSrc:function(t,e,i){return b.util.loadImage(t,(function(t,r){this.setElement(t,i),this._setWidthHeight(),e&&e(this,r)}),this,i&&i.crossOrigin),this},toString:function(){return'#'},applyResizeFilters:function(){var t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),r=i.scaleX,n=i.scaleY,s=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||r>e&&n>e)return this._element=s,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=r,void(this._lastScaleY=n);b.filterBackend||(b.filterBackend=b.initFilterBackend());var o=b.util.createCanvasElement(),a=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,h=s.width,l=s.height;o.width=h,o.height=l,this._element=o,this._lastScaleX=t.scaleX=r,this._lastScaleY=t.scaleY=n,b.filterBackend.applyFilters([t],s,h,l,this._element,a),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height},applyFilters:function(t){if(t=(t=t||this.filters||[]).filter((function(t){return t&&!t.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===t.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var e=this._originalElement,i=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(this._element===this._originalElement){var n=b.util.createCanvasElement();n.width=i,n.height=r,this._element=n,this._filteredEl=n}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,r),this._lastScaleX=1,this._lastScaleY=1;return b.filterBackend||(b.filterBackend=b.initFilterBackend()),b.filterBackend.applyFilters(t,this._originalElement,i,r,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)},drawCacheOnCanvas:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),b.Object.prototype.drawCacheOnCanvas.call(this,t)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(t){var e=this._element;if(e){var i=this._filterScalingX,r=this._filterScalingY,n=this.width,s=this.height,o=Math.min,a=Math.max,h=a(this.cropX,0),l=a(this.cropY,0),c=e.naturalWidth||e.width,u=e.naturalHeight||e.height,d=h*i,f=l*r,g=o(n*i,c-d),m=o(s*r,u-f),p=-n/2,_=-s/2,v=o(n,c/i-h),y=o(s,u/r-l);e&&t.drawImage(e,d,f,g,m,p,_,v,y)}},_needsResize:function(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(t,e){this.setElement(b.util.getById(t),e),b.util.addClass(this.getElement(),b.Image.CSS_CANVAS)},_initConfig:function(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)},_initFilters:function(t,e){t&&t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),"fabric.Image.filters"):e&&e()},_setWidthHeight:function(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0},parsePreserveAspectRatioAttribute:function(){var t,e=b.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),i=this._element.width,r=this._element.height,n=1,s=1,o=0,a=0,h=0,l=0,c=this.width,u=this.height,d={width:c,height:u};return!e||"none"===e.alignX&&"none"===e.alignY?(n=c/i,s=u/r):("meet"===e.meetOrSlice&&(t=(c-i*(n=s=b.util.findScaleToFit(this._element,d)))/2,"Min"===e.alignX&&(o=-t),"Max"===e.alignX&&(o=t),t=(u-r*s)/2,"Min"===e.alignY&&(a=-t),"Max"===e.alignY&&(a=t)),"slice"===e.meetOrSlice&&(t=i-c/(n=s=b.util.findScaleToCover(this._element,d)),"Mid"===e.alignX&&(h=t/2),"Max"===e.alignX&&(h=t),t=r-u/s,"Mid"===e.alignY&&(l=t/2),"Max"===e.alignY&&(l=t),i=c/n,r=u/s)),{width:i,height:r,scaleX:n,scaleY:s,offsetLeft:o,offsetTop:a,cropX:h,cropY:l}}}),b.Image.CSS_CANVAS="canvas-img",b.Image.prototype.getSvgSrc=b.Image.prototype.getSrc,b.Image.fromObject=function(t,e){var i=b.util.object.clone(t);b.util.loadImage(i.src,(function(t,r){r?e&&e(null,!0):b.Image.prototype._initFilters.call(i,i.filters,(function(r){i.filters=r||[],b.Image.prototype._initFilters.call(i,[i.resizeFilter],(function(r){i.resizeFilter=r[0],b.util.enlivenObjectEnlivables(i,i,(function(){var r=new b.Image(t,i);e(r,!1)}))}))}))}),null,i.crossOrigin)},b.Image.fromURL=function(t,e,i){b.util.loadImage(t,(function(t,r){e&&e(new b.Image(t,i),r)}),null,i&&i.crossOrigin)},b.Image.ATTRIBUTE_NAMES=b.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),b.Image.fromElement=function(t,i,r){var n=b.parseAttributes(t,b.Image.ATTRIBUTE_NAMES);b.Image.fromURL(n["xlink:href"],i,e(r?b.util.object.clone(r):{},n))})}(e),b.util.object.extend(b.Object.prototype,{_getAngleValueForStraighten:function(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten())},fxStraighten:function(t){var e=function(){},i=(t=t||{}).onComplete||e,r=t.onChange||e,n=this;return b.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(t){n.rotate(t),r()},onComplete:function(){n.setCoords(),i()}})}}),b.util.object.extend(b.StaticCanvas.prototype,{straightenObject:function(t){return t.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(t){return t.fxStraighten({onChange:this.requestRenderAllBound})}}),function(){function t(t,e){var i="precision "+e+" float;\nvoid main(){}",r=t.createShader(t.FRAGMENT_SHADER);return t.shaderSource(r,i),t.compileShader(r),!!t.getShaderParameter(r,t.COMPILE_STATUS)}function e(t){t&&t.tileSize&&(this.tileSize=t.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}b.isWebglSupported=function(e){if(b.isLikelyNode)return!1;e=e||b.WebglFilterBackend.prototype.tileSize;var i=document.createElement("canvas"),r=i.getContext("webgl")||i.getContext("experimental-webgl"),n=!1;if(r){b.maxTextureSize=r.getParameter(r.MAX_TEXTURE_SIZE),n=b.maxTextureSize>=e;for(var s=["highp","mediump","lowp"],o=0;o<3;o++)if(t(r,s[o])){b.webGlPrecision=s[o];break}}return this.isSupported=n,n},b.WebglFilterBackend=e,e.prototype={tileSize:2048,resources:{},setupGLContext:function(t,e){this.dispose(),this.createWebGLCanvas(t,e),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(t,e)},chooseFastestCopyGLTo2DMethod:function(t,e){var i,r=void 0!==window.performance;try{new ImageData(1,1),i=!0}catch(t){i=!1}var n="undefined"!=typeof ArrayBuffer,s="undefined"!=typeof Uint8ClampedArray;if(r&&i&&n&&s){var o=b.util.createCanvasElement(),a=new ArrayBuffer(t*e*4);if(b.forceGLPutImageData)return this.imageBuffer=a,void(this.copyGLTo2D=x);var h,l,c={imageBuffer:a,destinationWidth:t,destinationHeight:e,targetCanvas:o};o.width=t,o.height=e,h=window.performance.now(),I.call(c,this.gl,c),l=window.performance.now()-h,h=window.performance.now(),x.call(c,this.gl,c),l>window.performance.now()-h?(this.imageBuffer=a,this.copyGLTo2D=x):this.copyGLTo2D=I}},createWebGLCanvas:function(t,e){var i=b.util.createCanvasElement();i.width=t,i.height=e;var r={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},n=i.getContext("webgl",r);n||(n=i.getContext("experimental-webgl",r)),n&&(n.clearColor(0,0,0,0),this.canvas=i,this.gl=n)},applyFilters:function(t,e,i,r,n,s){var o,a=this.gl;s&&(o=this.getCachedTexture(s,e));var h={originalWidth:e.width||e.originalWidth,originalHeight:e.height||e.originalHeight,sourceWidth:i,sourceHeight:r,destinationWidth:i,destinationHeight:r,context:a,sourceTexture:this.createTexture(a,i,r,!o&&e),targetTexture:this.createTexture(a,i,r),originalTexture:o||this.createTexture(a,i,r,!o&&e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:n},l=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,l),t.forEach((function(t){t&&t.applyTo(h)})),function(t){var e=t.targetCanvas,i=e.width,r=e.height,n=t.destinationWidth,s=t.destinationHeight;i===n&&r===s||(e.width=n,e.height=s)}(h),this.copyGLTo2D(a,h),a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(h.sourceTexture),a.deleteTexture(h.targetTexture),a.deleteFramebuffer(l),n.getContext("2d").setTransform(1,0,0,1,0,0),h},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(t,e,i,r){var n=t.createTexture();return t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),r?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),n},getCachedTexture:function(t,e){if(this.textureCache[t])return this.textureCache[t];var i=this.createTexture(this.gl,e.width,e.height,e);return this.textureCache[t]=i,i},evictCachesForKey:function(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])},copyGLTo2D:I,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var t=this.gl,e={renderer:"",vendor:""};if(!t)return e;var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var r=t.getParameter(i.UNMASKED_RENDERER_WEBGL),n=t.getParameter(i.UNMASKED_VENDOR_WEBGL);r&&(e.renderer=r.toLowerCase()),n&&(e.vendor=n.toLowerCase())}return this.gpuInfo=e,e}}}(),function(){var t=function(){};function e(){}b.Canvas2dFilterBackend=e,e.prototype={evictCachesForKey:t,dispose:t,clearWebGLCaches:t,resources:{},applyFilters:function(t,e,i,r,n){var s=n.getContext("2d");s.drawImage(e,0,0,i,r);var o={sourceWidth:i,sourceHeight:r,imageData:s.getImageData(0,0,i,r),originalEl:e,originalImageData:s.getImageData(0,0,i,r),canvasEl:n,ctx:s,filterBackend:this};return t.forEach((function(t){t.applyTo(o)})),o.imageData.width===i&&o.imageData.height===r||(n.width=o.imageData.width,n.height=o.imageData.height),s.putImageData(o.imageData,0,0),o}}}(),b.Image=b.Image||{},b.Image.filters=b.Image.filters||{},b.Image.filters.BaseFilter=b.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(t){t&&this.setOptions(t)},setOptions:function(t){for(var e in t)this[e]=t[e]},createProgram:function(t,e,i){e=e||this.fragmentSource,i=i||this.vertexSource,"highp"!==b.webGlPrecision&&(e=e.replace(/precision highp float/g,"precision "+b.webGlPrecision+" float"));var r=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+t.getShaderInfoLog(r));var n=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+t.getShaderInfoLog(n));var s=t.createProgram();if(t.attachShader(s,r),t.attachShader(s,n),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+t.getProgramInfoLog(s));var o=this.getAttributeLocations(t,s),a=this.getUniformLocations(t,s)||{};return a.uStepW=t.getUniformLocation(s,"uStepW"),a.uStepH=t.getUniformLocation(s,"uStepH"),{program:s,attributeLocations:o,uniformLocations:a}},getAttributeLocations:function(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(t,e,i){var r=e.aPosition,n=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,n),t.enableVertexAttribArray(r),t.vertexAttribPointer(r,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)},_setupFrameBuffer:function(t){var e,i,r=t.context;t.passes>1?(e=t.destinationWidth,i=t.destinationHeight,t.sourceWidth===e&&t.sourceHeight===i||(r.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(r,e,i)),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t.targetTexture,0)):(r.bindFramebuffer(r.FRAMEBUFFER,null),r.finish())},_swapTextures:function(t){t.passes--,t.pass++;var e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e},isNeutralState:function(){var t=this.mainParameter,e=b.Image.filters[this.type].prototype;if(t){if(Array.isArray(e[t])){for(var i=e[t].length;i--;)if(this[t][i]!==e[t][i])return!1;return!0}return e[t]===this[t]}return!1},applyTo:function(t){t.webgl?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},retrieveShader:function(t){return t.programCache.hasOwnProperty(this.type)||(t.programCache[this.type]=this.createProgram(t.context)),t.programCache[this.type]},applyToWebGL:function(t){var e=t.context,i=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(i.program),this.sendAttributeData(e,i.attributeLocations,t.aPosition),e.uniform1f(i.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(i.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,i.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)},unbindAdditionalTexture:function(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(t){this[this.mainParameter]=t},sendUniformData:function(){},createHelpLayer:function(t){if(!t.helpLayer){var e=document.createElement("canvas");e.width=t.sourceWidth,e.height=t.sourceHeight,t.helpLayer=e}},toObject:function(){var t={type:this.type},e=this.mainParameter;return e&&(t[e]=this[e]),t},toJSON:function(){return this.toObject()}}),b.Image.filters.BaseFilter.fromObject=function(t,e){var i=new b.Image.filters[t.type](t);return e&&e(i),i},function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.ColorMatrix=r(i.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(t){this.callSuper("initialize",t),this.matrix=this.matrix.slice(0)},applyTo2d:function(t){var e,i,r,n,s,o=t.imageData.data,a=o.length,h=this.matrix,l=this.colorsOnly;for(s=0;s=w||o<0||o>=y||(h=4*(a*y+o),l=p[f*_+d],e+=m[h]*l,i+=m[h+1]*l,r+=m[h+2]*l,T||(n+=m[h+3]*l));C[s]=e,C[s+1]=i,C[s+2]=r,C[s+3]=T?m[s+3]:n}t.imageData=E},getUniformLocations:function(t,e){return{uMatrix:t.getUniformLocation(e,"uMatrix"),uOpaque:t.getUniformLocation(e,"uOpaque"),uHalfSize:t.getUniformLocation(e,"uHalfSize"),uSize:t.getUniformLocation(e,"uSize")}},sendUniformData:function(t,e){t.uniform1fv(e.uMatrix,this.matrix)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),e.Image.filters.Convolute.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Grayscale=r(i.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(t){var e,i,r=t.imageData.data,n=r.length,s=this.mode;for(e=0;el[0]&&n>l[1]&&s>l[2]&&r 0.0) {\n"+this.fragmentSource[t]+"}\n}"},retrieveShader:function(t){var e,i=this.type+"_"+this.mode;return t.programCache.hasOwnProperty(i)||(e=this.buildSource(this.mode),t.programCache[i]=this.createProgram(t.context,e)),t.programCache[i]},applyTo2d:function(t){var i,r,n,s,o,a,h,l=t.imageData.data,c=l.length,u=1-this.alpha;i=(h=new e.Color(this.color).getSource())[0]*this.alpha,r=h[1]*this.alpha,n=h[2]*this.alpha;for(var d=0;d=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;var i=(e*=Math.PI)/t;return a(e)/e*a(i)/i}},applyTo2d:function(t){var e=t.imageData,i=this.scaleX,r=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/r;var n,s=e.width,a=e.height,h=o(s*i),l=o(a*r);"sliceHack"===this.resizeType?n=this.sliceByTwo(t,s,a,h,l):"hermite"===this.resizeType?n=this.hermiteFastResize(t,s,a,h,l):"bilinear"===this.resizeType?n=this.bilinearFiltering(t,s,a,h,l):"lanczos"===this.resizeType&&(n=this.lanczosResize(t,s,a,h,l)),t.imageData=n},sliceByTwo:function(t,i,n,s,o){var a,h,l=t.imageData,c=.5,u=!1,d=!1,f=i*c,g=n*c,m=e.filterBackend.resources,p=0,_=0,v=i,y=0;for(m.sliceByTwo||(m.sliceByTwo=document.createElement("canvas")),((a=m.sliceByTwo).width<1.5*i||a.height=e)){L=r(1e3*s(b-E.x)),w[L]||(w[L]={});for(var F=C.y-y;F<=C.y+y;F++)F<0||F>=o||(M=r(1e3*s(F-E.y)),w[L][M]||(w[L][M]=f(n(i(L*p,2)+i(M*_,2))/1e3)),(S=w[L][M])>0&&(x+=S,A+=S*c[I=4*(F*e+b)],R+=S*c[I+1],O+=S*c[I+2],D+=S*c[I+3]))}d[I=4*(T*a+h)]=A/x,d[I+1]=R/x,d[I+2]=O/x,d[I+3]=D/x}return++h1&&M<-1||(y=2*M*M*M-3*M*M+1)>0&&(S+=y*f[3+(L=4*(D+x*e))],E+=y,f[L+3]<255&&(y=y*f[L+3]/250),C+=y*f[L],T+=y*f[L+1],b+=y*f[L+2],w+=y)}m[v]=C/w,m[v+1]=T/w,m[v+2]=b/w,m[v+3]=S/E}return g},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),e.Image.filters.Resize.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Contrast=r(i.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(t){if(0!==this.contrast){var e,i=t.imageData.data,r=i.length,n=Math.floor(255*this.contrast),s=259*(n+255)/(255*(259-n));for(e=0;e1&&(e=1/this.aspectRatio):this.aspectRatio<1&&(e=this.aspectRatio),t=e*this.blur*.12,this.horizontal?i[0]=t:i[1]=t,i}}),i.Blur.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Gamma=r(i.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(t){this.gamma=[1,1,1],i.BaseFilter.prototype.initialize.call(this,t)},applyTo2d:function(t){var e,i=t.imageData.data,r=this.gamma,n=i.length,s=1/r[0],o=1/r[1],a=1/r[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),e=0,n=256;e'},_getCacheCanvasDimensions:function(){var t=this.callSuper("_getCacheCanvasDimensions"),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t},_render:function(t){var e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")},_renderText:function(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))},_setTextStyles:function(t,e,i){if(t.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":t.textBaseline="middle";break;case"ascender":t.textBaseline="top";break;case"descender":t.textBaseline="bottom"}t.font=this._getFontDeclaration(e,i)},calcTextWidth:function(){for(var t=this.getLineWidth(0),e=1,i=this._textLines.length;et&&(t=r)}return t},_renderTextLine:function(t,e,i,r,n,s){this._renderChars(t,e,i,r,n,s)},_renderTextLinesBackground:function(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,i,r,n,s,o,a,h=t.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),u=0,d=0,f=this.path,g=0,m=this._textLines.length;g=0:ia?u%=a:u<0&&(u+=a),this._setGraphemeOnPath(u,s,o),u+=s.kernedWidth}return{width:h,numOfSpaces:0}},_setGraphemeOnPath:function(t,i,r){var n=t+i.kernedWidth/2,s=this.path,o=e.util.getPointOnPath(s.path,n,s.segmentsInfo);i.renderLeft=o.x-r.x,i.renderTop=o.y-r.y,i.angle=o.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(t,e,i,r,n){var s,o=this.getCompleteStyleDeclaration(e,i),a=r?this.getCompleteStyleDeclaration(e,i-1):{},h=this._measureChar(t,o,r,a),l=h.kernedWidth,c=h.width;0!==this.charSpacing&&(c+=s=this._getWidthOfCharSpacing(),l+=s);var u={width:c,left:0,height:o.fontSize,kernedWidth:l,deltaY:o.deltaY};if(i>0&&!n){var d=this.__charBounds[e][i-1];u.left=d.left+d.width+h.kernedWidth-h.width}return u},getHeightOfLine:function(t){if(this.__lineHeights[t])return this.__lineHeights[t];for(var e=this._textLines[t],i=this.getHeightOfChar(t,0),r=1,n=e.length;r0){var x=v+s+u;"rtl"===this.direction&&(x=this.width-x-d),l&&_&&(t.fillStyle=_,t.fillRect(x,c+C*r+o,d,this.fontSize/15)),u=f.left,d=f.width,l=g,_=p,r=n,o=a}else d+=f.kernedWidth;x=v+s+u,"rtl"===this.direction&&(x=this.width-x-d),t.fillStyle=p,g&&p&&t.fillRect(x,c+C*r+o,d-E,this.fontSize/15),y+=i}else y+=i;this._removeShadow(t)}},_getFontDeclaration:function(t,i){var r=t||this,n=this.fontFamily,s=e.Text.genericFonts.indexOf(n.toLowerCase())>-1,o=void 0===n||n.indexOf("'")>-1||n.indexOf(",")>-1||n.indexOf('"')>-1||s?r.fontFamily:'"'+r.fontFamily+'"';return[e.isLikelyNode?r.fontWeight:r.fontStyle,e.isLikelyNode?r.fontStyle:r.fontWeight,i?this.CACHE_FONT_SIZE+"px":r.fontSize+"px",o].join(" ")},render:function(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",t)))},_splitTextIntoLines:function(t){for(var i=t.split(this._reNewline),r=new Array(i.length),n=["\n"],s=[],o=0;o-1&&(t.underline=!0),t.textDecoration.indexOf("line-through")>-1&&(t.linethrough=!0),t.textDecoration.indexOf("overline")>-1&&(t.overline=!0),delete t.textDecoration)}b.IText=b.util.createClass(b.Text,b.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(t,e){this.callSuper("initialize",t,e),this.initBehavior()},setSelectionStart:function(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)},setSelectionEnd:function(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)},_updateAndFire:function(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(t){this.clearContextTop(),this.callSuper("render",t),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(t){this.callSuper("_render",t)},clearContextTop:function(t){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this.canvas.contextTop,i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e),this._clearTextArea(e),t||e.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this._getCursorBoundaries(),e=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(t,e):this.renderSelection(t,e),e.restore()}},_clearTextArea:function(t){var e=this.width+4,i=this.height+4;t.clearRect(-e/2,-i/2,e,i)},_getCursorBoundaries:function(t){void 0===t&&(t=this.selectionStart);var e=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t);return{left:e,top:i,leftOffset:r.left,topOffset:r.top}},_getCursorBoundariesOffsets:function(t){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var e,i,r,n,s=0,o=0,a=this.get2DCursorLocation(t);r=a.charIndex,i=a.lineIndex;for(var h=0;h0?o:0)},"rtl"===this.direction&&(n.left*=-1),this.cursorOffsetCache=n,this.cursorOffsetCache},renderCursor:function(t,e){var i=this.get2DCursorLocation(),r=i.lineIndex,n=i.charIndex>0?i.charIndex-1:0,s=this.getValueOfPropertyAt(r,n,"fontSize"),o=this.scaleX*this.canvas.getZoom(),a=this.cursorWidth/o,h=t.topOffset,l=this.getValueOfPropertyAt(r,n,"deltaY");h+=(1-this._fontSizeFraction)*this.getHeightOfLine(r)/this.lineHeight-s*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(t,e),e.fillStyle=this.cursorColor||this.getValueOfPropertyAt(r,n,"fill"),e.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,e.fillRect(t.left+t.leftOffset-a/2,h+t.top+l,a,s)},renderSelection:function(t,e){for(var i=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,r=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,n=-1!==this.textAlign.indexOf("justify"),s=this.get2DCursorLocation(i),o=this.get2DCursorLocation(r),a=s.lineIndex,h=o.lineIndex,l=s.charIndex<0?0:s.charIndex,c=o.charIndex<0?0:o.charIndex,u=a;u<=h;u++){var d,f=this._getLineLeftOffset(u)||0,g=this.getHeightOfLine(u),m=0,p=0;if(u===a&&(m=this.__charBounds[a][l].left),u>=a&&u1)&&(g/=this.lineHeight);var v=t.left+f+m,y=p-m,w=g,E=0;this.inCompositionMode?(e.fillStyle=this.compositionColor||"black",w=1,E=g):e.fillStyle=this.selectionColor,"rtl"===this.direction&&(v=this.width-v-y),e.fillRect(v,t.top+t.topOffset+E,y,w),t.topOffset+=d}},getCurrentCharFontSize:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")},getCurrentCharColor:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fill")},_getCurrentCharIndex:function(){var t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}}),b.IText.fromObject=function(e,i){if(t(e),e.styles)for(var r in e.styles)for(var n in e.styles[r])t(e.styles[r][n]);b.Object._fromObject("IText",e,i,"text")}}(),T=b.util.object.clone,b.util.object.extend(b.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var t=this;this.on("added",(function(){var e=t.canvas;e&&(e._hasITextHandlers||(e._hasITextHandlers=!0,t._initCanvasHandlers(e)),e._iTextInstances=e._iTextInstances||[],e._iTextInstances.push(t))}))},initRemovedHandler:function(){var t=this;this.on("removed",(function(){var e=t.canvas;e&&(e._iTextInstances=e._iTextInstances||[],b.util.removeFromArray(e._iTextInstances,t),0===e._iTextInstances.length&&(e._hasITextHandlers=!1,t._removeCanvasHandlers(e)))}))},_initCanvasHandlers:function(t){t._mouseUpITextHandler=function(){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.__isMousedown=!1}))},t.on("mouse:up",t._mouseUpITextHandler)},_removeCanvasHandlers:function(t){t.off("mouse:up",t._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(t,e,i,r){var n;return n={isAborted:!1,abort:function(){this.isAborted=!0}},t.animate("_currentCursorOpacity",e,{duration:i,onComplete:function(){n.isAborted||t[r]()},onChange:function(){t.canvas&&t.selectionStart===t.selectionEnd&&t.renderCursorOrSelection()},abort:function(){return n.isAborted}}),n},_onTickComplete:function(){var t=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){t._currentTickCompleteState=t._animateCursor(t,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(t){var e=this,i=t?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){e._tick()}),i)},abortCursorAnimation:function(){var t=this._currentTickState||this._currentTickCompleteState,e=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,t&&e&&e.clearContext(e.contextTop||e.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(t){var e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/\S/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findWordBoundaryRight:function(t){var e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/\S/.test(this._text[i])&&i-1;)e++,i--;return t-e},findLineBoundaryRight:function(t){for(var e=0,i=t;!/\n/.test(this._text[i])&&i0&&rthis.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=e):(this.selectionStart=e,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(t,e,i){var r=i.slice(0,t),n=b.util.string.graphemeSplit(r).length;if(t===e)return{selectionStart:n,selectionEnd:n};var s=i.slice(t,e);return{selectionStart:n,selectionEnd:n+b.util.string.graphemeSplit(s).length}},fromGraphemeToStringSelection:function(t,e,i){var r=i.slice(0,t).join("").length;return t===e?{selectionStart:r,selectionEnd:r}:{selectionStart:r,selectionEnd:r+i.slice(t,e).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var t=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=t.selectionEnd,this.inCompositionMode||(this.selectionStart=t.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),r=i.lineIndex,n=i.charIndex,s=this.getValueOfPropertyAt(r,n,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.calcTransformMatrix(),h={x:e.left+o,y:e.top+e.topOffset+s},l=this.canvas.getRetinaScaling(),c=this.canvas.upperCanvasEl,u=c.width/l,d=c.height/l,f=u-s,g=d-s,m=c.clientWidth/u,p=c.clientHeight/d;return h=b.util.transformPoint(h,a),(h=b.util.transformPoint(h,this.canvas.viewportTransform)).x*=m,h.y*=p,h.x<0&&(h.x=0),h.x>f&&(h.x=f),h.y<0&&(h.y=0),h.y>g&&(h.y=g),h.x+=this.canvas._offset.left,h.y+=this.canvas._offset.top,{left:h.x+"px",top:h.y+"px",fontSize:s+"px",charHeight:s}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var t=this._textBeforeEdit!==this.text,e=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,e&&(e.blur&&e.blur(),e.parentNode&&e.parentNode.removeChild(e)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var t in this.styles)this._textLines[t]||delete this.styles[t]},removeStyleFromTo:function(t,e){var i,r,n=this.get2DCursorLocation(t,!0),s=this.get2DCursorLocation(e,!0),o=n.lineIndex,a=n.charIndex,h=s.lineIndex,l=s.charIndex;if(o!==h){if(this.styles[o])for(i=a;i=l&&(r[c-d]=r[u],delete r[u])}},shiftLineStyles:function(t,e){var i=T(this.styles);for(var r in this.styles){var n=parseInt(r,10);n>t&&(this.styles[n+e]=i[n],i[n-e]||delete this.styles[n])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,e,i,r){var n,s={},o=!1,a=this._unwrappedTextLines[t].length===e;for(var h in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(n=this.styles[t][0===e?e:e-1]),this.styles[t]){var l=parseInt(h,10);l>=e&&(o=!0,s[l-e]=this.styles[t][h],a&&0===e||delete this.styles[t][h])}var c=!1;for(o&&!a&&(this.styles[t+i]=s,c=!0),c&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:T(r[i-1])}:n?this.styles[t+i]={0:T(n)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,e,i,r){this.styles||(this.styles={});var n=this.styles[t],s=n?T(n):{};for(var o in i||(i=1),s){var a=parseInt(o,10);a>=e&&(n[a+i]=s[a],s[a-i]||delete n[a])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=T(r[i]));else if(n)for(var h=n[e?e-1:1];h&&i--;)this.styles[t][e+i]=T(h)},insertNewStyleBlock:function(t,e,i){for(var r=this.get2DCursorLocation(e,!0),n=[0],s=0,o=0;o0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),s&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+n[0],s),o=1;o0?this.insertCharStyleObject(r.lineIndex+o,0,n[o],i):i&&this.styles[r.lineIndex+o]&&i[0]&&(this.styles[r.lineIndex+o][0]=i[0]),i=i&&i.slice(n[o]+1);n[o]>0&&this.insertCharStyleObject(r.lineIndex+o,0,n[o],i)},setSelectionStartEndWithShift:function(t,e,i){i<=t?(e===t?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=t),this.selectionStart=i):i>t&&it?this.selectionStart=t:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>t?this.selectionEnd=t:this.selectionEnd<0&&(this.selectionEnd=0)}}),b.util.object.extend(b.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(t){if(this.canvas){this.__newClickTime=+new Date;var e=t.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",t),this._stopEvent(t.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(t){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===t.x&&this.__lastPointer.y===t.y},_stopEvent:function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(t){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(t.e))},tripleClickHandler:function(t){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(t.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(t.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(t){if(this.__isMousedown=!1,!(!this.editable||this.group||t.transform&&t.transform.actionPerformed||t.e.button&&1!==t.e.button)){if(this.canvas){var e=this.canvas._activeObject;if(e&&e!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(t.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(t){var e=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,r,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(t){for(var e,i=this.getLocalPointer(t),r=0,n=0,s=0,o=0,a=0,h=0,l=this._textLines.length;h0&&(o+=this._textLines[h-1].length+this.missingNewlineOffset(h-1));n=this._getLineLeftOffset(a)*this.scaleX,e=this._textLines[a],"rtl"===this.direction&&(i.x=this.width*this.scaleX-i.x+n);for(var c=0,u=e.length;cs||o<0?0:1);return this.flipX&&(a=n-a),a>this._text.length&&(a=this._text.length),a}}),b.util.object.extend(b.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=b.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var t=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+t.top+"; left: "+t.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; paddingーtop: "+t.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):b.document.body.appendChild(this.hiddenTextarea),b.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),b.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),b.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),b.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(b.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(t){if(this.isEditing){var e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(t){var e=this.fromPaste;if(this.fromPaste=!1,t&&t.stopPropagation(),this.isEditing){var i,r,n,s,o,a=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,h=this._text.length,l=a.length,c=l-h,u=this.selectionStart,d=this.selectionEnd,f=u!==d;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var g=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),m=u>g.selectionStart;f?(i=this._text.slice(u,d),c+=d-u):l0&&(r+=(i=this.__charBounds[t][e-1]).left+i.width),r},getDownCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(n===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n+1,o);return this._textLines[n].slice(s).length+a+1+this.missingNewlineOffset(n)},_getSelectionForOffset:function(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(0===n||t.metaKey||33===t.keyCode)return-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n-1,o),h=this._textLines[n].slice(0,s),l=this.missingNewlineOffset(n-1);return-this._textLines[n-1].length+a-h.length+(1-l)},_getIndexOnLine:function(t,e){for(var i,r,n=this._textLines[t],s=this._getLineLeftOffset(t),o=0,a=0,h=n.length;ae){r=!0;var l=s-i,c=s,u=Math.abs(l-e);o=Math.abs(c-e)=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)},moveCursorUp:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)},_moveCursorUpOrDown:function(t,e){var i=this["get"+t+"CursorOffset"](e,"right"===this._selectionDirection);e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(t){var e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t},moveCursorWithoutShift:function(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t},moveCursorLeft:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)},_move:function(t,e,i){var r;if(t.altKey)r=this["findWordBoundary"+i](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;r=this["findLineBoundary"+i](this[e])}if(void 0!==typeof r&&this[e]!==r)return this[e]=r,!0},_moveLeft:function(t,e){return this._move(t,e,"Left")},_moveRight:function(t,e){return this._move(t,e,"Right")},moveCursorLeftWithoutShift:function(t){var e=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e},moveCursorLeftWithShift:function(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(t,"selectionStart")):void 0},moveCursorRight:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)},_moveCursorLeftOrRight:function(t,e){var i="moveCursor"+t+"With";this._currentCursorOpacity=1,e.shiftKey?i+="Shift":i+="outShift",this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(t,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(t){var e=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e},removeChars:function(t,e){void 0===e&&(e=t+1),this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(t,e,i,r){void 0===r&&(r=i),r>i&&this.removeStyleFromTo(i,r);var n=b.util.string.graphemeSplit(t);this.insertNewStyleBlock(n,i,e),this._text=[].concat(this._text.slice(0,i),n,this._text.slice(r)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var t=b.util.toFixed,e=/ +/g;b.util.object.extend(b.Text.prototype,{_toSVG:function(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t",t.textSpans.join(""),"\n"]},_getSVGTextAndBg:function(t,e){var i,r=[],n=[],s=t;this._setSVGBg(n);for(var o=0,a=this._textLines.length;o",b.util.string.escapeXml(i),""].join("")},_setSVGTextLineText:function(t,e,i,r){var n,s,o,a,h,l=this.getHeightOfLine(e),c=-1!==this.textAlign.indexOf("justify"),u="",d=0,f=this._textLines[e];r+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var g=0,m=f.length-1;g<=m;g++)h=g===m||this.charSpacing,u+=f[g],o=this.__charBounds[e][g],0===d?(i+=o.kernedWidth-o.width,d+=o.width):d+=o.kernedWidth,c&&!h&&this._reSpaceAndTab.test(f[g])&&(h=!0),h||(n=n||this.getCompleteStyleDeclaration(e,g),s=this.getCompleteStyleDeclaration(e,g+1),h=this._hasStyleChangedForSvg(n,s)),h&&(a=this._getStyleDeclaration(e,g)||{},t.push(this._createTextCharSpan(u,a,i,r)),u="",n=s,i+=d,d=0)},_pushTextBgRect:function(e,i,r,n,s,o){var a=b.Object.NUM_FRACTION_DIGITS;e.push("\t\t\n')},_setSVGTextLineBg:function(t,e,i,r){for(var n,s,o=this._textLines[e],a=this.getHeightOfLine(e)/this.lineHeight,h=0,l=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),u=0,d=o.length;uthis.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(t){for(var e=0,i=0,r=0,n={},s=0;s0?(i=0,r++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[r])&&s>0&&(i++,r++),n[s]={line:e,offset:i},r+=t.graphemeLines[s].length,i+=t.graphemeLines[s].length;return n},styleHas:function(t,i){if(this._styleMap&&!this.isWrapping){var r=this._styleMap[i];r&&(i=r.line)}return e.Text.prototype.styleHas.call(this,t,i)},isEmptyStyles:function(t){if(!this.styles)return!0;var e,i,r=0,n=!1,s=this._styleMap[t],o=this._styleMap[t+1];for(var a in s&&(t=s.line,r=s.offset),o&&(n=o.line===t,e=o.offset),i=void 0===t?this.styles:{line:this.styles[t]})for(var h in i[a])if(h>=r&&(!n||hr&&!p?(a.push(h),h=[],s=f,p=!0):s+=_,p||o||h.push(d),h=h.concat(c),g=o?0:this._measureWord([d],i,u),u++,p=!1,f>m&&(m=f);return v&&a.push(h),m+n>this.dynamicMinWidth&&(this.dynamicMinWidth=m-_+n),a},isEndOfWrapping:function(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line},missingNewlineOffset:function(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1},_splitTextIntoLines:function(t){for(var i=e.Text.prototype._splitTextIntoLines.call(this,t),r=this._wrapText(i.lines,this.width),n=new Array(r.length),s=0;s{},898:()=>{},245:()=>{}},Ce={};function Te(t){var e=Ce[t];if(void 0!==e)return e.exports;var i=Ce[t]={exports:{}};return Ee[t](i,i.exports,Te),i.exports}Te.d=(t,e)=>{for(var i in e)Te.o(e,i)&&!Te.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},Te.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var be={};(()=>{let t;Te.d(be,{R:()=>t}),t="undefined"!=typeof document&&"undefined"!=typeof window?Te(653).fabric:{version:"5.2.1"}})();var Se,Ie,xe,Ae,Re=be.R;!function(t){t[t.DIMT_RECTANGLE=1]="DIMT_RECTANGLE",t[t.DIMT_QUADRILATERAL=2]="DIMT_QUADRILATERAL",t[t.DIMT_TEXT=4]="DIMT_TEXT",t[t.DIMT_ARC=8]="DIMT_ARC",t[t.DIMT_IMAGE=16]="DIMT_IMAGE",t[t.DIMT_POLYGON=32]="DIMT_POLYGON",t[t.DIMT_LINE=64]="DIMT_LINE",t[t.DIMT_GROUP=128]="DIMT_GROUP"}(Se||(Se={})),function(t){t[t.DIS_DEFAULT=1]="DIS_DEFAULT",t[t.DIS_SELECTED=2]="DIS_SELECTED"}(Ie||(Ie={})),function(t){t[t.EF_ENHANCED_FOCUS=4]="EF_ENHANCED_FOCUS",t[t.EF_AUTO_ZOOM=16]="EF_AUTO_ZOOM",t[t.EF_TAP_TO_FOCUS=64]="EF_TAP_TO_FOCUS"}(xe||(xe={})),function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(Ae||(Ae={}));const Oe=t=>"number"==typeof t&&!Number.isNaN(t),De=t=>"string"==typeof t;var Le,Me,Fe,Pe,ke,Be;!function(t){t[t.ARC=0]="ARC",t[t.IMAGE=1]="IMAGE",t[t.LINE=2]="LINE",t[t.POLYGON=3]="POLYGON",t[t.QUAD=4]="QUAD",t[t.RECT=5]="RECT",t[t.TEXT=6]="TEXT",t[t.GROUP=7]="GROUP"}(ke||(ke={})),function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SELECTED=1]="SELECTED"}(Be||(Be={}));class Ne{get mediaType(){return new Map([["rect",Se.DIMT_RECTANGLE],["quad",Se.DIMT_QUADRILATERAL],["text",Se.DIMT_TEXT],["arc",Se.DIMT_ARC],["image",Se.DIMT_IMAGE],["polygon",Se.DIMT_POLYGON],["line",Se.DIMT_LINE],["group",Se.DIMT_GROUP]]).get(this._mediaType)}get styleSelector(){switch(me(this,Me,"f")){case Ie.DIS_DEFAULT:return"default";case Ie.DIS_SELECTED:return"selected"}}set drawingStyleId(t){this.styleId=t}get drawingStyleId(){return this.styleId}set coordinateBase(t){if(!["view","image"].includes(t))throw new Error("Invalid 'coordinateBase'.");this._drawingLayer&&("image"===me(this,Fe,"f")&&"view"===t?this.updateCoordinateBaseFromImageToView():"view"===me(this,Fe,"f")&&"image"===t&&this.updateCoordinateBaseFromViewToImage()),pe(this,Fe,t,"f")}get coordinateBase(){return me(this,Fe,"f")}get drawingLayerId(){return this._drawingLayerId}constructor(t,e){if(Le.add(this),Me.set(this,void 0),Fe.set(this,"image"),this._zIndex=null,this._drawingLayer=null,this._drawingLayerId=null,this._mapState_StyleId=new Map,this.mapEvent_Callbacks=new Map([["selected",new Map],["deselected",new Map],["mousedown",new Map],["mouseup",new Map],["dblclick",new Map],["mouseover",new Map],["mouseout",new Map]]),this.mapNoteName_Content=new Map([]),this.isDrawingItem=!0,null!=e&&!Oe(e))throw new TypeError("Invalid 'drawingStyleId'.");t&&this._setFabricObject(t),this.setState(Ie.DIS_DEFAULT),this.styleId=e}_setFabricObject(t){this._fabricObject=t,this._fabricObject.on("selected",(()=>{this.setState(Ie.DIS_SELECTED)})),this._fabricObject.on("deselected",(()=>{this._fabricObject.canvas&&this._fabricObject.canvas.getActiveObjects().includes(this._fabricObject)?this.setState(Ie.DIS_SELECTED):this.setState(Ie.DIS_DEFAULT),"textbox"===this._fabricObject.type&&(this._fabricObject.isEditing&&this._fabricObject.exitEditing(),this._fabricObject.selected=!1)})),t.getDrawingItem=()=>this}_getFabricObject(){return this._fabricObject}setState(t){pe(this,Me,t,"f")}getState(){return me(this,Me,"f")}_on(t,e){if(!e)return;const i=t.toLowerCase(),r=this.mapEvent_Callbacks.get(i);if(!r)throw new Error(`Event '${t}' does not exist.`);let n=r.get(e);n||(n=t=>{const i=t.e;if(!i)return void(e&&e.apply(this,[{targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null}]));const r={targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null};if(this._drawingLayer){let t,e,n,s;const o=i.target.getBoundingClientRect();t=o.left,e=o.top,n=t+window.scrollX,s=e+window.scrollY;const{width:a,height:h}=this._drawingLayer.fabricCanvas.lowerCanvasEl.getBoundingClientRect(),l=this._drawingLayer.width,c=this._drawingLayer.height,u=a/h,d=l/c,f=this._drawingLayer._getObjectFit();let g,m,p,_,v=1;if("contain"===f)unull!==t&&"object"==typeof t&&!Array.isArray(t),je=t=>!!De(t)&&""!==t,Ge=u,Ve=d,We=g,Ye=p,He=m,Xe=_,ze=v,Ze=t=>!(!Ue(t)||"id"in t&&!Oe(t.id)||"lineWidth"in t&&!Oe(t.lineWidth)||"fillStyle"in t&&!je(t.fillStyle)||"strokeStyle"in t&&!je(t.strokeStyle)||"paintMode"in t&&!["fill","stroke","strokeAndFill"].includes(t.paintMode)||"fontFamily"in t&&!je(t.fontFamily)||"fontSize"in t&&!Oe(t.fontSize));class Ke{static convert(t,e,i){const r={x:0,y:0,width:e,height:i};if(!t)return r;if(ze(t))t.isMeasuredInPercentage?(r.x=t.x/100*e,r.y=t.y/100*i,r.width=t.width/100*e,r.height=t.height/100*i):(r.x=t.x,r.y=t.y,r.width=t.width,r.height=t.height);else{if(!Ve(t))throw TypeError("Invalid region.");t.isMeasuredInPercentage?(r.x=t.left/100*e,r.y=t.top/100*i,r.width=(t.right-t.left)/100*e,r.height=(t.bottom-t.top)/100*i):(r.x=t.left,r.y=t.top,r.width=t.right-t.left,r.height=t.bottom-t.top)}return r.x=Math.round(r.x),r.y=Math.round(r.y),r.width=Math.round(r.width),r.height=Math.round(r.height),r}}var qe,Je;class Qe{constructor(){qe.set(this,new Map),Je.set(this,!1)}get disposed(){return me(this,Je,"f")}on(t,e){t=t.toLowerCase();const i=me(this,qe,"f").get(t);if(i){if(i.includes(e))return;i.push(e)}else me(this,qe,"f").set(t,[e])}off(t,e){t=t.toLowerCase();const i=me(this,qe,"f").get(t);if(!i)return;const r=i.indexOf(e);-1!==r&&i.splice(r,1)}offAll(t){t=t.toLowerCase();const e=me(this,qe,"f").get(t);e&&(e.length=0)}fire(t,e=[],i={async:!1,copy:!0}){e||(e=[]),t=t.toLowerCase();const r=me(this,qe,"f").get(t);if(r&&r.length){i=Object.assign({async:!1,copy:!0},i);for(let n of r){if(!n)continue;let s=[];if(i.copy)for(let i of e){try{i=JSON.parse(JSON.stringify(i))}catch(t){}s.push(i)}else s=e;let o=!1;if(i.async)setTimeout((()=>{this.disposed||r.includes(n)&&n.apply(i.target,s)}),0);else try{o=n.apply(i.target,s)}catch(t){}if(!0===o)break}}}dispose(){pe(this,Je,!0,"f")}}function $e(t,e,i){return(i.x-t.x)*(e.y-t.y)==(e.x-t.x)*(i.y-t.y)&&Math.min(t.x,e.x)<=i.x&&i.x<=Math.max(t.x,e.x)&&Math.min(t.y,e.y)<=i.y&&i.y<=Math.max(t.y,e.y)}function ti(t){return Math.abs(t)<1e-6?0:t<0?-1:1}function ei(t,e,i,r){let n=t[0]*(i[1]-e[1])+e[0]*(t[1]-i[1])+i[0]*(e[1]-t[1]),s=t[0]*(r[1]-e[1])+e[0]*(t[1]-r[1])+r[0]*(e[1]-t[1]);return!((n^s)>=0&&0!==n&&0!==s||(n=i[0]*(t[1]-r[1])+r[0]*(i[1]-t[1])+t[0]*(r[1]-i[1]),s=i[0]*(e[1]-r[1])+r[0]*(i[1]-e[1])+e[0]*(r[1]-i[1]),(n^s)>=0&&0!==n&&0!==s))}qe=new WeakMap,Je=new WeakMap;const ii=async t=>{if("string"!=typeof t)throw new TypeError("Invalid url.");const e=await fetch(t);if(!e.ok)throw Error("Network Error: "+e.statusText);const i=await e.text();if(!i.trim().startsWith("<"))throw Error("Unable to get valid HTMLElement.");const r=document.createElement("div");r.insertAdjacentHTML("beforeend",i);for(let t=0;t0?i-1:r,ui),actionName:"modifyPolygon",pointIndex:i}),t}),{}),pe(this,ni,JSON.parse(JSON.stringify(t)),"f"),this._mediaType="polygon"}extendSet(t,e){if("vertices"===t){const t=this._fabricObject;if(t.group){const i=t.group;t.points=e.map((t=>({x:t.x-i.left-i.width/2,y:t.y-i.top-i.height/2}))),i.addWithUpdate()}else t.points=e;const i=t.points.length-1;return t.controls=t.points.reduce((function(t,e,r){return t["p"+r]=new Re.Control({positionHandler:li,actionHandler:di(r>0?r-1:i,ui),actionName:"modifyPolygon",pointIndex:r}),t}),{}),t._setPositionDimensions({}),!0}}extendGet(t){if("vertices"===t){const t=[],e=this._fabricObject;if(e.selectable&&!e.group)for(let i in e.oCoords)t.push({x:e.oCoords[i].x,y:e.oCoords[i].y});else for(let i of e.points){let r=i.x-e.pathOffset.x,n=i.y-e.pathOffset.y;const s=Re.util.transformPoint({x:r,y:n},e.calcTransformMatrix());t.push({x:s.x,y:s.y})}return t}}updateCoordinateBaseFromImageToView(){const t=this.get("vertices").map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",t)}updateCoordinateBaseFromViewToImage(){const t=this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})));this.set("vertices",t)}setPosition(t){this.setPolygon(t)}getPosition(){return this.getPolygon()}updatePosition(){me(this,ni,"f")&&this.setPolygon(me(this,ni,"f"))}setPolygon(t){if(!Ye(t))throw new TypeError("Invalid 'polygon'.");if(this._drawingLayer){if("view"===this.coordinateBase){const e=t.points.map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else pe(this,ni,JSON.parse(JSON.stringify(t)),"f")}getPolygon(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return me(this,ni,"f")?JSON.parse(JSON.stringify(me(this,ni,"f"))):null}}ni=new WeakMap;si=new WeakMap,oi=new WeakMap;const gi=t=>{let e=(t=>t.split("\n").map((t=>t.split("\t"))))(t);return(t=>{for(let e=0;;e++){let i=-1;for(let r=0;ri&&(i=n.length)}if(-1===i)break;for(let r=0;r=t[r].length-1)continue;let n=" ".repeat(i+2-t[r][e].length);t[r][e]=t[r][e].concat(n)}}})(e),(t=>{let e="";for(let i=0;i({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else pe(this,_i,JSON.parse(JSON.stringify(t)),"f")}getQuad(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return me(this,_i,"f")?JSON.parse(JSON.stringify(me(this,_i,"f"))):null}}_i=new WeakMap;class $i extends Ne{constructor(t){super(new Re.Group(t.map((t=>t._getFabricObject())))),this._fabricObject.on("selected",(()=>{this.setState(Ie.DIS_SELECTED);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("selected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._fabricObject.on("deselected",(()=>{this.setState(Ie.DIS_DEFAULT);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("deselected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._mediaType="group"}extendSet(t,e){return!1}extendGet(t){}updateCoordinateBaseFromImageToView(){}updateCoordinateBaseFromViewToImage(){}setPosition(){}getPosition(){}updatePosition(){}getChildDrawingItems(){return this._fabricObject._objects.map((t=>t.getDrawingItem()))}setChildDrawingItems(t){if(!t||!t.isDrawingItem)throw TypeError("Illegal drawing item.");this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"add"):this._fabricObject.addWithUpdate(t._getFabricObject())}removeChildItem(t){t&&t.isDrawingItem&&(this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"remove"):this._fabricObject.removeWithUpdate(t._getFabricObject()))}}class tr{static createDrawingStyle(t){if(!Ze(t))throw new Error("Invalid style definition.");let e,i=tr.USER_START_STYLE_ID;for(;me(tr,vi,"f",yi).has(i);)i++;e=i;const r=JSON.parse(JSON.stringify(t));r.id=e;for(let t in me(tr,vi,"f",wi))r.hasOwnProperty(t)||(r[t]=me(tr,vi,"f",wi)[t]);return me(tr,vi,"f",yi).set(e,r),r.id}static _getDrawingStyle(t,e){if("number"!=typeof t)throw new Error("Invalid style id.");const i=me(tr,vi,"f",yi).get(t);return i?e?JSON.parse(JSON.stringify(i)):i:null}static getDrawingStyle(t){return this._getDrawingStyle(t,!0)}static getAllDrawingStyles(){return JSON.parse(JSON.stringify(Array.from(me(tr,vi,"f",yi).values())))}static _updateDrawingStyle(t,e){if(!Ze(e))throw new Error("Invalid style definition.");const i=me(tr,vi,"f",yi).get(t);if(i)for(let t in e)i.hasOwnProperty(t)&&(i[t]=e[t])}static updateDrawingStyle(t,e){this._updateDrawingStyle(t,e)}}vi=tr,tr.STYLE_BLUE_STROKE=1,tr.STYLE_GREEN_STROKE=2,tr.STYLE_ORANGE_STROKE=3,tr.STYLE_YELLOW_STROKE=4,tr.STYLE_BLUE_STROKE_FILL=5,tr.STYLE_GREEN_STROKE_FILL=6,tr.STYLE_ORANGE_STROKE_FILL=7,tr.STYLE_YELLOW_STROKE_FILL=8,tr.STYLE_BLUE_STROKE_TRANSPARENT=9,tr.STYLE_GREEN_STROKE_TRANSPARENT=10,tr.STYLE_ORANGE_STROKE_TRANSPARENT=11,tr.USER_START_STYLE_ID=1024,yi={value:new Map([[tr.STYLE_BLUE_STROKE,{id:tr.STYLE_BLUE_STROKE,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[tr.STYLE_GREEN_STROKE,{id:tr.STYLE_GREEN_STROKE,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_ORANGE_STROKE,{id:tr.STYLE_ORANGE_STROKE,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_YELLOW_STROKE,{id:tr.STYLE_YELLOW_STROKE,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[tr.STYLE_BLUE_STROKE_FILL,{id:tr.STYLE_BLUE_STROKE_FILL,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_GREEN_STROKE_FILL,{id:tr.STYLE_GREEN_STROKE_FILL,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_ORANGE_STROKE_FILL,{id:tr.STYLE_ORANGE_STROKE_FILL,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_YELLOW_STROKE_FILL,{id:tr.STYLE_YELLOW_STROKE_FILL,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_BLUE_STROKE_TRANSPARENT,{id:tr.STYLE_BLUE_STROKE_TRANSPARENT,lineWidth:4,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_GREEN_STROKE_TRANSPARENT,{id:tr.STYLE_GREEN_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[tr.STYLE_ORANGE_STROKE_TRANSPARENT,{id:tr.STYLE_ORANGE_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}]])},wi={value:{lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}},"undefined"!=typeof document&&"undefined"!=typeof window&&(Re.StaticCanvas.prototype.dispose=function(){return this.isRendering&&(Re.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),Re.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},Re.Object.prototype.transparentCorners=!1,Re.Object.prototype.cornerSize=20,Re.Object.prototype.touchCornerSize=100,Re.Object.prototype.cornerColor="rgb(254,142,20)",Re.Object.prototype.cornerStyle="circle",Re.Object.prototype.strokeUniform=!0,Re.Object.prototype.hasBorders=!1,Re.Canvas.prototype.containerClass="",Re.Canvas.prototype.getPointer=function(t,e){if(this._absolutePointer&&!e)return this._absolutePointer;if(this._pointer&&e)return this._pointer;var i,r=this.upperCanvasEl,n=Re.util.getPointer(t,r),s=r.getBoundingClientRect(),o=s.width||0,a=s.height||0;o&&a||("top"in s&&"bottom"in s&&(a=Math.abs(s.top-s.bottom)),"right"in s&&"left"in s&&(o=Math.abs(s.right-s.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,e||(n=this.restorePointerVpt(n));var h=this.getRetinaScaling();if(1!==h&&(n.x/=h,n.y/=h),0!==o&&0!==a){var l=window.getComputedStyle(r).objectFit,c=r.width,u=r.height,d=o,f=a;i={width:c/d,height:u/f};var g,m,p=c/u,_=d/f;return"contain"===l?p>_?(g=d,m=d/p,{x:n.x*i.width,y:(n.y-(f-m)/2)*i.width}):(g=f*p,m=f,{x:(n.x-(d-g)/2)*i.height,y:n.y*i.height}):"cover"===l?p>_?{x:(c-i.height*d)/2+n.x*i.height,y:n.y*i.height}:{x:n.x*i.width,y:(u-i.width*f)/2+n.y*i.width}:{x:n.x*i.width,y:n.y*i.height}}return i={width:1,height:1},{x:n.x*i.width,y:n.y*i.height}},Re.Canvas.prototype._onTouchStart=function(t){var e=this.findTarget(t);!this.allowTouchScrolling&&t.cancelable&&t.preventDefault&&t.preventDefault(),e&&t.cancelable&&t.preventDefault&&t.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t),this._resetTransformEventData();var i=this.upperCanvasEl,r=this._getEventPrefix();Re.util.addListener(Re.document,"touchend",this._onTouchEnd,{passive:!1}),Re.util.addListener(Re.document,"touchmove",this._onMouseMove,{passive:!1}),Re.util.removeListener(i,r+"down",this._onMouseDown)},Re.Textbox.prototype._wrapLine=function(t,e,i,r){const n=t.match(/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/g),s=!(!n||!n.length);var o=0,a=this.splitByGrapheme||s,h=[],l=[],c=a?Re.util.string.graphemeSplit(t):t.split(this._wordJoiners),u="",d=0,f=a?"":" ",g=0,m=0,p=0,_=!0,v=this._getWidthOfCharSpacing();r=r||0,0===c.length&&c.push([]),i-=r;for(var y=0;yi&&!_?(h.push(l),l=[],o=g,_=!0):o+=v,_||a||l.push(f),l=l.concat(u),m=a?0:this._measureWord([f],e,d),d++,_=!1,g>p&&(p=g);return y&&h.push(l),p+r>this.dynamicMinWidth&&(this.dynamicMinWidth=p-v+r),h});class er{get width(){return this.fabricCanvas.width}get height(){return this.fabricCanvas.height}set _allowMultiSelect(t){this.fabricCanvas.selection=t,this.fabricCanvas.renderAll()}get _allowMultiSelect(){return this.fabricCanvas.selection}constructor(t,e,i){if(this.mapType_StateAndStyleId=new Map,this.mode="viewer",this.onSelectionChanged=null,this._arrDrwaingItem=[],this._arrFabricObject=[],this._visible=!0,t.hasOwnProperty("getFabricCanvas"))this.fabricCanvas=t.getFabricCanvas();else{let e=this.fabricCanvas=new Re.Canvas(t,Object.assign(i,{allowTouchScrolling:!0,selection:!1}));e.setDimensions({width:"100%",height:"100%"},{cssOnly:!0}),e.lowerCanvasEl.className="",e.upperCanvasEl.className="",e.on("selection:created",(function(t){const e=t.selected,i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(i,[])}),0)}})),e.on("before:selection:cleared",(function(t){const e=this.getActiveObjects(),i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{const e=[];for(let r of i)t.hasDrawingItem(r)&&e.push(r);e.length>0&&t.onSelectionChanged&&t.onSelectionChanged([],e)}),0)}})),e.on("selection:updated",(function(t){const e=t.selected,i=t.deselected,r=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of i){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of r){const r=[],n=[];for(let i of e){const e=i.getDrawingItem();e._drawingLayer===t&&r.push(e)}for(let e of i){const i=e.getDrawingItem();i._drawingLayer===t&&n.push(i)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(r,n)}),0)}})),e.wrapperEl.style.position="absolute",t.getFabricCanvas=()=>this.fabricCanvas}let r,n;switch(this.id=e,e){case er.DDN_LAYER_ID:r=tr.getDrawingStyle(tr.STYLE_BLUE_STROKE),n=tr.getDrawingStyle(tr.STYLE_BLUE_STROKE_FILL);break;case er.DBR_LAYER_ID:r=tr.getDrawingStyle(tr.STYLE_ORANGE_STROKE),n=tr.getDrawingStyle(tr.STYLE_ORANGE_STROKE_FILL);break;case er.DLR_LAYER_ID:r=tr.getDrawingStyle(tr.STYLE_GREEN_STROKE),n=tr.getDrawingStyle(tr.STYLE_GREEN_STROKE_FILL);break;default:r=tr.getDrawingStyle(tr.STYLE_YELLOW_STROKE),n=tr.getDrawingStyle(tr.STYLE_YELLOW_STROKE_FILL)}for(let t of Ne.arrMediaTypes)this.mapType_StateAndStyleId.set(t,{default:r.id,selected:n.id})}getId(){return this.id}setVisible(t){if(t){for(let t of this._arrFabricObject)t.visible=!0,t.hasControls=!0;this._visible=!0}else{for(let t of this._arrFabricObject)t.visible=!1,t.hasControls=!1;this._visible=!1}this.fabricCanvas.renderAll()}isVisible(){return this._visible}_getItemCurrentStyle(t){if(t.styleId)return tr.getDrawingStyle(t.styleId);return tr.getDrawingStyle(t._mapState_StyleId.get(t.styleSelector))||null}_changeMediaTypeCurStyleInStyleSelector(t,e,i,r){const n=this.getDrawingItems((e=>e._mediaType===t));for(let t of n)t.styleSelector===e&&this._changeItemStyle(t,i,!0);r||this.fabricCanvas.renderAll()}_changeItemStyle(t,e,i){if(!t||!e)return;const r=t._getFabricObject();"number"==typeof t.styleId&&(e=tr.getDrawingStyle(t.styleId)),r.strokeWidth=e.lineWidth,"fill"===e.paintMode?(r.fill=e.fillStyle,r.stroke=e.fillStyle):"stroke"===e.paintMode?(r.fill="transparent",r.stroke=e.strokeStyle):"strokeAndFill"===e.paintMode&&(r.fill=e.fillStyle,r.stroke=e.strokeStyle),r.fontFamily&&(r.fontFamily=e.fontFamily),r.fontSize&&(r.fontSize=e.fontSize),r.group||(r.dirty=!0),i||this.fabricCanvas.renderAll()}_updateGroupItem(t,e,i){if(!t||!e)return;const r=t.getChildDrawingItems();if("add"===i){if(r.includes(e))return;const i=e._getFabricObject();if(this.fabricCanvas.getObjects().includes(i)){if(!this._arrFabricObject.includes(i))throw new Error("Existed in other drawing layers.");e._zIndex=null}else{let i;if(e.styleId)i=tr.getDrawingStyle(e.styleId);else{const r=this.mapType_StateAndStyleId.get(e._mediaType);i=tr.getDrawingStyle(r[t.styleSelector]);const n=()=>{this._changeItemStyle(e,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).selected),!0)},s=()=>{this._changeItemStyle(e,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).default),!0)};e._on("selected",n),e._on("deselected",s),e._funcChangeStyleToSelected=n,e._funcChangeStyleToDefault=s}e._drawingLayer=this,e._drawingLayerId=this.id,this._changeItemStyle(e,i,!0)}t._fabricObject.addWithUpdate(e._getFabricObject())}else{if("remove"!==i)return;if(!r.includes(e))return;e._zIndex=null,e._drawingLayer=null,e._drawingLayerId=null,e._off("selected",e._funcChangeStyleToSelected),e._off("deselected",e._funcChangeStyleToDefault),e._funcChangeStyleToSelected=null,e._funcChangeStyleToDefault=null,t._fabricObject.removeWithUpdate(e._getFabricObject())}this.fabricCanvas.renderAll()}_addDrawingItem(t,e){if(!(t instanceof Ne))throw new TypeError("Invalid 'drawingItem'.");if(t._drawingLayer){if(t._drawingLayer==this)return;throw new Error("This drawing item has existed in other layer.")}let i=t._getFabricObject();const r=this.fabricCanvas.getObjects();let n,s;if(r.includes(i)){if(this._arrFabricObject.includes(i))return;throw new Error("Existed in other drawing layers.")}if("group"===t._mediaType){n=t.getChildDrawingItems();for(let t of n)if(t._drawingLayer&&t._drawingLayer!==this)throw new Error("The childItems of DT_Group have existed in other drawing layers.")}if(e&&"object"==typeof e&&!Array.isArray(e))for(let t in e)i.set(t,e[t]);if(n){for(let t of n){const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Ne.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=tr.getDrawingStyle(t.styleId);else{s=tr.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected),!0)},r=()=>{this._changeItemStyle(t,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default),!0)};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}t._drawingLayer=this,t._drawingLayerId=this.id,this._changeItemStyle(t,s,!0)}i.dirty=!0,this.fabricCanvas.renderAll()}else{const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Ne.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=tr.getDrawingStyle(t.styleId);else{s=tr.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected))},r=()=>{this._changeItemStyle(t,tr.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default))};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}this._changeItemStyle(t,s)}t._zIndex=this.id,t._drawingLayer=this,t._drawingLayerId=this.id;const o=this._arrFabricObject.length;let a=r.length;if(o)a=r.indexOf(this._arrFabricObject[o-1])+1;else for(let e=0;et.toLowerCase())):e=Ne.arrMediaTypes,i?i.forEach((t=>t.toLowerCase())):i=Ne.arrStyleSelectors;const r=tr.getDrawingStyle(t);if(!r)throw new Error(`The 'drawingStyle' with id '${t}' doesn't exist.`);let n;for(let s of e)if(n=this.mapType_StateAndStyleId.get(s),n)for(let e of i){this._changeMediaTypeCurStyleInStyleSelector(s,e,r,!0),n[e]=t;for(let i of this._arrDrwaingItem)i._mediaType===s&&i._mapState_StyleId.set(e,t)}this.fabricCanvas.renderAll()}setDefaultStyle(t,e,i){const r=[];i&Se.DIMT_RECTANGLE&&r.push("rect"),i&Se.DIMT_QUADRILATERAL&&r.push("quad"),i&Se.DIMT_TEXT&&r.push("text"),i&Se.DIMT_ARC&&r.push("arc"),i&Se.DIMT_IMAGE&&r.push("image"),i&Se.DIMT_POLYGON&&r.push("polygon"),i&Se.DIMT_LINE&&r.push("line");const n=[];e&Ie.DIS_DEFAULT&&n.push("default"),e&Ie.DIS_SELECTED&&n.push("selected"),this._setDefaultStyle(t,r.length?r:null,n.length?n:null)}setMode(t){if("viewer"===(t=t.toLowerCase())){for(let t of this._arrDrwaingItem)t._setEditable(!1);this.fabricCanvas.discardActiveObject(),this.fabricCanvas.renderAll(),this.mode="viewer"}else{if("editor"!==t)throw new RangeError("Invalid value.");for(let t of this._arrDrwaingItem)t._setEditable(!0);this.mode="editor"}this._manager._switchPointerEvent()}getMode(){return this.mode}_setDimensions(t,e){this.fabricCanvas.setDimensions(t,e)}_setObjectFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);this.fabricCanvas.lowerCanvasEl.style.objectFit=t,this.fabricCanvas.upperCanvasEl.style.objectFit=t}_getObjectFit(){return this.fabricCanvas.lowerCanvasEl.style.objectFit}renderAll(){for(let t of this._arrDrwaingItem){const e=this._getItemCurrentStyle(t);this._changeItemStyle(t,e,!0)}this.fabricCanvas.renderAll()}dispose(){this.clearDrawingItems(),1===this._manager._arrDrawingLayer.length&&(this.fabricCanvas.wrapperEl.style.pointerEvents="none",this.fabricCanvas.dispose(),this._arrDrwaingItem.length=0,this._arrFabricObject.length=0)}}er.DDN_LAYER_ID=1,er.DBR_LAYER_ID=2,er.DLR_LAYER_ID=3,er.USER_DEFINED_LAYER_BASE_ID=100,er.TIP_LAYER_ID=999;class ir{constructor(){this._arrDrawingLayer=[]}createDrawingLayer(t,e){if(this.getDrawingLayer(e))throw new Error("Existed drawing layer id.");const i=new er(t,e,{enableRetinaScaling:!1});return i._manager=this,this._arrDrawingLayer.push(i),this._switchPointerEvent(),i}deleteDrawingLayer(t){const e=this.getDrawingLayer(t);if(!e)return;const i=this._arrDrawingLayer;e.dispose(),i.splice(i.indexOf(e),1),this._switchPointerEvent()}clearDrawingLayers(){for(let t of this._arrDrawingLayer)t.dispose();this._arrDrawingLayer.length=0}getDrawingLayer(t){for(let e of this._arrDrawingLayer)if(e.getId()===t)return e;return null}getAllDrawingLayers(){return Array.from(this._arrDrawingLayer)}getSelectedDrawingItems(){if(!this._arrDrawingLayer.length)return;const t=this._getFabricCanvas().getActiveObjects(),e=[];for(let i of t)e.push(i.getDrawingItem());return e}setDimensions(t,e){this._arrDrawingLayer.length&&this._arrDrawingLayer[0]._setDimensions(t,e)}setObjectFit(t){for(let e of this._arrDrawingLayer)e&&e._setObjectFit(t)}getObjectFit(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0]._getObjectFit():null}setVisible(t){if(!this._arrDrawingLayer.length)return;this._getFabricCanvas().wrapperEl.style.display=t?"block":"none"}_getFabricCanvas(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0].fabricCanvas:null}_switchPointerEvent(){if(this._arrDrawingLayer.length)for(let t of this._arrDrawingLayer)t.getMode()}}class rr extends mi{constructor(t,e,i,r,n){super(t,{x:e,y:i,width:r,height:0},n),Ei.set(this,void 0),Ci.set(this,void 0),this._fabricObject.paddingTop=15,this._fabricObject.calcTextHeight=function(){for(var t=0,e=0,i=this._textLines.length;e=0&&pe(this,Ci,setTimeout((()=>{this.set("visible",!1),this._drawingLayer&&this._drawingLayer.renderAll()}),me(this,Ei,"f")),"f")}getDuration(){return me(this,Ei,"f")}}Ei=new WeakMap,Ci=new WeakMap;class nr{constructor(){Ti.add(this),bi.set(this,void 0),Si.set(this,void 0),Ii.set(this,void 0),xi.set(this,!0),this._drawingLayerManager=new ir}createDrawingLayerBaseCvs(t,e,i="contain"){if("number"!=typeof t||t<=1)throw new Error("Invalid 'width'.");if("number"!=typeof e||e<=1)throw new Error("Invalid 'height'.");if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");const r=document.createElement("canvas");return r.width==t&&r.height==e||(r.width=t,r.height=e),r.style.objectFit=i,r}_createDrawingLayer(t,e,i,r){if(!this._layerBaseCvs){let n;try{n=this.getContentDimensions()}catch(t){if("Invalid content dimensions."!==(t.message||t))throw t}e||(e=(null==n?void 0:n.width)||1280),i||(i=(null==n?void 0:n.height)||720),r||(r=(null==n?void 0:n.objectFit)||"contain"),this._layerBaseCvs=this.createDrawingLayerBaseCvs(e,i,r)}const n=this._layerBaseCvs,s=this._drawingLayerManager.createDrawingLayer(n,t);return this._innerComponent.getElement("drawing-layer")||this._innerComponent.setElement("drawing-layer",n.parentElement),s}createDrawingLayer(){let t;for(let e=er.USER_DEFINED_LAYER_BASE_ID;;e++)if(!this._drawingLayerManager.getDrawingLayer(e)&&e!==er.TIP_LAYER_ID){t=e;break}return this._createDrawingLayer(t)}deleteDrawingLayer(t){var e;this._drawingLayerManager.deleteDrawingLayer(t),this._drawingLayerManager.getAllDrawingLayers().length||(null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null)}deleteUserDefinedDrawingLayer(t){if("number"!=typeof t)throw new TypeError("Invalid id.");if(tt.getId()>=0&&t.getId()!==er.TIP_LAYER_ID))}updateDrawingLayers(t){((t,e,i)=>{if(!(t<=1||e<=1)){if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");this._drawingLayerManager.setDimensions({width:t,height:e},{backstoreOnly:!0}),this._drawingLayerManager.setObjectFit(i)}})(t.width,t.height,t.objectFit)}getSelectedDrawingItems(){return this._drawingLayerManager.getSelectedDrawingItems()}setTipConfig(t){if(!(Ue(e=t)&&He(e.topLeftPoint)&&Oe(e.width))||e.width<=0||!Oe(e.duration)||"coordinateBase"in e&&!["view","image"].includes(e.coordinateBase))throw new Error("Invalid tip config.");var e;pe(this,bi,JSON.parse(JSON.stringify(t)),"f"),me(this,bi,"f").coordinateBase||(me(this,bi,"f").coordinateBase="view"),pe(this,Ii,t.duration,"f"),me(this,Ti,"m",Di).call(this)}getTipConfig(){return me(this,bi,"f")?me(this,bi,"f"):null}setTipVisible(t){if("boolean"!=typeof t)throw new TypeError("Invalid value.");this._tip&&(this._tip.set("visible",t),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll()),pe(this,xi,t,"f")}isTipVisible(){return me(this,xi,"f")}updateTipMessage(t){if(!me(this,bi,"f"))throw new Error("Tip config is not set.");this._tipStyleId||(this._tipStyleId=tr.createDrawingStyle({fillStyle:"#FFFFFF",paintMode:"fill",fontFamily:"Open Sans",fontSize:40})),this._drawingLayerOfTip||(this._drawingLayerOfTip=this._drawingLayerManager.getDrawingLayer(er.TIP_LAYER_ID)||this._createDrawingLayer(er.TIP_LAYER_ID)),this._tip?this._tip.set("text",t):this._tip=me(this,Ti,"m",Ai).call(this,t,me(this,bi,"f").topLeftPoint.x,me(this,bi,"f").topLeftPoint.y,me(this,bi,"f").width,me(this,bi,"f").coordinateBase,this._tipStyleId),me(this,Ti,"m",Ri).call(this,this._tip,this._drawingLayerOfTip),this._tip.set("visible",me(this,xi,"f")),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll(),me(this,Si,"f")&&clearTimeout(me(this,Si,"f")),me(this,Ii,"f")>=0&&pe(this,Si,setTimeout((()=>{me(this,Ti,"m",Oi).call(this)}),me(this,Ii,"f")),"f")}}bi=new WeakMap,Si=new WeakMap,Ii=new WeakMap,xi=new WeakMap,Ti=new WeakSet,Ai=function(t,e,i,r,n,s){const o=new rr(t,e,i,r,s);return o.coordinateBase=n,o},Ri=function(t,e){e.hasDrawingItem(t)||e.addDrawingItems([t])},Oi=function(){this._tip&&this._drawingLayerOfTip.removeDrawingItems([this._tip])},Di=function(){if(!this._tip)return;const t=me(this,bi,"f");this._tip.coordinateBase=t.coordinateBase,this._tip.setTextRect({x:t.topLeftPoint.x,y:t.topLeftPoint.y,width:t.width,height:0}),this._tip.set("width",this._tip.get("width")),this._tip._drawingLayer&&this._tip._drawingLayer.renderAll()};class sr extends HTMLElement{constructor(){super(),Li.set(this,void 0);const t=document.createElement("template").content,e=document.createElement("div");e.setAttribute("class","wrapper"),t.appendChild(e),pe(this,Li,e,"f");const i=document.createElement("slot");i.setAttribute("name","single-frame-input-container"),e.append(i);const r=document.createElement("slot");r.setAttribute("name","content"),e.append(r);const n=document.createElement("slot");n.setAttribute("name","drawing-layer"),e.append(n);const s=document.createElement("style");s.textContent='\n.wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n::slotted(canvas[slot="content"]) {\n object-fit: contain;\n pointer-events: none;\n}\n::slotted(div[slot="single-frame-input-container"]) {\n width: 1px;\n height: 1px;\n overflow: hidden;\n pointer-events: none;\n}\n::slotted(*) {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n ',t.appendChild(s),this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}getWrapper(){return me(this,Li,"f")}setElement(t,e){if(!(e instanceof HTMLElement))throw new TypeError("Invalid 'el'.");if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");this.removeElement(t),e.setAttribute("slot",t),this.appendChild(e)}getElement(t){if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");return this.querySelector(`[slot="${t}"]`)}removeElement(t){var e;if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");null===(e=this.querySelectorAll(`[slot="${t}"]`))||void 0===e||e.forEach((t=>t.remove()))}}Li=new WeakMap,customElements.get("dce-component")||customElements.define("dce-component",sr);class or extends HTMLElement{constructor(){super();const t=window._dce_default_template.content;this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}showScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="")}hideScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="none")}getElement(t){return this.shadowRoot.querySelector(t)}getVideoContainer(){return this.shadowRoot.querySelector(".dce-video-container")}getScanAreaEl(){return this.shadowRoot.querySelector(".dce-scanarea")}getScanLightEl(){return this.shadowRoot.querySelector(".dce-scanlight")}getLoadingBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-loading")}getCameraBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-camera")}getCameraSelectEl(){return this.shadowRoot.querySelector(".dce-sel-camera")}getResolutionSelectEl(){return this.shadowRoot.querySelector(".dce-sel-resolution")}getResolutionOptionEl(){return this.shadowRoot.querySelector(".dce-opt-gotResolution")}getCloseBtnEl(){return this.shadowRoot.querySelector(".dce-btn-close")}getDLRSelectEl(){return this.shadowRoot.querySelector(".dlr-sel-minletter")}getDLROptionEl(){return this.shadowRoot.querySelector(".dlr-opt-gotMinLtr")}}class ar extends nr{static get engineResourcePath(){return ht.engineResourcePaths.dce}static set defaultUIElementURL(t){ar._defaultUIElementURL=t}static get defaultUIElementURL(){var t;return null===(t=ar._defaultUIElementURL)||void 0===t?void 0:t.replace("@engineResourcePath/",ar.engineResourcePath)}static async createInstance(t){customElements.get(ar.uiComponentName)||customElements.define(ar.uiComponentName,or);const e=new ar;return await e.setUIElement(t||ar.defaultUIElementURL),e}static _transformCoordinates(t,e,i,r,n,s,o){const a=s/r,h=o/n;t.x=Math.round(t.x/a+e),t.y=Math.round(t.y/h+i)}set _singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(t!==me(this,Vi,"f")){if(pe(this,Vi,t,"f"),me(this,Mi,"m",Hi).call(this))pe(this,Bi,null,"f"),this._videoContainer=null,this._innerComponent.removeElement("content"),this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block");else if(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none"),!me(this,Bi,"f")){const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(ge.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),pe(this,Bi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}me(this,Mi,"m",Hi).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading())}}get _singleFrameMode(){return me(this,Vi,"f")}get disposed(){return me(this,Yi,"f")}constructor(){super(),Mi.add(this),Fi.set(this,void 0),Pi.set(this,void 0),ki.set(this,void 0),this.containerClassName="dce-video-container",Bi.set(this,void 0),this.videoFit="contain",this._hideDefaultSelection=!1,this._divScanArea=null,this._divScanLight=null,this._bgLoading=null,this._selCam=null,this._bgCamera=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,Ni.set(this,null),this.regionMaskFillStyle="rgba(0,0,0,0.5)",this.regionMaskStrokeStyle="rgb(254,142,20)",this.regionMaskLineWidth=6,Ui.set(this,!1),ji.set(this,!1),Gi.set(this,{width:0,height:0}),this._updateLayersTimeout=500,this._videoResizeListener=()=>{me(this,Mi,"m",qi).call(this),this._updateLayersTimeoutId&&clearTimeout(this._updateLayersTimeoutId),this._updateLayersTimeoutId=setTimeout((()=>{this.disposed||(this.eventHandler.fire("videoEl:resized",null,{async:!1}),this.eventHandler.fire("content:updated",null,{async:!1}),this.isScanLaserVisible()&&me(this,Mi,"m",Ki).call(this))}),this._updateLayersTimeout)},this._windowResizeListener=()=>{ar._onLog&&ar._onLog("window resize event triggered."),me(this,Gi,"f").width===document.documentElement.clientWidth&&me(this,Gi,"f").height===document.documentElement.clientHeight||(me(this,Gi,"f").width=document.documentElement.clientWidth,me(this,Gi,"f").height=document.documentElement.clientHeight,this._videoResizeListener())},Vi.set(this,"disabled"),this._clickIptSingleFrameMode=()=>{if(!me(this,Mi,"m",Hi).call(this))return;let t;if(this._singleFrameInputContainer)t=this._singleFrameInputContainer.firstElementChild;else{t=document.createElement("input"),t.setAttribute("type","file"),"camera"===this._singleFrameMode?(t.setAttribute("capture",""),t.setAttribute("accept","image/*")):"image"===this._singleFrameMode&&(t.removeAttribute("capture"),t.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp")),t.addEventListener("change",(async()=>{const e=t.files[0];t.value="";{const t=async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i},i=(t,e,i,r)=>{t.width==i&&t.height==r||(t.width=i,t.height=r);const n=t.getContext("2d");n.clearRect(0,0,t.width,t.height),n.drawImage(e,0,0)},r=await t(e),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=this._cvsSingleFrameMode;const a=null==o?void 0:o.width,h=null==o?void 0:o.height;o||(o=document.createElement("canvas"),this._cvsSingleFrameMode=o),i(o,r,n,s),this._innerComponent.setElement("content",o),a===o.width&&h===o.height||this.eventHandler.fire("content:updated",null,{async:!1})}this._onSingleFrameAcquired&&setTimeout((()=>{this._onSingleFrameAcquired(this._cvsSingleFrameMode)}),0)})),t.style.position="absolute",t.style.top="-9999px",t.style.backgroundColor="transparent",t.style.color="transparent";const e=document.createElement("div");e.append(t),this._innerComponent.setElement("single-frame-input-container",e),this._singleFrameInputContainer=e}null==t||t.click()},Wi.set(this,[]),this._capturedResultReceiver={onCapturedResultReceived:(t,e)=>{var i,r,n,s;if(this.disposed)return;if(this.clearAllInnerDrawingItems(),!t)return;const o=t.originalImageTag;if(!o)return;const a=t.items;if(!(null==a?void 0:a.length))return;const h=(null===(i=o.cropRegion)||void 0===i?void 0:i.left)||0,l=(null===(r=o.cropRegion)||void 0===r?void 0:r.top)||0,c=(null===(n=o.cropRegion)||void 0===n?void 0:n.right)?o.cropRegion.right-h:o.originalWidth,u=(null===(s=o.cropRegion)||void 0===s?void 0:s.bottom)?o.cropRegion.bottom-l:o.originalHeight,d=o.currentWidth,f=o.currentHeight,g=(t,e,i,r,n,s,o,a,h=[],l)=>{e.forEach((t=>ar._transformCoordinates(t,i,r,n,s,o,a)));const c=new Qi({points:[{x:e[0].x,y:e[0].y},{x:e[1].x,y:e[1].y},{x:e[2].x,y:e[2].y},{x:e[3].x,y:e[3].y}]},l);for(let t of h)c.addNote(t);t.addDrawingItems([c]),me(this,Wi,"f").push(c)};let m,p;for(let t of a)switch(t.type){case lt.CRIT_ORIGINAL_IMAGE:break;case lt.CRIT_BARCODE:m=this.getDrawingLayer(er.DBR_LAYER_ID),p=[{name:"format",content:t.formatString},{name:"text",content:t.text}],(null==e?void 0:e.isBarcodeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,tr.STYLE_ORANGE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case lt.CRIT_TEXT_LINE:m=this.getDrawingLayer(er.DLR_LAYER_ID),p=[{name:"text",content:t.text}],e.isLabelVerifyOpen?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,tr.STYLE_GREEN_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case lt.CRIT_DETECTED_QUAD:m=this.getDrawingLayer(er.DDN_LAYER_ID),(null==e?void 0:e.isDetectVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],tr.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case lt.CRIT_NORMALIZED_IMAGE:m=this.getDrawingLayer(er.DDN_LAYER_ID),(null==e?void 0:e.isNormalizeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],tr.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case lt.CRIT_PARSED_RESULT:break;default:throw new Error("Illegal item type.")}}},Yi.set(this,!1),this.eventHandler=new Qe,this.eventHandler.on("content:updated",(()=>{me(this,Fi,"f")&&clearTimeout(me(this,Fi,"f")),pe(this,Fi,setTimeout((()=>{if(this.disposed)return;let t;this._updateVideoContainer();try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateDrawingLayers(t),this.updateConvertedRegion(t)}),0),"f")})),this.eventHandler.on("videoEl:resized",(()=>{me(this,Pi,"f")&&clearTimeout(me(this,Pi,"f")),pe(this,Pi,setTimeout((()=>{this.disposed||this._updateVideoContainer()}),0),"f")}))}_setUIElement(t){t instanceof HTMLTemplateElement?(window._dce_default_template=t,this.UIElement=new or):this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await ii(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=await ii(ar.defaultUIElementURL);t instanceof HTMLTemplateElement?(window._dce_default_template=t,e.append(new or)):e.append(t),this._setUIElement(e)}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){var t;if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;let e,i=this.UIElement;if(i instanceof or?e=i.getElement(`.${this.containerClassName}`):i instanceof HTMLDivElement&&1===i.childElementCount&&i.firstElementChild instanceof or?(e=i.firstElementChild.getElement(`.${this.containerClassName}`),i=i.firstElementChild):e=i.classList.contains(this.containerClassName)?i:i.querySelector(`.${this.containerClassName}`),!e)throw Error(`Can not find the element with class '${this.containerClassName}'.`);if(this._innerComponent=new sr,e.appendChild(this._innerComponent),me(this,Mi,"m",Hi).call(this));else{const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(ge.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),pe(this,Bi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}if(i instanceof or?(this._selRsl=i.getElement(".dce-sel-resolution"),this._selMinLtr=i.getElement(".dlr-sel-minletter"),this._divScanArea=i.getElement(".dce-scanarea"),this._divScanLight=i.getElement(".dce-scanlight"),this._bgLoading=i.getElement(".dce-bg-loading"),this._bgCamera=i.getElement(".dce-bg-camera"),this._selCam=i.getElement(".dce-sel-camera"),this._optGotRsl=i.getElement(".dce-opt-gotResolution"),this._btnClose=i.getElement(".dce-btn-close"),this._optGotMinLtr=i.getElement(".dlr-opt-gotMinLtr")):(this._selRsl=i.querySelector(".dce-sel-resolution"),this._selMinLtr=i.querySelector(".dlr-sel-minletter"),this._divScanArea=i.querySelector(".dce-scanarea"),this._divScanLight=i.querySelector(".dce-scanlight"),this._bgLoading=i.querySelector(".dce-bg-loading"),this._bgCamera=i.querySelector(".dce-bg-camera"),this._selCam=i.querySelector(".dce-sel-camera"),this._optGotRsl=i.querySelector(".dce-opt-gotResolution"),this._btnClose=i.querySelector(".dce-btn-close"),this._optGotMinLtr=i.querySelector(".dlr-opt-gotMinLtr")),this._selRsl&&(this._hideDefaultSelection||me(this,Mi,"m",Hi).call(this)||this._selRsl.options.length||(this._selRsl.innerHTML=['','','',''].join(""),this._optGotRsl=this._selRsl.options[0])),this._selMinLtr&&(this._hideDefaultSelection||me(this,Mi,"m",Hi).call(this)||this._selMinLtr.options.length||(this._selMinLtr.innerHTML=['','','','','','','','','','',''].join(""),this._optGotMinLtr=this._selMinLtr.options[0])),this.isScanLaserVisible()||me(this,Mi,"m",qi).call(this),me(this,Mi,"m",Hi).call(this)&&(this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block")),me(this,Mi,"m",Hi).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading()),window.ResizeObserver){this._resizeObserver||(this._resizeObserver=new ResizeObserver((t=>{var e;ar._onLog&&ar._onLog("resize observer triggered.");for(let i of t)i.target===(null===(e=this._innerComponent)||void 0===e?void 0:e.getWrapper())&&this._videoResizeListener()})));const e=null===(t=this._innerComponent)||void 0===t?void 0:t.getWrapper();e&&this._resizeObserver.observe(e)}me(this,Gi,"f").width=document.documentElement.clientWidth,me(this,Gi,"f").height=document.documentElement.clientHeight,window.addEventListener("resize",this._windowResizeListener)}_unbindUI(){var t,e,i,r;me(this,Mi,"m",Hi).call(this)?(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none")):this._stopLoading(),me(this,Mi,"m",qi).call(this),null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,this._drawingLayerOfMask=null,this._drawingLayerOfTip=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null,pe(this,Bi,null,"f"),null===(r=this._videoContainer)||void 0===r||r.remove(),this._videoContainer=null,this._selCam=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,this._divScanArea=null,this._divScanLight=null,this._singleFrameInputContainer&&(this._singleFrameInputContainer.remove(),this._singleFrameInputContainer=null),window.ResizeObserver&&this._resizeObserver&&this._resizeObserver.disconnect(),window.removeEventListener("resize",this._windowResizeListener)}_startLoading(){this._bgLoading&&(this._bgLoading.style.display="",this._bgLoading.style.animationPlayState="")}_stopLoading(){this._bgLoading&&(this._bgLoading.style.display="none",this._bgLoading.style.animationPlayState="paused")}_renderCamerasInfo(t,e){if(!this._selCam)return;let i;this._selCam.textContent="";for(let r of e){const e=document.createElement("option");e.value=r.deviceId,e.innerText=r.label,this._selCam.append(e),r.deviceId&&t&&t.deviceId==r.deviceId&&(i=e)}this._selCam.value=i?i.value:""}_renderResolutionInfo(t){this._optGotRsl&&(this._optGotRsl.setAttribute("data-width",t.width),this._optGotRsl.setAttribute("data-height",t.height),this._optGotRsl.innerText="got "+t.width+"x"+t.height,this._selRsl&&this._optGotRsl.parentNode==this._selRsl&&(this._selRsl.value="got"))}getVideoElement(){return me(this,Bi,"f")}isVideoLoaded(){return!!me(this,Bi,"f")&&4==me(this,Bi,"f").readyState}setVideoFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);if(this.videoFit=t,!me(this,Bi,"f"))return;if(me(this,Bi,"f").style.objectFit=t,me(this,Mi,"m",Hi).call(this))return;let e;this._updateVideoContainer();try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}me(this,Mi,"m",Ji).call(this,e,this.getConvertedRegion()),this.updateDrawingLayers(e)}getVideoFit(){return this.videoFit}getContentDimensions(){var t,e,i,r;let n,s,o;if(me(this,Mi,"m",Hi).call(this)?(n=null===(i=this._cvsSingleFrameMode)||void 0===i?void 0:i.width,s=null===(r=this._cvsSingleFrameMode)||void 0===r?void 0:r.height,o="contain"):(n=null===(t=me(this,Bi,"f"))||void 0===t?void 0:t.videoWidth,s=null===(e=me(this,Bi,"f"))||void 0===e?void 0:e.videoHeight,o=this.getVideoFit()),!n||!s)throw new Error("Invalid content dimensions.");return{width:n,height:s,objectFit:o}}updateConvertedRegion(t){const e=Ke.convert(this.scanRegion,t.width,t.height);pe(this,Ni,e,"f"),me(this,ki,"f")&&clearTimeout(me(this,ki,"f")),pe(this,ki,setTimeout((()=>{let t;try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}me(this,Mi,"m",Xi).call(this,t,e),me(this,Mi,"m",Ji).call(this,t,e)}),0),"f")}getConvertedRegion(){return me(this,Ni,"f")}setScanRegion(t){if(null!=t&&!Ve(t)&&!ze(t))throw TypeError("Invalid 'region'.");let e;this.scanRegion=t?JSON.parse(JSON.stringify(t)):null;try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateConvertedRegion(e)}getScanRegion(){return JSON.parse(JSON.stringify(this.scanRegion))}getVisibleRegionOfVideo(t){if(!this.isVideoLoaded())throw new Error("The video is not loaded.");const e=me(this,Bi,"f").videoWidth,i=me(this,Bi,"f").videoHeight,r=this.getVideoFit(),{width:n,height:s}=this._innerComponent.getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");let o;const a={x:0,y:0,width:e,height:i,isMeasuredInPercentage:!1};if("cover"===r&&(n/s1){const t=me(this,Bi,"f").videoWidth,e=me(this,Bi,"f").videoHeight,{width:r,height:n}=this._innerComponent.getBoundingClientRect(),s=t/e;if(r/nt.remove())),me(this,Wi,"f").length=0}dispose(){this._unbindUI(),delete window._dce_default_template,this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"disposed",{value:!0})}}function hr(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function lr(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}Fi=new WeakMap,Pi=new WeakMap,ki=new WeakMap,Bi=new WeakMap,Ni=new WeakMap,Ui=new WeakMap,ji=new WeakMap,Gi=new WeakMap,Vi=new WeakMap,Wi=new WeakMap,Yi=new WeakMap,Mi=new WeakSet,Hi=function(){return"disabled"!==this._singleFrameMode},Xi=function(t,e){!e||0===e.x&&0===e.y&&e.width===t.width&&e.height===t.height?this.clearScanRegionMask():this.setScanRegionMask(e.x,e.y,e.width,e.height)},zi=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!0)},Zi=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!1)},Ki=function(){this._divScanLight&&"none"==this._divScanLight.style.display&&(this._divScanLight.style.display="block")},qi=function(){this._divScanLight&&(this._divScanLight.style.display="none")},Ji=function(t,e){if(!this._divScanArea)return;if(!this._innerComponent.getElement("content"))return;const{width:i,height:r,objectFit:n}=t;e||(e={x:0,y:0,width:i,height:r});const{width:s,height:o}=this._innerComponent.getBoundingClientRect();if(s<=0||o<=0)return;const a=s/o,h=i/r;let l,c,u,d,f=1;if("contain"===n)a66||"Safari"===mr.browser&&mr.version>13||"OPR"===mr.browser&&mr.version>43||"Edge"===mr.browser&&mr.version,"function"==typeof SuppressedError&&SuppressedError;let vr=class t{static multiply(t,e){const i=[];for(let r=0;r<3;r++){const n=e.slice(3*r,3*r+3);for(let e=0;e<3;e++){const r=[t[e],t[e+3],t[e+6]].reduce(((t,e,i)=>t+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(e,i,r){return t.multiply(e,[1,0,0,0,1,0,i,r,1])}static rotate(e,i){var r=Math.cos(i),n=Math.sin(i);return t.multiply(e,[r,-n,0,n,r,0,0,0,1])}static scale(e,i,r){return t.multiply(e,[i,0,0,0,r,0,0,0,1])}};var yr,wr,Er,Cr,Tr,br,Sr,Ir,xr,Ar,Rr,Or,Dr,Lr,Mr,Fr,Pr,kr,Br,Nr,Ur,jr,Gr,Vr,Wr,Yr,Hr,Xr,zr,Zr,Kr,qr,Jr,Qr,$r,tn,en,rn,nn,sn,on,an,hn,ln,cn,un,dn,fn,gn,mn,pn,_n;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(yr||(yr={}));class vn{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(_r(vn,wr,!1,"f",Er),!1):(_r(vn,wr,!0,"f",Er),!0)}get disposed(){return pr(this,xr,"f")}constructor(){Cr.set(this,yr.RGBA),Tr.set(this,null),br.set(this,null),Sr.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,Ir.set(this,null),xr.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==pr(vn,wr,"f",Er)&&vn.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!pr(vn,wr,"f",Er))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;vn._onLog&&(o=Date.now(),vn._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=yr.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!pr(vn,wr,"f",Er)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){vn._onLog&&vn._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);_r(this,br,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),_r(this,Sr,e(t),"f"),_r(this,Tr,i(t),"f"),_r(this,Cr,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[yr.GREY,yr.GREY32].includes(p)?1:0);let m,_,v=vr.translate(vr.identity(),-1,-1);v=vr.scale(v,2,2),v=vr.scale(v,1/t.canvas.width,1/t.canvas.height),m=vr.translate(v,u,d),m=vr.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=vr.translate(vr.identity(),a/i,h/r),_=vr.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,pr(this,Tr,"f"),e),v(t,pr(this,br,"f"),pr(this,Sr,"f"),pr(this,Tr,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){vn._onLog&&vn._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return vn._onLog&&vn._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===yr.GREY?yr.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return vn._onLog&&vn._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(vn._onLog&&(n=Date.now(),vn._onLog("transformPixelFormat(), START: "+n)),e===i)return vn._onLog&&vn._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[yr.RGBA,yr.RBGA,yr.GRBA,yr.GBRA,yr.BRGA,yr.BGRA];if(o.includes(e))if(i===yr.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;vn._onLog&&(s=Date.now(),vn._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=yr.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),pr(vn,wr,"f",Er)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){vn._onLog&&vn._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===yr.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{this.disposed||n.apply(i.target,r)}),0);else try{s=n.apply(i.target,r)}catch(t){}if(!0===s)break}}}dispose(){lr(this,Rr,!0,"f")}}Ar=new WeakMap,Rr=new WeakMap;const wn=(t,e,i,r)=>{if(!i)return t;let n=e+Math.round((t-e)/i)*i;return r&&(n=Math.min(n,r)),n};class En{static get version(){return"2.0.7"}static isStorageAvailable(t){let e;try{e=window[t];const i="__storage_test__";return e.setItem(i,i),e.removeItem(i),!0}catch(t){return t instanceof DOMException&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&e&&0!==e.length}}static findBestRearCameraInIOS(t,e){if(!t||!t.length)return null;let i=!1;if((null==e?void 0:e.getMainCamera)&&(i=!0),i){const e=["후면 카메라","背面カメラ","後置鏡頭","后置相机","กล้องด้านหลัง","बैक कैमरा","الكاميرا الخلفية","מצלמה אחורית","камера на задней панели","задня камера","задна камера","артқы камера","πίσω κάμερα","zadní fotoaparát","zadná kamera","tylny aparat","takakamera","stražnja kamera","rückkamera","kamera på baksidan","kamera belakang","kamera bak","hátsó kamera","fotocamera (posteriore)","câmera traseira","câmara traseira","cámara trasera","càmera posterior","caméra arrière","cameră spate","camera mặt sau","camera aan achterzijde","bagsidekamera","back camera","arka kamera"],i=t.find((t=>e.includes(t.label.toLowerCase())));return null==i?void 0:i.deviceId}{const e=["후면","背面","後置","后置","านหลัง","बैक","خلفية","אחורית","задняя","задней","задна","πίσω","zadní","zadná","tylny","trasera","traseira","taka","stražnja","spate","sau","rück","posteriore","posterior","hátsó","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"],i=["트리플","三镜头","三鏡頭","トリプル","สาม","ट्रिपल","ثلاثية","משולשת","үштік","тройная","тройна","потроєна","τριπλή","üçlü","trójobiektywowy","trostruka","trojný","trojitá","trippelt","trippel","triplă","triple","tripla","tiga","kolmois","ba camera"],r=["듀얼 와이드","雙廣角","双广角","デュアル広角","คู่ด้านหลังมุมกว้าง","ड्युअल वाइड","مزدوجة عريضة","כפולה רחבה","қос кең бұрышты","здвоєна ширококутна","двойная широкоугольная","двойна широкоъгълна","διπλή ευρεία","çift geniş","laajakulmainen kaksois","kép rộng mặt sau","kettős, széles látószögű","grande angular dupla","ganda","dwuobiektywowy","dwikamera","dvostruka široka","duální širokoúhlý","duálna širokouhlá","dupla grande-angular","dublă","dubbel vidvinkel","dual-weitwinkel","dual wide","dual con gran angular","dual","double","doppia con grandangolo","doble","dobbelt vidvinkelkamera"],n=t.filter((t=>{const i=t.label.toLowerCase();return e.some((t=>i.includes(t)))}));if(!n.length)return null;const s=n.find((t=>{const e=t.label.toLowerCase();return i.some((t=>e.includes(t)))}));if(s)return s.deviceId;const o=n.find((t=>{const e=t.label.toLowerCase();return r.some((t=>e.includes(t)))}));return o?o.deviceId:n[0].deviceId}}static findBestRearCamera(t,e){if(!t||!t.length)return null;if(["iPhone","iPad","Mac"].includes(mr.OS))return En.findBestRearCameraInIOS(t,{getMainCamera:null==e?void 0:e.getMainCameraInIOS});const i=["후","背面","背置","後面","後置","后面","后置","านหลัง","หลัง","बैक","خلفية","אחורית","задняя","задня","задней","задна","πίσω","zadní","zadná","tylny","trás","trasera","traseira","taka","stražnja","spate","sau","rück","rear","posteriore","posterior","hátsó","darrere","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"];for(let e of t){const t=e.label.toLowerCase();if(t&&i.some((e=>t.includes(e)))&&/\b0(\b)?/.test(t))return e.deviceId}return["Android","HarmonyOS"].includes(mr.OS)?t[t.length-1].deviceId:null}static findBestCamera(t,e,i){return t&&t.length?"environment"===e?this.findBestRearCamera(t,i):"user"===e?null:e?void 0:null:null}static async playVideo(t,e,i){if(!t)throw new Error("Invalid 'videoEl'.");if(!e)throw new Error("Invalid 'source'.");return new Promise((async(r,n)=>{let s;const o=()=>{t.removeEventListener("loadstart",c),t.removeEventListener("abort",u),t.removeEventListener("play",d),t.removeEventListener("error",f),t.removeEventListener("loadedmetadata",p)};let a=!1;const h=()=>{a=!0,s&&clearTimeout(s),o(),r(t)},l=t=>{s&&clearTimeout(s),o(),n(t)},c=()=>{t.addEventListener("abort",u,{once:!0})},u=()=>{const t=new Error("Video playing was interrupted.");t.name="AbortError",l(t)},d=()=>{h()},f=()=>{l(new Error(`Video error ${t.error.code}: ${t.error.message}.`))};let g;const m=new Promise((t=>{g=t})),p=()=>{g()};if(t.addEventListener("loadstart",c,{once:!0}),t.addEventListener("play",d,{once:!0}),t.addEventListener("error",f,{once:!0}),t.addEventListener("loadedmetadata",p,{once:!0}),"string"==typeof e||e instanceof String?t.src=e:t.srcObject=e,t.autoplay&&await new Promise((t=>{setTimeout(t,1e3)})),!a){i&&(s=setTimeout((()=>{o(),n(new Error("Failed to play video. Timeout."))}),i));try{t.src&&await t.load(),await t.play(),h()}catch(t){console.warn("1st play error: "+((null==t?void 0:t.message)||t))}if(!a){await m;try{await t.play(),h()}catch(t){console.warn("2rd play error: "+((null==t?void 0:t.message)||t)),l(t)}}}}))}static async testCameraAccess(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))return{ok:!1,errorName:"InsecureContext",errorMessage:"Insecure context."};let r;try{r=t?await navigator.mediaDevices.getUserMedia(t):await navigator.mediaDevices.getUserMedia({video:!0})}catch(t){return{ok:!1,errorName:t.name,errorMessage:t.message}}finally{null==r||r.getTracks().forEach((t=>{t.stop()}))}return{ok:!0}}get state(){if(!hr(this,Wr,"f"))return"closed";if("pending"===hr(this,Wr,"f"))return"opening";if("fulfilled"===hr(this,Wr,"f"))return"opened";throw new Error("Unknown state.")}set ifSaveLastUsedCamera(t){t?En.isStorageAvailable("localStorage")?lr(this,Ur,!0,"f"):(lr(this,Ur,!1,"f"),console.warn("Local storage is unavailable")):lr(this,Ur,!1,"f")}get ifSaveLastUsedCamera(){return hr(this,Ur,"f")}get isVideoPlaying(){return!(!hr(this,Lr,"f")||hr(this,Lr,"f").paused)&&"opened"===this.state}set tapFocusEventBoundEl(t){var e,i,r;if(!(t instanceof HTMLElement)&&null!=t)throw new TypeError("Invalid 'element'.");null===(e=hr(this,Kr,"f"))||void 0===e||e.removeEventListener("click",hr(this,Zr,"f")),null===(i=hr(this,Kr,"f"))||void 0===i||i.removeEventListener("touchend",hr(this,Zr,"f")),null===(r=hr(this,Kr,"f"))||void 0===r||r.removeEventListener("touchmove",hr(this,zr,"f")),lr(this,Kr,t,"f"),t&&(window.TouchEvent&&["Android","HarmonyOS","iPhone","iPad"].includes(mr.OS)?(t.addEventListener("touchend",hr(this,Zr,"f")),t.addEventListener("touchmove",hr(this,zr,"f"))):t.addEventListener("click",hr(this,Zr,"f")))}get tapFocusEventBoundEl(){return hr(this,Kr,"f")}get disposed(){return hr(this,sn,"f")}constructor(t){var e,i;Dr.add(this),Lr.set(this,null),Mr.set(this,void 0),Fr.set(this,(()=>{"opened"===this.state&&hr(this,$r,"f").fire("resumed",null,{target:this,async:!1})})),Pr.set(this,(()=>{hr(this,$r,"f").fire("paused",null,{target:this,async:!1})})),kr.set(this,void 0),Br.set(this,void 0),this.cameraOpenTimeout=15e3,this._arrCameras=[],Nr.set(this,void 0),Ur.set(this,!1),this.ifSkipCameraInspection=!1,this.selectIOSRearMainCameraAsDefault=!1,jr.set(this,void 0),Gr.set(this,!0),Vr.set(this,void 0),Wr.set(this,void 0),Yr.set(this,!1),this._focusParameters={maxTimeout:400,minTimeout:300,kTimeout:void 0,oldDistance:null,fds:null,isDoingFocus:0,taskBackToContinous:null,curFocusTaskId:0,focusCancelableTime:1500,defaultFocusAreaSizeRatio:6,focusBackToContinousTime:5e3,tapFocusMinDistance:null,tapFocusMaxDistance:null,focusArea:null,tempBufferContainer:null,defaultTempBufferContainerLenRatio:1/4},Hr.set(this,!1),this._focusSupported=!0,this.calculateCoordInVideo=(t,e)=>{let i,r;const n=window.getComputedStyle(hr(this,Lr,"f")).objectFit,s=this.getResolution(),o=hr(this,Lr,"f").getBoundingClientRect(),a=o.left,h=o.top,{width:l,height:c}=hr(this,Lr,"f").getBoundingClientRect();if(l<=0||c<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const u=l/c,d=s.width/s.height;let f=1;if("contain"===n)d>u?(f=l/s.width,i=(t-a)/f,r=(e-h-(c-l/d)/2)/f):(f=c/s.height,r=(e-h)/f,i=(t-a-(l-c*d)/2)/f);else{if("cover"!==n)throw new Error("Unsupported object-fit.");d>u?(f=c/s.height,r=(e-h)/f,i=(t-a+(c*d-l)/2)/f):(f=l/s.width,i=(t-a)/f,r=(e-h+(l/d-c)/2)/f)}return{x:i,y:r}},Xr.set(this,!1),zr.set(this,(()=>{lr(this,Xr,!0,"f")})),Zr.set(this,(async t=>{var e;if(hr(this,Xr,"f"))return void lr(this,Xr,!1,"f");if(!hr(this,Hr,"f"))return;if(!this.isVideoPlaying)return;if(!hr(this,Mr,"f"))return;if(!this._focusSupported)return;if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(e=this.getCameraCapabilities())||void 0===e?void 0:e.focusDistance,!this._focusParameters.fds))return void(this._focusSupported=!1);if(null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),1==this._focusParameters.isDoingFocus)return;let i,r;if(this._focusParameters.taskBackToContinous&&(clearTimeout(this._focusParameters.taskBackToContinous),this._focusParameters.taskBackToContinous=null),t instanceof MouseEvent)i=t.clientX,r=t.clientY;else{if(!(t instanceof TouchEvent))throw new Error("Unknown event type.");if(!t.changedTouches.length)return;i=t.changedTouches[0].clientX,r=t.changedTouches[0].clientY}const n=this.getResolution(),s=2*Math.round(Math.min(n.width,n.height)/this._focusParameters.defaultFocusAreaSizeRatio/2);let o;try{o=this.calculateCoordInVideo(i,r)}catch(t){}if(o.x<0||o.x>n.width||o.y<0||o.y>n.height)return;const a={x:o.x+"px",y:o.y+"px"},h=s+"px",l=h;let c;En._onLog&&(c=Date.now());try{await hr(this,Dr,"m",mn).call(this,a,h,l,this._focusParameters.tapFocusMinDistance,this._focusParameters.tapFocusMaxDistance)}catch(t){if(En._onLog)throw En._onLog(t),t}En._onLog&&En._onLog(`Tap focus costs: ${Date.now()-c} ms`),this._focusParameters.taskBackToContinous=setTimeout((()=>{var t;En._onLog&&En._onLog("Back to continuous focus."),null===(t=hr(this,Mr,"f"))||void 0===t||t.applyConstraints({advanced:[{focusMode:"continuous"}]}).catch((()=>{}))}),this._focusParameters.focusBackToContinousTime),hr(this,$r,"f").fire("tapfocus",null,{target:this,async:!1})})),Kr.set(this,null),qr.set(this,1),Jr.set(this,{x:0,y:0}),this.updateVideoElWhenSoftwareScaled=()=>{if(!hr(this,Lr,"f"))return;const t=hr(this,qr,"f");if(t<1)throw new RangeError("Invalid scale value.");if(1===t)hr(this,Lr,"f").style.transform="";else{const e=window.getComputedStyle(hr(this,Lr,"f")).objectFit,i=hr(this,Lr,"f").videoWidth,r=hr(this,Lr,"f").videoHeight,{width:n,height:s}=hr(this,Lr,"f").getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const o=n/s,a=i/r;let h=1;"contain"===e?h=oo?s/(i/t):n/(r/t));const l=h*(1-1/t)*(i/2-hr(this,Jr,"f").x),c=h*(1-1/t)*(r/2-hr(this,Jr,"f").y);hr(this,Lr,"f").style.transform=`translate(${l}px, ${c}px) scale(${t})`}},Qr.set(this,(function(){if(!(this.data instanceof Uint8Array||this.data instanceof Uint8ClampedArray))throw new TypeError("Invalid data.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.pixelFormat===yr.GREY){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{var t,e;if("visible"===document.visibilityState){if(En._onLog&&En._onLog("document visible. video paused: "+(null===(t=hr(this,Lr,"f"))||void 0===t?void 0:t.paused)),"opening"==this.state||"opened"==this.state){let e=!1;if(!this.isVideoPlaying){En._onLog&&En._onLog("document visible. Not auto resume. 1st resume start.");try{await this.resume(),e=!0}catch(t){En._onLog&&En._onLog("document visible. 1st resume video failed, try open instead.")}e||await hr(this,Dr,"m",cn).call(this)}if(await new Promise((t=>setTimeout(t,300))),!this.isVideoPlaying){En._onLog&&En._onLog("document visible. 1st open failed. 2rd resume start."),e=!1;try{await this.resume(),e=!0}catch(t){En._onLog&&En._onLog("document visible. 2rd resume video failed, try open instead.")}e||await hr(this,Dr,"m",cn).call(this)}}}else"hidden"===document.visibilityState&&(En._onLog&&En._onLog("document hidden. video paused: "+(null===(e=hr(this,Lr,"f"))||void 0===e?void 0:e.paused)),"opening"==this.state||"opened"==this.state&&this.isVideoPlaying&&this.pause())})),sn.set(this,!1),(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia)||setTimeout((()=>{En.onWarning&&En.onWarning("The browser is too old or the page is loaded from an insecure origin.")}),0),this.defaultConstraints={video:{facingMode:{ideal:"environment"}}},this.resetMediaStreamConstraints(),t instanceof HTMLVideoElement&&this.setVideoEl(t),lr(this,$r,new yn,"f"),this.imageDataGetter=new vn,document.addEventListener("visibilitychange",hr(this,nn,"f"))}setVideoEl(t){if(!(t&&t instanceof HTMLVideoElement))throw new Error("Invalid 'videoEl'.");t.addEventListener("play",hr(this,Fr,"f")),t.addEventListener("pause",hr(this,Pr,"f")),lr(this,Lr,t,"f")}getVideoEl(){return hr(this,Lr,"f")}releaseVideoEl(){var t,e;null===(t=hr(this,Lr,"f"))||void 0===t||t.removeEventListener("play",hr(this,Fr,"f")),null===(e=hr(this,Lr,"f"))||void 0===e||e.removeEventListener("pause",hr(this,Pr,"f")),lr(this,Lr,null,"f")}isVideoLoaded(){return!!hr(this,Lr,"f")&&4==hr(this,Lr,"f").readyState}async open(){if(hr(this,Vr,"f")&&!hr(this,Gr,"f")){if("pending"===hr(this,Wr,"f"))return hr(this,Vr,"f");if("fulfilled"===hr(this,Wr,"f"))return}hr(this,$r,"f").fire("before:open",null,{target:this}),await hr(this,Dr,"m",cn).call(this),hr(this,$r,"f").fire("played",null,{target:this,async:!1}),hr(this,$r,"f").fire("opened",null,{target:this,async:!1})}async close(){if("closed"===this.state)return;hr(this,$r,"f").fire("before:close",null,{target:this});const t=hr(this,Vr,"f");if(hr(this,Dr,"m",dn).call(this),t&&"pending"===hr(this,Wr,"f")){try{await t}catch(t){}if(!1===hr(this,Gr,"f")){const t=new Error("'close()' was interrupted.");throw t.name="AbortError",t}}lr(this,Vr,null,"f"),lr(this,Wr,null,"f"),hr(this,$r,"f").fire("closed",null,{target:this,async:!1})}pause(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");hr(this,Lr,"f").pause()}async resume(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");await hr(this,Lr,"f").play()}async setCamera(t){if("string"!=typeof t)throw new TypeError("Invalid 'deviceId'.");if("object"!=typeof hr(this,kr,"f").video&&(hr(this,kr,"f").video={}),delete hr(this,kr,"f").video.facingMode,hr(this,kr,"f").video.deviceId={exact:t},!("closed"===this.state||this.videoSrc||"opening"===this.state&&hr(this,Gr,"f"))){hr(this,$r,"f").fire("before:camera:change",[],{target:this,async:!1}),await hr(this,Dr,"m",un).call(this);try{this.resetSoftwareScale()}catch(t){}return hr(this,Br,"f")}}async switchToFrontCamera(t){if("object"!=typeof hr(this,kr,"f").video&&(hr(this,kr,"f").video={}),(null==t?void 0:t.resolution)&&(hr(this,kr,"f").video.width={ideal:t.resolution.width},hr(this,kr,"f").video.height={ideal:t.resolution.height}),delete hr(this,kr,"f").video.deviceId,hr(this,kr,"f").video.facingMode={exact:"user"},lr(this,Nr,null,"f"),!("closed"===this.state||this.videoSrc||"opening"===this.state&&hr(this,Gr,"f"))){hr(this,$r,"f").fire("before:camera:change",[],{target:this,async:!1}),hr(this,Dr,"m",un).call(this);try{this.resetSoftwareScale()}catch(t){}return hr(this,Br,"f")}}getCamera(){var t;if(hr(this,Br,"f"))return hr(this,Br,"f");{let e=(null===(t=hr(this,kr,"f").video)||void 0===t?void 0:t.deviceId)||"";if(e){e=e.exact||e.ideal||e;for(let t of this._arrCameras)if(t.deviceId===e)return JSON.parse(JSON.stringify(t))}return{deviceId:"",label:"",_checked:!1}}}async _getCameras(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;if(t){let t=await navigator.mediaDevices.getUserMedia({video:!0});r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind)),t.getTracks().forEach((t=>{t.stop()}))}else r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind));const n=[],s=[];if(this._arrCameras)for(let t of this._arrCameras)t._checked&&s.push(t);for(let t=0;t"videoinput"===t.kind));return i&&i.length&&!i[0].deviceId?this._getCameras(!0):this._getCameras(!1)}async getAllCameras(){return this.getCameras()}async setResolution(t,e,i){if("number"!=typeof t||t<=0)throw new TypeError("Invalid 'width'.");if("number"!=typeof e||e<=0)throw new TypeError("Invalid 'height'.");if("object"!=typeof hr(this,kr,"f").video&&(hr(this,kr,"f").video={}),i?(hr(this,kr,"f").video.width={exact:t},hr(this,kr,"f").video.height={exact:e}):(hr(this,kr,"f").video.width={ideal:t},hr(this,kr,"f").video.height={ideal:e}),"closed"===this.state||this.videoSrc||"opening"===this.state&&hr(this,Gr,"f"))return null;hr(this,$r,"f").fire("before:resolution:change",[],{target:this,async:!1}),await hr(this,Dr,"m",un).call(this);try{this.resetSoftwareScale()}catch(t){}const r=this.getResolution();return{width:r.width,height:r.height}}getResolution(){if("opened"===this.state&&this.videoSrc&&hr(this,Lr,"f"))return{width:hr(this,Lr,"f").videoWidth,height:hr(this,Lr,"f").videoHeight};if(hr(this,Mr,"f")){const t=hr(this,Mr,"f").getSettings();return{width:t.width,height:t.height}}if(this.isVideoLoaded())return{width:hr(this,Lr,"f").videoWidth,height:hr(this,Lr,"f").videoHeight};{const t={width:0,height:0};let e=hr(this,kr,"f").video.width||0,i=hr(this,kr,"f").video.height||0;return e&&(t.width=e.exact||e.ideal||e),i&&(t.height=i.exact||i.ideal||i),t}}async getResolutions(t){var e,i,r,n,s,o,a,h,l,c,u;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let d="";const f=(t,e)=>{const i=hr(this,en,"f").get(t);if(!i||!i.length)return!1;for(let t of i)if(t.width===e.width&&t.height===e.height)return!0;return!1};if(this._mediaStream){d=null===(u=hr(this,Br,"f"))||void 0===u?void 0:u.deviceId;let e=hr(this,en,"f").get(d);if(e&&!t)return JSON.parse(JSON.stringify(e));e=[],hr(this,en,"f").set(d,e),lr(this,Yr,!0,"f");try{for(let t of this.detectedResolutions){await hr(this,Mr,"f").applyConstraints({width:{ideal:t.width},height:{ideal:t.height}}),hr(this,Dr,"m",an).call(this);const i=hr(this,Mr,"f").getSettings(),r={width:i.width,height:i.height};f(d,r)||e.push({width:r.width,height:r.height})}}catch(t){throw hr(this,Dr,"m",dn).call(this),lr(this,Yr,!1,"f"),t}try{await hr(this,Dr,"m",cn).call(this)}catch(t){if("AbortError"===t.name)return e;throw t}finally{lr(this,Yr,!1,"f")}return e}{const e=async(t,e,i)=>{const r={video:{deviceId:{exact:t},width:{ideal:e},height:{ideal:i}}};let n=null;try{n=await navigator.mediaDevices.getUserMedia(r)}catch(t){return null}if(!n)return null;const s=n.getVideoTracks();let o=null;try{const t=s[0].getSettings();o={width:t.width,height:t.height}}catch(t){const e=document.createElement("video");e.srcObject=n,o={width:e.videoWidth,height:e.videoHeight},e.srcObject=null}return s.forEach((t=>{t.stop()})),o};let i=(null===(s=null===(n=null===(r=hr(this,kr,"f"))||void 0===r?void 0:r.video)||void 0===n?void 0:n.deviceId)||void 0===s?void 0:s.exact)||(null===(h=null===(a=null===(o=hr(this,kr,"f"))||void 0===o?void 0:o.video)||void 0===a?void 0:a.deviceId)||void 0===h?void 0:h.ideal)||(null===(c=null===(l=hr(this,kr,"f"))||void 0===l?void 0:l.video)||void 0===c?void 0:c.deviceId);if(!i)return[];let u=hr(this,en,"f").get(i);if(u&&!t)return JSON.parse(JSON.stringify(u));u=[],hr(this,en,"f").set(i,u);for(let t of this.detectedResolutions){const r=await e(i,t.width,t.height);r&&!f(i,r)&&u.push({width:r.width,height:r.height})}return u}}async setMediaStreamConstraints(t,e){if(!(t=>{return null!==t&&"[object Object]"===(e=t,Object.prototype.toString.call(e));var e})(t))throw new TypeError("Invalid 'mediaStreamConstraints'.");lr(this,kr,JSON.parse(JSON.stringify(t)),"f"),lr(this,Nr,null,"f"),e&&hr(this,Dr,"m",un).call(this)}getMediaStreamConstraints(){return JSON.parse(JSON.stringify(hr(this,kr,"f")))}resetMediaStreamConstraints(){lr(this,kr,this.defaultConstraints?JSON.parse(JSON.stringify(this.defaultConstraints)):null,"f")}getCameraCapabilities(){if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return hr(this,Mr,"f").getCapabilities?hr(this,Mr,"f").getCapabilities():{}}getCameraSettings(){if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return hr(this,Mr,"f").getSettings()}async turnOnTorch(){if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await hr(this,Mr,"f").applyConstraints({advanced:[{torch:!0}]})}async turnOffTorch(){if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await hr(this,Mr,"f").applyConstraints({advanced:[{torch:!1}]})}async setColorTemperature(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.colorTemperature;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=wn(t,r.min,r.step,r.max)),await hr(this,Mr,"f").applyConstraints({advanced:[{colorTemperature:t,whiteBalanceMode:"manual"}]}),t}getColorTemperature(){return this.getCameraSettings().colorTemperature||0}async setExposureCompensation(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.exposureCompensation;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=wn(t,r.min,r.step,r.max)),await hr(this,Mr,"f").applyConstraints({advanced:[{exposureCompensation:t}]}),t}getExposureCompensation(){return this.getCameraSettings().exposureCompensation||0}async setFrameRate(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");let r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.frameRate;if(!r)throw Error("Not supported.");e&&(tr.max&&(t=r.max));const n=this.getResolution();return await hr(this,Mr,"f").applyConstraints({width:{ideal:Math.max(n.width,n.height)},frameRate:t}),t}getFrameRate(){return this.getCameraSettings().frameRate}async setFocus(t,e){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const i=this.getCameraCapabilities(),r=null==i?void 0:i.focusMode,n=null==i?void 0:i.focusDistance;if(!r)throw Error("Not supported.");if("string"!=typeof t.mode)throw TypeError("Invalid 'mode'.");const s=t.mode.toLowerCase();if(!r.includes(s))throw Error("Unsupported focus mode.");if("manual"===s){if(!n)throw Error("Manual focus unsupported.");if(t.hasOwnProperty("distance")){let i=t.distance;e&&(in.max&&(i=n.max),i=wn(i,n.min,n.step,n.max)),this._focusParameters.focusArea=null,await hr(this,Mr,"f").applyConstraints({advanced:[{focusMode:s,focusDistance:i}]})}else{if(!t.area)throw new Error("'distance' or 'area' should be specified in 'manual' mode.");{const e=t.area.centerPoint;let i=t.area.width,r=t.area.height;if(!i||!r){const t=this.getResolution();i||(i=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px"),r||(r=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px")}this._focusParameters.focusArea={centerPoint:{x:e.x,y:e.y},width:i,height:r},await hr(this,Dr,"m",mn).call(this,e,i,r)}}}else this._focusParameters.focusArea=null,await hr(this,Mr,"f").applyConstraints({advanced:[{focusMode:s}]})}getFocus(){const t=this.getCameraSettings(),e=t.focusMode;return e?"manual"===e?this._focusParameters.focusArea?{mode:"manual",area:JSON.parse(JSON.stringify(this._focusParameters.focusArea))}:{mode:"manual",distance:t.focusDistance}:{mode:e}:null}async enableTapToFocus(){lr(this,Hr,!0,"f")}disableTapToFocus(){lr(this,Hr,!1,"f")}isTapToFocusEnabled(){return hr(this,Hr,"f")}async setZoom(t){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if("number"!=typeof t.factor)throw new TypeError("Illegal type of 'factor'.");if(t.factor<1)throw new RangeError("Invalid 'factor'.");if("opened"!==this.state)throw new Error("Video is not playing.");t.centerPoint?hr(this,Dr,"m",pn).call(this,t.centerPoint):this.resetScaleCenter();try{if(hr(this,Dr,"m",_n).call(this,hr(this,Jr,"f"))){const e=await this.setHardwareScale(t.factor,!0);let i=this.getHardwareScale();1==i&&1!=e&&(i=e),t.factor>i?this.setSoftwareScale(t.factor/i):this.setSoftwareScale(1)}else await this.setHardwareScale(1),this.setSoftwareScale(t.factor)}catch(e){const i=e.message||e;if("Not supported."!==i&&"Camera is not open."!==i)throw e;this.setSoftwareScale(t.factor)}}getZoom(){if("opened"!==this.state)throw new Error("Video is not playing.");let t=1;try{t=this.getHardwareScale()}catch(t){if("Camera is not open."!==(t.message||t))throw t}return{factor:t*hr(this,qr,"f")}}async resetZoom(){await this.setZoom({factor:1})}async setHardwareScale(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if(!hr(this,Mr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.zoom;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=wn(t,r.min,r.step,r.max)),await hr(this,Mr,"f").applyConstraints({advanced:[{zoom:t}]}),t}getHardwareScale(){return this.getCameraSettings().zoom||1}setSoftwareScale(t,e){if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if("opened"!==this.state)throw new Error("Video is not playing.");e&&hr(this,Dr,"m",pn).call(this,e),lr(this,qr,t,"f"),this.updateVideoElWhenSoftwareScaled()}getSoftwareScale(){return hr(this,qr,"f")}resetScaleCenter(){if("opened"!==this.state)throw new Error("Video is not playing.");const t=this.getResolution();lr(this,Jr,{x:t.width/2,y:t.height/2},"f")}resetSoftwareScale(){this.setSoftwareScale(1),this.resetScaleCenter()}getFrameData(t){if(this.disposed)throw Error("The 'Camera' instance has been disposed.");if(!this.isVideoLoaded())return null;if(hr(this,Yr,"f"))return null;const e=Date.now();En._onLog&&En._onLog("getFrameData() START: "+e);const i=hr(this,Lr,"f").videoWidth,r=hr(this,Lr,"f").videoHeight;let n={sx:0,sy:0,sWidth:i,sHeight:r,dWidth:i,dHeight:r};(null==t?void 0:t.position)&&(n=JSON.parse(JSON.stringify(t.position)));let s=yr.RGBA;(null==t?void 0:t.pixelFormat)&&(s=t.pixelFormat);let o=hr(this,qr,"f");(null==t?void 0:t.scale)&&(o=t.scale);let a=hr(this,Jr,"f");if(null==t?void 0:t.scaleCenter){if("string"!=typeof t.scaleCenter.x||"string"!=typeof t.scaleCenter.y)throw new Error("Invalid scale center.");let e=0,n=0;if(t.scaleCenter.x.endsWith("px"))e=parseFloat(t.scaleCenter.x);else{if(!t.scaleCenter.x.endsWith("%"))throw new Error("Invalid scale center.");e=parseFloat(t.scaleCenter.x)/100*i}if(t.scaleCenter.y.endsWith("px"))n=parseFloat(t.scaleCenter.y);else{if(!t.scaleCenter.y.endsWith("%"))throw new Error("Invalid scale center.");n=parseFloat(t.scaleCenter.y)/100*r}if(isNaN(e)||isNaN(n))throw new Error("Invalid scale center.");a.x=Math.round(e),a.y=Math.round(n)}let h=null;if((null==t?void 0:t.bufferContainer)&&(h=t.bufferContainer),0==i||0==r)return null;1!==o&&(n.sWidth=Math.round(n.sWidth/o),n.sHeight=Math.round(n.sHeight/o),n.sx=Math.round((1-1/o)*a.x+n.sx/o),n.sy=Math.round((1-1/o)*a.y+n.sy/o));const l=this.imageDataGetter.getImageData(hr(this,Lr,"f"),i,r,n,{pixelFormat:s,bufferContainer:h});if(!l)return null;const c=Date.now();return En._onLog&&En._onLog("getFrameData() END: "+c),{data:l.data,width:l.width,height:l.height,pixelFormat:l.pixelFormat,timeSpent:c-e,timeStamp:c,toCanvas:hr(this,Qr,"f")}}on(t,e){if(!hr(this,tn,"f").includes(t.toLowerCase()))throw new Error(`Event '${t}' does not exist.`);hr(this,$r,"f").on(t,e)}off(t,e){hr(this,$r,"f").off(t,e)}async dispose(){this.tapFocusEventBoundEl=null,await this.close(),this.releaseVideoEl(),hr(this,$r,"f").dispose(),this.imageDataGetter.dispose(),document.removeEventListener("visibilitychange",hr(this,nn,"f")),lr(this,sn,!0,"f")}}var Cn,Tn,bn,Sn,In,xn,An,Rn,On,Dn,Ln,Mn,Fn,Pn,kn,Bn,Nn,Un,jn,Gn,Vn,Wn,Yn,Hn,Xn,zn,Zn,Kn,qn,Jn,Qn,$n,ts;Lr=new WeakMap,Mr=new WeakMap,Fr=new WeakMap,Pr=new WeakMap,kr=new WeakMap,Br=new WeakMap,Nr=new WeakMap,Ur=new WeakMap,jr=new WeakMap,Gr=new WeakMap,Vr=new WeakMap,Wr=new WeakMap,Yr=new WeakMap,Hr=new WeakMap,Xr=new WeakMap,zr=new WeakMap,Zr=new WeakMap,Kr=new WeakMap,qr=new WeakMap,Jr=new WeakMap,Qr=new WeakMap,$r=new WeakMap,tn=new WeakMap,en=new WeakMap,rn=new WeakMap,nn=new WeakMap,sn=new WeakMap,Dr=new WeakSet,on=async function(){const t=this.getMediaStreamConstraints();if("boolean"==typeof t.video&&(t.video={}),t.video.deviceId);else if(hr(this,Nr,"f"))delete t.video.facingMode,t.video.deviceId={exact:hr(this,Nr,"f")};else if(this.ifSaveLastUsedCamera&&En.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")){delete t.video.facingMode,t.video.deviceId={ideal:window.localStorage.getItem("dce_last_camera_id")};const e=JSON.parse(window.localStorage.getItem("dce_last_apply_width")),i=JSON.parse(window.localStorage.getItem("dce_last_apply_height"));e&&i&&(t.video.width=e,t.video.height=i)}else if(this.ifSkipCameraInspection);else{const e=async t=>{let e=null;return"environment"===t&&["Android","HarmonyOS","iPhone","iPad"].includes(mr.OS)?(await this._getCameras(!1),hr(this,Dr,"m",an).call(this),e=En.findBestCamera(this._arrCameras,"environment",{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})):t||["Android","HarmonyOS","iPhone","iPad"].includes(mr.OS)||(await this._getCameras(!1),hr(this,Dr,"m",an).call(this),e=En.findBestCamera(this._arrCameras,null,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})),e};let i=t.video.facingMode;i instanceof Array&&i.length&&(i=i[0]),"object"==typeof i&&(i=i.exact||i.ideal);const r=await e(i);r&&(delete t.video.facingMode,t.video.deviceId={exact:r})}return t},an=function(){if(hr(this,Gr,"f")){const t=new Error("The operation was interrupted.");throw t.name="AbortError",t}},hn=async function(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;try{En._onLog&&En._onLog("======try getUserMedia========");let e=[0,500,1e3,2e3],i=null;const n=async t=>{for(let n of e){n&&(await new Promise((t=>setTimeout(t,n))),hr(this,Dr,"m",an).call(this));try{En._onLog&&En._onLog("ask "+JSON.stringify(t)),r=await navigator.mediaDevices.getUserMedia(t),hr(this,Dr,"m",an).call(this);break}catch(t){if("NotFoundError"===t.name||"NotAllowedError"===t.name||"AbortError"===t.name||"OverconstrainedError"===t.name)throw t;i=t,En._onLog&&En._onLog(t.message||t)}}};if(await n(t),r||"object"!=typeof t.video||(t.video.deviceId&&(delete t.video.deviceId,await n(t)),!r&&t.video.facingMode&&(delete t.video.facingMode,await n(t)),r||!t.video.width&&!t.video.height||(delete t.video.width,delete t.video.height,await n(t))),!r)throw i;return r}catch(t){throw null==r||r.getTracks().forEach((t=>{t.stop()})),"NotFoundError"===t.name&&(DOMException?t=new DOMException("No camera available, please use a device with an accessible camera.",t.name):(t=new Error("No camera available, please use a device with an accessible camera.")).name="NotFoundError"),t}},ln=function(){this._mediaStream&&(this._mediaStream.getTracks().forEach((t=>{t.stop()})),this._mediaStream=null),lr(this,Mr,null,"f")},cn=async function(){lr(this,Gr,!1,"f");const t=lr(this,jr,Symbol(),"f");if(hr(this,Vr,"f")&&"pending"===hr(this,Wr,"f")){try{await hr(this,Vr,"f")}catch(t){}hr(this,Dr,"m",an).call(this)}if(t!==hr(this,jr,"f"))return;const e=lr(this,Vr,(async()=>{lr(this,Wr,"pending","f");try{if(this.videoSrc){if(!hr(this,Lr,"f"))throw new Error("'videoEl' should be set.");await En.playVideo(hr(this,Lr,"f"),this.videoSrc,this.cameraOpenTimeout),hr(this,Dr,"m",an).call(this)}else{let t=await hr(this,Dr,"m",on).call(this);hr(this,Dr,"m",ln).call(this);let e=await hr(this,Dr,"m",hn).call(this,t);await this._getCameras(!1),hr(this,Dr,"m",an).call(this);const i=()=>{const t=e.getVideoTracks();let i,r;if(t.length&&(i=t[0]),i){const t=i.getSettings();if(t)for(let e of this._arrCameras)if(t.deviceId===e.deviceId){e._checked=!0,e.label=i.label,r=e;break}}return r},r=hr(this,kr,"f");if("object"==typeof r.video){let n=r.video.facingMode;if(n instanceof Array&&n.length&&(n=n[0]),"object"==typeof n&&(n=n.exact||n.ideal),!(hr(this,Nr,"f")||this.ifSaveLastUsedCamera&&En.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")||this.ifSkipCameraInspection||r.video.deviceId)){const r=i(),s=En.findBestCamera(this._arrCameras,n,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault});s&&s!=(null==r?void 0:r.deviceId)&&(e.getTracks().forEach((t=>{t.stop()})),t.video.deviceId={exact:s},e=await hr(this,Dr,"m",hn).call(this,t),hr(this,Dr,"m",an).call(this))}}const n=i();(null==n?void 0:n.deviceId)&&(lr(this,Nr,n&&n.deviceId,"f"),this.ifSaveLastUsedCamera&&En.isStorageAvailable&&(window.localStorage.setItem("dce_last_camera_id",hr(this,Nr,"f")),"object"==typeof t.video&&t.video.width&&t.video.height&&(window.localStorage.setItem("dce_last_apply_width",JSON.stringify(t.video.width)),window.localStorage.setItem("dce_last_apply_height",JSON.stringify(t.video.height))))),hr(this,Lr,"f")&&(await En.playVideo(hr(this,Lr,"f"),e,this.cameraOpenTimeout),hr(this,Dr,"m",an).call(this)),this._mediaStream=e;const s=e.getVideoTracks();(null==s?void 0:s.length)&&lr(this,Mr,s[0],"f"),lr(this,Br,n,"f")}}catch(t){throw hr(this,Dr,"m",dn).call(this),lr(this,Wr,null,"f"),t}lr(this,Wr,"fulfilled","f")})(),"f");return e},un=async function(){var t;if("closed"===this.state||this.videoSrc)return;const e=null===(t=hr(this,Br,"f"))||void 0===t?void 0:t.deviceId,i=this.getResolution();await hr(this,Dr,"m",cn).call(this);const r=this.getResolution();e&&e!==hr(this,Br,"f").deviceId&&hr(this,$r,"f").fire("camera:changed",[hr(this,Br,"f").deviceId,e],{target:this,async:!1}),i.width==r.width&&i.height==r.height||hr(this,$r,"f").fire("resolution:changed",[{width:r.width,height:r.height},{width:i.width,height:i.height}],{target:this,async:!1}),hr(this,$r,"f").fire("played",null,{target:this,async:!1})},dn=function(){hr(this,Dr,"m",ln).call(this),lr(this,Br,null,"f"),hr(this,Lr,"f")&&(hr(this,Lr,"f").srcObject=null,this.videoSrc&&(hr(this,Lr,"f").pause(),hr(this,Lr,"f").currentTime=0)),lr(this,Gr,!0,"f");try{this.resetSoftwareScale()}catch(t){}},fn=async function t(e,i){const r=t=>{if(!hr(this,Mr,"f")||!this.isVideoPlaying||t.focusTaskId!=this._focusParameters.curFocusTaskId){hr(this,Mr,"f")&&this.isVideoPlaying||(this._focusParameters.isDoingFocus=0);const e=new Error(`Focus task ${t.focusTaskId} canceled.`);throw e.name="DeprecatedTaskError",e}1===this._focusParameters.isDoingFocus&&Date.now()-t.timeStart>this._focusParameters.focusCancelableTime&&(this._focusParameters.isDoingFocus=-1)};let n;i=wn(i,this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),await hr(this,Mr,"f").applyConstraints({advanced:[{focusMode:"manual",focusDistance:i}]}),r(e),n=null==this._focusParameters.oldDistance?this._focusParameters.kTimeout*Math.max(Math.abs(1/this._focusParameters.fds.min-1/i),Math.abs(1/this._focusParameters.fds.max-1/i))+this._focusParameters.minTimeout:this._focusParameters.kTimeout*Math.abs(1/this._focusParameters.oldDistance-1/i)+this._focusParameters.minTimeout,this._focusParameters.oldDistance=i,await new Promise((t=>{setTimeout(t,n)})),r(e);let s=e.focusL-e.focusW/2,o=e.focusT-e.focusH/2,a=e.focusW,h=e.focusH;const l=this.getResolution();if(s>=l.width||o>=l.height)throw new Error("Invalid area.");s+a>l.width&&(a=l.width-s),o+h>l.height&&(h=l.height-o),s=Math.round(s),o=Math.round(o),a=Math.round(a),h=Math.round(h);const c=4*l.width*l.height*this._focusParameters.defaultTempBufferContainerLenRatio,u=4*a*h;let d=this._focusParameters.tempBufferContainer;if(d){const t=d.length;c>t&&c>=u?d=new Uint8Array(c):u>t&&u>=c&&(d=new Uint8Array(u))}else d=this._focusParameters.tempBufferContainer=new Uint8Array(Math.max(c,u));if(!this.imageDataGetter.getImageData(hr(this,Lr,"f"),l.width,l.height,{sx:s,sy:o,sWidth:a,sHeight:h,dWidth:a,dHeight:h},{pixelFormat:yr.RGBA,bufferContainer:d}))return hr(this,Dr,"m",t).call(this,e,i);const f=d;let g=0;for(let t=0,e=u-8;ta&&au)return await hr(this,Dr,"m",t).call(this,e,o,a,n,s,c,u)}else{let h=await hr(this,Dr,"m",fn).call(this,e,c);if(a>h)return await hr(this,Dr,"m",t).call(this,e,o,a,n,s,c,h);if(a==h)return await hr(this,Dr,"m",t).call(this,e,o,a,c,h);let u=await hr(this,Dr,"m",fn).call(this,e,l);if(u>a&&ao.width||h<0||h>o.height)throw new Error("Invalid 'centerPoint'.");let l=0;if(e.endsWith("px"))l=parseFloat(e);else{if(!e.endsWith("%"))throw new Error("Invalid 'width'.");l=parseFloat(e)/100*o.width}if(isNaN(l)||l<0)throw new Error("Invalid 'width'.");let c=0;if(i.endsWith("px"))c=parseFloat(i);else{if(!i.endsWith("%"))throw new Error("Invalid 'height'.");c=parseFloat(i)/100*o.height}if(isNaN(c)||c<0)throw new Error("Invalid 'height'.");if(1!==hr(this,qr,"f")){const t=hr(this,qr,"f"),e=hr(this,Jr,"f");l/=t,c/=t,a=(1-1/t)*e.x+a/t,h=(1-1/t)*e.y+h/t}if(!this._focusSupported)throw new Error("Manual focus unsupported.");if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(s=this.getCameraCapabilities())||void 0===s?void 0:s.focusDistance,!this._focusParameters.fds))throw this._focusSupported=!1,new Error("Manual focus unsupported.");null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),this._focusParameters.isDoingFocus=1;const u={focusL:a,focusT:h,focusW:l,focusH:c,focusTaskId:++this._focusParameters.curFocusTaskId,timeStart:Date.now()},d=async(t,e,i)=>{try{(null==e||ethis._focusParameters.fds.max)&&(i=this._focusParameters.fds.max),this._focusParameters.oldDistance=null;let r=wn(Math.sqrt(i*(e||this._focusParameters.fds.step)),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),n=wn(Math.sqrt((e||this._focusParameters.fds.step)*r),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),s=wn(Math.sqrt(r*i),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),o=await hr(this,Dr,"m",fn).call(this,t,s),a=await hr(this,Dr,"m",fn).call(this,t,n),h=await hr(this,Dr,"m",fn).call(this,t,r);if(a>h&&ho&&a>o){let e=await hr(this,Dr,"m",fn).call(this,t,i);const n=await hr(this,Dr,"m",gn).call(this,t,r,h,i,e,s,o);return this._focusParameters.isDoingFocus=0,n}if(a==h&&hh){const e=await hr(this,Dr,"m",gn).call(this,t,r,h,s,o);return this._focusParameters.isDoingFocus=0,e}return d(t,e,i)}catch(t){if("DeprecatedTaskError"!==t.name)throw t}};return d(u,r,n)},pn=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");if(!t||"string"!=typeof t.x||"string"!=typeof t.y)throw new Error("Invalid 'center'.");const e=this.getResolution();let i=0,r=0;if(t.x.endsWith("px"))i=parseFloat(t.x);else{if(!t.x.endsWith("%"))throw new Error("Invalid scale center.");i=parseFloat(t.x)/100*e.width}if(t.y.endsWith("px"))r=parseFloat(t.y);else{if(!t.y.endsWith("%"))throw new Error("Invalid scale center.");r=parseFloat(t.y)/100*e.height}if(isNaN(i)||isNaN(r))throw new Error("Invalid scale center.");lr(this,Jr,{x:i,y:r},"f")},_n=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");const e=this.getResolution();return t&&t.x==e.width/2&&t.y==e.height/2},En.browserInfo=mr,En.onWarning=null===(Or=null===window||void 0===window?void 0:window.console)||void 0===Or?void 0:Or.warn;class es{constructor(t){Cn.add(this),Tn.set(this,void 0),bn.set(this,0),Sn.set(this,void 0),In.set(this,0),xn.set(this,!1),pe(this,Tn,t,"f")}startCharging(){me(this,xn,"f")||(es._onLog&&es._onLog("start charging."),me(this,Cn,"m",Rn).call(this),pe(this,xn,!0,"f"))}stopCharging(){me(this,Sn,"f")&&clearTimeout(me(this,Sn,"f")),me(this,xn,"f")&&(es._onLog&&es._onLog("stop charging."),pe(this,bn,Date.now()-me(this,In,"f"),"f"),pe(this,xn,!1,"f"))}}Tn=new WeakMap,bn=new WeakMap,Sn=new WeakMap,In=new WeakMap,xn=new WeakMap,Cn=new WeakSet,An=function(){ht.cfd(1),es._onLog&&es._onLog("charge 1.")},Rn=function t(){0==me(this,bn,"f")&&me(this,Cn,"m",An).call(this),pe(this,In,Date.now(),"f"),me(this,Sn,"f")&&clearTimeout(me(this,Sn,"f")),pe(this,Sn,setTimeout((()=>{pe(this,bn,0,"f"),me(this,Cn,"m",t).call(this)}),me(this,Tn,"f")-me(this,bn,"f")),"f")};const is=new Map([[s.IPF_GRAYSCALED,yr.GREY],[s.IPF_ABGR_8888,yr.RGBA],[s.IPF_ARGB_8888,yr.BGRA]]),rs=new Map([[yr.GREY,s.IPF_GRAYSCALED],[yr.RGBA,s.IPF_ABGR_8888],[yr.BGRA,s.IPF_ARGB_8888]]),ns="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};class ss extends O{static set _onLog(t){pe(ss,Dn,t,"f",Ln),En._onLog=t,es._onLog=t}static get _onLog(){return me(ss,Dn,"f",Ln)}static async detectEnvironment(){return await(async()=>({wasm:_e,worker:ve,getUserMedia:ye,camera:await we(),browser:ge.browser,version:ge.version,OS:ge.OS}))()}static async testCameraAccess(){const t=await En.testCameraAccess();return t.ok?{ok:!0,message:"Successfully accessed the camera."}:"InsecureContext"===t.errorName?{ok:!1,message:"Insecure context."}:"OverconstrainedError"===t.errorName||"NotFoundError"===t.errorName?{ok:!1,message:"No camera detected."}:"NotAllowedError"===t.errorName?{ok:!1,message:"No permission to access camera."}:"AbortError"===t.errorName?{ok:!1,message:"Some problem occurred which prevented the device from being used."}:"NotReadableError"===t.errorName?{ok:!1,message:"A hardware error occurred."}:"SecurityError"===t.errorName?{ok:!1,message:"User media support is disabled."}:{ok:!1,message:t.errorMessage}}static async createInstance(t){var e,i;if(t&&!(t instanceof ar))throw new TypeError("Invalid view.");if(null===(e=rt.license)||void 0===e?void 0:e.LicenseManager){if(!(null===(i=rt.license)||void 0===i?void 0:i.LicenseManager.bCallInitLicense))throw new Error("License is not set.");await ht.loadWasm(["license"]),await rt.license.dynamsoft()}const r=new ss(t);return ss.onWarning&&(location&&"file:"===location.protocol?setTimeout((()=>{ss.onWarning&&ss.onWarning({id:1,message:"The page is opened over file:// and Dynamsoft Camera Enhancer may not work properly. Please open the page via https://."})}),0):!1!==window.isSecureContext&&navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia||setTimeout((()=>{ss.onWarning&&ss.onWarning({id:2,message:"Dynamsoft Camera Enhancer may not work properly in a non-secure context. Please open the page via https://."})}),0)),r}get video(){return me(this,Mn,"f").getVideoEl()}set videoSrc(t){if(!me(this,Mn,"f"))throw new Error("Camera manager is null.");me(this,Fn,"f")&&(me(this,Fn,"f")._hideDefaultSelection=!0),me(this,Mn,"f").videoSrc=t}get videoSrc(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.videoSrc}set ifSaveLastUsedCamera(t){if(!me(this,Mn,"f"))throw new Error("Camera manager is null.");me(this,Mn,"f").ifSaveLastUsedCamera=t}get ifSaveLastUsedCamera(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.ifSaveLastUsedCamera}set ifSkipCameraInspection(t){if(!me(this,Mn,"f"))throw new Error("Camera manager is null.");me(this,Mn,"f").ifSkipCameraInspection=t}get ifSkipCameraInspection(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.ifSkipCameraInspection}set cameraOpenTimeout(t){if(!me(this,Mn,"f"))throw new Error("Camera manager is null.");me(this,Mn,"f").cameraOpenTimeout=t}get cameraOpenTimeout(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.cameraOpenTimeout}set singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(this.isOpen())throw new Error("It is not allowed to change `singleFrameMode` when the camera is open.");pe(this,Nn,t,"f")}get singleFrameMode(){return me(this,Nn,"f")}get _isFetchingStarted(){return me(this,Yn,"f")}get disposed(){return me(this,Kn,"f")}constructor(t){if(super(),On.add(this),Mn.set(this,void 0),Fn.set(this,void 0),Pn.set(this,"closed"),kn.set(this,void 0),Bn.set(this,!1),Nn.set(this,void 0),this._onCameraSelChange=async()=>{this.isOpen()&&me(this,Fn,"f")&&!me(this,Fn,"f").disposed&&await this.selectCamera(me(this,Fn,"f")._selCam.value)},this._onResolutionSelChange=async()=>{if(!this.isOpen())return;if(!me(this,Fn,"f")||me(this,Fn,"f").disposed)return;let t,e;if(me(this,Fn,"f")._selRsl&&-1!=me(this,Fn,"f")._selRsl.selectedIndex){let i=me(this,Fn,"f")._selRsl.options[me(this,Fn,"f")._selRsl.selectedIndex];t=parseInt(i.getAttribute("data-width")),e=parseInt(i.getAttribute("data-height"))}await this.setResolution({width:t,height:e})},this._onCloseBtnClick=async()=>{this.isOpen()&&me(this,Fn,"f")&&!me(this,Fn,"f").disposed&&this.close()},Un.set(this,((t,e,i,r)=>{const n=Date.now(),s={sx:r.x,sy:r.y,sWidth:r.width,sHeight:r.height,dWidth:r.width,dHeight:r.height},o=Math.max(s.dWidth,s.dHeight);if(this.canvasSizeLimit&&o>this.canvasSizeLimit){const t=this.canvasSizeLimit/o;s.dWidth>s.dHeight?(s.dWidth=this.canvasSizeLimit,s.dHeight=Math.round(s.dHeight*t)):(s.dWidth=Math.round(s.dWidth*t),s.dHeight=this.canvasSizeLimit)}const a=me(this,Mn,"f").imageDataGetter.getImageData(t,e,i,s,{pixelFormat:is.get(this.getPixelFormat())});let h=null;if(a){const t=Date.now();let o;o=a.pixelFormat===yr.GREY?a.width:4*a.width;let l=!0;0===s.sx&&0===s.sy&&s.sWidth===e&&s.sHeight===i&&(l=!1),h={bytes:a.data,width:a.width,height:a.height,stride:o,format:rs.get(a.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:gt.ITT_FILE_IMAGE,isCropped:l,cropRegion:{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height,isMeasuredInPercentage:!1},originalWidth:e,originalHeight:i,currentWidth:a.width,currentHeight:a.height,timeSpent:t-n,timeStamp:t},toCanvas:me(this,jn,"f"),isDCEFrame:!0}}return h})),this._onSingleFrameAcquired=t=>{let e;e=me(this,Fn,"f")?me(this,Fn,"f").getConvertedRegion():Ke.convert(me(this,Vn,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height});const i=me(this,Un,"f").call(this,t,t.width,t.height,e);me(this,kn,"f").fire("singleFrameAcquired",[i],{async:!1,copy:!1})},jn.set(this,(function(){if(!(this.bytes instanceof Uint8Array||this.bytes instanceof Uint8ClampedArray))throw new TypeError("Invalid bytes.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.format===s.IPF_GRAYSCALED){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{if(!this.video)return;const t=me(this,Mn,"f").getSoftwareScale();if(t<1)throw new RangeError("Invalid scale value.");me(this,Fn,"f")&&!me(this,Fn,"f").disposed?(this.video.style.transform=1===t?"":`scale(${t})`,me(this,Fn,"f")._updateVideoContainer()):this.video.style.transform=1===t?"":`scale(${t})`},["iPhone","iPad","Android","HarmonyOS"].includes(ge.OS)?me(this,Mn,"f").setResolution(1280,720):me(this,Mn,"f").setResolution(1920,1080),navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?this.singleFrameMode="disabled":this.singleFrameMode="image",t&&this.setCameraView(t),this._on("before:camera:change",(()=>{me(this,Zn,"f").stopCharging();const t=me(this,Fn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("camera:changed",(()=>{this.clearBuffer()})),this._on("before:resolution:change",(()=>{const t=me(this,Fn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("resolution:changed",(()=>{this.clearBuffer(),t.eventHandler.fire("content:updated",null,{async:!1})})),this._on("paused",(()=>{me(this,Zn,"f").stopCharging();const t=me(this,Fn,"f");t&&t.disposed})),this._on("resumed",(()=>{const t=me(this,Fn,"f");t&&t.disposed})),this._on("tapfocus",(()=>{me(this,Xn,"f").tapToFocus&&me(this,Zn,"f").startCharging()})),this._intermediateResultReceiver={},this._intermediateResultReceiver.onTaskResultsReceived=async(t,e)=>{var i,r,n,s;if(me(this,On,"m",qn).call(this)||!this.isOpen()||this.isPaused())return;const o=t.intermediateResultUnits;ss._onLog&&(ss._onLog("intermediateResultUnits:"),ss._onLog(o));let a=!1,h=!1;for(let t of o){if(t.unitType===_t.IRUT_DECODED_BARCODES&&t.decodedBarcodes.length){a=!0;break}t.unitType===_t.IRUT_LOCALIZED_BARCODES&&t.localizedBarcodes.length&&(h=!0)}if(ss._onLog&&(ss._onLog("hasLocalizedBarcodes:"),ss._onLog(h)),me(this,Xn,"f").autoZoom||me(this,Xn,"f").enhancedFocus)if(a)me(this,zn,"f").autoZoomInFrameArray.length=0,me(this,zn,"f").autoZoomOutFrameCount=0,me(this,zn,"f").frameArrayInIdealZoom.length=0,me(this,zn,"f").autoFocusFrameArray.length=0;else{const e=async t=>{await this.setZoom(t),me(this,Xn,"f").autoZoom&&me(this,Zn,"f").startCharging()},a=async t=>{await this.setFocus(t),me(this,Xn,"f").enhancedFocus&&me(this,Zn,"f").startCharging()};if(h){const h=o[0].originalImageTag,l=(null===(i=h.cropRegion)||void 0===i?void 0:i.left)||0,c=(null===(r=h.cropRegion)||void 0===r?void 0:r.top)||0,u=(null===(n=h.cropRegion)||void 0===n?void 0:n.right)?h.cropRegion.right-l:h.originalWidth,d=(null===(s=h.cropRegion)||void 0===s?void 0:s.bottom)?h.cropRegion.bottom-c:h.originalHeight,f=h.currentWidth,g=h.currentHeight;let m;{let t,e,i,r,n;{const t=this.video.videoWidth*(1-me(this,zn,"f").autoZoomDetectionArea)/2,e=this.video.videoWidth*(1+me(this,zn,"f").autoZoomDetectionArea)/2,i=e,r=t,s=this.video.videoHeight*(1-me(this,zn,"f").autoZoomDetectionArea)/2,o=s,a=this.video.videoHeight*(1+me(this,zn,"f").autoZoomDetectionArea)/2;n=[{x:t,y:s},{x:e,y:o},{x:i,y:a},{x:r,y:a}]}ss._onLog&&(ss._onLog("detectionArea:"),ss._onLog(n));const s=[];{const t=(t,e)=>{const i=(t,e)=>{if(!t&&!e)throw new Error("Invalid arguments.");return function(t,e,i){let r=!1;const n=t.length;if(n<=2)return!1;for(let s=0;s0!=ti(a.y-i)>0&&ti(e-(i-o.y)*(o.x-a.x)/(o.y-a.y)-o.x)<0&&(r=!r)}return r}(e,t.x,t.y)},r=(t,e)=>!!(ei([t[0],t[1]],[t[2],t[3]],[e[0].x,e[0].y],[e[1].x,e[1].y])||ei([t[0],t[1]],[t[2],t[3]],[e[1].x,e[1].y],[e[2].x,e[2].y])||ei([t[0],t[1]],[t[2],t[3]],[e[2].x,e[2].y],[e[3].x,e[3].y])||ei([t[0],t[1]],[t[2],t[3]],[e[3].x,e[3].y],[e[0].x,e[0].y]));return!!(i({x:t[0].x,y:t[0].y},e)||i({x:t[1].x,y:t[1].y},e)||i({x:t[2].x,y:t[2].y},e)||i({x:t[3].x,y:t[3].y},e))||!!(i({x:e[0].x,y:e[0].y},t)||i({x:e[1].x,y:e[1].y},t)||i({x:e[2].x,y:e[2].y},t)||i({x:e[3].x,y:e[3].y},t))||!!(r([e[0].x,e[0].y,e[1].x,e[1].y],t)||r([e[1].x,e[1].y,e[2].x,e[2].y],t)||r([e[2].x,e[2].y,e[3].x,e[3].y],t)||r([e[3].x,e[3].y,e[0].x,e[0].y],t))};for(let e of o)if(e.unitType===_t.IRUT_LOCALIZED_BARCODES)for(let i of e.localizedBarcodes){if(!i)continue;const e=i.location.points;e.forEach((t=>{ar._transformCoordinates(t,l,c,u,d,f,g)})),t(n,e)&&s.push(i)}if(ss._debug&&me(this,Fn,"f")){const t=this.__layer||(this.__layer=me(this,Fn,"f")._createDrawingLayer(99));t.clearDrawingItems();const e=this.__styleId2||(this.__styleId2=tr.createDrawingStyle({strokeStyle:"red"}));for(let i of o)if(i.unitType===_t.IRUT_LOCALIZED_BARCODES)for(let r of i.localizedBarcodes){if(!r)continue;const i=r.location.points,n=new fi({points:i},e);t.addDrawingItems([n])}}}if(ss._onLog&&(ss._onLog("intersectedResults:"),ss._onLog(s)),!s.length)return;let a;if(s.length){let t=s.filter((t=>t.possibleFormats==ns.BF_QR_CODE||t.possibleFormats==ns.BF_DATAMATRIX));if(t.length||(t=s.filter((t=>t.possibleFormats==ns.BF_ONED)),t.length||(t=s)),t.length){const e=t=>{const e=t.location.points,i=(e[0].x+e[1].x+e[2].x+e[3].x)/4,r=(e[0].y+e[1].y+e[2].y+e[3].y)/4;return(i-f/2)*(i-f/2)+(r-g/2)*(r-g/2)};a=t[0];let i=e(a);if(1!=t.length)for(let r=1;r1.1*a.confidence||t[r].confidence>.9*a.confidence&&ni&&s>i&&o>i&&h>i&&m.result.moduleSize{})),me(this,zn,"f").autoZoomInFrameArray.filter((t=>!0===t)).length>=me(this,zn,"f").autoZoomInFrameLimit[1]){me(this,zn,"f").autoZoomInFrameArray.length=0;const i=[(.5-r)/(.5-n),(.5-r)/(.5-s),(.5-r)/(.5-o),(.5-r)/(.5-h)].filter((t=>t>0)),a=Math.min(...i,me(this,zn,"f").autoZoomInIdealModuleSize/m.result.moduleSize),l=this.getZoomSettings().factor;let c=Math.max(Math.pow(l*a,1/me(this,zn,"f").autoZoomInMaxTimes),me(this,zn,"f").autoZoomInMinStep);c=Math.min(c,a);let u=l*c;u=Math.max(me(this,zn,"f").minValue,u),u=Math.min(me(this,zn,"f").maxValue,u);try{await e({factor:u})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else if(me(this,zn,"f").autoZoomInFrameArray.length=0,me(this,zn,"f").frameArrayInIdealZoom.push(!0),me(this,zn,"f").frameArrayInIdealZoom.splice(0,me(this,zn,"f").frameArrayInIdealZoom.length-me(this,zn,"f").frameLimitInIdealZoom[0]),me(this,zn,"f").frameArrayInIdealZoom.filter((t=>!0===t)).length>=me(this,zn,"f").frameLimitInIdealZoom[1]&&(me(this,zn,"f").frameArrayInIdealZoom.length=0,me(this,Xn,"f").enhancedFocus)){const e=m.points;try{await a({mode:"manual",area:{centerPoint:{x:(e[0].x+e[2].x)/2+"px",y:(e[0].y+e[2].y)/2+"px"},width:e[2].x-e[0].x+"px",height:e[2].y-e[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}if(!me(this,Xn,"f").autoZoom&&me(this,Xn,"f").enhancedFocus&&(me(this,zn,"f").autoFocusFrameArray.push(!0),me(this,zn,"f").autoFocusFrameArray.splice(0,me(this,zn,"f").autoFocusFrameArray.length-me(this,zn,"f").autoFocusFrameLimit[0]),me(this,zn,"f").autoFocusFrameArray.filter((t=>!0===t)).length>=me(this,zn,"f").autoFocusFrameLimit[1])){me(this,zn,"f").autoFocusFrameArray.length=0;try{const t=m.points;await a({mode:"manual",area:{centerPoint:{x:(t[0].x+t[2].x)/2+"px",y:(t[0].y+t[2].y)/2+"px"},width:t[2].x-t[0].x+"px",height:t[2].y-t[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else{if(me(this,Xn,"f").autoZoom){if(me(this,zn,"f").autoZoomInFrameArray.push(!1),me(this,zn,"f").autoZoomInFrameArray.splice(0,me(this,zn,"f").autoZoomInFrameArray.length-me(this,zn,"f").autoZoomInFrameLimit[0]),me(this,zn,"f").autoZoomOutFrameCount++,me(this,zn,"f").frameArrayInIdealZoom.push(!1),me(this,zn,"f").frameArrayInIdealZoom.splice(0,me(this,zn,"f").frameArrayInIdealZoom.length-me(this,zn,"f").frameLimitInIdealZoom[0]),me(this,zn,"f").autoZoomOutFrameCount>=me(this,zn,"f").autoZoomOutFrameLimit){me(this,zn,"f").autoZoomOutFrameCount=0;const i=this.getZoomSettings().factor;let r=i-Math.max((i-1)*me(this,zn,"f").autoZoomOutStepRate,me(this,zn,"f").autoZoomOutMinStep);r=Math.max(me(this,zn,"f").minValue,r),r=Math.min(me(this,zn,"f").maxValue,r);try{await e({factor:r})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}me(this,Xn,"f").enhancedFocus&&a({mode:"continuous"}).catch((()=>{}))}!me(this,Xn,"f").autoZoom&&me(this,Xn,"f").enhancedFocus&&(me(this,zn,"f").autoFocusFrameArray.length=0,a({mode:"continuous"}).catch((()=>{})))}}},pe(this,Zn,new es(1e4),"f")}setCameraView(t){if(!(t instanceof ar))throw new TypeError("Invalid view.");if(t.disposed)throw new Error("The camera view has been disposed.");if(this.isOpen())throw new Error("It is not allowed to change camera view when the camera is open.");this.releaseCameraView(),t._singleFrameMode=this.singleFrameMode,t._onSingleFrameAcquired=this._onSingleFrameAcquired,this.videoSrc&&(me(this,Fn,"f")._hideDefaultSelection=!0),me(this,On,"m",qn).call(this)||me(this,Mn,"f").setVideoEl(t.getVideoElement()),pe(this,Fn,t,"f"),this.addListenerToView()}getCameraView(){return me(this,Fn,"f")}releaseCameraView(){me(this,Fn,"f")&&(this.removeListenerFromView(),me(this,Fn,"f").disposed||(me(this,Fn,"f")._singleFrameMode="disabled",me(this,Fn,"f")._onSingleFrameAcquired=null,me(this,Fn,"f")._hideDefaultSelection=!1),me(this,Mn,"f").releaseVideoEl(),pe(this,Fn,null,"f"))}addListenerToView(){if(!me(this,Fn,"f"))return;if(me(this,Fn,"f").disposed)throw new Error("'cameraView' has been disposed.");const t=me(this,Fn,"f");me(this,On,"m",qn).call(this)||this.videoSrc||(t._innerComponent&&(me(this,Mn,"f").tapFocusEventBoundEl=t._innerComponent),t._selCam&&t._selCam.addEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.addEventListener("change",this._onResolutionSelChange)),t._btnClose&&t._btnClose.addEventListener("click",this._onCloseBtnClick)}removeListenerFromView(){if(!me(this,Fn,"f")||me(this,Fn,"f").disposed)return;const t=me(this,Fn,"f");me(this,Mn,"f").tapFocusEventBoundEl=null,t._selCam&&t._selCam.removeEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.removeEventListener("change",this._onResolutionSelChange),t._btnClose&&t._btnClose.removeEventListener("click",this._onCloseBtnClick)}getCameraState(){return me(this,On,"m",qn).call(this)?me(this,Pn,"f"):new Map([["closed","closed"],["opening","opening"],["opened","open"]]).get(me(this,Mn,"f").state)}isOpen(){return"open"===this.getCameraState()}getVideoEl(){return this.video}async open(){const t=me(this,Fn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");t&&(t._singleFrameMode=this.singleFrameMode,me(this,On,"m",qn).call(this)?t._clickIptSingleFrameMode():(me(this,Mn,"f").setVideoEl(t.getVideoElement()),t._startLoading()));let e={width:0,height:0,deviceId:""};if(me(this,On,"m",qn).call(this));else{try{await me(this,Mn,"f").open()}catch(e){throw t&&t._stopLoading(),e}me(this,Bn,"f")&&this.turnOnTorch().catch((()=>{}));const i=this.getResolution();e.width=i.width,e.height=i.height,e.deviceId=this.getSelectedCamera().deviceId}return pe(this,Pn,"open","f"),t&&(t._innerComponent.style.display="",me(this,On,"m",qn).call(this)||(t._stopLoading(),t._renderCamerasInfo(this.getSelectedCamera(),me(this,Mn,"f")._arrCameras),t._renderResolutionInfo({width:e.width,height:e.height}),t.eventHandler.fire("content:updated",null,{async:!1}),t.eventHandler.fire("videoEl:resized",null,{async:!1}))),me(this,kn,"f").fire("opened",null,{target:this,async:!1}),e}close(){const t=me(this,Fn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");this.stopFetching(),this.clearBuffer(),me(this,On,"m",qn).call(this)||me(this,Mn,"f").close(),pe(this,Pn,"closed","f"),me(this,Zn,"f").stopCharging(),t&&(t._innerComponent.style.display="none",me(this,On,"m",qn).call(this)&&t._innerComponent.removeElement("content"),t._stopLoading()),me(this,kn,"f").fire("closed",null,{target:this,async:!1})}pause(){if(me(this,On,"m",qn).call(this))throw new Error("'pause()' is invalid in 'singleFrameMode'.");me(this,Mn,"f").pause()}isPaused(){var t;return!me(this,On,"m",qn).call(this)&&!0===(null===(t=this.video)||void 0===t?void 0:t.paused)}async resume(){if(me(this,On,"m",qn).call(this))throw new Error("'resume()' is invalid in 'singleFrameMode'.");await me(this,Mn,"f").resume()}async selectCamera(t){if(!t)throw new Error("Invalid value.");let e;e="string"==typeof t?t:t.deviceId,await me(this,Mn,"f").setCamera(e),pe(this,Bn,!1,"f");const i=this.getResolution(),r=me(this,Fn,"f");return r&&!r.disposed&&(r._stopLoading(),r._renderCamerasInfo(this.getSelectedCamera(),me(this,Mn,"f")._arrCameras),r._renderResolutionInfo({width:i.width,height:i.height})),{width:i.width,height:i.height,deviceId:this.getSelectedCamera().deviceId}}getSelectedCamera(){return me(this,Mn,"f").getCamera()}async getAllCameras(){return me(this,Mn,"f").getCameras()}async setResolution(t){await me(this,Mn,"f").setResolution(t.width,t.height),me(this,Bn,"f")&&this.turnOnTorch().catch((()=>{}));const e=this.getResolution(),i=me(this,Fn,"f");return i&&!i.disposed&&(i._stopLoading(),i._renderResolutionInfo({width:e.width,height:e.height})),{width:e.width,height:e.height,deviceId:this.getSelectedCamera().deviceId}}getResolution(){return me(this,Mn,"f").getResolution()}getAvailableResolutions(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getResolutions()}_on(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?me(this,kn,"f").on(t,e):me(this,Mn,"f").on(t,e)}_off(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?me(this,kn,"f").off(t,e):me(this,Mn,"f").off(t,e)}on(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._on(r,e)}off(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._off(r,e)}getVideoSettings(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getMediaStreamConstraints()}async updateVideoSettings(t){var e;await(null===(e=me(this,Mn,"f"))||void 0===e?void 0:e.setMediaStreamConstraints(t,!0))}getCapabilities(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getCameraCapabilities()}getCameraSettings(){return me(this,Mn,"f").getCameraSettings()}async turnOnTorch(){var t;if(me(this,On,"m",qn).call(this))throw new Error("'turnOnTorch()' is invalid in 'singleFrameMode'.");await(null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.turnOnTorch()),pe(this,Bn,!0,"f")}async turnOffTorch(){var t;if(me(this,On,"m",qn).call(this))throw new Error("'turnOffTorch()' is invalid in 'singleFrameMode'.");await(null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.turnOffTorch()),pe(this,Bn,!1,"f")}async setColorTemperature(t){if(me(this,On,"m",qn).call(this))throw new Error("'setColorTemperature()' is invalid in 'singleFrameMode'.");await me(this,Mn,"f").setColorTemperature(t,!0)}getColorTemperature(){return me(this,Mn,"f").getColorTemperature()}async setExposureCompensation(t){var e;if(me(this,On,"m",qn).call(this))throw new Error("'setExposureCompensation()' is invalid in 'singleFrameMode'.");await(null===(e=me(this,Mn,"f"))||void 0===e?void 0:e.setExposureCompensation(t,!0))}getExposureCompensation(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getExposureCompensation()}async _setZoom(t){var e;if(me(this,On,"m",qn).call(this))throw new Error("'setZoom()' is invalid in 'singleFrameMode'.");await(null===(e=me(this,Mn,"f"))||void 0===e?void 0:e.setZoom(t))}async setZoom(t){await this._setZoom(t)}getZoomSettings(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getZoom()}async resetZoom(){var t;if(me(this,On,"m",qn).call(this))throw new Error("'resetZoom()' is invalid in 'singleFrameMode'.");await(null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.resetZoom())}async setFrameRate(t){var e;if(me(this,On,"m",qn).call(this))throw new Error("'setFrameRate()' is invalid in 'singleFrameMode'.");await(null===(e=me(this,Mn,"f"))||void 0===e?void 0:e.setFrameRate(t,!0))}getFrameRate(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getFrameRate()}async setFocus(t){var e;if(me(this,On,"m",qn).call(this))throw new Error("'setFocus()' is invalid in 'singleFrameMode'.");await(null===(e=me(this,Mn,"f"))||void 0===e?void 0:e.setFocus(t,!0))}getFocusSettings(){var t;return null===(t=me(this,Mn,"f"))||void 0===t?void 0:t.getFocus()}setAutoZoomRange(t){me(this,zn,"f").minValue=t.min,me(this,zn,"f").maxValue=t.max}getAutoZoomRange(){return{min:me(this,zn,"f").minValue,max:me(this,zn,"f").maxValue}}async enableEnhancedFeatures(t){var e,i;if(!(null===(i=null===(e=rt.license)||void 0===e?void 0:e.LicenseManager)||void 0===i?void 0:i.bPassValidation))throw new Error("License is not verified, or license is invalid.");if(0!==ht.bSupportDce4Module)throw new Error("Please set a license containing the DCE module.");t&xe.EF_ENHANCED_FOCUS&&(me(this,Xn,"f").enhancedFocus=!0),t&xe.EF_AUTO_ZOOM&&(me(this,Xn,"f").autoZoom=!0),t&xe.EF_TAP_TO_FOCUS&&(me(this,Xn,"f").tapToFocus=!0,me(this,Mn,"f").enableTapToFocus())}disableEnhancedFeatures(t){t&xe.EF_ENHANCED_FOCUS&&(me(this,Xn,"f").enhancedFocus=!1,this.setFocus({mode:"continuous"}).catch((()=>{}))),t&xe.EF_AUTO_ZOOM&&(me(this,Xn,"f").autoZoom=!1,this.resetZoom().catch((()=>{}))),t&xe.EF_TAP_TO_FOCUS&&(me(this,Xn,"f").tapToFocus=!1,me(this,Mn,"f").disableTapToFocus()),me(this,On,"m",Qn).call(this)&&me(this,On,"m",Jn).call(this)||me(this,Zn,"f").stopCharging()}_setScanRegion(t){if(null!=t&&!Ve(t)&&!ze(t))throw TypeError("Invalid 'region'.");pe(this,Vn,t?JSON.parse(JSON.stringify(t)):null,"f"),me(this,Fn,"f")&&!me(this,Fn,"f").disposed&&me(this,Fn,"f").setScanRegion(t)}setScanRegion(t){this._setScanRegion(t),me(this,Fn,"f")&&!me(this,Fn,"f").disposed&&(null===t?me(this,Fn,"f").setScanRegionMaskVisible(!1):me(this,Fn,"f").setScanRegionMaskVisible(!0))}getScanRegion(){return JSON.parse(JSON.stringify(me(this,Vn,"f")))}setErrorListener(t){if(!t)throw new TypeError("Invalid 'listener'");pe(this,Gn,t,"f")}hasNextImageToFetch(){return!("open"!==this.getCameraState()||!me(this,Mn,"f").isVideoLoaded()||me(this,On,"m",qn).call(this))}startFetching(){if(me(this,On,"m",qn).call(this))throw Error("'startFetching()' is unavailable in 'singleFrameMode'.");me(this,Yn,"f")||(pe(this,Yn,!0,"f"),me(this,On,"m",$n).call(this))}stopFetching(){me(this,Yn,"f")&&(ss._onLog&&ss._onLog("DCE: stop fetching loop: "+Date.now()),me(this,Hn,"f")&&clearTimeout(me(this,Hn,"f")),pe(this,Yn,!1,"f"))}fetchImage(){if(me(this,On,"m",qn).call(this))throw new Error("'fetchImage()' is unavailable in 'singleFrameMode'.");if(!this.video)throw new Error("The video element does not exist.");if(4!==this.video.readyState)throw new Error("The video is not loaded.");const t=this.getResolution();if(!(null==t?void 0:t.width)||!(null==t?void 0:t.height))throw new Error("The video is not loaded.");let e;if(e=Ke.convert(me(this,Vn,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height}),e.x>t.width||e.y>t.height)throw new Error("Invalid scan region.");e.x+e.width>t.width&&(e.width=t.width-e.x),e.y+e.height>t.height&&(e.height=t.height-e.y);const i={sx:e.x,sy:e.y,sWidth:e.width,sHeight:e.height,dWidth:e.width,dHeight:e.height},r=Math.max(i.dWidth,i.dHeight);if(this.canvasSizeLimit&&r>this.canvasSizeLimit){const t=this.canvasSizeLimit/r;i.dWidth>i.dHeight?(i.dWidth=this.canvasSizeLimit,i.dHeight=Math.round(i.dHeight*t)):(i.dWidth=Math.round(i.dWidth*t),i.dHeight=this.canvasSizeLimit)}const n=me(this,Mn,"f").getFrameData({position:i,pixelFormat:is.get(this.getPixelFormat())});if(!n)return null;let s;s=n.pixelFormat===yr.GREY?n.width:4*n.width;let o=!0;return 0===i.sx&&0===i.sy&&i.sWidth===t.width&&i.sHeight===t.height&&(o=!1),{bytes:n.data,width:n.width,height:n.height,stride:s,format:rs.get(n.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:gt.ITT_VIDEO_FRAME,isCropped:o,cropRegion:{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height,isMeasuredInPercentage:!1},originalWidth:t.width,originalHeight:t.height,currentWidth:n.width,currentHeight:n.height,timeSpent:n.timeSpent,timeStamp:n.timeStamp},toCanvas:me(this,jn,"f"),isDCEFrame:!0}}setImageFetchInterval(t){this.fetchInterval=t,me(this,Yn,"f")&&(me(this,Hn,"f")&&clearTimeout(me(this,Hn,"f")),pe(this,Hn,setTimeout((()=>{this.disposed||me(this,On,"m",$n).call(this)}),t),"f"))}getImageFetchInterval(){return this.fetchInterval}setPixelFormat(t){pe(this,Wn,t,"f")}getPixelFormat(){return me(this,Wn,"f")}takePhoto(t){if(!this.isOpen())throw new Error("Not open.");if(me(this,On,"m",qn).call(this))throw new Error("'takePhoto()' is unavailable in 'singleFrameMode'.");const e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp"),e.setAttribute("capture",""),e.style.position="absolute",e.style.top="-9999px",e.style.backgroundColor="transparent",e.style.color="transparent",e.addEventListener("click",(()=>{const t=this.isOpen();this.close(),window.addEventListener("focus",(()=>{t&&this.open(),e.remove()}),{once:!0})})),e.addEventListener("change",(async()=>{const i=e.files[0],r=await(async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i})(i),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=Ke.convert(me(this,Vn,"f"),n,s);o||(o={x:0,y:0,width:n,height:s});const a=me(this,Un,"f").call(this,r,n,s,o);t&&t(a)})),document.body.appendChild(e),e.click()}convertToPageCoordinates(t){const e=me(this,On,"m",ts).call(this,t);return{x:e.pageX,y:e.pageY}}convertToClientCoordinates(t){const e=me(this,On,"m",ts).call(this,t);return{x:e.clientX,y:e.clientY}}dispose(){this.close(),me(this,Mn,"f").dispose(),this.releaseCameraView(),this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"isCameraEnhancer",{value:!0}),Object.defineProperty(this,"disposed",{value:!0})}}function os(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function as(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}Dn=ss,Mn=new WeakMap,Fn=new WeakMap,Pn=new WeakMap,kn=new WeakMap,Bn=new WeakMap,Nn=new WeakMap,Un=new WeakMap,jn=new WeakMap,Gn=new WeakMap,Vn=new WeakMap,Wn=new WeakMap,Yn=new WeakMap,Hn=new WeakMap,Xn=new WeakMap,zn=new WeakMap,Zn=new WeakMap,Kn=new WeakMap,On=new WeakSet,qn=function(){return"disabled"!==this.singleFrameMode},Jn=function(){return!this.videoSrc&&"opened"===me(this,Mn,"f").state},Qn=function(){for(let t in me(this,Xn,"f"))if(1==me(this,Xn,"f")[t])return!0;return!1},$n=function t(){if(this.disposed)return;if("open"!==this.getCameraState()||!me(this,Yn,"f"))return me(this,Hn,"f")&&clearTimeout(me(this,Hn,"f")),void pe(this,Hn,setTimeout((()=>{this.disposed||me(this,On,"m",t).call(this)}),this.fetchInterval),"f");const e=()=>{var t;let e;ss._onLog&&ss._onLog("DCE: start fetching a frame into buffer: "+Date.now());try{e=this.fetchImage()}catch(e){const i=e.message||e;if("The video is not loaded."===i)return;if(null===(t=me(this,Gn,"f"))||void 0===t?void 0:t.onErrorReceived)return void setTimeout((()=>{var t;null===(t=me(this,Gn,"f"))||void 0===t||t.onErrorReceived(ut.EC_IMAGE_READ_FAILED,i)}),0);console.warn(e)}e?(this.addImageToBuffer(e),ss._onLog&&ss._onLog("DCE: finish fetching a frame into buffer: "+Date.now()),me(this,kn,"f").fire("frameAddedToBuffer",null,{async:!1})):ss._onLog&&ss._onLog("DCE: get a invalid frame, abandon it: "+Date.now())};if(this.getImageCount()>=this.getMaxImageCount())switch(this.getBufferOverflowProtectionMode()){case r.BOPM_BLOCK:break;case r.BOPM_UPDATE:e()}else e();me(this,Hn,"f")&&clearTimeout(me(this,Hn,"f")),pe(this,Hn,setTimeout((()=>{this.disposed||me(this,On,"m",t).call(this)}),this.fetchInterval),"f")},ts=function(t){if(!me(this,Fn,"f"))throw new Error("Camera view is not set.");if(me(this,Fn,"f").disposed)throw new Error("'cameraView' has been disposed.");if(!this.isOpen())throw new Error("Not open.");if(!me(this,On,"m",qn).call(this)&&!me(this,Mn,"f").isVideoLoaded())throw new Error("Video is not loaded.");if(me(this,On,"m",qn).call(this)&&!me(this,Fn,"f")._cvsSingleFrameMode)throw new Error("No image is selected.");const e=me(this,Fn,"f")._innerComponent.getBoundingClientRect(),i=e.left,r=e.top,n=i+window.scrollX,s=r+window.scrollY,{width:o,height:a}=me(this,Fn,"f")._innerComponent.getBoundingClientRect();if(o<=0||a<=0)throw new Error("Unable to get content dimensions. Camera view may not be rendered on the page.");let h,l,c;if(me(this,On,"m",qn).call(this)){const t=me(this,Fn,"f")._innerComponent.getElement("content");h=t.width,l=t.height,c="contain"}else{const t=this.getVideoEl();h=t.videoWidth,l=t.videoHeight,c=me(this,Fn,"f").getVideoFit()}const u=o/a,d=h/l;let f,g,m,p,_=1;if("contain"===c)ut+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(t,e,i){return hs.multiply(t,[1,0,0,0,1,0,e,i,1])}static rotate(t,e){var i=Math.cos(e),r=Math.sin(e);return hs.multiply(t,[i,-r,0,r,i,0,0,0,1])}static scale(t,e,i){return hs.multiply(t,[e,0,0,0,i,0,0,0,1])}}var ls,cs,us,ds,fs,gs,ms,ps,_s,vs,ys,ws,Es,Cs,Ts,bs,Ss,Is,xs,As,Rs,Os,Ds;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(ls||(ls={}));class Ls{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(as(Ls,cs,!1,"f",us),!1):(as(Ls,cs,!0,"f",us),!0)}get disposed(){return os(this,_s,"f")}constructor(){ds.set(this,ls.RGBA),fs.set(this,null),gs.set(this,null),ms.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,ps.set(this,null),_s.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==os(Ls,cs,"f",us)&&Ls.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!os(Ls,cs,"f",us))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;Ls._onLog&&(o=Date.now(),Ls._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=ls.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!os(Ls,cs,"f",us)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){Ls._onLog&&Ls._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);as(this,gs,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),as(this,ms,e(t),"f"),as(this,fs,i(t),"f"),as(this,ds,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[ls.GREY,ls.GREY32].includes(p)?1:0);let m,_,v=hs.translate(hs.identity(),-1,-1);v=hs.scale(v,2,2),v=hs.scale(v,1/t.canvas.width,1/t.canvas.height),m=hs.translate(v,u,d),m=hs.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=hs.translate(hs.identity(),a/i,h/r),_=hs.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,os(this,fs,"f"),e),v(t,os(this,gs,"f"),os(this,ms,"f"),os(this,fs,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){Ls._onLog&&Ls._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return Ls._onLog&&Ls._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===ls.GREY?ls.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return Ls._onLog&&Ls._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(Ls._onLog&&(n=Date.now(),Ls._onLog("transformPixelFormat(), START: "+n)),e===i)return Ls._onLog&&Ls._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[ls.RGBA,ls.RBGA,ls.GRBA,ls.GBRA,ls.BRGA,ls.BGRA];if(o.includes(e))if(i===ls.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;Ls._onLog&&(s=Date.now(),Ls._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=ls.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),os(Ls,cs,"f",us)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){Ls._onLog&&Ls._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===ls.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{var e;if(!this.isUseMagnifier)return;if(me(this,Cs,"f")||pe(this,Cs,new Ms,"f"),!me(this,Cs,"f").magnifierCanvas)return;document.body.contains(me(this,Cs,"f").magnifierCanvas)||(me(this,Cs,"f").magnifierCanvas.style.position="fixed",me(this,Cs,"f").magnifierCanvas.style.boxSizing="content-box",me(this,Cs,"f").magnifierCanvas.style.border="2px solid #FFFFFF",document.body.append(me(this,Cs,"f").magnifierCanvas));const i=this._innerComponent.getElement("content");if(!i)return;if(t.pointer.x<0||t.pointer.x>i.width||t.pointer.y<0||t.pointer.y>i.height)return void me(this,bs,"f").call(this);const r=null===(e=this._drawingLayerManager._getFabricCanvas())||void 0===e?void 0:e.lowerCanvasEl;if(!r)return;const n=Math.max(i.clientWidth/5/1.5,i.clientHeight/4/1.5),s=1.5*n,o=[{image:i,width:i.width,height:i.height},{image:r,width:r.width,height:r.height}];me(this,Cs,"f").update(s,t.pointer,n,o);{let e=0,i=0;t.e instanceof MouseEvent?(e=t.e.clientX,i=t.e.clientY):t.e instanceof TouchEvent&&t.e.changedTouches.length&&(e=t.e.changedTouches[0].clientX,i=t.e.changedTouches[0].clientY),e<1.5*s&&i<1.5*s?(me(this,Cs,"f").magnifierCanvas.style.left="auto",me(this,Cs,"f").magnifierCanvas.style.top="0",me(this,Cs,"f").magnifierCanvas.style.right="0"):(me(this,Cs,"f").magnifierCanvas.style.left="0",me(this,Cs,"f").magnifierCanvas.style.top="0",me(this,Cs,"f").magnifierCanvas.style.right="auto")}me(this,Cs,"f").show()})),bs.set(this,(()=>{me(this,Cs,"f")&&me(this,Cs,"f").hide()})),Ss.set(this,!1)}_setUIElement(t){this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await ii(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=me(this,ws,"m",Is).call(this);this._setUIElement(t),e.append(this.getUIElement()),this.UIElement=e}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;const t=this.UIElement;let e=t.classList.contains(this.containerClassName)?t:t.querySelector(`.${this.containerClassName}`);e||(e=document.createElement("div"),e.style.width="100%",e.style.height="100%",e.className=this.containerClassName,t.append(e)),this._innerComponent=new sr,e.appendChild(this._innerComponent)}_unbindUI(){var t,e,i;null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null}setImage(t,e,i){if(!this._innerComponent)throw new Error("Need to set 'UIElement'.");let r=this._innerComponent.getElement("content");r||(r=document.createElement("canvas"),r.style.objectFit="contain",this._innerComponent.setElement("content",r)),r.width===e&&r.height===i||(r.width=e,r.height=i);const n=r.getContext("2d");n.clearRect(0,0,r.width,r.height),t instanceof Uint8Array||t instanceof Uint8ClampedArray?(t instanceof Uint8Array&&(t=new Uint8ClampedArray(t.buffer)),n.putImageData(new ImageData(t,e,i),0,0)):(t instanceof HTMLCanvasElement||t instanceof HTMLImageElement)&&n.drawImage(t,0,0)}getImage(){return this._innerComponent.getElement("content")}clearImage(){if(!this._innerComponent)return;let t=this._innerComponent.getElement("content");t&&t.getContext("2d").clearRect(0,0,t.width,t.height)}removeImage(){this._innerComponent&&this._innerComponent.removeElement("content")}setOriginalImage(t){if(Ge(t)){pe(this,Es,t,"f");const{width:e,height:i,bytes:r,format:n}=Object.assign({},t);let o;if(n===s.IPF_GRAYSCALED){o=new Uint8ClampedArray(e*i*4);for(let t=0;t{t.removeEventListener("loadedmetadata",i),t.play(),e=setTimeout((()=>{me(this,xs,"f",Ds).delete(t)}),2e3*t.duration)};t.addEventListener("loadedmetadata",i),t.addEventListener("ended",(()=>{null!=e&&(clearTimeout(e),e=null),t.pause(),t.currentTime=0,me(this,xs,"f",Ds).delete(t),me(this,xs,"f",Os).add(t)}))}else me(this,xs,"f",Rs)||(pe(this,xs,!0,"f",Rs),console.warn("The requested audio tracks exceed 64 and will not be played."));t&&me(this,xs,"f",Ds).add(t)}static vibrate(){if(!navigator||!navigator.vibrate)throw new Error("Not supported.");navigator.vibrate(Ps.vibrateDuration)}}xs=Ps,As={value:"data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAABQAAAkAAgICAgICAgICAgICAgICAgICAgKCgoKCgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4ODg4P//////////////////////////AAAAAExhdmM1OC41NAAAAAAAAAAAAAAAACQEUQAAAAAAAAJAk0uXRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAANQAbGeUEQAAHZYZ3fASqD4P5TKBgocg+Bw/8+CAYBA4XB9/4EBAEP4nB9+UOf/6gfUCAIKyjgQ/Kf//wfswAAAwQA/+MYxAYOqrbdkZGQAMA7DJLCsQxNOij///////////+tv///3RWiZGBEhsf/FO/+LoCSFs1dFVS/g8f/4Mhv0nhqAieHleLy/+MYxAYOOrbMAY2gABf/////////////////usPJ66R0wI4boY9/8jQYg//g2SPx1M0N3Z0kVJLIs///Uw4aMyvHJJYmPBYG/+MYxAgPMALBucAQAoGgaBoFQVBUFQWDv6gZBUFQVBUGgaBr5YSgqCoKhIGg7+IQVBUFQVBoGga//SsFSoKnf/iVTEFNRTMu/+MYxAYAAANIAAAAADEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"},Rs={value:!1},Os={value:new Set},Ds={value:new Set},Ps.beepSoundSource=me(Ps,xs,"f",As),Ps.vibrateDuration=300;var ks=Object.freeze({__proto__:null,CameraEnhancer:ss,CameraEnhancerModule:class{static getVersion(){return"4.0.3"}},CameraView:ar,DrawingStyleManager:tr,get EnumDrawingItemMediaType(){return Se},get EnumDrawingItemState(){return Ie},get EnumEnhancedFeatures(){return xe},Feedback:Ps,ImageDrawingItem:class extends Ne{set maintainAspectRatio(t){t&&this.set("scaleY",this.get("scaleX"))}get maintainAspectRatio(){return me(this,oi,"f")}constructor(t,e,i,r){if(super(null,r),si.set(this,void 0),oi.set(this,void 0),!ze(e))throw new TypeError("Invalid 'rect'.");if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)this._setFabricObject(new Re.Image(t,{left:e.x,top:e.y}));else{if(!Ge(t))throw new TypeError("Invalid 'image'.");{const i=document.createElement("canvas");let r;if(i.width=t.width,i.height=t.height,t.format===s.IPF_GRAYSCALED){r=new Uint8ClampedArray(t.width*t.height*4);for(let e=0;e({x:e.x-t.left-t.width/2,y:e.y-t.top-t.height/2}))),t.addWithUpdate()}else i.points=e;const r=i.points.length-1;return i.controls=i.points.reduce((function(t,e,i){return t["p"+i]=new Re.Control({positionHandler:li,actionHandler:di(i>0?i-1:r,ui),actionName:"modifyPolygon",pointIndex:i}),t}),{}),i._setPositionDimensions({}),!0}}extendGet(t){if("startPoint"===t||"endPoint"===t){const e=[],i=this._fabricObject;if(i.selectable&&!i.group)for(let t in i.oCoords)e.push({x:i.oCoords[t].x,y:i.oCoords[t].y});else for(let t of i.points){let r=t.x-i.pathOffset.x,n=t.y-i.pathOffset.y;const s=Re.util.transformPoint({x:r,y:n},i.calcTransformMatrix());e.push({x:s.x,y:s.y})}return"startPoint"===t?e[0]:e[1]}}updateCoordinateBaseFromImageToView(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(e.x),y:this.convertPropFromViewToImage(e.y)})}updateCoordinateBaseFromViewToImage(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)}),this.set("endPoint",{x:this.convertPropFromImageToView(e.x),y:this.convertPropFromImageToView(e.y)})}setPosition(t){this.setLine(t)}getPosition(){return this.getLine()}updatePosition(){me(this,pi,"f")&&this.setLine(me(this,pi,"f"))}setPolygon(){}getPolygon(){return null}setLine(t){if(!We(t))throw new TypeError("Invalid 'line'.");if(this._drawingLayer){if("view"===this.coordinateBase)this.set("startPoint",{x:this.convertPropFromViewToImage(t.startPoint.x),y:this.convertPropFromViewToImage(t.startPoint.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(t.endPoint.x),y:this.convertPropFromViewToImage(t.endPoint.y)});else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("startPoint",t.startPoint),this.set("endPoint",t.endPoint)}this._drawingLayer.renderAll()}else pe(this,pi,JSON.parse(JSON.stringify(t)),"f")}getLine(){if(this._drawingLayer){if("view"===this.coordinateBase)return{startPoint:{x:this.convertPropFromImageToView(this.get("startPoint").x),y:this.convertPropFromImageToView(this.get("startPoint").y)},endPoint:{x:this.convertPropFromImageToView(this.get("endPoint").x),y:this.convertPropFromImageToView(this.get("endPoint").y)}};if("image"===this.coordinateBase)return{startPoint:this.get("startPoint"),endPoint:this.get("endPoint")};throw new Error("Invalid 'coordinateBase'.")}return me(this,pi,"f")?JSON.parse(JSON.stringify(me(this,pi,"f"))):null}},QuadDrawingItem:Qi,RectDrawingItem:hi,TextDrawingItem:mi});const Bs="undefined"==typeof self,Ns=(()=>{if(!Bs&&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"./"})(),Us=t=>{if(null==t&&(t="./"),Bs);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};null==nt.dbr&&(nt.dbr=Ns),ot.dbr={js:!1,wasm:!0,deps:["license","dip"]},rt.dbr={};const js="1.2.0";"string"!=typeof nt.std&&w(nt.std.version,js)<0&&(nt.std={version:js,path:Us(Ns+`../../dynamsoft-capture-vision-std@${js}/dist/`)});const Gs="2.2.10";(!nt.dip||"string"!=typeof nt.dip&&w(nt.dip.version,Gs)<0)&&(nt.dip={version:Gs,path:Us(Ns+`../../dynamsoft-image-processing@${Gs}/dist/`)});const Vs="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var Ws,Ys,Hs,Xs;!function(t){t[t.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",t[t.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",t[t.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT"}(Ws||(Ws={})),function(t){t[t.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",t[t.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",t[t.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",t[t.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q"}(Ys||(Ys={})),function(t){t[t.LM_AUTO=1]="LM_AUTO",t[t.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",t[t.LM_STATISTICS=4]="LM_STATISTICS",t[t.LM_LINES=8]="LM_LINES",t[t.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",t[t.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",t[t.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",t[t.LM_CENTRE=128]="LM_CENTRE",t[t.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",t[t.LM_REV=-2147483648]="LM_REV",t[t.LM_SKIP=0]="LM_SKIP"}(Hs||(Hs={})),function(t){t[t.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",t[t.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",t[t.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",t[t.DM_SMOOTHING=8]="DM_SMOOTHING",t[t.DM_MORPHING=16]="DM_MORPHING",t[t.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",t[t.DM_SHARPENING=64]="DM_SHARPENING",t[t.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",t[t.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",t[t.DM_REV=-2147483648]="DM_REV",t[t.DM_SKIP=0]="DM_SKIP"}(Xs||(Xs={}));var zs=Object.freeze({__proto__:null,BarcodeReaderModule:class{static getVersion(){const t=it.dbr&&it.dbr.wasm;return`10.2.10(Worker: ${it.dbr&&it.dbr.worker||"Not Loaded"}, Wasm: ${t||"Not Loaded"})`}},EnumBarcodeFormat:Vs,get EnumDeblurMode(){return Xs},get EnumExtendedBarcodeResultType(){return Ws},get EnumLocalizationMode(){return Hs},get EnumQRCodeErrorCorrectionLevel(){return Ys}});const Zs=async(t,e,i)=>await new Promise((async(r,n)=>{try{const n=e.split(".");let s=n[n.length-1];const o=await qs(`image/${s}`,t);n.length<=1&&(s="png");const a=new File([o],e,{type:`image/${s}`});if(i){const t=URL.createObjectURL(a),i=document.createElement("a");i.href=t,i.download=e,i.click()}return r(a)}catch(t){return n()}})),Ks=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},qs=async(t,e)=>{const i=Ks(e);return new Promise(((e,r)=>{i.toBlob((t=>e(t)),t)}))},Js=t=>{let e,i=t.bytes;if(!(i&&i instanceof Uint8Array))throw Error("Parameter type error");if(Number(t.format)===s.IPF_BGR_888){const t=i.length/3;e=new Uint8ClampedArray(4*t);for(let r=0;r=n)break;e[o]=e[o+1]=e[o+2]=(128&r)/128*255,e[o+3]=255,r<<=1}}}else if(Number(t.format)===s.IPF_ABGR_8888){const t=i.length/4;e=new Uint8ClampedArray(i.length);for(let r=0;r{let e;await new Promise(((i,r)=>{e=new Image,e.onload=()=>i(e),e.onerror=r,e.src=URL.createObjectURL(t)}));const i=document.createElement("canvas"),r=i.getContext("2d");return i.width=e.width,i.height=e.height,r.drawImage(e,0,0),{bytes:Uint8Array.from(r.getImageData(0,0,i.width,i.height).data),width:i.width,height:i.height,stride:4*i.width,format:10}};const $s="undefined"==typeof self,to=(()=>{if(!$s&&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"./"})(),eo=t=>{if(null==t&&(t="./"),$s);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};null==nt.utility&&(nt.utility=to),ot.utility={js:!0,wasm:!0};const io="1.2.10";"string"!=typeof nt.std&&w(nt.std.version,io)<0&&(nt.std={version:io,path:eo(to+`../../dynamsoft-capture-vision-std@${io}/dist/`)});const ro="2.2.30";(!nt.dip||"string"!=typeof nt.dip&&w(nt.dip.version,ro)<0)&&(nt.dip={version:ro,path:eo(to+`../../dynamsoft-image-processing@${ro}/dist/`)});const no={barcode:2,text_line:4,detected_quad:8,normalized_image:16},so=t=>Object.values(no).includes(t)||no.hasOwnProperty(t),oo=(t,e)=>"string"==typeof t?e[no[t]]:e[t],ao=(t,e,i)=>{"string"==typeof t?e[no[t]]=i:e[t]=i};var ho=Object.freeze({__proto__:null,ImageManager:class{async saveToFile(t,e,i){if(!t||!e)return null;if("string"!=typeof e)throw new TypeError("FileName must be of type string.");const r=Js(t);return Zs(r,e,i)}async drawOnImage(t,e,i,r=4294901760,n=1,s){let o;if(t instanceof Blob)o=await Qs(t);else if("string"==typeof t){let e=await y(t,"blob");o=await Qs(e)}return await new Promise(((t,a)=>{let h=q();J[h]=async e=>{if(e.success)return s&&this.saveToFile(e.image,"test.png",s),t(e.image);{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,a(t)}},Z.postMessage({type:"utility_drawOnImage",id:h,body:{dsImage:o,drawingItem:e instanceof Array?e:[e],color:r,thickness:n,type:i}})}))}},MultiFrameResultCrossFilter:class{constructor(){this.verificationEnabled={[lt.CRIT_BARCODE]:!1,[lt.CRIT_TEXT_LINE]:!0,[lt.CRIT_DETECTED_QUAD]:!0,[lt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateFilterEnabled={[lt.CRIT_BARCODE]:!1,[lt.CRIT_TEXT_LINE]:!1,[lt.CRIT_DETECTED_QUAD]:!1,[lt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateForgetTime={[lt.CRIT_BARCODE]:3e3,[lt.CRIT_TEXT_LINE]:3e3,[lt.CRIT_DETECTED_QUAD]:3e3,[lt.CRIT_NORMALIZED_IMAGE]:3e3}}enableResultCrossVerification(t,e){so(t)&&ao(t,this.verificationEnabled,e)}isResultCrossVerificationEnabled(t){return!!so(t)&&oo(t,this.verificationEnabled)}enableResultDeduplication(t,e){so(t)&&ao(t,this.duplicateFilterEnabled,e)}isResultDeduplicationEnabled(t){return!!so(t)&&oo(t,this.duplicateFilterEnabled)}setDuplicateForgetTime(t,e){so(t)&&(e>18e4&&(e=18e4),e<0&&(e=0),ao(t,this.duplicateForgetTime,e))}getDuplicateForgetTime(t){return so(t)?oo(t,this.duplicateForgetTime):-1}getFilteredResultItemTypes(){let t=0;const e=[lt.CRIT_BARCODE,lt.CRIT_TEXT_LINE,lt.CRIT_DETECTED_QUAD];for(let i=0;i{const i=Ks(e);let r=new Image,n=i.toDataURL(t);return r.src=n,r}});t.CVR=ae,t.Core=wt,t.DBR=zs,t.DCE=ks,t.License=Yt,t.Utility=ho})); diff --git a/dist/dbr.bundle.mjs b/dist/dbr.bundle.mjs new file mode 100644 index 00000000..1a5a0fb8 --- /dev/null +++ b/dist/dbr.bundle.mjs @@ -0,0 +1,11 @@ +/*! +* Dynamsoft JavaScript Library +* @product Dynamsoft Barcode Reader JS Edition Bundle +* @website http://www.dynamsoft.com +* @copyright Copyright 2024, Dynamsoft Corporation +* @author Dynamsoft +* @version 10.2.1000 +* @fileoverview Dynamsoft JavaScript Library for Barcode Reader +* More info on dbr JS: https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/ +*/ +function t(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function e(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}var i,r,n;"function"==typeof SuppressedError&&SuppressedError,function(t){t[t.BOPM_BLOCK=0]="BOPM_BLOCK",t[t.BOPM_UPDATE=1]="BOPM_UPDATE"}(i||(i={})),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"}(r||(r={})),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"}(n||(n={}));const s=t=>Object.prototype.toString.call(t),o=t=>Array.isArray?Array.isArray(t):"[object Array]"===s(t),a=t=>"[object Boolean]"===s(t),h=t=>"number"==typeof t&&!Number.isNaN(t),l=t=>null!==t&&"object"==typeof t&&!Array.isArray(t),c=t=>!(!l(t)||!h(t.x)||!h(t.y)||!h(t.radius)||t.radius<0||!h(t.startAngle)||!h(t.endAngle)),u=t=>!!l(t)&&!!o(t.points)&&0!=t.points.length&&!t.points.some((t=>!p(t))),d=t=>!(!l(t)||!(t.bytes instanceof Uint8Array)||!h(t.width)||t.width<=0||!h(t.height)||t.height<=0||!h(t.stride)||t.stride<=0||!("format"in t)||"tag"in t&&!g(t.tag)),f=t=>!(!l(t)||!h(t.left)||t.left<0||!h(t.top)||t.top<0||!h(t.right)||t.right<0||!h(t.bottom)||t.bottom<0||t.left>=t.right||t.top>=t.bottom||!a(t.isMeasuredInPercentage)),g=t=>!!l(t)&&!!h(t.imageId)&&"type"in t,m=t=>!(!l(t)||!p(t.startPoint)||!p(t.endPoint)||t.startPoint.x==t.endPoint.x&&t.startPoint.y==t.endPoint.y),p=t=>!!l(t)&&!!h(t.x)&&!!h(t.y),_=t=>!!l(t)&&!!o(t.points)&&0!=t.points.length&&!t.points.some((t=>!p(t))),v=t=>!!l(t)&&!!o(t.points)&&0!=t.points.length&&4==t.points.length&&!t.points.some((t=>!p(t))),y=t=>!(!l(t)||!h(t.x)||!h(t.y)||!h(t.width)||t.width<0||!h(t.height)||t.height<0||"isMeasuredInPercentage"in t&&!a(t.isMeasuredInPercentage));async function w(t,e){return await new Promise(((i,r)=>{let n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType=e,n.send(),n.onloadend=async()=>{n.status<200||n.status>=300?r(t+" "+n.status):i(n.response)},n.onerror=()=>{r(new Error("Network Error: "+n.statusText))}}))}function E(t){return/^(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)|^[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?/.test(t)}const C=(t,e)=>{let i=t.split("."),r=e.split(".");for(let t=0;t=t(this,I,"f"))switch(t(this,x,"f")){case i.BOPM_BLOCK:break;case i.BOPM_UPDATE:if(t(this,S,"f").push(e),l(t(this,R,"f"))&&h(t(this,R,"f").imageId)&&1==t(this,R,"f").keepInBuffer)for(;t(this,S,"f").length>t(this,I,"f");){const e=t(this,S,"f").findIndex((e=>{var i;return(null===(i=e.tag)||void 0===i?void 0:i.imageId)!==t(this,R,"f").imageId}));t(this,S,"f").splice(e,1)}else t(this,S,"f").splice(0,t(this,S,"f").length-t(this,I,"f"))}else t(this,S,"f").push(e)}getImage(){if(0===t(this,S,"f").length)return null;let e;if(t(this,R,"f")&&h(t(this,R,"f").imageId)){const i=t(this,b,"m",D).call(this,t(this,R,"f").imageId);if(i<0)throw new Error(`Image with id ${t(this,R,"f").imageId} doesn't exist.`);e=t(this,S,"f").slice(i,i+1)[0]}else e=t(this,S,"f").pop();if([n.IPF_RGB_565,n.IPF_RGB_555,n.IPF_RGB_888,n.IPF_ARGB_8888,n.IPF_RGB_161616,n.IPF_ARGB_16161616,n.IPF_ABGR_8888,n.IPF_ABGR_16161616,n.IPF_BGR_888].includes(e.format)){if(t(this,O,"f")===r.CCUT_RGB_R_CHANNEL_ONLY){s._onLog&&s._onLog("only get R channel data.");const t=new Uint8Array(e.width*e.height);for(let i=0;i0!==t.length&&t.every((t=>h(t))))(t))throw new TypeError("Invalid 'imageId'.");if(void 0!==i&&!a(i))throw new TypeError("Invalid 'keepInBuffer'.");e(this,R,{imageId:t,keepInBuffer:i},"f")}_resetNextReturnedImage(){e(this,R,null,"f")}hasImage(e){return t(this,b,"m",D).call(this,e)>=0}startFetching(){e(this,A,!0,"f")}stopFetching(){e(this,A,!1,"f")}setMaxImageCount(i){if("number"!=typeof i)throw new TypeError("Invalid 'count'.");if(i<1||Math.round(i)!==i)throw new Error("Invalid 'count'.");for(e(this,I,i,"f");t(this,S,"f")&&t(this,S,"f").length>i;)t(this,S,"f").shift()}getMaxImageCount(){return t(this,I,"f")}getImageCount(){return t(this,S,"f").length}clearBuffer(){t(this,S,"f").length=0}isBufferEmpty(){return 0===t(this,S,"f").length}setBufferOverflowProtectionMode(t){e(this,x,t,"f")}getBufferOverflowProtectionMode(){return t(this,x,"f")}setColourChannelUsageType(t){e(this,O,t,"f")}getColourChannelUsageType(){return t(this,O,"f")}};S=new WeakMap,I=new WeakMap,x=new WeakMap,A=new WeakMap,R=new WeakMap,O=new WeakMap,b=new WeakSet,D=function(e){if("number"!=typeof e)throw new TypeError("Invalid 'imageId'.");return t(this,S,"f").findIndex((t=>{var i;return(null===(i=t.tag)||void 0===i?void 0:i.imageId)===e}))};const M="undefined"==typeof self,F=(()=>{if(!M&&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"./"})(),P=t=>{if(null==t&&(t="./"),M);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};let k,B,N,U,j;"undefined"!=typeof navigator&&(k=navigator,B=k.userAgent,N=k.platform,U=k.mediaDevices),function(){if(!M){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:k.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:N,search:"Win"},Mac:{str:N},Linux:{str:N}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||B,o=n.search||e,a=n.verStr||B,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||B,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=B.indexOf("Windows NT")&&(n="HarmonyOS"),j={browser:i,version:r,OS:n}}M&&(j={browser:"ssr",version:0,OS:"ssr"})}();const G="undefined"!=typeof WebAssembly&&B&&!(/Safari/.test(B)&&!/Chrome/.test(B)&&/\(.+\s11_2_([2-6]).*\)/.test(B)),W=!("undefined"==typeof Worker),V=!(!U||!U.getUserMedia),Y=async()=>{let t=!1;if(V)try{(await U.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===j.browser&&j.version>66||"Safari"===j.browser&&j.version>13||"OPR"===j.browser&&j.version>43||"Edge"===j.browser&&j.version;const H=t=>t&&"object"==typeof t&&"function"==typeof t.then;let X=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(H(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,H(t)?e=t:"function"==typeof t&&(e=new Promise(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}};const z={},Z=t=>{let e=z[t],i=!1;return e?e.isEmpty?e.task=()=>{}:i=!0:e=z[t]=new X((()=>{})),{p:e,justWait:i}},K=async t=>{let e="string"==typeof t?[t]:t,i=[];for(let t of e)i.push(z[t]=z[t]||new X);await Promise.all(i)},q=async(t,e)=>{let i,r="string"==typeof t?[t]:t,n=[];for(let t of r){let r;n.push(r=z[t]=z[t]||new X(i=i||e())),r.isEmpty&&(r.task=i=i||e())}await Promise.all(n)};let J,Q=0;const $=()=>Q++,tt={};let et;const it=t=>{et=t,J&&J.postMessage({type:"setBLog",body:{value:!!t}})};let rt=!1;const nt=t=>{rt=t,J&&J.postMessage({type:"setBDebug",body:{value:!!t}})},st={},ot={},at={std:{version:"1.2.10",path:P(F+"../../dynamsoft-capture-vision-std@1.2.10/dist/")},core:{version:"3.2.30",path:F}},ht=new Proxy(at,{get(t,e,i){let r=Reflect.get(t,e,i);return r&&r.path&&(r=r.path),r}}),lt={dip:{wasm:!0}},ct=async t=>{let e;t instanceof Array||(t=t?[t]:[]);{let t=z.core;e=!t||t.isEmpty}let i=new Map;for(let e of t){if(e=e.toLowerCase(),"std"==e||"core"==e)continue;if(!lt[e])throw Error("The '"+e+"' module cannot be found.");let t=lt[e].deps;if(null==t?void 0:t.length)for(let e of t){let t=z[e];i.has(e)||i.set(e,!t||t.isEmpty)}let r=z[e];i.has(e)||i.set(e,!r||r.isEmpty)}let r=[];e&&r.push("core"),r.push(...i.keys()),await q(r,(async()=>{const t=[...i.entries()].filter((t=>t[1])).map((t=>t[0])),r={};for(let t in ht){if("rootDirectory"==t)continue;let e=ht[t];ht.rootDirectory&&(e.startsWith("http://")||e.startsWith("https://")||(e=ht.rootDirectory+"/"+e)),r[t]=P(e)}const n={};for(let e of t)n[e]=lt[e];const s={engineResourcePaths:r,autoResources:n,names:t};let o=new X;if(e){s.needLoadCore=!0;let t=r.core+ut._workerName;r.rootDirectory&&(t=r.rootDirectory+t),t.startsWith(location.origin)||(t=await fetch(t).then((t=>t.blob())).then((t=>URL.createObjectURL(t)))),J=new Worker(t),J.onerror=t=>{let e=new Error(t.message);o.reject(e)},J.addEventListener("message",(t=>{let e=t.data?t.data:t,i=e.type,r=e.id,n=e.body;switch(i){case"log":et&&et(e.message);break;case"task":try{tt[r](n),delete tt[r]}catch(t){throw delete tt[r],t}break;case"event":try{tt[r](n)}catch(t){throw t}break;default:console.log(t)}})),s.bLog=!!et,s.bd=rt,s.dm=location.origin.startsWith("http")?location.origin:"https://localhost"}else await K("worker");let a=Q++;tt[a]=t=>{if(t.success)Object.assign(st,t.versions),"{}"!==JSON.stringify(t.versions)&&(ut._versions=t.versions),o.resolve(void 0);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),o.reject(e)}},J.postMessage({type:"loadWasm",body:s,id:a}),e&&q("worker",(()=>Promise.resolve())),await o}))};class ut{static get engineResourcePaths(){return ht}static set engineResourcePaths(t){Object.assign(at,t)}static get bSupportDce4Module(){return this._bSupportDce4Module}static get bSupportIRTModule(){return this._bSupportIRTModule}static get versions(){return this._versions}static get _onLog(){return et}static set _onLog(t){it(t)}static get _bDebug(){return rt}static set _bDebug(t){nt(t)}static isModuleLoaded(t){return t=(t=t||"core").toLowerCase(),!!z[t]&&z[t].isFulfilled}static async loadWasm(t){return await ct(t)}static async detectEnvironment(){return await(async()=>({wasm:G,worker:W,getUserMedia:V,camera:await Y(),browser:j.browser,version:j.version,OS:j.OS}))()}static async getModuleVersion(){return await new Promise(((t,e)=>{let i=$();tt[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)}},J.postMessage({type:"getModuleVersion",id:i})}))}static getVersion(){return`3.2.30(Worker: ${st.core&&st.core.worker||"Not Loaded"}, Wasm: ${st.core&&st.core.wasm||"Not Loaded"})`}static enableLogging(){L._onLog=console.log,ut._onLog=console.log}static disableLogging(){L._onLog=null,ut._onLog=null}static async cfd(t){return await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cfd",id:r,body:{count:t}})}))}}var dt,ft,gt,mt,pt,_t,vt,yt,wt,Et,Ct;ut._bSupportDce4Module=-1,ut._bSupportIRTModule=-1,ut._versions=null,ut._workerName="core.worker.js",ut.browserInfo=j,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_NORMALIZED_IMAGE=16]="CRIT_NORMALIZED_IMAGE",t[t.CRIT_PARSED_RESULT=32]="CRIT_PARSED_RESULT"}(dt||(dt={})),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"}(ft||(ft={})),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_RESERVED_INFO_NOT_MATCH=-10040]="EC_RESERVED_INFO_NOT_MATCH",t[t.EC_LICENSE_KEY_NOT_MATCH=-10043]="EC_LICENSE_KEY_NOT_MATCH",t[t.EC_REQUEST_FAILED=-10044]="EC_REQUEST_FAILED",t[t.EC_LICENSE_INIT_FAILED=-10045]="EC_LICENSE_INIT_FAILED",t[t.EC_SET_MODE_ARGUMENT_ERROR=-10051]="EC_SET_MODE_ARGUMENT_ERROR",t[t.EC_LICENSE_CONTENT_INVALID=-10052]="EC_LICENSE_CONTENT_INVALID",t[t.EC_LICENSE_KEY_INVALID=-10053]="EC_LICENSE_KEY_INVALID",t[t.EC_LICENSE_DEVICE_RUNS_OUT=-10054]="EC_LICENSE_DEVICE_RUNS_OUT",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_NO_LICENSE=-2e4]="EC_NO_LICENSE",t[t.EC_HANDSHAKE_CODE_INVALID=-20001]="EC_HANDSHAKE_CODE_INVALID",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_LICENSE_INIT_SEQUENCE_FAILED=-20009]="EC_LICENSE_INIT_SEQUENCE_FAILED",t[t.EC_TRIAL_LICENSE=-20010]="EC_TRIAL_LICENSE",t[t.EC_FAILED_TO_REACH_DLS=-20200]="EC_FAILED_TO_REACH_DLS",t[t.EC_LICENSE_CACHE_USED=-20012]="EC_LICENSE_CACHE_USED",t[t.EC_BARCODE_FORMAT_INVALID=-30009]="EC_BARCODE_FORMAT_INVALID",t[t.EC_QR_LICENSE_INVALID=-30016]="EC_QR_LICENSE_INVALID",t[t.EC_1D_LICENSE_INVALID=-30017]="EC_1D_LICENSE_INVALID",t[t.EC_PDF417_LICENSE_INVALID=-30019]="EC_PDF417_LICENSE_INVALID",t[t.EC_DATAMATRIX_LICENSE_INVALID=-30020]="EC_DATAMATRIX_LICENSE_INVALID",t[t.EC_CUSTOM_MODULESIZE_INVALID=-30025]="EC_CUSTOM_MODULESIZE_INVALID",t[t.EC_AZTEC_LICENSE_INVALID=-30041]="EC_AZTEC_LICENSE_INVALID",t[t.EC_PATCHCODE_LICENSE_INVALID=-30046]="EC_PATCHCODE_LICENSE_INVALID",t[t.EC_POSTALCODE_LICENSE_INVALID=-30047]="EC_POSTALCODE_LICENSE_INVALID",t[t.EC_DPM_LICENSE_INVALID=-30048]="EC_DPM_LICENSE_INVALID",t[t.EC_FRAME_DECODING_THREAD_EXISTS=-30049]="EC_FRAME_DECODING_THREAD_EXISTS",t[t.EC_STOP_DECODING_THREAD_FAILED=-30050]="EC_STOP_DECODING_THREAD_FAILED",t[t.EC_MAXICODE_LICENSE_INVALID=-30057]="EC_MAXICODE_LICENSE_INVALID",t[t.EC_GS1_DATABAR_LICENSE_INVALID=-30058]="EC_GS1_DATABAR_LICENSE_INVALID",t[t.EC_GS1_COMPOSITE_LICENSE_INVALID=-30059]="EC_GS1_COMPOSITE_LICENSE_INVALID",t[t.EC_DOTCODE_LICENSE_INVALID=-30061]="EC_DOTCODE_LICENSE_INVALID",t[t.EC_PHARMACODE_LICENSE_INVALID=-30062]="EC_PHARMACODE_LICENSE_INVALID",t[t.EC_CHARACTER_MODEL_FILE_NOT_FOUND=-40100]="EC_CHARACTER_MODEL_FILE_NOT_FOUND",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_ZA_DL_LICENSE_INVALID=-90006]="EC_ZA_DL_LICENSE_INVALID",t[t.EC_AAMVA_DL_ID_LICENSE_INVALID=-90007]="EC_AAMVA_DL_ID_LICENSE_INVALID",t[t.EC_AADHAAR_LICENSE_INVALID=-90008]="EC_AADHAAR_LICENSE_INVALID",t[t.EC_MRTD_LICENSE_INVALID=-90009]="EC_MRTD_LICENSE_INVALID",t[t.EC_VIN_LICENSE_INVALID=-90010]="EC_VIN_LICENSE_INVALID",t[t.EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID=-90011]="EC_CUSTOMIZED_CODE_TYPE_LICENSE_INVALID"}(gt||(gt={})),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"}(mt||(mt={})),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"}(pt||(pt={})),function(t){t[t.ITT_FILE_IMAGE=0]="ITT_FILE_IMAGE",t[t.ITT_VIDEO_FRAME=1]="ITT_VIDEO_FRAME"}(_t||(_t={})),function(t){t[t.PDFRM_VECTOR=1]="PDFRM_VECTOR",t[t.PDFRM_RASTER=2]="PDFRM_RASTER",t[t.PDFRM_REV=-2147483648]="PDFRM_REV"}(vt||(vt={})),function(t){t[t.RDS_RASTERIZED_PAGES=0]="RDS_RASTERIZED_PAGES",t[t.RDS_EXTRACTED_IMAGES=1]="RDS_EXTRACTED_IMAGES"}(yt||(yt={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=268435455]="IRUT_ALL"}(wt||(wt={})),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_NORMALIZED_IMAGE=6]="ROET_NORMALIZED_IMAGE",t[t.ROET_SOURCE_IMAGE=7]="ROET_SOURCE_IMAGE",t[t.ROET_TARGET_ROI=8]="ROET_TARGET_ROI"}(Et||(Et={})),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_NORMALIZATION=7]="ST_DOCUMENT_NORMALIZATION"}(Ct||(Ct={}));let Tt="./";if(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))}Tt=t.substring(0,t.lastIndexOf("/")+1)}const bt=t=>{null==t&&(t="./");let e=document.createElement("a");return e.href=t,(t=e.href).endsWith("/")||(t+="/"),t};ut.engineResourcePaths={std:bt(Tt+"../../dynamsoft-capture-vision-std@1.2.10/dist/"),dip:bt(Tt+"../../dynamsoft-image-processing@2.2.30/dist/"),core:bt(Tt+"../../dynamsoft-core@3.2.30/dist/"),license:bt(Tt+"../../dynamsoft-license@3.2.21/dist/"),cvr:bt(Tt+"../../dynamsoft-capture-vision-router@2.2.30/dist/"),dce:bt(Tt+"../../dynamsoft-camera-enhancer@4.0.3/dist/"),dbr:bt(Tt+"../../dynamsoft-barcode-reader@10.2.10/dist/")};const St="undefined"==typeof self,It=St?{}:self,xt=(()=>{if(!St&&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"./"})(),At=t=>{if(null==t&&(t="./"),St);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t},Rt=t=>t&&"object"==typeof t&&"function"==typeof t.then;let Ot=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(Rt(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,Rt(t)?e=t:"function"==typeof t&&(e=new Promise(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}};const Dt=" is not allowed to change after `createInstance` or `loadWasm` is called.",Lt=!St&&document.currentScript&&(document.currentScript.getAttribute("data-license")||document.currentScript.getAttribute("data-productKeys")||document.currentScript.getAttribute("data-licenseKey")||document.currentScript.getAttribute("data-handshakeCode")||document.currentScript.getAttribute("data-organizationID"))||"",Mt=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`license`"+Dt);i._license=e};!St&&document.currentScript&&document.currentScript.getAttribute("data-sessionPassword");const Ft=t=>{if(null==t)t=[];else{t=t instanceof Array?[...t]:[t];for(let e=0;e{const i=t;if(!i._pLoad.isEmpty)throw new Error("`licenseServer`"+Dt);i._licenseServer=Ft(e)},kt=(t,e)=>{const i=t;if(!i._pLoad.isEmpty)throw new Error("`deviceFriendlyName`"+Dt);i._deviceFriendlyName=e||""};let Bt,Nt,Ut,jt,Gt;"undefined"!=typeof navigator&&(Bt=navigator,Nt=Bt.userAgent,Ut=Bt.platform,jt=Bt.mediaDevices),function(){if(!St){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:Bt.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:Ut,search:"Win"},Mac:{str:Ut},Linux:{str:Ut}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||Nt,o=n.search||e,a=n.verStr||Nt,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||Nt,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=Nt.indexOf("Windows NT")&&(n="HarmonyOS"),Gt={browser:i,version:r,OS:n}}St&&(Gt={browser:"ssr",version:0,OS:"ssr"})}(),jt&&jt.getUserMedia,"Chrome"===Gt.browser&&Gt.version>66||"Safari"===Gt.browser&&Gt.version>13||"OPR"===Gt.browser&&Gt.version>43||"Edge"===Gt.browser&&Gt.version;const Wt=async()=>(ct("license"),q("dynamsoft_inited",(async()=>{let{lt:t,l:e,ls:i,sp:r,rmk:n,cv:s}=((t,e=!1)=>{const i=Yt;if(i._pLoad.isEmpty){let r,n,s,o=i._license||"",a=JSON.parse(JSON.stringify(i._licenseServer)),h=i._sessionPassword,l=0;if(o.startsWith("t")||o.startsWith("f"))l=0;else if(0===o.length||o.startsWith("P")||o.startsWith("L")||o.startsWith("Y")||o.startsWith("A"))l=1;else{l=2;const e=o.indexOf(":");-1!=e&&(o=o.substring(e+1));const i=o.indexOf("?");if(-1!=i&&(n=o.substring(i+1),o=o.substring(0,i)),o.startsWith("DLC2"))l=0;else{if(o.startsWith("DLS2")){let e;try{let t=o.substring(4);t=atob(t),e=JSON.parse(t)}catch(t){throw new Error("Format Error: The license string you specified is invalid, please check to make sure it is correct.")}if(o=e.handshakeCode?e.handshakeCode:e.organizationID?e.organizationID:"","number"==typeof o&&(o=JSON.stringify(o)),0===a.length){let t=[];e.mainServerURL&&(t[0]=e.mainServerURL),e.standbyServerURL&&(t[1]=e.standbyServerURL),a=Ft(t)}!h&&e.sessionPassword&&(h=e.sessionPassword),r=e.remark}o&&"200001"!==o&&!o.startsWith("200001-")||(l=1)}}if(l&&(e||(It.crypto||(s="Please upgrade your browser to support online key."),It.crypto.subtle||(s="Require https to use online key in this browser."))),s){if(1!==l)throw new Error(s);l=0,console.warn(s),i._lastErrorCode=-1,i._lastErrorString=s}return 1===l&&(o="",console.warn("Applying for a public trial license ...")),{lt:l,l:o,ls:a,sp:h,rmk:r,cv:n}}throw new Error("Can't preprocess license again"+Dt)})(),o=new Ot;Yt._pLoad.task=o,(async()=>{try{await Yt._pLoad}catch(t){}})();let a=$();tt[a]=e=>{if(e.message&&Yt._onAuthMessage){let t=Yt._onAuthMessage(e.message);null!=t&&(e.message=t)}let i,r=!1;if(1===t&&(r=!0),e.success?(et&&et("init license success"),e.message&&console.warn(e.message),ut._bSupportIRTModule=e.bSupportIRTModule,ut._bSupportDce4Module=e.bSupportDce4Module,Yt.bPassValidation=!0):(i=Error(e.message),e.stack&&(i.stack=e.stack),e.ltsErrorCode&&(i.ltsErrorCode=e.ltsErrorCode),r||111==e.ltsErrorCode&&-1!=e.message.toLowerCase().indexOf("trial license")&&(r=!0)),r){let t=at.license;at.rootDirectory&&(t=at.rootDirectory+"/"+t),t=At(t),(async(t,e,i)=>{if(!t._bNeverShowDialog)try{let r=await fetch(t.engineResourcePath+"dls.license.dialog.html");if(!r.ok)throw Error("Get license dialog fail. Network Error: "+r.statusText);let n=await r.text();if(!n.trim().startsWith("<"))throw Error("Get license dialog fail. Can't get valid HTMLElement.");let s=document.createElement("div");s.innerHTML=n;let o=[];for(let t=0;t{if(t==e.target){a.remove();for(let t of o)t.remove()}}));else if(!l&&t.classList.contains("dls-license-icon-close"))l=t,t.addEventListener("click",(()=>{a.remove();for(let t of o)t.remove()}));else if(!c&&t.classList.contains("dls-license-icon-error"))c=t,"error"!=e&&t.remove();else if(!u&&t.classList.contains("dls-license-icon-warn"))u=t,"warn"!=e&&t.remove();else if(!d&&t.classList.contains("dls-license-msg-content")){d=t;let e=i;for(;e;){let i=e.indexOf("["),r=e.indexOf("]",i),n=e.indexOf("(",r),s=e.indexOf(")",n);if(-1==i||-1==r||-1==n||-1==s){t.appendChild(new Text(e));break}i>0&&t.appendChild(new Text(e.substring(0,i)));let o=document.createElement("a"),a=e.substring(i+1,r);o.innerText=a;let h=e.substring(n+1,s);o.setAttribute("href",h),o.setAttribute("target","_blank"),t.appendChild(o),e=e.substring(s+1)}}document.body.appendChild(a)}catch(e){t._onLog&&t._onLog(e.message||e)}})({_bNeverShowDialog:Yt._bNeverShowDialog,engineResourcePath:t,_onLog:et},e.success?"warn":"error",e.message)}e.success?o.resolve(void 0):o.reject(i)},await K("worker"),J.postMessage({type:"dynamsoft",body:{v:"3.2.21",brtk:!!t,bptk:1===t,l:e,os:Gt,fn:Yt.deviceFriendlyName,ls:i,sp:r,rmk:n,cv:s},id:a}),Yt.bCallInitLicense=!0,await o})));let Vt;ot.license={},ot.license.dynamsoft=Wt,ot.license.getAR=async()=>{{let t=z.dynamsoft_inited;t&&t.isRejected&&await t}return J?new Promise(((t,e)=>{let i=$();tt[i]=async i=>{if(i.success){delete i.success;{let t=Yt.license;t&&(t.startsWith("t")||t.startsWith("f"))&&(i.pk=t)}if(Object.keys(i).length){if(i.lem){let t=Error(i.lem);t.ltsErrorCode=i.lec,delete i.lem,delete i.lec,i.ae=t}t(i)}else t(null)}else{let t=Error(i.message);i.stack&&(t.stack=i.stack),e(t)}},J.postMessage({type:"getAR",id:i})})):null};let Yt=class t{static setLicenseServer(e){Pt(t,e)}static get license(){return this._license}static set license(e){Mt(t,e)}static get licenseServer(){return this._licenseServer}static set licenseServer(e){Pt(t,e)}static get deviceFriendlyName(){return this._deviceFriendlyName}static set deviceFriendlyName(e){kt(t,e)}static initLicense(e,i){if(Mt(t,e),t.bCallInitLicense=!0,i)return Wt()}static setDeviceFriendlyName(e){kt(t,e)}static getDeviceFriendlyName(){return t._deviceFriendlyName}static getDeviceUUID(){return(async()=>(await q("dynamsoft_uuid",(async()=>{await ct();let t=new Ot,e=$();tt[e]=e=>{if(e.success)t.resolve(e.uuid);else{const i=Error(e.message);e.stack&&(i.stack=e.stack),t.reject(i)}},J.postMessage({type:"getDeviceUUID",id:e}),Vt=await t})),Vt))()}};Yt._pLoad=new Ot,Yt.bPassValidation=!1,Yt.bCallInitLicense=!1,Yt._license=Lt,Yt._licenseServer=[],Yt._deviceFriendlyName="",null==at.license&&(at.license=xt),lt.license={wasm:!0},ot.license.LicenseManager=Yt;const Ht="1.2.10";"string"!=typeof at.std&&C(at.std.version,Ht)<0&&(at.std={version:Ht,path:At(xt+`../../dynamsoft-capture-vision-std@${Ht}/dist/`)});let Xt=class{static getVersion(){return`3.2.21(Worker: ${st.license&&st.license.worker||"Not Loaded"}, Wasm: ${st.license&&st.license.wasm||"Not Loaded"})`}};const zt=t=>t&&"object"==typeof t&&"function"==typeof t.then;let Zt=class extends Promise{constructor(t){let e,i;super(((t,r)=>{e=t,i=r})),this._s="pending",this.resolve=t=>{this.isPending&&(zt(t)?this.task=t:(this._s="fulfilled",e(t)))},this.reject=t=>{this.isPending&&(this._s="rejected",i(t))},this.task=t}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,zt(t)?e=t:"function"==typeof t&&(e=new Promise(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}};class Kt{constructor(t){this._cvr=t}async getMaxBufferedItems(){return await new Promise(((t,e)=>{let i=$();tt[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)}},J.postMessage({type:"cvr_getMaxBufferedItems",id:i,instanceID:this._cvr._instanceID})}))}async setMaxBufferedItems(t){return await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_setMaxBufferedItems",id:r,instanceID:this._cvr._instanceID,body:{count:t}})}))}async getBufferedCharacterItemSet(){return await new Promise(((t,e)=>{let i=$();tt[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)}},J.postMessage({type:"cvr_getBufferedCharacterItemSet",id:i,instanceID:this._cvr._instanceID})}))}}var qt={onTaskResultsReceived:!1,onTaskResultsReceivedForDce:!1,onPredetectedRegionsReceived:!1,onLocalizedBarcodesReceived:!1,onDecodedBarcodesReceived:!1,onLocalizedTextLinesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onColourImageUnitReceived:!1,onScaledDownColourImageUnitReceived:!1,onGrayscaleImageUnitReceived:!1,onTransformedGrayscaleImageUnitReceived:!1,onEnhancedGrayscaleImageUnitReceived:!1,onBinaryImageUnitReceived:!1,onTextureDetectionResultUnitReceived:!1,onTextureRemovedGrayscaleImageUnitReceived:!1,onTextureRemovedBinaryImageUnitReceived:!1,onContoursUnitReceived:!1,onLineSegmentsUnitReceived:!1,onTextZonesUnitReceived:!1,onTextRemovedBinaryImageUnitReceived:!1,onLongLinesUnitReceived:!1,onCornersUnitReceived:!1,onCandidateQuadEdgesUnitReceived:!1,onCandidateBarcodeZonesUnitReceived:!1,onScaledUpBarcodeImageUnitReceived:!1,onDeformationResistedBarcodeImageUnitReceived:!1,onComplementedBarcodeImageUnitReceived:!1,onShortLinesUnitReceived:!1};const Jt=(t,e)=>{for(let t in e._irrRegistryState)e._irrRegistryState[t]=!1;for(let i of t._intermediateResultReceiverSet)if(i.isDce)e._irrRegistryState.onTaskResultsReceivedForDce=!0;else for(let t in i)e._irrRegistryState[t]||(e._irrRegistryState[t]=!!i[t])};let Qt=class{constructor(t){this._irrRegistryState=qt,this._cvr=t}async addResultReceiver(t){if("object"!=typeof t)throw new Error("Invalid receiver.");this._cvr._intermediateResultReceiverSet.add(t),Jt(this._cvr,this);let e=-1,i={};if(!t.isDce){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,r)=>{let n=$();tt[n]=async e=>{if(e.success)return t();{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,r(t)}},J.postMessage({type:"cvr_setIrrRegistry",id:n,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState,observedResultUnitTypes:String(e),observedTaskMap:i}})}))}async removeResultReceiver(t){return this._cvr._intermediateResultReceiverSet.delete(t),Jt(this._cvr,this),await new Promise(((t,e)=>{let i=$();tt[i]=async i=>{if(i.success)return t();{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},J.postMessage({type:"cvr_setIrrRegistry",id:i,instanceID:this._cvr._instanceID,body:{receiverObj:this._irrRegistryState}})}))}getOriginalImage(){return this._cvr._dsImage}};const $t="undefined"==typeof self,te=(()=>{if(!$t&&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"./"})(),ee=t=>{if(null==t&&(t="./"),$t);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};var ie;null==at.cvr&&(at.cvr=te),lt.cvr={js:!0,wasm:!0,deps:["license","dip"]},ot.cvr={};const re="1.2.10";"string"!=typeof at.std&&C(at.std.version,re)<0&&(at.std={version:re,path:ee(te+`../../dynamsoft-capture-vision-std@${re}/dist/`)});const ne="2.2.30";(!at.dip||"string"!=typeof at.dip&&C(at.dip.version,ne)<0)&&(at.dip={version:ne,path:ee(te+`../../dynamsoft-image-processing@${ne}/dist/`)});let se=class{static getVersion(){return this._version}};var oe,ae;function he(t,e){if(t&&t.location){const i=t.location.points;for(let t of i)t.x=t.x/e,t.y=t.y/e;he(t.referencedItem,e)}}se._version=`2.2.30(Worker: ${null===(ie=st.cvr)||void 0===ie?void 0:ie.worker}, Wasm: loading...`,function(t){t[t.ISS_BUFFER_EMPTY=0]="ISS_BUFFER_EMPTY",t[t.ISS_EXHAUSTED=1]="ISS_EXHAUSTED"}(oe||(oe={})),function(t){t[t.IRUT_NULL=0]="IRUT_NULL",t[t.IRUT_COLOUR_IMAGE=1]="IRUT_COLOUR_IMAGE",t[t.IRUT_SCALED_DOWN_COLOUR_IMAGE=2]="IRUT_SCALED_DOWN_COLOUR_IMAGE",t[t.IRUT_GRAYSCALE_IMAGE=4]="IRUT_GRAYSCALE_IMAGE",t[t.IRUT_TRANSOFORMED_GRAYSCALE_IMAGE=8]="IRUT_TRANSOFORMED_GRAYSCALE_IMAGE",t[t.IRUT_ENHANCED_GRAYSCALE_IMAGE=16]="IRUT_ENHANCED_GRAYSCALE_IMAGE",t[t.IRUT_PREDETECTED_REGIONS=32]="IRUT_PREDETECTED_REGIONS",t[t.IRUT_BINARY_IMAGE=64]="IRUT_BINARY_IMAGE",t[t.IRUT_TEXTURE_DETECTION_RESULT=128]="IRUT_TEXTURE_DETECTION_RESULT",t[t.IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE=256]="IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE",t[t.IRUT_TEXTURE_REMOVED_BINARY_IMAGE=512]="IRUT_TEXTURE_REMOVED_BINARY_IMAGE",t[t.IRUT_CONTOURS=1024]="IRUT_CONTOURS",t[t.IRUT_LINE_SEGMENTS=2048]="IRUT_LINE_SEGMENTS",t[t.IRUT_TEXT_ZONES=4096]="IRUT_TEXT_ZONES",t[t.IRUT_TEXT_REMOVED_BINARY_IMAGE=8192]="IRUT_TEXT_REMOVED_BINARY_IMAGE",t[t.IRUT_CANDIDATE_BARCODE_ZONES=16384]="IRUT_CANDIDATE_BARCODE_ZONES",t[t.IRUT_LOCALIZED_BARCODES=32768]="IRUT_LOCALIZED_BARCODES",t[t.IRUT_SCALED_UP_BARCODE_IMAGE=65536]="IRUT_SCALED_UP_BARCODE_IMAGE",t[t.IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE=131072]="IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE",t[t.IRUT_COMPLEMENTED_BARCODE_IMAGE=262144]="IRUT_COMPLEMENTED_BARCODE_IMAGE",t[t.IRUT_DECODED_BARCODES=524288]="IRUT_DECODED_BARCODES",t[t.IRUT_LONG_LINES=1048576]="IRUT_LONG_LINES",t[t.IRUT_CORNERS=2097152]="IRUT_CORNERS",t[t.IRUT_CANDIDATE_QUAD_EDGES=4194304]="IRUT_CANDIDATE_QUAD_EDGES",t[t.IRUT_DETECTED_QUADS=8388608]="IRUT_DETECTED_QUADS",t[t.IRUT_LOCALIZED_TEXT_LINES=16777216]="IRUT_LOCALIZED_TEXT_LINES",t[t.IRUT_RECOGNIZED_TEXT_LINES=33554432]="IRUT_RECOGNIZED_TEXT_LINES",t[t.IRUT_NORMALIZED_IMAGES=67108864]="IRUT_NORMALIZED_IMAGES",t[t.IRUT_SHORT_LINES=134217728]="IRUT_SHORT_LINES",t[t.IRUT_ALL=134217727]="IRUT_ALL"}(ae||(ae={}));let le=class t{constructor(){this.maxCvsSideLength=["iPhone","Android","HarmonyOS"].includes(ut.browserInfo.OS)?2048:4096,this._isa=null,this._dsImage=null,this._instanceID=void 0,this._bPauseScan=!0,this._bNeedOutputOriginalImage=!1,this._canvas=null,this._resultReceiverSet=new Set,this._isaStateListenerSet=new Set,this._resultFilterSet=new Set,this._intermediateResultReceiverSet=new Set,this._intermediateResultManager=null,this._bufferdItemsManager=null,this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1,this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._minImageCaptureInterval=0,this._averageProcessintTimeArray=[],this._averageFetchImageTimeArray=[],this._currentSettings=null,this._averageTime=999,this._compressRate=0,this._dynamsoft=!1,this.captureInParallel=!0,this.bDestroyed=!1,this._singleFrameModeCallbackBind=this._singleFrameModeCallback.bind(this),this._promiseStartScan=null}get disposed(){return this.bDestroyed}static async createInstance(){if(!ot.license)throw Error("Module `license` is not existed.");await ot.license.dynamsoft(),await ct(["cvr"]);const e=new t,i=new Zt;let r=$();return tt[r]=async t=>{var r;if(t.success)e._instanceID=t.instanceID,e._currentSettings=JSON.parse(t.outputSettings),se._version=`2.2.30(Worker: ${null===(r=st.cvr)||void 0===r?void 0:r.worker}, Wasm: ${t.version})`,0===ut.bSupportDce4Module&&(e._intermediateResultManager=e.getIntermediateResultManager(!0)),i.resolve(e);else{const e=Error(t.message);t.stack&&(e.stack=t.stack),i.reject(e)}},J.postMessage({type:"cvr_createInstance",id:r}),i}async _singleFrameModeCallback(t){this._isa.getCameraView().setScanLaserVisible(!0);for(let e of this._resultReceiverSet)this._bNeedOutputOriginalImage&&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 this._resultReceiverSet)t.isDce&&t.onCapturedResultReceived(i,{isDetectVerifyOpen:!1,isNormalizeVerifyOpen:!1,isBarcodeVerifyOpen:!1,isLabelVerifyOpen:!1});const r={originalImageHashId:i.originalImageHashId,originalImageTag:i.originalImageTag,errorCode:i.errorCode,errorString:i.errorString};for(let e of this._resultReceiverSet)if(e.onDecodedBarcodesReceived&&i.barcodeResultItems&&e.onDecodedBarcodesReceived(Object.assign(Object.assign({},r),{barcodeResultItems:i.barcodeResultItems})),e.onRecognizedTextLinesReceived&&i.textLineResultItems&&e.onRecognizedTextLinesReceived(Object.assign(Object.assign({},r),{textLineResultItems:i.textLineResultItems})),e.onDetectedQuadsReceived&&i.detectedQuadResultItems&&e.onDetectedQuadsReceived(Object.assign(Object.assign({},r),{detectedQuadResultItems:i.detectedQuadResultItems})),e.onNormalizedImagesReceived&&i.normalizedImageResultItems&&e.onNormalizedImagesReceived(Object.assign(Object.assign({},r),{normalizedImageResultItems:i.normalizedImageResultItems})),e.onParsedResultsReceived&&i.parsedResultItems&&e.onParsedResultsReceived(Object.assign(Object.assign({},r),{parsedResultItems:i.parsedResultItems})),e.onCapturedResultReceived&&!e.isDce){if(this._bNeedOutputOriginalImage){const e=i.items.findIndex((t=>1===t.type));-1!==e&&(i.items[e].imageData=t)}e.onCapturedResultReceived(i)}}setInput(t){if(this._checkIsDisposed(),t){if(this._isa=t,t.isCameraEnhancer){this._intermediateResultManager&&(this._isa._intermediateResultReceiver.isDce=!0,this._intermediateResultManager.addResultReceiver(this._isa._intermediateResultReceiver));const t=this._isa.getCameraView();if(t){const e=t._capturedResultReceiver;e.isDce=!0,this._resultReceiverSet.add(e)}}}else this._isa=null}getInput(){return this._isa}addImageSourceStateListener(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid ISA state listener.");t&&Object.keys(t)&&this._isaStateListenerSet.add(t)}removeImageSourceStateListener(t){return this._checkIsDisposed(),this._isaStateListenerSet.delete(t)}addResultReceiver(t){if(this._checkIsDisposed(),"object"!=typeof t)throw new Error("Invalid receiver.");t&&Object.keys(t).length&&(this._resultReceiverSet.add(t),this._setCrrRegistry())}removeResultReceiver(t){this._checkIsDisposed(),this._resultReceiverSet.delete(t),this._setCrrRegistry()}async _setCrrRegistry(){const t={onCapturedResultReceived:!1,onDecodedBarcodesReceived:!1,onRecognizedTextLinesReceived:!1,onDetectedQuadsReceived:!1,onNormalizedImagesReceived:!1,onParsedResultsReceived:!1};for(let e of this._resultReceiverSet)e.isDce||(t.onCapturedResultReceived=!!e.onCapturedResultReceived,t.onDecodedBarcodesReceived=!!e.onDecodedBarcodesReceived,t.onRecognizedTextLinesReceived=!!e.onRecognizedTextLinesReceived,t.onDetectedQuadsReceived=!!e.onDetectedQuadsReceived,t.onNormalizedImagesReceived=!!e.onNormalizedImagesReceived,t.onParsedResultsReceived=!!e.onParsedResultsReceived);const e=new Zt;let i=$();return tt[i]=async t=>{if(t.success)e.resolve();else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject()}},J.postMessage({type:"cvr_setCrrRegistry",id:i,instanceID:this._instanceID,body:{receiver:JSON.stringify(t)}}),e}async addResultFilter(t){if(this._checkIsDisposed(),"object"!=typeof t)return console.warn("Invalid filter.");if(t&&Object.keys(t)){this._resultFilterSet.add(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}}async removeResultFilter(t){this._checkIsDisposed(),this._resultFilterSet.delete(t),this._handleFilterSwitch();for(let t of this._resultFilterSet)await this._enableResultCrossVerification(t.verificationEnabled),await this._enableResultDeduplication(t.duplicateFilterEnabled),await this._setDuplicateForgetTime(t.duplicateForgetTime)}_handleFilterSwitch(){this._bOpenBarcodeVerify=!1,this._bOpenLabelVerify=!1,this._bOpenDetectVerify=!1,this._bOpenNormalizeVerify=!1;for(let t of this._resultFilterSet)t.isResultCrossVerificationEnabled(dt.CRIT_BARCODE)&&(this._bOpenBarcodeVerify=!0),t.isResultCrossVerificationEnabled(dt.CRIT_TEXT_LINE)&&(this._bOpenLabelVerify=!0),t.isResultCrossVerificationEnabled(dt.CRIT_DETECTED_QUAD)&&(this._bOpenDetectVerify=!0),t.isResultCrossVerificationEnabled(dt.CRIT_NORMALIZED_IMAGE)&&(this._bOpenNormalizeVerify=!0)}async startCapturing(t){var e,i;if(this._checkIsDisposed(),!this._bPauseScan)return;if(!this._isa)throw new Error("'ImageSourceAdapter' is not set. call 'setInput' before 'startCapturing'");t||(t=this._currentSettings.CaptureVisionTemplates[0].Name);const s=await this.containsTask(t);return await ct(s),s.includes("dlr")&&!(null===(e=ot.dlr)||void 0===e?void 0:e.bLoadConfusableCharsData)&&await(null===(i=ot.dlr)||void 0===i?void 0:i.loadRecognitionData("ConfusableChars",at.dlr)),this._isa.isCameraEnhancer&&(s.includes("ddn")?this._isa.setPixelFormat(n.IPF_ABGR_8888):this._isa.setPixelFormat(n.IPF_GRAYSCALED)),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode?(this._templateName=t,void this._isa.on("singleFrameAcquired",this._singleFrameModeCallbackBind)):(this._isa.getColourChannelUsageType()===r.CCUT_AUTO&&this._isa.setColourChannelUsageType(s.includes("ddn")?r.CCUT_FULL_CHANNEL:r.CCUT_Y_CHANNEL_ONLY),this._promiseStartScan&&this._promiseStartScan.isPending?this._promiseStartScan:(this._promiseStartScan=new Zt(((e,i)=>{if(this.disposed)return;let r=$();tt[r]=async r=>{if(this._promiseStartScan&&!this._promiseStartScan.isFulfilled){if(!r.success){let t=new Error(r.message);return t.stack=r.stack+"\n"+t.stack,i(t)}for(let t of this._resultFilterSet)await this.addResultFilter(t);this._bPauseScan=!1,this._bNeedOutputOriginalImage=r.bNeedOutputOriginalImage,this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((async()=>{-1!==this._minImageCaptureInterval&&this._isa.startFetching(),this._loopReadVideo(t),e()}),0),this._isa.isCameraEnhancer&&this._isa.getCameraView().setScanLaserVisible(!0)}},J.postMessage({type:"cvr_startCapturing",id:r,instanceID:this._instanceID,body:{templateName:t}})})),await this._promiseStartScan))}stopCapturing(){this._checkIsDisposed(),this._isa&&(this._isa.isCameraEnhancer&&(this._isa.getCameraView().setScanLaserVisible(!1),void 0!==this._isa.singleFrameMode&&"disabled"!==this._isa.singleFrameMode)?this._isa.off("singleFrameAcquired",this._singleFrameModeCallbackBind):(this._isa.stopFetching(),this._clearVerifyList(),this._averageProcessintTimeArray=[],this._averageTime=999,this._bPauseScan=!0,this._promiseStartScan=null,this._isa.setColourChannelUsageType(r.CCUT_AUTO)))}async _clearVerifyList(){let t=$();const e=new Zt;return tt[t]=async t=>{if(t.success)return e.resolve();{let i=new Error(t.message);return i.stack=t.stack+"\n"+i.stack,e.reject(i)}},J.postMessage({type:"cvr_clearVerifyList",id:t,instanceID:this._instanceID}),e}async _getIntermediateResult(){this._checkIsDisposed();let t=$();const e=new Zt;return tt[t]=async t=>{if(t.success)e.resolve(t.result);else{let i=new Error(t.message);i.stack=t.stack+"\n"+i.stack,e.reject(i)}},J.postMessage({type:"cvr_getIntermediateResult",id:t,instanceID:this._instanceID}),e}async containsTask(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(JSON.parse(t.tasks));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_containsTask",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async _loopReadVideo(e){if(this._dynamsoft=!0,this.disposed||this._bPauseScan)return;if(this._isa.isBufferEmpty())if(this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(oe.ISS_BUFFER_EMPTY);else if(!this._isa.hasNextImageToFetch())for(let t of this._isaStateListenerSet)t.onImageSourceStateReceived&&t.onImageSourceStateReceived(oe.ISS_EXHAUSTED);if(-1===this._minImageCaptureInterval||this._isa.isBufferEmpty())try{this._isa.isBufferEmpty()&&t._onLog&&t._onLog("buffer is empty so fetch image"),t._onLog&&t._onLog(`DCE: start fetching a frame: ${Date.now()}`),this._dsImage=this._isa.fetchImage(),t._onLog&&t._onLog(`DCE: finish fetching a frame: ${Date.now()}`),this._isa.setImageFetchInterval(this._averageTime)}catch(i){return void this._reRunCurrnetFunc(e)}else if(this._isa.setImageFetchInterval(this._averageTime-(this._dsImage&&this._dsImage.tag?this._dsImage.tag.timeSpent:0)),this._dsImage=this._isa.getImage(),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 this._resultReceiverSet)this._bNeedOutputOriginalImage&&t.onOriginalImageResultReceived&&t.onOriginalImageResultReceived({imageData:this._dsImage});const i=Date.now();this._captureDsimage(this._dsImage,e).then((async r=>{if(t._onLog&&t._onLog("no js handle time: "+(Date.now()-i)),this._bPauseScan)return void this._reRunCurrnetFunc(e);r.originalImageTag=this._dsImage.tag?this._dsImage.tag:null;for(let e of this._resultReceiverSet)if(e.isDce){const i=Date.now();if(e.onCapturedResultReceived(r,{isDetectVerifyOpen:this._bOpenDetectVerify,isNormalizeVerifyOpen:this._bOpenNormalizeVerify,isBarcodeVerifyOpen:this._bOpenBarcodeVerify,isLabelVerifyOpen:this._bOpenLabelVerify}),t._onLog){const e=Date.now()-i;e>10&&t._onLog(`draw result time: ${e}`)}}const n={originalImageHashId:r.originalImageHashId,originalImageTag:r.originalImageTag,errorCode:r.errorCode,errorString:r.errorString};for(let t of this._resultReceiverSet)t.onDecodedBarcodesReceived&&r.barcodeResultItems&&t.onDecodedBarcodesReceived(Object.assign(Object.assign({},n),{barcodeResultItems:r.barcodeResultItems.filter((t=>!t.isFilter))})),t.onRecognizedTextLinesReceived&&r.textLineResultItems&&t.onRecognizedTextLinesReceived(Object.assign(Object.assign({},n),{textLineResultItems:r.textLineResultItems.filter((t=>!t.isFilter))})),t.onDetectedQuadsReceived&&r.detectedQuadResultItems&&t.onDetectedQuadsReceived(Object.assign(Object.assign({},n),{detectedQuadResultItems:r.detectedQuadResultItems.filter((t=>!t.isFilter))})),t.onNormalizedImagesReceived&&r.normalizedImageResultItems&&t.onNormalizedImagesReceived(Object.assign(Object.assign({},n),{normalizedImageResultItems:r.normalizedImageResultItems.filter((t=>!t.isFilter))})),t.onParsedResultsReceived&&r.parsedResultItems&&t.onParsedResultsReceived(Object.assign(Object.assign({},n),{parsedResultItems:r.parsedResultItems.filter((t=>!t.isFilter))})),t.onCapturedResultReceived&&!t.isDce&&(r.items=r.items.filter((t=>!t.isFilter)),r.barcodeResultItems&&(r.barcodeResultItems=r.barcodeResultItems.filter((t=>!t.isFilter))),r.textLineResultItems&&(r.textLineResultItems=r.textLineResultItems.filter((t=>!t.isFilter))),r.detectedQuadResultItems&&(r.detectedQuadResultItems=r.detectedQuadResultItems.filter((t=>!t.isFilter))),r.normalizedImageResultItems&&(r.normalizedImageResultItems=r.normalizedImageResultItems.filter((t=>!t.isFilter))),r.parsedResultItems&&(r.parsedResultItems=r.parsedResultItems.filter((t=>!t.isFilter))),t.onCapturedResultReceived(r));const s=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()-s;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=>{this._isa.stopFetching(),this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._isa.startFetching(),this._loopReadVideo(e)}),Math.max(this._minImageCaptureInterval,1e3)),"platform error"!==t.message&&setTimeout((()=>{throw t}),0)}))}_reRunCurrnetFunc(t){this._loopReadVideoTimeoutId&&clearTimeout(this._loopReadVideoTimeoutId),this._loopReadVideoTimeoutId=setTimeout((()=>{this._loopReadVideo(t)}),0)}async capture(t,e){var i,r;this._checkIsDisposed(),e||(e=this._currentSettings.CaptureVisionTemplates[0].Name);const n=await this.containsTask(e);let s;if(await ct(n),n.includes("dlr")&&!(null===(i=ot.dlr)||void 0===i?void 0:i.bLoadConfusableCharsData)&&await(null===(r=ot.dlr)||void 0===r?void 0:r.loadRecognitionData("ConfusableChars",at.dlr)),this._dynamsoft=!1,d(t))s=await this._captureDsimage(t,e);else if("string"==typeof t)s="data:image/"==t.substring(0,11)?await this._captureBase64(t,e):await this._captureUrl(t,e);else if(t instanceof Blob)s=await this._captureBlob(t,e);else if(t instanceof HTMLImageElement)s=await this._captureImage(t,e);else if(t instanceof HTMLCanvasElement)s=await this._captureCanvas(t,e);else{if(!(t instanceof HTMLVideoElement))throw new TypeError("'capture(imageOrFile, templateName)': Type of 'imageOrFile' should be 'DSImageData', 'Url', 'Base64', 'Blob', 'HTMLImageElement', 'HTMLCanvasElement', 'HTMLVideoElement'.");s=await this._captureVideo(t,e)}return s}async _captureDsimage(t,e){return await this._captureInWorker(t,e)}async _captureUrl(t,e){let i=await w(t,"blob");return await this._captureBlob(i,e)}async _captureBase64(t,e){t=t.substring(t.indexOf(",")+1);let i=atob(t),r=i.length,n=new Uint8Array(r);for(;r--;)n[r]=i.charCodeAt(r);return await this._captureBlob(new Blob([n]),e)}async _captureBlob(t,e){let i=null,r=null;if("undefined"!=typeof createImageBitmap)try{i=await createImageBitmap(t)}catch(t){}i||(r=await async function(t){return await new Promise(((e,i)=>{let r=URL.createObjectURL(t),n=new Image;n.src=r,n.onload=()=>{URL.revokeObjectURL(n.dbrObjUrl),e(n)},n.onerror=t=>{i(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}}))}(t));let n=await this._captureImage(i||r,e);return i&&i.close(),n}async _captureImage(t,e){let i,r,n=t instanceof HTMLImageElement?t.naturalWidth:t.width,s=t instanceof HTMLImageElement?t.naturalHeight:t.height,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),t.dbrObjUrl&&URL.revokeObjectURL(t.dbrObjUrl),await this._captureCanvas(a,e)}async _captureCanvas(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";if([t.width,t.height].includes(0))throw Error("The width or height of the 'canvas' is 0.");const i=t.ctx2d||t.getContext("2d",{willReadFrequently:!0}),r={bytes:Uint8Array.from(i.getImageData(0,0,t.width,t.height).data),width:t.width,height:t.height,stride:4*t.width,format:10};return await this._captureInWorker(r,e)}async _captureVideo(t,e){if(t.crossOrigin&&"anonymous"!=t.crossOrigin)throw"cors";let i,r,n=t.videoWidth,s=t.videoHeight,o=Math.max(n,s);o>this.maxCvsSideLength?(this._compressRate=this.maxCvsSideLength/o,i=Math.round(n*this._compressRate),r=Math.round(s*this._compressRate)):(i=n,r=s),this._canvas||(this._canvas=document.createElement("canvas"));const a=this._canvas;return a.width===i&&a.height===r||(a.width=i,a.height=r),a.ctx2d||(a.ctx2d=a.getContext("2d",{willReadFrequently:!0})),a.ctx2d.drawImage(t,0,0,n,s,0,0,i,r),await this._captureCanvas(a,e)}async _captureInWorker(e,i){const{bytes:r,width:n,height:s,stride:o,format:a}=e;let h=$();const l=new Zt;return tt[h]=async i=>{var r,n;if(!i.success){let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,l.reject(t)}{const s=Date.now();t._onLog&&(t._onLog(`get result time from worker: ${s}`),t._onLog("worker to main time consume: "+(s-i.workerReturnMsgTime)));try{const t=i.captureResult;e.bytes=i.bytes;for(let i of t.items)0!==this._compressRate&&he(i,this._compressRate),i.type===dt.CRIT_ORIGINAL_IMAGE?i.imageData=e:i.type===dt.CRIT_NORMALIZED_IMAGE?null===(r=ot.ddn)||void 0===r||r.handleNormalizedImageResultItem(i):i.type===dt.CRIT_PARSED_RESULT&&(null===(n=ot.dcp)||void 0===n||n.handleParsedResultItem(i));if(this._dynamsoft)for(let e of this._resultFilterSet)e.onDecodedBarcodesReceived(t.items),e.onRecognizedTextLinesReceived(t.items),e.onDetectedQuadsReceived(t.items),e.onNormalizedImagesReceived(t.items);const s=function(t){const e={barcodeResultItems:[],textLineResultItems:[],detectedQuadResultItems:[],normalizedImageResultItems:[],parsedResultItems:[]};return t.items.forEach((t=>{t.type===dt.CRIT_BARCODE?e.barcodeResultItems.push(t):t.type===dt.CRIT_TEXT_LINE?e.textLineResultItems.push(t):t.type===dt.CRIT_DETECTED_QUAD?e.detectedQuadResultItems.push(t):t.type===dt.CRIT_NORMALIZED_IMAGE?e.normalizedImageResultItems.push(t):t.type===dt.CRIT_PARSED_RESULT&&e.parsedResultItems.push(t)})),e}(t);if(s.barcodeResultItems.length&&(t.barcodeResultItems=s.barcodeResultItems),s.textLineResultItems.length&&(t.textLineResultItems=s.textLineResultItems),s.detectedQuadResultItems.length&&(t.detectedQuadResultItems=s.detectedQuadResultItems),s.normalizedImageResultItems.length&&(t.normalizedImageResultItems=s.normalizedImageResultItems),s.parsedResultItems.length&&(t.parsedResultItems=s.parsedResultItems),!this._bPauseScan||!this._dynamsoft){const i=t.intermediateResult;if(i){let t=0;for(let r of this._intermediateResultReceiverSet){t++;for(let n of i){if("onTaskResultsReceived"===n.info.callbackName){for(let t of n.intermediateResultUnits)t.originalImageTag=e.tag?e.tag:null;r[n.info.callbackName]&&r[n.info.callbackName]({intermediateResultUnits:n.intermediateResultUnits},n.info)}else r[n.info.callbackName]&&r[n.info.callbackName](n.result,n.info);t===this._intermediateResultReceiverSet.size&&delete n.info.callbackName}}}t&&t.intermediateResult&&delete t.intermediateResult}return this._compressRate=0,l.resolve(t)}catch(i){return l.reject(i)}}},t._onLog&&t._onLog(`send buffer to worker: ${Date.now()}`),J.postMessage({type:"cvr_capture",id:h,instanceID:this._instanceID,body:{bytes:r,width:n,height:s,stride:o,format:a,templateName:i||"",dynamsoft:this._dynamsoft}},[r.buffer]),l}async initSettings(t){return this._checkIsDisposed(),t&&["string","object"].includes(typeof t)?("string"==typeof t?t.startsWith("{")?this._currentSettings=JSON.parse(t):t=await w(t,"text"):"object"==typeof t&&(this._currentSettings=t,t=JSON.stringify(t)),await new Promise(((e,i)=>{let r=$();tt[r]=async r=>{if(r.success){const n=JSON.parse(r.response);if(0!==n.exception){let t=new Error(n.description?n.description:"Init Settings Failed.");return t.errorCode=n.exception,i(t)}let s=[],o=JSON.parse(t).CaptureVisionTemplates;for(let t=0;t{let r=$();tt[r]=async t=>{if(t.success){const r=JSON.parse(t.settings);if(0!==r.errorCode){let t=new Error(r.errorString);return t.errorCode=r.errorCode,i(t)}return delete r.errorCode,delete r.errorString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_outputSettings",id:r,instanceID:this._instanceID,body:{templateName:t||"*"}})}))}async outputSettingsToFile(t,e,i){const r=await this.outputSettings(t),n=new Blob([JSON.stringify(r,null,2,(function(t,e){return e instanceof Array?JSON.stringify(e):e}),2)],{type:"application/json"});if(i){const t=document.createElement("a");t.href=URL.createObjectURL(n),e.endsWith(".json")&&(e=e.replace(".json","")),t.download=`${e}.json`,t.onclick=()=>{setTimeout((()=>{URL.revokeObjectURL(t.href)}),500)},t.click()}return n}async getSimplifiedSettings(t){this._checkIsDisposed(),t||(t=this._currentSettings.CaptureVisionTemplates[0].Name);const e=await this.containsTask(t);return await ct(e),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success){const r=JSON.parse(t.settings,((t,e)=>T&&"barcodeFormatIds"===t?BigInt(e):e));if(r.minImageCaptureInterval=this._minImageCaptureInterval,0!==r.code){let t=new Error(r.codeString);return t.errorCode=r.errorCode,i(t)}return delete r.code,delete r.codeString,e(r)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_getSimplifiedSettings",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async updateSettings(t,e){this._checkIsDisposed();const i=await this.containsTask(t);return await ct(i),await new Promise(((i,r)=>{let n=$();tt[n]=async t=>{if(t.success){const n=JSON.parse(t.response);if(e.minImageCaptureInterval&&e.minImageCaptureInterval>=-1&&(this._minImageCaptureInterval=e.minImageCaptureInterval),this._bNeedOutputOriginalImage=t.bNeedOutputOriginalImage,0!==n.exception){let t=new Error(n.description?n.description:"Update Settings Failed.");return t.errorCode=n.exception,r(t)}return this._currentSettings=await this.outputSettings("*"),i(n)}{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,r(e)}},J.postMessage({type:"cvr_updateSettings",id:n,instanceID:this._instanceID,body:{settings:e,templateName:t}})}))}async resetSettings(){return this._checkIsDisposed(),await new Promise(((t,e)=>{let i=$();tt[i]=async i=>{if(i.success){const r=JSON.parse(i.response);if(0!==r.exception){let t=new Error(r.description?r.description:"Reset Settings Failed.");return t.errorCode=r.exception,e(t)}return this._currentSettings=await this.outputSettings("*"),t(r)}{let t=new Error(i.message);return t.stack=i.stack+"\n"+t.stack,e(t)}},J.postMessage({type:"cvr_resetSettings",id:i,instanceID:this._instanceID})}))}getBufferedItemsManager(){return this._bufferdItemsManager||(this._bufferdItemsManager=new Kt(this)),this._bufferdItemsManager}getIntermediateResultManager(t){if(this._checkIsDisposed(),!t&&0!==ut.bSupportIRTModule)throw new Error("The current license does not support the use of intermediate results.");return this._intermediateResultManager||(this._intermediateResultManager=new Qt(this)),this._intermediateResultManager}contains(t,e){return function(t,e){let i=e.x,r=e.y,n=t[0].x,s=t[0].y,o=t[1].x,a=t[1].y,h=t[2].x,l=t[2].y,c=t[3].x,u=t[3].y,d=p(i,r,n,s,o,a),f=p(i,r,o,a,h,l),g=p(i,r,h,l,c,u),m=p(i,r,c,u,n,s);function p(t,e,i,r,n,s){return(t-i)*(s-r)-(e-r)*(n-i)}return d>=0&&f>=0&&g>=0&&m>=0||d<=0&&f<=0&&g<=0&&m<=0}(t,e)}async parseRequiredResources(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(JSON.parse(t.resources));{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_parseRequiredResources",id:r,instanceID:this._instanceID,body:{templateName:t}})}))}async dispose(){this._checkIsDisposed(),this._promiseStartScan&&this.stopCapturing(),this._isa=null,this._resultReceiverSet.clear(),this._isaStateListenerSet.clear(),this._resultFilterSet.clear(),this.bDestroyed=!0;let t=$();tt[t]=t=>{if(!t.success){let e=new Error(t.message);throw e.stack=t.stack+"\n"+e.stack,e}},J.postMessage({type:"cvr_dispose",id:t,instanceID:this._instanceID})}async _enableResultCrossVerification(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_enableResultCrossVerification",id:r,instanceID:this._instanceID,body:{verificationEnabled:t}})}))}async _enableResultDeduplication(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_enableResultDeduplication",id:r,instanceID:this._instanceID,body:{duplicateFilterEnabled:t}})}))}async _setDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(t.result);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_setDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{duplicateForgetTime:t}})}))}async _getDuplicateForgetTime(t){return this._checkIsDisposed(),await new Promise(((e,i)=>{let r=$();tt[r]=async t=>{if(t.success)return e(t.time);{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,i(e)}},J.postMessage({type:"cvr_getDuplicateForgetTime",id:r,instanceID:this._instanceID,body:{type:t}})}))}async _setThresholdValue(t,e,i){return await ct("ddn"),await new Promise(((r,n)=>{let s=$();tt[s]=async t=>{if(t.success)return r();{let e=new Error(t.message);return e.stack=t.stack+"\n"+e.stack,n(e)}},J.postMessage({type:"ddn_setThresholdValue",id:s,instanceID:this._instanceID,body:{threshold:t,leftLimit:e,rightLimit:i}})}))}_checkIsDisposed(){if(this.disposed)throw new Error('"CaptureVisionRouter" instance has been disposed')}},ce=class{constructor(){this.onCapturedResultReceived=null,this.onOriginalImageResultReceived=null}},ue=class{constructor(){this._observedResultUnitTypes=wt.IRUT_ALL,this._observedTaskMap=new Map,this._parameters={setObservedResultUnitTypes:t=>{this._observedResultUnitTypes=t},getObservedResultUnitTypes:()=>this._observedResultUnitTypes,isResultUnitTypeObserved:t=>!!(t&this._observedResultUnitTypes),addObservedTask:t=>{this._observedTaskMap.set(t,!0)},removeObservedTask:t=>{this._observedTaskMap.set(t,!1)},isTaskObserved:t=>0===this._observedTaskMap.size||!!this._observedTaskMap.get(t)},this.onTaskResultsReceived=null,this.onPredetectedRegionsReceived=null,this.onColourImageUnitReceived=null,this.onScaledDownColourImageUnitReceived=null,this.onGrayscaleImageUnitReceived=null,this.onTransformedGrayscaleImageUnitReceived=null,this.onEnhancedGrayscaleImageUnitReceived=null,this.onBinaryImageUnitReceived=null,this.onTextureDetectionResultUnitReceived=null,this.onTextureRemovedGrayscaleImageUnitReceived=null,this.onTextureRemovedBinaryImageUnitReceived=null,this.onContoursUnitReceived=null,this.onLineSegmentsUnitReceived=null,this.onTextZonesUnitReceived=null,this.onTextRemovedBinaryImageUnitReceived=null,this.onShortLinesUnitReceived=null}getObservationParameters(){return this._parameters}};const de="undefined"==typeof self,fe=(()=>{if(!de&&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"./"})();null==at.dce&&(at.dce=fe),lt.dce={wasm:!1,js:!1},ot.dce={};let ge,me,pe,_e,ve,ye=class{static getVersion(){return"4.0.3"}};function we(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function Ee(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}"function"==typeof SuppressedError&&SuppressedError,"undefined"!=typeof navigator&&(ge=navigator,me=ge.userAgent,pe=ge.platform,_e=ge.mediaDevices),function(){if(!de){const t={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:ge.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:pe,search:"Win"},Mac:{str:pe},Linux:{str:pe}};let i="unknownBrowser",r=0,n="unknownOS";for(let e in t){const n=t[e]||{};let s=n.str||me,o=n.search||e,a=n.verStr||me,h=n.verSearch||e;if(h instanceof Array||(h=[h]),-1!=s.indexOf(o)){i=e;for(let t of h){let e=a.indexOf(t);if(-1!=e){r=parseFloat(a.substring(e+t.length+1));break}}break}}for(let t in e){const i=e[t]||{};let r=i.str||me,s=i.search||t;if(-1!=r.indexOf(s)){n=t;break}}"Linux"==n&&-1!=me.indexOf("Windows NT")&&(n="HarmonyOS"),ve={browser:i,version:r,OS:n}}de&&(ve={browser:"ssr",version:0,OS:"ssr"})}();const Ce="undefined"!=typeof WebAssembly&&me&&!(/Safari/.test(me)&&!/Chrome/.test(me)&&/\(.+\s11_2_([2-6]).*\)/.test(me)),Te=!("undefined"==typeof Worker),be=!(!_e||!_e.getUserMedia),Se=async()=>{let t=!1;if(be)try{(await _e.getUserMedia({video:!0})).getTracks().forEach((t=>{t.stop()})),t=!0}catch(t){}return t};"Chrome"===ve.browser&&ve.version>66||"Safari"===ve.browser&&ve.version>13||"OPR"===ve.browser&&ve.version>43||"Edge"===ve.browser&&ve.version;var Ie={653:(t,e,i)=>{var r,n,s,o,a,h,l,c,u,d,f,g,m,p,_,v,y,w,E,C,T,b=b||{version:"5.2.1"};if(e.fabric=b,"undefined"!=typeof document&&"undefined"!=typeof window)document instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document)?b.document=document:b.document=document.implementation.createHTMLDocument(""),b.window=window;else{var S=new(i(192).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;b.document=S.document,b.jsdomImplForWrapper=i(898).implForWrapper,b.nodeCanvas=i(245).Canvas,b.window=S,DOMParser=b.window.DOMParser}function I(t,e){var i=t.canvas,r=e.targetCanvas,n=r.getContext("2d");n.translate(0,r.height),n.scale(1,-1);var s=i.height-r.height;n.drawImage(i,0,s,r.width,r.height,0,0,r.width,r.height)}function x(t,e){var i=e.targetCanvas.getContext("2d"),r=e.destinationWidth,n=e.destinationHeight,s=r*n*4,o=new Uint8Array(this.imageBuffer,0,s),a=new Uint8ClampedArray(this.imageBuffer,0,s);t.readPixels(0,0,r,n,t.RGBA,t.UNSIGNED_BYTE,o);var h=new ImageData(a,r,n);i.putImageData(h,0,0)}b.isTouchSupported="ontouchstart"in b.window||"ontouchstart"in b.document||b.window&&b.window.navigator&&b.window.navigator.maxTouchPoints>0,b.isLikelyNode="undefined"!=typeof Buffer&&"undefined"==typeof window,b.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],b.DPI=96,b.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",b.commaWsp="(?:\\s+,?\\s*|,\\s*)",b.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,b.reNonWord=/[ \n\.,;!\?\-]/,b.fontPaths={},b.iMatrix=[1,0,0,1,0,0],b.svgNS="http://www.w3.org/2000/svg",b.perfLimitSizeTotal=2097152,b.maxCacheSideLimit=4096,b.minCacheSideLimit=256,b.charWidthsCache={},b.textureSize=2048,b.disableStyleCopyPaste=!1,b.enableGLFiltering=!0,b.devicePixelRatio=b.window.devicePixelRatio||b.window.webkitDevicePixelRatio||b.window.mozDevicePixelRatio||1,b.browserShadowBlurConstant=1,b.arcToSegmentsCache={},b.boundsOfCurveCache={},b.cachesBoundsOfCurve=!0,b.forceGLPutImageData=!1,b.initFilterBackend=function(){return b.enableGLFiltering&&b.isWebglSupported&&b.isWebglSupported(b.textureSize)?(console.log("max texture size: "+b.maxTextureSize),new b.WebglFilterBackend({tileSize:b.textureSize})):b.Canvas2dFilterBackend?new b.Canvas2dFilterBackend:void 0},"undefined"!=typeof document&&"undefined"!=typeof window&&(window.fabric=b),function(){function t(t,e){if(this.__eventListeners[t]){var i=this.__eventListeners[t];e?i[i.indexOf(e)]=!1:b.util.array.fill(i,!1)}}function e(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);this.on(t,i)}b.Observable={fire:function(t,e){if(!this.__eventListeners)return this;var i=this.__eventListeners[t];if(!i)return this;for(var r=0,n=i.length;r-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))},complexity:function(){return this._objects.reduce((function(t,e){return t+(e.complexity?e.complexity():0)}),0)}},b.CommonMethods={_setOptions:function(t){for(var e in t)this.set(e,t[e])},_initGradient:function(t,e){!t||!t.colorStops||t instanceof b.Gradient||this.set(e,new b.Gradient(t))},_initPattern:function(t,e,i){!t||!t.source||t instanceof b.Pattern?i&&i():this.set(e,new b.Pattern(t,i))},_setObject:function(t){for(var e in t)this._set(e,t[e])},set:function(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this},_set:function(t,e){this[t]=e},toggle:function(t){var e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this},get:function(t){return this[t]}},r=e,n=Math.sqrt,s=Math.atan2,o=Math.pow,a=Math.PI/180,h=Math.PI/2,b.util={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/h){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/h){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*a},radiansToDegrees:function(t){return t/a},rotatePoint:function(t,e,i){var r=new b.Point(t.x-e.x,t.y-e.y),n=b.util.rotateVector(r,i);return new b.Point(n.x,n.y).addEquals(e)},rotateVector:function(t,e){var i=b.util.sin(e),r=b.util.cos(e);return{x:t.x*r-t.y*i,y:t.x*i+t.y*r}},createVector:function(t,e){return new b.Point(e.x-t.x,e.y-t.y)},calcAngleBetweenVectors:function(t,e){return Math.acos((t.x*e.x+t.y*e.y)/(Math.hypot(t.x,t.y)*Math.hypot(e.x,e.y)))},getHatVector:function(t){return new b.Point(t.x,t.y).multiply(1/Math.hypot(t.x,t.y))},getBisector:function(t,e,i){var r=b.util.createVector(t,e),n=b.util.createVector(t,i),s=b.util.calcAngleBetweenVectors(r,n),o=s*(0===b.util.calcAngleBetweenVectors(b.util.rotateVector(r,s),n)?1:-1)/2;return{vector:b.util.getHatVector(b.util.rotateVector(r,o)),angle:s}},projectStrokeOnPoints:function(t,e,i){var r=[],n=e.strokeWidth/2,s=e.strokeUniform?new b.Point(1/e.scaleX,1/e.scaleY):new b.Point(1,1),o=function(t){var e=n/Math.hypot(t.x,t.y);return new b.Point(t.x*e*s.x,t.y*e*s.y)};return t.length<=1||t.forEach((function(a,h){var l,c,u=new b.Point(a.x,a.y);0===h?(c=t[h+1],l=i?o(b.util.createVector(c,u)).addEquals(u):t[t.length-1]):h===t.length-1?(l=t[h-1],c=i?o(b.util.createVector(l,u)).addEquals(u):t[0]):(l=t[h-1],c=t[h+1]);var d,f,g=b.util.getBisector(u,l,c),m=g.vector,p=g.angle;if("miter"===e.strokeLineJoin&&(d=-n/Math.sin(p/2),f=new b.Point(m.x*d*s.x,m.y*d*s.y),Math.hypot(f.x,f.y)/n<=e.strokeMiterLimit))return r.push(u.add(f)),void r.push(u.subtract(f));d=-n*Math.SQRT2,f=new b.Point(m.x*d*s.x,m.y*d*s.y),r.push(u.add(f)),r.push(u.subtract(f))})),r},transformPoint:function(t,e,i){return i?new b.Point(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new b.Point(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var i=0;i0&&(e>r?e-=r:e=0,i>r?i-=r:i=0);var n,s=!0,o=t.getImageData(e,i,2*r||1,2*r||1),a=o.data.length;for(n=3;n=n?s-n:2*Math.PI-(n-s)}function s(t,e,i){for(var s=i[1],o=i[2],a=i[3],h=i[4],l=i[5],c=function(t,e,i,s,o,a,h){var l=Math.PI,c=h*l/180,u=b.util.sin(c),d=b.util.cos(c),f=0,g=0,m=-d*t*.5-u*e*.5,p=-d*e*.5+u*t*.5,_=(i=Math.abs(i))*i,v=(s=Math.abs(s))*s,y=p*p,w=m*m,E=_*v-_*y-v*w,C=0;if(E<0){var T=Math.sqrt(1-E/(_*v));i*=T,s*=T}else C=(o===a?-1:1)*Math.sqrt(E/(_*y+v*w));var S=C*i*p/s,I=-C*s*m/i,x=d*S-u*I+.5*t,A=u*S+d*I+.5*e,R=n(1,0,(m-S)/i,(p-I)/s),O=n((m-S)/i,(p-I)/s,(-m-S)/i,(-p-I)/s);0===a&&O>0?O-=2*l:1===a&&O<0&&(O+=2*l);for(var D=Math.ceil(Math.abs(O/l*2)),L=[],M=O/D,F=8/3*Math.sin(M/4)*Math.sin(M/4)/Math.sin(M/2),P=R+M,k=0;kC)for(var S=1,I=m.length;S2;for(e=e||0,l&&(a=t[2].xt[i-2].x?1:n.x===t[i-2].x?0:-1,h=n.y>t[i-2].y?1:n.y===t[i-2].y?0:-1),r.push(["L",n.x+a*e,n.y+h*e]),r},b.util.getPathSegmentsInfo=d,b.util.getBoundsOfCurve=function(e,i,r,n,s,o,a,h){var l;if(b.cachesBoundsOfCurve&&(l=t.call(arguments),b.boundsOfCurveCache[l]))return b.boundsOfCurveCache[l];var c,u,d,f,g,m,p,_,v=Math.sqrt,y=Math.min,w=Math.max,E=Math.abs,C=[],T=[[],[]];u=6*e-12*r+6*s,c=-3*e+9*r-9*s+3*a,d=3*r-3*e;for(var S=0;S<2;++S)if(S>0&&(u=6*i-12*n+6*o,c=-3*i+9*n-9*o+3*h,d=3*n-3*i),E(c)<1e-12){if(E(u)<1e-12)continue;0<(f=-d/u)&&f<1&&C.push(f)}else(p=u*u-4*d*c)<0||(0<(g=(-u+(_=v(p)))/(2*c))&&g<1&&C.push(g),0<(m=(-u-_)/(2*c))&&m<1&&C.push(m));for(var I,x,A,R=C.length,O=R;R--;)I=(A=1-(f=C[R]))*A*A*e+3*A*A*f*r+3*A*f*f*s+f*f*f*a,T[0][R]=I,x=A*A*A*i+3*A*A*f*n+3*A*f*f*o+f*f*f*h,T[1][R]=x;T[0][O]=e,T[1][O]=i,T[0][O+1]=a,T[1][O+1]=h;var D=[{x:y.apply(null,T[0]),y:y.apply(null,T[1])},{x:w.apply(null,T[0]),y:w.apply(null,T[1])}];return b.cachesBoundsOfCurve&&(b.boundsOfCurveCache[l]=D),D},b.util.getPointOnPath=function(t,e,i){i||(i=d(t));for(var r=0;e-i[r].length>0&&r1e-4;)i=h(s),n=s,(r=o(l.x,l.y,i.x,i.y))+a>e?(s-=c,c/=2):(l=i,s+=c,a+=r);return i.angle=u(n),i}(s,e)}},b.util.transformPath=function(t,e,i){return i&&(e=b.util.multiplyTransformMatrices(e,[1,0,0,1,-i.x,-i.y])),t.map((function(t){for(var i=t.slice(0),r={},n=1;n=e}))}}}(),function(){function t(e,i,r){if(r)if(!b.isLikelyNode&&i instanceof Element)e=i;else if(i instanceof Array){e=[];for(var n=0,s=i.length;n57343)return t.charAt(e);if(55296<=i&&i<=56319){if(t.length<=e+1)throw"High surrogate without following low surrogate";var r=t.charCodeAt(e+1);if(56320>r||r>57343)throw"High surrogate without following low surrogate";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw"Low surrogate without preceding high surrogate";var n=t.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}b.util.string={camelize:function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")},graphemeSplit:function(e){var i,r=0,n=[];for(r=0;r-1?t.prototype[n]=function(t){return function(){var i=this.constructor.superclass;this.constructor.superclass=r;var n=e[t].apply(this,arguments);if(this.constructor.superclass=i,"initialize"!==t)return n}}(n):t.prototype[n]=e[n],i&&(e.toString!==Object.prototype.toString&&(t.prototype.toString=e.toString),e.valueOf!==Object.prototype.valueOf&&(t.prototype.valueOf=e.valueOf))};function n(){}function s(e){for(var i=null,r=this;r.constructor.superclass;){var n=r.constructor.superclass.prototype[e];if(r[e]!==n){i=n;break}r=r.constructor.superclass.prototype}return i?arguments.length>1?i.apply(this,t.call(arguments,1)):i.call(this):console.log("tried to callSuper "+e+", method not found in prototype chain",this)}b.util.createClass=function(){var i=null,o=t.call(arguments,0);function a(){this.initialize.apply(this,arguments)}"function"==typeof o[0]&&(i=o.shift()),a.superclass=i,a.subclasses=[],i&&(n.prototype=i.prototype,a.prototype=new n,i.subclasses.push(a));for(var h=0,l=o.length;h-1||"touch"===t.pointerType},d="string"==typeof(u=b.document.createElement("div")).style.opacity,f="string"==typeof u.style.filter,g=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,m=function(t){return t},d?m=function(t,e){return t.style.opacity=e,t}:f&&(m=function(t,e){var i=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(i.zoom=1),g.test(i.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",i.filter=i.filter.replace(g,e)):i.filter+=" alpha(opacity="+100*e+")",t}),b.util.setStyle=function(t,e){var i=t.style;if(!i)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?m(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var r in e)"opacity"===r?m(t,e[r]):i["float"===r||"cssFloat"===r?void 0===i.styleFloat?"cssFloat":"styleFloat":r]=e[r];return t},function(){var t,e,i,r,n=Array.prototype.slice,s=function(t){return n.call(t,0)};try{t=s(b.document.childNodes)instanceof Array}catch(t){}function o(t,e){var i=b.document.createElement(t);for(var r in e)"class"===r?i.className=e[r]:"for"===r?i.htmlFor=e[r]:i.setAttribute(r,e[r]);return i}function a(t){for(var e=0,i=0,r=b.document.documentElement,n=b.document.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===b.document?(e=n.scrollLeft||r.scrollLeft||0,i=n.scrollTop||r.scrollTop||0):(e+=t.scrollLeft||0,i+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:i}}t||(s=function(t){for(var e=new Array(t.length),i=t.length;i--;)e[i]=t[i];return e}),e=b.document.defaultView&&b.document.defaultView.getComputedStyle?function(t,e){var i=b.document.defaultView.getComputedStyle(t,null);return i?i[e]:void 0}:function(t,e){var i=t.style[e];return!i&&t.currentStyle&&(i=t.currentStyle[e]),i},i=b.document.documentElement.style,r="userSelect"in i?"userSelect":"MozUserSelect"in i?"MozUserSelect":"WebkitUserSelect"in i?"WebkitUserSelect":"KhtmlUserSelect"in i?"KhtmlUserSelect":"",b.util.makeElementUnselectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=b.util.falseFunction),r?t.style[r]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},b.util.makeElementSelectable=function(t){return void 0!==t.onselectstart&&(t.onselectstart=null),r?t.style[r]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},b.util.setImageSmoothing=function(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},b.util.getById=function(t){return"string"==typeof t?b.document.getElementById(t):t},b.util.toArray=s,b.util.addClass=function(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},b.util.makeElement=o,b.util.wrapElement=function(t,e,i){return"string"==typeof e&&(e=o(e,i)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},b.util.getScrollLeftTop=a,b.util.getElementOffset=function(t){var i,r,n=t&&t.ownerDocument,s={left:0,top:0},o={left:0,top:0},h={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!n)return o;for(var l in h)o[h[l]]+=parseInt(e(t,l),10)||0;return i=n.documentElement,void 0!==t.getBoundingClientRect&&(s=t.getBoundingClientRect()),r=a(t),{left:s.left+r.left-(i.clientLeft||0)+o.left,top:s.top+r.top-(i.clientTop||0)+o.top}},b.util.getNodeCanvas=function(t){var e=b.jsdomImplForWrapper(t);return e._canvas||e._image},b.util.cleanUpJsdomNode=function(t){if(b.isLikelyNode){var e=b.jsdomImplForWrapper(t);e&&(e._image=null,e._canvas=null,e._currentSrc=null,e._attributes=null,e._classList=null)}}}(),function(){function t(){}b.util.request=function(e,i){i||(i={});var r=i.method?i.method.toUpperCase():"GET",n=i.onComplete||function(){},s=new b.window.XMLHttpRequest,o=i.body||i.parameters;return s.onreadystatechange=function(){4===s.readyState&&(n(s),s.onreadystatechange=t)},"GET"===r&&(o=null,"string"==typeof i.parameters&&(e=function(t,e){return t+(/\?/.test(t)?"&":"?")+e}(e,i.parameters))),s.open(r,e,!0),"POST"!==r&&"PUT"!==r||s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.send(o),s}}(),b.log=console.log,b.warn=console.warn,function(){var t=b.util.object.extend,e=b.util.object.clone,i=[];function r(){return!1}function n(t,e,i,r){return-i*Math.cos(t/r*(Math.PI/2))+i+e}b.util.object.extend(i,{cancelAll:function(){var t=this.splice(0);return t.forEach((function(t){t.cancel()})),t},cancelByCanvas:function(t){if(!t)return[];var e=this.filter((function(e){return"object"==typeof e.target&&e.target.canvas===t}));return e.forEach((function(t){t.cancel()})),e},cancelByTarget:function(t){var e=this.findAnimationsByTarget(t);return e.forEach((function(t){t.cancel()})),e},findAnimationIndex:function(t){return this.indexOf(this.findAnimation(t))},findAnimation:function(t){return this.find((function(e){return e.cancel===t}))},findAnimationsByTarget:function(t){return t?this.filter((function(e){return e.target===t})):[]}});var s=b.window.requestAnimationFrame||b.window.webkitRequestAnimationFrame||b.window.mozRequestAnimationFrame||b.window.oRequestAnimationFrame||b.window.msRequestAnimationFrame||function(t){return b.window.setTimeout(t,1e3/60)},o=b.window.cancelAnimationFrame||b.window.clearTimeout;function a(){return s.apply(b.window,arguments)}b.util.animate=function(i){i||(i={});var s,o=!1,h=function(){var t=b.runningAnimations.indexOf(s);return t>-1&&b.runningAnimations.splice(t,1)[0]};return s=t(e(i),{cancel:function(){return o=!0,h()},currentValue:"startValue"in i?i.startValue:0,completionRate:0,durationRate:0}),b.runningAnimations.push(s),a((function(t){var e,l=t||+new Date,c=i.duration||500,u=l+c,d=i.onChange||r,f=i.abort||r,g=i.onComplete||r,m=i.easing||n,p="startValue"in i&&i.startValue.length>0,_="startValue"in i?i.startValue:0,v="endValue"in i?i.endValue:100,y=i.byValue||(p?_.map((function(t,e){return v[e]-_[e]})):v-_);i.onStart&&i.onStart(),function t(i){var r=(e=i||+new Date)>u?c:e-l,n=r/c,w=p?_.map((function(t,e){return m(r,_[e],y[e],c)})):m(r,_,y,c),E=p?Math.abs((w[0]-_[0])/y[0]):Math.abs((w-_)/y);if(s.currentValue=p?w.slice():w,s.completionRate=E,s.durationRate=n,!o){if(!f(w,E,n))return e>u?(s.currentValue=p?v.slice():v,s.completionRate=1,s.durationRate=1,d(p?v.slice():v,1,1),g(v,1,1),void h()):(d(w,E,n),void a(t));h()}}(l)})),s.cancel},b.util.requestAnimFrame=a,b.util.cancelAnimFrame=function(){return o.apply(b.window,arguments)},b.runningAnimations=i}(),function(){function t(t,e,i){var r="rgba("+parseInt(t[0]+i*(e[0]-t[0]),10)+","+parseInt(t[1]+i*(e[1]-t[1]),10)+","+parseInt(t[2]+i*(e[2]-t[2]),10);return(r+=","+(t&&e?parseFloat(t[3]+i*(e[3]-t[3])):1))+")"}b.util.animateColor=function(e,i,r,n){var s=new b.Color(e).getSource(),o=new b.Color(i).getSource(),a=n.onComplete,h=n.onChange;return n=n||{},b.util.animate(b.util.object.extend(n,{duration:r||500,startValue:s,endValue:o,byValue:o,easing:function(e,i,r,s){return t(i,r,n.colorEasing?n.colorEasing(e,s):1-Math.cos(e/s*(Math.PI/2)))},onComplete:function(e,i,r){if(a)return a(t(o,o,0),i,r)},onChange:function(e,i,r){if(h){if(Array.isArray(e))return h(t(e,e,0),i,r);h(e,i,r)}}}))}}(),function(){function t(t,e,i,r){return t-1&&c>-1&&c-1)&&(i="stroke")}else{if("href"===t||"xlink:href"===t||"font"===t)return i;if("imageSmoothing"===t)return"optimizeQuality"===i;a=h?i.map(s):s(i,n)}}else i="";return!h&&isNaN(a)?i:a}function f(t){return new RegExp("^("+t.join("|")+")\\b","i")}function g(t,e){var i,r,n,s,o=[];for(n=0,s=e.length;n1;)h.shift(),l=e.util.multiplyTransformMatrices(l,h[0]);return l}}();var v=new RegExp("^\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*$");function y(t){if(!e.svgViewBoxElementsRegEx.test(t.nodeName))return{};var i,r,n,o,a,h,l=t.getAttribute("viewBox"),c=1,u=1,d=t.getAttribute("width"),f=t.getAttribute("height"),g=t.getAttribute("x")||0,m=t.getAttribute("y")||0,p=t.getAttribute("preserveAspectRatio")||"",_=!l||!(l=l.match(v)),y=!d||!f||"100%"===d||"100%"===f,w=_&&y,E={},C="",T=0,b=0;if(E.width=0,E.height=0,E.toBeParsed=w,_&&(g||m)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") ",a=(t.getAttribute("transform")||"")+C,t.setAttribute("transform",a),t.removeAttribute("x"),t.removeAttribute("y")),w)return E;if(_)return E.width=s(d),E.height=s(f),E;if(i=-parseFloat(l[1]),r=-parseFloat(l[2]),n=parseFloat(l[3]),o=parseFloat(l[4]),E.minX=i,E.minY=r,E.viewBoxWidth=n,E.viewBoxHeight=o,y?(E.width=n,E.height=o):(E.width=s(d),E.height=s(f),c=E.width/n,u=E.height/o),"none"!==(p=e.util.parsePreserveAspectRatioAttribute(p)).alignX&&("meet"===p.meetOrSlice&&(u=c=c>u?u:c),"slice"===p.meetOrSlice&&(u=c=c>u?c:u),T=E.width-n*c,b=E.height-o*c,"Mid"===p.alignX&&(T/=2),"Mid"===p.alignY&&(b/=2),"Min"===p.alignX&&(T=0),"Min"===p.alignY&&(b=0)),1===c&&1===u&&0===i&&0===r&&0===g&&0===m)return E;if((g||m)&&"#document"!==t.parentNode.nodeName&&(C=" translate("+s(g)+" "+s(m)+") "),a=C+" matrix("+c+" 0 0 "+u+" "+(i*c+T)+" "+(r*u+b)+") ","svg"===t.nodeName){for(h=t.ownerDocument.createElementNS(e.svgNS,"g");t.firstChild;)h.appendChild(t.firstChild);t.appendChild(h)}else(h=t).removeAttribute("x"),h.removeAttribute("y"),a=h.getAttribute("transform")+a;return h.setAttribute("transform",a),E}function w(t,e){var i="xlink:href",r=_(t,e.getAttribute(i).slice(1));if(r&&r.getAttribute(i)&&w(t,r),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(t){r&&!e.hasAttribute(t)&&r.hasAttribute(t)&&e.setAttribute(t,r.getAttribute(t))})),!e.children.length)for(var n=r.cloneNode(!0);n.firstChild;)e.appendChild(n.firstChild);e.removeAttribute(i)}e.parseSVGDocument=function(t,i,n,s){if(t){!function(t){for(var i=g(t,["use","svg:use"]),r=0;i.length&&rt.x&&this.y>t.y},gte:function(t){return this.x>=t.x&&this.y>=t.y},lerp:function(t,e){return void 0===e&&(e=.5),e=Math.max(Math.min(1,e),0),new i(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},distanceFrom:function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},midPointFrom:function(t){return this.lerp(t)},min:function(t){return new i(Math.min(this.x,t.x),Math.min(this.y,t.y))},max:function(t){return new i(Math.max(this.x,t.x),Math.max(this.y,t.y))},toString:function(){return this.x+","+this.y},setXY:function(t,e){return this.x=t,this.y=e,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setFromPoint:function(t){return this.x=t.x,this.y=t.y,this},swap:function(t){var e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i},clone:function(){return new i(this.x,this.y)}})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){this.status=t,this.points=[]}e.Intersection?e.warn("fabric.Intersection is already defined"):(e.Intersection=i,e.Intersection.prototype={constructor:i,appendPoint:function(t){return this.points.push(t),this},appendPoints:function(t){return this.points=this.points.concat(t),this}},e.Intersection.intersectLineLine=function(t,r,n,s){var o,a=(s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x),h=(r.x-t.x)*(t.y-n.y)-(r.y-t.y)*(t.x-n.x),l=(s.y-n.y)*(r.x-t.x)-(s.x-n.x)*(r.y-t.y);if(0!==l){var c=a/l,u=h/l;0<=c&&c<=1&&0<=u&&u<=1?(o=new i("Intersection")).appendPoint(new e.Point(t.x+c*(r.x-t.x),t.y+c*(r.y-t.y))):o=new i}else o=new i(0===a||0===h?"Coincident":"Parallel");return o},e.Intersection.intersectLinePolygon=function(t,e,r){var n,s,o,a,h=new i,l=r.length;for(a=0;a0&&(h.status="Intersection"),h},e.Intersection.intersectPolygonPolygon=function(t,e){var r,n=new i,s=t.length;for(r=0;r0&&(n.status="Intersection"),n},e.Intersection.intersectPolygonRectangle=function(t,r,n){var s=r.min(n),o=r.max(n),a=new e.Point(o.x,s.y),h=new e.Point(s.x,o.y),l=i.intersectLinePolygon(s,a,t),c=i.intersectLinePolygon(a,o,t),u=i.intersectLinePolygon(o,h,t),d=i.intersectLinePolygon(h,s,t),f=new i;return f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(u.points),f.appendPoints(d.points),f.points.length>0&&(f.status="Intersection"),f})}(e),function(t){var e=t.fabric||(t.fabric={});function i(t){t?this._tryParsingColor(t):this.setSource([0,0,0,1])}function r(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}e.Color?e.warn("fabric.Color is already defined."):(e.Color=i,e.Color.prototype={_tryParsingColor:function(t){var e;t in i.colorNameMap&&(t=i.colorNameMap[t]),"transparent"===t&&(e=[255,255,255,0]),e||(e=i.sourceFromHex(t)),e||(e=i.sourceFromRgb(t)),e||(e=i.sourceFromHsl(t)),e||(e=[0,0,0,1]),e&&this.setSource(e)},_rgbToHsl:function(t,i,r){t/=255,i/=255,r/=255;var n,s,o,a=e.util.array.max([t,i,r]),h=e.util.array.min([t,i,r]);if(o=(a+h)/2,a===h)n=s=0;else{var l=a-h;switch(s=o>.5?l/(2-a-h):l/(a+h),a){case t:n=(i-r)/l+(i0)-(t<0)||+t};function f(t,e){var i=t.angle+u(Math.atan2(e.y,e.x))+360;return Math.round(i%360/45)}function g(t,i){var r=i.transform.target,n=r.canvas,s=e.util.object.clone(i);s.target=r,n&&n.fire("object:"+t,s),r.fire(t,i)}function m(t,e){var i=e.canvas,r=t[i.uniScaleKey];return i.uniformScaling&&!r||!i.uniformScaling&&r}function p(t){return t.originX===l&&t.originY===l}function _(t,e,i){var r=t.lockScalingX,n=t.lockScalingY;return!((!r||!n)&&(e||!r&&!n||!i)&&(!r||"x"!==e)&&(!n||"y"!==e))}function v(t,e,i,r){return{e:t,transform:e,pointer:{x:i,y:r}}}function y(t){return function(e,i,r,n){var s=i.target,o=s.getCenterPoint(),a=s.translateToOriginPoint(o,i.originX,i.originY),h=t(e,i,r,n);return s.setPositionByOrigin(a,i.originX,i.originY),h}}function w(t,e){return function(i,r,n,s){var o=e(i,r,n,s);return o&&g(t,v(i,r,n,s)),o}}function E(t,i,r,n,s){var o=t.target,a=o.controls[t.corner],h=o.canvas.getZoom(),l=o.padding/h,c=o.toLocalPoint(new e.Point(n,s),i,r);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=a.offsetX,c.y-=a.offsetY,c}function C(t){return t.flipX!==t.flipY}function T(t,e,i,r,n){if(0!==t[e]){var s=n/t._getTransformedDimensions()[r]*t[i];t.set(i,s)}}function b(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(0,l.skewY),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.x)-c.x,g=l.skewX;f<2?n=0:(n=u(Math.atan2(f/l.scaleX,c.y/l.scaleY)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().y;l.set("skewX",n),T(l,"skewY","scaleY","y",p)}return m}function S(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(l.skewX,0),d=E(e,e.originX,e.originY,i,r),f=Math.abs(2*d.y)-c.y,g=l.skewY;f<2?n=0:(n=u(Math.atan2(f/l.scaleY,c.x/l.scaleX)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),C(l)&&(n=-n));var m=g!==n;if(m){var p=l._getTransformedDimensions().x;l.set("skewY",n),T(l,"skewX","scaleX","x",p)}return m}function I(t,e,i,r,n){n=n||{};var s,o,a,h,l,u,f=e.target,g=f.lockScalingX,v=f.lockScalingY,y=n.by,w=m(t,f),C=_(f,y,w),T=e.gestureScale;if(C)return!1;if(T)o=e.scaleX*T,a=e.scaleY*T;else{if(s=E(e,e.originX,e.originY,i,r),l="y"!==y?d(s.x):1,u="x"!==y?d(s.y):1,e.signX||(e.signX=l),e.signY||(e.signY=u),f.lockScalingFlip&&(e.signX!==l||e.signY!==u))return!1;if(h=f._getTransformedDimensions(),w&&!y){var b=Math.abs(s.x)+Math.abs(s.y),S=e.original,I=b/(Math.abs(h.x*S.scaleX/f.scaleX)+Math.abs(h.y*S.scaleY/f.scaleY));o=S.scaleX*I,a=S.scaleY*I}else o=Math.abs(s.x*f.scaleX/h.x),a=Math.abs(s.y*f.scaleY/h.y);p(e)&&(o*=2,a*=2),e.signX!==l&&"y"!==y&&(e.originX=c[e.originX],o*=-1,e.signX=l),e.signY!==u&&"x"!==y&&(e.originY=c[e.originY],a*=-1,e.signY=u)}var x=f.scaleX,A=f.scaleY;return y?("x"===y&&f.set("scaleX",o),"y"===y&&f.set("scaleY",a)):(!g&&f.set("scaleX",o),!v&&f.set("scaleY",a)),x!==f.scaleX||A!==f.scaleY}n.scaleCursorStyleHandler=function(t,e,r){var n=m(t,r),s="";if(0!==e.x&&0===e.y?s="x":0===e.x&&0!==e.y&&(s="y"),_(r,s,n))return"not-allowed";var o=f(r,e);return i[o]+"-resize"},n.skewCursorStyleHandler=function(t,e,i){var n="not-allowed";if(0!==e.x&&i.lockSkewingY)return n;if(0!==e.y&&i.lockSkewingX)return n;var s=f(i,e)%4;return r[s]+"-resize"},n.scaleSkewCursorStyleHandler=function(t,e,i){return t[i.canvas.altActionKey]?n.skewCursorStyleHandler(t,e,i):n.scaleCursorStyleHandler(t,e,i)},n.rotationWithSnapping=w("rotating",y((function(t,e,i,r){var n=e,s=n.target,o=s.translateToOriginPoint(s.getCenterPoint(),n.originX,n.originY);if(s.lockRotation)return!1;var a,h=Math.atan2(n.ey-o.y,n.ex-o.x),l=Math.atan2(r-o.y,i-o.x),c=u(l-h+n.theta);if(s.snapAngle>0){var d=s.snapAngle,f=s.snapThreshold||d,g=Math.ceil(c/d)*d,m=Math.floor(c/d)*d;Math.abs(c-m)0?s:a:(c>0&&(n=u===o?s:a),c<0&&(n=u===o?a:s),C(h)&&(n=n===s?a:s)),e.originX=n,w("skewing",y(b))(t,e,i,r))},n.skewHandlerY=function(t,e,i,r){var n,a=e.target,c=a.skewY,u=e.originX;return!a.lockSkewingY&&(0===c?n=E(e,l,l,i,r).y>0?o:h:(c>0&&(n=u===s?o:h),c<0&&(n=u===s?h:o),C(a)&&(n=n===o?h:o)),e.originY=n,w("skewing",y(S))(t,e,i,r))},n.dragHandler=function(t,e,i,r){var n=e.target,s=i-e.offsetX,o=r-e.offsetY,a=!n.get("lockMovementX")&&n.left!==s,h=!n.get("lockMovementY")&&n.top!==o;return a&&n.set("left",s),h&&n.set("top",o),(a||h)&&g("moving",v(t,e,i,r)),a||h},n.scaleOrSkewActionName=function(t,e,i){var r=t[i.canvas.altActionKey];return 0===e.x?r?"skewX":"scaleY":0===e.y?r?"skewY":"scaleX":void 0},n.rotationStyleHandler=function(t,e,i){return i.lockRotation?"not-allowed":e.cursorStyle},n.fireEvent=g,n.wrapWithFixedAnchor=y,n.wrapWithFireEvent=w,n.getLocalPoint=E,e.controlsUtils=n}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians,r=e.controlsUtils;r.renderCircleControl=function(t,e,i,r,n){r=r||{};var s,o=this.sizeX||r.cornerSize||n.cornerSize,a=this.sizeY||r.cornerSize||n.cornerSize,h=void 0!==r.transparentCorners?r.transparentCorners:n.transparentCorners,l=h?"stroke":"fill",c=!h&&(r.cornerStrokeColor||n.cornerStrokeColor),u=e,d=i;t.save(),t.fillStyle=r.cornerColor||n.cornerColor,t.strokeStyle=r.cornerStrokeColor||n.cornerStrokeColor,o>a?(s=o,t.scale(1,a/o),d=i*o/a):a>o?(s=a,t.scale(o/a,1),u=e*a/o):s=o,t.lineWidth=1,t.beginPath(),t.arc(u,d,s/2,0,2*Math.PI,!1),t[l](),c&&t.stroke(),t.restore()},r.renderSquareControl=function(t,e,r,n,s){n=n||{};var o=this.sizeX||n.cornerSize||s.cornerSize,a=this.sizeY||n.cornerSize||s.cornerSize,h=void 0!==n.transparentCorners?n.transparentCorners:s.transparentCorners,l=h?"stroke":"fill",c=!h&&(n.cornerStrokeColor||s.cornerStrokeColor),u=o/2,d=a/2;t.save(),t.fillStyle=n.cornerColor||s.cornerColor,t.strokeStyle=n.cornerStrokeColor||s.cornerStrokeColor,t.lineWidth=1,t.translate(e,r),t.rotate(i(s.angle)),t[l+"Rect"](-u,-d,o,a),c&&t.strokeRect(-u,-d,o,a),t.restore()}}(e),function(t){var e=t.fabric||(t.fabric={});e.Control=function(t){for(var e in t)this[e]=t[e]},e.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(t,e){return e.cursorStyle},getActionName:function(t,e){return e.actionName},getVisibility:function(t,e){var i=t._controlsVisibility;return i&&void 0!==i[e]?i[e]:this.visible},setVisibility:function(t){this.visible=t},positionHandler:function(t,i){return e.util.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},i)},calcCornerCoords:function(t,i,r,n,s){var o,a,h,l,c=s?this.touchSizeX:this.sizeX,u=s?this.touchSizeY:this.sizeY;if(c&&u&&c!==u){var d=Math.atan2(u,c),f=Math.sqrt(c*c+u*u)/2,g=d-e.util.degreesToRadians(t),m=Math.PI/2-d-e.util.degreesToRadians(t);o=f*e.util.cos(g),a=f*e.util.sin(g),h=f*e.util.cos(m),l=f*e.util.sin(m)}else f=.7071067812*(c&&u?c:i),g=e.util.degreesToRadians(45-t),o=h=f*e.util.cos(g),a=l=f*e.util.sin(g);return{tl:{x:r-l,y:n-h},tr:{x:r+o,y:n-a},bl:{x:r-o,y:n+a},br:{x:r+l,y:n+h}}},render:function(t,i,r,n,s){"circle"===((n=n||{}).cornerStyle||s.cornerStyle)?e.controlsUtils.renderCircleControl.call(this,t,i,r,n,s):e.controlsUtils.renderSquareControl.call(this,t,i,r,n,s)}}}(e),function(){function t(t,e){var i,r,n,s,o=t.getAttribute("style"),a=t.getAttribute("offset")||0;if(a=(a=parseFloat(a)/(/%$/.test(a)?100:1))<0?0:a>1?1:a,o){var h=o.split(/\s*;\s*/);for(""===h[h.length-1]&&h.pop(),s=h.length;s--;){var l=h[s].split(/\s*:\s*/),c=l[0].trim(),u=l[1].trim();"stop-color"===c?i=u:"stop-opacity"===c&&(n=u)}}return i||(i=t.getAttribute("stop-color")||"rgb(0,0,0)"),n||(n=t.getAttribute("stop-opacity")),r=(i=new b.Color(i)).getAlpha(),n=isNaN(parseFloat(n))?1:parseFloat(n),n*=r*e,{offset:a,color:i.toRgb(),opacity:n}}var e=b.util.object.clone;b.Gradient=b.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(t){t||(t={}),t.coords||(t.coords={});var e,i=this;Object.keys(t).forEach((function(e){i[e]=t[e]})),this.id?this.id+="_"+b.Object.__uid++:this.id=b.Object.__uid++,e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0},"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()},addColorStop:function(t){for(var e in t){var i=new b.Color(t[e]);this.colorStops.push({offset:parseFloat(e),color:i.toRgb(),opacity:i.getAlpha()})}return this},toObject:function(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return b.util.populateWithProperties(this,e,t),e},toSVG:function(t,i){var r,n,s,o,a=e(this.coords,!0),h=(i=i||{},e(this.colorStops,!0)),l=a.r1>a.r2,c=this.gradientTransform?this.gradientTransform.concat():b.iMatrix.concat(),u=-this.offsetX,d=-this.offsetY,f=!!i.additionalTransform,g="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(h.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===g?(u/=t.width,d/=t.height):(u+=t.width/2,d+=t.height/2),"path"===t.type&&"percentage"!==this.gradientUnits&&(u-=t.pathOffset.x,d-=t.pathOffset.y),c[4]-=u,c[5]-=d,o='id="SVGID_'+this.id+'" gradientUnits="'+g+'"',o+=' gradientTransform="'+(f?i.additionalTransform+" ":"")+b.util.matrixToSVG(c)+'" ',"linear"===this.type?s=["\n']:"radial"===this.type&&(s=["\n']),"radial"===this.type){if(l)for((h=h.concat()).reverse(),r=0,n=h.length;r0){var p=m/Math.max(a.r1,a.r2);for(r=0,n=h.length;r\n')}return s.push("linear"===this.type?"\n":"\n"),s.join("")},toLive:function(t){var e,i,r,n=b.util.object.clone(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(n.x1,n.y1,n.x2,n.y2):"radial"===this.type&&(e=t.createRadialGradient(n.x1,n.y1,n.r1,n.x2,n.y2,n.r2)),i=0,r=this.colorStops.length;i1?1:s,isNaN(s)&&(s=1);var o,a,h,l,c=e.getElementsByTagName("stop"),u="userSpaceOnUse"===e.getAttribute("gradientUnits")?"pixels":"percentage",d=e.getAttribute("gradientTransform")||"",f=[],g=0,m=0;for("linearGradient"===e.nodeName||"LINEARGRADIENT"===e.nodeName?(o="linear",a=function(t){return{x1:t.getAttribute("x1")||0,y1:t.getAttribute("y1")||0,x2:t.getAttribute("x2")||"100%",y2:t.getAttribute("y2")||0}}(e)):(o="radial",a=function(t){return{x1:t.getAttribute("fx")||t.getAttribute("cx")||"50%",y1:t.getAttribute("fy")||t.getAttribute("cy")||"50%",r1:0,x2:t.getAttribute("cx")||"50%",y2:t.getAttribute("cy")||"50%",r2:t.getAttribute("r")||"50%"}}(e)),h=c.length;h--;)f.push(t(c[h],s));return l=b.parseTransformAttribute(d),function(t,e,i,r){var n,s;Object.keys(e).forEach((function(t){"Infinity"===(n=e[t])?s=1:"-Infinity"===n?s=0:(s=parseFloat(e[t],10),"string"==typeof n&&/^(\d+\.\d+)%|(\d+)%$/.test(n)&&(s*=.01,"pixels"===r&&("x1"!==t&&"x2"!==t&&"r2"!==t||(s*=i.viewBoxWidth||i.width),"y1"!==t&&"y2"!==t||(s*=i.viewBoxHeight||i.height)))),e[t]=s}))}(0,a,n,u),"pixels"===u&&(g=-i.left,m=-i.top),new b.Gradient({id:e.getAttribute("id"),type:o,coords:a,colorStops:f,gradientUnits:u,gradientTransform:l,offsetX:g,offsetY:m})}})}(),_=b.util.toFixed,b.Pattern=b.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(t,e){if(t||(t={}),this.id=b.Object.__uid++,this.setOptions(t),!t.source||t.source&&"string"!=typeof t.source)e&&e(this);else{var i=this;this.source=b.util.createImage(),b.util.loadImage(t.source,(function(t,r){i.source=t,e&&e(i,r)}),null,this.crossOrigin)}},toObject:function(t){var e,i,r=b.Object.NUM_FRACTION_DIGITS;return"string"==typeof this.source.src?e=this.source.src:"object"==typeof this.source&&this.source.toDataURL&&(e=this.source.toDataURL()),i={type:"pattern",source:e,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:_(this.offsetX,r),offsetY:_(this.offsetY,r),patternTransform:this.patternTransform?this.patternTransform.concat():null},b.util.populateWithProperties(this,i,t),i},toSVG:function(t){var e="function"==typeof this.source?this.source():this.source,i=e.width/t.width,r=e.height/t.height,n=this.offsetX/t.width,s=this.offsetY/t.height,o="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(r=1,s&&(r+=Math.abs(s))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,n&&(i+=Math.abs(n))),e.src?o=e.src:e.toDataURL&&(o=e.toDataURL()),'\n\n\n'},setOptions:function(t){for(var e in t)this[e]=t[e]},toLive:function(t){var e=this.source;if(!e)return"";if(void 0!==e.src){if(!e.complete)return"";if(0===e.naturalWidth||0===e.naturalHeight)return""}return t.createPattern(e,this.repeat)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.toFixed;e.Shadow?e.warn("fabric.Shadow is already defined."):(e.Shadow=e.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(t){for(var i in"string"==typeof t&&(t=this._parseShadow(t)),t)this[i]=t[i];this.id=e.Object.__uid++},_parseShadow:function(t){var i=t.trim(),r=e.Shadow.reOffsetsAndBlur.exec(i)||[];return{color:(i.replace(e.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(r[1],10)||0,offsetY:parseFloat(r[2],10)||0,blur:parseFloat(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(t){var r=40,n=40,s=e.Object.NUM_FRACTION_DIGITS,o=e.util.rotateVector({x:this.offsetX,y:this.offsetY},e.util.degreesToRadians(-t.angle)),a=new e.Color(this.color);return t.width&&t.height&&(r=100*i((Math.abs(o.x)+this.blur)/t.width,s)+20,n=100*i((Math.abs(o.y)+this.blur)/t.height,s)+20),t.flipX&&(o.x*=-1),t.flipY&&(o.y*=-1),'\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var t={},i=e.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(e){this[e]!==i[e]&&(t[e]=this[e])}),this),t}}),e.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(e),function(){if(b.StaticCanvas)b.warn("fabric.StaticCanvas is already defined.");else{var t=b.util.object.extend,e=b.util.getElementOffset,i=b.util.removeFromArray,r=b.util.toFixed,n=b.util.transformPoint,s=b.util.invertTransform,o=b.util.getNodeCanvas,a=b.util.createCanvasElement,h=new Error("Could not initialize `canvas` element");b.StaticCanvas=b.util.createClass(b.CommonMethods,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:b.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(t,e){var i=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,i),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,i),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,i),e.overlayColor&&this.setOverlayColor(e.overlayColor,i),this.calcOffset()},_isRetinaScaling:function(){return b.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,b.devicePixelRatio):1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var t=b.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(t,e,i){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),i.scale(t,t)},calcOffset:function(){return this._offset=e(this.lowerCanvasEl),this},setOverlayImage:function(t,e,i){return this.__setBgOverlayImage("overlayImage",t,e,i)},setBackgroundImage:function(t,e,i){return this.__setBgOverlayImage("backgroundImage",t,e,i)},setOverlayColor:function(t,e){return this.__setBgOverlayColor("overlayColor",t,e)},setBackgroundColor:function(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)},__setBgOverlayImage:function(t,e,i,r){return"string"==typeof e?b.util.loadImage(e,(function(e,n){if(e){var s=new b.Image(e,r);this[t]=s,s.canvas=this}i&&i(e,n)}),this,r&&r.crossOrigin):(r&&e.setOptions(r),this[t]=e,e&&(e.canvas=this),i&&i(e,!1)),this},__setBgOverlayColor:function(t,e,i){return this[t]=e,this._initGradient(e,t),this._initPattern(e,t,i),this},_createCanvasElement:function(){var t=a();if(!t)throw h;if(t.style||(t.style={}),void 0===t.getContext)throw h;return t},_initOptions:function(t){var e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=b.util.getById(t)||this._createCanvasElement(),b.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(t,e){return this.setDimensions({width:t},e)},setHeight:function(t,e){return this.setDimensions({height:t},e)},setDimensions:function(t,e){var i;for(var r in e=e||{},t)i=t[r],e.cssOnly||(this._setBackstoreDimension(r,t[r]),i+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(r,i);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this},_setCssDimension:function(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(t){var e,i,r,n=this._activeObject,s=this.backgroundImage,o=this.overlayImage;for(this.viewportTransform=t,i=0,r=this._objects.length;i\n'),this._setSVGBgOverlayColor(i,"background"),this._setSVGBgOverlayImage(i,"backgroundImage",e),this._setSVGObjects(i,e),this.clipPath&&i.push("\n"),this._setSVGBgOverlayColor(i,"overlay"),this._setSVGBgOverlayImage(i,"overlayImage",e),i.push(""),i.join("")},_setSVGPreamble:function(t,e){e.suppressPreamble||t.push('\n','\n')},_setSVGHeader:function(t,e){var i,n=e.width||this.width,s=e.height||this.height,o='viewBox="0 0 '+this.width+" "+this.height+'" ',a=b.Object.NUM_FRACTION_DIGITS;e.viewBox?o='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(i=this.viewportTransform,o='viewBox="'+r(-i[4]/i[0],a)+" "+r(-i[5]/i[3],a)+" "+r(this.width/i[0],a)+" "+r(this.height/i[3],a)+'" '),t.push("\n',"Created with Fabric.js ",b.version,"\n","\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"\n")},createSVGClipPathMarkup:function(t){var e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+b.Object.__uid++,'\n'+this.clipPath.toClipPathSVG(t.reviver)+"\n"):""},createSVGRefElementsMarkup:function(){var t=this;return["background","overlay"].map((function(e){var i=t[e+"Color"];if(i&&i.toLive){var r=t[e+"Vpt"],n=t.viewportTransform,s={width:t.width/(r?n[0]:1),height:t.height/(r?n[3]:1)};return i.toSVG(s,{additionalTransform:r?b.util.matrixToSVG(n):""})}})).join("")},createSVGFontFacesMarkup:function(){var t,e,i,r,n,s,o,a,h="",l={},c=b.fontPaths,u=[];for(this._objects.forEach((function t(e){u.push(e),e._objects&&e._objects.forEach(t)})),o=0,a=u.length;o',"\n",h,"","\n"].join("")),h},_setSVGObjects:function(t,e){var i,r,n,s=this._objects;for(r=0,n=s.length;r\n")}else t.push('\n")},sendToBack:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(e=(n=s._objects).length;e--;)r=n[e],i(this._objects,r),this._objects.unshift(r);else i(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(n=s._objects,e=0;e0+l&&(o=s-1,i(this._objects,n),this._objects.splice(o,0,n)),l++;else 0!==(s=this._objects.indexOf(t))&&(o=this._findNewLowerIndex(t,s,e),i(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(t,e,i){var r,n;if(i){for(r=e,n=e-1;n>=0;--n)if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){r=n;break}}else r=e-1;return r},bringForward:function(t,e){if(!t)return this;var r,n,s,o,a,h=this._activeObject,l=0;if(t===h&&"activeSelection"===t.type)for(r=(a=h._objects).length;r--;)n=a[r],(s=this._objects.indexOf(n))"}}),t(b.StaticCanvas.prototype,b.Observable),t(b.StaticCanvas.prototype,b.Collection),t(b.StaticCanvas.prototype,b.DataURLExporter),t(b.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(t){var e=a();if(!e||!e.getContext)return null;var i=e.getContext("2d");return i&&"setLineDash"===t?void 0!==i.setLineDash:null}}),b.StaticCanvas.prototype.toJSON=b.StaticCanvas.prototype.toObject,b.isLikelyNode&&(b.StaticCanvas.prototype.createPNGStream=function(){var t=o(this.lowerCanvasEl);return t&&t.createPNGStream()},b.StaticCanvas.prototype.createJPEGStream=function(t){var e=o(this.lowerCanvasEl);return e&&e.createJPEGStream(t)})}}(),b.BaseBrush=b.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(t){var e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])},_setShadow:function(){if(this.shadow){var t=this.canvas,e=this.shadow,i=t.contextTop,r=t.getZoom();t&&t._isRetinaScaling()&&(r*=b.devicePixelRatio),i.shadowColor=e.color,i.shadowBlur=e.blur*r,i.shadowOffsetX=e.offsetX*r,i.shadowOffsetY=e.offsetY*r}},needsFullRender:function(){return new b.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0},_isOutSideCanvas:function(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}),b.PencilBrush=b.util.createClass(b.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(t){this.canvas=t,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(t,e,i){var r=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,r.x,r.y),r},onMouseDown:function(t,e){this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],this._prepareForDrawing(t),this._captureDrawingPath(t),this._render())},onMouseMove:function(t,e){if(this.canvas._isMainEvent(e.e)&&(this.drawStraightLine=e.e[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._captureDrawingPath(t)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var i=this._points,r=i.length,n=this.canvas.contextTop;this._saveAndTransform(n),this.oldEnd&&(n.beginPath(),n.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(n,i[r-2],i[r-1],!0),n.stroke(),n.restore()}},onMouseUp:function(t){return!this.canvas._isMainEvent(t.e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(t){var e=new b.Point(t.x,t.y);this._reset(),this._addPoint(e),this.canvas.contextTop.moveTo(e.x,e.y)},_addPoint:function(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),0))},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(t){var e=new b.Point(t.x,t.y);return this._addPoint(e)},_render:function(t){var e,i,r=this._points[0],n=this._points[1];if(t=t||this.canvas.contextTop,this._saveAndTransform(t),t.beginPath(),2===this._points.length&&r.x===n.x&&r.y===n.y){var s=this.width/1e3;r=new b.Point(r.x,r.y),n=new b.Point(n.x,n.y),r.x-=s,n.x+=s}for(t.moveTo(r.x,r.y),e=1,i=this._points.length;e=n&&(o=t[i],a.push(o));return a.push(t[s]),a},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var t=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(t))this.canvas.requestRenderAll();else{var e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}}}),b.CircleBrush=b.util.createClass(b.BaseBrush,{width:10,initialize:function(t){this.canvas=t,this.points=[]},drawDot:function(t){var e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()},dot:function(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()},onMouseDown:function(t){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)},_render:function(){var t,e,i=this.canvas.contextTop,r=this.points;for(this._saveAndTransform(i),t=0,e=r.length;t0&&!this.preserveObjectStacking){e=[],i=[];for(var n=0,s=this._objects.length;n1&&(this._activeObject._objects=i),e.push.apply(e,i)}else e=this._objects;return e},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1);var t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this},renderTopLayer:function(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()},renderTop:function(){var t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this},_normalizePointer:function(t,e){var i=t.calcTransformMatrix(),r=b.util.invertTransform(i),n=this.restorePointerVpt(e);return b.util.transformPoint(n,r)},isTargetTransparent:function(t,e,i){if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){var r=this._normalizePointer(t,{x:e,y:i}),n=Math.max(t.cacheTranslationX+r.x*t.zoomX,0),s=Math.max(t.cacheTranslationY+r.y*t.zoomY,0);return b.util.isTransparent(t._cacheContext,Math.round(n),Math.round(s),this.targetFindTolerance)}var o=this.contextCache,a=t.selectionBackgroundColor,h=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(o),o.save(),o.transform(h[0],h[1],h[2],h[3],h[4],h[5]),t.render(o),o.restore(),t.selectionBackgroundColor=a,b.util.isTransparent(o,e,i,this.targetFindTolerance)},_isSelectionKeyPressed:function(t){return Array.isArray(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey]},_shouldClearSelection:function(t,e){var i=this.getActiveObjects(),r=this._activeObject;return!e||e&&r&&i.length>1&&-1===i.indexOf(e)&&r!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&r&&r!==e},_shouldCenterTransform:function(t,e,i){var r;if(t)return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?r=this.centeredScaling||t.centeredScaling:"rotate"===e&&(r=this.centeredRotation||t.centeredRotation),r?!i:i},_getOriginFromCorner:function(t,e){var i={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?i.x="right":"mr"!==e&&"tr"!==e&&"br"!==e||(i.x="left"),"tl"===e||"mt"===e||"tr"===e?i.y="bottom":"bl"!==e&&"mb"!==e&&"br"!==e||(i.y="top"),i},_getActionFromCorner:function(t,e,i,r){if(!e||!t)return"drag";var n=r.controls[e];return n.getActionName(i,n,r)},_setupCurrentTransform:function(t,i,r){if(i){var n=this.getPointer(t),s=i.__corner,o=i.controls[s],a=r&&s?o.getActionHandler(t,i,o):b.controlsUtils.dragHandler,h=this._getActionFromCorner(r,s,t,i),l=this._getOriginFromCorner(i,s),c=t[this.centeredKey],u={target:i,action:h,actionHandler:a,corner:s,scaleX:i.scaleX,scaleY:i.scaleY,skewX:i.skewX,skewY:i.skewY,offsetX:n.x-i.left,offsetY:n.y-i.top,originX:l.x,originY:l.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:e(i.angle),width:i.width*i.scaleX,shiftKey:t.shiftKey,altKey:c,original:b.util.saveObjectTransform(i)};this._shouldCenterTransform(i,h,c)&&(u.originX="center",u.originY="center"),u.original.originX=l.x,u.original.originY=l.y,this._currentTransform=u,this._beforeTransform(t)}},setCursor:function(t){this.upperCanvasEl.style.cursor=t},_drawSelection:function(t){var e=this._groupSelector,i=new b.Point(e.ex,e.ey),r=b.util.transformPoint(i,this.viewportTransform),n=new b.Point(e.ex+e.left,e.ey+e.top),s=b.util.transformPoint(n,this.viewportTransform),o=Math.min(r.x,s.x),a=Math.min(r.y,s.y),h=Math.max(r.x,s.x),l=Math.max(r.y,s.y),c=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(o,a,h-o,l-a)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,o+=c,a+=c,h-=c,l-=c,b.Object.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(o,a,h-o,l-a))},findTarget:function(t,e){if(!this.skipTargetFind){var r,n,s=this.getPointer(t,!0),o=this._activeObject,a=this.getActiveObjects(),h=i(t),l=a.length>1&&!e||1===a.length;if(this.targets=[],l&&o._findTargetCorner(s,h))return o;if(a.length>1&&!e&&o===this._searchPossibleTargets([o],s))return o;if(1===a.length&&o===this._searchPossibleTargets([o],s)){if(!this.preserveObjectStacking)return o;r=o,n=this.targets,this.targets=[]}var c=this._searchPossibleTargets(this._objects,s);return t[this.altSelectionKey]&&c&&r&&c!==r&&(c=r,this.targets=n),c}},_checkTarget:function(t,e,i){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,i.x,i.y))return!0}},_searchPossibleTargets:function(t,e){for(var i,r,n=t.length;n--;){var s=t[n],o=s.group?this._normalizePointer(s.group,e):e;if(this._checkTarget(o,s,e)){(i=t[n]).subTargetCheck&&i instanceof b.Group&&(r=this._searchPossibleTargets(i._objects,e))&&this.targets.push(r);break}}return i},restorePointerVpt:function(t){return b.util.transformPoint(t,b.util.invertTransform(this.viewportTransform))},getPointer:function(e,i){if(this._absolutePointer&&!i)return this._absolutePointer;if(this._pointer&&i)return this._pointer;var r,n=t(e),s=this.upperCanvasEl,o=s.getBoundingClientRect(),a=o.width||0,h=o.height||0;a&&h||("top"in o&&"bottom"in o&&(h=Math.abs(o.top-o.bottom)),"right"in o&&"left"in o&&(a=Math.abs(o.right-o.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,i||(n=this.restorePointerVpt(n));var l=this.getRetinaScaling();return 1!==l&&(n.x/=l,n.y/=l),r=0===a||0===h?{width:1,height:1}:{width:s.width/a,height:s.height/h},{x:n.x*r.width,y:n.y*r.height}},_createUpperCanvas:function(){var t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl,i=this.upperCanvasEl;i?i.className="":(i=this._createCanvasElement(),this.upperCanvasEl=i),b.util.addClass(i,"upper-canvas "+t),this.wrapperEl.appendChild(i),this._copyCanvasStyle(e,i),this._applyCanvasStyle(i),this.contextTop=i.getContext("2d")},getTopContext:function(){return this.contextTop},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=b.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),b.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),b.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(t){var e=this.width||t.width,i=this.height||t.height;b.util.setStyle(t,{position:"absolute",width:e+"px",height:i+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=i,b.util.makeElementUnselectable(t)},_copyCanvasStyle:function(t,e){e.style.cssText=t.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]},_onObjectRemoved:function(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",t)},_fireSelectionEvents:function(t,e){var i=!1,r=this.getActiveObjects(),n=[],s=[];t.forEach((function(t){-1===r.indexOf(t)&&(i=!0,t.fire("deselected",{e,target:t}),s.push(t))})),r.forEach((function(r){-1===t.indexOf(r)&&(i=!0,r.fire("selected",{e,target:r}),n.push(r))})),t.length>0&&r.length>0?i&&this.fire("selection:updated",{e,selected:n,deselected:s}):r.length>0?this.fire("selection:created",{e,selected:n}):t.length>0&&this.fire("selection:cleared",{e,deselected:s})},setActiveObject:function(t,e){var i=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(i,e),this},_setActiveObject:function(t,e){return this._activeObject!==t&&!!this._discardActiveObject(e,t)&&!t.onSelect({e})&&(this._activeObject=t,!0)},_discardActiveObject:function(t,e){var i=this._activeObject;if(i){if(i.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0},discardActiveObject:function(t){var e=this.getActiveObjects(),i=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:i,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this},dispose:function(){var t=this.wrapperEl;return this.removeListeners(),t.removeChild(this.upperCanvasEl),t.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){b.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,b.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(t){var e=this._activeObject;e&&e._renderControls(t)},_toObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(t),n=this.callSuper("_toObject",t,e,i);return this._unwindGroupTransformOnObject(t,r),n},_realizeGroupTransformOnObject:function(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){var e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(i){e[i]=t[i]})),b.util.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null},_unwindGroupTransformOnObject:function(t,e){e&&t.set(e)},_setSVGObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(e);this.callSuper("_setSVGObject",t,e,i),this._unwindGroupTransformOnObject(e,r)},setViewportTransform:function(t){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),b.StaticCanvas.prototype.setViewportTransform.call(this,t)}}),b.StaticCanvas)"prototype"!==r&&(b.Canvas[r]=b.StaticCanvas[r])}(),function(){var t=b.util.addListener,e=b.util.removeListener,i={passive:!1};function r(t,e){return t.button&&t.button===e-1}b.util.object.extend(b.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(t,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(t,e){var r=this.upperCanvasEl,n=this._getEventPrefix();t(b.window,"resize",this._onResize),t(r,n+"down",this._onMouseDown),t(r,n+"move",this._onMouseMove,i),t(r,n+"out",this._onMouseOut),t(r,n+"enter",this._onMouseEnter),t(r,"wheel",this._onMouseWheel),t(r,"contextmenu",this._onContextMenu),t(r,"dblclick",this._onDoubleClick),t(r,"dragover",this._onDragOver),t(r,"dragenter",this._onDragEnter),t(r,"dragleave",this._onDragLeave),t(r,"drop",this._onDrop),this.enablePointerEvents||t(r,"touchstart",this._onTouchStart,i),"undefined"!=typeof eventjs&&e in eventjs&&(eventjs[e](r,"gesture",this._onGesture),eventjs[e](r,"drag",this._onDrag),eventjs[e](r,"orientation",this._onOrientationChange),eventjs[e](r,"shake",this._onShake),eventjs[e](r,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(e,"remove");var t=this._getEventPrefix();e(b.document,t+"up",this._onMouseUp),e(b.document,"touchend",this._onTouchEnd,i),e(b.document,t+"move",this._onMouseMove,i),e(b.document,"touchmove",this._onMouseMove,i)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._onDrop.bind(this),this.eventsBound=!0)},_onGesture:function(t,e){this.__onTransformGesture&&this.__onTransformGesture(t,e)},_onDrag:function(t,e){this.__onDrag&&this.__onDrag(t,e)},_onMouseWheel:function(t){this.__onMouseWheel(t)},_onMouseOut:function(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var i=this;this._hoveredTargets.forEach((function(r){i.fire("mouse:out",{target:e,e:t}),r&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter:function(t){this._currentTransform||this.findTarget(t)||(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(t,e){this.__onOrientationChange&&this.__onOrientationChange(t,e)},_onShake:function(t,e){this.__onShake&&this.__onShake(t,e)},_onLongPress:function(t,e){this.__onLongPress&&this.__onLongPress(t,e)},_onDragOver:function(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onDrop:function(t){return this._simpleEventHandler("drop:before",t),this._simpleEventHandler("drop",t)},_onContextMenu:function(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId:function(t){var e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1},_isMainEvent:function(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId)},_onTouchStart:function(r){r.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(r)),this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();t(b.document,"touchend",this._onTouchEnd,i),t(b.document,"touchmove",this._onMouseMove,i),e(n,s+"down",this._onMouseDown)},_onMouseDown:function(r){this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();e(n,s+"move",this._onMouseMove,i),t(b.document,s+"up",this._onMouseUp),t(b.document,s+"move",this._onMouseMove,i)},_onTouchEnd:function(r){if(!(r.touches.length>0)){this.__onMouseUp(r),this._resetTransformEventData(),this.mainTouchId=null;var n=this._getEventPrefix();e(b.document,"touchend",this._onTouchEnd,i),e(b.document,"touchmove",this._onMouseMove,i);var s=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){t(s.upperCanvasEl,n+"down",s._onMouseDown),s._willAddMouseDown=0}),400)}},_onMouseUp:function(r){this.__onMouseUp(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();this._isMainEvent(r)&&(e(b.document,s+"up",this._onMouseUp),e(b.document,s+"move",this._onMouseMove,i),t(n,s+"move",this._onMouseMove,i))},_onMouseMove:function(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize:function(){this.calcOffset()},_shouldRender:function(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp:function(t){var e,i=this._currentTransform,n=this._groupSelector,s=!1,o=!n||0===n.left&&0===n.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),r(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,o);else{if(r(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,o),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(i&&(this._finalizeCurrentTransform(t),s=i.actionPerformed),!o){var a=e===this._activeObject;this._maybeGroupObjects(t),s||(s=this._shouldRender(e)||!a&&e===this._activeObject)}var h,l;if(e){if(h=e._findTargetCorner(this.getPointer(t,!0),b.util.isTouchEvent(t)),e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),s=!0;else{var c=e.controls[h],u=c&&c.getMouseUpHandler(t,e,c);u&&u(t,i,(l=this.getPointer(t)).x,l.y)}e.isMoving=!1}if(i&&(i.target!==e||i.corner!==h)){var d=i.target&&i.target.controls[i.corner],f=d&&d.getMouseUpHandler(t,e,c);l=l||this.getPointer(t),f&&f(t,i,l.x,l.y)}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,o),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),s?this.requestRenderAll():o||this.renderTop()}}},_simpleEventHandler:function(t,e){var i=this.findTarget(e),r=this.targets,n={e,target:i,subTargets:r};if(this.fire(t,n),i&&i.fire(t,n),!r)return i;for(var s=0;s1&&(e=new b.ActiveSelection(i.reverse(),{canvas:this}),this.setActiveObject(e,t))},_collectObjects:function(t){for(var e,i=[],r=this._groupSelector.ex,n=this._groupSelector.ey,s=r+this._groupSelector.left,o=n+this._groupSelector.top,a=new b.Point(v(r,s),v(n,o)),h=new b.Point(y(r,s),y(n,o)),l=!this.selectionFullyContained,c=r===s&&n===o,u=this._objects.length;u--&&!((e=this._objects[u])&&e.selectable&&e.visible&&(l&&e.intersectsWithRect(a,h,!0)||e.isContainedWithinRect(a,h,!0)||l&&e.containsPoint(a,null,!0)||l&&e.containsPoint(h,null,!0))&&(i.push(e),c)););return i.length>1&&(i=i.filter((function(e){return!e.onSelect({e:t})}))),i},_maybeGroupObjects:function(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}),b.util.object.extend(b.StaticCanvas.prototype,{toDataURL:function(t){t||(t={});var e=t.format||"png",i=t.quality||1,r=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),n=this.toCanvasElement(r,t);return b.util.toDataURL(n,e,i)},toCanvasElement:function(t,e){t=t||1;var i=((e=e||{}).width||this.width)*t,r=(e.height||this.height)*t,n=this.getZoom(),s=this.width,o=this.height,a=n*t,h=this.viewportTransform,l=(h[4]-(e.left||0))*t,c=(h[5]-(e.top||0))*t,u=this.interactive,d=[a,0,0,a,l,c],f=this.enableRetinaScaling,g=b.util.createCanvasElement(),m=this.contextTop;return g.width=i,g.height=r,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=d,this.width=i,this.height=r,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=h,this.width=s,this.height=o,this.calcViewportBoundaries(),this.interactive=u,this.enableRetinaScaling=f,this.contextTop=m,g}}),b.util.object.extend(b.StaticCanvas.prototype,{loadFromJSON:function(t,e,i){if(t){var r="string"==typeof t?JSON.parse(t):b.util.object.clone(t),n=this,s=r.clipPath,o=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete r.clipPath,this._enlivenObjects(r.objects,(function(t){n.clear(),n._setBgOverlay(r,(function(){s?n._enlivenObjects([s],(function(i){n.clipPath=i[0],n.__setupCanvas.call(n,r,t,o,e)})):n.__setupCanvas.call(n,r,t,o,e)}))}),i),this}},__setupCanvas:function(t,e,i,r){var n=this;e.forEach((function(t,e){n.insertAt(t,e)})),this.renderOnAddRemove=i,delete t.objects,delete t.backgroundImage,delete t.overlayImage,delete t.background,delete t.overlay,this._setOptions(t),this.renderAll(),r&&r()},_setBgOverlay:function(t,e){var i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(t.backgroundImage||t.overlayImage||t.background||t.overlay){var r=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&e&&e()};this.__setBgOverlay("backgroundImage",t.backgroundImage,i,r),this.__setBgOverlay("overlayImage",t.overlayImage,i,r),this.__setBgOverlay("backgroundColor",t.background,i,r),this.__setBgOverlay("overlayColor",t.overlay,i,r)}else e&&e()},__setBgOverlay:function(t,e,i,r){var n=this;if(!e)return i[t]=!0,void(r&&r());"backgroundImage"===t||"overlayImage"===t?b.util.enlivenObjects([e],(function(e){n[t]=e[0],i[t]=!0,r&&r()})):this["set"+b.util.string.capitalize(t,!0)](e,(function(){i[t]=!0,r&&r()}))},_enlivenObjects:function(t,e,i){t&&0!==t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),null,i):e&&e([])},_toDataURL:function(t,e){this.clone((function(i){e(i.toDataURL(t))}))},_toDataURLWithMultiplier:function(t,e,i){this.clone((function(r){i(r.toDataURLWithMultiplier(t,e))}))},clone:function(t,e){var i=JSON.stringify(this.toJSON(e));this.cloneWithoutData((function(e){e.loadFromJSON(i,(function(){t&&t(e)}))}))},cloneWithoutData:function(t){var e=b.util.createCanvasElement();e.width=this.width,e.height=this.height;var i=new b.Canvas(e);this.backgroundImage?(i.setBackgroundImage(this.backgroundImage.src,(function(){i.renderAll(),t&&t(i)})),i.backgroundImageOpacity=this.backgroundImageOpacity,i.backgroundImageStretch=this.backgroundImageStretch):t&&t(i)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n=e.util.toFixed,s=e.util.string.capitalize,o=e.util.degreesToRadians,a=!e.isLikelyNode;e.Object||(e.Object=e.util.createClass(e.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:a,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(t){t&&this.setOptions(t)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=e.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(t){var i=e.perfLimitSizeTotal,r=t.width,n=t.height,s=e.maxCacheSideLimit,o=e.minCacheSideLimit;if(r<=s&&n<=s&&r*n<=i)return rc&&(t.zoomX/=r/c,t.width=c,t.capped=!0),n>u&&(t.zoomY/=n/u,t.height=u,t.capped=!0),t},_getCacheCanvasDimensions:function(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),i=e.x*t.scaleX/this.scaleX,r=e.y*t.scaleY/this.scaleY;return{width:i+2,height:r+2,zoomX:t.scaleX,zoomY:t.scaleY,x:i,y:r}},_updateCacheCanvas:function(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var i=t._currentTransform.target,r=t._currentTransform.action;if(this===i&&r.slice&&"scale"===r.slice(0,5))return!1}var n,s,o=this._cacheCanvas,a=this._limitCacheSize(this._getCacheCanvasDimensions()),h=e.minCacheSideLimit,l=a.width,c=a.height,u=a.zoomX,d=a.zoomY,f=l!==this.cacheWidth||c!==this.cacheHeight,g=this.zoomX!==u||this.zoomY!==d,m=f||g,p=0,_=0,v=!1;if(f){var y=this._cacheCanvas.width,w=this._cacheCanvas.height,E=l>y||c>w;v=E||(l<.9*y||c<.9*w)&&y>h&&w>h,E&&!a.capped&&(l>h||c>h)&&(p=.1*l,_=.1*c)}return this instanceof e.Text&&this.path&&(m=!0,v=!0,p+=this.getHeightOfLine(0)*this.zoomX,_+=this.getHeightOfLine(0)*this.zoomY),!!m&&(v?(o.width=Math.ceil(l+p),o.height=Math.ceil(c+_)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,o.width,o.height)),n=a.x/2,s=a.y/2,this.cacheTranslationX=Math.round(o.width/2-n)+n,this.cacheTranslationY=Math.round(o.height/2-s)+s,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(u,d),this.zoomX=u,this.zoomY=d,!0)},setOptions:function(t){this._setOptions(t),this._initGradient(t.fill,"fill"),this._initGradient(t.stroke,"stroke"),this._initPattern(t.fill,"fill"),this._initPattern(t.stroke,"stroke")},transform:function(t){var e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,i=this.calcTransformMatrix(!e);t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},toObject:function(t){var i=e.Object.NUM_FRACTION_DIGITS,r={type:this.type,version:e.version,originX:this.originX,originY:this.originY,left:n(this.left,i),top:n(this.top,i),width:n(this.width,i),height:n(this.height,i),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:n(this.strokeWidth,i),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:n(this.strokeMiterLimit,i),scaleX:n(this.scaleX,i),scaleY:n(this.scaleY,i),angle:n(this.angle,i),flipX:this.flipX,flipY:this.flipY,opacity:n(this.opacity,i),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:n(this.skewX,i),skewY:n(this.skewY,i)};return this.clipPath&&!this.clipPath.excludeFromExport&&(r.clipPath=this.clipPath.toObject(t),r.clipPath.inverted=this.clipPath.inverted,r.clipPath.absolutePositioned=this.clipPath.absolutePositioned),e.util.populateWithProperties(this,r,t),this.includeDefaultValues||(r=this._removeDefaultValues(r)),r},toDatalessObject:function(t){return this.toObject(t)},_removeDefaultValues:function(t){var i=e.util.getKlass(t.type).prototype;return i.stateProperties.forEach((function(e){"left"!==e&&"top"!==e&&(t[e]===i[e]&&delete t[e],Array.isArray(t[e])&&Array.isArray(i[e])&&0===t[e].length&&0===i[e].length&&delete t[e])})),t},toString:function(){return"#"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=e.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}},getTotalObjectScaling:function(){var t=this.getObjectScaling(),e=t.scaleX,i=t.scaleY;if(this.canvas){var r=this.canvas.getZoom(),n=this.canvas.getRetinaScaling();e*=r*n,i*=r*n}return{scaleX:e,scaleY:i}},getObjectOpacity:function(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t},_set:function(t,i){var r="scaleX"===t||"scaleY"===t,n=this[t]!==i,s=!1;return r&&(i=this._constrainScale(i)),"scaleX"===t&&i<0?(this.flipX=!this.flipX,i*=-1):"scaleY"===t&&i<0?(this.flipY=!this.flipY,i*=-1):"shadow"!==t||!i||i instanceof e.Shadow?"dirty"===t&&this.group&&this.group.set("dirty",i):i=new e.Shadow(i),this[t]=i,n&&(s=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,s&&this.group.set("dirty",!0)):s&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:e.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())},renderCache:function(t){t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this._cacheContext=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!=typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(t,i){if(t.save(),i.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",i.absolutePositioned){var r=e.util.invertTransform(this.calcTransformMatrix());t.transform(r[0],r[1],r[2],r[3],r[4],r[5])}i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},drawObject:function(t,e){var i=this.fill,r=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t,this.clipPath),this.fill=i,this.stroke=r},_drawClipPath:function(t,e){e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t,e))},drawCacheOnCanvas:function(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&this._cacheContext&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!t){var e=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-i/2,e,i)}return!0}return!1},_renderBackground:function(t){if(this.backgroundColor){var e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}},_setOpacity:function(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity},_setStrokeStyles:function(t,e){var i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)},_setFillStyles:function(t,e){var i=e.fill;i&&(i.toLive?(t.fillStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=i)},_setClippingProperties:function(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"},_setLineDash:function(t,e){e&&0!==e.length&&(1&e.length&&e.push.apply(e,e),t.setLineDash(e))},_renderControls:function(t,i){var r,n,s,a=this.getViewportTransform(),h=this.calcTransformMatrix();n=void 0!==(i=i||{}).hasBorders?i.hasBorders:this.hasBorders,s=void 0!==i.hasControls?i.hasControls:this.hasControls,h=e.util.multiplyTransformMatrices(a,h),r=e.util.qrDecompose(h),t.save(),t.translate(r.translateX,r.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(r.angle-=180),t.rotate(o(this.group?r.angle:this.angle)),i.forActiveSelection||this.group?n&&this.drawBordersInGroup(t,r,i):n&&this.drawBorders(t,i),s&&this.drawControls(t,i),t.restore()},_setShadow:function(t){if(this.shadow){var i,r=this.shadow,n=this.canvas,s=n&&n.viewportTransform[0]||1,o=n&&n.viewportTransform[3]||1;i=r.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),n&&n._isRetinaScaling()&&(s*=e.devicePixelRatio,o*=e.devicePixelRatio),t.shadowColor=r.color,t.shadowBlur=r.blur*e.browserShadowBlurConstant*(s+o)*(i.scaleX+i.scaleY)/4,t.shadowOffsetX=r.offsetX*s*i.scaleX,t.shadowOffsetY=r.offsetY*o*i.scaleY}},_removeShadow:function(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)},_applyPatternGradientTransform:function(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var i=e.gradientTransform||e.patternTransform,r=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,r,n):t.transform(1,0,0,1,r,n),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:r,offsetY:n}},_renderPaintInOrder:function(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))},_render:function(){},_renderFill:function(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())},_renderStroke:function(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}},_applyPatternForTransformedGradient:function(t,i){var r,n=this._limitCacheSize(this._getCacheCanvasDimensions()),s=e.util.createCanvasElement(),o=this.canvas.getRetinaScaling(),a=n.x/this.scaleX/o,h=n.y/this.scaleY/o;s.width=a,s.height=h,(r=s.getContext("2d")).beginPath(),r.moveTo(0,0),r.lineTo(a,0),r.lineTo(a,h),r.lineTo(0,h),r.closePath(),r.translate(a/2,h/2),r.scale(n.zoomX/this.scaleX/o,n.zoomY/this.scaleY/o),this._applyPatternGradientTransform(r,i),r.fillStyle=i.toLive(t),r.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(o*this.scaleX/n.zoomX,o*this.scaleY/n.zoomY),t.strokeStyle=r.createPattern(s,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var t=e.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}},_removeTransformMatrix:function(t){var i=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),i=e.util.transformPoint(i,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,i.x+=t.offsetLeft,i.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(i,"center","center")},clone:function(t,i){var r=this.toObject(i);this.constructor.fromObject?this.constructor.fromObject(r,t):e.Object._fromObject("Object",r,t)},cloneAsImage:function(t,i){var r=this.toCanvasElement(i);return t&&t(new e.Image(r)),this},toCanvasElement:function(t){t||(t={});var i=e.util,r=i.saveObjectTransform(this),n=this.group,s=this.shadow,o=Math.abs,a=(t.multiplier||1)*(t.enableRetinaScaling?e.devicePixelRatio:1);delete this.group,t.withoutTransform&&i.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var h,l,c,u,d=e.util.createCanvasElement(),f=this.getBoundingRect(!0,!0),g=this.shadow,m={x:0,y:0};g&&(l=g.blur,h=g.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),m.x=2*Math.round(o(g.offsetX)+l)*o(h.scaleX),m.y=2*Math.round(o(g.offsetY)+l)*o(h.scaleY)),c=f.width+m.x,u=f.height+m.y,d.width=Math.ceil(c),d.height=Math.ceil(u);var p=new e.StaticCanvas(d,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(p.backgroundColor="#fff"),this.setPositionByOrigin(new e.Point(p.width/2,p.height/2),"center","center");var _=this.canvas;p.add(this);var v=p.toCanvasElement(a||1,t);return this.shadow=s,this.set("canvas",_),n&&(this.group=n),this.set(r).setCoords(),p._objects=[],p.dispose(),p=null,v},toDataURL:function(t){return t||(t={}),e.util.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)},isType:function(t){return arguments.length>1?Array.from(arguments).includes(this.type):this.type===t},complexity:function(){return 1},toJSON:function(t){return this.toObject(t)},rotate:function(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(t,i){i=i||this.canvas.getPointer(t);var r=new e.Point(i.x,i.y),n=this._getLeftTopCoords();return this.angle&&(r=e.util.rotatePoint(r,n,o(-this.angle))),{x:r.x-n.x,y:r.y-n.y}},_setupCompositeOperation:function(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){e.runningAnimations&&e.runningAnimations.cancelByTarget(this)}}),e.util.createAccessors&&e.util.createAccessors(e.Object),i(e.Object.prototype,e.Observable),e.Object.NUM_FRACTION_DIGITS=2,e.Object.ENLIVEN_PROPS=["clipPath"],e.Object._fromObject=function(t,i,n,s){var o=e[t];i=r(i,!0),e.util.enlivenPatterns([i.fill,i.stroke],(function(t){void 0!==t[0]&&(i.fill=t[0]),void 0!==t[1]&&(i.stroke=t[1]),e.util.enlivenObjectEnlivables(i,i,(function(){var t=s?new o(i[s],i):new o(i);n&&n(t)}))}))},e.Object.__uid=0)}(e),w=b.util.degreesToRadians,E={left:-.5,center:0,right:.5},C={top:-.5,center:0,bottom:.5},b.util.object.extend(b.Object.prototype,{translateToGivenOrigin:function(t,e,i,r,n){var s,o,a,h=t.x,l=t.y;return"string"==typeof e?e=E[e]:e-=.5,"string"==typeof r?r=E[r]:r-=.5,"string"==typeof i?i=C[i]:i-=.5,"string"==typeof n?n=C[n]:n-=.5,o=n-i,((s=r-e)||o)&&(a=this._getTransformedDimensions(),h=t.x+s*a.x,l=t.y+o*a.y),new b.Point(h,l)},translateToCenterPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,e,i,"center","center");return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},translateToOriginPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,"center","center",e,i);return this.angle?b.util.rotatePoint(r,t,w(this.angle)):r},getCenterPoint:function(){var t=new b.Point(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)},getPointByOrigin:function(t,e){var i=this.getCenterPoint();return this.translateToOriginPoint(i,t,e)},toLocalPoint:function(t,e,i){var r,n,s=this.getCenterPoint();return r=void 0!==e&&void 0!==i?this.translateToGivenOrigin(s,"center","center",e,i):new b.Point(this.left,this.top),n=new b.Point(t.x,t.y),this.angle&&(n=b.util.rotatePoint(n,s,-w(this.angle))),n.subtractEquals(r)},setPositionByOrigin:function(t,e,i){var r=this.translateToCenterPoint(t,e,i),n=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",n.x),this.set("top",n.y)},adjustPosition:function(t){var e,i,r=w(this.angle),n=this.getScaledWidth(),s=b.util.cos(r)*n,o=b.util.sin(r)*n;e="string"==typeof this.originX?E[this.originX]:this.originX-.5,i="string"==typeof t?E[t]:t-.5,this.left+=s*(i-e),this.top+=o*(i-e),this.setCoords(),this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y},_resetOrigin:function(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}}),function(){var t=b.util,e=t.degreesToRadians,i=t.multiplyTransformMatrices,r=t.transformPoint;t.object.extend(b.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(t,e){return e?t?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),t?this.aCoords:this.lineCoords)},getCoords:function(t,e){return i=this._getCoords(t,e),[new b.Point(i.tl.x,i.tl.y),new b.Point(i.tr.x,i.tr.y),new b.Point(i.br.x,i.br.y),new b.Point(i.bl.x,i.bl.y)];var i},intersectsWithRect:function(t,e,i,r){var n=this.getCoords(i,r);return"Intersection"===b.Intersection.intersectPolygonRectangle(n,t,e).status},intersectsWithObject:function(t,e,i){return"Intersection"===b.Intersection.intersectPolygonPolygon(this.getCoords(e,i),t.getCoords(e,i)).status||t.isContainedWithinObject(this,e,i)||this.isContainedWithinObject(t,e,i)},isContainedWithinObject:function(t,e,i){for(var r=this.getCoords(e,i),n=e?t.aCoords:t.lineCoords,s=0,o=t._getImageLines(n);s<4;s++)if(!t.containsPoint(r[s],o))return!1;return!0},isContainedWithinRect:function(t,e,i,r){var n=this.getBoundingRect(i,r);return n.left>=t.x&&n.left+n.width<=e.x&&n.top>=t.y&&n.top+n.height<=e.y},containsPoint:function(t,e,i,r){var n=this._getCoords(i,r),s=(e=e||this._getImageLines(n),this._findCrossPoints(t,e));return 0!==s&&s%2==1},isOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.getCoords(!0,t).some((function(t){return t.x<=i.x&&t.x>=e.x&&t.y<=i.y&&t.y>=e.y}))||!!this.intersectsWithRect(e,i,!0,t)||this._containsCenterOfCanvas(e,i,t)},_containsCenterOfCanvas:function(t,e,i){var r={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(r,null,!0,i)},isPartiallyOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,i,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=i.x||t.x<=e.x)&&(t.y>=i.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,i,t)},_getImageLines:function(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}},_findCrossPoints:function(t,e){var i,r,n,s=0;for(var o in e)if(!((n=e[o]).o.y=t.y&&n.d.y>=t.y||(n.o.x===n.d.x&&n.o.x>=t.x?r=n.o.x:(i=(n.d.y-n.o.y)/(n.d.x-n.o.x),r=-(t.y-0*t.x-(n.o.y-i*n.o.x))/(0-i)),r>=t.x&&(s+=1),2!==s)))break;return s},getBoundingRect:function(e,i){var r=this.getCoords(e,i);return t.makeBoundingBoxFromPoints(r)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(t){return Math.abs(t)\n')}},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})},toClipPathSVG:function(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})},_createBaseClipPathSVGMarkup:function(t,e){var i=(e=e||{}).reviver,r=e.additionalTransform||"",n=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),s=t.indexOf("COMMON_PARTS");return t[s]=n,i?i(t.join("")):t.join("")},_createBaseSVGMarkup:function(t,e){var i,r,n=(e=e||{}).noStyle,s=e.reviver,o=n?"":'style="'+this.getSvgStyles()+'" ',a=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",h=this.clipPath,l=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",c=h&&h.absolutePositioned,u=this.stroke,d=this.fill,f=this.shadow,g=[],m=t.indexOf("COMMON_PARTS"),p=e.additionalTransform;return h&&(h.clipPathId="CLIPPATH_"+b.Object.__uid++,r='\n'+h.toClipPathSVG(s)+"\n"),c&&g.push("\n"),g.push("\n"),i=[o,l,n?"":this.addPaintOrder()," ",p?'transform="'+p+'" ':""].join(""),t[m]=i,d&&d.toLive&&g.push(d.toSVG(this)),u&&u.toLive&&g.push(u.toSVG(this)),f&&g.push(f.toSVG(this)),h&&g.push(r),g.push(t.join("")),g.push("\n"),c&&g.push("\n"),s?s(g.join("")):g.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var t=b.util.object.extend,e="stateProperties";function i(e,i,r){var n={};r.forEach((function(t){n[t]=e[t]})),t(e[i],n,!0)}function r(t,e,i){if(t===e)return!0;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(var n=0,s=t.length;n=0;h--)if(n=a[h],this.isControlVisible(n)&&(r=this._getImageLines(e?this.oCoords[n].touchCorner:this.oCoords[n].corner),0!==(i=this._findCrossPoints({x:s,y:o},r))&&i%2==1))return this.__corner=n,n;return!1},forEachControl:function(t){for(var e in this.controls)t(this.controls[e],e,this)},_setCornerCoords:function(){var t=this.oCoords;for(var e in t){var i=this.controls[e];t[e].corner=i.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=i.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}},drawSelectionBackground:function(e){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;e.save();var i=this.getCenterPoint(),r=this._calculateCurrentDimensions(),n=this.canvas.viewportTransform;return e.translate(i.x,i.y),e.scale(1/n[0],1/n[3]),e.rotate(t(this.angle)),e.fillStyle=this.selectionBackgroundColor,e.fillRect(-r.x/2,-r.y/2,r.x,r.y),e.restore(),this},drawBorders:function(t,e){e=e||{};var i=this._calculateCurrentDimensions(),r=this.borderScaleFactor,n=i.x+r,s=i.y+r,o=void 0!==e.hasControls?e.hasControls:this.hasControls,a=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-n/2,-s/2,n,s),o&&(t.beginPath(),this.forEachControl((function(e,i,r){e.withConnection&&e.getVisibility(r,i)&&(a=!0,t.moveTo(e.x*n,e.y*s),t.lineTo(e.x*n+e.offsetX,e.y*s+e.offsetY))})),a&&t.stroke()),t.restore(),this},drawBordersInGroup:function(t,e,i){i=i||{};var r=b.util.sizeAfterTransform(this.width,this.height,e),n=this.strokeWidth,s=this.strokeUniform,o=this.borderScaleFactor,a=r.x+n*(s?this.canvas.getZoom():e.scaleX)+o,h=r.y+n*(s?this.canvas.getZoom():e.scaleY)+o;return t.save(),this._setLineDash(t,i.borderDashArray||this.borderDashArray),t.strokeStyle=i.borderColor||this.borderColor,t.strokeRect(-a/2,-h/2,a,h),t.restore(),this},drawControls:function(t,e){e=e||{},t.save();var i,r,n=this.canvas.getRetinaScaling();return t.setTransform(n,0,0,n,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl((function(n,s,o){r=o.oCoords[s],n.getVisibility(o,s)&&(i&&(r=b.util.transformPoint(r,i)),n.render(t,r.x,r.y,e,o))})),t.restore(),this},isControlVisible:function(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)},setControlVisible:function(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this},setControlsVisibility:function(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this},onDeselect:function(){},onSelect:function(){}})}(),b.util.object.extend(b.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(e){t.set("left",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxCenterObjectV:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(e){t.set("top",e),s.requestRenderAll(),n()},onComplete:function(){t.setCoords(),r()}})},fxRemove:function(t,e){var i=function(){},r=(e=e||{}).onComplete||i,n=e.onChange||i,s=this;return b.util.animate({target:this,startValue:t.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(e){t.set("opacity",e),s.requestRenderAll(),n()},onComplete:function(){s.remove(t),r()}})}}),b.util.object.extend(b.Object.prototype,{animate:function(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,i=[],r=[];for(t in arguments[0])i.push(t);for(var n=0,s=i.length;n-1||n&&s.colorProperties.indexOf(n[1])>-1,a=n?this.get(n[0])[n[1]]:this.get(t);"from"in i||(i.from=a),o||(e=~e.indexOf("=")?a+parseFloat(e.replace("=","")):parseFloat(e));var h={target:this,startValue:i.from,endValue:e,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(t,e,r){return i.abort.call(s,t,e,r)},onChange:function(e,o,a){n?s[n[0]][n[1]]=e:s.set(t,e),r||i.onChange&&i.onChange(e,o,a)},onComplete:function(t,e,n){r||(s.setCoords(),i.onComplete&&i.onComplete(t,e,n))}};return o?b.util.animateColor(h.startValue,h.endValue,h.duration,h):b.util.animate(h)}}),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n={x1:1,x2:1,y1:1,y2:1};function s(t,e){var i=t.origin,r=t.axis1,n=t.axis2,s=t.dimension,o=e.nearest,a=e.center,h=e.farthest;return function(){switch(this.get(i)){case o:return Math.min(this.get(r),this.get(n));case a:return Math.min(this.get(r),this.get(n))+.5*this.get(s);case h:return Math.max(this.get(r),this.get(n))}}}e.Line?e.warn("fabric.Line is already defined"):(e.Line=e.util.createClass(e.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:e.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(t,e){t||(t=[0,0,0,0]),this.callSuper("initialize",e),this.set("x1",t[0]),this.set("y1",t[1]),this.set("x2",t[2]),this.set("y2",t[3]),this._setWidthHeight(e)},_setWidthHeight:function(t){t||(t={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in t?t.left:this._getLeftToOriginX(),this.top="top"in t?t.top:this._getTopToOriginY()},_set:function(t,e){return this.callSuper("_set",t,e),void 0!==n[t]&&this._setWidthHeight(),this},_getLeftToOriginX:s({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:s({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(t){t.beginPath();var e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;var i=t.strokeStyle;t.strokeStyle=this.stroke||t.fillStyle,this.stroke&&this._renderStroke(t),t.strokeStyle=i},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(t){return i(this.callSuper("toObject",t),this.calcLinePoints())},_getNonTransformedDimensions:function(){var t=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t},calcLinePoints:function(){var t=this.x1<=this.x2?-1:1,e=this.y1<=this.y2?-1:1,i=t*this.width*.5,r=e*this.height*.5;return{x1:i,x2:t*this.width*-.5,y1:r,y2:e*this.height*-.5}},_toSVG:function(){var t=this.calcLinePoints();return["\n']}}),e.Line.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),e.Line.fromElement=function(t,r,n){n=n||{};var s=e.parseAttributes(t,e.Line.ATTRIBUTE_NAMES),o=[s.x1||0,s.y1||0,s.x2||0,s.y2||0];r(new e.Line(o,i(s,n)))},e.Line.fromObject=function(t,i){var n=r(t,!0);n.points=[t.x1,t.y1,t.x2,t.y2],e.Object._fromObject("Line",n,(function(t){delete t.points,i&&i(t)}),"points")})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians;e.Circle?e.warn("fabric.Circle is already defined."):(e.Circle=e.util.createClass(e.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,cacheProperties:e.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(t,e){return this.callSuper("_set",t,e),"radius"===t&&this.setRadius(e),this},toObject:function(t){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(t))},_toSVG:function(){var t,r=(this.endAngle-this.startAngle)%360;if(0===r)t=["\n'];else{var n=i(this.startAngle),s=i(this.endAngle),o=this.radius;t=['180?"1":"0")+" 1"," "+e.util.cos(s)*o+" "+e.util.sin(s)*o,'" ',"COMMON_PARTS"," />\n"]}return t},_render:function(t){t.beginPath(),t.arc(0,0,this.radius,i(this.startAngle),i(this.endAngle),!1),this._renderPaintInOrder(t)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}}),e.Circle.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),e.Circle.fromElement=function(t,i){var r,n=e.parseAttributes(t,e.Circle.ATTRIBUTE_NAMES);if(!("radius"in(r=n)&&r.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");n.left=(n.left||0)-n.radius,n.top=(n.top||0)-n.radius,i(new e.Circle(n))},e.Circle.fromObject=function(t,i){e.Object._fromObject("Circle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={});e.Triangle?e.warn("fabric.Triangle is already defined"):(e.Triangle=e.util.createClass(e.Object,{type:"triangle",width:100,height:100,_render:function(t){var e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,i),t.lineTo(0,-i),t.lineTo(e,i),t.closePath(),this._renderPaintInOrder(t)},_toSVG:function(){var t=this.width/2,e=this.height/2;return["']}}),e.Triangle.fromObject=function(t,i){return e.Object._fromObject("Triangle",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=2*Math.PI;e.Ellipse?e.warn("fabric.Ellipse is already defined."):(e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this.set("rx",t&&t.rx||0),this.set("ry",t&&t.ry||0)},_set:function(t,e){switch(this.callSuper("_set",t,e),t){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']},_render:function(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,i,!1),t.restore(),this._renderPaintInOrder(t)}}),e.Ellipse.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),e.Ellipse.fromElement=function(t,i){var r=e.parseAttributes(t,e.Ellipse.ATTRIBUTE_NAMES);r.left=(r.left||0)-r.rx,r.top=(r.top||0)-r.ry,i(new e.Ellipse(r))},e.Ellipse.fromObject=function(t,i){e.Object._fromObject("Ellipse",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend;e.Rect?e.warn("fabric.Rect is already defined"):(e.Rect=e.util.createClass(e.Object,{stateProperties:e.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(t){var e=this.rx?Math.min(this.rx,this.width/2):0,i=this.ry?Math.min(this.ry,this.height/2):0,r=this.width,n=this.height,s=-this.width/2,o=-this.height/2,a=0!==e||0!==i,h=.4477152502;t.beginPath(),t.moveTo(s+e,o),t.lineTo(s+r-e,o),a&&t.bezierCurveTo(s+r-h*e,o,s+r,o+h*i,s+r,o+i),t.lineTo(s+r,o+n-i),a&&t.bezierCurveTo(s+r,o+n-h*i,s+r-h*e,o+n,s+r-e,o+n),t.lineTo(s+e,o+n),a&&t.bezierCurveTo(s+h*e,o+n,s,o+n-h*i,s,o+n-i),t.lineTo(s,o+i),a&&t.bezierCurveTo(s,o+h*i,s+h*e,o,s+e,o),t.closePath(),this._renderPaintInOrder(t)},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["\n']}}),e.Rect.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),e.Rect.fromElement=function(t,r,n){if(!t)return r(null);n=n||{};var s=e.parseAttributes(t,e.Rect.ATTRIBUTE_NAMES);s.left=s.left||0,s.top=s.top||0,s.height=s.height||0,s.width=s.width||0;var o=new e.Rect(i(n?e.util.object.clone(n):{},s));o.visible=o.visible&&o.width>0&&o.height>0,r(o)},e.Rect.fromObject=function(t,i){return e.Object._fromObject("Rect",t,i)})}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.array.min,n=e.util.array.max,s=e.util.toFixed,o=e.util.projectStrokeOnPoints;e.Polyline?e.warn("fabric.Polyline is already defined"):(e.Polyline=e.util.createClass(e.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:e.Object.prototype.cacheProperties.concat("points"),initialize:function(t,e){e=e||{},this.points=t||[],this.callSuper("initialize",e),this._setPositionDimensions(e)},_projectStrokeOnPoints:function(){return o(this.points,this,!0)},_setPositionDimensions:function(t){var e,i=this._calcDimensions(t),r=this.exactBoundingBox?this.strokeWidth:0;this.width=i.width-r,this.height=i.height-r,t.fromSVG||(e=this.translateToGivenOrigin({x:i.left-this.strokeWidth/2+r/2,y:i.top-this.strokeWidth/2+r/2},"left","top",this.originX,this.originY)),void 0===t.left&&(this.left=t.fromSVG?i.left:e.x),void 0===t.top&&(this.top=t.fromSVG?i.top:e.y),this.pathOffset={x:i.left+this.width/2+r/2,y:i.top+this.height/2+r/2}},_calcDimensions:function(){var t=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,e=r(t,"x")||0,i=r(t,"y")||0;return{left:e,top:i,width:(n(t,"x")||0)-e,height:(n(t,"y")||0)-i}},toObject:function(t){return i(this.callSuper("toObject",t),{points:this.points.concat()})},_toSVG:function(){for(var t=[],i=this.pathOffset.x,r=this.pathOffset.y,n=e.Object.NUM_FRACTION_DIGITS,o=0,a=this.points.length;o\n']},commonRender:function(t){var e,i=this.points.length,r=this.pathOffset.x,n=this.pathOffset.y;if(!i||isNaN(this.points[i-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-r,this.points[0].y-n);for(var s=0;s"},toObject:function(t){return n(this.callSuper("toObject",t),{path:this.path.map((function(t){return t.slice()}))})},toDatalessObject:function(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e},_toSVG:function(){return["\n"]},_getOffsetTransform:function(){var t=e.Object.NUM_FRACTION_DIGITS;return" translate("+o(-this.pathOffset.x,t)+", "+o(-this.pathOffset.y,t)+")"},toClipPathSVG:function(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},toSVG:function(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var t,n,s=[],o=[],a=0,h=0,l=0,c=0,u=0,d=this.path.length;u"},addWithUpdate:function(t){var i=!!this.group;return this._restoreObjectsState(),e.util.resetObjectTransform(this),t&&(i&&e.util.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,i?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(t){return this._restoreObjectsState(),e.util.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)},_onObjectRemoved:function(t){this.dirty=!0,delete t.group},_set:function(t,i){var r=this._objects.length;if(this.useSetOnGroup)for(;r--;)this._objects[r].setOnGroup(t,i);if("canvas"===t)for(;r--;)this._objects[r]._set(t,i);e.Object.prototype._set.call(this,t,i)},toObject:function(t){var i=this.includeDefaultValues,r=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(e){var r=e.includeDefaultValues;e.includeDefaultValues=i;var n=e.toObject(t);return e.includeDefaultValues=r,n})),n=e.Object.prototype.toObject.call(this,t);return n.objects=r,n},toDatalessObject:function(t){var i,r=this.sourcePath;if(r)i=r;else{var n=this.includeDefaultValues;i=this._objects.map((function(e){var i=e.includeDefaultValues;e.includeDefaultValues=n;var r=e.toDatalessObject(t);return e.includeDefaultValues=i,r}))}var s=e.Object.prototype.toDatalessObject.call(this,t);return s.objects=i,s},render:function(t){this._transformDone=!0,this.callSuper("render",t),this._transformDone=!1},shouldCache:function(){var t=e.Object.prototype.shouldCache.call(this);if(t)for(var i=0,r=this._objects.length;i\n"],i=0,r=this._objects.length;i\n"),e},getSvgStyles:function(){var t=void 0!==this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")},toClipPathSVG:function(t){for(var e=[],i=0,r=this._objects.length;i"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",t,e),void 0===(i=i||{}).hasControls&&(i.hasControls=!1),i.forActiveSelection=!0;for(var r=0,n=this._objects.length;r\n','\t\n',"\n"),o=' clip-path="url(#imageCrop_'+h+')" '}if(this.imageSmoothing||(a='" image-rendering="optimizeSpeed'),i.push("\t\n"),this.stroke||this.strokeDashArray){var l=this.fill;this.fill=null,t=["\t\n'],this.fill=l}return"fill"!==this.paintFirst?e.concat(t,i):e.concat(i,t)},getSrc:function(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""},setSrc:function(t,e,i){return b.util.loadImage(t,(function(t,r){this.setElement(t,i),this._setWidthHeight(),e&&e(this,r)}),this,i&&i.crossOrigin),this},toString:function(){return'#'},applyResizeFilters:function(){var t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),r=i.scaleX,n=i.scaleY,s=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||r>e&&n>e)return this._element=s,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=r,void(this._lastScaleY=n);b.filterBackend||(b.filterBackend=b.initFilterBackend());var o=b.util.createCanvasElement(),a=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,h=s.width,l=s.height;o.width=h,o.height=l,this._element=o,this._lastScaleX=t.scaleX=r,this._lastScaleY=t.scaleY=n,b.filterBackend.applyFilters([t],s,h,l,this._element,a),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height},applyFilters:function(t){if(t=(t=t||this.filters||[]).filter((function(t){return t&&!t.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===t.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var e=this._originalElement,i=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(this._element===this._originalElement){var n=b.util.createCanvasElement();n.width=i,n.height=r,this._element=n,this._filteredEl=n}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,r),this._lastScaleX=1,this._lastScaleY=1;return b.filterBackend||(b.filterBackend=b.initFilterBackend()),b.filterBackend.applyFilters(t,this._originalElement,i,r,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)},drawCacheOnCanvas:function(t){b.util.setImageSmoothing(t,this.imageSmoothing),b.Object.prototype.drawCacheOnCanvas.call(this,t)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(t){var e=this._element;if(e){var i=this._filterScalingX,r=this._filterScalingY,n=this.width,s=this.height,o=Math.min,a=Math.max,h=a(this.cropX,0),l=a(this.cropY,0),c=e.naturalWidth||e.width,u=e.naturalHeight||e.height,d=h*i,f=l*r,g=o(n*i,c-d),m=o(s*r,u-f),p=-n/2,_=-s/2,v=o(n,c/i-h),y=o(s,u/r-l);e&&t.drawImage(e,d,f,g,m,p,_,v,y)}},_needsResize:function(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(t,e){this.setElement(b.util.getById(t),e),b.util.addClass(this.getElement(),b.Image.CSS_CANVAS)},_initConfig:function(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)},_initFilters:function(t,e){t&&t.length?b.util.enlivenObjects(t,(function(t){e&&e(t)}),"fabric.Image.filters"):e&&e()},_setWidthHeight:function(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0},parsePreserveAspectRatioAttribute:function(){var t,e=b.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),i=this._element.width,r=this._element.height,n=1,s=1,o=0,a=0,h=0,l=0,c=this.width,u=this.height,d={width:c,height:u};return!e||"none"===e.alignX&&"none"===e.alignY?(n=c/i,s=u/r):("meet"===e.meetOrSlice&&(t=(c-i*(n=s=b.util.findScaleToFit(this._element,d)))/2,"Min"===e.alignX&&(o=-t),"Max"===e.alignX&&(o=t),t=(u-r*s)/2,"Min"===e.alignY&&(a=-t),"Max"===e.alignY&&(a=t)),"slice"===e.meetOrSlice&&(t=i-c/(n=s=b.util.findScaleToCover(this._element,d)),"Mid"===e.alignX&&(h=t/2),"Max"===e.alignX&&(h=t),t=r-u/s,"Mid"===e.alignY&&(l=t/2),"Max"===e.alignY&&(l=t),i=c/n,r=u/s)),{width:i,height:r,scaleX:n,scaleY:s,offsetLeft:o,offsetTop:a,cropX:h,cropY:l}}}),b.Image.CSS_CANVAS="canvas-img",b.Image.prototype.getSvgSrc=b.Image.prototype.getSrc,b.Image.fromObject=function(t,e){var i=b.util.object.clone(t);b.util.loadImage(i.src,(function(t,r){r?e&&e(null,!0):b.Image.prototype._initFilters.call(i,i.filters,(function(r){i.filters=r||[],b.Image.prototype._initFilters.call(i,[i.resizeFilter],(function(r){i.resizeFilter=r[0],b.util.enlivenObjectEnlivables(i,i,(function(){var r=new b.Image(t,i);e(r,!1)}))}))}))}),null,i.crossOrigin)},b.Image.fromURL=function(t,e,i){b.util.loadImage(t,(function(t,r){e&&e(new b.Image(t,i),r)}),null,i&&i.crossOrigin)},b.Image.ATTRIBUTE_NAMES=b.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),b.Image.fromElement=function(t,i,r){var n=b.parseAttributes(t,b.Image.ATTRIBUTE_NAMES);b.Image.fromURL(n["xlink:href"],i,e(r?b.util.object.clone(r):{},n))})}(e),b.util.object.extend(b.Object.prototype,{_getAngleValueForStraighten:function(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten())},fxStraighten:function(t){var e=function(){},i=(t=t||{}).onComplete||e,r=t.onChange||e,n=this;return b.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(t){n.rotate(t),r()},onComplete:function(){n.setCoords(),i()}})}}),b.util.object.extend(b.StaticCanvas.prototype,{straightenObject:function(t){return t.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(t){return t.fxStraighten({onChange:this.requestRenderAllBound})}}),function(){function t(t,e){var i="precision "+e+" float;\nvoid main(){}",r=t.createShader(t.FRAGMENT_SHADER);return t.shaderSource(r,i),t.compileShader(r),!!t.getShaderParameter(r,t.COMPILE_STATUS)}function e(t){t&&t.tileSize&&(this.tileSize=t.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}b.isWebglSupported=function(e){if(b.isLikelyNode)return!1;e=e||b.WebglFilterBackend.prototype.tileSize;var i=document.createElement("canvas"),r=i.getContext("webgl")||i.getContext("experimental-webgl"),n=!1;if(r){b.maxTextureSize=r.getParameter(r.MAX_TEXTURE_SIZE),n=b.maxTextureSize>=e;for(var s=["highp","mediump","lowp"],o=0;o<3;o++)if(t(r,s[o])){b.webGlPrecision=s[o];break}}return this.isSupported=n,n},b.WebglFilterBackend=e,e.prototype={tileSize:2048,resources:{},setupGLContext:function(t,e){this.dispose(),this.createWebGLCanvas(t,e),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(t,e)},chooseFastestCopyGLTo2DMethod:function(t,e){var i,r=void 0!==window.performance;try{new ImageData(1,1),i=!0}catch(t){i=!1}var n="undefined"!=typeof ArrayBuffer,s="undefined"!=typeof Uint8ClampedArray;if(r&&i&&n&&s){var o=b.util.createCanvasElement(),a=new ArrayBuffer(t*e*4);if(b.forceGLPutImageData)return this.imageBuffer=a,void(this.copyGLTo2D=x);var h,l,c={imageBuffer:a,destinationWidth:t,destinationHeight:e,targetCanvas:o};o.width=t,o.height=e,h=window.performance.now(),I.call(c,this.gl,c),l=window.performance.now()-h,h=window.performance.now(),x.call(c,this.gl,c),l>window.performance.now()-h?(this.imageBuffer=a,this.copyGLTo2D=x):this.copyGLTo2D=I}},createWebGLCanvas:function(t,e){var i=b.util.createCanvasElement();i.width=t,i.height=e;var r={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},n=i.getContext("webgl",r);n||(n=i.getContext("experimental-webgl",r)),n&&(n.clearColor(0,0,0,0),this.canvas=i,this.gl=n)},applyFilters:function(t,e,i,r,n,s){var o,a=this.gl;s&&(o=this.getCachedTexture(s,e));var h={originalWidth:e.width||e.originalWidth,originalHeight:e.height||e.originalHeight,sourceWidth:i,sourceHeight:r,destinationWidth:i,destinationHeight:r,context:a,sourceTexture:this.createTexture(a,i,r,!o&&e),targetTexture:this.createTexture(a,i,r),originalTexture:o||this.createTexture(a,i,r,!o&&e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:n},l=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,l),t.forEach((function(t){t&&t.applyTo(h)})),function(t){var e=t.targetCanvas,i=e.width,r=e.height,n=t.destinationWidth,s=t.destinationHeight;i===n&&r===s||(e.width=n,e.height=s)}(h),this.copyGLTo2D(a,h),a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(h.sourceTexture),a.deleteTexture(h.targetTexture),a.deleteFramebuffer(l),n.getContext("2d").setTransform(1,0,0,1,0,0),h},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(t,e,i,r){var n=t.createTexture();return t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),r?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),n},getCachedTexture:function(t,e){if(this.textureCache[t])return this.textureCache[t];var i=this.createTexture(this.gl,e.width,e.height,e);return this.textureCache[t]=i,i},evictCachesForKey:function(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])},copyGLTo2D:I,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var t=this.gl,e={renderer:"",vendor:""};if(!t)return e;var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var r=t.getParameter(i.UNMASKED_RENDERER_WEBGL),n=t.getParameter(i.UNMASKED_VENDOR_WEBGL);r&&(e.renderer=r.toLowerCase()),n&&(e.vendor=n.toLowerCase())}return this.gpuInfo=e,e}}}(),function(){var t=function(){};function e(){}b.Canvas2dFilterBackend=e,e.prototype={evictCachesForKey:t,dispose:t,clearWebGLCaches:t,resources:{},applyFilters:function(t,e,i,r,n){var s=n.getContext("2d");s.drawImage(e,0,0,i,r);var o={sourceWidth:i,sourceHeight:r,imageData:s.getImageData(0,0,i,r),originalEl:e,originalImageData:s.getImageData(0,0,i,r),canvasEl:n,ctx:s,filterBackend:this};return t.forEach((function(t){t.applyTo(o)})),o.imageData.width===i&&o.imageData.height===r||(n.width=o.imageData.width,n.height=o.imageData.height),s.putImageData(o.imageData,0,0),o}}}(),b.Image=b.Image||{},b.Image.filters=b.Image.filters||{},b.Image.filters.BaseFilter=b.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(t){t&&this.setOptions(t)},setOptions:function(t){for(var e in t)this[e]=t[e]},createProgram:function(t,e,i){e=e||this.fragmentSource,i=i||this.vertexSource,"highp"!==b.webGlPrecision&&(e=e.replace(/precision highp float/g,"precision "+b.webGlPrecision+" float"));var r=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+t.getShaderInfoLog(r));var n=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+t.getShaderInfoLog(n));var s=t.createProgram();if(t.attachShader(s,r),t.attachShader(s,n),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+t.getProgramInfoLog(s));var o=this.getAttributeLocations(t,s),a=this.getUniformLocations(t,s)||{};return a.uStepW=t.getUniformLocation(s,"uStepW"),a.uStepH=t.getUniformLocation(s,"uStepH"),{program:s,attributeLocations:o,uniformLocations:a}},getAttributeLocations:function(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(t,e,i){var r=e.aPosition,n=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,n),t.enableVertexAttribArray(r),t.vertexAttribPointer(r,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)},_setupFrameBuffer:function(t){var e,i,r=t.context;t.passes>1?(e=t.destinationWidth,i=t.destinationHeight,t.sourceWidth===e&&t.sourceHeight===i||(r.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(r,e,i)),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t.targetTexture,0)):(r.bindFramebuffer(r.FRAMEBUFFER,null),r.finish())},_swapTextures:function(t){t.passes--,t.pass++;var e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e},isNeutralState:function(){var t=this.mainParameter,e=b.Image.filters[this.type].prototype;if(t){if(Array.isArray(e[t])){for(var i=e[t].length;i--;)if(this[t][i]!==e[t][i])return!1;return!0}return e[t]===this[t]}return!1},applyTo:function(t){t.webgl?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},retrieveShader:function(t){return t.programCache.hasOwnProperty(this.type)||(t.programCache[this.type]=this.createProgram(t.context)),t.programCache[this.type]},applyToWebGL:function(t){var e=t.context,i=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(i.program),this.sendAttributeData(e,i.attributeLocations,t.aPosition),e.uniform1f(i.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(i.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,i.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)},unbindAdditionalTexture:function(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(t){this[this.mainParameter]=t},sendUniformData:function(){},createHelpLayer:function(t){if(!t.helpLayer){var e=document.createElement("canvas");e.width=t.sourceWidth,e.height=t.sourceHeight,t.helpLayer=e}},toObject:function(){var t={type:this.type},e=this.mainParameter;return e&&(t[e]=this[e]),t},toJSON:function(){return this.toObject()}}),b.Image.filters.BaseFilter.fromObject=function(t,e){var i=new b.Image.filters[t.type](t);return e&&e(i),i},function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.ColorMatrix=r(i.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(t){this.callSuper("initialize",t),this.matrix=this.matrix.slice(0)},applyTo2d:function(t){var e,i,r,n,s,o=t.imageData.data,a=o.length,h=this.matrix,l=this.colorsOnly;for(s=0;s=w||o<0||o>=y||(h=4*(a*y+o),l=p[f*_+d],e+=m[h]*l,i+=m[h+1]*l,r+=m[h+2]*l,T||(n+=m[h+3]*l));C[s]=e,C[s+1]=i,C[s+2]=r,C[s+3]=T?m[s+3]:n}t.imageData=E},getUniformLocations:function(t,e){return{uMatrix:t.getUniformLocation(e,"uMatrix"),uOpaque:t.getUniformLocation(e,"uOpaque"),uHalfSize:t.getUniformLocation(e,"uHalfSize"),uSize:t.getUniformLocation(e,"uSize")}},sendUniformData:function(t,e){t.uniform1fv(e.uMatrix,this.matrix)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),e.Image.filters.Convolute.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Grayscale=r(i.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(t){var e,i,r=t.imageData.data,n=r.length,s=this.mode;for(e=0;el[0]&&n>l[1]&&s>l[2]&&r 0.0) {\n"+this.fragmentSource[t]+"}\n}"},retrieveShader:function(t){var e,i=this.type+"_"+this.mode;return t.programCache.hasOwnProperty(i)||(e=this.buildSource(this.mode),t.programCache[i]=this.createProgram(t.context,e)),t.programCache[i]},applyTo2d:function(t){var i,r,n,s,o,a,h,l=t.imageData.data,c=l.length,u=1-this.alpha;i=(h=new e.Color(this.color).getSource())[0]*this.alpha,r=h[1]*this.alpha,n=h[2]*this.alpha;for(var d=0;d=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;var i=(e*=Math.PI)/t;return a(e)/e*a(i)/i}},applyTo2d:function(t){var e=t.imageData,i=this.scaleX,r=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/r;var n,s=e.width,a=e.height,h=o(s*i),l=o(a*r);"sliceHack"===this.resizeType?n=this.sliceByTwo(t,s,a,h,l):"hermite"===this.resizeType?n=this.hermiteFastResize(t,s,a,h,l):"bilinear"===this.resizeType?n=this.bilinearFiltering(t,s,a,h,l):"lanczos"===this.resizeType&&(n=this.lanczosResize(t,s,a,h,l)),t.imageData=n},sliceByTwo:function(t,i,n,s,o){var a,h,l=t.imageData,c=.5,u=!1,d=!1,f=i*c,g=n*c,m=e.filterBackend.resources,p=0,_=0,v=i,y=0;for(m.sliceByTwo||(m.sliceByTwo=document.createElement("canvas")),((a=m.sliceByTwo).width<1.5*i||a.height=e)){L=r(1e3*s(b-E.x)),w[L]||(w[L]={});for(var F=C.y-y;F<=C.y+y;F++)F<0||F>=o||(M=r(1e3*s(F-E.y)),w[L][M]||(w[L][M]=f(n(i(L*p,2)+i(M*_,2))/1e3)),(S=w[L][M])>0&&(x+=S,A+=S*c[I=4*(F*e+b)],R+=S*c[I+1],O+=S*c[I+2],D+=S*c[I+3]))}d[I=4*(T*a+h)]=A/x,d[I+1]=R/x,d[I+2]=O/x,d[I+3]=D/x}return++h1&&M<-1||(y=2*M*M*M-3*M*M+1)>0&&(S+=y*f[3+(L=4*(D+x*e))],E+=y,f[L+3]<255&&(y=y*f[L+3]/250),C+=y*f[L],T+=y*f[L+1],b+=y*f[L+2],w+=y)}m[v]=C/w,m[v+1]=T/w,m[v+2]=b/w,m[v+3]=S/E}return g},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),e.Image.filters.Resize.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Contrast=r(i.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(t){if(0!==this.contrast){var e,i=t.imageData.data,r=i.length,n=Math.floor(255*this.contrast),s=259*(n+255)/(255*(259-n));for(e=0;e1&&(e=1/this.aspectRatio):this.aspectRatio<1&&(e=this.aspectRatio),t=e*this.blur*.12,this.horizontal?i[0]=t:i[1]=t,i}}),i.Blur.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Gamma=r(i.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(t){this.gamma=[1,1,1],i.BaseFilter.prototype.initialize.call(this,t)},applyTo2d:function(t){var e,i=t.imageData.data,r=this.gamma,n=i.length,s=1/r[0],o=1/r[1],a=1/r[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),e=0,n=256;e'},_getCacheCanvasDimensions:function(){var t=this.callSuper("_getCacheCanvasDimensions"),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t},_render:function(t){var e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")},_renderText:function(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))},_setTextStyles:function(t,e,i){if(t.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":t.textBaseline="middle";break;case"ascender":t.textBaseline="top";break;case"descender":t.textBaseline="bottom"}t.font=this._getFontDeclaration(e,i)},calcTextWidth:function(){for(var t=this.getLineWidth(0),e=1,i=this._textLines.length;et&&(t=r)}return t},_renderTextLine:function(t,e,i,r,n,s){this._renderChars(t,e,i,r,n,s)},_renderTextLinesBackground:function(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,i,r,n,s,o,a,h=t.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),u=0,d=0,f=this.path,g=0,m=this._textLines.length;g=0:ia?u%=a:u<0&&(u+=a),this._setGraphemeOnPath(u,s,o),u+=s.kernedWidth}return{width:h,numOfSpaces:0}},_setGraphemeOnPath:function(t,i,r){var n=t+i.kernedWidth/2,s=this.path,o=e.util.getPointOnPath(s.path,n,s.segmentsInfo);i.renderLeft=o.x-r.x,i.renderTop=o.y-r.y,i.angle=o.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(t,e,i,r,n){var s,o=this.getCompleteStyleDeclaration(e,i),a=r?this.getCompleteStyleDeclaration(e,i-1):{},h=this._measureChar(t,o,r,a),l=h.kernedWidth,c=h.width;0!==this.charSpacing&&(c+=s=this._getWidthOfCharSpacing(),l+=s);var u={width:c,left:0,height:o.fontSize,kernedWidth:l,deltaY:o.deltaY};if(i>0&&!n){var d=this.__charBounds[e][i-1];u.left=d.left+d.width+h.kernedWidth-h.width}return u},getHeightOfLine:function(t){if(this.__lineHeights[t])return this.__lineHeights[t];for(var e=this._textLines[t],i=this.getHeightOfChar(t,0),r=1,n=e.length;r0){var x=v+s+u;"rtl"===this.direction&&(x=this.width-x-d),l&&_&&(t.fillStyle=_,t.fillRect(x,c+C*r+o,d,this.fontSize/15)),u=f.left,d=f.width,l=g,_=p,r=n,o=a}else d+=f.kernedWidth;x=v+s+u,"rtl"===this.direction&&(x=this.width-x-d),t.fillStyle=p,g&&p&&t.fillRect(x,c+C*r+o,d-E,this.fontSize/15),y+=i}else y+=i;this._removeShadow(t)}},_getFontDeclaration:function(t,i){var r=t||this,n=this.fontFamily,s=e.Text.genericFonts.indexOf(n.toLowerCase())>-1,o=void 0===n||n.indexOf("'")>-1||n.indexOf(",")>-1||n.indexOf('"')>-1||s?r.fontFamily:'"'+r.fontFamily+'"';return[e.isLikelyNode?r.fontWeight:r.fontStyle,e.isLikelyNode?r.fontStyle:r.fontWeight,i?this.CACHE_FONT_SIZE+"px":r.fontSize+"px",o].join(" ")},render:function(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",t)))},_splitTextIntoLines:function(t){for(var i=t.split(this._reNewline),r=new Array(i.length),n=["\n"],s=[],o=0;o-1&&(t.underline=!0),t.textDecoration.indexOf("line-through")>-1&&(t.linethrough=!0),t.textDecoration.indexOf("overline")>-1&&(t.overline=!0),delete t.textDecoration)}b.IText=b.util.createClass(b.Text,b.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(t,e){this.callSuper("initialize",t,e),this.initBehavior()},setSelectionStart:function(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)},setSelectionEnd:function(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)},_updateAndFire:function(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(t){this.clearContextTop(),this.callSuper("render",t),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(t){this.callSuper("_render",t)},clearContextTop:function(t){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this.canvas.contextTop,i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e),this._clearTextArea(e),t||e.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this._getCursorBoundaries(),e=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(t,e):this.renderSelection(t,e),e.restore()}},_clearTextArea:function(t){var e=this.width+4,i=this.height+4;t.clearRect(-e/2,-i/2,e,i)},_getCursorBoundaries:function(t){void 0===t&&(t=this.selectionStart);var e=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t);return{left:e,top:i,leftOffset:r.left,topOffset:r.top}},_getCursorBoundariesOffsets:function(t){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var e,i,r,n,s=0,o=0,a=this.get2DCursorLocation(t);r=a.charIndex,i=a.lineIndex;for(var h=0;h0?o:0)},"rtl"===this.direction&&(n.left*=-1),this.cursorOffsetCache=n,this.cursorOffsetCache},renderCursor:function(t,e){var i=this.get2DCursorLocation(),r=i.lineIndex,n=i.charIndex>0?i.charIndex-1:0,s=this.getValueOfPropertyAt(r,n,"fontSize"),o=this.scaleX*this.canvas.getZoom(),a=this.cursorWidth/o,h=t.topOffset,l=this.getValueOfPropertyAt(r,n,"deltaY");h+=(1-this._fontSizeFraction)*this.getHeightOfLine(r)/this.lineHeight-s*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(t,e),e.fillStyle=this.cursorColor||this.getValueOfPropertyAt(r,n,"fill"),e.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,e.fillRect(t.left+t.leftOffset-a/2,h+t.top+l,a,s)},renderSelection:function(t,e){for(var i=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,r=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,n=-1!==this.textAlign.indexOf("justify"),s=this.get2DCursorLocation(i),o=this.get2DCursorLocation(r),a=s.lineIndex,h=o.lineIndex,l=s.charIndex<0?0:s.charIndex,c=o.charIndex<0?0:o.charIndex,u=a;u<=h;u++){var d,f=this._getLineLeftOffset(u)||0,g=this.getHeightOfLine(u),m=0,p=0;if(u===a&&(m=this.__charBounds[a][l].left),u>=a&&u1)&&(g/=this.lineHeight);var v=t.left+f+m,y=p-m,w=g,E=0;this.inCompositionMode?(e.fillStyle=this.compositionColor||"black",w=1,E=g):e.fillStyle=this.selectionColor,"rtl"===this.direction&&(v=this.width-v-y),e.fillRect(v,t.top+t.topOffset+E,y,w),t.topOffset+=d}},getCurrentCharFontSize:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")},getCurrentCharColor:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fill")},_getCurrentCharIndex:function(){var t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}}),b.IText.fromObject=function(e,i){if(t(e),e.styles)for(var r in e.styles)for(var n in e.styles[r])t(e.styles[r][n]);b.Object._fromObject("IText",e,i,"text")}}(),T=b.util.object.clone,b.util.object.extend(b.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var t=this;this.on("added",(function(){var e=t.canvas;e&&(e._hasITextHandlers||(e._hasITextHandlers=!0,t._initCanvasHandlers(e)),e._iTextInstances=e._iTextInstances||[],e._iTextInstances.push(t))}))},initRemovedHandler:function(){var t=this;this.on("removed",(function(){var e=t.canvas;e&&(e._iTextInstances=e._iTextInstances||[],b.util.removeFromArray(e._iTextInstances,t),0===e._iTextInstances.length&&(e._hasITextHandlers=!1,t._removeCanvasHandlers(e)))}))},_initCanvasHandlers:function(t){t._mouseUpITextHandler=function(){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.__isMousedown=!1}))},t.on("mouse:up",t._mouseUpITextHandler)},_removeCanvasHandlers:function(t){t.off("mouse:up",t._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(t,e,i,r){var n;return n={isAborted:!1,abort:function(){this.isAborted=!0}},t.animate("_currentCursorOpacity",e,{duration:i,onComplete:function(){n.isAborted||t[r]()},onChange:function(){t.canvas&&t.selectionStart===t.selectionEnd&&t.renderCursorOrSelection()},abort:function(){return n.isAborted}}),n},_onTickComplete:function(){var t=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){t._currentTickCompleteState=t._animateCursor(t,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(t){var e=this,i=t?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){e._tick()}),i)},abortCursorAnimation:function(){var t=this._currentTickState||this._currentTickCompleteState,e=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,t&&e&&e.clearContext(e.contextTop||e.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(t){var e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/\S/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findWordBoundaryRight:function(t){var e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/\S/.test(this._text[i])&&i-1;)e++,i--;return t-e},findLineBoundaryRight:function(t){for(var e=0,i=t;!/\n/.test(this._text[i])&&i0&&rthis.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=e):(this.selectionStart=e,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(t,e,i){var r=i.slice(0,t),n=b.util.string.graphemeSplit(r).length;if(t===e)return{selectionStart:n,selectionEnd:n};var s=i.slice(t,e);return{selectionStart:n,selectionEnd:n+b.util.string.graphemeSplit(s).length}},fromGraphemeToStringSelection:function(t,e,i){var r=i.slice(0,t).join("").length;return t===e?{selectionStart:r,selectionEnd:r}:{selectionStart:r,selectionEnd:r+i.slice(t,e).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var t=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=t.selectionEnd,this.inCompositionMode||(this.selectionStart=t.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),r=i.lineIndex,n=i.charIndex,s=this.getValueOfPropertyAt(r,n,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.calcTransformMatrix(),h={x:e.left+o,y:e.top+e.topOffset+s},l=this.canvas.getRetinaScaling(),c=this.canvas.upperCanvasEl,u=c.width/l,d=c.height/l,f=u-s,g=d-s,m=c.clientWidth/u,p=c.clientHeight/d;return h=b.util.transformPoint(h,a),(h=b.util.transformPoint(h,this.canvas.viewportTransform)).x*=m,h.y*=p,h.x<0&&(h.x=0),h.x>f&&(h.x=f),h.y<0&&(h.y=0),h.y>g&&(h.y=g),h.x+=this.canvas._offset.left,h.y+=this.canvas._offset.top,{left:h.x+"px",top:h.y+"px",fontSize:s+"px",charHeight:s}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var t=this._textBeforeEdit!==this.text,e=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,e&&(e.blur&&e.blur(),e.parentNode&&e.parentNode.removeChild(e)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var t in this.styles)this._textLines[t]||delete this.styles[t]},removeStyleFromTo:function(t,e){var i,r,n=this.get2DCursorLocation(t,!0),s=this.get2DCursorLocation(e,!0),o=n.lineIndex,a=n.charIndex,h=s.lineIndex,l=s.charIndex;if(o!==h){if(this.styles[o])for(i=a;i=l&&(r[c-d]=r[u],delete r[u])}},shiftLineStyles:function(t,e){var i=T(this.styles);for(var r in this.styles){var n=parseInt(r,10);n>t&&(this.styles[n+e]=i[n],i[n-e]||delete this.styles[n])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,e,i,r){var n,s={},o=!1,a=this._unwrappedTextLines[t].length===e;for(var h in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(n=this.styles[t][0===e?e:e-1]),this.styles[t]){var l=parseInt(h,10);l>=e&&(o=!0,s[l-e]=this.styles[t][h],a&&0===e||delete this.styles[t][h])}var c=!1;for(o&&!a&&(this.styles[t+i]=s,c=!0),c&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:T(r[i-1])}:n?this.styles[t+i]={0:T(n)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,e,i,r){this.styles||(this.styles={});var n=this.styles[t],s=n?T(n):{};for(var o in i||(i=1),s){var a=parseInt(o,10);a>=e&&(n[a+i]=s[a],s[a-i]||delete n[a])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=T(r[i]));else if(n)for(var h=n[e?e-1:1];h&&i--;)this.styles[t][e+i]=T(h)},insertNewStyleBlock:function(t,e,i){for(var r=this.get2DCursorLocation(e,!0),n=[0],s=0,o=0;o0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),s&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+n[0],s),o=1;o0?this.insertCharStyleObject(r.lineIndex+o,0,n[o],i):i&&this.styles[r.lineIndex+o]&&i[0]&&(this.styles[r.lineIndex+o][0]=i[0]),i=i&&i.slice(n[o]+1);n[o]>0&&this.insertCharStyleObject(r.lineIndex+o,0,n[o],i)},setSelectionStartEndWithShift:function(t,e,i){i<=t?(e===t?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=t),this.selectionStart=i):i>t&&it?this.selectionStart=t:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>t?this.selectionEnd=t:this.selectionEnd<0&&(this.selectionEnd=0)}}),b.util.object.extend(b.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(t){if(this.canvas){this.__newClickTime=+new Date;var e=t.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",t),this._stopEvent(t.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(t){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===t.x&&this.__lastPointer.y===t.y},_stopEvent:function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(t){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(t.e))},tripleClickHandler:function(t){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(t.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(t.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(t){if(this.__isMousedown=!1,!(!this.editable||this.group||t.transform&&t.transform.actionPerformed||t.e.button&&1!==t.e.button)){if(this.canvas){var e=this.canvas._activeObject;if(e&&e!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(t.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(t){var e=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,r,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(t){for(var e,i=this.getLocalPointer(t),r=0,n=0,s=0,o=0,a=0,h=0,l=this._textLines.length;h0&&(o+=this._textLines[h-1].length+this.missingNewlineOffset(h-1));n=this._getLineLeftOffset(a)*this.scaleX,e=this._textLines[a],"rtl"===this.direction&&(i.x=this.width*this.scaleX-i.x+n);for(var c=0,u=e.length;cs||o<0?0:1);return this.flipX&&(a=n-a),a>this._text.length&&(a=this._text.length),a}}),b.util.object.extend(b.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=b.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var t=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+t.top+"; left: "+t.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; paddingーtop: "+t.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):b.document.body.appendChild(this.hiddenTextarea),b.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),b.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),b.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),b.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),b.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),b.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(b.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(t){if(this.isEditing){var e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(t){var e=this.fromPaste;if(this.fromPaste=!1,t&&t.stopPropagation(),this.isEditing){var i,r,n,s,o,a=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,h=this._text.length,l=a.length,c=l-h,u=this.selectionStart,d=this.selectionEnd,f=u!==d;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var g=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),m=u>g.selectionStart;f?(i=this._text.slice(u,d),c+=d-u):l0&&(r+=(i=this.__charBounds[t][e-1]).left+i.width),r},getDownCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(n===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n+1,o);return this._textLines[n].slice(s).length+a+1+this.missingNewlineOffset(n)},_getSelectionForOffset:function(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(0===n||t.metaKey||33===t.keyCode)return-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n-1,o),h=this._textLines[n].slice(0,s),l=this.missingNewlineOffset(n-1);return-this._textLines[n-1].length+a-h.length+(1-l)},_getIndexOnLine:function(t,e){for(var i,r,n=this._textLines[t],s=this._getLineLeftOffset(t),o=0,a=0,h=n.length;ae){r=!0;var l=s-i,c=s,u=Math.abs(l-e);o=Math.abs(c-e)=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)},moveCursorUp:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)},_moveCursorUpOrDown:function(t,e){var i=this["get"+t+"CursorOffset"](e,"right"===this._selectionDirection);e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(t){var e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t},moveCursorWithoutShift:function(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t},moveCursorLeft:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)},_move:function(t,e,i){var r;if(t.altKey)r=this["findWordBoundary"+i](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;r=this["findLineBoundary"+i](this[e])}if(void 0!==typeof r&&this[e]!==r)return this[e]=r,!0},_moveLeft:function(t,e){return this._move(t,e,"Left")},_moveRight:function(t,e){return this._move(t,e,"Right")},moveCursorLeftWithoutShift:function(t){var e=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e},moveCursorLeftWithShift:function(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(t,"selectionStart")):void 0},moveCursorRight:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)},_moveCursorLeftOrRight:function(t,e){var i="moveCursor"+t+"With";this._currentCursorOpacity=1,e.shiftKey?i+="Shift":i+="outShift",this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(t,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(t){var e=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e},removeChars:function(t,e){void 0===e&&(e=t+1),this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(t,e,i,r){void 0===r&&(r=i),r>i&&this.removeStyleFromTo(i,r);var n=b.util.string.graphemeSplit(t);this.insertNewStyleBlock(n,i,e),this._text=[].concat(this._text.slice(0,i),n,this._text.slice(r)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var t=b.util.toFixed,e=/ +/g;b.util.object.extend(b.Text.prototype,{_toSVG:function(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t",t.textSpans.join(""),"\n"]},_getSVGTextAndBg:function(t,e){var i,r=[],n=[],s=t;this._setSVGBg(n);for(var o=0,a=this._textLines.length;o",b.util.string.escapeXml(i),""].join("")},_setSVGTextLineText:function(t,e,i,r){var n,s,o,a,h,l=this.getHeightOfLine(e),c=-1!==this.textAlign.indexOf("justify"),u="",d=0,f=this._textLines[e];r+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var g=0,m=f.length-1;g<=m;g++)h=g===m||this.charSpacing,u+=f[g],o=this.__charBounds[e][g],0===d?(i+=o.kernedWidth-o.width,d+=o.width):d+=o.kernedWidth,c&&!h&&this._reSpaceAndTab.test(f[g])&&(h=!0),h||(n=n||this.getCompleteStyleDeclaration(e,g),s=this.getCompleteStyleDeclaration(e,g+1),h=this._hasStyleChangedForSvg(n,s)),h&&(a=this._getStyleDeclaration(e,g)||{},t.push(this._createTextCharSpan(u,a,i,r)),u="",n=s,i+=d,d=0)},_pushTextBgRect:function(e,i,r,n,s,o){var a=b.Object.NUM_FRACTION_DIGITS;e.push("\t\t\n')},_setSVGTextLineBg:function(t,e,i,r){for(var n,s,o=this._textLines[e],a=this.getHeightOfLine(e)/this.lineHeight,h=0,l=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),u=0,d=o.length;uthis.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(t){for(var e=0,i=0,r=0,n={},s=0;s0?(i=0,r++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[r])&&s>0&&(i++,r++),n[s]={line:e,offset:i},r+=t.graphemeLines[s].length,i+=t.graphemeLines[s].length;return n},styleHas:function(t,i){if(this._styleMap&&!this.isWrapping){var r=this._styleMap[i];r&&(i=r.line)}return e.Text.prototype.styleHas.call(this,t,i)},isEmptyStyles:function(t){if(!this.styles)return!0;var e,i,r=0,n=!1,s=this._styleMap[t],o=this._styleMap[t+1];for(var a in s&&(t=s.line,r=s.offset),o&&(n=o.line===t,e=o.offset),i=void 0===t?this.styles:{line:this.styles[t]})for(var h in i[a])if(h>=r&&(!n||hr&&!p?(a.push(h),h=[],s=f,p=!0):s+=_,p||o||h.push(d),h=h.concat(c),g=o?0:this._measureWord([d],i,u),u++,p=!1,f>m&&(m=f);return v&&a.push(h),m+n>this.dynamicMinWidth&&(this.dynamicMinWidth=m-_+n),a},isEndOfWrapping:function(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line},missingNewlineOffset:function(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1},_splitTextIntoLines:function(t){for(var i=e.Text.prototype._splitTextIntoLines.call(this,t),r=this._wrapText(i.lines,this.width),n=new Array(r.length),s=0;s{},898:()=>{},245:()=>{}},xe={};function Ae(t){var e=xe[t];if(void 0!==e)return e.exports;var i=xe[t]={exports:{}};return Ie[t](i,i.exports,Ae),i.exports}Ae.d=(t,e)=>{for(var i in e)Ae.o(e,i)&&!Ae.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},Ae.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Re={};(()=>{let t;Ae.d(Re,{R:()=>t}),t="undefined"!=typeof document&&"undefined"!=typeof window?Ae(653).fabric:{version:"5.2.1"}})();var Oe,De,Le,Me,Fe=Re.R;!function(t){t[t.DIMT_RECTANGLE=1]="DIMT_RECTANGLE",t[t.DIMT_QUADRILATERAL=2]="DIMT_QUADRILATERAL",t[t.DIMT_TEXT=4]="DIMT_TEXT",t[t.DIMT_ARC=8]="DIMT_ARC",t[t.DIMT_IMAGE=16]="DIMT_IMAGE",t[t.DIMT_POLYGON=32]="DIMT_POLYGON",t[t.DIMT_LINE=64]="DIMT_LINE",t[t.DIMT_GROUP=128]="DIMT_GROUP"}(Oe||(Oe={})),function(t){t[t.DIS_DEFAULT=1]="DIS_DEFAULT",t[t.DIS_SELECTED=2]="DIS_SELECTED"}(De||(De={})),function(t){t[t.EF_ENHANCED_FOCUS=4]="EF_ENHANCED_FOCUS",t[t.EF_AUTO_ZOOM=16]="EF_AUTO_ZOOM",t[t.EF_TAP_TO_FOCUS=64]="EF_TAP_TO_FOCUS"}(Le||(Le={})),function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(Me||(Me={}));const Pe=t=>"number"==typeof t&&!Number.isNaN(t),ke=t=>"string"==typeof t;var Be,Ne,Ue,je,Ge,We;!function(t){t[t.ARC=0]="ARC",t[t.IMAGE=1]="IMAGE",t[t.LINE=2]="LINE",t[t.POLYGON=3]="POLYGON",t[t.QUAD=4]="QUAD",t[t.RECT=5]="RECT",t[t.TEXT=6]="TEXT",t[t.GROUP=7]="GROUP"}(Ge||(Ge={})),function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SELECTED=1]="SELECTED"}(We||(We={}));class Ve{get mediaType(){return new Map([["rect",Oe.DIMT_RECTANGLE],["quad",Oe.DIMT_QUADRILATERAL],["text",Oe.DIMT_TEXT],["arc",Oe.DIMT_ARC],["image",Oe.DIMT_IMAGE],["polygon",Oe.DIMT_POLYGON],["line",Oe.DIMT_LINE],["group",Oe.DIMT_GROUP]]).get(this._mediaType)}get styleSelector(){switch(we(this,Ne,"f")){case De.DIS_DEFAULT:return"default";case De.DIS_SELECTED:return"selected"}}set drawingStyleId(t){this.styleId=t}get drawingStyleId(){return this.styleId}set coordinateBase(t){if(!["view","image"].includes(t))throw new Error("Invalid 'coordinateBase'.");this._drawingLayer&&("image"===we(this,Ue,"f")&&"view"===t?this.updateCoordinateBaseFromImageToView():"view"===we(this,Ue,"f")&&"image"===t&&this.updateCoordinateBaseFromViewToImage()),Ee(this,Ue,t,"f")}get coordinateBase(){return we(this,Ue,"f")}get drawingLayerId(){return this._drawingLayerId}constructor(t,e){if(Be.add(this),Ne.set(this,void 0),Ue.set(this,"image"),this._zIndex=null,this._drawingLayer=null,this._drawingLayerId=null,this._mapState_StyleId=new Map,this.mapEvent_Callbacks=new Map([["selected",new Map],["deselected",new Map],["mousedown",new Map],["mouseup",new Map],["dblclick",new Map],["mouseover",new Map],["mouseout",new Map]]),this.mapNoteName_Content=new Map([]),this.isDrawingItem=!0,null!=e&&!Pe(e))throw new TypeError("Invalid 'drawingStyleId'.");t&&this._setFabricObject(t),this.setState(De.DIS_DEFAULT),this.styleId=e}_setFabricObject(t){this._fabricObject=t,this._fabricObject.on("selected",(()=>{this.setState(De.DIS_SELECTED)})),this._fabricObject.on("deselected",(()=>{this._fabricObject.canvas&&this._fabricObject.canvas.getActiveObjects().includes(this._fabricObject)?this.setState(De.DIS_SELECTED):this.setState(De.DIS_DEFAULT),"textbox"===this._fabricObject.type&&(this._fabricObject.isEditing&&this._fabricObject.exitEditing(),this._fabricObject.selected=!1)})),t.getDrawingItem=()=>this}_getFabricObject(){return this._fabricObject}setState(t){Ee(this,Ne,t,"f")}getState(){return we(this,Ne,"f")}_on(t,e){if(!e)return;const i=t.toLowerCase(),r=this.mapEvent_Callbacks.get(i);if(!r)throw new Error(`Event '${t}' does not exist.`);let n=r.get(e);n||(n=t=>{const i=t.e;if(!i)return void(e&&e.apply(this,[{targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null}]));const r={targetItem:this,itemClientX:null,itemClientY:null,itemPageX:null,itemPageY:null};if(this._drawingLayer){let t,e,n,s;const o=i.target.getBoundingClientRect();t=o.left,e=o.top,n=t+window.scrollX,s=e+window.scrollY;const{width:a,height:h}=this._drawingLayer.fabricCanvas.lowerCanvasEl.getBoundingClientRect(),l=this._drawingLayer.width,c=this._drawingLayer.height,u=a/h,d=l/c,f=this._drawingLayer._getObjectFit();let g,m,p,_,v=1;if("contain"===f)unull!==t&&"object"==typeof t&&!Array.isArray(t),He=t=>!!ke(t)&&""!==t,Xe=d,ze=f,Ze=m,Ke=_,qe=p,Je=v,Qe=y,$e=t=>!(!Ye(t)||"id"in t&&!Pe(t.id)||"lineWidth"in t&&!Pe(t.lineWidth)||"fillStyle"in t&&!He(t.fillStyle)||"strokeStyle"in t&&!He(t.strokeStyle)||"paintMode"in t&&!["fill","stroke","strokeAndFill"].includes(t.paintMode)||"fontFamily"in t&&!He(t.fontFamily)||"fontSize"in t&&!Pe(t.fontSize));class ti{static convert(t,e,i){const r={x:0,y:0,width:e,height:i};if(!t)return r;if(Qe(t))t.isMeasuredInPercentage?(r.x=t.x/100*e,r.y=t.y/100*i,r.width=t.width/100*e,r.height=t.height/100*i):(r.x=t.x,r.y=t.y,r.width=t.width,r.height=t.height);else{if(!ze(t))throw TypeError("Invalid region.");t.isMeasuredInPercentage?(r.x=t.left/100*e,r.y=t.top/100*i,r.width=(t.right-t.left)/100*e,r.height=(t.bottom-t.top)/100*i):(r.x=t.left,r.y=t.top,r.width=t.right-t.left,r.height=t.bottom-t.top)}return r.x=Math.round(r.x),r.y=Math.round(r.y),r.width=Math.round(r.width),r.height=Math.round(r.height),r}}var ei,ii;class ri{constructor(){ei.set(this,new Map),ii.set(this,!1)}get disposed(){return we(this,ii,"f")}on(t,e){t=t.toLowerCase();const i=we(this,ei,"f").get(t);if(i){if(i.includes(e))return;i.push(e)}else we(this,ei,"f").set(t,[e])}off(t,e){t=t.toLowerCase();const i=we(this,ei,"f").get(t);if(!i)return;const r=i.indexOf(e);-1!==r&&i.splice(r,1)}offAll(t){t=t.toLowerCase();const e=we(this,ei,"f").get(t);e&&(e.length=0)}fire(t,e=[],i={async:!1,copy:!0}){e||(e=[]),t=t.toLowerCase();const r=we(this,ei,"f").get(t);if(r&&r.length){i=Object.assign({async:!1,copy:!0},i);for(let n of r){if(!n)continue;let s=[];if(i.copy)for(let i of e){try{i=JSON.parse(JSON.stringify(i))}catch(t){}s.push(i)}else s=e;let o=!1;if(i.async)setTimeout((()=>{this.disposed||r.includes(n)&&n.apply(i.target,s)}),0);else try{o=n.apply(i.target,s)}catch(t){}if(!0===o)break}}}dispose(){Ee(this,ii,!0,"f")}}function ni(t,e,i){return(i.x-t.x)*(e.y-t.y)==(e.x-t.x)*(i.y-t.y)&&Math.min(t.x,e.x)<=i.x&&i.x<=Math.max(t.x,e.x)&&Math.min(t.y,e.y)<=i.y&&i.y<=Math.max(t.y,e.y)}function si(t){return Math.abs(t)<1e-6?0:t<0?-1:1}function oi(t,e,i,r){let n=t[0]*(i[1]-e[1])+e[0]*(t[1]-i[1])+i[0]*(e[1]-t[1]),s=t[0]*(r[1]-e[1])+e[0]*(t[1]-r[1])+r[0]*(e[1]-t[1]);return!((n^s)>=0&&0!==n&&0!==s||(n=i[0]*(t[1]-r[1])+r[0]*(i[1]-t[1])+t[0]*(r[1]-i[1]),s=i[0]*(e[1]-r[1])+r[0]*(i[1]-e[1])+e[0]*(r[1]-i[1]),(n^s)>=0&&0!==n&&0!==s))}ei=new WeakMap,ii=new WeakMap;const ai=async t=>{if("string"!=typeof t)throw new TypeError("Invalid url.");const e=await fetch(t);if(!e.ok)throw Error("Network Error: "+e.statusText);const i=await e.text();if(!i.trim().startsWith("<"))throw Error("Unable to get valid HTMLElement.");const r=document.createElement("div");r.insertAdjacentHTML("beforeend",i);for(let t=0;t0?i-1:r,pi),actionName:"modifyPolygon",pointIndex:i}),t}),{}),Ee(this,li,JSON.parse(JSON.stringify(t)),"f"),this._mediaType="polygon"}extendSet(t,e){if("vertices"===t){const t=this._fabricObject;if(t.group){const i=t.group;t.points=e.map((t=>({x:t.x-i.left-i.width/2,y:t.y-i.top-i.height/2}))),i.addWithUpdate()}else t.points=e;const i=t.points.length-1;return t.controls=t.points.reduce((function(t,e,r){return t["p"+r]=new Fe.Control({positionHandler:gi,actionHandler:_i(r>0?r-1:i,pi),actionName:"modifyPolygon",pointIndex:r}),t}),{}),t._setPositionDimensions({}),!0}}extendGet(t){if("vertices"===t){const t=[],e=this._fabricObject;if(e.selectable&&!e.group)for(let i in e.oCoords)t.push({x:e.oCoords[i].x,y:e.oCoords[i].y});else for(let i of e.points){let r=i.x-e.pathOffset.x,n=i.y-e.pathOffset.y;const s=Fe.util.transformPoint({x:r,y:n},e.calcTransformMatrix());t.push({x:s.x,y:s.y})}return t}}updateCoordinateBaseFromImageToView(){const t=this.get("vertices").map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",t)}updateCoordinateBaseFromViewToImage(){const t=this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})));this.set("vertices",t)}setPosition(t){this.setPolygon(t)}getPosition(){return this.getPolygon()}updatePosition(){we(this,li,"f")&&this.setPolygon(we(this,li,"f"))}setPolygon(t){if(!Ke(t))throw new TypeError("Invalid 'polygon'.");if(this._drawingLayer){if("view"===this.coordinateBase){const e=t.points.map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else Ee(this,li,JSON.parse(JSON.stringify(t)),"f")}getPolygon(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return we(this,li,"f")?JSON.parse(JSON.stringify(we(this,li,"f"))):null}}li=new WeakMap;class yi extends Ve{set maintainAspectRatio(t){t&&this.set("scaleY",this.get("scaleX"))}get maintainAspectRatio(){return we(this,ui,"f")}constructor(t,e,i,r){if(super(null,r),ci.set(this,void 0),ui.set(this,void 0),!Qe(e))throw new TypeError("Invalid 'rect'.");if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)this._setFabricObject(new Fe.Image(t,{left:e.x,top:e.y}));else{if(!Xe(t))throw new TypeError("Invalid 'image'.");{const i=document.createElement("canvas");let r;if(i.width=t.width,i.height=t.height,t.format===n.IPF_GRAYSCALED){r=new Uint8ClampedArray(t.width*t.height*4);for(let e=0;e{let e=(t=>t.split("\n").map((t=>t.split("\t"))))(t);return(t=>{for(let e=0;;e++){let i=-1;for(let r=0;ri&&(i=n.length)}if(-1===i)break;for(let r=0;r=t[r].length-1)continue;let n=" ".repeat(i+2-t[r][e].length);t[r][e]=t[r][e].concat(n)}}})(e),(t=>{let e="";for(let i=0;i({x:e.x-t.left-t.width/2,y:e.y-t.top-t.height/2}))),t.addWithUpdate()}else i.points=e;const r=i.points.length-1;return i.controls=i.points.reduce((function(t,e,i){return t["p"+i]=new Fe.Control({positionHandler:gi,actionHandler:_i(i>0?i-1:r,pi),actionName:"modifyPolygon",pointIndex:i}),t}),{}),i._setPositionDimensions({}),!0}}extendGet(t){if("startPoint"===t||"endPoint"===t){const e=[],i=this._fabricObject;if(i.selectable&&!i.group)for(let t in i.oCoords)e.push({x:i.oCoords[t].x,y:i.oCoords[t].y});else for(let t of i.points){let r=t.x-i.pathOffset.x,n=t.y-i.pathOffset.y;const s=Fe.util.transformPoint({x:r,y:n},i.calcTransformMatrix());e.push({x:s.x,y:s.y})}return"startPoint"===t?e[0]:e[1]}}updateCoordinateBaseFromImageToView(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(e.x),y:this.convertPropFromViewToImage(e.y)})}updateCoordinateBaseFromViewToImage(){const t=this.get("startPoint"),e=this.get("endPoint");this.set("startPoint",{x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)}),this.set("endPoint",{x:this.convertPropFromImageToView(e.x),y:this.convertPropFromImageToView(e.y)})}setPosition(t){this.setLine(t)}getPosition(){return this.getLine()}updatePosition(){we(this,Ci,"f")&&this.setLine(we(this,Ci,"f"))}setPolygon(){}getPolygon(){return null}setLine(t){if(!Ze(t))throw new TypeError("Invalid 'line'.");if(this._drawingLayer){if("view"===this.coordinateBase)this.set("startPoint",{x:this.convertPropFromViewToImage(t.startPoint.x),y:this.convertPropFromViewToImage(t.startPoint.y)}),this.set("endPoint",{x:this.convertPropFromViewToImage(t.endPoint.x),y:this.convertPropFromViewToImage(t.endPoint.y)});else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("startPoint",t.startPoint),this.set("endPoint",t.endPoint)}this._drawingLayer.renderAll()}else Ee(this,Ci,JSON.parse(JSON.stringify(t)),"f")}getLine(){if(this._drawingLayer){if("view"===this.coordinateBase)return{startPoint:{x:this.convertPropFromImageToView(this.get("startPoint").x),y:this.convertPropFromImageToView(this.get("startPoint").y)},endPoint:{x:this.convertPropFromImageToView(this.get("endPoint").x),y:this.convertPropFromImageToView(this.get("endPoint").y)}};if("image"===this.coordinateBase)return{startPoint:this.get("startPoint"),endPoint:this.get("endPoint")};throw new Error("Invalid 'coordinateBase'.")}return we(this,Ci,"f")?JSON.parse(JSON.stringify(we(this,Ci,"f"))):null}}Ci=new WeakMap;class sr extends vi{constructor(t,e){if(super({points:null==t?void 0:t.points},e),Ti.set(this,void 0),!Je(t))throw new TypeError("Invalid 'quad'.");Ee(this,Ti,JSON.parse(JSON.stringify(t)),"f"),this._mediaType="quad"}setPosition(t){this.setQuad(t)}getPosition(){return this.getQuad()}updatePosition(){we(this,Ti,"f")&&this.setQuad(we(this,Ti,"f"))}setPolygon(){}getPolygon(){return null}setQuad(t){if(!Je(t))throw new TypeError("Invalid 'quad'.");if(this._drawingLayer){if("view"===this.coordinateBase){const e=t.points.map((t=>({x:this.convertPropFromViewToImage(t.x),y:this.convertPropFromViewToImage(t.y)})));this.set("vertices",e)}else{if("image"!==this.coordinateBase)throw new Error("Invalid 'coordinateBase'.");this.set("vertices",t.points)}this._drawingLayer.renderAll()}else Ee(this,Ti,JSON.parse(JSON.stringify(t)),"f")}getQuad(){if(this._drawingLayer){if("view"===this.coordinateBase)return{points:this.get("vertices").map((t=>({x:this.convertPropFromImageToView(t.x),y:this.convertPropFromImageToView(t.y)})))};if("image"===this.coordinateBase)return{points:this.get("vertices")};throw new Error("Invalid 'coordinateBase'.")}return we(this,Ti,"f")?JSON.parse(JSON.stringify(we(this,Ti,"f"))):null}}Ti=new WeakMap;class or extends Ve{constructor(t){super(new Fe.Group(t.map((t=>t._getFabricObject())))),this._fabricObject.on("selected",(()=>{this.setState(De.DIS_SELECTED);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("selected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._fabricObject.on("deselected",(()=>{this.setState(De.DIS_DEFAULT);const t=this._fabricObject._objects;for(let e of t)setTimeout((()=>{e&&e.fire("deselected")}),0);setTimeout((()=>{this._fabricObject&&this._fabricObject.canvas&&(this._fabricObject.dirty=!0,this._fabricObject.canvas.renderAll())}),0)})),this._mediaType="group"}extendSet(t,e){return!1}extendGet(t){}updateCoordinateBaseFromImageToView(){}updateCoordinateBaseFromViewToImage(){}setPosition(){}getPosition(){}updatePosition(){}getChildDrawingItems(){return this._fabricObject._objects.map((t=>t.getDrawingItem()))}setChildDrawingItems(t){if(!t||!t.isDrawingItem)throw TypeError("Illegal drawing item.");this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"add"):this._fabricObject.addWithUpdate(t._getFabricObject())}removeChildItem(t){t&&t.isDrawingItem&&(this._drawingLayer?this._drawingLayer._updateGroupItem(this,t,"remove"):this._fabricObject.removeWithUpdate(t._getFabricObject()))}}class ar{static createDrawingStyle(t){if(!$e(t))throw new Error("Invalid style definition.");let e,i=ar.USER_START_STYLE_ID;for(;we(ar,bi,"f",Si).has(i);)i++;e=i;const r=JSON.parse(JSON.stringify(t));r.id=e;for(let t in we(ar,bi,"f",Ii))r.hasOwnProperty(t)||(r[t]=we(ar,bi,"f",Ii)[t]);return we(ar,bi,"f",Si).set(e,r),r.id}static _getDrawingStyle(t,e){if("number"!=typeof t)throw new Error("Invalid style id.");const i=we(ar,bi,"f",Si).get(t);return i?e?JSON.parse(JSON.stringify(i)):i:null}static getDrawingStyle(t){return this._getDrawingStyle(t,!0)}static getAllDrawingStyles(){return JSON.parse(JSON.stringify(Array.from(we(ar,bi,"f",Si).values())))}static _updateDrawingStyle(t,e){if(!$e(e))throw new Error("Invalid style definition.");const i=we(ar,bi,"f",Si).get(t);if(i)for(let t in e)i.hasOwnProperty(t)&&(i[t]=e[t])}static updateDrawingStyle(t,e){this._updateDrawingStyle(t,e)}}bi=ar,ar.STYLE_BLUE_STROKE=1,ar.STYLE_GREEN_STROKE=2,ar.STYLE_ORANGE_STROKE=3,ar.STYLE_YELLOW_STROKE=4,ar.STYLE_BLUE_STROKE_FILL=5,ar.STYLE_GREEN_STROKE_FILL=6,ar.STYLE_ORANGE_STROKE_FILL=7,ar.STYLE_YELLOW_STROKE_FILL=8,ar.STYLE_BLUE_STROKE_TRANSPARENT=9,ar.STYLE_GREEN_STROKE_TRANSPARENT=10,ar.STYLE_ORANGE_STROKE_TRANSPARENT=11,ar.USER_START_STYLE_ID=1024,Si={value:new Map([[ar.STYLE_BLUE_STROKE,{id:ar.STYLE_BLUE_STROKE,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[ar.STYLE_GREEN_STROKE,{id:ar.STYLE_GREEN_STROKE,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_ORANGE_STROKE,{id:ar.STYLE_ORANGE_STROKE,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_YELLOW_STROKE,{id:ar.STYLE_YELLOW_STROKE,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}],[ar.STYLE_BLUE_STROKE_FILL,{id:ar.STYLE_BLUE_STROKE_FILL,lineWidth:4,fillStyle:"rgba(73, 173, 245, 0.3)",strokeStyle:"rgba(73, 173, 245, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_GREEN_STROKE_FILL,{id:ar.STYLE_GREEN_STROKE_FILL,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.3)",strokeStyle:"rgba(73, 245, 73, 0.9)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_ORANGE_STROKE_FILL,{id:ar.STYLE_ORANGE_STROKE_FILL,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.3)",strokeStyle:"rgba(254, 180, 32, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_YELLOW_STROKE_FILL,{id:ar.STYLE_YELLOW_STROKE_FILL,lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_BLUE_STROKE_TRANSPARENT,{id:ar.STYLE_BLUE_STROKE_TRANSPARENT,lineWidth:4,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_GREEN_STROKE_TRANSPARENT,{id:ar.STYLE_GREEN_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(73, 245, 73, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}],[ar.STYLE_ORANGE_STROKE_TRANSPARENT,{id:ar.STYLE_ORANGE_STROKE_TRANSPARENT,lineWidth:2,fillStyle:"rgba(254, 180, 32, 0.2)",strokeStyle:"transparent",paintMode:"strokeAndFill",fontFamily:"consolas",fontSize:40}]])},Ii={value:{lineWidth:2,fillStyle:"rgba(245, 236, 73, 0.3)",strokeStyle:"rgba(245, 236, 73, 1)",paintMode:"stroke",fontFamily:"consolas",fontSize:40}},"undefined"!=typeof document&&"undefined"!=typeof window&&(Fe.StaticCanvas.prototype.dispose=function(){return this.isRendering&&(Fe.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),Fe.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},Fe.Object.prototype.transparentCorners=!1,Fe.Object.prototype.cornerSize=20,Fe.Object.prototype.touchCornerSize=100,Fe.Object.prototype.cornerColor="rgb(254,142,20)",Fe.Object.prototype.cornerStyle="circle",Fe.Object.prototype.strokeUniform=!0,Fe.Object.prototype.hasBorders=!1,Fe.Canvas.prototype.containerClass="",Fe.Canvas.prototype.getPointer=function(t,e){if(this._absolutePointer&&!e)return this._absolutePointer;if(this._pointer&&e)return this._pointer;var i,r=this.upperCanvasEl,n=Fe.util.getPointer(t,r),s=r.getBoundingClientRect(),o=s.width||0,a=s.height||0;o&&a||("top"in s&&"bottom"in s&&(a=Math.abs(s.top-s.bottom)),"right"in s&&"left"in s&&(o=Math.abs(s.right-s.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,e||(n=this.restorePointerVpt(n));var h=this.getRetinaScaling();if(1!==h&&(n.x/=h,n.y/=h),0!==o&&0!==a){var l=window.getComputedStyle(r).objectFit,c=r.width,u=r.height,d=o,f=a;i={width:c/d,height:u/f};var g,m,p=c/u,_=d/f;return"contain"===l?p>_?(g=d,m=d/p,{x:n.x*i.width,y:(n.y-(f-m)/2)*i.width}):(g=f*p,m=f,{x:(n.x-(d-g)/2)*i.height,y:n.y*i.height}):"cover"===l?p>_?{x:(c-i.height*d)/2+n.x*i.height,y:n.y*i.height}:{x:n.x*i.width,y:(u-i.width*f)/2+n.y*i.width}:{x:n.x*i.width,y:n.y*i.height}}return i={width:1,height:1},{x:n.x*i.width,y:n.y*i.height}},Fe.Canvas.prototype._onTouchStart=function(t){var e=this.findTarget(t);!this.allowTouchScrolling&&t.cancelable&&t.preventDefault&&t.preventDefault(),e&&t.cancelable&&t.preventDefault&&t.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t),this._resetTransformEventData();var i=this.upperCanvasEl,r=this._getEventPrefix();Fe.util.addListener(Fe.document,"touchend",this._onTouchEnd,{passive:!1}),Fe.util.addListener(Fe.document,"touchmove",this._onMouseMove,{passive:!1}),Fe.util.removeListener(i,r+"down",this._onMouseDown)},Fe.Textbox.prototype._wrapLine=function(t,e,i,r){const n=t.match(/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/g),s=!(!n||!n.length);var o=0,a=this.splitByGrapheme||s,h=[],l=[],c=a?Fe.util.string.graphemeSplit(t):t.split(this._wordJoiners),u="",d=0,f=a?"":" ",g=0,m=0,p=0,_=!0,v=this._getWidthOfCharSpacing();r=r||0,0===c.length&&c.push([]),i-=r;for(var y=0;yi&&!_?(h.push(l),l=[],o=g,_=!0):o+=v,_||a||l.push(f),l=l.concat(u),m=a?0:this._measureWord([f],e,d),d++,_=!1,g>p&&(p=g);return y&&h.push(l),p+r>this.dynamicMinWidth&&(this.dynamicMinWidth=p-v+r),h});class hr{get width(){return this.fabricCanvas.width}get height(){return this.fabricCanvas.height}set _allowMultiSelect(t){this.fabricCanvas.selection=t,this.fabricCanvas.renderAll()}get _allowMultiSelect(){return this.fabricCanvas.selection}constructor(t,e,i){if(this.mapType_StateAndStyleId=new Map,this.mode="viewer",this.onSelectionChanged=null,this._arrDrwaingItem=[],this._arrFabricObject=[],this._visible=!0,t.hasOwnProperty("getFabricCanvas"))this.fabricCanvas=t.getFabricCanvas();else{let e=this.fabricCanvas=new Fe.Canvas(t,Object.assign(i,{allowTouchScrolling:!0,selection:!1}));e.setDimensions({width:"100%",height:"100%"},{cssOnly:!0}),e.lowerCanvasEl.className="",e.upperCanvasEl.className="",e.on("selection:created",(function(t){const e=t.selected,i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(i,[])}),0)}})),e.on("before:selection:cleared",(function(t){const e=this.getActiveObjects(),i=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!i.includes(e)&&i.push(e)}for(let t of i){const i=[];for(let r of e){const e=r.getDrawingItem();e._drawingLayer===t&&i.push(e)}setTimeout((()=>{const e=[];for(let r of i)t.hasDrawingItem(r)&&e.push(r);e.length>0&&t.onSelectionChanged&&t.onSelectionChanged([],e)}),0)}})),e.on("selection:updated",(function(t){const e=t.selected,i=t.deselected,r=[];for(let t of e){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of i){const e=t.getDrawingItem()._drawingLayer;e&&!r.includes(e)&&r.push(e)}for(let t of r){const r=[],n=[];for(let i of e){const e=i.getDrawingItem();e._drawingLayer===t&&r.push(e)}for(let e of i){const i=e.getDrawingItem();i._drawingLayer===t&&n.push(i)}setTimeout((()=>{t.onSelectionChanged&&t.onSelectionChanged(r,n)}),0)}})),e.wrapperEl.style.position="absolute",t.getFabricCanvas=()=>this.fabricCanvas}let r,n;switch(this.id=e,e){case hr.DDN_LAYER_ID:r=ar.getDrawingStyle(ar.STYLE_BLUE_STROKE),n=ar.getDrawingStyle(ar.STYLE_BLUE_STROKE_FILL);break;case hr.DBR_LAYER_ID:r=ar.getDrawingStyle(ar.STYLE_ORANGE_STROKE),n=ar.getDrawingStyle(ar.STYLE_ORANGE_STROKE_FILL);break;case hr.DLR_LAYER_ID:r=ar.getDrawingStyle(ar.STYLE_GREEN_STROKE),n=ar.getDrawingStyle(ar.STYLE_GREEN_STROKE_FILL);break;default:r=ar.getDrawingStyle(ar.STYLE_YELLOW_STROKE),n=ar.getDrawingStyle(ar.STYLE_YELLOW_STROKE_FILL)}for(let t of Ve.arrMediaTypes)this.mapType_StateAndStyleId.set(t,{default:r.id,selected:n.id})}getId(){return this.id}setVisible(t){if(t){for(let t of this._arrFabricObject)t.visible=!0,t.hasControls=!0;this._visible=!0}else{for(let t of this._arrFabricObject)t.visible=!1,t.hasControls=!1;this._visible=!1}this.fabricCanvas.renderAll()}isVisible(){return this._visible}_getItemCurrentStyle(t){if(t.styleId)return ar.getDrawingStyle(t.styleId);return ar.getDrawingStyle(t._mapState_StyleId.get(t.styleSelector))||null}_changeMediaTypeCurStyleInStyleSelector(t,e,i,r){const n=this.getDrawingItems((e=>e._mediaType===t));for(let t of n)t.styleSelector===e&&this._changeItemStyle(t,i,!0);r||this.fabricCanvas.renderAll()}_changeItemStyle(t,e,i){if(!t||!e)return;const r=t._getFabricObject();"number"==typeof t.styleId&&(e=ar.getDrawingStyle(t.styleId)),r.strokeWidth=e.lineWidth,"fill"===e.paintMode?(r.fill=e.fillStyle,r.stroke=e.fillStyle):"stroke"===e.paintMode?(r.fill="transparent",r.stroke=e.strokeStyle):"strokeAndFill"===e.paintMode&&(r.fill=e.fillStyle,r.stroke=e.strokeStyle),r.fontFamily&&(r.fontFamily=e.fontFamily),r.fontSize&&(r.fontSize=e.fontSize),r.group||(r.dirty=!0),i||this.fabricCanvas.renderAll()}_updateGroupItem(t,e,i){if(!t||!e)return;const r=t.getChildDrawingItems();if("add"===i){if(r.includes(e))return;const i=e._getFabricObject();if(this.fabricCanvas.getObjects().includes(i)){if(!this._arrFabricObject.includes(i))throw new Error("Existed in other drawing layers.");e._zIndex=null}else{let i;if(e.styleId)i=ar.getDrawingStyle(e.styleId);else{const r=this.mapType_StateAndStyleId.get(e._mediaType);i=ar.getDrawingStyle(r[t.styleSelector]);const n=()=>{this._changeItemStyle(e,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).selected),!0)},s=()=>{this._changeItemStyle(e,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(e._mediaType).default),!0)};e._on("selected",n),e._on("deselected",s),e._funcChangeStyleToSelected=n,e._funcChangeStyleToDefault=s}e._drawingLayer=this,e._drawingLayerId=this.id,this._changeItemStyle(e,i,!0)}t._fabricObject.addWithUpdate(e._getFabricObject())}else{if("remove"!==i)return;if(!r.includes(e))return;e._zIndex=null,e._drawingLayer=null,e._drawingLayerId=null,e._off("selected",e._funcChangeStyleToSelected),e._off("deselected",e._funcChangeStyleToDefault),e._funcChangeStyleToSelected=null,e._funcChangeStyleToDefault=null,t._fabricObject.removeWithUpdate(e._getFabricObject())}this.fabricCanvas.renderAll()}_addDrawingItem(t,e){if(!(t instanceof Ve))throw new TypeError("Invalid 'drawingItem'.");if(t._drawingLayer){if(t._drawingLayer==this)return;throw new Error("This drawing item has existed in other layer.")}let i=t._getFabricObject();const r=this.fabricCanvas.getObjects();let n,s;if(r.includes(i)){if(this._arrFabricObject.includes(i))return;throw new Error("Existed in other drawing layers.")}if("group"===t._mediaType){n=t.getChildDrawingItems();for(let t of n)if(t._drawingLayer&&t._drawingLayer!==this)throw new Error("The childItems of DT_Group have existed in other drawing layers.")}if(e&&"object"==typeof e&&!Array.isArray(e))for(let t in e)i.set(t,e[t]);if(n){for(let t of n){const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Ve.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=ar.getDrawingStyle(t.styleId);else{s=ar.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected),!0)},r=()=>{this._changeItemStyle(t,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default),!0)};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}t._drawingLayer=this,t._drawingLayerId=this.id,this._changeItemStyle(t,s,!0)}i.dirty=!0,this.fabricCanvas.renderAll()}else{const e=this.mapType_StateAndStyleId.get(t._mediaType);for(let i of Ve.arrStyleSelectors)t._mapState_StyleId.set(i,e[i]);if(t.styleId)s=ar.getDrawingStyle(t.styleId);else{s=ar.getDrawingStyle(e.default);const i=()=>{this._changeItemStyle(t,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).selected))},r=()=>{this._changeItemStyle(t,ar.getDrawingStyle(this.mapType_StateAndStyleId.get(t._mediaType).default))};t._on("selected",i),t._on("deselected",r),t._funcChangeStyleToSelected=i,t._funcChangeStyleToDefault=r}this._changeItemStyle(t,s)}t._zIndex=this.id,t._drawingLayer=this,t._drawingLayerId=this.id;const o=this._arrFabricObject.length;let a=r.length;if(o)a=r.indexOf(this._arrFabricObject[o-1])+1;else for(let e=0;et.toLowerCase())):e=Ve.arrMediaTypes,i?i.forEach((t=>t.toLowerCase())):i=Ve.arrStyleSelectors;const r=ar.getDrawingStyle(t);if(!r)throw new Error(`The 'drawingStyle' with id '${t}' doesn't exist.`);let n;for(let s of e)if(n=this.mapType_StateAndStyleId.get(s),n)for(let e of i){this._changeMediaTypeCurStyleInStyleSelector(s,e,r,!0),n[e]=t;for(let i of this._arrDrwaingItem)i._mediaType===s&&i._mapState_StyleId.set(e,t)}this.fabricCanvas.renderAll()}setDefaultStyle(t,e,i){const r=[];i&Oe.DIMT_RECTANGLE&&r.push("rect"),i&Oe.DIMT_QUADRILATERAL&&r.push("quad"),i&Oe.DIMT_TEXT&&r.push("text"),i&Oe.DIMT_ARC&&r.push("arc"),i&Oe.DIMT_IMAGE&&r.push("image"),i&Oe.DIMT_POLYGON&&r.push("polygon"),i&Oe.DIMT_LINE&&r.push("line");const n=[];e&De.DIS_DEFAULT&&n.push("default"),e&De.DIS_SELECTED&&n.push("selected"),this._setDefaultStyle(t,r.length?r:null,n.length?n:null)}setMode(t){if("viewer"===(t=t.toLowerCase())){for(let t of this._arrDrwaingItem)t._setEditable(!1);this.fabricCanvas.discardActiveObject(),this.fabricCanvas.renderAll(),this.mode="viewer"}else{if("editor"!==t)throw new RangeError("Invalid value.");for(let t of this._arrDrwaingItem)t._setEditable(!0);this.mode="editor"}this._manager._switchPointerEvent()}getMode(){return this.mode}_setDimensions(t,e){this.fabricCanvas.setDimensions(t,e)}_setObjectFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);this.fabricCanvas.lowerCanvasEl.style.objectFit=t,this.fabricCanvas.upperCanvasEl.style.objectFit=t}_getObjectFit(){return this.fabricCanvas.lowerCanvasEl.style.objectFit}renderAll(){for(let t of this._arrDrwaingItem){const e=this._getItemCurrentStyle(t);this._changeItemStyle(t,e,!0)}this.fabricCanvas.renderAll()}dispose(){this.clearDrawingItems(),1===this._manager._arrDrawingLayer.length&&(this.fabricCanvas.wrapperEl.style.pointerEvents="none",this.fabricCanvas.dispose(),this._arrDrwaingItem.length=0,this._arrFabricObject.length=0)}}hr.DDN_LAYER_ID=1,hr.DBR_LAYER_ID=2,hr.DLR_LAYER_ID=3,hr.USER_DEFINED_LAYER_BASE_ID=100,hr.TIP_LAYER_ID=999;class lr{constructor(){this._arrDrawingLayer=[]}createDrawingLayer(t,e){if(this.getDrawingLayer(e))throw new Error("Existed drawing layer id.");const i=new hr(t,e,{enableRetinaScaling:!1});return i._manager=this,this._arrDrawingLayer.push(i),this._switchPointerEvent(),i}deleteDrawingLayer(t){const e=this.getDrawingLayer(t);if(!e)return;const i=this._arrDrawingLayer;e.dispose(),i.splice(i.indexOf(e),1),this._switchPointerEvent()}clearDrawingLayers(){for(let t of this._arrDrawingLayer)t.dispose();this._arrDrawingLayer.length=0}getDrawingLayer(t){for(let e of this._arrDrawingLayer)if(e.getId()===t)return e;return null}getAllDrawingLayers(){return Array.from(this._arrDrawingLayer)}getSelectedDrawingItems(){if(!this._arrDrawingLayer.length)return;const t=this._getFabricCanvas().getActiveObjects(),e=[];for(let i of t)e.push(i.getDrawingItem());return e}setDimensions(t,e){this._arrDrawingLayer.length&&this._arrDrawingLayer[0]._setDimensions(t,e)}setObjectFit(t){for(let e of this._arrDrawingLayer)e&&e._setObjectFit(t)}getObjectFit(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0]._getObjectFit():null}setVisible(t){if(!this._arrDrawingLayer.length)return;this._getFabricCanvas().wrapperEl.style.display=t?"block":"none"}_getFabricCanvas(){return this._arrDrawingLayer.length?this._arrDrawingLayer[0].fabricCanvas:null}_switchPointerEvent(){if(this._arrDrawingLayer.length)for(let t of this._arrDrawingLayer)t.getMode()}}class cr extends Ei{constructor(t,e,i,r,n){super(t,{x:e,y:i,width:r,height:0},n),xi.set(this,void 0),Ai.set(this,void 0),this._fabricObject.paddingTop=15,this._fabricObject.calcTextHeight=function(){for(var t=0,e=0,i=this._textLines.length;e=0&&Ee(this,Ai,setTimeout((()=>{this.set("visible",!1),this._drawingLayer&&this._drawingLayer.renderAll()}),we(this,xi,"f")),"f")}getDuration(){return we(this,xi,"f")}}xi=new WeakMap,Ai=new WeakMap;class ur{constructor(){Ri.add(this),Oi.set(this,void 0),Di.set(this,void 0),Li.set(this,void 0),Mi.set(this,!0),this._drawingLayerManager=new lr}createDrawingLayerBaseCvs(t,e,i="contain"){if("number"!=typeof t||t<=1)throw new Error("Invalid 'width'.");if("number"!=typeof e||e<=1)throw new Error("Invalid 'height'.");if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");const r=document.createElement("canvas");return r.width==t&&r.height==e||(r.width=t,r.height=e),r.style.objectFit=i,r}_createDrawingLayer(t,e,i,r){if(!this._layerBaseCvs){let n;try{n=this.getContentDimensions()}catch(t){if("Invalid content dimensions."!==(t.message||t))throw t}e||(e=(null==n?void 0:n.width)||1280),i||(i=(null==n?void 0:n.height)||720),r||(r=(null==n?void 0:n.objectFit)||"contain"),this._layerBaseCvs=this.createDrawingLayerBaseCvs(e,i,r)}const n=this._layerBaseCvs,s=this._drawingLayerManager.createDrawingLayer(n,t);return this._innerComponent.getElement("drawing-layer")||this._innerComponent.setElement("drawing-layer",n.parentElement),s}createDrawingLayer(){let t;for(let e=hr.USER_DEFINED_LAYER_BASE_ID;;e++)if(!this._drawingLayerManager.getDrawingLayer(e)&&e!==hr.TIP_LAYER_ID){t=e;break}return this._createDrawingLayer(t)}deleteDrawingLayer(t){var e;this._drawingLayerManager.deleteDrawingLayer(t),this._drawingLayerManager.getAllDrawingLayers().length||(null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null)}deleteUserDefinedDrawingLayer(t){if("number"!=typeof t)throw new TypeError("Invalid id.");if(tt.getId()>=0&&t.getId()!==hr.TIP_LAYER_ID))}updateDrawingLayers(t){((t,e,i)=>{if(!(t<=1||e<=1)){if(!["contain","cover"].includes(i))throw new Error("Unsupported 'objectFit'.");this._drawingLayerManager.setDimensions({width:t,height:e},{backstoreOnly:!0}),this._drawingLayerManager.setObjectFit(i)}})(t.width,t.height,t.objectFit)}getSelectedDrawingItems(){return this._drawingLayerManager.getSelectedDrawingItems()}setTipConfig(t){if(!(Ye(e=t)&&qe(e.topLeftPoint)&&Pe(e.width))||e.width<=0||!Pe(e.duration)||"coordinateBase"in e&&!["view","image"].includes(e.coordinateBase))throw new Error("Invalid tip config.");var e;Ee(this,Oi,JSON.parse(JSON.stringify(t)),"f"),we(this,Oi,"f").coordinateBase||(we(this,Oi,"f").coordinateBase="view"),Ee(this,Li,t.duration,"f"),we(this,Ri,"m",Bi).call(this)}getTipConfig(){return we(this,Oi,"f")?we(this,Oi,"f"):null}setTipVisible(t){if("boolean"!=typeof t)throw new TypeError("Invalid value.");this._tip&&(this._tip.set("visible",t),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll()),Ee(this,Mi,t,"f")}isTipVisible(){return we(this,Mi,"f")}updateTipMessage(t){if(!we(this,Oi,"f"))throw new Error("Tip config is not set.");this._tipStyleId||(this._tipStyleId=ar.createDrawingStyle({fillStyle:"#FFFFFF",paintMode:"fill",fontFamily:"Open Sans",fontSize:40})),this._drawingLayerOfTip||(this._drawingLayerOfTip=this._drawingLayerManager.getDrawingLayer(hr.TIP_LAYER_ID)||this._createDrawingLayer(hr.TIP_LAYER_ID)),this._tip?this._tip.set("text",t):this._tip=we(this,Ri,"m",Fi).call(this,t,we(this,Oi,"f").topLeftPoint.x,we(this,Oi,"f").topLeftPoint.y,we(this,Oi,"f").width,we(this,Oi,"f").coordinateBase,this._tipStyleId),we(this,Ri,"m",Pi).call(this,this._tip,this._drawingLayerOfTip),this._tip.set("visible",we(this,Mi,"f")),this._drawingLayerOfTip&&this._drawingLayerOfTip.renderAll(),we(this,Di,"f")&&clearTimeout(we(this,Di,"f")),we(this,Li,"f")>=0&&Ee(this,Di,setTimeout((()=>{we(this,Ri,"m",ki).call(this)}),we(this,Li,"f")),"f")}}Oi=new WeakMap,Di=new WeakMap,Li=new WeakMap,Mi=new WeakMap,Ri=new WeakSet,Fi=function(t,e,i,r,n,s){const o=new cr(t,e,i,r,s);return o.coordinateBase=n,o},Pi=function(t,e){e.hasDrawingItem(t)||e.addDrawingItems([t])},ki=function(){this._tip&&this._drawingLayerOfTip.removeDrawingItems([this._tip])},Bi=function(){if(!this._tip)return;const t=we(this,Oi,"f");this._tip.coordinateBase=t.coordinateBase,this._tip.setTextRect({x:t.topLeftPoint.x,y:t.topLeftPoint.y,width:t.width,height:0}),this._tip.set("width",this._tip.get("width")),this._tip._drawingLayer&&this._tip._drawingLayer.renderAll()};class dr extends HTMLElement{constructor(){super(),Ni.set(this,void 0);const t=document.createElement("template").content,e=document.createElement("div");e.setAttribute("class","wrapper"),t.appendChild(e),Ee(this,Ni,e,"f");const i=document.createElement("slot");i.setAttribute("name","single-frame-input-container"),e.append(i);const r=document.createElement("slot");r.setAttribute("name","content"),e.append(r);const n=document.createElement("slot");n.setAttribute("name","drawing-layer"),e.append(n);const s=document.createElement("style");s.textContent='\n.wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n::slotted(canvas[slot="content"]) {\n object-fit: contain;\n pointer-events: none;\n}\n::slotted(div[slot="single-frame-input-container"]) {\n width: 1px;\n height: 1px;\n overflow: hidden;\n pointer-events: none;\n}\n::slotted(*) {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n ',t.appendChild(s),this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}getWrapper(){return we(this,Ni,"f")}setElement(t,e){if(!(e instanceof HTMLElement))throw new TypeError("Invalid 'el'.");if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");this.removeElement(t),e.setAttribute("slot",t),this.appendChild(e)}getElement(t){if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");return this.querySelector(`[slot="${t}"]`)}removeElement(t){var e;if(!["content","single-frame-input-container","drawing-layer"].includes(t))throw new TypeError("Invalid 'slot'.");null===(e=this.querySelectorAll(`[slot="${t}"]`))||void 0===e||e.forEach((t=>t.remove()))}}Ni=new WeakMap,customElements.get("dce-component")||customElements.define("dce-component",dr);class fr extends HTMLElement{constructor(){super();const t=window._dce_default_template.content;this.attachShadow({mode:"open"}).appendChild(t.cloneNode(!0))}showScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="")}hideScanLaser(){const t=this.shadowRoot.querySelector(".dce-scanlight");t&&(t.style.display="none")}getElement(t){return this.shadowRoot.querySelector(t)}getVideoContainer(){return this.shadowRoot.querySelector(".dce-video-container")}getScanAreaEl(){return this.shadowRoot.querySelector(".dce-scanarea")}getScanLightEl(){return this.shadowRoot.querySelector(".dce-scanlight")}getLoadingBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-loading")}getCameraBackgroundEl(){return this.shadowRoot.querySelector(".dce-bg-camera")}getCameraSelectEl(){return this.shadowRoot.querySelector(".dce-sel-camera")}getResolutionSelectEl(){return this.shadowRoot.querySelector(".dce-sel-resolution")}getResolutionOptionEl(){return this.shadowRoot.querySelector(".dce-opt-gotResolution")}getCloseBtnEl(){return this.shadowRoot.querySelector(".dce-btn-close")}getDLRSelectEl(){return this.shadowRoot.querySelector(".dlr-sel-minletter")}getDLROptionEl(){return this.shadowRoot.querySelector(".dlr-opt-gotMinLtr")}}class gr extends ur{static get engineResourcePath(){return ut.engineResourcePaths.dce}static set defaultUIElementURL(t){gr._defaultUIElementURL=t}static get defaultUIElementURL(){var t;return null===(t=gr._defaultUIElementURL)||void 0===t?void 0:t.replace("@engineResourcePath/",gr.engineResourcePath)}static async createInstance(t){customElements.get(gr.uiComponentName)||customElements.define(gr.uiComponentName,fr);const e=new gr;return await e.setUIElement(t||gr.defaultUIElementURL),e}static _transformCoordinates(t,e,i,r,n,s,o){const a=s/r,h=o/n;t.x=Math.round(t.x/a+e),t.y=Math.round(t.y/h+i)}set _singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(t!==we(this,Zi,"f")){if(Ee(this,Zi,t,"f"),we(this,Ui,"m",Ji).call(this))Ee(this,Vi,null,"f"),this._videoContainer=null,this._innerComponent.removeElement("content"),this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block");else if(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none"),!we(this,Vi,"f")){const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(ve.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),Ee(this,Vi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}we(this,Ui,"m",Ji).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading())}}get _singleFrameMode(){return we(this,Zi,"f")}get disposed(){return we(this,qi,"f")}constructor(){super(),Ui.add(this),ji.set(this,void 0),Gi.set(this,void 0),Wi.set(this,void 0),this.containerClassName="dce-video-container",Vi.set(this,void 0),this.videoFit="contain",this._hideDefaultSelection=!1,this._divScanArea=null,this._divScanLight=null,this._bgLoading=null,this._selCam=null,this._bgCamera=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,Yi.set(this,null),this.regionMaskFillStyle="rgba(0,0,0,0.5)",this.regionMaskStrokeStyle="rgb(254,142,20)",this.regionMaskLineWidth=6,Hi.set(this,!1),Xi.set(this,!1),zi.set(this,{width:0,height:0}),this._updateLayersTimeout=500,this._videoResizeListener=()=>{we(this,Ui,"m",ir).call(this),this._updateLayersTimeoutId&&clearTimeout(this._updateLayersTimeoutId),this._updateLayersTimeoutId=setTimeout((()=>{this.disposed||(this.eventHandler.fire("videoEl:resized",null,{async:!1}),this.eventHandler.fire("content:updated",null,{async:!1}),this.isScanLaserVisible()&&we(this,Ui,"m",er).call(this))}),this._updateLayersTimeout)},this._windowResizeListener=()=>{gr._onLog&&gr._onLog("window resize event triggered."),we(this,zi,"f").width===document.documentElement.clientWidth&&we(this,zi,"f").height===document.documentElement.clientHeight||(we(this,zi,"f").width=document.documentElement.clientWidth,we(this,zi,"f").height=document.documentElement.clientHeight,this._videoResizeListener())},Zi.set(this,"disabled"),this._clickIptSingleFrameMode=()=>{if(!we(this,Ui,"m",Ji).call(this))return;let t;if(this._singleFrameInputContainer)t=this._singleFrameInputContainer.firstElementChild;else{t=document.createElement("input"),t.setAttribute("type","file"),"camera"===this._singleFrameMode?(t.setAttribute("capture",""),t.setAttribute("accept","image/*")):"image"===this._singleFrameMode&&(t.removeAttribute("capture"),t.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp")),t.addEventListener("change",(async()=>{const e=t.files[0];t.value="";{const t=async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i},i=(t,e,i,r)=>{t.width==i&&t.height==r||(t.width=i,t.height=r);const n=t.getContext("2d");n.clearRect(0,0,t.width,t.height),n.drawImage(e,0,0)},r=await t(e),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=this._cvsSingleFrameMode;const a=null==o?void 0:o.width,h=null==o?void 0:o.height;o||(o=document.createElement("canvas"),this._cvsSingleFrameMode=o),i(o,r,n,s),this._innerComponent.setElement("content",o),a===o.width&&h===o.height||this.eventHandler.fire("content:updated",null,{async:!1})}this._onSingleFrameAcquired&&setTimeout((()=>{this._onSingleFrameAcquired(this._cvsSingleFrameMode)}),0)})),t.style.position="absolute",t.style.top="-9999px",t.style.backgroundColor="transparent",t.style.color="transparent";const e=document.createElement("div");e.append(t),this._innerComponent.setElement("single-frame-input-container",e),this._singleFrameInputContainer=e}null==t||t.click()},Ki.set(this,[]),this._capturedResultReceiver={onCapturedResultReceived:(t,e)=>{var i,r,n,s;if(this.disposed)return;if(this.clearAllInnerDrawingItems(),!t)return;const o=t.originalImageTag;if(!o)return;const a=t.items;if(!(null==a?void 0:a.length))return;const h=(null===(i=o.cropRegion)||void 0===i?void 0:i.left)||0,l=(null===(r=o.cropRegion)||void 0===r?void 0:r.top)||0,c=(null===(n=o.cropRegion)||void 0===n?void 0:n.right)?o.cropRegion.right-h:o.originalWidth,u=(null===(s=o.cropRegion)||void 0===s?void 0:s.bottom)?o.cropRegion.bottom-l:o.originalHeight,d=o.currentWidth,f=o.currentHeight,g=(t,e,i,r,n,s,o,a,h=[],l)=>{e.forEach((t=>gr._transformCoordinates(t,i,r,n,s,o,a)));const c=new sr({points:[{x:e[0].x,y:e[0].y},{x:e[1].x,y:e[1].y},{x:e[2].x,y:e[2].y},{x:e[3].x,y:e[3].y}]},l);for(let t of h)c.addNote(t);t.addDrawingItems([c]),we(this,Ki,"f").push(c)};let m,p;for(let t of a)switch(t.type){case dt.CRIT_ORIGINAL_IMAGE:break;case dt.CRIT_BARCODE:m=this.getDrawingLayer(hr.DBR_LAYER_ID),p=[{name:"format",content:t.formatString},{name:"text",content:t.text}],(null==e?void 0:e.isBarcodeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,ar.STYLE_ORANGE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case dt.CRIT_TEXT_LINE:m=this.getDrawingLayer(hr.DLR_LAYER_ID),p=[{name:"text",content:t.text}],e.isLabelVerifyOpen?t.verified?g(m,t.location.points,h,l,c,u,d,f,p):g(m,t.location.points,h,l,c,u,d,f,p,ar.STYLE_GREEN_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,p);break;case dt.CRIT_DETECTED_QUAD:m=this.getDrawingLayer(hr.DDN_LAYER_ID),(null==e?void 0:e.isDetectVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],ar.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case dt.CRIT_NORMALIZED_IMAGE:m=this.getDrawingLayer(hr.DDN_LAYER_ID),(null==e?void 0:e.isNormalizeVerifyOpen)?t.verified?g(m,t.location.points,h,l,c,u,d,f,[]):g(m,t.location.points,h,l,c,u,d,f,[],ar.STYLE_BLUE_STROKE_TRANSPARENT):g(m,t.location.points,h,l,c,u,d,f,[]);break;case dt.CRIT_PARSED_RESULT:break;default:throw new Error("Illegal item type.")}}},qi.set(this,!1),this.eventHandler=new ri,this.eventHandler.on("content:updated",(()=>{we(this,ji,"f")&&clearTimeout(we(this,ji,"f")),Ee(this,ji,setTimeout((()=>{if(this.disposed)return;let t;this._updateVideoContainer();try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateDrawingLayers(t),this.updateConvertedRegion(t)}),0),"f")})),this.eventHandler.on("videoEl:resized",(()=>{we(this,Gi,"f")&&clearTimeout(we(this,Gi,"f")),Ee(this,Gi,setTimeout((()=>{this.disposed||this._updateVideoContainer()}),0),"f")}))}_setUIElement(t){t instanceof HTMLTemplateElement?(window._dce_default_template=t,this.UIElement=new fr):this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await ai(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=await ai(gr.defaultUIElementURL);t instanceof HTMLTemplateElement?(window._dce_default_template=t,e.append(new fr)):e.append(t),this._setUIElement(e)}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){var t;if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;let e,i=this.UIElement;if(i instanceof fr?e=i.getElement(`.${this.containerClassName}`):i instanceof HTMLDivElement&&1===i.childElementCount&&i.firstElementChild instanceof fr?(e=i.firstElementChild.getElement(`.${this.containerClassName}`),i=i.firstElementChild):e=i.classList.contains(this.containerClassName)?i:i.querySelector(`.${this.containerClassName}`),!e)throw Error(`Can not find the element with class '${this.containerClassName}'.`);if(this._innerComponent=new dr,e.appendChild(this._innerComponent),we(this,Ui,"m",Ji).call(this));else{const t=document.createElement("video");t.style.position="absolute",t.style.left="0",t.style.top="0",t.style.width="100%",t.style.height="100%",t.style.objectFit=this.getVideoFit(),t.setAttribute("autoplay","true"),t.setAttribute("playsinline","true"),t.setAttribute("muted","true"),["iPhone","iPad","Mac"].includes(ve.OS)&&t.setAttribute("poster","data:image/gif;base64,R0lGODlhAQABAIEAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAgEAAEEBAA7"),Ee(this,Vi,t,"f");const e=document.createElement("div");e.append(t),e.style.overflow="hidden",this._videoContainer=e,this._innerComponent.setElement("content",e)}if(i instanceof fr?(this._selRsl=i.getElement(".dce-sel-resolution"),this._selMinLtr=i.getElement(".dlr-sel-minletter"),this._divScanArea=i.getElement(".dce-scanarea"),this._divScanLight=i.getElement(".dce-scanlight"),this._bgLoading=i.getElement(".dce-bg-loading"),this._bgCamera=i.getElement(".dce-bg-camera"),this._selCam=i.getElement(".dce-sel-camera"),this._optGotRsl=i.getElement(".dce-opt-gotResolution"),this._btnClose=i.getElement(".dce-btn-close"),this._optGotMinLtr=i.getElement(".dlr-opt-gotMinLtr")):(this._selRsl=i.querySelector(".dce-sel-resolution"),this._selMinLtr=i.querySelector(".dlr-sel-minletter"),this._divScanArea=i.querySelector(".dce-scanarea"),this._divScanLight=i.querySelector(".dce-scanlight"),this._bgLoading=i.querySelector(".dce-bg-loading"),this._bgCamera=i.querySelector(".dce-bg-camera"),this._selCam=i.querySelector(".dce-sel-camera"),this._optGotRsl=i.querySelector(".dce-opt-gotResolution"),this._btnClose=i.querySelector(".dce-btn-close"),this._optGotMinLtr=i.querySelector(".dlr-opt-gotMinLtr")),this._selRsl&&(this._hideDefaultSelection||we(this,Ui,"m",Ji).call(this)||this._selRsl.options.length||(this._selRsl.innerHTML=['','','',''].join(""),this._optGotRsl=this._selRsl.options[0])),this._selMinLtr&&(this._hideDefaultSelection||we(this,Ui,"m",Ji).call(this)||this._selMinLtr.options.length||(this._selMinLtr.innerHTML=['','','','','','','','','','',''].join(""),this._optGotMinLtr=this._selMinLtr.options[0])),this.isScanLaserVisible()||we(this,Ui,"m",ir).call(this),we(this,Ui,"m",Ji).call(this)&&(this._innerComponent&&(this._innerComponent.addEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.setAttribute("title","Take a photo")),this._bgCamera&&(this._bgCamera.style.display="block")),we(this,Ui,"m",Ji).call(this)||this._hideDefaultSelection?(this._selCam&&(this._selCam.style.display="none"),this._selRsl&&(this._selRsl.style.display="none"),this._selMinLtr&&(this._selMinLtr.style.display="none")):(this._selCam&&(this._selCam.style.display="block"),this._selRsl&&(this._selRsl.style.display="block"),this._selMinLtr&&(this._selMinLtr.style.display="block"),this._stopLoading()),window.ResizeObserver){this._resizeObserver||(this._resizeObserver=new ResizeObserver((t=>{var e;gr._onLog&&gr._onLog("resize observer triggered.");for(let i of t)i.target===(null===(e=this._innerComponent)||void 0===e?void 0:e.getWrapper())&&this._videoResizeListener()})));const e=null===(t=this._innerComponent)||void 0===t?void 0:t.getWrapper();e&&this._resizeObserver.observe(e)}we(this,zi,"f").width=document.documentElement.clientWidth,we(this,zi,"f").height=document.documentElement.clientHeight,window.addEventListener("resize",this._windowResizeListener)}_unbindUI(){var t,e,i,r;we(this,Ui,"m",Ji).call(this)?(this._innerComponent&&(this._innerComponent.removeEventListener("click",this._clickIptSingleFrameMode),this._innerComponent.removeAttribute("title")),this._bgCamera&&(this._bgCamera.style.display="none")):this._stopLoading(),we(this,Ui,"m",ir).call(this),null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,this._drawingLayerOfMask=null,this._drawingLayerOfTip=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null,Ee(this,Vi,null,"f"),null===(r=this._videoContainer)||void 0===r||r.remove(),this._videoContainer=null,this._selCam=null,this._selRsl=null,this._optGotRsl=null,this._btnClose=null,this._selMinLtr=null,this._optGotMinLtr=null,this._divScanArea=null,this._divScanLight=null,this._singleFrameInputContainer&&(this._singleFrameInputContainer.remove(),this._singleFrameInputContainer=null),window.ResizeObserver&&this._resizeObserver&&this._resizeObserver.disconnect(),window.removeEventListener("resize",this._windowResizeListener)}_startLoading(){this._bgLoading&&(this._bgLoading.style.display="",this._bgLoading.style.animationPlayState="")}_stopLoading(){this._bgLoading&&(this._bgLoading.style.display="none",this._bgLoading.style.animationPlayState="paused")}_renderCamerasInfo(t,e){if(!this._selCam)return;let i;this._selCam.textContent="";for(let r of e){const e=document.createElement("option");e.value=r.deviceId,e.innerText=r.label,this._selCam.append(e),r.deviceId&&t&&t.deviceId==r.deviceId&&(i=e)}this._selCam.value=i?i.value:""}_renderResolutionInfo(t){this._optGotRsl&&(this._optGotRsl.setAttribute("data-width",t.width),this._optGotRsl.setAttribute("data-height",t.height),this._optGotRsl.innerText="got "+t.width+"x"+t.height,this._selRsl&&this._optGotRsl.parentNode==this._selRsl&&(this._selRsl.value="got"))}getVideoElement(){return we(this,Vi,"f")}isVideoLoaded(){return!!we(this,Vi,"f")&&4==we(this,Vi,"f").readyState}setVideoFit(t){if(t=t.toLowerCase(),!["contain","cover"].includes(t))throw new Error(`Unsupported value '${t}'.`);if(this.videoFit=t,!we(this,Vi,"f"))return;if(we(this,Vi,"f").style.objectFit=t,we(this,Ui,"m",Ji).call(this))return;let e;this._updateVideoContainer();try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}we(this,Ui,"m",rr).call(this,e,this.getConvertedRegion()),this.updateDrawingLayers(e)}getVideoFit(){return this.videoFit}getContentDimensions(){var t,e,i,r;let n,s,o;if(we(this,Ui,"m",Ji).call(this)?(n=null===(i=this._cvsSingleFrameMode)||void 0===i?void 0:i.width,s=null===(r=this._cvsSingleFrameMode)||void 0===r?void 0:r.height,o="contain"):(n=null===(t=we(this,Vi,"f"))||void 0===t?void 0:t.videoWidth,s=null===(e=we(this,Vi,"f"))||void 0===e?void 0:e.videoHeight,o=this.getVideoFit()),!n||!s)throw new Error("Invalid content dimensions.");return{width:n,height:s,objectFit:o}}updateConvertedRegion(t){const e=ti.convert(this.scanRegion,t.width,t.height);Ee(this,Yi,e,"f"),we(this,Wi,"f")&&clearTimeout(we(this,Wi,"f")),Ee(this,Wi,setTimeout((()=>{let t;try{t=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}we(this,Ui,"m",Qi).call(this,t,e),we(this,Ui,"m",rr).call(this,t,e)}),0),"f")}getConvertedRegion(){return we(this,Yi,"f")}setScanRegion(t){if(null!=t&&!ze(t)&&!Qe(t))throw TypeError("Invalid 'region'.");let e;this.scanRegion=t?JSON.parse(JSON.stringify(t)):null;try{e=this.getContentDimensions()}catch(t){if("Invalid content dimensions."===(t.message||t))return;throw t}this.updateConvertedRegion(e)}getScanRegion(){return JSON.parse(JSON.stringify(this.scanRegion))}getVisibleRegionOfVideo(t){if(!this.isVideoLoaded())throw new Error("The video is not loaded.");const e=we(this,Vi,"f").videoWidth,i=we(this,Vi,"f").videoHeight,r=this.getVideoFit(),{width:n,height:s}=this._innerComponent.getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");let o;const a={x:0,y:0,width:e,height:i,isMeasuredInPercentage:!1};if("cover"===r&&(n/s1){const t=we(this,Vi,"f").videoWidth,e=we(this,Vi,"f").videoHeight,{width:r,height:n}=this._innerComponent.getBoundingClientRect(),s=t/e;if(r/nt.remove())),we(this,Ki,"f").length=0}dispose(){this._unbindUI(),delete window._dce_default_template,this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"disposed",{value:!0})}}function mr(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function pr(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}ji=new WeakMap,Gi=new WeakMap,Wi=new WeakMap,Vi=new WeakMap,Yi=new WeakMap,Hi=new WeakMap,Xi=new WeakMap,zi=new WeakMap,Zi=new WeakMap,Ki=new WeakMap,qi=new WeakMap,Ui=new WeakSet,Ji=function(){return"disabled"!==this._singleFrameMode},Qi=function(t,e){!e||0===e.x&&0===e.y&&e.width===t.width&&e.height===t.height?this.clearScanRegionMask():this.setScanRegionMask(e.x,e.y,e.width,e.height)},$i=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!0)},tr=function(){this._drawingLayerOfMask&&this._drawingLayerOfMask.setVisible(!1)},er=function(){this._divScanLight&&"none"==this._divScanLight.style.display&&(this._divScanLight.style.display="block")},ir=function(){this._divScanLight&&(this._divScanLight.style.display="none")},rr=function(t,e){if(!this._divScanArea)return;if(!this._innerComponent.getElement("content"))return;const{width:i,height:r,objectFit:n}=t;e||(e={x:0,y:0,width:i,height:r});const{width:s,height:o}=this._innerComponent.getBoundingClientRect();if(s<=0||o<=0)return;const a=s/o,h=i/r;let l,c,u,d,f=1;if("contain"===n)a66||"Safari"===Cr.browser&&Cr.version>13||"OPR"===Cr.browser&&Cr.version>43||"Edge"===Cr.browser&&Cr.version,"function"==typeof SuppressedError&&SuppressedError;let Sr=class t{static multiply(t,e){const i=[];for(let r=0;r<3;r++){const n=e.slice(3*r,3*r+3);for(let e=0;e<3;e++){const r=[t[e],t[e+3],t[e+6]].reduce(((t,e,i)=>t+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(e,i,r){return t.multiply(e,[1,0,0,0,1,0,i,r,1])}static rotate(e,i){var r=Math.cos(i),n=Math.sin(i);return t.multiply(e,[r,-n,0,n,r,0,0,0,1])}static scale(e,i,r){return t.multiply(e,[i,0,0,0,r,0,0,0,1])}};var Ir,xr,Ar,Rr,Or,Dr,Lr,Mr,Fr,Pr,kr,Br,Nr,Ur,jr,Gr,Wr,Vr,Yr,Hr,Xr,zr,Zr,Kr,qr,Jr,Qr,$r,tn,en,rn,nn,sn,on,an,hn,ln,cn,un,dn,fn,gn,mn,pn,_n,vn,yn,wn,En,Cn,Tn,bn;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(Ir||(Ir={}));class Sn{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(br(Sn,xr,!1,"f",Ar),!1):(br(Sn,xr,!0,"f",Ar),!0)}get disposed(){return Tr(this,Fr,"f")}constructor(){Rr.set(this,Ir.RGBA),Or.set(this,null),Dr.set(this,null),Lr.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,Mr.set(this,null),Fr.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==Tr(Sn,xr,"f",Ar)&&Sn.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!Tr(Sn,xr,"f",Ar))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;Sn._onLog&&(o=Date.now(),Sn._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=Ir.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!Tr(Sn,xr,"f",Ar)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){Sn._onLog&&Sn._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);br(this,Dr,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),br(this,Lr,e(t),"f"),br(this,Or,i(t),"f"),br(this,Rr,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[Ir.GREY,Ir.GREY32].includes(p)?1:0);let m,_,v=Sr.translate(Sr.identity(),-1,-1);v=Sr.scale(v,2,2),v=Sr.scale(v,1/t.canvas.width,1/t.canvas.height),m=Sr.translate(v,u,d),m=Sr.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=Sr.translate(Sr.identity(),a/i,h/r),_=Sr.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,Tr(this,Or,"f"),e),v(t,Tr(this,Dr,"f"),Tr(this,Lr,"f"),Tr(this,Or,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){Sn._onLog&&Sn._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return Sn._onLog&&Sn._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===Ir.GREY?Ir.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return Sn._onLog&&Sn._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(Sn._onLog&&(n=Date.now(),Sn._onLog("transformPixelFormat(), START: "+n)),e===i)return Sn._onLog&&Sn._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[Ir.RGBA,Ir.RBGA,Ir.GRBA,Ir.GBRA,Ir.BRGA,Ir.BGRA];if(o.includes(e))if(i===Ir.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;Sn._onLog&&(s=Date.now(),Sn._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=Ir.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),Tr(Sn,xr,"f",Ar)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){Sn._onLog&&Sn._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===Ir.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{this.disposed||n.apply(i.target,r)}),0);else try{s=n.apply(i.target,r)}catch(t){}if(!0===s)break}}}dispose(){pr(this,kr,!0,"f")}}Pr=new WeakMap,kr=new WeakMap;const xn=(t,e,i,r)=>{if(!i)return t;let n=e+Math.round((t-e)/i)*i;return r&&(n=Math.min(n,r)),n};class An{static get version(){return"2.0.7"}static isStorageAvailable(t){let e;try{e=window[t];const i="__storage_test__";return e.setItem(i,i),e.removeItem(i),!0}catch(t){return t instanceof DOMException&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&e&&0!==e.length}}static findBestRearCameraInIOS(t,e){if(!t||!t.length)return null;let i=!1;if((null==e?void 0:e.getMainCamera)&&(i=!0),i){const e=["후면 카메라","背面カメラ","後置鏡頭","后置相机","กล้องด้านหลัง","बैक कैमरा","الكاميرا الخلفية","מצלמה אחורית","камера на задней панели","задня камера","задна камера","артқы камера","πίσω κάμερα","zadní fotoaparát","zadná kamera","tylny aparat","takakamera","stražnja kamera","rückkamera","kamera på baksidan","kamera belakang","kamera bak","hátsó kamera","fotocamera (posteriore)","câmera traseira","câmara traseira","cámara trasera","càmera posterior","caméra arrière","cameră spate","camera mặt sau","camera aan achterzijde","bagsidekamera","back camera","arka kamera"],i=t.find((t=>e.includes(t.label.toLowerCase())));return null==i?void 0:i.deviceId}{const e=["후면","背面","後置","后置","านหลัง","बैक","خلفية","אחורית","задняя","задней","задна","πίσω","zadní","zadná","tylny","trasera","traseira","taka","stražnja","spate","sau","rück","posteriore","posterior","hátsó","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"],i=["트리플","三镜头","三鏡頭","トリプル","สาม","ट्रिपल","ثلاثية","משולשת","үштік","тройная","тройна","потроєна","τριπλή","üçlü","trójobiektywowy","trostruka","trojný","trojitá","trippelt","trippel","triplă","triple","tripla","tiga","kolmois","ba camera"],r=["듀얼 와이드","雙廣角","双广角","デュアル広角","คู่ด้านหลังมุมกว้าง","ड्युअल वाइड","مزدوجة عريضة","כפולה רחבה","қос кең бұрышты","здвоєна ширококутна","двойная широкоугольная","двойна широкоъгълна","διπλή ευρεία","çift geniş","laajakulmainen kaksois","kép rộng mặt sau","kettős, széles látószögű","grande angular dupla","ganda","dwuobiektywowy","dwikamera","dvostruka široka","duální širokoúhlý","duálna širokouhlá","dupla grande-angular","dublă","dubbel vidvinkel","dual-weitwinkel","dual wide","dual con gran angular","dual","double","doppia con grandangolo","doble","dobbelt vidvinkelkamera"],n=t.filter((t=>{const i=t.label.toLowerCase();return e.some((t=>i.includes(t)))}));if(!n.length)return null;const s=n.find((t=>{const e=t.label.toLowerCase();return i.some((t=>e.includes(t)))}));if(s)return s.deviceId;const o=n.find((t=>{const e=t.label.toLowerCase();return r.some((t=>e.includes(t)))}));return o?o.deviceId:n[0].deviceId}}static findBestRearCamera(t,e){if(!t||!t.length)return null;if(["iPhone","iPad","Mac"].includes(Cr.OS))return An.findBestRearCameraInIOS(t,{getMainCamera:null==e?void 0:e.getMainCameraInIOS});const i=["후","背面","背置","後面","後置","后面","后置","านหลัง","หลัง","बैक","خلفية","אחורית","задняя","задня","задней","задна","πίσω","zadní","zadná","tylny","trás","trasera","traseira","taka","stražnja","spate","sau","rück","rear","posteriore","posterior","hátsó","darrere","belakang","baksidan","bakre","bak","bagside","back","aртқы","arrière","arka","achterzijde"];for(let e of t){const t=e.label.toLowerCase();if(t&&i.some((e=>t.includes(e)))&&/\b0(\b)?/.test(t))return e.deviceId}return["Android","HarmonyOS"].includes(Cr.OS)?t[t.length-1].deviceId:null}static findBestCamera(t,e,i){return t&&t.length?"environment"===e?this.findBestRearCamera(t,i):"user"===e?null:e?void 0:null:null}static async playVideo(t,e,i){if(!t)throw new Error("Invalid 'videoEl'.");if(!e)throw new Error("Invalid 'source'.");return new Promise((async(r,n)=>{let s;const o=()=>{t.removeEventListener("loadstart",c),t.removeEventListener("abort",u),t.removeEventListener("play",d),t.removeEventListener("error",f),t.removeEventListener("loadedmetadata",p)};let a=!1;const h=()=>{a=!0,s&&clearTimeout(s),o(),r(t)},l=t=>{s&&clearTimeout(s),o(),n(t)},c=()=>{t.addEventListener("abort",u,{once:!0})},u=()=>{const t=new Error("Video playing was interrupted.");t.name="AbortError",l(t)},d=()=>{h()},f=()=>{l(new Error(`Video error ${t.error.code}: ${t.error.message}.`))};let g;const m=new Promise((t=>{g=t})),p=()=>{g()};if(t.addEventListener("loadstart",c,{once:!0}),t.addEventListener("play",d,{once:!0}),t.addEventListener("error",f,{once:!0}),t.addEventListener("loadedmetadata",p,{once:!0}),"string"==typeof e||e instanceof String?t.src=e:t.srcObject=e,t.autoplay&&await new Promise((t=>{setTimeout(t,1e3)})),!a){i&&(s=setTimeout((()=>{o(),n(new Error("Failed to play video. Timeout."))}),i));try{t.src&&await t.load(),await t.play(),h()}catch(t){console.warn("1st play error: "+((null==t?void 0:t.message)||t))}if(!a){await m;try{await t.play(),h()}catch(t){console.warn("2rd play error: "+((null==t?void 0:t.message)||t)),l(t)}}}}))}static async testCameraAccess(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))return{ok:!1,errorName:"InsecureContext",errorMessage:"Insecure context."};let r;try{r=t?await navigator.mediaDevices.getUserMedia(t):await navigator.mediaDevices.getUserMedia({video:!0})}catch(t){return{ok:!1,errorName:t.name,errorMessage:t.message}}finally{null==r||r.getTracks().forEach((t=>{t.stop()}))}return{ok:!0}}get state(){if(!mr(this,qr,"f"))return"closed";if("pending"===mr(this,qr,"f"))return"opening";if("fulfilled"===mr(this,qr,"f"))return"opened";throw new Error("Unknown state.")}set ifSaveLastUsedCamera(t){t?An.isStorageAvailable("localStorage")?pr(this,Xr,!0,"f"):(pr(this,Xr,!1,"f"),console.warn("Local storage is unavailable")):pr(this,Xr,!1,"f")}get ifSaveLastUsedCamera(){return mr(this,Xr,"f")}get isVideoPlaying(){return!(!mr(this,Ur,"f")||mr(this,Ur,"f").paused)&&"opened"===this.state}set tapFocusEventBoundEl(t){var e,i,r;if(!(t instanceof HTMLElement)&&null!=t)throw new TypeError("Invalid 'element'.");null===(e=mr(this,rn,"f"))||void 0===e||e.removeEventListener("click",mr(this,en,"f")),null===(i=mr(this,rn,"f"))||void 0===i||i.removeEventListener("touchend",mr(this,en,"f")),null===(r=mr(this,rn,"f"))||void 0===r||r.removeEventListener("touchmove",mr(this,tn,"f")),pr(this,rn,t,"f"),t&&(window.TouchEvent&&["Android","HarmonyOS","iPhone","iPad"].includes(Cr.OS)?(t.addEventListener("touchend",mr(this,en,"f")),t.addEventListener("touchmove",mr(this,tn,"f"))):t.addEventListener("click",mr(this,en,"f")))}get tapFocusEventBoundEl(){return mr(this,rn,"f")}get disposed(){return mr(this,dn,"f")}constructor(t){var e,i;Nr.add(this),Ur.set(this,null),jr.set(this,void 0),Gr.set(this,(()=>{"opened"===this.state&&mr(this,an,"f").fire("resumed",null,{target:this,async:!1})})),Wr.set(this,(()=>{mr(this,an,"f").fire("paused",null,{target:this,async:!1})})),Vr.set(this,void 0),Yr.set(this,void 0),this.cameraOpenTimeout=15e3,this._arrCameras=[],Hr.set(this,void 0),Xr.set(this,!1),this.ifSkipCameraInspection=!1,this.selectIOSRearMainCameraAsDefault=!1,zr.set(this,void 0),Zr.set(this,!0),Kr.set(this,void 0),qr.set(this,void 0),Jr.set(this,!1),this._focusParameters={maxTimeout:400,minTimeout:300,kTimeout:void 0,oldDistance:null,fds:null,isDoingFocus:0,taskBackToContinous:null,curFocusTaskId:0,focusCancelableTime:1500,defaultFocusAreaSizeRatio:6,focusBackToContinousTime:5e3,tapFocusMinDistance:null,tapFocusMaxDistance:null,focusArea:null,tempBufferContainer:null,defaultTempBufferContainerLenRatio:1/4},Qr.set(this,!1),this._focusSupported=!0,this.calculateCoordInVideo=(t,e)=>{let i,r;const n=window.getComputedStyle(mr(this,Ur,"f")).objectFit,s=this.getResolution(),o=mr(this,Ur,"f").getBoundingClientRect(),a=o.left,h=o.top,{width:l,height:c}=mr(this,Ur,"f").getBoundingClientRect();if(l<=0||c<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const u=l/c,d=s.width/s.height;let f=1;if("contain"===n)d>u?(f=l/s.width,i=(t-a)/f,r=(e-h-(c-l/d)/2)/f):(f=c/s.height,r=(e-h)/f,i=(t-a-(l-c*d)/2)/f);else{if("cover"!==n)throw new Error("Unsupported object-fit.");d>u?(f=c/s.height,r=(e-h)/f,i=(t-a+(c*d-l)/2)/f):(f=l/s.width,i=(t-a)/f,r=(e-h+(l/d-c)/2)/f)}return{x:i,y:r}},$r.set(this,!1),tn.set(this,(()=>{pr(this,$r,!0,"f")})),en.set(this,(async t=>{var e;if(mr(this,$r,"f"))return void pr(this,$r,!1,"f");if(!mr(this,Qr,"f"))return;if(!this.isVideoPlaying)return;if(!mr(this,jr,"f"))return;if(!this._focusSupported)return;if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(e=this.getCameraCapabilities())||void 0===e?void 0:e.focusDistance,!this._focusParameters.fds))return void(this._focusSupported=!1);if(null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),1==this._focusParameters.isDoingFocus)return;let i,r;if(this._focusParameters.taskBackToContinous&&(clearTimeout(this._focusParameters.taskBackToContinous),this._focusParameters.taskBackToContinous=null),t instanceof MouseEvent)i=t.clientX,r=t.clientY;else{if(!(t instanceof TouchEvent))throw new Error("Unknown event type.");if(!t.changedTouches.length)return;i=t.changedTouches[0].clientX,r=t.changedTouches[0].clientY}const n=this.getResolution(),s=2*Math.round(Math.min(n.width,n.height)/this._focusParameters.defaultFocusAreaSizeRatio/2);let o;try{o=this.calculateCoordInVideo(i,r)}catch(t){}if(o.x<0||o.x>n.width||o.y<0||o.y>n.height)return;const a={x:o.x+"px",y:o.y+"px"},h=s+"px",l=h;let c;An._onLog&&(c=Date.now());try{await mr(this,Nr,"m",Cn).call(this,a,h,l,this._focusParameters.tapFocusMinDistance,this._focusParameters.tapFocusMaxDistance)}catch(t){if(An._onLog)throw An._onLog(t),t}An._onLog&&An._onLog(`Tap focus costs: ${Date.now()-c} ms`),this._focusParameters.taskBackToContinous=setTimeout((()=>{var t;An._onLog&&An._onLog("Back to continuous focus."),null===(t=mr(this,jr,"f"))||void 0===t||t.applyConstraints({advanced:[{focusMode:"continuous"}]}).catch((()=>{}))}),this._focusParameters.focusBackToContinousTime),mr(this,an,"f").fire("tapfocus",null,{target:this,async:!1})})),rn.set(this,null),nn.set(this,1),sn.set(this,{x:0,y:0}),this.updateVideoElWhenSoftwareScaled=()=>{if(!mr(this,Ur,"f"))return;const t=mr(this,nn,"f");if(t<1)throw new RangeError("Invalid scale value.");if(1===t)mr(this,Ur,"f").style.transform="";else{const e=window.getComputedStyle(mr(this,Ur,"f")).objectFit,i=mr(this,Ur,"f").videoWidth,r=mr(this,Ur,"f").videoHeight,{width:n,height:s}=mr(this,Ur,"f").getBoundingClientRect();if(n<=0||s<=0)throw new Error("Unable to get video dimensions. Video may not be rendered on the page.");const o=n/s,a=i/r;let h=1;"contain"===e?h=oo?s/(i/t):n/(r/t));const l=h*(1-1/t)*(i/2-mr(this,sn,"f").x),c=h*(1-1/t)*(r/2-mr(this,sn,"f").y);mr(this,Ur,"f").style.transform=`translate(${l}px, ${c}px) scale(${t})`}},on.set(this,(function(){if(!(this.data instanceof Uint8Array||this.data instanceof Uint8ClampedArray))throw new TypeError("Invalid data.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.pixelFormat===Ir.GREY){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{var t,e;if("visible"===document.visibilityState){if(An._onLog&&An._onLog("document visible. video paused: "+(null===(t=mr(this,Ur,"f"))||void 0===t?void 0:t.paused)),"opening"==this.state||"opened"==this.state){let e=!1;if(!this.isVideoPlaying){An._onLog&&An._onLog("document visible. Not auto resume. 1st resume start.");try{await this.resume(),e=!0}catch(t){An._onLog&&An._onLog("document visible. 1st resume video failed, try open instead.")}e||await mr(this,Nr,"m",_n).call(this)}if(await new Promise((t=>setTimeout(t,300))),!this.isVideoPlaying){An._onLog&&An._onLog("document visible. 1st open failed. 2rd resume start."),e=!1;try{await this.resume(),e=!0}catch(t){An._onLog&&An._onLog("document visible. 2rd resume video failed, try open instead.")}e||await mr(this,Nr,"m",_n).call(this)}}}else"hidden"===document.visibilityState&&(An._onLog&&An._onLog("document hidden. video paused: "+(null===(e=mr(this,Ur,"f"))||void 0===e?void 0:e.paused)),"opening"==this.state||"opened"==this.state&&this.isVideoPlaying&&this.pause())})),dn.set(this,!1),(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia)||setTimeout((()=>{An.onWarning&&An.onWarning("The browser is too old or the page is loaded from an insecure origin.")}),0),this.defaultConstraints={video:{facingMode:{ideal:"environment"}}},this.resetMediaStreamConstraints(),t instanceof HTMLVideoElement&&this.setVideoEl(t),pr(this,an,new In,"f"),this.imageDataGetter=new Sn,document.addEventListener("visibilitychange",mr(this,un,"f"))}setVideoEl(t){if(!(t&&t instanceof HTMLVideoElement))throw new Error("Invalid 'videoEl'.");t.addEventListener("play",mr(this,Gr,"f")),t.addEventListener("pause",mr(this,Wr,"f")),pr(this,Ur,t,"f")}getVideoEl(){return mr(this,Ur,"f")}releaseVideoEl(){var t,e;null===(t=mr(this,Ur,"f"))||void 0===t||t.removeEventListener("play",mr(this,Gr,"f")),null===(e=mr(this,Ur,"f"))||void 0===e||e.removeEventListener("pause",mr(this,Wr,"f")),pr(this,Ur,null,"f")}isVideoLoaded(){return!!mr(this,Ur,"f")&&4==mr(this,Ur,"f").readyState}async open(){if(mr(this,Kr,"f")&&!mr(this,Zr,"f")){if("pending"===mr(this,qr,"f"))return mr(this,Kr,"f");if("fulfilled"===mr(this,qr,"f"))return}mr(this,an,"f").fire("before:open",null,{target:this}),await mr(this,Nr,"m",_n).call(this),mr(this,an,"f").fire("played",null,{target:this,async:!1}),mr(this,an,"f").fire("opened",null,{target:this,async:!1})}async close(){if("closed"===this.state)return;mr(this,an,"f").fire("before:close",null,{target:this});const t=mr(this,Kr,"f");if(mr(this,Nr,"m",yn).call(this),t&&"pending"===mr(this,qr,"f")){try{await t}catch(t){}if(!1===mr(this,Zr,"f")){const t=new Error("'close()' was interrupted.");throw t.name="AbortError",t}}pr(this,Kr,null,"f"),pr(this,qr,null,"f"),mr(this,an,"f").fire("closed",null,{target:this,async:!1})}pause(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");mr(this,Ur,"f").pause()}async resume(){if(!this.isVideoLoaded())throw new Error("Video is not loaded.");if("opened"!==this.state)throw new Error("Camera or video is not open.");await mr(this,Ur,"f").play()}async setCamera(t){if("string"!=typeof t)throw new TypeError("Invalid 'deviceId'.");if("object"!=typeof mr(this,Vr,"f").video&&(mr(this,Vr,"f").video={}),delete mr(this,Vr,"f").video.facingMode,mr(this,Vr,"f").video.deviceId={exact:t},!("closed"===this.state||this.videoSrc||"opening"===this.state&&mr(this,Zr,"f"))){mr(this,an,"f").fire("before:camera:change",[],{target:this,async:!1}),await mr(this,Nr,"m",vn).call(this);try{this.resetSoftwareScale()}catch(t){}return mr(this,Yr,"f")}}async switchToFrontCamera(t){if("object"!=typeof mr(this,Vr,"f").video&&(mr(this,Vr,"f").video={}),(null==t?void 0:t.resolution)&&(mr(this,Vr,"f").video.width={ideal:t.resolution.width},mr(this,Vr,"f").video.height={ideal:t.resolution.height}),delete mr(this,Vr,"f").video.deviceId,mr(this,Vr,"f").video.facingMode={exact:"user"},pr(this,Hr,null,"f"),!("closed"===this.state||this.videoSrc||"opening"===this.state&&mr(this,Zr,"f"))){mr(this,an,"f").fire("before:camera:change",[],{target:this,async:!1}),mr(this,Nr,"m",vn).call(this);try{this.resetSoftwareScale()}catch(t){}return mr(this,Yr,"f")}}getCamera(){var t;if(mr(this,Yr,"f"))return mr(this,Yr,"f");{let e=(null===(t=mr(this,Vr,"f").video)||void 0===t?void 0:t.deviceId)||"";if(e){e=e.exact||e.ideal||e;for(let t of this._arrCameras)if(t.deviceId===e)return JSON.parse(JSON.stringify(t))}return{deviceId:"",label:"",_checked:!1}}}async _getCameras(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;if(t){let t=await navigator.mediaDevices.getUserMedia({video:!0});r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind)),t.getTracks().forEach((t=>{t.stop()}))}else r=(await navigator.mediaDevices.enumerateDevices()).filter((t=>"videoinput"===t.kind));const n=[],s=[];if(this._arrCameras)for(let t of this._arrCameras)t._checked&&s.push(t);for(let t=0;t"videoinput"===t.kind));return i&&i.length&&!i[0].deviceId?this._getCameras(!0):this._getCameras(!1)}async getAllCameras(){return this.getCameras()}async setResolution(t,e,i){if("number"!=typeof t||t<=0)throw new TypeError("Invalid 'width'.");if("number"!=typeof e||e<=0)throw new TypeError("Invalid 'height'.");if("object"!=typeof mr(this,Vr,"f").video&&(mr(this,Vr,"f").video={}),i?(mr(this,Vr,"f").video.width={exact:t},mr(this,Vr,"f").video.height={exact:e}):(mr(this,Vr,"f").video.width={ideal:t},mr(this,Vr,"f").video.height={ideal:e}),"closed"===this.state||this.videoSrc||"opening"===this.state&&mr(this,Zr,"f"))return null;mr(this,an,"f").fire("before:resolution:change",[],{target:this,async:!1}),await mr(this,Nr,"m",vn).call(this);try{this.resetSoftwareScale()}catch(t){}const r=this.getResolution();return{width:r.width,height:r.height}}getResolution(){if("opened"===this.state&&this.videoSrc&&mr(this,Ur,"f"))return{width:mr(this,Ur,"f").videoWidth,height:mr(this,Ur,"f").videoHeight};if(mr(this,jr,"f")){const t=mr(this,jr,"f").getSettings();return{width:t.width,height:t.height}}if(this.isVideoLoaded())return{width:mr(this,Ur,"f").videoWidth,height:mr(this,Ur,"f").videoHeight};{const t={width:0,height:0};let e=mr(this,Vr,"f").video.width||0,i=mr(this,Vr,"f").video.height||0;return e&&(t.width=e.exact||e.ideal||e),i&&(t.height=i.exact||i.ideal||i),t}}async getResolutions(t){var e,i,r,n,s,o,a,h,l,c,u;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let d="";const f=(t,e)=>{const i=mr(this,ln,"f").get(t);if(!i||!i.length)return!1;for(let t of i)if(t.width===e.width&&t.height===e.height)return!0;return!1};if(this._mediaStream){d=null===(u=mr(this,Yr,"f"))||void 0===u?void 0:u.deviceId;let e=mr(this,ln,"f").get(d);if(e&&!t)return JSON.parse(JSON.stringify(e));e=[],mr(this,ln,"f").set(d,e),pr(this,Jr,!0,"f");try{for(let t of this.detectedResolutions){await mr(this,jr,"f").applyConstraints({width:{ideal:t.width},height:{ideal:t.height}}),mr(this,Nr,"m",gn).call(this);const i=mr(this,jr,"f").getSettings(),r={width:i.width,height:i.height};f(d,r)||e.push({width:r.width,height:r.height})}}catch(t){throw mr(this,Nr,"m",yn).call(this),pr(this,Jr,!1,"f"),t}try{await mr(this,Nr,"m",_n).call(this)}catch(t){if("AbortError"===t.name)return e;throw t}finally{pr(this,Jr,!1,"f")}return e}{const e=async(t,e,i)=>{const r={video:{deviceId:{exact:t},width:{ideal:e},height:{ideal:i}}};let n=null;try{n=await navigator.mediaDevices.getUserMedia(r)}catch(t){return null}if(!n)return null;const s=n.getVideoTracks();let o=null;try{const t=s[0].getSettings();o={width:t.width,height:t.height}}catch(t){const e=document.createElement("video");e.srcObject=n,o={width:e.videoWidth,height:e.videoHeight},e.srcObject=null}return s.forEach((t=>{t.stop()})),o};let i=(null===(s=null===(n=null===(r=mr(this,Vr,"f"))||void 0===r?void 0:r.video)||void 0===n?void 0:n.deviceId)||void 0===s?void 0:s.exact)||(null===(h=null===(a=null===(o=mr(this,Vr,"f"))||void 0===o?void 0:o.video)||void 0===a?void 0:a.deviceId)||void 0===h?void 0:h.ideal)||(null===(c=null===(l=mr(this,Vr,"f"))||void 0===l?void 0:l.video)||void 0===c?void 0:c.deviceId);if(!i)return[];let u=mr(this,ln,"f").get(i);if(u&&!t)return JSON.parse(JSON.stringify(u));u=[],mr(this,ln,"f").set(i,u);for(let t of this.detectedResolutions){const r=await e(i,t.width,t.height);r&&!f(i,r)&&u.push({width:r.width,height:r.height})}return u}}async setMediaStreamConstraints(t,e){if(!(t=>{return null!==t&&"[object Object]"===(e=t,Object.prototype.toString.call(e));var e})(t))throw new TypeError("Invalid 'mediaStreamConstraints'.");pr(this,Vr,JSON.parse(JSON.stringify(t)),"f"),pr(this,Hr,null,"f"),e&&mr(this,Nr,"m",vn).call(this)}getMediaStreamConstraints(){return JSON.parse(JSON.stringify(mr(this,Vr,"f")))}resetMediaStreamConstraints(){pr(this,Vr,this.defaultConstraints?JSON.parse(JSON.stringify(this.defaultConstraints)):null,"f")}getCameraCapabilities(){if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return mr(this,jr,"f").getCapabilities?mr(this,jr,"f").getCapabilities():{}}getCameraSettings(){if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");return mr(this,jr,"f").getSettings()}async turnOnTorch(){if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await mr(this,jr,"f").applyConstraints({advanced:[{torch:!0}]})}async turnOffTorch(){if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const t=this.getCameraCapabilities();if(!(null==t?void 0:t.torch))throw Error("Not supported.");await mr(this,jr,"f").applyConstraints({advanced:[{torch:!1}]})}async setColorTemperature(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.colorTemperature;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=xn(t,r.min,r.step,r.max)),await mr(this,jr,"f").applyConstraints({advanced:[{colorTemperature:t,whiteBalanceMode:"manual"}]}),t}getColorTemperature(){return this.getCameraSettings().colorTemperature||0}async setExposureCompensation(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.exposureCompensation;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=xn(t,r.min,r.step,r.max)),await mr(this,jr,"f").applyConstraints({advanced:[{exposureCompensation:t}]}),t}getExposureCompensation(){return this.getCameraSettings().exposureCompensation||0}async setFrameRate(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");let r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.frameRate;if(!r)throw Error("Not supported.");e&&(tr.max&&(t=r.max));const n=this.getResolution();return await mr(this,jr,"f").applyConstraints({width:{ideal:Math.max(n.width,n.height)},frameRate:t}),t}getFrameRate(){return this.getCameraSettings().frameRate}async setFocus(t,e){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const i=this.getCameraCapabilities(),r=null==i?void 0:i.focusMode,n=null==i?void 0:i.focusDistance;if(!r)throw Error("Not supported.");if("string"!=typeof t.mode)throw TypeError("Invalid 'mode'.");const s=t.mode.toLowerCase();if(!r.includes(s))throw Error("Unsupported focus mode.");if("manual"===s){if(!n)throw Error("Manual focus unsupported.");if(t.hasOwnProperty("distance")){let i=t.distance;e&&(in.max&&(i=n.max),i=xn(i,n.min,n.step,n.max)),this._focusParameters.focusArea=null,await mr(this,jr,"f").applyConstraints({advanced:[{focusMode:s,focusDistance:i}]})}else{if(!t.area)throw new Error("'distance' or 'area' should be specified in 'manual' mode.");{const e=t.area.centerPoint;let i=t.area.width,r=t.area.height;if(!i||!r){const t=this.getResolution();i||(i=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px"),r||(r=2*Math.round(Math.min(t.width,t.height)/this._focusParameters.defaultFocusAreaSizeRatio/2)+"px")}this._focusParameters.focusArea={centerPoint:{x:e.x,y:e.y},width:i,height:r},await mr(this,Nr,"m",Cn).call(this,e,i,r)}}}else this._focusParameters.focusArea=null,await mr(this,jr,"f").applyConstraints({advanced:[{focusMode:s}]})}getFocus(){const t=this.getCameraSettings(),e=t.focusMode;return e?"manual"===e?this._focusParameters.focusArea?{mode:"manual",area:JSON.parse(JSON.stringify(this._focusParameters.focusArea))}:{mode:"manual",distance:t.focusDistance}:{mode:e}:null}async enableTapToFocus(){pr(this,Qr,!0,"f")}disableTapToFocus(){pr(this,Qr,!1,"f")}isTapToFocusEnabled(){return mr(this,Qr,"f")}async setZoom(t){if("object"!=typeof t||Array.isArray(t)||null==t)throw new TypeError("Invalid 'settings'.");if("number"!=typeof t.factor)throw new TypeError("Illegal type of 'factor'.");if(t.factor<1)throw new RangeError("Invalid 'factor'.");if("opened"!==this.state)throw new Error("Video is not playing.");t.centerPoint?mr(this,Nr,"m",Tn).call(this,t.centerPoint):this.resetScaleCenter();try{if(mr(this,Nr,"m",bn).call(this,mr(this,sn,"f"))){const e=await this.setHardwareScale(t.factor,!0);let i=this.getHardwareScale();1==i&&1!=e&&(i=e),t.factor>i?this.setSoftwareScale(t.factor/i):this.setSoftwareScale(1)}else await this.setHardwareScale(1),this.setSoftwareScale(t.factor)}catch(e){const i=e.message||e;if("Not supported."!==i&&"Camera is not open."!==i)throw e;this.setSoftwareScale(t.factor)}}getZoom(){if("opened"!==this.state)throw new Error("Video is not playing.");let t=1;try{t=this.getHardwareScale()}catch(t){if("Camera is not open."!==(t.message||t))throw t}return{factor:t*mr(this,nn,"f")}}async resetZoom(){await this.setZoom({factor:1})}async setHardwareScale(t,e){var i;if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if(!mr(this,jr,"f")||"opened"!==this.state)throw new Error("Camera is not open.");const r=null===(i=this.getCameraCapabilities())||void 0===i?void 0:i.zoom;if(!r)throw Error("Not supported.");return e&&(tr.max&&(t=r.max),t=xn(t,r.min,r.step,r.max)),await mr(this,jr,"f").applyConstraints({advanced:[{zoom:t}]}),t}getHardwareScale(){return this.getCameraSettings().zoom||1}setSoftwareScale(t,e){if("number"!=typeof t)throw new TypeError("Invalid 'value'.");if(t<1)throw new RangeError("Invalid 'value'.");if("opened"!==this.state)throw new Error("Video is not playing.");e&&mr(this,Nr,"m",Tn).call(this,e),pr(this,nn,t,"f"),this.updateVideoElWhenSoftwareScaled()}getSoftwareScale(){return mr(this,nn,"f")}resetScaleCenter(){if("opened"!==this.state)throw new Error("Video is not playing.");const t=this.getResolution();pr(this,sn,{x:t.width/2,y:t.height/2},"f")}resetSoftwareScale(){this.setSoftwareScale(1),this.resetScaleCenter()}getFrameData(t){if(this.disposed)throw Error("The 'Camera' instance has been disposed.");if(!this.isVideoLoaded())return null;if(mr(this,Jr,"f"))return null;const e=Date.now();An._onLog&&An._onLog("getFrameData() START: "+e);const i=mr(this,Ur,"f").videoWidth,r=mr(this,Ur,"f").videoHeight;let n={sx:0,sy:0,sWidth:i,sHeight:r,dWidth:i,dHeight:r};(null==t?void 0:t.position)&&(n=JSON.parse(JSON.stringify(t.position)));let s=Ir.RGBA;(null==t?void 0:t.pixelFormat)&&(s=t.pixelFormat);let o=mr(this,nn,"f");(null==t?void 0:t.scale)&&(o=t.scale);let a=mr(this,sn,"f");if(null==t?void 0:t.scaleCenter){if("string"!=typeof t.scaleCenter.x||"string"!=typeof t.scaleCenter.y)throw new Error("Invalid scale center.");let e=0,n=0;if(t.scaleCenter.x.endsWith("px"))e=parseFloat(t.scaleCenter.x);else{if(!t.scaleCenter.x.endsWith("%"))throw new Error("Invalid scale center.");e=parseFloat(t.scaleCenter.x)/100*i}if(t.scaleCenter.y.endsWith("px"))n=parseFloat(t.scaleCenter.y);else{if(!t.scaleCenter.y.endsWith("%"))throw new Error("Invalid scale center.");n=parseFloat(t.scaleCenter.y)/100*r}if(isNaN(e)||isNaN(n))throw new Error("Invalid scale center.");a.x=Math.round(e),a.y=Math.round(n)}let h=null;if((null==t?void 0:t.bufferContainer)&&(h=t.bufferContainer),0==i||0==r)return null;1!==o&&(n.sWidth=Math.round(n.sWidth/o),n.sHeight=Math.round(n.sHeight/o),n.sx=Math.round((1-1/o)*a.x+n.sx/o),n.sy=Math.round((1-1/o)*a.y+n.sy/o));const l=this.imageDataGetter.getImageData(mr(this,Ur,"f"),i,r,n,{pixelFormat:s,bufferContainer:h});if(!l)return null;const c=Date.now();return An._onLog&&An._onLog("getFrameData() END: "+c),{data:l.data,width:l.width,height:l.height,pixelFormat:l.pixelFormat,timeSpent:c-e,timeStamp:c,toCanvas:mr(this,on,"f")}}on(t,e){if(!mr(this,hn,"f").includes(t.toLowerCase()))throw new Error(`Event '${t}' does not exist.`);mr(this,an,"f").on(t,e)}off(t,e){mr(this,an,"f").off(t,e)}async dispose(){this.tapFocusEventBoundEl=null,await this.close(),this.releaseVideoEl(),mr(this,an,"f").dispose(),this.imageDataGetter.dispose(),document.removeEventListener("visibilitychange",mr(this,un,"f")),pr(this,dn,!0,"f")}}var Rn,On,Dn,Ln,Mn,Fn,Pn,kn,Bn,Nn,Un,jn,Gn,Wn,Vn,Yn,Hn,Xn,zn,Zn,Kn,qn,Jn,Qn,$n,ts,es,is,rs,ns,ss,os,as;Ur=new WeakMap,jr=new WeakMap,Gr=new WeakMap,Wr=new WeakMap,Vr=new WeakMap,Yr=new WeakMap,Hr=new WeakMap,Xr=new WeakMap,zr=new WeakMap,Zr=new WeakMap,Kr=new WeakMap,qr=new WeakMap,Jr=new WeakMap,Qr=new WeakMap,$r=new WeakMap,tn=new WeakMap,en=new WeakMap,rn=new WeakMap,nn=new WeakMap,sn=new WeakMap,on=new WeakMap,an=new WeakMap,hn=new WeakMap,ln=new WeakMap,cn=new WeakMap,un=new WeakMap,dn=new WeakMap,Nr=new WeakSet,fn=async function(){const t=this.getMediaStreamConstraints();if("boolean"==typeof t.video&&(t.video={}),t.video.deviceId);else if(mr(this,Hr,"f"))delete t.video.facingMode,t.video.deviceId={exact:mr(this,Hr,"f")};else if(this.ifSaveLastUsedCamera&&An.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")){delete t.video.facingMode,t.video.deviceId={ideal:window.localStorage.getItem("dce_last_camera_id")};const e=JSON.parse(window.localStorage.getItem("dce_last_apply_width")),i=JSON.parse(window.localStorage.getItem("dce_last_apply_height"));e&&i&&(t.video.width=e,t.video.height=i)}else if(this.ifSkipCameraInspection);else{const e=async t=>{let e=null;return"environment"===t&&["Android","HarmonyOS","iPhone","iPad"].includes(Cr.OS)?(await this._getCameras(!1),mr(this,Nr,"m",gn).call(this),e=An.findBestCamera(this._arrCameras,"environment",{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})):t||["Android","HarmonyOS","iPhone","iPad"].includes(Cr.OS)||(await this._getCameras(!1),mr(this,Nr,"m",gn).call(this),e=An.findBestCamera(this._arrCameras,null,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault})),e};let i=t.video.facingMode;i instanceof Array&&i.length&&(i=i[0]),"object"==typeof i&&(i=i.exact||i.ideal);const r=await e(i);r&&(delete t.video.facingMode,t.video.deviceId={exact:r})}return t},gn=function(){if(mr(this,Zr,"f")){const t=new Error("The operation was interrupted.");throw t.name="AbortError",t}},mn=async function(t){var e,i;if(!(null===(i=null===(e=null===window||void 0===window?void 0:window.navigator)||void 0===e?void 0:e.mediaDevices)||void 0===i?void 0:i.getUserMedia))throw new Error("Failed to access the camera because the browser is too old or the page is loaded from an insecure origin.");let r;try{An._onLog&&An._onLog("======try getUserMedia========");let e=[0,500,1e3,2e3],i=null;const n=async t=>{for(let n of e){n&&(await new Promise((t=>setTimeout(t,n))),mr(this,Nr,"m",gn).call(this));try{An._onLog&&An._onLog("ask "+JSON.stringify(t)),r=await navigator.mediaDevices.getUserMedia(t),mr(this,Nr,"m",gn).call(this);break}catch(t){if("NotFoundError"===t.name||"NotAllowedError"===t.name||"AbortError"===t.name||"OverconstrainedError"===t.name)throw t;i=t,An._onLog&&An._onLog(t.message||t)}}};if(await n(t),r||"object"!=typeof t.video||(t.video.deviceId&&(delete t.video.deviceId,await n(t)),!r&&t.video.facingMode&&(delete t.video.facingMode,await n(t)),r||!t.video.width&&!t.video.height||(delete t.video.width,delete t.video.height,await n(t))),!r)throw i;return r}catch(t){throw null==r||r.getTracks().forEach((t=>{t.stop()})),"NotFoundError"===t.name&&(DOMException?t=new DOMException("No camera available, please use a device with an accessible camera.",t.name):(t=new Error("No camera available, please use a device with an accessible camera.")).name="NotFoundError"),t}},pn=function(){this._mediaStream&&(this._mediaStream.getTracks().forEach((t=>{t.stop()})),this._mediaStream=null),pr(this,jr,null,"f")},_n=async function(){pr(this,Zr,!1,"f");const t=pr(this,zr,Symbol(),"f");if(mr(this,Kr,"f")&&"pending"===mr(this,qr,"f")){try{await mr(this,Kr,"f")}catch(t){}mr(this,Nr,"m",gn).call(this)}if(t!==mr(this,zr,"f"))return;const e=pr(this,Kr,(async()=>{pr(this,qr,"pending","f");try{if(this.videoSrc){if(!mr(this,Ur,"f"))throw new Error("'videoEl' should be set.");await An.playVideo(mr(this,Ur,"f"),this.videoSrc,this.cameraOpenTimeout),mr(this,Nr,"m",gn).call(this)}else{let t=await mr(this,Nr,"m",fn).call(this);mr(this,Nr,"m",pn).call(this);let e=await mr(this,Nr,"m",mn).call(this,t);await this._getCameras(!1),mr(this,Nr,"m",gn).call(this);const i=()=>{const t=e.getVideoTracks();let i,r;if(t.length&&(i=t[0]),i){const t=i.getSettings();if(t)for(let e of this._arrCameras)if(t.deviceId===e.deviceId){e._checked=!0,e.label=i.label,r=e;break}}return r},r=mr(this,Vr,"f");if("object"==typeof r.video){let n=r.video.facingMode;if(n instanceof Array&&n.length&&(n=n[0]),"object"==typeof n&&(n=n.exact||n.ideal),!(mr(this,Hr,"f")||this.ifSaveLastUsedCamera&&An.isStorageAvailable&&window.localStorage.getItem("dce_last_camera_id")||this.ifSkipCameraInspection||r.video.deviceId)){const r=i(),s=An.findBestCamera(this._arrCameras,n,{getMainCameraInIOS:this.selectIOSRearMainCameraAsDefault});s&&s!=(null==r?void 0:r.deviceId)&&(e.getTracks().forEach((t=>{t.stop()})),t.video.deviceId={exact:s},e=await mr(this,Nr,"m",mn).call(this,t),mr(this,Nr,"m",gn).call(this))}}const n=i();(null==n?void 0:n.deviceId)&&(pr(this,Hr,n&&n.deviceId,"f"),this.ifSaveLastUsedCamera&&An.isStorageAvailable&&(window.localStorage.setItem("dce_last_camera_id",mr(this,Hr,"f")),"object"==typeof t.video&&t.video.width&&t.video.height&&(window.localStorage.setItem("dce_last_apply_width",JSON.stringify(t.video.width)),window.localStorage.setItem("dce_last_apply_height",JSON.stringify(t.video.height))))),mr(this,Ur,"f")&&(await An.playVideo(mr(this,Ur,"f"),e,this.cameraOpenTimeout),mr(this,Nr,"m",gn).call(this)),this._mediaStream=e;const s=e.getVideoTracks();(null==s?void 0:s.length)&&pr(this,jr,s[0],"f"),pr(this,Yr,n,"f")}}catch(t){throw mr(this,Nr,"m",yn).call(this),pr(this,qr,null,"f"),t}pr(this,qr,"fulfilled","f")})(),"f");return e},vn=async function(){var t;if("closed"===this.state||this.videoSrc)return;const e=null===(t=mr(this,Yr,"f"))||void 0===t?void 0:t.deviceId,i=this.getResolution();await mr(this,Nr,"m",_n).call(this);const r=this.getResolution();e&&e!==mr(this,Yr,"f").deviceId&&mr(this,an,"f").fire("camera:changed",[mr(this,Yr,"f").deviceId,e],{target:this,async:!1}),i.width==r.width&&i.height==r.height||mr(this,an,"f").fire("resolution:changed",[{width:r.width,height:r.height},{width:i.width,height:i.height}],{target:this,async:!1}),mr(this,an,"f").fire("played",null,{target:this,async:!1})},yn=function(){mr(this,Nr,"m",pn).call(this),pr(this,Yr,null,"f"),mr(this,Ur,"f")&&(mr(this,Ur,"f").srcObject=null,this.videoSrc&&(mr(this,Ur,"f").pause(),mr(this,Ur,"f").currentTime=0)),pr(this,Zr,!0,"f");try{this.resetSoftwareScale()}catch(t){}},wn=async function t(e,i){const r=t=>{if(!mr(this,jr,"f")||!this.isVideoPlaying||t.focusTaskId!=this._focusParameters.curFocusTaskId){mr(this,jr,"f")&&this.isVideoPlaying||(this._focusParameters.isDoingFocus=0);const e=new Error(`Focus task ${t.focusTaskId} canceled.`);throw e.name="DeprecatedTaskError",e}1===this._focusParameters.isDoingFocus&&Date.now()-t.timeStart>this._focusParameters.focusCancelableTime&&(this._focusParameters.isDoingFocus=-1)};let n;i=xn(i,this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),await mr(this,jr,"f").applyConstraints({advanced:[{focusMode:"manual",focusDistance:i}]}),r(e),n=null==this._focusParameters.oldDistance?this._focusParameters.kTimeout*Math.max(Math.abs(1/this._focusParameters.fds.min-1/i),Math.abs(1/this._focusParameters.fds.max-1/i))+this._focusParameters.minTimeout:this._focusParameters.kTimeout*Math.abs(1/this._focusParameters.oldDistance-1/i)+this._focusParameters.minTimeout,this._focusParameters.oldDistance=i,await new Promise((t=>{setTimeout(t,n)})),r(e);let s=e.focusL-e.focusW/2,o=e.focusT-e.focusH/2,a=e.focusW,h=e.focusH;const l=this.getResolution();if(s>=l.width||o>=l.height)throw new Error("Invalid area.");s+a>l.width&&(a=l.width-s),o+h>l.height&&(h=l.height-o),s=Math.round(s),o=Math.round(o),a=Math.round(a),h=Math.round(h);const c=4*l.width*l.height*this._focusParameters.defaultTempBufferContainerLenRatio,u=4*a*h;let d=this._focusParameters.tempBufferContainer;if(d){const t=d.length;c>t&&c>=u?d=new Uint8Array(c):u>t&&u>=c&&(d=new Uint8Array(u))}else d=this._focusParameters.tempBufferContainer=new Uint8Array(Math.max(c,u));if(!this.imageDataGetter.getImageData(mr(this,Ur,"f"),l.width,l.height,{sx:s,sy:o,sWidth:a,sHeight:h,dWidth:a,dHeight:h},{pixelFormat:Ir.RGBA,bufferContainer:d}))return mr(this,Nr,"m",t).call(this,e,i);const f=d;let g=0;for(let t=0,e=u-8;ta&&au)return await mr(this,Nr,"m",t).call(this,e,o,a,n,s,c,u)}else{let h=await mr(this,Nr,"m",wn).call(this,e,c);if(a>h)return await mr(this,Nr,"m",t).call(this,e,o,a,n,s,c,h);if(a==h)return await mr(this,Nr,"m",t).call(this,e,o,a,c,h);let u=await mr(this,Nr,"m",wn).call(this,e,l);if(u>a&&ao.width||h<0||h>o.height)throw new Error("Invalid 'centerPoint'.");let l=0;if(e.endsWith("px"))l=parseFloat(e);else{if(!e.endsWith("%"))throw new Error("Invalid 'width'.");l=parseFloat(e)/100*o.width}if(isNaN(l)||l<0)throw new Error("Invalid 'width'.");let c=0;if(i.endsWith("px"))c=parseFloat(i);else{if(!i.endsWith("%"))throw new Error("Invalid 'height'.");c=parseFloat(i)/100*o.height}if(isNaN(c)||c<0)throw new Error("Invalid 'height'.");if(1!==mr(this,nn,"f")){const t=mr(this,nn,"f"),e=mr(this,sn,"f");l/=t,c/=t,a=(1-1/t)*e.x+a/t,h=(1-1/t)*e.y+h/t}if(!this._focusSupported)throw new Error("Manual focus unsupported.");if(!this._focusParameters.fds&&(this._focusParameters.fds=null===(s=this.getCameraCapabilities())||void 0===s?void 0:s.focusDistance,!this._focusParameters.fds))throw this._focusSupported=!1,new Error("Manual focus unsupported.");null==this._focusParameters.kTimeout&&(this._focusParameters.kTimeout=(this._focusParameters.maxTimeout-this._focusParameters.minTimeout)/(1/this._focusParameters.fds.min-1/this._focusParameters.fds.max)),this._focusParameters.isDoingFocus=1;const u={focusL:a,focusT:h,focusW:l,focusH:c,focusTaskId:++this._focusParameters.curFocusTaskId,timeStart:Date.now()},d=async(t,e,i)=>{try{(null==e||ethis._focusParameters.fds.max)&&(i=this._focusParameters.fds.max),this._focusParameters.oldDistance=null;let r=xn(Math.sqrt(i*(e||this._focusParameters.fds.step)),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),n=xn(Math.sqrt((e||this._focusParameters.fds.step)*r),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),s=xn(Math.sqrt(r*i),this._focusParameters.fds.min,this._focusParameters.fds.step,this._focusParameters.fds.max),o=await mr(this,Nr,"m",wn).call(this,t,s),a=await mr(this,Nr,"m",wn).call(this,t,n),h=await mr(this,Nr,"m",wn).call(this,t,r);if(a>h&&ho&&a>o){let e=await mr(this,Nr,"m",wn).call(this,t,i);const n=await mr(this,Nr,"m",En).call(this,t,r,h,i,e,s,o);return this._focusParameters.isDoingFocus=0,n}if(a==h&&hh){const e=await mr(this,Nr,"m",En).call(this,t,r,h,s,o);return this._focusParameters.isDoingFocus=0,e}return d(t,e,i)}catch(t){if("DeprecatedTaskError"!==t.name)throw t}};return d(u,r,n)},Tn=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");if(!t||"string"!=typeof t.x||"string"!=typeof t.y)throw new Error("Invalid 'center'.");const e=this.getResolution();let i=0,r=0;if(t.x.endsWith("px"))i=parseFloat(t.x);else{if(!t.x.endsWith("%"))throw new Error("Invalid scale center.");i=parseFloat(t.x)/100*e.width}if(t.y.endsWith("px"))r=parseFloat(t.y);else{if(!t.y.endsWith("%"))throw new Error("Invalid scale center.");r=parseFloat(t.y)/100*e.height}if(isNaN(i)||isNaN(r))throw new Error("Invalid scale center.");pr(this,sn,{x:i,y:r},"f")},bn=function(t){if("opened"!==this.state)throw new Error("Video is not playing.");const e=this.getResolution();return t&&t.x==e.width/2&&t.y==e.height/2},An.browserInfo=Cr,An.onWarning=null===(Br=null===window||void 0===window?void 0:window.console)||void 0===Br?void 0:Br.warn;class hs{constructor(t){Rn.add(this),On.set(this,void 0),Dn.set(this,0),Ln.set(this,void 0),Mn.set(this,0),Fn.set(this,!1),Ee(this,On,t,"f")}startCharging(){we(this,Fn,"f")||(hs._onLog&&hs._onLog("start charging."),we(this,Rn,"m",kn).call(this),Ee(this,Fn,!0,"f"))}stopCharging(){we(this,Ln,"f")&&clearTimeout(we(this,Ln,"f")),we(this,Fn,"f")&&(hs._onLog&&hs._onLog("stop charging."),Ee(this,Dn,Date.now()-we(this,Mn,"f"),"f"),Ee(this,Fn,!1,"f"))}}On=new WeakMap,Dn=new WeakMap,Ln=new WeakMap,Mn=new WeakMap,Fn=new WeakMap,Rn=new WeakSet,Pn=function(){ut.cfd(1),hs._onLog&&hs._onLog("charge 1.")},kn=function t(){0==we(this,Dn,"f")&&we(this,Rn,"m",Pn).call(this),Ee(this,Mn,Date.now(),"f"),we(this,Ln,"f")&&clearTimeout(we(this,Ln,"f")),Ee(this,Ln,setTimeout((()=>{Ee(this,Dn,0,"f"),we(this,Rn,"m",t).call(this)}),we(this,On,"f")-we(this,Dn,"f")),"f")};const ls=new Map([[n.IPF_GRAYSCALED,Ir.GREY],[n.IPF_ABGR_8888,Ir.RGBA],[n.IPF_ARGB_8888,Ir.BGRA]]),cs=new Map([[Ir.GREY,n.IPF_GRAYSCALED],[Ir.RGBA,n.IPF_ABGR_8888],[Ir.BGRA,n.IPF_ARGB_8888]]),us="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};class ds extends L{static set _onLog(t){Ee(ds,Nn,t,"f",Un),An._onLog=t,hs._onLog=t}static get _onLog(){return we(ds,Nn,"f",Un)}static async detectEnvironment(){return await(async()=>({wasm:Ce,worker:Te,getUserMedia:be,camera:await Se(),browser:ve.browser,version:ve.version,OS:ve.OS}))()}static async testCameraAccess(){const t=await An.testCameraAccess();return t.ok?{ok:!0,message:"Successfully accessed the camera."}:"InsecureContext"===t.errorName?{ok:!1,message:"Insecure context."}:"OverconstrainedError"===t.errorName||"NotFoundError"===t.errorName?{ok:!1,message:"No camera detected."}:"NotAllowedError"===t.errorName?{ok:!1,message:"No permission to access camera."}:"AbortError"===t.errorName?{ok:!1,message:"Some problem occurred which prevented the device from being used."}:"NotReadableError"===t.errorName?{ok:!1,message:"A hardware error occurred."}:"SecurityError"===t.errorName?{ok:!1,message:"User media support is disabled."}:{ok:!1,message:t.errorMessage}}static async createInstance(t){var e,i;if(t&&!(t instanceof gr))throw new TypeError("Invalid view.");if(null===(e=ot.license)||void 0===e?void 0:e.LicenseManager){if(!(null===(i=ot.license)||void 0===i?void 0:i.LicenseManager.bCallInitLicense))throw new Error("License is not set.");await ut.loadWasm(["license"]),await ot.license.dynamsoft()}const r=new ds(t);return ds.onWarning&&(location&&"file:"===location.protocol?setTimeout((()=>{ds.onWarning&&ds.onWarning({id:1,message:"The page is opened over file:// and Dynamsoft Camera Enhancer may not work properly. Please open the page via https://."})}),0):!1!==window.isSecureContext&&navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia||setTimeout((()=>{ds.onWarning&&ds.onWarning({id:2,message:"Dynamsoft Camera Enhancer may not work properly in a non-secure context. Please open the page via https://."})}),0)),r}get video(){return we(this,jn,"f").getVideoEl()}set videoSrc(t){if(!we(this,jn,"f"))throw new Error("Camera manager is null.");we(this,Gn,"f")&&(we(this,Gn,"f")._hideDefaultSelection=!0),we(this,jn,"f").videoSrc=t}get videoSrc(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.videoSrc}set ifSaveLastUsedCamera(t){if(!we(this,jn,"f"))throw new Error("Camera manager is null.");we(this,jn,"f").ifSaveLastUsedCamera=t}get ifSaveLastUsedCamera(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.ifSaveLastUsedCamera}set ifSkipCameraInspection(t){if(!we(this,jn,"f"))throw new Error("Camera manager is null.");we(this,jn,"f").ifSkipCameraInspection=t}get ifSkipCameraInspection(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.ifSkipCameraInspection}set cameraOpenTimeout(t){if(!we(this,jn,"f"))throw new Error("Camera manager is null.");we(this,jn,"f").cameraOpenTimeout=t}get cameraOpenTimeout(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.cameraOpenTimeout}set singleFrameMode(t){if(!["disabled","image","camera"].includes(t))throw new Error("Invalid value.");if(this.isOpen())throw new Error("It is not allowed to change `singleFrameMode` when the camera is open.");Ee(this,Hn,t,"f")}get singleFrameMode(){return we(this,Hn,"f")}get _isFetchingStarted(){return we(this,Jn,"f")}get disposed(){return we(this,is,"f")}constructor(t){if(super(),Bn.add(this),jn.set(this,void 0),Gn.set(this,void 0),Wn.set(this,"closed"),Vn.set(this,void 0),Yn.set(this,!1),Hn.set(this,void 0),this._onCameraSelChange=async()=>{this.isOpen()&&we(this,Gn,"f")&&!we(this,Gn,"f").disposed&&await this.selectCamera(we(this,Gn,"f")._selCam.value)},this._onResolutionSelChange=async()=>{if(!this.isOpen())return;if(!we(this,Gn,"f")||we(this,Gn,"f").disposed)return;let t,e;if(we(this,Gn,"f")._selRsl&&-1!=we(this,Gn,"f")._selRsl.selectedIndex){let i=we(this,Gn,"f")._selRsl.options[we(this,Gn,"f")._selRsl.selectedIndex];t=parseInt(i.getAttribute("data-width")),e=parseInt(i.getAttribute("data-height"))}await this.setResolution({width:t,height:e})},this._onCloseBtnClick=async()=>{this.isOpen()&&we(this,Gn,"f")&&!we(this,Gn,"f").disposed&&this.close()},Xn.set(this,((t,e,i,r)=>{const n=Date.now(),s={sx:r.x,sy:r.y,sWidth:r.width,sHeight:r.height,dWidth:r.width,dHeight:r.height},o=Math.max(s.dWidth,s.dHeight);if(this.canvasSizeLimit&&o>this.canvasSizeLimit){const t=this.canvasSizeLimit/o;s.dWidth>s.dHeight?(s.dWidth=this.canvasSizeLimit,s.dHeight=Math.round(s.dHeight*t)):(s.dWidth=Math.round(s.dWidth*t),s.dHeight=this.canvasSizeLimit)}const a=we(this,jn,"f").imageDataGetter.getImageData(t,e,i,s,{pixelFormat:ls.get(this.getPixelFormat())});let h=null;if(a){const t=Date.now();let o;o=a.pixelFormat===Ir.GREY?a.width:4*a.width;let l=!0;0===s.sx&&0===s.sy&&s.sWidth===e&&s.sHeight===i&&(l=!1),h={bytes:a.data,width:a.width,height:a.height,stride:o,format:cs.get(a.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:_t.ITT_FILE_IMAGE,isCropped:l,cropRegion:{left:r.x,top:r.y,right:r.x+r.width,bottom:r.y+r.height,isMeasuredInPercentage:!1},originalWidth:e,originalHeight:i,currentWidth:a.width,currentHeight:a.height,timeSpent:t-n,timeStamp:t},toCanvas:we(this,zn,"f"),isDCEFrame:!0}}return h})),this._onSingleFrameAcquired=t=>{let e;e=we(this,Gn,"f")?we(this,Gn,"f").getConvertedRegion():ti.convert(we(this,Kn,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height});const i=we(this,Xn,"f").call(this,t,t.width,t.height,e);we(this,Vn,"f").fire("singleFrameAcquired",[i],{async:!1,copy:!1})},zn.set(this,(function(){if(!(this.bytes instanceof Uint8Array||this.bytes instanceof Uint8ClampedArray))throw new TypeError("Invalid bytes.");if("number"!=typeof this.width||this.width<=0)throw new Error("Invalid width.");if("number"!=typeof this.height||this.height<=0)throw new Error("Invalid height.");const t=document.createElement("canvas");let e;if(t.width=this.width,t.height=this.height,this.format===n.IPF_GRAYSCALED){e=new Uint8ClampedArray(this.width*this.height*4);for(let t=0;t{if(!this.video)return;const t=we(this,jn,"f").getSoftwareScale();if(t<1)throw new RangeError("Invalid scale value.");we(this,Gn,"f")&&!we(this,Gn,"f").disposed?(this.video.style.transform=1===t?"":`scale(${t})`,we(this,Gn,"f")._updateVideoContainer()):this.video.style.transform=1===t?"":`scale(${t})`},["iPhone","iPad","Android","HarmonyOS"].includes(ve.OS)?we(this,jn,"f").setResolution(1280,720):we(this,jn,"f").setResolution(1920,1080),navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?this.singleFrameMode="disabled":this.singleFrameMode="image",t&&this.setCameraView(t),this._on("before:camera:change",(()=>{we(this,es,"f").stopCharging();const t=we(this,Gn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("camera:changed",(()=>{this.clearBuffer()})),this._on("before:resolution:change",(()=>{const t=we(this,Gn,"f");t&&!t.disposed&&(t._startLoading(),t.clearAllInnerDrawingItems())})),this._on("resolution:changed",(()=>{this.clearBuffer(),t.eventHandler.fire("content:updated",null,{async:!1})})),this._on("paused",(()=>{we(this,es,"f").stopCharging();const t=we(this,Gn,"f");t&&t.disposed})),this._on("resumed",(()=>{const t=we(this,Gn,"f");t&&t.disposed})),this._on("tapfocus",(()=>{we(this,$n,"f").tapToFocus&&we(this,es,"f").startCharging()})),this._intermediateResultReceiver={},this._intermediateResultReceiver.onTaskResultsReceived=async(t,e)=>{var i,r,n,s;if(we(this,Bn,"m",rs).call(this)||!this.isOpen()||this.isPaused())return;const o=t.intermediateResultUnits;ds._onLog&&(ds._onLog("intermediateResultUnits:"),ds._onLog(o));let a=!1,h=!1;for(let t of o){if(t.unitType===wt.IRUT_DECODED_BARCODES&&t.decodedBarcodes.length){a=!0;break}t.unitType===wt.IRUT_LOCALIZED_BARCODES&&t.localizedBarcodes.length&&(h=!0)}if(ds._onLog&&(ds._onLog("hasLocalizedBarcodes:"),ds._onLog(h)),we(this,$n,"f").autoZoom||we(this,$n,"f").enhancedFocus)if(a)we(this,ts,"f").autoZoomInFrameArray.length=0,we(this,ts,"f").autoZoomOutFrameCount=0,we(this,ts,"f").frameArrayInIdealZoom.length=0,we(this,ts,"f").autoFocusFrameArray.length=0;else{const e=async t=>{await this.setZoom(t),we(this,$n,"f").autoZoom&&we(this,es,"f").startCharging()},a=async t=>{await this.setFocus(t),we(this,$n,"f").enhancedFocus&&we(this,es,"f").startCharging()};if(h){const h=o[0].originalImageTag,l=(null===(i=h.cropRegion)||void 0===i?void 0:i.left)||0,c=(null===(r=h.cropRegion)||void 0===r?void 0:r.top)||0,u=(null===(n=h.cropRegion)||void 0===n?void 0:n.right)?h.cropRegion.right-l:h.originalWidth,d=(null===(s=h.cropRegion)||void 0===s?void 0:s.bottom)?h.cropRegion.bottom-c:h.originalHeight,f=h.currentWidth,g=h.currentHeight;let m;{let t,e,i,r,n;{const t=this.video.videoWidth*(1-we(this,ts,"f").autoZoomDetectionArea)/2,e=this.video.videoWidth*(1+we(this,ts,"f").autoZoomDetectionArea)/2,i=e,r=t,s=this.video.videoHeight*(1-we(this,ts,"f").autoZoomDetectionArea)/2,o=s,a=this.video.videoHeight*(1+we(this,ts,"f").autoZoomDetectionArea)/2;n=[{x:t,y:s},{x:e,y:o},{x:i,y:a},{x:r,y:a}]}ds._onLog&&(ds._onLog("detectionArea:"),ds._onLog(n));const s=[];{const t=(t,e)=>{const i=(t,e)=>{if(!t&&!e)throw new Error("Invalid arguments.");return function(t,e,i){let r=!1;const n=t.length;if(n<=2)return!1;for(let s=0;s0!=si(a.y-i)>0&&si(e-(i-o.y)*(o.x-a.x)/(o.y-a.y)-o.x)<0&&(r=!r)}return r}(e,t.x,t.y)},r=(t,e)=>!!(oi([t[0],t[1]],[t[2],t[3]],[e[0].x,e[0].y],[e[1].x,e[1].y])||oi([t[0],t[1]],[t[2],t[3]],[e[1].x,e[1].y],[e[2].x,e[2].y])||oi([t[0],t[1]],[t[2],t[3]],[e[2].x,e[2].y],[e[3].x,e[3].y])||oi([t[0],t[1]],[t[2],t[3]],[e[3].x,e[3].y],[e[0].x,e[0].y]));return!!(i({x:t[0].x,y:t[0].y},e)||i({x:t[1].x,y:t[1].y},e)||i({x:t[2].x,y:t[2].y},e)||i({x:t[3].x,y:t[3].y},e))||!!(i({x:e[0].x,y:e[0].y},t)||i({x:e[1].x,y:e[1].y},t)||i({x:e[2].x,y:e[2].y},t)||i({x:e[3].x,y:e[3].y},t))||!!(r([e[0].x,e[0].y,e[1].x,e[1].y],t)||r([e[1].x,e[1].y,e[2].x,e[2].y],t)||r([e[2].x,e[2].y,e[3].x,e[3].y],t)||r([e[3].x,e[3].y,e[0].x,e[0].y],t))};for(let e of o)if(e.unitType===wt.IRUT_LOCALIZED_BARCODES)for(let i of e.localizedBarcodes){if(!i)continue;const e=i.location.points;e.forEach((t=>{gr._transformCoordinates(t,l,c,u,d,f,g)})),t(n,e)&&s.push(i)}if(ds._debug&&we(this,Gn,"f")){const t=this.__layer||(this.__layer=we(this,Gn,"f")._createDrawingLayer(99));t.clearDrawingItems();const e=this.__styleId2||(this.__styleId2=ar.createDrawingStyle({strokeStyle:"red"}));for(let i of o)if(i.unitType===wt.IRUT_LOCALIZED_BARCODES)for(let r of i.localizedBarcodes){if(!r)continue;const i=r.location.points,n=new vi({points:i},e);t.addDrawingItems([n])}}}if(ds._onLog&&(ds._onLog("intersectedResults:"),ds._onLog(s)),!s.length)return;let a;if(s.length){let t=s.filter((t=>t.possibleFormats==us.BF_QR_CODE||t.possibleFormats==us.BF_DATAMATRIX));if(t.length||(t=s.filter((t=>t.possibleFormats==us.BF_ONED)),t.length||(t=s)),t.length){const e=t=>{const e=t.location.points,i=(e[0].x+e[1].x+e[2].x+e[3].x)/4,r=(e[0].y+e[1].y+e[2].y+e[3].y)/4;return(i-f/2)*(i-f/2)+(r-g/2)*(r-g/2)};a=t[0];let i=e(a);if(1!=t.length)for(let r=1;r1.1*a.confidence||t[r].confidence>.9*a.confidence&&ni&&s>i&&o>i&&h>i&&m.result.moduleSize{})),we(this,ts,"f").autoZoomInFrameArray.filter((t=>!0===t)).length>=we(this,ts,"f").autoZoomInFrameLimit[1]){we(this,ts,"f").autoZoomInFrameArray.length=0;const i=[(.5-r)/(.5-n),(.5-r)/(.5-s),(.5-r)/(.5-o),(.5-r)/(.5-h)].filter((t=>t>0)),a=Math.min(...i,we(this,ts,"f").autoZoomInIdealModuleSize/m.result.moduleSize),l=this.getZoomSettings().factor;let c=Math.max(Math.pow(l*a,1/we(this,ts,"f").autoZoomInMaxTimes),we(this,ts,"f").autoZoomInMinStep);c=Math.min(c,a);let u=l*c;u=Math.max(we(this,ts,"f").minValue,u),u=Math.min(we(this,ts,"f").maxValue,u);try{await e({factor:u})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else if(we(this,ts,"f").autoZoomInFrameArray.length=0,we(this,ts,"f").frameArrayInIdealZoom.push(!0),we(this,ts,"f").frameArrayInIdealZoom.splice(0,we(this,ts,"f").frameArrayInIdealZoom.length-we(this,ts,"f").frameLimitInIdealZoom[0]),we(this,ts,"f").frameArrayInIdealZoom.filter((t=>!0===t)).length>=we(this,ts,"f").frameLimitInIdealZoom[1]&&(we(this,ts,"f").frameArrayInIdealZoom.length=0,we(this,$n,"f").enhancedFocus)){const e=m.points;try{await a({mode:"manual",area:{centerPoint:{x:(e[0].x+e[2].x)/2+"px",y:(e[0].y+e[2].y)/2+"px"},width:e[2].x-e[0].x+"px",height:e[2].y-e[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}if(!we(this,$n,"f").autoZoom&&we(this,$n,"f").enhancedFocus&&(we(this,ts,"f").autoFocusFrameArray.push(!0),we(this,ts,"f").autoFocusFrameArray.splice(0,we(this,ts,"f").autoFocusFrameArray.length-we(this,ts,"f").autoFocusFrameLimit[0]),we(this,ts,"f").autoFocusFrameArray.filter((t=>!0===t)).length>=we(this,ts,"f").autoFocusFrameLimit[1])){we(this,ts,"f").autoFocusFrameArray.length=0;try{const t=m.points;await a({mode:"manual",area:{centerPoint:{x:(t[0].x+t[2].x)/2+"px",y:(t[0].y+t[2].y)/2+"px"},width:t[2].x-t[0].x+"px",height:t[2].y-t[0].y+"px"}})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}}else{if(we(this,$n,"f").autoZoom){if(we(this,ts,"f").autoZoomInFrameArray.push(!1),we(this,ts,"f").autoZoomInFrameArray.splice(0,we(this,ts,"f").autoZoomInFrameArray.length-we(this,ts,"f").autoZoomInFrameLimit[0]),we(this,ts,"f").autoZoomOutFrameCount++,we(this,ts,"f").frameArrayInIdealZoom.push(!1),we(this,ts,"f").frameArrayInIdealZoom.splice(0,we(this,ts,"f").frameArrayInIdealZoom.length-we(this,ts,"f").frameLimitInIdealZoom[0]),we(this,ts,"f").autoZoomOutFrameCount>=we(this,ts,"f").autoZoomOutFrameLimit){we(this,ts,"f").autoZoomOutFrameCount=0;const i=this.getZoomSettings().factor;let r=i-Math.max((i-1)*we(this,ts,"f").autoZoomOutStepRate,we(this,ts,"f").autoZoomOutMinStep);r=Math.max(we(this,ts,"f").minValue,r),r=Math.min(we(this,ts,"f").maxValue,r);try{await e({factor:r})}catch(t){const e=t.message||t;console.warn(e)}this.clearBuffer()}we(this,$n,"f").enhancedFocus&&a({mode:"continuous"}).catch((()=>{}))}!we(this,$n,"f").autoZoom&&we(this,$n,"f").enhancedFocus&&(we(this,ts,"f").autoFocusFrameArray.length=0,a({mode:"continuous"}).catch((()=>{})))}}},Ee(this,es,new hs(1e4),"f")}setCameraView(t){if(!(t instanceof gr))throw new TypeError("Invalid view.");if(t.disposed)throw new Error("The camera view has been disposed.");if(this.isOpen())throw new Error("It is not allowed to change camera view when the camera is open.");this.releaseCameraView(),t._singleFrameMode=this.singleFrameMode,t._onSingleFrameAcquired=this._onSingleFrameAcquired,this.videoSrc&&(we(this,Gn,"f")._hideDefaultSelection=!0),we(this,Bn,"m",rs).call(this)||we(this,jn,"f").setVideoEl(t.getVideoElement()),Ee(this,Gn,t,"f"),this.addListenerToView()}getCameraView(){return we(this,Gn,"f")}releaseCameraView(){we(this,Gn,"f")&&(this.removeListenerFromView(),we(this,Gn,"f").disposed||(we(this,Gn,"f")._singleFrameMode="disabled",we(this,Gn,"f")._onSingleFrameAcquired=null,we(this,Gn,"f")._hideDefaultSelection=!1),we(this,jn,"f").releaseVideoEl(),Ee(this,Gn,null,"f"))}addListenerToView(){if(!we(this,Gn,"f"))return;if(we(this,Gn,"f").disposed)throw new Error("'cameraView' has been disposed.");const t=we(this,Gn,"f");we(this,Bn,"m",rs).call(this)||this.videoSrc||(t._innerComponent&&(we(this,jn,"f").tapFocusEventBoundEl=t._innerComponent),t._selCam&&t._selCam.addEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.addEventListener("change",this._onResolutionSelChange)),t._btnClose&&t._btnClose.addEventListener("click",this._onCloseBtnClick)}removeListenerFromView(){if(!we(this,Gn,"f")||we(this,Gn,"f").disposed)return;const t=we(this,Gn,"f");we(this,jn,"f").tapFocusEventBoundEl=null,t._selCam&&t._selCam.removeEventListener("change",this._onCameraSelChange),t._selRsl&&t._selRsl.removeEventListener("change",this._onResolutionSelChange),t._btnClose&&t._btnClose.removeEventListener("click",this._onCloseBtnClick)}getCameraState(){return we(this,Bn,"m",rs).call(this)?we(this,Wn,"f"):new Map([["closed","closed"],["opening","opening"],["opened","open"]]).get(we(this,jn,"f").state)}isOpen(){return"open"===this.getCameraState()}getVideoEl(){return this.video}async open(){const t=we(this,Gn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");t&&(t._singleFrameMode=this.singleFrameMode,we(this,Bn,"m",rs).call(this)?t._clickIptSingleFrameMode():(we(this,jn,"f").setVideoEl(t.getVideoElement()),t._startLoading()));let e={width:0,height:0,deviceId:""};if(we(this,Bn,"m",rs).call(this));else{try{await we(this,jn,"f").open()}catch(e){throw t&&t._stopLoading(),e}we(this,Yn,"f")&&this.turnOnTorch().catch((()=>{}));const i=this.getResolution();e.width=i.width,e.height=i.height,e.deviceId=this.getSelectedCamera().deviceId}return Ee(this,Wn,"open","f"),t&&(t._innerComponent.style.display="",we(this,Bn,"m",rs).call(this)||(t._stopLoading(),t._renderCamerasInfo(this.getSelectedCamera(),we(this,jn,"f")._arrCameras),t._renderResolutionInfo({width:e.width,height:e.height}),t.eventHandler.fire("content:updated",null,{async:!1}),t.eventHandler.fire("videoEl:resized",null,{async:!1}))),we(this,Vn,"f").fire("opened",null,{target:this,async:!1}),e}close(){const t=we(this,Gn,"f");if(null==t?void 0:t.disposed)throw new Error("'cameraView' has been disposed.");this.stopFetching(),this.clearBuffer(),we(this,Bn,"m",rs).call(this)||we(this,jn,"f").close(),Ee(this,Wn,"closed","f"),we(this,es,"f").stopCharging(),t&&(t._innerComponent.style.display="none",we(this,Bn,"m",rs).call(this)&&t._innerComponent.removeElement("content"),t._stopLoading()),we(this,Vn,"f").fire("closed",null,{target:this,async:!1})}pause(){if(we(this,Bn,"m",rs).call(this))throw new Error("'pause()' is invalid in 'singleFrameMode'.");we(this,jn,"f").pause()}isPaused(){var t;return!we(this,Bn,"m",rs).call(this)&&!0===(null===(t=this.video)||void 0===t?void 0:t.paused)}async resume(){if(we(this,Bn,"m",rs).call(this))throw new Error("'resume()' is invalid in 'singleFrameMode'.");await we(this,jn,"f").resume()}async selectCamera(t){if(!t)throw new Error("Invalid value.");let e;e="string"==typeof t?t:t.deviceId,await we(this,jn,"f").setCamera(e),Ee(this,Yn,!1,"f");const i=this.getResolution(),r=we(this,Gn,"f");return r&&!r.disposed&&(r._stopLoading(),r._renderCamerasInfo(this.getSelectedCamera(),we(this,jn,"f")._arrCameras),r._renderResolutionInfo({width:i.width,height:i.height})),{width:i.width,height:i.height,deviceId:this.getSelectedCamera().deviceId}}getSelectedCamera(){return we(this,jn,"f").getCamera()}async getAllCameras(){return we(this,jn,"f").getCameras()}async setResolution(t){await we(this,jn,"f").setResolution(t.width,t.height),we(this,Yn,"f")&&this.turnOnTorch().catch((()=>{}));const e=this.getResolution(),i=we(this,Gn,"f");return i&&!i.disposed&&(i._stopLoading(),i._renderResolutionInfo({width:e.width,height:e.height})),{width:e.width,height:e.height,deviceId:this.getSelectedCamera().deviceId}}getResolution(){return we(this,jn,"f").getResolution()}getAvailableResolutions(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getResolutions()}_on(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?we(this,Vn,"f").on(t,e):we(this,jn,"f").on(t,e)}_off(t,e){["opened","closed","singleframeacquired","frameaddedtobuffer"].includes(t.toLowerCase())?we(this,Vn,"f").off(t,e):we(this,jn,"f").off(t,e)}on(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._on(r,e)}off(t,e){const i=t.toLowerCase(),r=new Map([["cameraopen","opened"],["cameraclose","closed"],["camerachange","camera:changed"],["resolutionchange","resolution:changed"],["played","played"],["singleframeacquired","singleFrameAcquired"],["frameaddedtobuffer","frameAddedToBuffer"]]).get(i);if(!r)throw new Error("Invalid event.");this._off(r,e)}getVideoSettings(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getMediaStreamConstraints()}async updateVideoSettings(t){var e;await(null===(e=we(this,jn,"f"))||void 0===e?void 0:e.setMediaStreamConstraints(t,!0))}getCapabilities(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getCameraCapabilities()}getCameraSettings(){return we(this,jn,"f").getCameraSettings()}async turnOnTorch(){var t;if(we(this,Bn,"m",rs).call(this))throw new Error("'turnOnTorch()' is invalid in 'singleFrameMode'.");await(null===(t=we(this,jn,"f"))||void 0===t?void 0:t.turnOnTorch()),Ee(this,Yn,!0,"f")}async turnOffTorch(){var t;if(we(this,Bn,"m",rs).call(this))throw new Error("'turnOffTorch()' is invalid in 'singleFrameMode'.");await(null===(t=we(this,jn,"f"))||void 0===t?void 0:t.turnOffTorch()),Ee(this,Yn,!1,"f")}async setColorTemperature(t){if(we(this,Bn,"m",rs).call(this))throw new Error("'setColorTemperature()' is invalid in 'singleFrameMode'.");await we(this,jn,"f").setColorTemperature(t,!0)}getColorTemperature(){return we(this,jn,"f").getColorTemperature()}async setExposureCompensation(t){var e;if(we(this,Bn,"m",rs).call(this))throw new Error("'setExposureCompensation()' is invalid in 'singleFrameMode'.");await(null===(e=we(this,jn,"f"))||void 0===e?void 0:e.setExposureCompensation(t,!0))}getExposureCompensation(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getExposureCompensation()}async _setZoom(t){var e;if(we(this,Bn,"m",rs).call(this))throw new Error("'setZoom()' is invalid in 'singleFrameMode'.");await(null===(e=we(this,jn,"f"))||void 0===e?void 0:e.setZoom(t))}async setZoom(t){await this._setZoom(t)}getZoomSettings(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getZoom()}async resetZoom(){var t;if(we(this,Bn,"m",rs).call(this))throw new Error("'resetZoom()' is invalid in 'singleFrameMode'.");await(null===(t=we(this,jn,"f"))||void 0===t?void 0:t.resetZoom())}async setFrameRate(t){var e;if(we(this,Bn,"m",rs).call(this))throw new Error("'setFrameRate()' is invalid in 'singleFrameMode'.");await(null===(e=we(this,jn,"f"))||void 0===e?void 0:e.setFrameRate(t,!0))}getFrameRate(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getFrameRate()}async setFocus(t){var e;if(we(this,Bn,"m",rs).call(this))throw new Error("'setFocus()' is invalid in 'singleFrameMode'.");await(null===(e=we(this,jn,"f"))||void 0===e?void 0:e.setFocus(t,!0))}getFocusSettings(){var t;return null===(t=we(this,jn,"f"))||void 0===t?void 0:t.getFocus()}setAutoZoomRange(t){we(this,ts,"f").minValue=t.min,we(this,ts,"f").maxValue=t.max}getAutoZoomRange(){return{min:we(this,ts,"f").minValue,max:we(this,ts,"f").maxValue}}async enableEnhancedFeatures(t){var e,i;if(!(null===(i=null===(e=ot.license)||void 0===e?void 0:e.LicenseManager)||void 0===i?void 0:i.bPassValidation))throw new Error("License is not verified, or license is invalid.");if(0!==ut.bSupportDce4Module)throw new Error("Please set a license containing the DCE module.");t&Le.EF_ENHANCED_FOCUS&&(we(this,$n,"f").enhancedFocus=!0),t&Le.EF_AUTO_ZOOM&&(we(this,$n,"f").autoZoom=!0),t&Le.EF_TAP_TO_FOCUS&&(we(this,$n,"f").tapToFocus=!0,we(this,jn,"f").enableTapToFocus())}disableEnhancedFeatures(t){t&Le.EF_ENHANCED_FOCUS&&(we(this,$n,"f").enhancedFocus=!1,this.setFocus({mode:"continuous"}).catch((()=>{}))),t&Le.EF_AUTO_ZOOM&&(we(this,$n,"f").autoZoom=!1,this.resetZoom().catch((()=>{}))),t&Le.EF_TAP_TO_FOCUS&&(we(this,$n,"f").tapToFocus=!1,we(this,jn,"f").disableTapToFocus()),we(this,Bn,"m",ss).call(this)&&we(this,Bn,"m",ns).call(this)||we(this,es,"f").stopCharging()}_setScanRegion(t){if(null!=t&&!ze(t)&&!Qe(t))throw TypeError("Invalid 'region'.");Ee(this,Kn,t?JSON.parse(JSON.stringify(t)):null,"f"),we(this,Gn,"f")&&!we(this,Gn,"f").disposed&&we(this,Gn,"f").setScanRegion(t)}setScanRegion(t){this._setScanRegion(t),we(this,Gn,"f")&&!we(this,Gn,"f").disposed&&(null===t?we(this,Gn,"f").setScanRegionMaskVisible(!1):we(this,Gn,"f").setScanRegionMaskVisible(!0))}getScanRegion(){return JSON.parse(JSON.stringify(we(this,Kn,"f")))}setErrorListener(t){if(!t)throw new TypeError("Invalid 'listener'");Ee(this,Zn,t,"f")}hasNextImageToFetch(){return!("open"!==this.getCameraState()||!we(this,jn,"f").isVideoLoaded()||we(this,Bn,"m",rs).call(this))}startFetching(){if(we(this,Bn,"m",rs).call(this))throw Error("'startFetching()' is unavailable in 'singleFrameMode'.");we(this,Jn,"f")||(Ee(this,Jn,!0,"f"),we(this,Bn,"m",os).call(this))}stopFetching(){we(this,Jn,"f")&&(ds._onLog&&ds._onLog("DCE: stop fetching loop: "+Date.now()),we(this,Qn,"f")&&clearTimeout(we(this,Qn,"f")),Ee(this,Jn,!1,"f"))}fetchImage(){if(we(this,Bn,"m",rs).call(this))throw new Error("'fetchImage()' is unavailable in 'singleFrameMode'.");if(!this.video)throw new Error("The video element does not exist.");if(4!==this.video.readyState)throw new Error("The video is not loaded.");const t=this.getResolution();if(!(null==t?void 0:t.width)||!(null==t?void 0:t.height))throw new Error("The video is not loaded.");let e;if(e=ti.convert(we(this,Kn,"f"),t.width,t.height),e||(e={x:0,y:0,width:t.width,height:t.height}),e.x>t.width||e.y>t.height)throw new Error("Invalid scan region.");e.x+e.width>t.width&&(e.width=t.width-e.x),e.y+e.height>t.height&&(e.height=t.height-e.y);const i={sx:e.x,sy:e.y,sWidth:e.width,sHeight:e.height,dWidth:e.width,dHeight:e.height},r=Math.max(i.dWidth,i.dHeight);if(this.canvasSizeLimit&&r>this.canvasSizeLimit){const t=this.canvasSizeLimit/r;i.dWidth>i.dHeight?(i.dWidth=this.canvasSizeLimit,i.dHeight=Math.round(i.dHeight*t)):(i.dWidth=Math.round(i.dWidth*t),i.dHeight=this.canvasSizeLimit)}const n=we(this,jn,"f").getFrameData({position:i,pixelFormat:ls.get(this.getPixelFormat())});if(!n)return null;let s;s=n.pixelFormat===Ir.GREY?n.width:4*n.width;let o=!0;return 0===i.sx&&0===i.sy&&i.sWidth===t.width&&i.sHeight===t.height&&(o=!1),{bytes:n.data,width:n.width,height:n.height,stride:s,format:cs.get(n.pixelFormat),tag:{imageId:this._imageId==Number.MAX_VALUE?this._imageId=0:++this._imageId,type:_t.ITT_VIDEO_FRAME,isCropped:o,cropRegion:{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height,isMeasuredInPercentage:!1},originalWidth:t.width,originalHeight:t.height,currentWidth:n.width,currentHeight:n.height,timeSpent:n.timeSpent,timeStamp:n.timeStamp},toCanvas:we(this,zn,"f"),isDCEFrame:!0}}setImageFetchInterval(t){this.fetchInterval=t,we(this,Jn,"f")&&(we(this,Qn,"f")&&clearTimeout(we(this,Qn,"f")),Ee(this,Qn,setTimeout((()=>{this.disposed||we(this,Bn,"m",os).call(this)}),t),"f"))}getImageFetchInterval(){return this.fetchInterval}setPixelFormat(t){Ee(this,qn,t,"f")}getPixelFormat(){return we(this,qn,"f")}takePhoto(t){if(!this.isOpen())throw new Error("Not open.");if(we(this,Bn,"m",rs).call(this))throw new Error("'takePhoto()' is unavailable in 'singleFrameMode'.");const e=document.createElement("input");e.setAttribute("type","file"),e.setAttribute("accept",".jpg,.jpeg,.icon,.gif,.svg,.webp,.png,.bmp"),e.setAttribute("capture",""),e.style.position="absolute",e.style.top="-9999px",e.style.backgroundColor="transparent",e.style.color="transparent",e.addEventListener("click",(()=>{const t=this.isOpen();this.close(),window.addEventListener("focus",(()=>{t&&this.open(),e.remove()}),{once:!0})})),e.addEventListener("change",(async()=>{const i=e.files[0],r=await(async t=>{let e=null,i=null;if("undefined"!=typeof createImageBitmap)try{if(e=await createImageBitmap(t),e)return e}catch(t){}var r;return e||(i=await(r=t,new Promise(((t,e)=>{let i=URL.createObjectURL(r),n=new Image;n.src=i,n.onload=()=>{URL.revokeObjectURL(n.src),t(n)},n.onerror=t=>{e(new Error("Can't convert blob to image : "+(t instanceof Event?t.type:t)))}})))),i})(i),n=r instanceof HTMLImageElement?r.naturalWidth:r.width,s=r instanceof HTMLImageElement?r.naturalHeight:r.height;let o=ti.convert(we(this,Kn,"f"),n,s);o||(o={x:0,y:0,width:n,height:s});const a=we(this,Xn,"f").call(this,r,n,s,o);t&&t(a)})),document.body.appendChild(e),e.click()}convertToPageCoordinates(t){const e=we(this,Bn,"m",as).call(this,t);return{x:e.pageX,y:e.pageY}}convertToClientCoordinates(t){const e=we(this,Bn,"m",as).call(this,t);return{x:e.clientX,y:e.clientY}}dispose(){this.close(),we(this,jn,"f").dispose(),this.releaseCameraView(),this.__proto__=null;for(let t in this)delete this[t];Object.defineProperty(this,"isCameraEnhancer",{value:!0}),Object.defineProperty(this,"disposed",{value:!0})}}function fs(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}function gs(t,e,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(t,i):n?n.value=i:e.set(t,i),i}Nn=ds,jn=new WeakMap,Gn=new WeakMap,Wn=new WeakMap,Vn=new WeakMap,Yn=new WeakMap,Hn=new WeakMap,Xn=new WeakMap,zn=new WeakMap,Zn=new WeakMap,Kn=new WeakMap,qn=new WeakMap,Jn=new WeakMap,Qn=new WeakMap,$n=new WeakMap,ts=new WeakMap,es=new WeakMap,is=new WeakMap,Bn=new WeakSet,rs=function(){return"disabled"!==this.singleFrameMode},ns=function(){return!this.videoSrc&&"opened"===we(this,jn,"f").state},ss=function(){for(let t in we(this,$n,"f"))if(1==we(this,$n,"f")[t])return!0;return!1},os=function t(){if(this.disposed)return;if("open"!==this.getCameraState()||!we(this,Jn,"f"))return we(this,Qn,"f")&&clearTimeout(we(this,Qn,"f")),void Ee(this,Qn,setTimeout((()=>{this.disposed||we(this,Bn,"m",t).call(this)}),this.fetchInterval),"f");const e=()=>{var t;let e;ds._onLog&&ds._onLog("DCE: start fetching a frame into buffer: "+Date.now());try{e=this.fetchImage()}catch(e){const i=e.message||e;if("The video is not loaded."===i)return;if(null===(t=we(this,Zn,"f"))||void 0===t?void 0:t.onErrorReceived)return void setTimeout((()=>{var t;null===(t=we(this,Zn,"f"))||void 0===t||t.onErrorReceived(gt.EC_IMAGE_READ_FAILED,i)}),0);console.warn(e)}e?(this.addImageToBuffer(e),ds._onLog&&ds._onLog("DCE: finish fetching a frame into buffer: "+Date.now()),we(this,Vn,"f").fire("frameAddedToBuffer",null,{async:!1})):ds._onLog&&ds._onLog("DCE: get a invalid frame, abandon it: "+Date.now())};if(this.getImageCount()>=this.getMaxImageCount())switch(this.getBufferOverflowProtectionMode()){case i.BOPM_BLOCK:break;case i.BOPM_UPDATE:e()}else e();we(this,Qn,"f")&&clearTimeout(we(this,Qn,"f")),Ee(this,Qn,setTimeout((()=>{this.disposed||we(this,Bn,"m",t).call(this)}),this.fetchInterval),"f")},as=function(t){if(!we(this,Gn,"f"))throw new Error("Camera view is not set.");if(we(this,Gn,"f").disposed)throw new Error("'cameraView' has been disposed.");if(!this.isOpen())throw new Error("Not open.");if(!we(this,Bn,"m",rs).call(this)&&!we(this,jn,"f").isVideoLoaded())throw new Error("Video is not loaded.");if(we(this,Bn,"m",rs).call(this)&&!we(this,Gn,"f")._cvsSingleFrameMode)throw new Error("No image is selected.");const e=we(this,Gn,"f")._innerComponent.getBoundingClientRect(),i=e.left,r=e.top,n=i+window.scrollX,s=r+window.scrollY,{width:o,height:a}=we(this,Gn,"f")._innerComponent.getBoundingClientRect();if(o<=0||a<=0)throw new Error("Unable to get content dimensions. Camera view may not be rendered on the page.");let h,l,c;if(we(this,Bn,"m",rs).call(this)){const t=we(this,Gn,"f")._innerComponent.getElement("content");h=t.width,l=t.height,c="contain"}else{const t=this.getVideoEl();h=t.videoWidth,l=t.videoHeight,c=we(this,Gn,"f").getVideoFit()}const u=o/a,d=h/l;let f,g,m,p,_=1;if("contain"===c)ut+e*n[i]),0);i.push(r)}}return i}static identity(){return[1,0,0,0,1,0,0,0,1]}static translate(t,e,i){return ms.multiply(t,[1,0,0,0,1,0,e,i,1])}static rotate(t,e){var i=Math.cos(e),r=Math.sin(e);return ms.multiply(t,[i,-r,0,r,i,0,0,0,1])}static scale(t,e,i){return ms.multiply(t,[e,0,0,0,i,0,0,0,1])}}var ps,_s,vs,ys,ws,Es,Cs,Ts,bs,Ss,Is,xs,As,Rs,Os,Ds,Ls,Ms,Fs,Ps,ks,Bs,Ns;!function(t){t.GREY="grey",t.GREY32="grey32",t.RGBA="rgba",t.RBGA="rbga",t.GRBA="grba",t.GBRA="gbra",t.BRGA="brga",t.BGRA="bgra"}(ps||(ps={}));class Us{static get version(){return"1.1.0"}static checkWebGLSupport(){return null===document.createElement("canvas").getContext("webgl")?(gs(Us,_s,!1,"f",vs),!1):(gs(Us,_s,!0,"f",vs),!0)}get disposed(){return fs(this,bs,"f")}constructor(){ys.set(this,ps.RGBA),ws.set(this,null),Es.set(this,null),Cs.set(this,null),this.useWebGLByDefault=!0,this._reusedCvs=null,this._reusedWebGLCvs=null,Ts.set(this,null),bs.set(this,!1)}drawImage(t,e,i,r,n,s){if(this.disposed)throw Error("The 'ImageDataGetter' instance has been disposed.");if(!i||!r)throw new Error("Invalid 'sourceWidth' or 'sourceHeight'.");if(null==fs(Us,_s,"f",vs)&&Us.checkWebGLSupport(),(null==s?void 0:s.bUseWebGL)&&!fs(Us,_s,"f",vs))throw new Error("Your browser or machine may not support WebGL.");if(e instanceof HTMLVideoElement&&4!==e.readyState||e instanceof HTMLImageElement&&!e.complete)throw new Error("The source is not loaded.");let o;Us._onLog&&(o=Date.now(),Us._onLog("drawImage(), START: "+o));let a=0,h=0,l=i,c=r,u=0,d=0,f=i,g=r;n&&(n.sx&&(a=Math.round(n.sx)),n.sy&&(h=Math.round(n.sy)),n.sWidth&&(l=Math.round(n.sWidth)),n.sHeight&&(c=Math.round(n.sHeight)),n.dx&&(u=Math.round(n.dx)),n.dy&&(d=Math.round(n.dy)),n.dWidth&&(f=Math.round(n.dWidth)),n.dHeight&&(g=Math.round(n.dHeight)));let m,p=ps.RGBA;if((null==s?void 0:s.pixelFormat)&&(p=s.pixelFormat),(null==s?void 0:s.bufferContainer)&&(m=s.bufferContainer,m.length<4*f*g))throw new Error("Unexpected size of the 'bufferContainer'.");const _=t;if(!fs(Us,_s,"f",vs)||!(this.useWebGLByDefault&&null==(null==s?void 0:s.bUseWebGL)||(null==s?void 0:s.bUseWebGL))){Us._onLog&&Us._onLog("drawImage() in context2d."),_.ctx2d||(_.ctx2d=_.getContext("2d",{willReadFrequently:!0}));const t=_.ctx2d;if(!t)throw new Error("Unable to get 'CanvasRenderingContext2D' from canvas.");return(_.width{const e=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW);const i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,0,1,1,0,1,0,0,1,1,1]),t.STATIC_DRAW),{positions:e,texCoords:i}},i=t=>{const e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e},r=(t,e)=>{const i=t.createProgram();if(e.forEach((e=>t.attachShader(i,e))),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS)){const e=new Error(`An error occured linking the program: ${t.getProgramInfoLog(i)}.`);throw e.name="WebGLError",e}return t.useProgram(i),i},n=(t,e,i)=>{const r=t.createShader(e);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)){const e=new Error(`An error occured compiling the shader: ${t.getShaderInfoLog(r)}.`);throw e.name="WebGLError",e}return r},s="\n attribute vec2 a_position;\n attribute vec2 a_texCoord;\n \n uniform mat3 u_matrix;\n uniform mat3 u_textureMatrix;\n \n varying vec2 v_texCoord;\n void main(void) {\n gl_Position = vec4((u_matrix * vec3(a_position, 1)).xy, 0, 1.0);\n v_texCoord = vec4((u_textureMatrix * vec3(a_texCoord, 1)).xy, 0, 1.0).xy;\n }\n ";let o="rgb";["rgba","rbga","grba","gbra","brga","bgra"].includes(p)&&(o=p.slice(0,3));const a=`\n precision mediump float;\n varying vec2 v_texCoord;\n uniform sampler2D u_image;\n uniform float uColorFactor;\n \n void main() {\n vec4 sample = texture2D(u_image, v_texCoord);\n float grey = 0.21 * sample.r + 0.71 * sample.g + 0.07 * sample.b;\n gl_FragColor = vec4(sample.${o} * (1.0 - uColorFactor) + (grey * uColorFactor), sample.a);\n }\n `,h=r(t,[n(t,t.VERTEX_SHADER,s),n(t,t.FRAGMENT_SHADER,a)]);gs(this,Es,{program:h,attribLocations:{vertexPosition:t.getAttribLocation(h,"a_position"),texPosition:t.getAttribLocation(h,"a_texCoord")},uniformLocations:{uSampler:t.getUniformLocation(h,"u_image"),uColorFactor:t.getUniformLocation(h,"uColorFactor"),uMatrix:t.getUniformLocation(h,"u_matrix"),uTextureMatrix:t.getUniformLocation(h,"u_textureMatrix")}},"f"),gs(this,Cs,e(t),"f"),gs(this,ws,i(t),"f"),gs(this,ys,p,"f")}const n=(t,e,i)=>{t.bindBuffer(t.ARRAY_BUFFER,e),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0)},s=(t,e,i)=>{const r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE;t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,r,n,s,i)},v=(t,e,s,o)=>{t.clearColor(0,0,0,1),t.clearDepth(1),t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),n(t,s.positions,e.attribLocations.vertexPosition),n(t,s.texCoords,e.attribLocations.texPosition),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(e.uniformLocations.uSampler,0),t.uniform1f(e.uniformLocations.uColorFactor,[ps.GREY,ps.GREY32].includes(p)?1:0);let m,_,v=ms.translate(ms.identity(),-1,-1);v=ms.scale(v,2,2),v=ms.scale(v,1/t.canvas.width,1/t.canvas.height),m=ms.translate(v,u,d),m=ms.scale(m,f,g),t.uniformMatrix3fv(e.uniformLocations.uMatrix,!1,m),_=ms.translate(ms.identity(),a/i,h/r),_=ms.scale(_,l/i,c/r),t.uniformMatrix3fv(e.uniformLocations.uTextureMatrix,!1,_),t.drawArrays(t.TRIANGLES,0,6)};s(t,fs(this,ws,"f"),e),v(t,fs(this,Es,"f"),fs(this,Cs,"f"),fs(this,ws,"f"));const y=m||new Uint8Array(4*f*g);if(t.readPixels(u,d,f,g,t.RGBA,t.UNSIGNED_BYTE,y),255!==y[3]){Us._onLog&&Us._onLog("Incorrect WebGL drawing .");const t=new Error("WebGL error: incorrect drawing.");throw t.name="WebGLError",t}return Us._onLog&&Us._onLog("drawImage() in WebGL end. Costs: "+(Date.now()-o)),{context:t,pixelFormat:p===ps.GREY?ps.GREY32:p,bUseWebGL:!0}}catch(o){if(this.forceLoseContext(),null==(null==s?void 0:s.bUseWebGL))return Us._onLog&&Us._onLog("'drawImage()' in WebGL failed, try again in context2d."),this.useWebGLByDefault=!1,this.drawImage(t,e,i,r,n,Object.assign({},s,{bUseWebGL:!1}));throw o.name="WebGLError",o}}readCvsData(t,e,i){if(!(t instanceof CanvasRenderingContext2D||t instanceof WebGLRenderingContext))throw new Error("Invalid 'context'.");let r,n=0,s=0,o=t.canvas.width,a=t.canvas.height;if(e&&(e.x&&(n=e.x),e.y&&(s=e.y),e.width&&(o=e.width),e.height&&(a=e.height)),(null==i?void 0:i.length)<4*o*a)throw new Error("Unexpected size of the 'bufferContainer'.");if(t instanceof WebGLRenderingContext){const e=t;i?(e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,i),r=new Uint8Array(i.buffer,0,4*o*a)):(r=new Uint8Array(4*o*a),e.readPixels(n,s,o,a,e.RGBA,e.UNSIGNED_BYTE,r))}else if(t instanceof CanvasRenderingContext2D){let e;e=t.getImageData(n,s,o,a),r=new Uint8Array(e.data.buffer),null==i||i.set(r)}return r}transformPixelFormat(t,e,i,r){let n,s;if(Us._onLog&&(n=Date.now(),Us._onLog("transformPixelFormat(), START: "+n)),e===i)return Us._onLog&&Us._onLog("transformPixelFormat() end. Costs: "+(Date.now()-n)),r?new Uint8Array(t):t;const o=[ps.RGBA,ps.RBGA,ps.GRBA,ps.GBRA,ps.BRGA,ps.BGRA];if(o.includes(e))if(i===ps.GREY){s=new Uint8Array(t.length/4);for(let e=0;ee||r.sy>i||r.sx+r.sWidth>e||r.sy+r.sHeight>i)throw new Error("Invalid position.");if(t instanceof HTMLVideoElement&&4!==t.readyState||t instanceof HTMLImageElement&&!t.complete)throw new Error("The source is not loaded.");let s;Us._onLog&&(s=Date.now(),Us._onLog("getImageData(), START: "+s));const o=Math.round(r.sx),a=Math.round(r.sy),h=Math.round(r.sWidth),l=Math.round(r.sHeight),c=Math.round(r.dWidth),u=Math.round(r.dHeight);let d=ps.RGBA;(null==n?void 0:n.pixelFormat)&&(d=n.pixelFormat);let f,g,m,p=null;if((null==n?void 0:n.bufferContainer)&&(p=n.bufferContainer),fs(Us,_s,"f",vs)&&(this.useWebGLByDefault&&null==(null==n?void 0:n.bUseWebGL)||(null==n?void 0:n.bUseWebGL))){Us._onLog&&Us._onLog("getImageData() in WebGL."),this._reusedWebGLCvs||(this._reusedWebGLCvs=document.createElement("canvas")),f=this._reusedWebGLCvs;try{if(p)if(d===ps.GREY){if(m=new Uint8Array(4*c*u),g=this.drawImage(f,t,e,i,{sx:o,sy:a,sWidth:h,sHeight:l,dWidth:c,dHeight:u},{pixelFormat:d,bUseWebGL:!0,bufferContainer:m}),m=this.transformPixelFormat(m,g.pixelFormat,d),p){if(p.length{var e;if(!this.isUseMagnifier)return;if(we(this,Rs,"f")||Ee(this,Rs,new js,"f"),!we(this,Rs,"f").magnifierCanvas)return;document.body.contains(we(this,Rs,"f").magnifierCanvas)||(we(this,Rs,"f").magnifierCanvas.style.position="fixed",we(this,Rs,"f").magnifierCanvas.style.boxSizing="content-box",we(this,Rs,"f").magnifierCanvas.style.border="2px solid #FFFFFF",document.body.append(we(this,Rs,"f").magnifierCanvas));const i=this._innerComponent.getElement("content");if(!i)return;if(t.pointer.x<0||t.pointer.x>i.width||t.pointer.y<0||t.pointer.y>i.height)return void we(this,Ds,"f").call(this);const r=null===(e=this._drawingLayerManager._getFabricCanvas())||void 0===e?void 0:e.lowerCanvasEl;if(!r)return;const n=Math.max(i.clientWidth/5/1.5,i.clientHeight/4/1.5),s=1.5*n,o=[{image:i,width:i.width,height:i.height},{image:r,width:r.width,height:r.height}];we(this,Rs,"f").update(s,t.pointer,n,o);{let e=0,i=0;t.e instanceof MouseEvent?(e=t.e.clientX,i=t.e.clientY):t.e instanceof TouchEvent&&t.e.changedTouches.length&&(e=t.e.changedTouches[0].clientX,i=t.e.changedTouches[0].clientY),e<1.5*s&&i<1.5*s?(we(this,Rs,"f").magnifierCanvas.style.left="auto",we(this,Rs,"f").magnifierCanvas.style.top="0",we(this,Rs,"f").magnifierCanvas.style.right="0"):(we(this,Rs,"f").magnifierCanvas.style.left="0",we(this,Rs,"f").magnifierCanvas.style.top="0",we(this,Rs,"f").magnifierCanvas.style.right="auto")}we(this,Rs,"f").show()})),Ds.set(this,(()=>{we(this,Rs,"f")&&we(this,Rs,"f").hide()})),Ls.set(this,!1)}_setUIElement(t){this.UIElement=t,this._unbindUI(),this._bindUI()}async setUIElement(t){let e;if(e="string"==typeof t?await ai(t):t,e instanceof HTMLDivElement&&0==e.childElementCount){const t=we(this,xs,"m",Ms).call(this);this._setUIElement(t),e.append(this.getUIElement()),this.UIElement=e}else this._setUIElement(e)}getUIElement(){return this.UIElement}_bindUI(){if(!this.UIElement)throw new Error("Need to set 'UIElement'.");if(this._innerComponent)return;const t=this.UIElement;let e=t.classList.contains(this.containerClassName)?t:t.querySelector(`.${this.containerClassName}`);e||(e=document.createElement("div"),e.style.width="100%",e.style.height="100%",e.className=this.containerClassName,t.append(e)),this._innerComponent=new dr,e.appendChild(this._innerComponent)}_unbindUI(){var t,e,i;null===(t=this._drawingLayerManager)||void 0===t||t.clearDrawingLayers(),null===(e=this._innerComponent)||void 0===e||e.removeElement("drawing-layer"),this._layerBaseCvs=null,null===(i=this._innerComponent)||void 0===i||i.remove(),this._innerComponent=null}setImage(t,e,i){if(!this._innerComponent)throw new Error("Need to set 'UIElement'.");let r=this._innerComponent.getElement("content");r||(r=document.createElement("canvas"),r.style.objectFit="contain",this._innerComponent.setElement("content",r)),r.width===e&&r.height===i||(r.width=e,r.height=i);const n=r.getContext("2d");n.clearRect(0,0,r.width,r.height),t instanceof Uint8Array||t instanceof Uint8ClampedArray?(t instanceof Uint8Array&&(t=new Uint8ClampedArray(t.buffer)),n.putImageData(new ImageData(t,e,i),0,0)):(t instanceof HTMLCanvasElement||t instanceof HTMLImageElement)&&n.drawImage(t,0,0)}getImage(){return this._innerComponent.getElement("content")}clearImage(){if(!this._innerComponent)return;let t=this._innerComponent.getElement("content");t&&t.getContext("2d").clearRect(0,0,t.width,t.height)}removeImage(){this._innerComponent&&this._innerComponent.removeElement("content")}setOriginalImage(t){if(Xe(t)){Ee(this,As,t,"f");const{width:e,height:i,bytes:r,format:s}=Object.assign({},t);let o;if(s===n.IPF_GRAYSCALED){o=new Uint8ClampedArray(e*i*4);for(let t=0;t{t.removeEventListener("loadedmetadata",i),t.play(),e=setTimeout((()=>{we(this,Fs,"f",Ns).delete(t)}),2e3*t.duration)};t.addEventListener("loadedmetadata",i),t.addEventListener("ended",(()=>{null!=e&&(clearTimeout(e),e=null),t.pause(),t.currentTime=0,we(this,Fs,"f",Ns).delete(t),we(this,Fs,"f",Bs).add(t)}))}else we(this,Fs,"f",ks)||(Ee(this,Fs,!0,"f",ks),console.warn("The requested audio tracks exceed 64 and will not be played."));t&&we(this,Fs,"f",Ns).add(t)}static vibrate(){if(!navigator||!navigator.vibrate)throw new Error("Not supported.");navigator.vibrate(Ws.vibrateDuration)}}Fs=Ws,Ps={value:"data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAABQAAAkAAgICAgICAgICAgICAgICAgICAgKCgoKCgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4ODg4P//////////////////////////AAAAAExhdmM1OC41NAAAAAAAAAAAAAAAACQEUQAAAAAAAAJAk0uXRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAANQAbGeUEQAAHZYZ3fASqD4P5TKBgocg+Bw/8+CAYBA4XB9/4EBAEP4nB9+UOf/6gfUCAIKyjgQ/Kf//wfswAAAwQA/+MYxAYOqrbdkZGQAMA7DJLCsQxNOij///////////+tv///3RWiZGBEhsf/FO/+LoCSFs1dFVS/g8f/4Mhv0nhqAieHleLy/+MYxAYOOrbMAY2gABf/////////////////usPJ66R0wI4boY9/8jQYg//g2SPx1M0N3Z0kVJLIs///Uw4aMyvHJJYmPBYG/+MYxAgPMALBucAQAoGgaBoFQVBUFQWDv6gZBUFQVBUGgaBr5YSgqCoKhIGg7+IQVBUFQVBoGga//SsFSoKnf/iVTEFNRTMu/+MYxAYAAANIAAAAADEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"},ks={value:!1},Bs={value:new Set},Ns={value:new Set},Ws.beepSoundSource=we(Ws,Fs,"f",Ps),Ws.vibrateDuration=300;const Vs="undefined"==typeof self,Ys=(()=>{if(!Vs&&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"./"})(),Hs=t=>{if(null==t&&(t="./"),Vs);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};null==at.dbr&&(at.dbr=Ys),lt.dbr={js:!1,wasm:!0,deps:["license","dip"]},ot.dbr={};const Xs="1.2.0";"string"!=typeof at.std&&C(at.std.version,Xs)<0&&(at.std={version:Xs,path:Hs(Ys+`../../dynamsoft-capture-vision-std@${Xs}/dist/`)});const zs="2.2.10";(!at.dip||"string"!=typeof at.dip&&C(at.dip.version,zs)<0)&&(at.dip={version:zs,path:Hs(Ys+`../../dynamsoft-image-processing@${zs}/dist/`)});let Zs=class{static getVersion(){const t=st.dbr&&st.dbr.wasm;return`10.2.10(Worker: ${st.dbr&&st.dbr.worker||"Not Loaded"}, Wasm: ${t||"Not Loaded"})`}};const Ks="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var qs,Js,Qs,$s;!function(t){t[t.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",t[t.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",t[t.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT"}(qs||(qs={})),function(t){t[t.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",t[t.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",t[t.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",t[t.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q"}(Js||(Js={})),function(t){t[t.LM_AUTO=1]="LM_AUTO",t[t.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",t[t.LM_STATISTICS=4]="LM_STATISTICS",t[t.LM_LINES=8]="LM_LINES",t[t.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",t[t.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",t[t.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",t[t.LM_CENTRE=128]="LM_CENTRE",t[t.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",t[t.LM_REV=-2147483648]="LM_REV",t[t.LM_SKIP=0]="LM_SKIP"}(Qs||(Qs={})),function(t){t[t.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",t[t.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",t[t.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",t[t.DM_SMOOTHING=8]="DM_SMOOTHING",t[t.DM_MORPHING=16]="DM_MORPHING",t[t.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",t[t.DM_SHARPENING=64]="DM_SHARPENING",t[t.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",t[t.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",t[t.DM_REV=-2147483648]="DM_REV",t[t.DM_SKIP=0]="DM_SKIP"}($s||($s={}));const to=async(t,e,i)=>await new Promise((async(r,n)=>{try{const n=e.split(".");let s=n[n.length-1];const o=await ro(`image/${s}`,t);n.length<=1&&(s="png");const a=new File([o],e,{type:`image/${s}`});if(i){const t=URL.createObjectURL(a),i=document.createElement("a");i.href=t,i.download=e,i.click()}return r(a)}catch(t){return n()}})),eo=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},io=(t,e)=>{const i=eo(e);let r=new Image,n=i.toDataURL(t);return r.src=n,r},ro=async(t,e)=>{const i=eo(e);return new Promise(((e,r)=>{i.toBlob((t=>e(t)),t)}))},no=t=>{let e,i=t.bytes;if(!(i&&i instanceof Uint8Array))throw Error("Parameter type error");if(Number(t.format)===n.IPF_BGR_888){const t=i.length/3;e=new Uint8ClampedArray(4*t);for(let r=0;r=n)break;e[o]=e[o+1]=e[o+2]=(128&r)/128*255,e[o+3]=255,r<<=1}}}else if(Number(t.format)===n.IPF_ABGR_8888){const t=i.length/4;e=new Uint8ClampedArray(i.length);for(let r=0;r{let e;await new Promise(((i,r)=>{e=new Image,e.onload=()=>i(e),e.onerror=r,e.src=URL.createObjectURL(t)}));const i=document.createElement("canvas"),r=i.getContext("2d");return i.width=e.width,i.height=e.height,r.drawImage(e,0,0),{bytes:Uint8Array.from(r.getImageData(0,0,i.width,i.height).data),width:i.width,height:i.height,stride:4*i.width,format:10}};class oo{async saveToFile(t,e,i){if(!t||!e)return null;if("string"!=typeof e)throw new TypeError("FileName must be of type string.");const r=no(t);return to(r,e,i)}async drawOnImage(t,e,i,r=4294901760,n=1,s){let o;if(t instanceof Blob)o=await so(t);else if("string"==typeof t){let e=await w(t,"blob");o=await so(e)}return await new Promise(((t,a)=>{let h=$();tt[h]=async e=>{if(e.success)return s&&this.saveToFile(e.image,"test.png",s),t(e.image);{let t=new Error(e.message);return t.stack=e.stack+"\n"+t.stack,a(t)}},J.postMessage({type:"utility_drawOnImage",id:h,body:{dsImage:o,drawingItem:e instanceof Array?e:[e],color:r,thickness:n,type:i}})}))}}const ao="undefined"==typeof self,ho=(()=>{if(!ao&&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"./"})(),lo=t=>{if(null==t&&(t="./"),ao);else{let e=document.createElement("a");e.href=t,t=e.href}return t.endsWith("/")||(t+="/"),t};null==at.utility&&(at.utility=ho),lt.utility={js:!0,wasm:!0};const co="1.2.10";"string"!=typeof at.std&&C(at.std.version,co)<0&&(at.std={version:co,path:lo(ho+`../../dynamsoft-capture-vision-std@${co}/dist/`)});const uo="2.2.30";(!at.dip||"string"!=typeof at.dip&&C(at.dip.version,uo)<0)&&(at.dip={version:uo,path:lo(ho+`../../dynamsoft-image-processing@${uo}/dist/`)});class fo{static getVersion(){return`1.2.20(Worker: ${st.utility&&st.utility.worker||"Not Loaded"}, Wasm: ${st.utility&&st.utility.wasm||"Not Loaded"})`}}const go={barcode:2,text_line:4,detected_quad:8,normalized_image:16},mo=t=>Object.values(go).includes(t)||go.hasOwnProperty(t),po=(t,e)=>"string"==typeof t?e[go[t]]:e[t],_o=(t,e,i)=>{"string"==typeof t?e[go[t]]=i:e[t]=i};class vo{constructor(){this.verificationEnabled={[dt.CRIT_BARCODE]:!1,[dt.CRIT_TEXT_LINE]:!0,[dt.CRIT_DETECTED_QUAD]:!0,[dt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateFilterEnabled={[dt.CRIT_BARCODE]:!1,[dt.CRIT_TEXT_LINE]:!1,[dt.CRIT_DETECTED_QUAD]:!1,[dt.CRIT_NORMALIZED_IMAGE]:!1},this.duplicateForgetTime={[dt.CRIT_BARCODE]:3e3,[dt.CRIT_TEXT_LINE]:3e3,[dt.CRIT_DETECTED_QUAD]:3e3,[dt.CRIT_NORMALIZED_IMAGE]:3e3}}enableResultCrossVerification(t,e){mo(t)&&_o(t,this.verificationEnabled,e)}isResultCrossVerificationEnabled(t){return!!mo(t)&&po(t,this.verificationEnabled)}enableResultDeduplication(t,e){mo(t)&&_o(t,this.duplicateFilterEnabled,e)}isResultDeduplicationEnabled(t){return!!mo(t)&&po(t,this.duplicateFilterEnabled)}setDuplicateForgetTime(t,e){mo(t)&&(e>18e4&&(e=18e4),e<0&&(e=0),_o(t,this.duplicateForgetTime,e))}getDuplicateForgetTime(t){return mo(t)?po(t,this.duplicateForgetTime):-1}getFilteredResultItemTypes(){let t=0;const e=[dt.CRIT_BARCODE,dt.CRIT_TEXT_LINE,dt.CRIT_DETECTED_QUAD];for(let i=0;i{if(!T&&document.currentScript){let _=document.currentScript.src,B=_.indexOf("?");if(-1!=B)_=_.substring(0,B);else{let B=_.indexOf("#");-1!=B&&(_=_.substring(0,B))}return _.substring(0,_.lastIndexOf("/")+1)}return"./"})(),R=_=>{if(null==_&&(_="./"),T);else{let B=document.createElement("a");B.href=_,_=B.href}return _.endsWith("/")||(_+="/"),_};null==_.dbr&&(_.dbr=D),B.dbr={js:!1,wasm:!0,deps:["license","dip"]},A.dbr={};const F="1.2.0";"string"!=typeof _.std&&I(_.std.version,F)<0&&(_.std={version:F,path:R(D+`../../dynamsoft-capture-vision-std@${F}/dist/`)});const O="2.2.10";(!_.dip||"string"!=typeof _.dip&&I(_.dip.version,O)<0)&&(_.dip={version:O,path:R(D+`../../dynamsoft-image-processing@${O}/dist/`)});class C{static getVersion(){const _=E.dbr&&E.dbr.wasm,B=E.dbr&&E.dbr.worker;return`10.2.10(Worker: ${B||"Not Loaded"}, Wasm: ${_||"Not Loaded"})`}}const S="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var t,N,n,i;!function(_){_[_.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",_[_.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",_[_.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT"}(t||(t={})),function(_){_[_.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",_[_.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",_[_.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",_[_.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q"}(N||(N={})),function(_){_[_.LM_AUTO=1]="LM_AUTO",_[_.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",_[_.LM_STATISTICS=4]="LM_STATISTICS",_[_.LM_LINES=8]="LM_LINES",_[_.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",_[_.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",_[_.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",_[_.LM_CENTRE=128]="LM_CENTRE",_[_.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",_[_.LM_REV=-2147483648]="LM_REV",_[_.LM_SKIP=0]="LM_SKIP"}(n||(n={})),function(_){_[_.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",_[_.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",_[_.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",_[_.DM_SMOOTHING=8]="DM_SMOOTHING",_[_.DM_MORPHING=16]="DM_MORPHING",_[_.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",_[_.DM_SHARPENING=64]="DM_SHARPENING",_[_.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",_[_.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",_[_.DM_REV=-2147483648]="DM_REV",_[_.DM_SKIP=0]="DM_SKIP"}(i||(i={}));export{C as BarcodeReaderModule,S as EnumBarcodeFormat,i as EnumDeblurMode,t as EnumExtendedBarcodeResultType,n as EnumLocalizationMode,N as EnumQRCodeErrorCorrectionLevel}; diff --git a/dist/dbr.js b/dist/dbr.js deleted file mode 100644 index 48349de7..00000000 --- a/dist/dbr.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! -* Dynamsoft JavaScript Library -* @product Dynamsoft Barcode Reader JS Edition -* @website http://www.dynamsoft.com -* @copyright Copyright 2024, Dynamsoft Corporation -* @author Dynamsoft -* @version 10.2.10 -* @fileoverview Dynamsoft JavaScript Library for Barcode Reader -* More info on dbr JS: https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/ -*/ -!function(_,B){"object"==typeof exports&&"undefined"!=typeof module?B(exports,require("dynamsoft-core")):"function"==typeof define&&define.amd?define(["exports","dynamsoft-core"],B):B(((_="undefined"!=typeof globalThis?globalThis:_||self).Dynamsoft=_.Dynamsoft||{},_.Dynamsoft.DBR={}),_.Dynamsoft.Core)}(this,(function(_,B){"use strict";const A="undefined"==typeof self,E=(()=>{if(!A&&document.currentScript){let _=document.currentScript.src,B=_.indexOf("?");if(-1!=B)_=_.substring(0,B);else{let B=_.indexOf("#");-1!=B&&(_=_.substring(0,B))}return _.substring(0,_.lastIndexOf("/")+1)}return"./"})(),e=_=>{if(null==_&&(_="./"),A);else{let B=document.createElement("a");B.href=_,_=B.href}return _.endsWith("/")||(_+="/"),_};null==B.engineResourcePaths.dbr&&(B.engineResourcePaths.dbr=E),B.workerAutoResources.dbr={js:!1,wasm:!0,deps:["license","dip"]},B.mapPackageRegister.dbr={};const I="1.2.0";"string"!=typeof B.engineResourcePaths.std&&B.compareVersion(B.engineResourcePaths.std.version,I)<0&&(B.engineResourcePaths.std={version:I,path:e(E+`../../dynamsoft-capture-vision-std@${I}/dist/`)});const n="2.2.10";(!B.engineResourcePaths.dip||"string"!=typeof B.engineResourcePaths.dip&&B.compareVersion(B.engineResourcePaths.dip.version,n)<0)&&(B.engineResourcePaths.dip={version:n,path:e(E+`../../dynamsoft-image-processing@${n}/dist/`)});const R="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var D,T,t,F;_.EnumExtendedBarcodeResultType=void 0,(D=_.EnumExtendedBarcodeResultType||(_.EnumExtendedBarcodeResultType={}))[D.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",D[D.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",D[D.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT",_.EnumQRCodeErrorCorrectionLevel=void 0,(T=_.EnumQRCodeErrorCorrectionLevel||(_.EnumQRCodeErrorCorrectionLevel={}))[T.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",T[T.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",T[T.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",T[T.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q",_.EnumLocalizationMode=void 0,(t=_.EnumLocalizationMode||(_.EnumLocalizationMode={}))[t.LM_AUTO=1]="LM_AUTO",t[t.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",t[t.LM_STATISTICS=4]="LM_STATISTICS",t[t.LM_LINES=8]="LM_LINES",t[t.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",t[t.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",t[t.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",t[t.LM_CENTRE=128]="LM_CENTRE",t[t.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",t[t.LM_REV=-2147483648]="LM_REV",t[t.LM_SKIP=0]="LM_SKIP",_.EnumDeblurMode=void 0,(F=_.EnumDeblurMode||(_.EnumDeblurMode={}))[F.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",F[F.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",F[F.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",F[F.DM_SMOOTHING=8]="DM_SMOOTHING",F[F.DM_MORPHING=16]="DM_MORPHING",F[F.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",F[F.DM_SHARPENING=64]="DM_SHARPENING",F[F.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",F[F.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",F[F.DM_REV=-2147483648]="DM_REV",F[F.DM_SKIP=0]="DM_SKIP",_.BarcodeReaderModule=class{static getVersion(){const _=B.innerVersions.dbr&&B.innerVersions.dbr.wasm,A=B.innerVersions.dbr&&B.innerVersions.dbr.worker;return`10.2.10(Worker: ${A||"Not Loaded"}, Wasm: ${_||"Not Loaded"})`}},_.EnumBarcodeFormat=R,Object.defineProperty(_,"__esModule",{value:!0})})); diff --git a/dist/dbr.mjs b/dist/dbr.mjs deleted file mode 100644 index 07e7469f..00000000 --- a/dist/dbr.mjs +++ /dev/null @@ -1,11 +0,0 @@ -/*! -* Dynamsoft JavaScript Library -* @product Dynamsoft Barcode Reader JS Edition -* @website http://www.dynamsoft.com -* @copyright Copyright 2024, Dynamsoft Corporation -* @author Dynamsoft -* @version 10.2.10 -* @fileoverview Dynamsoft JavaScript Library for Barcode Reader -* More info on dbr JS: https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/ -*/ -import{engineResourcePaths as _,workerAutoResources as B,mapPackageRegister as A,compareVersion as I,innerVersions as E}from"dynamsoft-core";const T="undefined"==typeof self,D=(()=>{if(!T&&document.currentScript){let _=document.currentScript.src,B=_.indexOf("?");if(-1!=B)_=_.substring(0,B);else{let B=_.indexOf("#");-1!=B&&(_=_.substring(0,B))}return _.substring(0,_.lastIndexOf("/")+1)}return"./"})(),R=_=>{if(null==_&&(_="./"),T);else{let B=document.createElement("a");B.href=_,_=B.href}return _.endsWith("/")||(_+="/"),_};null==_.dbr&&(_.dbr=D),B.dbr={js:!1,wasm:!0,deps:["license","dip"]},A.dbr={};const F="1.2.0";"string"!=typeof _.std&&I(_.std.version,F)<0&&(_.std={version:F,path:R(D+`../../dynamsoft-capture-vision-std@${F}/dist/`)});const O="2.2.10";(!_.dip||"string"!=typeof _.dip&&I(_.dip.version,O)<0)&&(_.dip={version:O,path:R(D+`../../dynamsoft-image-processing@${O}/dist/`)});class C{static getVersion(){const _=E.dbr&&E.dbr.wasm,B=E.dbr&&E.dbr.worker;return`10.2.10(Worker: ${B||"Not Loaded"}, Wasm: ${_||"Not Loaded"})`}}const S="function"==typeof BigInt?{BF_NULL:BigInt(0),BF_ALL:BigInt(0x10000000000000000),BF_DEFAULT:BigInt(4265345023),BF_ONED:BigInt(3147775),BF_GS1_DATABAR:BigInt(260096),BF_CODE_39:BigInt(1),BF_CODE_128:BigInt(2),BF_CODE_93:BigInt(4),BF_CODABAR:BigInt(8),BF_ITF:BigInt(16),BF_EAN_13:BigInt(32),BF_EAN_8:BigInt(64),BF_UPC_A:BigInt(128),BF_UPC_E:BigInt(256),BF_INDUSTRIAL_25:BigInt(512),BF_CODE_39_EXTENDED:BigInt(1024),BF_GS1_DATABAR_OMNIDIRECTIONAL:BigInt(2048),BF_GS1_DATABAR_TRUNCATED:BigInt(4096),BF_GS1_DATABAR_STACKED:BigInt(8192),BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:BigInt(16384),BF_GS1_DATABAR_EXPANDED:BigInt(32768),BF_GS1_DATABAR_EXPANDED_STACKED:BigInt(65536),BF_GS1_DATABAR_LIMITED:BigInt(131072),BF_PATCHCODE:BigInt(262144),BF_CODE_32:BigInt(16777216),BF_PDF417:BigInt(33554432),BF_QR_CODE:BigInt(67108864),BF_DATAMATRIX:BigInt(134217728),BF_AZTEC:BigInt(268435456),BF_MAXICODE:BigInt(536870912),BF_MICRO_QR:BigInt(1073741824),BF_MICRO_PDF417:BigInt(524288),BF_GS1_COMPOSITE:BigInt(2147483648),BF_MSI_CODE:BigInt(1048576),BF_CODE_11:BigInt(2097152),BF_TWO_DIGIT_ADD_ON:BigInt(4194304),BF_FIVE_DIGIT_ADD_ON:BigInt(8388608),BF_MATRIX_25:BigInt(68719476736),BF_POSTALCODE:BigInt(0x3f0000000000000),BF_NONSTANDARD_BARCODE:BigInt(4294967296),BF_USPSINTELLIGENTMAIL:BigInt(4503599627370496),BF_POSTNET:BigInt(9007199254740992),BF_PLANET:BigInt(0x40000000000000),BF_AUSTRALIANPOST:BigInt(0x80000000000000),BF_RM4SCC:BigInt(72057594037927940),BF_KIX:BigInt(0x200000000000000),BF_DOTCODE:BigInt(8589934592),BF_PHARMACODE_ONE_TRACK:BigInt(17179869184),BF_PHARMACODE_TWO_TRACK:BigInt(34359738368),BF_PHARMACODE:BigInt(51539607552)}:{BF_NULL:"0x00",BF_ALL:"0xFFFFFFFFFFFFFFFF",BF_DEFAULT:"0xFE3BFFFF",BF_ONED:"0x003007FF",BF_GS1_DATABAR:"0x0003F800",BF_CODE_39:"0x1",BF_CODE_128:"0x2",BF_CODE_93:"0x4",BF_CODABAR:"0x8",BF_ITF:"0x10",BF_EAN_13:"0x20",BF_EAN_8:"0x40",BF_UPC_A:"0x80",BF_UPC_E:"0x100",BF_INDUSTRIAL_25:"0x200",BF_CODE_39_EXTENDED:"0x400",BF_GS1_DATABAR_OMNIDIRECTIONAL:"0x800",BF_GS1_DATABAR_TRUNCATED:"0x1000",BF_GS1_DATABAR_STACKED:"0x2000",BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL:"0x4000",BF_GS1_DATABAR_EXPANDED:"0x8000",BF_GS1_DATABAR_EXPANDED_STACKED:"0x10000",BF_GS1_DATABAR_LIMITED:"0x20000",BF_PATCHCODE:"0x00040000",BF_CODE_32:"0x01000000",BF_PDF417:"0x02000000",BF_QR_CODE:"0x04000000",BF_DATAMATRIX:"0x08000000",BF_AZTEC:"0x10000000",BF_MAXICODE:"0x20000000",BF_MICRO_QR:"0x40000000",BF_MICRO_PDF417:"0x00080000",BF_GS1_COMPOSITE:"0x80000000",BF_MSI_CODE:"0x100000",BF_CODE_11:"0x200000",BF_TWO_DIGIT_ADD_ON:"0x400000",BF_FIVE_DIGIT_ADD_ON:"0x800000",BF_MATRIX_25:"0x1000000000",BF_POSTALCODE:"0x3F0000000000000",BF_NONSTANDARD_BARCODE:"0x100000000",BF_USPSINTELLIGENTMAIL:"0x10000000000000",BF_POSTNET:"0x20000000000000",BF_PLANET:"0x40000000000000",BF_AUSTRALIANPOST:"0x80000000000000",BF_RM4SCC:"0x100000000000000",BF_KIX:"0x200000000000000",BF_DOTCODE:"0x200000000",BF_PHARMACODE_ONE_TRACK:"0x400000000",BF_PHARMACODE_TWO_TRACK:"0x800000000",BF_PHARMACODE:"0xC00000000"};var t,N,n,i;!function(_){_[_.EBRT_STANDARD_RESULT=0]="EBRT_STANDARD_RESULT",_[_.EBRT_CANDIDATE_RESULT=1]="EBRT_CANDIDATE_RESULT",_[_.EBRT_PARTIAL_RESULT=2]="EBRT_PARTIAL_RESULT"}(t||(t={})),function(_){_[_.QRECL_ERROR_CORRECTION_H=0]="QRECL_ERROR_CORRECTION_H",_[_.QRECL_ERROR_CORRECTION_L=1]="QRECL_ERROR_CORRECTION_L",_[_.QRECL_ERROR_CORRECTION_M=2]="QRECL_ERROR_CORRECTION_M",_[_.QRECL_ERROR_CORRECTION_Q=3]="QRECL_ERROR_CORRECTION_Q"}(N||(N={})),function(_){_[_.LM_AUTO=1]="LM_AUTO",_[_.LM_CONNECTED_BLOCKS=2]="LM_CONNECTED_BLOCKS",_[_.LM_STATISTICS=4]="LM_STATISTICS",_[_.LM_LINES=8]="LM_LINES",_[_.LM_SCAN_DIRECTLY=16]="LM_SCAN_DIRECTLY",_[_.LM_STATISTICS_MARKS=32]="LM_STATISTICS_MARKS",_[_.LM_STATISTICS_POSTAL_CODE=64]="LM_STATISTICS_POSTAL_CODE",_[_.LM_CENTRE=128]="LM_CENTRE",_[_.LM_ONED_FAST_SCAN=256]="LM_ONED_FAST_SCAN",_[_.LM_REV=-2147483648]="LM_REV",_[_.LM_SKIP=0]="LM_SKIP"}(n||(n={})),function(_){_[_.DM_DIRECT_BINARIZATION=1]="DM_DIRECT_BINARIZATION",_[_.DM_THRESHOLD_BINARIZATION=2]="DM_THRESHOLD_BINARIZATION",_[_.DM_GRAY_EQUALIZATION=4]="DM_GRAY_EQUALIZATION",_[_.DM_SMOOTHING=8]="DM_SMOOTHING",_[_.DM_MORPHING=16]="DM_MORPHING",_[_.DM_DEEP_ANALYSIS=32]="DM_DEEP_ANALYSIS",_[_.DM_SHARPENING=64]="DM_SHARPENING",_[_.DM_BASED_ON_LOC_BIN=128]="DM_BASED_ON_LOC_BIN",_[_.DM_SHARPENING_SMOOTHING=256]="DM_SHARPENING_SMOOTHING",_[_.DM_REV=-2147483648]="DM_REV",_[_.DM_SKIP=0]="DM_SKIP"}(i||(i={}));export{C as BarcodeReaderModule,S as EnumBarcodeFormat,i as EnumDeblurMode,t as EnumExtendedBarcodeResultType,n as EnumLocalizationMode,N as EnumQRCodeErrorCorrectionLevel}; diff --git a/dist/dbr.no-content-bundle.esm.js b/dist/dbr.no-content-bundle.esm.js new file mode 100644 index 00000000..0e595564 --- /dev/null +++ b/dist/dbr.no-content-bundle.esm.js @@ -0,0 +1,11 @@ +/*! +* Dynamsoft JavaScript Library +* @product Dynamsoft Barcode Reader JS Edition Bundle +* @website http://www.dynamsoft.com +* @copyright Copyright 2024, Dynamsoft Corporation +* @author Dynamsoft +* @version 10.2.1000 +* @fileoverview Dynamsoft JavaScript Library for Barcode Reader +* More info on dbr JS: https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/ +*/ +import{CoreModule as e}from"dynamsoft-core";export*from"dynamsoft-core";export*from"dynamsoft-license";export*from"dynamsoft-capture-vision-router";export*from"dynamsoft-camera-enhancer";export*from"dynamsoft-barcode-reader";export*from"dynamsoft-utility";let t="./";if(document.currentScript){let e=document.currentScript.src,r=e.indexOf("?");if(-1!=r)e=e.substring(0,r);else{let t=e.indexOf("#");-1!=t&&(e=e.substring(0,t))}t=e.substring(0,e.lastIndexOf("/")+1)}const r=e=>{null==e&&(e="./");let t=document.createElement("a");return t.href=e,(e=t.href).endsWith("/")||(e+="/"),e};e.engineResourcePaths={std:r(t+"../../dynamsoft-capture-vision-std@1.2.10/dist/"),dip:r(t+"../../dynamsoft-image-processing@2.2.30/dist/"),core:r(t+"../../dynamsoft-core@3.2.30/dist/"),license:r(t+"../../dynamsoft-license@3.2.21/dist/"),cvr:r(t+"../../dynamsoft-capture-vision-router@2.2.30/dist/"),dce:r(t+"../../dynamsoft-camera-enhancer@4.0.3/dist/"),dbr:r(t+"../../dynamsoft-barcode-reader@10.2.10/dist/")}; diff --git a/dist/dbr.wasm b/dist/dbr.wasm deleted file mode 100644 index ec157ef964596a6071b7d4b833798d016473eee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2837497 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∈y7n)9qj#dN@2xL6HvT55 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 z
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 =1ts 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%0AUzE$;#A7|qUatm>u+}@aK8h6Ku3J507 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

#+((Yoge;n5CziPDGTaHf-1zj3XR)Ha69 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


oFA)U{~ zdAu3hOzNk0Q4av!=JbQiJQbFNU0tcx?){aE%3z@vqz$dYp!{@@Cy2Y={s=RfFnJEJ5UK=IW~P65ubH>+ub|o z?0qY9j5EGHaRbw@FxpJJ5t`|g&Z3o&mco`T;t^pvh$EqLTQY^rA z>H)5RJvKe-u3Aax3#5C=l2HzAD5*RR8rOffQ%*~MZo~@GUiJbv0ex-{dlV!WZ2?IP z?kRi~$dTVK@G|PcFJZA;(gzP2C(71Sd)+3W&yg)9GSglz(acrJ`3GfBfIE93B<5*m@t@so$SUT`8|GKNeSVUM_uiB@ zKKsh~mAU?g)AQ39KTh9vdi5jfu`cW?Us2C@z*lk=<*u|nPJ!i(hu`wgn5dip0q>%@ ztJ*6|^!quK`T^z)3fo+ZHbiv~N3oBg?=xbnYWg)U8)_Dpce4f4fp#BLr;z zqWZ1fVzn-dt=1upT^*EgL8;K??B?r+=L*KXCg{di2T+B-pqh)?|A#|0FaK@!u5q! zoGEv0xg%`NcaV}yWoL0Es`)lS4v~&GmI%SdClPRt5TGEmWohxLQnwNkVRkg(4-p8; zOSWWa3^dIZTZsqTG;0Pk!t@ADNx( zi}oM46l>>YM-;_QSxw zI3YXY@zo+dzgMEndOIJhq}s`Xtb*Z;O}>t;iar)R9~|mBwb8{ko36Ad#Nlf73B$pR zagX}!rr|?Y+X~9MTIT$|d3dV2?eq~=wG}uo+n%$W2hq-e1qyt*Ia_*zO2=&=_zjie zkKOB!WHekfl##Wta6P6KlzzuHuF$eOXbr-oqkLb1OG3kq$Jp@mv6^lC6F0r-wXtyz z+fz3(+`fbAKAH6CV=QqFFN>`L2*W%Z4VIosk___#rK)w06)^4Y2EPWGDpDXuTvqjJfBS`5s-A`o^`krO6mT+0l;o@aU>W; zYx4F&g^y_jfh_q4S4u8e^3=(~Tl6{z4_%l{mU0o&xUl9Ey|d&|d+mug66U*iJE1P5 z32XPh5q8z?zV0r{hj9{ZsCFnBY<<)dpxsr-jx=^`jEcD?ir-(DL{lbcO*Df$Us!;0 z?dBUa!ttv@rXOvtxV}jmdV9wD%cL&G6yeP>kezHjOzctQdK>*u>hee?k<8 z&ZER?L0c;)Nes|~rqqr3G82HtY-VUjS(XX^3hFFBRzN)$^+r!v{27-QhCm0J>61~p z5)iNq8u~|jldq{h4_rEyqnp)=THF_$SL>;}=8X7b7wS?3Anl^O#-*s4T*CA54-W(w zd>vhC2QME+ILg(P1{dcF!aRfg8%2$$IHdoib5=kn8N<%I| zSMpQ0PafMHY-vwa8QeP40Dk;ekJ~*i~yKf5$6q#s`0a1?LI`0g3;^63B|k3dIfq{#}rGE+n%o%6F-Hbr{C>&iNeTsvX$rS3-*=g?Z4(N zO*M7B>l$C#v#t*<9Mlm)XkcIMA-xvw)?;tA zME{9igF41o4Vt_upCRTmlo_jYzuzRn4vD`&WSHDy@U5j=#HGg0z{6VtDI#Y(ICTXP zn~|T^6ON7r`z@?NgS!cf!NGTjq5Elx*vN(Z*j|ry33ZwNyE9HC+3vbI-#$&3B#G_Q z6KYH;-GUhx3%OgQ8NZW_5ZX9!M@1Hw&U?sxab?oHJNLU+k{RwwHZU(<;lY?#Bz0(J zp!m(uwV<&$USunyf3K&r1GvvoAgVIz1pWISsiFM9$sWMBiW z&D+5{XCnp}V2Aco{dPMleI5zi3BWBaGDgf0LUrP5>Xf2Y>)^rhS+IM)bDC1>Zd`z? zxBnMNUt)``(;?$Y7n6MnDEu~ze#{mTp>O2P>$w+Dt ziz=wX+u&P;7aKhB!7hIK9}G=GrV$gM`DPArhKf2WEZ>1WsmA?zfbjxQ*_<`Nnpx~1 zg7E@Y!gRnfDp`rUE|z>;0J=M(2z|d9VgQM{$Mm5xkq&&0&%yC2H45R>wX^18V6F5E zOn^bGbigz{sfWtzGz35VoPu55&=>X(Kb7;$*ND|3k`1|_bQjBS*RS1XIimg{$m_Qo zUkfR2RPLuZT;_eF_7}-tgIC6Y7{&UgmQtAIAC_iyq;&nF zk9vIMJO0^V@#uK*^mjcoTKo!s4n#fjDo})}`?IrukWr6zp+;kT=Fq6eA@;fil!(F>ihq^UIqwSf zQ3G6$@A+iFjBL9sZL->fJa}ZcJr#(nn|WpS_c(<%$rD2T(180DSr(DrF{4Sp?HZll zWbxq51#gl1`F}9|@0nO61;$y;BCOG-8-Xq}c8}1pckW&th7o)kROwu+>#EIEh9DE4 zYoG`>ZHs&S70v$mCYfS0fh|Sm)t^598(GI(Z+jr$0!^z~A_J&vAv!To3Ign$mLyn@7;j6~K zBL)99^{RP(nqTjqt@od*_s`V(PuBaV>irY-{^RwY*qVG#5KQWOM4t68_ZFloS*+g) z4`LstM;3AW^UbYf*cr9QR$rKP*B3kB7CFgZGFW`(p@~C1jok+u3_FPZ;k=LwFbbq$ z<9k^&J@|>|n?&y6wc$<4y-UI&W+$P3NOsYT#?$|IkEhPDkOp(0prU+Xy4&@PiRq`a zbF{RS+Q4tzJ-@Z5(N~^Z>)j11?H*Py9x|0fs-OO2tNbTPyGu_EZet@YOP*bu{?on5 zVw=Sknej3%uqbdM7%(K-W(5HAu^^cK5?g#0_+LYoR{*NUe_;ESJcC3zb;TccDN{TF zCg>6ii-qReO=J9A&#>ZckyzzB61}oA&Xs5^%))NnTakSAxcYNd! zq-b2^X6BK)*V^Kf{grY1<=LnEtLH@M;}f7aY_GItlyHyhLMUf1DPTNQ#K zMqUU-Ntyn*xPqd1$;DVCMGC^Opo>RH@EEHv!IP8)hj3%^U3}(PO#BqXAObr-r{)tZ zzpSEiFxSZC{u)~ze=BTCMkH5rsx&y#HU6%4jgBR7MB{Iw4UHf9a~fMUhENeBV|ii0 zcZk6`hD~EZntb6#V=Zxf5CQO(Ij0&b&(RnOjaR-57X${LKEnv61l3b$fx%isydu-#ta_Z-G!S`RkJx5weZSM%0Qt(PHi1n;tfP<&Emx(Z&ZPW!p& zHZvVcFY^o|XM~?-Y5okX#OqIS{pw$ne97;xvn3weTF&B{y~HQ-I8yfx`=@89e_fO2%FBBDDblBOwQvd^*yQZC zr);D~NHEm31-K6s5$mssY{okBR52k!Sv*7+UgzM~$x6`HQ)I9DB;QZ!(4h zKyytR%O2-D2*Eq7B_72W^0QTFk2Tb0UX(gZRb&dFvK5SMSf~&(9XU9dvCnrz=zJPF z-0u22(Ka>bY=~?;vTDzXSo(+^q<)53%NXOpn9XA7p3Uk0=3*jaK22yNXnfD&mbQI+ zJA3=QZQBPhf=_X9!UJGEJlH9p&tLY9++b>N<}ZEYUF3YhA9oM)xW&_%ujV{m$8yOj zh{mz3V^@zWgC+kSUcUstS=*k`t2dj<3kW`8I(2r`67zSweQpnC{Lb20JI4;%wlB?H z+rErnZrj=I_?7*5O4D0Fnt-SV$}>mI5cKkY#!%sYL8_p!^ z@aEhDoMNCqsV{OHlDG|EY-RZMF-38ewe82+S(nxC^EbWc&8A@^vMZtO*s}1fLfh%h z@N3V{PSP3Qb_1<+Y;-BCi@$|+6x9%7jc{ zlgss9Egz|rn33Avs%`LJE^UMVg+a^%>0)g1zTpT_k$rF=S>$>GTLuSW9Ve5WhL?QN zxcXkg7TE8hgAx?8UsMC8oB1I152k;+??~HBZl}_PlqWp_$YC1=RymmwT{&Y8NjXPvl2+E=pHp;1GF8BPM{^Hd4tQx#` z?f948E0( ziAt9q;kugqhM4^L$2TmKeB)xNuPpe+{i_SbE)NHw0#Y0O-rn=>F*OLL+royOgORGJ zBb?~n?Dm-c@h_%>tzbpIfMxjlC0Y2t8A%}M@F+vyoc?>CH;aFt(D9W|=4;b0U_Svqvqt(B zr19m=$;L>NB|>704Uv@>rE&D1d3;#JIk-Mxltce(7+L~5=3BQ_zny(l7X@^%4y1)} znjs1ca!8KIJIrIp`8|5<_|b`k<;dYj{6zqXuMWQd7EPOXvxYNuG!4LQWzD64wG;ya z5|M|98foI6apHGeAdAp4oY6DbAFqWc*2msQr`@*f`N5XQONR)1swJ_>`2jO=fy$V& zHCJ`UYMcqxX)>%QTqtV4%2^v8RUBHELT5lDLObBok7KENL?(JE^f! zDN2$yu_qDO~5EOp2?BZO%u-km-L! zbITwB*nm49!x=|2_)YZ^uIVL2oVoyu99_7je2Dz`dsyonQoMs+@jg#$1&VZ@@1P`!W(?i%4Fc8PZ14dd^ueK!NKQSXCOXEjDRIPRi%CD%jq>=1Q5; zT&^eITL;1NQ@WLwb>XfPpIHatZMlYxlwv{MeZ>?ex?(EW?`&2cTUOTj2`n5rQOmMqiy5*@bi$R(fsbM_`JxWx_Jr_ME za=53eCHF#dv@Fw5z;CH{`yq-WD_zeIXdwi+h_=Y;@;=)2M4AARN*{8VTp+&(}_Vcei9U1pBtnG(wR+8X>!6 zS>=j;)!0ljI&B?W-`Hrz17kCF=Jl4G`1PjWdBT%GjiBTVwRI0}Lp-1UuP3fDnd9o? z^~LG(?z?y=;1{p%VlV5L@TlSRyHUR_IgiU~x#%t+1l zyDt>8PJlXbnEY%Ob?Lv)C!Pi!6vML^NBHGh^8$Udd66uI~!UgzY0Q~V}J$_auv|vAs?P|G4Ju0 z>mGdL3O;uBml#Am8l-M7T2a?EVz*fxF5NYpwzX?TL)3`f^{{A22%#13xeDC5>fpYS zR9yhE>Q5739QYYGS2Sx-knSqq(tq@9e%N2LkZ@OGV)4|MnAokv#AY_P@YOMfWlSs( zmK8Jv4s;MEtU<&a5#LZ_VlRbmQG+MF4i1(L!Ea2&CA2(%S8T9o2 z6QZqs7S)E_`)bA~vjZ9(&`ah)^c{cI>rw?`7HRbYqiA+sSyg#nt5UZk)4nD%M{f*$ zosd;*=wkPeNVQYe*&{t@Tl+m|g&Qwv!Uf*ZbzU-Xwo$lIWTG?5 zH=t}I6RB?+<(v9i5hr%4{Boo4}N0*Mz3wL_QobSU#8h9oOg+0a?6 z%*yVJ#-B4(Pbmd_+nh{(dC=$S#Fq?Ml*d)BLH?R`3=y)V0URNa`(o3ew51OPvY0-# z?tGQVHP(Pjcu@op3pcVCyrifiH5Xu}@PH$QX{+kQ^vB?Cy(48*(gCVuP>*T~jmME9 zPVuyQjYj>E(mcd#^m8XBzdRys-RQ02zhjtBASV79)BKty|DA%!KK7db>C{iW?l=D8 zlWf{M)*kEMuxT&6DDinY>Vi1wdlE}H95OSoSk7T~d$mWcIZ5PiwTM#|xu%$fT6~GgVfbiUPN?lDJA?m>3Cq;){_PVQ!%$=zVlI`ot_Q@!FsWoRYGo@Rs zYz$o0&=TM&gi|(0lAoF_t%l7+C+sSBy2_a8F7->f+G-Yq*>-7;y0&3msmK~o=MY7M z)>uRy7>_pY8NM}#DztriR@!!DcJXaqXZ?02=}$QPB|0Hp-LQ@;%g-_|s}BtnM=D^Y z>^H^!)1boIN12&p?QxEyIL2h-FoE`vV3Kw|)`e;pSqA7cc1L?EsT;FbL<2oZ7BhVcY&|MJ> zmll<{HWz2~1FQU;pFV?$2uyrkPAj2+>KM_Z$#LMHGwzcmk@4U|^JDMy40aN=eXKjf zMkQ&uCQE2{1k2DKkrTsNLo`0!WcU?6JuA zz>>+J%b#Xqy0|@e8YD(`K7RaF9DTdnjz9DO`!h0>pz+^DR)EZMu!{b7E z?eTZBshsmn%DE~l#i0U@Tq>vUltdPQ$YXx!0IZhP!ef5?^$$^S0SWB!TW2FdAR41G z(kc*yRI+#(8VHef=}5{QhbqMWn4VYEh83g2FGB_;gXQTwr$lUugCU?!HouqVj@4G3 zr5#oqex`F*OXfCQ-*wk~AmhGYw&OW8Fbv_dpY2`@mI*wBlAIg7Jk!U|3OL_=@du!N zFb4?PH0IUUk-xVtLi<3~^~|?G>}{oIFR))V18_On2CqI*hr*|X5Y}7fuRKq<)YH?^ zl|&wdRPG%nW(u6uis~P1-0(n7+q-iPh&?NQqaK~iZVU+ccVccCJDc|d5GU}yfvW#o zSQFU@1bk7e6i-s-Y$?*#R|o^&IY8Rr_da$axgNJ`L}pMmkIwj~*4pGYA*1cHrr*J_Yu*P+S9Jw%z^R<*nXkH_OtvhK1;z(4-Ckw=jyA^_==+N28ioc z+}&tNADzFr2HQ$G?f!MBU0H|1Fn|mJ^M!V<$;_D(4vJ+W+Yxi028gyObXp*A0}5WA ze_QRyTNm_zK5&dSAsK_3Q`@~4&Zi?Fw#Zx-CA^-KtYsa;4?QyP3v4_P&_j=o zdr^D!JNSfCsbA}LA4B}FNx*QoP?~;llcWM-EZ`N|Zq3+%vwIjcDD2HK?O{{1Q24_t z!eo#bhr2N;v_TTr9`4v#J-oA=xy@Z4%tRxc=ZN(*ExYjB0sLpepU+P}S2E_{99Zc>=|EuU^V$tG?T7X_ z*N{4xypU0QwTs==?KS?p{WN4z$xV9c&|(_|lo6DE5N=qIzRb}Oc?=IWSi%{`ch2{^ zGj^YS9yB$X`x<9aQ(SwDxhxa7)8-;1N#gkL_ilQ#U=dlLTiniuM+(7- zJWdJFaO2VBtn?r%;Whw49zcjPSf_fHE3$mUD1F9Rh}VbQMuqA|l?HoSYsq;sf<*lv zsyh~waZgV#=~FdlA_{%LZzJ!Meuyuox10{SoF@|t3z)B7pC|1)*1=2~d(V*B&d;yl z9!Uha-5Xqb>-p{WESaXSn5vdon|+4xFFKH^asw zlLoKcI1sjtgohV{d6?#u#U$vLQLle9if6m`=S_UU)(-wZ&FR-CG1c}GPR}=Egey3k z)tqUXUClJg*Ju)Mv`xoOaBAem6iQ@6rBGLwjzSB0@MJ$>m?+ciEC?pDf$;c7J&5DH z=A3L$b2DeR`U!@vo%?OO3#X&bUJsH(qlYZ;=KY8~*8xvBx_~lPLv$c4dKW^QA{ZanJ_h0N!e8wHJ(J{e$q+{=^ z_9)<*$sIas2TSo&x*AV^taD3)b+Iv0MMJUQr(f{WN7y_ACxgpll$w6v(9PT@BQAqP z6rp4M-ZJT*6=93c-!i$cW`IGL?GnInKJ!LL<%QNm?+hFp4Ypp=_HOQTGs0+SBC+g{ z5ev}=c62j>=?cqE9_)QM{dw$cxEWU;kJW&D_cwWm;!Td1J|wh$8e7~aSl=u=Ye3T# zKVxqigTSI*LHDQ16?A`Pxe7itN-L-{MVNpuJ3>gB$kFK!>8vjSW5hE-FOjj-I2r7! z`C6_DQuC&MHGRam^by0HA?V2u^7^QzSJRax#`sUSClC z3`ICDMJ!YL?XXhZjcm#{suUQK@OjmYB|ArEELn3yFK{z;~Ou*FsT&IA_B&d=$8v zWCxo%9v(5tb*0_tJ%=C=l;a8@<`CTdLnne_P%fp>(aSU5iUc|XcSQhae5Z2;X3Djb zc5Q2H`V#OxGYG#dSW9SMoj)n36?uoPT0vasK`N ze;DVVOECcV%>n1%-wX)!aZCH3II)sTW&@b|qT?vl`3Dqv9;x053Y+Q5#Q6u_+`P-Q zE|DCF^AKJHHv5Urzj{?xJ;1qa$3-1_w0M_LMeZfgi}Q~R@1ina(vD7X{m4-wFc^Uo`*D$i?Go%7GmF?w*SfCb=nV4+CV?|7^4R%UWtN#5M~^_Wi+lO+ zFPMjL;_LD9^?2p=>oMwphpH^_Tz;@6tN9};c{~z1$3J@Fz@u0lC)3A$-ffCl`DDI1 z{TYm&nHC1K+!Vpi#Cu9;^U+-`F?)x1HETzB1IBtgjKiR8q}b@!L0U+Vaw4dYXr`Uq zS{a7JRyZ~=7-QmQVGw151@vjUpMA?AR!~O7!;%uMyaQgqw~FAU@BqSg`pFWo*8 z^X3yan3U;^8$2D|4AYpYz%skAZ(08HH`Pu&2sz?@rWDgk4fYVbp%|Pmo5MPFE^L{) zIesTIp*SiRF~`Sd5B?yh^usecm^q^mYpN=wKIv9mK6>1Mg~Th%=~|_@Tjm@`?23RX zy-XJU#@PV*Ek8Iw!9nLE>YKX&_i!XE#knIbieisx;wmcc8`4W8mCM|jLuZ~$pls+Zkjs2?o`=k8oQk;l;Qi@Ha^)U8j*vOyPn?d|y1V#IU#|ML*(rI&~JC<{tiE!AbDN8@T*yJUX@2vlfn z3|3rt)E@+d0|+Wc_OjwXI0y?#mHvYeX5pxi-)5y0{aj8!Wc8U4RIHP$q9E>qARUuv(fWFMz^B9o?mJqk6qr*5jJVOs3KEc|1U)}1R0dbE@WN= z66M_txzdezgFc1WYm)Rzv=cUS!FW6*DH*b#homma3?deCtSLL zJ99qZ&e@p}?|_uT0-1D(n{ISMVYt9*y`GIue25tRaEY1fBw|*oL48^(P#&JlsXg*A z;JOt0xfv|8a4Fsgm=sf(1q2%*n{P<+iEH^1EVkWp#z2bAB4P(1W%a6(Hi12+4W~#k z438Yk==}7L;P!BdW<_3ZlYe}`q1FS+B3wU>sp;ulzns&YINZ8kKf(1ATu<(9JaUYL)wn5i_RmJ)ylwJLEGsp~y%^hgFf@ zSBypbU#u;@poq=uALg~;UW>myk)7`=Hpf;q{SmB5DPF8HC2Uch|Rx}%;c8zYq|os~{y zqXlr}p|WxJZVRKvn7*M%td*{jFo9x34y%Ev8vtuXcW?-(rZe;&a?5PZ-3>M&Auyv;S?++9N*8-c)oFSaFuL8L~AD3<@#9BuYU;FP7_|OJ1JVx-L`zg&1ctIVA131tydWfllpJje9bJqT( z59#TpY;Q(&$<0q7vK^WP8(E7$%5lFn5 zzzmh80_$4AtC-jH#L_6j=DtQ(Eq=n6FarMH?Hk>-Q4JYfq*3UhK&XVqXb`cLij7+U zL__+1QL!T!X$ewshDAV3JQ=*Hm72xh`P_~H-jo$L^GYL6sHh{u@}(9=E1KYt0FpJr zoB7pY-Sw_6%HkKZtl=>g~Sim2G8wRzSL_0j9)ByZYtTooe8lBz4JP6ewlAA6>VkB4C&jSraDjeZAO&f>r-M(m?EoLE zD{pFb#kf;?2v^a#6EF&|4i3e-BZBVdc3FFp)0e@?yA^LxS9TVUdLSBm!iGsT&lC^A zIZt*k>~%!lGLUT4Tv9M4f}Q)Lvw!69=xpYa=$2T6^+N=I`si$44roJDasM&_)3(dY zBcrq5cX)I*pTK#Jh|aD(!Li>pMka(VI=l8{-^)Hao0p0x%=(udo&DaUqO+L}$heEn zwwSi241XaKAP01~m<_W--~zLmOm0_Xz^t;si3#1CTIEZT41zcDLU+Oj(>#^A<$TuH3fS^kJ&9G-)+dr1a7Ou$%HwK&zl z93sJk86c(p-#6+`w@1PmT?@%VFDWe(U5p62)u-71ACbDTV!Lq~umG6sIlg(~Gndn_s|E+{!#PN37MiwumFx7)3VxZ~+6SxG*`gdi5W zU#5G!-nke*%sX*l@k%AXl_HV*ewrDxXpyjr*e8PaES_($(tFef5fBL&U^?M+F*Mpu zO2=0w!X4a?7@>?U;1^4PJJ$_4FdGc=s9VA zL>M|2(U7I5+TL9DnSl{ApvZ+tp8 zvbV0R(A0=yt$-#X3s|0=<_?VO3Kr~Rn#q`7#TR6lyH^?~PLthKmu_5Xp)?L`=$o#l zu6x}+Lrzl)JhA+C@Z2hU7hoX8<~3pU3Vet{QCzE{bqR@ZhhgwA!t~14LdC5as|es~ ziAKp3RX1zI=K=H2(|Opzepyc-43PEe*20S2EBFFnmy$HozhW>ZR9%FU5DKdq)XzZ> zwLV$1MFxddn4jVRVU4FV>=Ehad(_#IOHNmDyA!aOlpeJ+e;{)|e_Yr3J9K{_m;INHJd=5E(z5RZ5jZk@2Sy84qj< z>?sv;VTMs91!PByPMBiVQeZUXhsyK}T5Ih+*l%71_z>?Zs4E{rMvxD|e=5ui9|9$; zyX+s#)e&-K&)-z=3(YV28`uZgF`=&iPAKT@Oact7>A=hBWYUVmaZOH-OI5n-dR}Bu z)PjtYIw1e|gGPa>}OW9}Wf>3w% z!^l@pU1Aa&vEHA-8_G$V$fRrNhpCbq>31I&-Y)Q9wwiF&zm)d+R`1pUwlDbRHT5^XHqll(Uj> zM&zs{y5t_4O~5zDh~8xNabN&Z(7=6)$PkMMyikjW{zY^wxnEjlAtAu&sFqnJYna|{XrZe1F;wdtc+26+vH zScJ>$1y-9nyWn#U4$;G(LNH}=H{FrP^pGR2ph}tEQZUmGBeJ?$5FbnmvVd7t;UiQq z;(6Kj2HK>38b*&R#mIS<_V@K`*)U4aAw5JBPx;crG#u@SP{w{lDM2jRN8Bo1aRLxn>a+(1Md**!*+-s-f$*UheehKHdVj zb;oaEw2XIzdRJ#8Sg_%kdG2Cer5dQeI3a4BPr?2Oteq3$7YByX4lAlfbZ{bD&de#G z;?mn&a?2JfAyQ$#QjQ^Y<>r}0n6M=+(tjPS^|sVq?8S3tDNtsGK4*<8T~Uh2ZN8a&U&hh5n(~SuoDU6h_JY1@9hvx|x6kT=qk(QOgW zkd_X9gm(ftDe-SZ$Y5A33d7;Kf?qIf`yiE!&hZez#=$^hhh=RmWxGY3BY}W{x;p}_ zxw5m+CTm-G5p&*okf_n#W&l5l(QYvLQwF`WxndOp+*e$uJTJt<+B++@Z~LE)@5pyuyTN zqkbKR#z>J-)qAN0Os=(*6o2-Wv|T>0wNRgx4FqQCL#d@$bxSSuw$=j0L>03ZN!aSj z=O8Kkk);$GoJ@XVxH?WoF#V9uKRYdVE+ch-8U9kgNs2uOsJd#0Qaj>D8Sp+!v3#77 z23|;8EAUD!ftTP}!Yh>tui6Jkiul&U3-8+syh>_9`*H-l_SI5s&t*ib@JcP9$)WIa zVaGi?nf%@1aEO^O(;!C$KrE6g#^mJoy$8%GrvmU2DVBbf1`qGHv$~vS2fuLZ@_>1( zZCHg`EwgZOpUVOTF=YRDEw(1-DQ`eYJ`HM?G>*|jkV=Xjc!@Gg5Xd@~DAV_7Wt{B4 zl>QV}jvAZIOlAns8i*XojPZm-B{;BBLTks9cbPC^;Av@?UQ0fdLoDK>{p=0})zu5I z#pfWi6F%F*td17X?tU7GoW%#?D4)`NXFU(s!`P~=7r8)tYc-&EZyN2b^|dC~2#J+l za_qP|ytY=0Rpa=^(b-d~xph>wmLan*?NUXqFFjnfl~Xnr8Mxv;-CP9-0_?3)kfP>R zR6iIgdc2G@LAYAUV+7Dn088qWP5ou9LTTqzY{D^>^1QH4T zqk>Dr4HaEbCT_hrRV~#!WtXg89J@sIKwy9MMPjHaZl%U$SmbIPMmd@nMr>RR#qnWlC`+aIg`7- z1mXHhg9R)J`M^|5`c3HjKdf>)M$I7z7^8E1=FQlD}^98kY zRLbCwcQWV4PfY$?2R^y$Q9+&A9+GyC#6VZRg1)yNnQEBkesM@>KN)=MY#dSD+>qR~ zcSKO%eEnA9TPr~yg_X?t@LWR4kbs%l*B1%6h&KuGd!BBv2Uv;xQXMhOFH&;?O(8OP zb+tsO;35i^70c&U3SB9g>MsR&wbRu+$W{|+`UgkDWG*>3?EeRW59C3%@2(aZz{V2s zH&zh81HtC<_2$a!B7Y}o@u1arb5N8{3+#-z==oCqe*B`B$lq*?I7I%YH=(nmI~yuH zqOn)9qV;W|g4ap)@Z ze*_`GSy$*Pshb6n0to4vms7SHBtJv8D>!>pr7~)}MMbdbTl$pG%@~o8=NJ%7k$e(b|wH>Dqq?HQp zU@*3Qmak$JC&DJ?KEw^=GUb+9zFNiYrsgpn7wxc9?uu1B;emva#PXfSyYN6BuAWUo z5G9?MZQteGg-dHIGaCP2T{Z^2Pgit;r(vcbn*9JGK9+o(3fMh5Q zBXb!lI;kWfRx`X3z8A@wtY;M%BMKmC$9C%@OpNA}gBpYkaRUL6I5#S`+gx>S*78MA z!;z#go+Q7a^ThmVyp_Paqc`lB9yN@XLF9tI#Jz4YFB&aNXKPPHIcpeey(Pl}J_)NP za=rW*252;&LFBduX!@f!h{geAR)m+xpY)P}rFXa>Ry&!aH<Fl@9X(&WLZA%u@(JN$9t=V% zS^vh<_n(-@hQpZEfcc>p2AF0er=|z^h|Z8@!s8#ki@Gbsm)d>gH6q?(_+>0N5qDu-P43mW`yk|7z@M zjEq#|J504^k>{723away#Aq#2ddN#p_Py+57i&-Uz3gKbdHMT|UHkxv zy))L{%oB;21Q$DUqAqsPVsuxk$rt;~Fg14Z13Qs!e^*;^v81dWbvENp$t>H27M9)m z`z$GGsI!g47`$_Vi6JFLXBIJ#Rq0{CerMj8=b~Cfx;M?@O#j+c7mNo)N(3w);toiC zJUP=DOhEoFnvl0(nbt>mL@+^{My@bMxg8zsz}AS{v(RG6m{p|^PHRkBf_=e;o<;-{ zVYGeaSxMkFyjjV)g?=fa-OLxU8nUoQgVtJ4Bv0AJWOo|ci zXKlSX_5CnbGR0E7^T7D!>W~)#ZOmd-&d*6-0wgKN!iabIrWB#HMG73nIX?!z^*LOC z*Oi)9U`S(Kb_-+i+F}x>)=TUfLr7K_X7I4gt|K0D#$*w@9uUMN0&H*+Cy2xl z2bQI0Xa6r%Q!Br4{%^bGS^iwIK+#uG5KIuebY%VTE<0B6)JjKV!Psvt zd)AQoNC$UGG@ArQPg9f!8ERhq6p(=YaOBC8@hXd-zd-Ho$^rxF)`;GMj2gkR&_;-y zSWv?rW*G1t^`tIww95HKBa&Fs0_4%YbQL2FAyhGX|GHI-USj2&qznkDv_76e_Wo+* zbT6s>GCdm`V97EZpHcJGsy>rXiJ8@)>k=y!uTlpBQPqJ|hr8#1khqh2x=^bXqUtNkb9%^c3WrUIst#aCE_6`M2 zB`x8p#yu)$B_E#zOWr z%kt9XC1s_#N+bbA>9DZ>;|keXu{SQiM)Cx}g;!-E5MVU*Sy}gjBynd&*Qc#Q5jfWT%0uc5j1Uj0qXR%-@*7qBVR_eyYWF?Q`d3+2Na^O=$!3XaPX4HBr9p zFg+I>iy=>Lsx@h7XG|iFwqcoDZgnt{r4<-7K3`E1Q|nx>6Spu?->erh!J34PuJ_lK zQLWzFt0cG>6POChu?#pt^FokloCZ=Qeu(>oydE`FT~`#$uN&;N_Svqg51txUPr(z= z3$; z=+h*>ebs#MBdnTY+u;8|rbZ)1fVo^syhkccnk+*`oIbH6f<&u0Mpf*nxsxKFnrTOI z9Cu`@YxUmB2MGfQ^EQ1w`?;9DZc!T`x#-J5)87?ctxvHMtpJ@$qLk}6`@;Zi+i__6~OrHNjBMChK+H>{S=P}JD_Em*#^Q6L|-=htM2s zROu{S2V?`6tgy___KVZ*-sH8Qo1=VyM4Wedjr(0>JeOY1?n=rM;MjrS6f@}YAH;2L zHHJ!c`LcDK4WoUEHS#t10I!Xr-Q{Q_w8I@MFReSn6=SXbc7L6RtsHH5G9J*#K^md& zMyKP~XngYd=P|Ae1~gD{2J`Bx*lAwgoo~FS*f@4wZ)`*xRQXSkQ`I|5;>GX9A@MnT z5wm|Y51>SDBFQ{l{KG+F9()5olEh1Y`eS`~F`)P6bUz5K)qSKx*P z6BQb5Yeg%pSw1sK2E*#j`o@q-Og_HJC-Dj&qh}azBDhDf|huPJHU5(g|=4NWHPP854;c7zwJ%a?zaBQsBb=z zd(wD_lTB-lm9Ev!T9f|)L5>N#Be|9R34Gilil!-TCeT{ba)h~2!51UX*4msW7v#eO z$cV7kI4+@DYkG^drZ%4UT5}}TYfb24sUc=0VL>jn??ghLxl6-qZh?1<;jjYR!jcW5 zFD${^BCyl~OE3*#sc%>!S6Nt6G$w=p?gI&637IKU086UeV_1S~AK)<~H$%-7ugqz? zSxcyC-HxLTN5YrpuT1s}Ys#W7HaJ>(`GyKD&=<~s2~rt^=oN0dT#F{`z7pG=dwEj+ zal~+BUBGW)3Dqel@T`9cPnB%r7RQ`?pS`zc{tsRoxw=T+3cW)FlyjvPTbiw@DohGn ziNwnOL@qby=CUAQX3Ulsvu`Rx)lOLXVB+4!^U!nM>_KmDzkdKvb#k?T?Dn2>|8ld{FyLh4JVWxo%17b?I%)8l8o#@MBxG)l|ASCowWQqZZV{2GJ- zga9$pzCTAzUU&C2%)=$ z(DJIviQszDHS+PpRk*fYr#w9>>?#T!pR=pSjuzCYh;CATop8fD6!k4rDv9_(M~K+{ z+*Dh1MUaM>ilktZJclb2d&#s~)0P=g%wr)%r_>86JsBNIVXp7O!TlbDWE5sI34l{| zb1_pJacm3|v;4L2is&rSdQa+gW6phno5j;b z@QS0E{F}V-lMRC+Vd!w1vC!>F=qlqH+_e}dQ7j4F-ddqMTu2BRN2q|?<)pBNmGu9H$VU0J9Ub8 zbsW|CJ^Ld2-}%p88!azgkFFkJ@182~5A4NH)VX;P9ZJrjVyc`c=e&DQ(bGfG>lX9g zLnn*=BxC6}8H*iIR_~rdWz?!qOjxwRY-%13JUMJM&?#xMfFb0PAI`Ct`yTr2ZKKe8rd>?`H8AUBkoI?80%ls#&)>=mHWMmsbNB3o3$C0R*4THL}6Mj zcOJHLGvLgwSJ>V9hune5GCy&Xg!^pdjZ0~~Q^8k4i|~Ei0v|vhLD)dM`?ZxbVkL#x zY};PQSJr(;NH8>v;_4lF3&nOQ3=khTml4Y0_DDt(8iwh3>W0U4N|ODkK3BoCzgp0K6tG#<)m99a0>bH5|5R{q-${g(~pz5G#N zVWTyprK?+Z^*>zkd?N(UAl&qxypexV)dhiGgG=onGD6T7gr14APx=AqQj{Qr{WlGs znPqRZblZ)l+d?I=MkN1=mVEOcSh2LQ77yTMX&g>qECR__z6agB&s{J{%dX%wrQ0= zu${&e??Z@5_5;fy<8h~4#R`-XQ;+i_6k!+4Ik%@z5AuR|<1jjf%5mtsgf%MZ zsw&>4M6FV#v|&rxTE$f(zpp%E+21JL1^#FLda|rU2o}ud3k|R<(Jj`mSQ5t%mOqq7UO<`R$9wccFX#gP z7@)*MMlhsDiFn9kvfo38y|v!>LrPVfjIPUwS}E zQlN^#5^xgTq-JteJyE;MP=OK4j`Ov>i0qA+Fx%JkVpK!ko3$CJX2w7zhv^8PxePCx zk%q%G9o$UM*Cr!UlMZB~d?*H^o2AK!sKd(FzcIbW5b5m=p+2l1twCe zuj9M7jRmNppIZXjL~E_ET5!BMHp514Ag|{9PH1k3`UvI=O{0RR#K8R={%nM!iF^j# zLWND43+nS2A2t^QI}`&j|VR_YY zHnq!-(428|?AP)^h|hSVk5k?#YqG1q2^1p^C@^Zds0F$D9)SP@Lv5?Nni*V}HK}H5 zZ#n@8&2^HfVYg}pc3%EaC=#62q+-er^JENjQbW-~tPzw1WttiQXhf+^3ZAx^t2{iN z!DkbnyCiO>p1XMDUn$#3o^MN8mAEiU#p~v>Ox>aY&@B(Rq&FBadpj{e-dVb|79eDk z76E=8)pM-iXH2gFJq6|InJETlbX z-Bd7y(On#XMD!JZ90SlRQXq6(NaRz4KMeppqd+qNw2hexXgmsa+u+a!%cr1j>&ICj z5c8$({MFyFO+r?~h|0o%+oq|P!IihP-peJV6SBE%j@FjwMD$wIiRiU4Pc#H)mqscj z;ISsOOjuV;w?V8LK~1a^9NY#Ewj^Pn#UJD;i)y0Up6b+U6A9F6BXS8PW@U?}8U!BU zkbU{ARgR?NGhHoE&wt9k#$7oq))+B=kb33l6OgdXNsdWQmdF1LA=V=RC_!|PdzgjSz?u>Nq8R+pqGnP!awYC719goAqObyCLFg+Jl%n(;&L<5l?+qSEUytJ8mu)9)q_jR#jpbH`B=MT!-sTUu zm)gf$a@n?5Li@OH=vD5UMB1M!o<=f6){f=gFVsc{+OMyo?=W8q) z#SKWNV84mp%C*H&K6MK?$?UAE@_M(vI|3%8%@xRV3pg2g6=@P7Xo+h`u(Nfr2sJFI zy1HZYYWZvf1T`b!^A`U&$aU~}>m)vD`pV=sZV8`l;nN6Jt^va)QiKJ)9{3u;?I(xn zhC7qDCaR@?uTo{-RVB2H%I(>ME%ZG92NktTofi%8dZMG@wNZ59vm+^jo_Vw*xh>=% zU6K5FXR($0xT~+r_2tC!KUcKRzU5mjHRW^n=z%@&8xf47<^ZHdOR-c+L5ds?XJbn! zXk5tQN%5`-mT_bhqHQ~?K--TwX?XLbKYVl3A5IL-;xrhy5seN`@B3x@-*@z0-acJy z$v5X)Ucb0bBS|>TOfmv9=y(wUTmGX|8b|YzV5dQ4i)1~qw)7uiAv5xhkLK|}j>v5a z`6e689u!3eFIR{qp(3po)ks&UDdP)e*X;Zh*rAA+$iS8f$*xz)^UU;fPm- z36`ZW<_!_8lHc^{vQf;c3em}u_gbJ-W> z@urYprn?dU`igg%A*j7Ha0I|WNBoBid}d`d<9-D}!!fupB0J1{Y63w6JjBjMQK}Vc zzHFL5JYqd-FDiIm!2LwG9Ak4D+)RO+eIla>#NGG$d`mbt{cC&f%QwIN=yX>mo`KY; z9B*9^A&0M}n=eA$-of zR`%aW-j8V_$cO;)l&3lh$x=cYV2_HJ@ofGhEy!@8-%Vbn{Nws~*!;GZFF$oj|$H|cDwl>UZK9=>t!_3GM zWaB)mmfk;G{_wub-u?8=55DlRJ@@T9^7H*~eE3b@-g7eWcm(;UuLiCtquKkc!&J=0 z47D!Qzk#5YP@wWM8g4_7=luA`_CI99I@zeANMGJ+0QDO3AStT=2xo|>EW&AKwO9NjJOmP0eN%k(yNO>fSH=qF3ZddeHSUdjv+rYa9 zEzcxnwl$0yTlGaiS6`^Yab;w4XWa&JO!cSVK;92_LnqJjVZH&sEa{z`Wly^291DRq zlQPZ+JEON|k1D;%Dm!TXtsS>hQNAF~IHn@Nqm#y}izmot=@&OvI+~kOM_L%K(%tgJo!@+`TG`@QrML;R2F^i}J(%U3^4r zc|XN{cw;C*$Cjs6?#3{9Ed51HHJVfNAbu35z}#B4=E^?6plSZ>U%Y+3V=fJEHOweH6YQ z4c?rjcgAlMI}=Up1G`QgKfQcMawZnC#li(fk(lz2ljFE^q8F#PTG8rA6T?*lZ;^)s z^m;;D{NnUn^3J^|LAoe`W~>b$s=dJsYaG!9;ZT|JRt$C;F`4u3dH*4QRQ4akMy`jO zru>s1_WdbeZ;|QCz?E~=WzZmJwFEn;r_7a$=qgLWTv^cA$*Ic=IDxb{4MQE0njI57r$cn#!6j zG(Pt3cneL{uzbt~8NKv{%p8>4C$`W$cOM~pbqoXbA=-iVai#%;<`x=YB}h6P#hKgL zzn(`3mebIbJl!SL1xq+Li*Y1-qz#oR2oIVCC4(0x7oa$7&tNEw2H_c1RRm%Ztt{2n zVOik8kTAAsZa5=SRBlBVG&ZI8o9G=3{x){HGCVbjXv-)P$QSIi0nt()TJqHb>EOoeg-h>umIiY^b#4A45Xo{)s6^PKrA1-K$eggiA3a=N7*H6vAbz?q5oV&qJ!GiTefSs~dKcg8Yd^@yj_L<{5s*Jcxu zF>gdTzsLn%T_IiVRMETVYLdW-53(tUWP?+=E|9ISrxyGj3cBmpu;}X@-CyE9L8I{t zTNotOAKZrmt__l4yiVxPaZU2m6sxj(%+>8_vO2j+81>i+zO@bRW6|0)((G8H#vsuu zj4b6wMCVicqNgiyaY+@!nh^=IDnL7;Pjn|@y*G_ykymsQV)oUktZBX{xnlsS0qt@ph$NW4qF^qtcneOk}fb3xElkZ%-vXRDWnnanWh62|QXy3#K4P$udxi z$_?lViPY);9fx2>eN=u3{>3a$nwBlCh&5t542muUCjEdNgb`fOFVIfsSTUFL&eDqB zj8NcUkt{b<`W4(iGiAD;eq$5*5y~1ekDg|2y%j_Ck@vLW)%s?XSPs>5^{{VnV-d*uS$hJ%-b_FO> zAUtrr+7bXQGqIdapUQ2qo6aH|U_MQxUmH|(j3p}ZLH{_w2f5p~7%7<=;6o9U;g;b5xv;GL zQhe^CORSYElV9-H_lpJ9aR9MP10hUKI|YCj{Ejcuz{g03gNO#)w!D>NaPr|%ya?k5 zfD;5leJ@@`*AU*r<|%l#o_q7LQc^j3bD17ltllP!?KA~+l?_)>+q5Sz?5N*FiUKYC4Sj~W! z=TGIBxvy3D_4K8IOo7*0sQ?u8r$!EL~FtCdcK!sC}^BIJ1e)7slhv ze4I46{y4*<7mjmFW1QaguowJ?-8h=L5CcIa=k}woZJ(JS>uW=4L&qX z=PA5s!IJaH8dG3!OO@zVik2Xg{M)E6LKR_%2S=_y!|M1~vAPaSL&OD*G1@JNXX0?8 zfdWN?HnGI=mM=f?W)uk+h1gt0C;YbisOwre67Co4p)nBo=jm@j{n@-25!~9?9;%h8 zQ$Dn=hK8GmEOSi*olcCmB_;(gm4CkV9RB&XSc*-_r5>ffwMW!{s8oYZ$d&|LWzF2{ zxe|?I302V0Y%6g1jY%*djXI}Cn;rN_q#|P$oA-VB5&iEOLOxp>p(1HXTRw(HnCOK0 zi#iY)+KK8Asm;L^_h&r2wE=CO-P(jB8}WIzma&(7 zcDnKGUp+^=GXNW1LiL@iq5R-EUP%;exM?Kyv!a3@^2(*cigS7;j~7Q95!6HjT@^rG zG4QwYjV6MG-PqT&6S3TUlz0NgXhGbH6@}^D4t`_3*!<_1?nZH(Or@>1a@t^md`$B} zc72x*FgC*nUfYBZ2x5*82qGQvr^jh&c?8(;btAMhZDSEHS|mneh|lzshzq*~Prv@U zqepQYqR-p}>l;qD)f%Nq+1KOCgZd1IPod|Z*u$S_&$VBEr=zT)RA+ULfdxJy&il4JUV3tUb zKId1YYHN9@XvV_IXaPXm0>VTn&nwN6T)9RxCj*tFwcYMBmB+>fS6!ut~^PLxdecn}U^nJ0MHOzAei{v2XhT zsOY3)kB6P_d>qil-riFz=98VPAOQN|@-4iD!|N9W5XF8xP<%0#zB1ChsB_Q=r>zk|E??PE?MZ*V!52iM&TSrloWi#WX{Ih6vCQaf< ziIU|WIjb;IVA$f>QTfdXFN>KiF~62qiCz*OvF|JPz1bd5pl8lZ(OA2c3~-^buC7ep zpf^hLgZv9#T>nCjkbl7_^e_0q^hMoP1EDaRl!fuXW+zFjPic8>$%zi1%lGsMs|5s$M>7s5Y<(pwCE9LH^_K?QKh^Ue>lg3e7LP&V_ zo;0sPXb8ZJVV67Xcox*YVeq%p=@KrX>V%kiSnj;;5K+b72MaY;!iDw1#6&zSOf0Tk z(ET_X=!Jo*a4&ijCY?6ZVMYgQABU)!b*;&Ngmz;=V-=&c;3hmfUgN zz!qKRe0c%J-p1VK)1q>$M3#Yx3w#|ON-XG=Is!LLrxbvMbYY(h`9c{JxXA4SGUc-T zGP^J;?<}8!OYBJARP1^Qr&ZK8x8g3ucjZ?l)t5?#qEaVBC&cdc0O~8D8UX^-yqq4UBG>Zw@ROJ!!L+_-3^diKT>KE)`+I z$hH1SztZqFpR0tG znRpNV?tFb*2-?QIfW%lq@rDf~<&ml)2rJkuEUHE?`PQsQwo>WE{>RA# z&Q;4m$Y_ZH4DxLlPj0_vv|nA4VnY)d9M~^ehDgU8xdSzM`{)IbhaL&P@+}NND8E6Y zfFu$UV3A(mAcUNjFUY=*%o*lOE2E|Sg)5^Mg0!tGqpb`e7f}lkD2h;;Kw0+eT8V${ z4fFzEWAW{bUayEejWvEuGe9|j!xO*Me8PUzQg+kIXp@onCSP7o92I4-XtmLqX9h|W zLT`MdhEVf1z+r07=pVsm7b}%UNf?p+4^1b0dv?#sPurvFfTS2(&1A~-SIZr*;?SJk zzzheeDyL~}OUYYBO7?t1dN*In7Y<8Di{RX^z|^z_U=EEiZm5l8hF7bR^Crtj@tvA- zeQK-@8vz-GiIgGwdSRJZH3QylW_+NcH8MV4)KJl6)xYRtQgXEn@t}^4bSZY@w?;2w zxP$$uXBE|av1Fjc29K$&6dJpdTdK!cZByh(CtRcfG6%gY$|Y(7c{SK* zHIKLt|D|M^KdNLaZ-Nhai=v9WvQT8AoZcvcZ5R%Yocc+k@7lx4t-*^~F zC3O&jO&j?=ziAnNf6i1GqiU-%0?1@E5J8ebI0`b>fx5O^Qins+DUIWJ|9{M zHz;+f8|5F#+KS5GB_fpY`BVCNL}okRvz6-IbCd7Bq`vVO&f~-em%=T}zhh9m_;`3c zwE;sg<2lTj(NN~<9oo6ZCisU4Wqun2dOP;MH+YOn0cfpxT5HEa4F`^c4{S~6P>hqe zv5HZki=mtmRleUPQYH~_b;@K&n8ZYbDTUNXzPs{?{xhiyqqnGp+E9A;5WRwBOKzYf z=A>q9`Ir~ij3s(Nb-XKjnW#d^ME$*S_9g20LUjGTC%XFHTXaoA7P7AQ(1Eq`Nb9(_ zeH{)Jf`|9EEuO<8xJuy8i;+7BWjUnG`pVZNLD82wG*I5+|mxQRi}UP6Zj+6=W{(8B$yWZlsvN0y^cH z`v|h3>&R!ICc)TC(C1B{)3#|ZxpHIeMRWkm6qs9qKfx39Y2nXa$?*$h-7s++0R~+* zynz(b9kysQm2ZfLxu-1~Ty!Fj=Wajen+P(o!rVo@B%?ITtBIdEU* z4Q*N)Uw!|IYofQB;Yf;Z$Ol$ieb6*ZYxE61um&{k^%^Vt0aAukM`<-rGD@jGCx#cN zX&S=>XW@q>rNyCUDi~@Yb=w+<8sooN5#SsnAQdWtW-$m?u~D(^unRGMMl+DuOuktb zo`h#%D(Azt{R(Z`M#8QZAmYpz8dBCV+pYD+d@zOi9qc3qIbqF!ro8-oo}Q;ipvc|qFo3{*LjM4@)FgXn8Ypr&l1?vN zROrD1wIMUzsttB2Y5 zW4o#5BP(reeLo*0_k#6}Ase~`>U4(|IJT^3rT;AC8a7T6GsBgxa2u2k<}kEn%CcXj zYJy~jGI(Jc@brqW&DZ;yI%|Or-@pz)rnr{lq9G#VGl;%l{@i|r1%g#=jChkQi3rP5 z1UP*LmfXSGhU%xCoN$o`u+)T98-td;T~UOiqT03K11((QG8gfI{sbTBkNH4K*ZnhQ zS3+JxTzWnrO!+f597nphiTdZO8y|{Zti(EJ1hjXAQEDkxL7O@c^0$nyC=1Rd)Qs@_pIw zwC*Exce2>lFn<~3wvT~RCOAymZktv=Wm1c+{o2z{$Sx2Na=dUFR!}Y|I4y4=7RV03 z!=D309EzyyA0`;U&#U!kpRSP_ei)MA=WhLZg|78=4MS%~@-qD-T67p;g@2aqGXfH$>AE^h<~fE> zxjXwKZF-P*zKDSAx4x{*FKZ+FL-0!i+T%n15Dkj=3R~IZgq8S72#yU^h#G3sfFz7dx} zM=pcN{&!w3gG;=1QI~;ezUFO{TUgdz2w~HQD&*okpemFFF*`8OPWkfHvLjDU2UAC@ zOV&cKyzEsjSHn77RFKa7SjKH?DaR6<7|g>AD=>_8N1`P;6VcLC32H2Bf1RqDT~*aI zcf|d_+1P%6HstJon5YZq9giIpmfV|rj&EIDk<{XnKpAG5Cl`Cpp=$Ro$PTz5xwvDi zqfRdFLG&TH*k;1K*jPc*Q_WsjV%D+BD8LddF_@e`<|S{35_!}WyjBj5p+1J}30@(u zxZ}CT_*6h7Bq^2B?c-l=* z-d!enx2=@jnLk)Nw|cAVLq&9Z5Ak>GY@y1Nu3)Dg@=J*)~fbST8VEY zKFOC{;M^7^E_2l!Kvd)D$dW_lZh9sbxDY%O;)F0UJVcWTxOAWxXt*IxET{F$2zc9u zKDZe+G^|z((~@w}wMP*^i}D$CRQl8ql^2}hzlo~uE|G3KyH2{T^1iVflx~X$=Kr^J zTP+Yk^rHPu@5v|Kd-9bS9Ju%7y-!!(6RCQ@9C2HD8pyWQMZ1w`b4VIlM6z;yY<;DY zybzWntCTf%lW;@6j%D4z$Qa)kJ4?ci%2_h^O7n`~EHPm@e#872^ikiCgXWr1ga|ih zeJpnm+d1DcNaj7KJ6|pO+n=A4LP`ni%G8;&DE~4i5I@*CwbM|phuTq5YdUC+lTHgi zu8EMR9N)60@L`b5UoNbail`BB`9g=-#03_+$Lb)tj_*bQE9<#5WR{H?^_Vx7X0OG_ z7xZ<^vaOf|sPminNYUyc=Yi|+kaUb(8%U48lL^5JNbYexUb~U%a2(#33-$OR8mQ^Z z7d6(<<56sg{e`KEl&*vPT%EUrC&J!OiBAirq2{9Dh9&H_8ftv8QGmmQUcp+y*u*#_ zVW%1ZX#;>Bf6!Q~$HN(MUz6}LZZVzS>?Z}^8N|=+ADMZAMCNtV(Y3*vsq(L1>EeoT z4f4(6By*0kAK?Pj2@kkjaQ;edH}t^s408FR3`1m`fo6*-*rdad^guhCq>?5ee`s<} z4&+)*wpsD+nF_1W{O)_kB~!EG{-OF>&nZ2{dYT z?vt>Mu^nm2Fl>a*fiMXpdK^Cz-B5!i==e-5{R5O~c4nMQ4>!i({=!!t^_rd$z|q^7 zg4V>Wya!WsHD5C} z#)34=&A8iml|V8h_>pc-=s3ELubCj-rVxy>fE7=sEZgIa$WKt%LV(8eea2y-lf}}c zI=$2g*946%TSsHN#9J5D*o?WrP9iJA^RsDhCK75>Mf8N<#5B1+H6SkM*+yAd;FVA`8%P3WS%FKvUg zc$N)AGQq=RNy@t#fKqT@Dz{(AaFugk#K*tN_-eD}Wj{!W=81mj`SB3NK;Qu@qhu)9 z!;6uH@c~(kq)1E7R7ypj95SV_gu;0N7^M_gQU06w2JrGkFg0xmYdON&VJ*}2ux}6%g|zdld3ic0)#IAO#xmk z6~;PMvN=E+CfPKKxIFMg!d^ygFq2^m2FI5N7>>mFWDeODR(6^&7ZAixm;}3p^6pV~ z?M&{#BukGI%TP#)w7K6f4bxU@Yn!p%fw)GS+Rb^_ZnlM$9taQ^Z@C_553fJ!76W|0 z-sj6~PX2EV%i!a|GI&QPZByl_$_J7{0Xb8HJo|bZM~=z&p>bcRk2_)an3)DB=W=3L z<_D|kn&=wASzDnJ2o{nZD81j{91598Ikz-Z&(4NSNQpDG9h?GToZLlqHG!r73nJ)KP0p&+O;woiGB17MGUjOSeLn-eg?}0m?KV3{EDT zu9Vza(nqQ72jq+iwsw$9!>a2+Sjxv$yq+hAm~E!7GZeZCW*eSXEH=~TD3b?nU3p-s z;uhM*Tx?y$&E3mTw)KWtXIVc08zPw4AvpsbQGb_I9ZkS(H)8T;y8#Se?+WqQN)~B| zy@`$TB3$cvZk7yDZf%y7kpzHb{P4eDhM_~nG2H19xKk0mI03@yhHqPR&Xj%2u0k%_ zx9(L*7ul^BKK{I482oyiP;0@Wq}0;*wBkIPTP3;+bjnE6rMN^&L3^PnUb2|G9B z$=)-Og)CXcyn@Zbs$Mev5sTaES<3RW#}3jghcaNUjUQbYKWb)NviC&tPF1bTuRp42 zbUL^e>VxoYM8qkro2E)f+(LyB?fM$6ZUL5IdIg6y*nPYJ95wr9#D#?9yXMl2A`_Nh ze+gsJc>Ge{7jZAJjBT2g?(d{%X_Zyy(xkB|r2n$g`Cglilcu7KLcBQU>UNVwZZzdJ zS##@|e}3OFC1h*`S~rV8u1I!26u9&c_OLM(2$vuD#CNRRka3LqSI#>pPIOcRtbt;A z=qN`--5s%)G3xy~-ahEM=K*Dl#HNx=Vc)93r?Nm;dFWBA1jROad{EMUl?1(UDyRht z>EmIxmINkVhY4rJ;!La%|Age|L~MMv3KG_(iI`zeYO57(HUU%*DIeMvwF_TrCV@6g zg$`*w@caf(WDN9;-O5uIhC=IUD4}_i|ZYTWo+(RdZ_rI zq?$+x{3s>Pn3+QnfyQeGU#-O|wqzQFTo85YoVW}FCT(+C#_=?>))++_ke3n4JGE+I zpUNMS@koC17F6!>CH=yMo^M>i=r*+?fBH%G`@wPg$$b+>+ zEuR$+xDjl>k-!uli)IhCB_>?i%e1Cf2wm{4|C;Hx>5~ zoz>Sq6s~bLK+twIknz9De(w>K*%{I0&Ir?qzpa%rJ)|!f>N_L!mL8c7cacuof8$J_ zp=dwbRJUhDZ_DS8Lr=pY@ChUOMz}T@TAsK)_q*X*UjPozJrJ(-!~nvzuY_w|1wX^J z&xUJLiW-J%zZtGIA@QHXwI(D!7On{r)w>_@Ya|PCQCP}ZaYAmx(F1kYCVHdW^PxFY z1LrHv{$i=QAptjCO9CQ*h!epukU_i79w_0Yk_{Y_H3I(@aYQjwipE8q3(ioQxwvND zqA+dD=hlgH)q81GbP@-|3>=*yOK`+Dv z{;-tQJa#7ah+IeJOsbcxEcT1JK-PhPmgyLAp1I;0p<(?Hj9Sc9GS3R3)$L3}57Oso#}3PeQsjM<;!jB&!mDy~2WTe2I}!k@q5HoJ zALy{_Z?`frBdu`hz^F#bOT=)km68mLv`uBm8yidJx+%T6v5dCUun z(H=rB;4{rs&wY#%K(a&F*!JNhl;t>-jxo=faG@i1~r&^bY!_Nm&BY6ERko9Tuvr#>Us)-_6-4+FBTklN%c zwjm0|T5uSo!tS&NuIEwd1OeXYV>)}`9fCcYyV5Gi4}lc;ufKZ3A}h-_m-cVxr*5f6 zftttX@LDg&X^}k9o=)M2Pkm_+V@3K|a_a zd4Lc0N8TdDnTKIo_GXN}jnBqUFJK)FE7wAiDvA8Uy`p$TD^(6{8DJm7AteRey|K>( z@8fUIsI2-Ov1GtGC=8DysMib%D{RTPq3rX7#m5Ifv%)UmHbq0%glAVd;SmCg@vW-@ zWE-+TK9Cze&B$0fT+r^Nl#*tw)tOX#92DrrdYLKh(8MKHr}XjE^Z;y`0|auFom<}( zJkMU8gE4&MNU;YC8)j|+0?WAx4j@OPdxX92t@y zqF6w|SitucN!RN2mlqv}Vp|~{L^>9phixu+BTDsJ0_P`m6V1t_u+=zB0`D!gaZpS!ax-0|Ia; zezH>x=nA^xd7MNn`K3Z{o5!g{S>Z{=0$O;96?kfApX%6gYZBoKk26{@#iEjUTPnJ= z*427v;B%}~@F^0&DH+Mg(^p(tTdd-3^W-F4cqyCPs^Ung;LZ}f zg)9I*4i@1gw}FCweYv2w2Vjg65sy?W{PL2*u;>CEMe5H!=Fz#%R;lXa|LYUZTFiOw z)TxS)`y>wAQb{?p1EC=p0my>MX%vJFEYR)+dgws`$6nZM8%_%)E+MJvvw|DLhk5X@ zDFxZP=NTB>Q)dUzh0!+c6OK&T=x_KE7)1>;xS<&ik82MFP1>SB9kJ#tJg(de(jepP z%si7sCy~PkV%w2yzcP8)_}0Nutky&(!ib**q@znHtbjT%cr43XZ{LuNP@@6}ev*l= zSp&K#925k$j|jYBR83MLgbjYYjyPxbQxXNY>aU0j7Qd>z4k$Ym4bnQ}S}jfLq<3Qt zfX$9X84Mmv;;yM|oJU6mXaI!B|J=MgIueu#>I2J5%$ZPN**tb_9aAXSb+Y^AZw7*A zwE2lEkKescM|eKv;6a}Zwn z1SFVb|9%0R@1qO&KC}O4o5M}Z<@|PGzzkljooEpSMm_;JnQG%%?`3Z zZ$*RbDgOMYSebiK_Qkk}S#FR1&lV_#0}cR_sH`Hj$2a0XBrf*ucuZ z*jYWP$WkPN;m>UBIUG}30chNOHcs@>Q_vAmU}*d;uMX!&zt$ky0H!@Oig{Q-70B## zGuB8!?*=lhGP8fw=c?|YMfn|mD8L_qbWT9{ZabNwHV{hU37H`*1elqQXadyLsZq!b z%tlm5_(2fgt@1>2L*7y3T~?24M|gKBvK;gxLL^Yjl2?j|Y%J9DLAark#N~s3El`!` z^ueJJM1%3ub|HJMUA9H#go-x6?&Yh!qx_$^MRMq3F)xOR;AAtASh3ImB1pJVA}4Z# zRi(#}+N5MMR*Zn@{e)V1SPBQw*%duSiJ2If`DlcQ!|d))Nq1#!aG;H|WH&BDRzZwb z0f|~X5))QITibq^D8y>iE4z+fVWvZ6TT1@m|kX? z%d{(y48}gW8`!6PGxn(kL`ymd3Rn@rH?ql$D_(H$6R+Js6mOOtC{peSjiZ;_S?eq% zwj>KIHb^O)J-&hTUw}|yRh;`&J_+H2B&!07-=1h1OFKSw?YT!D`T4tbEAJl42ZvWr zT}x@UJyhS?IIe57u~F9u(`O8CmJ3kUR{eeSgr)#9*-vLWLTYRY$p}JyqjZ^;ikWW` zBQ-u)DhM}~QU)`II-4I8#!_@!z*PsqNENq*z&}r7Hl8kD_>bA z^`~QK-^$((o_XO7(^Ifr90Z5N4%3nlt`4Y31eQkjebJgsgJ?C1?Zmh zMX09nV(kZg?jF$u?Zw9E1t1NgaY?z4YcBOKyrhs3Pm$^<%dvjnU*z84M&QhCWwMv{ zBsfg4nU0fT9-X@9AsOEH?ThSx|BSSebP`_a$8f!z;D2u!d;oFsR=}HFtA~HFMbavX zbi&v1mDBL-%5VMbo;-QzL-)~op4|P=$-$)nQpBeVl$ld`I^OR<6*qD{!jPy+!2=k< zs_1qBO6sxQC2tmt6Ax>$J%SIhhRLtc2Zubmt`G-VM$`);L;{dg&wYx=LaDGG*WJ)+ zzDwGM%tYO^i_DP-+tVAQOm%5R=j!S!EP@qd8ddfTTj#Rx5$jJZdu#AN#_=7t7Eym< z&k3@h*M8vrTlXlZ?WuHeq#zBnYv(xP73M6b;DPsK%McM9)?=9;N*02D&^Uu=uyY-^ zi`G*~UUNOec_NErY%o5msBB+H2r0e%Q~j2w3{(kWLnLo|avS{G3;`5m%xOd#AUlg~ zXqk}na4y^c!H!T0baO|%?@HW}+%}mppkM&0-58s&GDYLt?0RXHDRGDxz*Vz!%LG@0)<{g%B9SYh4FHc*LEP$F!_Wf48HORCbAM;s7z|fb@J$ zu~7y9G2*-`yVPg+-mjmbqX_tI6!#bh&ZpsYJfsN}VT7W`+q5axrr}V^lvjb&RfQqp zH~7{z3wtB0$Y1v)QpGTSgUFYRfnzyo&S(Xj(XLjJhsuejgIxW3+JSYB%_QMw=&8m$ zZb_y_coiNY4Fsji=$9{IFyw3r096Y51}!NTEHuW}aa@WQZ(2IdWYf>t(nSadm@pa^ zCK&+Z!-Q-I8py+#`Wlv#L7&K4b;uAd0vvD3IglS}PH+x8oJFy@)?ETx#Z*1(-H=c% zGjU|>D2{sa=@vY%-m0#I%v6nNy)|kF>AH%bu>V#OiB5=6&T0G9Jvh%S=^O3YVs3;& zTd&o^daY4_Z`7+L{y2d7MFN;UAPj>`=Za5k?nBmHGVFO87oHUZitK;SV`m?{K%4*` zFcH9od|{a(kOxf9m@N?9FzUg#9Do-<%GJ(5c(RDy!2emppu;MIu!Z0sd@A-}3$;x` z{p*Mv7ph-_6!cpChs?pN269!CQw-s9*+Iz71Bi7!#f~ua=SOh0p3~;^G(3!&Za>AL(eI!S?TAyXiXr<3ff^V^in(Y!n*3r6?8 z#yu01S82y%;}Q8ovPW@A=+TjY5Ge>Mmwr93G|cOMO{E>?bu!G09DhwqIsWve7@f_D zUi`Ja`FlQ!O1W2RbS|697rE} zzbo{vU6=F@UPT@P2b<9WDe+MGEm6DGu2gMl3!E?kJ>k_8r_EC+5Vx(gAuP64jwgrH(DX8UzeO|%g@Ch-w9B|XN@7V9SAeFS5|mQ6uioi-<> zq|jpSs?*w7oOWWT9aKLi zEm4oJL1&h zs##{k9kN_2xV^={cg05D#CN7~H6Q%av59@Gav;|gkv zua?kl-r^2#F{dGb&=n9;0Rh4oqk)j#M-}~JjwtGKn%LUqdq6`!w{za9b*%NkqBz=^ zB6>Z`pq}DPH6SL!nQ5ACS8G9`TP{(xEaz87Pnx0_n3&3prpR&i^%VJDO_6PQj1`O< zjF!Ef{r*85On`&BSvMpS)10-1V+s~Q2+~Ph8m9alC(LCX3Ef&1#wY^26d#3CYON?m zKRH&u

lY7i{_4|5V2k@}MY1H;DK%0f4Cf#DD!YhG4A>M&d_wf=;9rB-!Td<*M|@ z+H+H3=~?|?{Er9maSp;9iPrExn-IarZU@?Q+hHaD|{}vEqW9cy^=NNFB=2%XKv0%TMkT|2U5Y^!C8UFSl zC_+*oQ=`EJW~!^RINO(MqF2{B#|zEVhDw~yq>0QeVmacPf?3gdCE&+(qNe(E*C~2| z`Q6(b(p_OlZ}Abm$(E~-U;fybJl6SFL}RjWt^pMb>c+_+wP*DMD!$c6d5}>)ZlhGV&{ZH~>7oh*R~Q=WN4<;3 zRM(y7>$+;6I|>FeG{6!I>#=!8C>F>HK)vL*Zt3L_7F0N1v8`io+3>N-Bb`-by}yj7 z_bWQ0S4x6(CF7)~qw0ESL^ry`YTC>>4JZ-;RtxN`;l@$Lyw3#e+#5*nt{7esme{>U ziFb`Dv1(8BQ?>V?8i1ID{|cB7ght;J8a=^h`5tQx?iJ`ql-Z$5nBf_cG%z|iO{D31 z%dWFW3)%_@C*lamO+PYq`hisH^#77_vS(dIu#Nk~z)MQnqXhBH;K#X*wjv7c3eE5d zeea2@v&iHP$bEvE#4twL?Wau5hA%JT5;1^3|T4;4T0rAa&)DRx$cnzjX<cE~x9cT0jEp(c+K;XlJ7C$pB7>J2a*Mzs9 z??wxB3`o_nFu<>fKA{E1SWg#>Dpcaj^Jkz1%W)yey%RK*DIKyI7UxN5L0hm5ciK*A zV3FGtVV>m)QGx1qA1K4f&wH4 zUxkHyQUV)|H^6LD*O&&Qq)Y~Y%Fqgxta(V@6Ld7_r#<*kE9s9JeoBxb*6A?ge{^AP zm6=Yv9W~q_7HW~OvUyBv9-u%xXhy4%aHK>5=hlNa6ku?c)@%TmgW-&i#?Wl>k2&L{ zuoBy}TE8Y%`2&}ik&Eb;Hw0k~!nE}4j;F);Z8=1g1U|m43=H#xSUkU_g@JPfPlyFe zBA6T8RWo4yTk8BnfK~sZYX(wGaVq*WE$2ZvD9yN#~ z-5cLg4ELu09dk(cp6K4OH@St9OysipKQ3mkm9tR5+MD0ZpEJ?Ty`4Y&#SMv$IHd zO1zilb}n_e)bkgv1wtU+z3SiuIzxIou15*mSRLkc<4D?vy0a=!|#s8E6lNXXq)6 z&q>jqtw1<}e-!f>#k_!q?b;wZl~f(_HHpxf(^e1i)$@EszTxQ@xUcPEs&0QIde;5C zP5(-gMU>$Kw$AgI&*MZ)=uOH<6grC5?L~=sMvb0~{o`gShzCP8`_HF#jHn<-l?RK! zwiG04m4L9cO#=cP|FsNw=r8HFzyaH%i|?;@J;= z=LHN)_6-Mer+8@*ru^`bp_K$Clf;4($b6ff^zAX|7#8T)fwVb(gqw;!9zNDB>8Fd@ zGulW)u>dAr6Y3Zrn$+~F(temHyr$YTkqUk+FdTI>$Z4wzV}}GAMzAAUW-_GLTka(t zBJ@_2lM<$5%toS6!wG|dK(MPg%H2+l8GH*FqnLMyLogG=Xipeb)QSe> zZxbqsK6Z1Ri@E28|2%9_j4hOED3`?4?6IL28$S>^SrkeP8?>)MqIXl52tl)p`b8Kvm}Nn1YyW{d~)Myu~YmgYDj*Q z!Z4aks1*|C($idG^AIu@zygUHXJs0_Fb&2|qRsjzR@8$|0jt1u!N8e~RN(@R$OmpG zR+KUM3H`w@qlkB>a>7Y6?#rih2r8?3Bo1@(t@3Cqb|tHs3EL}#Mi zs+=!XXVMqHDuCNnO`yICnEa|ji%1d)CR1gi`XXq1 zY7+>QMx1ypeX+&iVUj8pph^Pukz|XGoJeJ`(pN${?*tk{?J$kDk-nMSP>>!fQ4#CN zcoq!4+sbHaD}mliQVTYmXw1Ou^kU_L)Bv&p5j9itKC%~RVvZ;^Q%U$ydBRMw6s$I+ zq^g2J$;ip_+(|o2<-6Tvn$npNw|h;2OLk(Owa*_KS7r(9oX>}2EwHFCAdsUhx1WCZ z8C+fLgzpziV^Wf!l_sGp_6@DV%*kd_%V%R(O&_LQ2(amZG*mjUUB)mos{l__0^bCC z3oJ=VURHJs+4i6^)>ci3L>pZ=uuq9<+RnmZ1vcoFLdngz=WQySC`Jd;)Jkm?L}k_n z7@g?w99c_MrTTHYlEx-;%T%{wPANj#J1~dlS;;QGQd|YLto~($0eIV5-8utvDms*% z(q$P|d^cL>Yp<~C!5l4b@=WW2%pC||SHxag#yc1=RYN0u6uRdBR*D?{t55_92AA(w zldn1g8O(;1>d66ELP)_0(_sJ*p$cUaPii>^tOs+<*FDSJqt)y4-cb!m)s zw^WkgvUfjy^MfyZjMKu7{Cxi#AAZxf_nh1p+5b4L_tO+7(3&TYr$)7vl<~6I+U!4b zD&J6T_V@RYh94?6P3E0$YUJtSLdGUNGGhKXnmW~Blp1=8w}5HHo+*$b6c}Crr!b@Q zv}P5tFq+ZdiIgHyUws@|4F_9}^(wMd+ODE>Xlz;)G^&jUSnq+@;26}vBo7Mx@wNh0 z5Y%}r!ThA0o+n&RB&$)cqN|cEnSt)kx~VFIOy>`11D*C#Ef8#BXJ<~*)eMJX*s&C_ zj=WbVWMNupC0;lgP59xM+Aa)Wyl@~!_J65vI*1>76uSYThj}R^eO=fh?+QGRw|#>) z2ZBjrU>`$farTb+0&&DbMp*4go=ml|KxEF%F>2yGHq;bpnXtcAPrGE`saAQJ^6@by z;x`|i>84RDX|-B026ZHXw8Kjk$DYTwF#-{Lb4>$`5_66(z83^>$(uf%+SfBA4hiu}(GQM#o`lMXXKEq3f8g z6LqbwzO5+KnsKk+K=XAQxxWrDZSoA&d|JSPuY#d|+OXs29`?FJZuV#c28$AZ6|7X_ z0ayvQbji%)dM;zoSIDi9^7oz`Dw&X6P0oHk7X>ssy95n5Bn{oJnHx-1q@3MIzeIMq zSTPpfF0#j9^F~Uf7(kY&A=)1%=Q{MogTP{?98kExxOa|KwutiM$R_umyCbL^G9wy? z>PCW`D@1P#y+piX{W!tG#;qke7+dTYCG#L%7CQIK<(`!P_RjJoqr+w{I5|Rf6<$Wc zDK(EV0lDfSh`{J&g=vlqYzSBxRA$TTq=oCeerB)4uWuFit=#CdK{5P%+w!$gDu7jlmb1_H@KbGebAfPst zCmlRq0CK`^m%XRw&)QoL#~Kyd3t%>jy}Infwf&gY8``W3a9t%ZEkmJt<@N$`r6~%; zl^)T}erWmxTN3P=+KZ24^MX59x4?Aj-xwh_C?_$T&fBN=`R6Rq=xGT0Y6LxebSv&iYYQkO5CT?hm8Y z)(xFM$Rb>`!qsDKfJd`Gy?j>$qwoX7b|gQ(+~%KsXMr7`yfc0rHYaG< zh#pUlUYR`3zNUSV{qOvq>dR-15WcQ6AC{NzscHrO5vR8neXd2(>lX9=Lnn*Dq-r&2 zs#a)JRdW;V#?-?7Z)sOShKy84bjfs?*#j-MD(g>J^veC`7mL{d!(!%wk~3uGNj1Sd z>1N+(OQs~;O68U#h~nNkeuwQlIjlANb{kft4pDgG?5{XIPh`TC=;aZ9S~}$^+AJ`F zC@3K#0;0GkqLLU_wl}V@S^<2fKU-dHBeG^`;u&0_j2DK0BlNHBlqa=nhG+{;fh3Tz zk(PL?T2kieL^c;cbj;t52}6x}*7|jdFO4LM_wH$Jqeuu_tSo4PI5FxJ*E+$rAX=mQ z06|hL#Wv{`h{=*dh2aNQpNSNyueLfQ1hn(nH=?HHqw16g$1R~$CC9C17;lp?7HsO) zDgZ>zS&LW(gYs=itXL;PGyU5~f-R|1Y+Ol83UZ7#8Im!~Y!~htv}$xb$J&4@NNxu$AdSJPw|xdUd$`a_ML&{b$}pd9Od|k99)RTd>Cp=l zP9{e3xHt*@6ENVo>UHUTNy}x=-GzN>*(|YaE}L97mo=6Ro;3N7ev$Je?kr(D**7tg zSn4tDocL^Z9x|YM0Tblo7N7b~pZazUkp%G;6X8E(e=C1ssGG*NgW`paPQ@Kw_%T#C zv5zTm=~4z2cL;r%i=MB_6y3oAn6xIdu+M>8+Ert2ejbH!GA^8YxHl3Jo#`5~*4fgh zI^Zx~*!(#OYA?o2XAFA>@A9#|NLVdEka`GqEG93YQ5n_vxl1B(9+be_?q$$svwyKI zpV2m0YPcxw#qEPMUs=vRVisdQfE*!VP6kQnq9rUuqow2yM;_ix#=^WvQ|3_V)~S00 z3ueJYaU;Ik3OZ2Kse%h0a=Dn6xY;{&>V2c7=8W_9slf>HsYo$*d~8{l9*AQ({}WNX zz=j1;ya1wT;-|%N)J>v*wcn(C&vh8;1YupG4P{G}xFUVe#CVw+UFQi|gn$e9YswZE zuJKQ*8X*GCWMcCHhnTM_-_%xb_9e=OfTZjpLW>}qb84Otn=(Jx?{ZJ9aspDIYf1bR z7Fejp(imt94m4uTTFsBpjF$7mak31?7??`E9PSYQ`2?xo#a z0B5kmS+LU)10+*jF;qj+P=UYU;nxsrfNepPLw3?53q2c4MDj|^q_)W#vMQK`(V5wr zOft#NQ4T{SOOC#ajl{$TRBBIi%N#q@gc#-i2ruNhLU8sZ(G2Hv3>pwA$cm~xJgk9a zU(pWycopXeT)Zk9D;PmMwzjA+lu^6Fr>|*kacC|9OsVq$>{N{Sy#=|s62p(CuZM?} z*4E@@y`bi6z;p_ByuG@G?5j9*L)jIr#tL`a#i8K8l}~ydwyI7s(*&Bw1Cc=J!|QAd zt%9s$#^IcLO7(MSRLem+t}jTWu_?TE!*;G7m#(0CDa1TVi+&?*qnk`1gM1UnNf5}h zU;##9+ez8k>wID=pW)qs#B-Z*P{hHnW8sldJIc5Qoy*gYOIs;!N-NUl}GMpUe5^c50s-mE2K16|Fp3Kou+0MSUU{aA4s)&TNBDEz9@Gg`U zsu8-@#Jgs?kKg49g_uMM&36U0Y6WYA(%)dRLYs0R$-q$)h)=^KAh*MkS!>jJVQoPZ zMh(t(on^6X6)D8R*!4jm+$>jEQrkoXvv`@tsS~d_c1ROpj;OtlE>O?ke8?Qj zh+w!=;@kSuxsNQ_oq?r|WSZKxRagHFl#!O9o+f=^w{jSE7WMhBI&H|n%>6K!1?fNN zaB^Zm1&DTAJBm~CADR=|d!QmPYFb8%UBO@{QsJNB;Zed2Id2M`lrOX{$D+v*34jS= z-pos`U1|^_Uk==)u!%}ZPZ?bdugkX`k$3d^#bSC<%Ma8PXsYUt92>gR#_A45_e^b> z74fi)&v%>d)o2SdU4KO;b_*q7kWa(c|DEBm^r zCvob5WTX~y_^ecJfJyciL(z{OmCMy#)Rt-3tlxaT&jxYGd{!tepTM>R?yOi++80kZqACJQV zmX7xFoi?Y@JiTngqc7kQgX!+Aq`^% zWrP~y`<1-RA{3D1^EWE6B;>Px_-Oh1(Sj~tZk*S?zJ#v{f{?2tzM5Np^ifE0CXLc4 zmZ-5rIDP2?5h8XKt;v1WA}Yo*gAz%B5Jdd=MV5J9^i;Yr(vsf}UDKOc%LOW9-& zO4J~?MENG{hi;*=S?FD%s+RmXF!%5P-~0if&&Xh8^#JJwnWv-~_<^@gS9}XClU=Nq zSuDIL>A^>}tJgTHpe^OJvRR1dKPwmF|Hs_h0NHh(_kHK%-n)1A?k+BX1p#6q@!Uf= zTG3#K(@`Osg5^CBNPrY1ksM8iGnHgc%Z^zrsSqHoG9AfWNsJ9gw8he(Bc)1A+f2>c z99u&<5>qQRZDUf}VN*^jd*oE9A)B4hwVZNn+MyFB?(hG9-g7?|3y8EmnGn*RbI*Ct z`|-Tb`+U96^SmOV!Z_5|=W)ywh_3e_Ks;Mcv_mS%j=F(j^ebBNgyU}%6A)GD`*#d~ zdqp#$W#iTDI#IbjbzGlKQ|Kv86DP3_@FR0+@iSbAjN4_zli54(*^8+IQ5+eUKLXe^EIpVT{tJZII4467 zr4Dc*a7fUw-9kH%Vn!mgKvJ_+D>_Oe5~MA&7ACh)Z%_x#K(Y|>j8NpG%CUz%1CSG@ ztXV&yeQn>d8)7=vzPV-kjb^hY(Gw+kiw_D8wKT=jjh*hjAzrDc({cn>9*YhOI4Qxw z!1Wpag%@+{x(uV5;$!(1K8A*3KGr4mfAcO;-R}fU&1fL!CwGCWTiRQQ_V#!K{cUBb z4nL5~vD&bmUhU8-QywmX7a|+lRlRJeid<`7ifI)@Lr&s!@M`dEIwS12rbUeIB}9yv z%>ahPjpZ>+<#$olWK-2#a(|FxRedi4K|JMz{&paBWBSWR6GUd(+~8ej4rD?ak_!Ul zK}^@aD8>^o-XlV4P%Gvjl>|I2paMu?Vh|^)$$bXI0mm?r$?AGN513xtyqF|q!jfgj zV$1sa_xePQW10WEFlGO4?Sa##AExROC7;`3BpO`SN<@dGP<1*VzeIKG>yOQdRozRJ zvwa^!NGJ6%X?94E7b z%KO#c5R}55U~wgw zbCT9)>%!wh=ISl2wiSU+)f@vh5RKd8PCz3MFrQm`FqafYwTXJgVl1Q}xj!|{TM0lF z!HAAa2$y37yw7VLzztXjPzJ!fRqD@`Llg5mfRZ1~NgQJKRCCcL zW7s3qw4r!+7>enLzLS5I+Tb6#7i3Rj;KlvuK8zNABKZmv>2*LbI|28zbfu^ovr3$; z*Rop=7f0Yl3u2W!A`+EZxL$?97U4#f3nvPeIUUkW`*UP87%4)KMK2gA5|%z!?T8KU zpfD<}EZdA+nI91Fh0BwTr%W49!cmRwT{)gFvcOzy3M$y1V1uHXJBsZe2w5`JH_gKE z83aN(mUE180E_)*Pzz9am1(nwl>^aKc4Z{K;gB!|hNNWhGBTKhgG=6m5azes^@Ka3 z$Q0IRE0(eD8Dq6$7Ss%u8joq5Xv95Xko_O|L@q*(IsePThlgbrNcZOhwj*jar;dacRh) z6yO(pNJ4L*OXTB_X-#y>0wARUTQW*?0R)f&a`N3@GNmA3$eJ2_k{X#QLW-OzBuUxh zM7`6Z3L|S*EO)U}!nTeoVp4;X$sEf&eqo5mj3^_TWimEd;){-R%CH|3GmlYv%yIRx z<%xspQre8Qz6-*j>a`5j%p=>@0zkS(l55TIsLOFYIfF=ckUSR5x$d;vSJ!6WCCY`! zPZ$OUAqf*O0mzd6oRk8A_ZQn`_p>DcB|9~eV!;JSj^Tk(fc2Ho(*~wuEjt!E5qBqQ z)|l*B+@Flq#@($o>-UI;3yfGxu^j`CLrLyDcEmbaB-hyux4DgdU|`xsizqUS!K7QT(svb>DDf zRU#k7_fU1|7g8Fk!c;#Q35*nulAZ<{Gg4lgv5$fo_}c6r<@FV3Qte|()}c(IWOG_G zLCJuo2p6kEgbOGdwgNW_s_568;G#~^ne9oKULvTlJHh|OFZw#)69fS-*kv39!@6Sp z@VnyScTF!Jp_CH)v?xXATjXuL6HnArQ&oj+pkeDp6AW%RhJ%+ZD^R`0`CKEd=NOhKCD<-k zJ)$_|3XZKdwr4SM4*#|H2ke^#T$02JxhdtAmSCDw4Y!uEKxMy?g?v< zcQl)??2zwD0`p|>-mUXi9sR;0jO%|a`BD+QqFm}K%Dw%US=a}SypSJVQ5R$+gJ*MH zk5E1+mwz6KpDP=1&6p-gofpIeN-Y0u_;;~rOdbIfEIP0>2Bxm_zqOs6j1`GPmAcOy z@$B`hwJddr`2XJZQeNNC%<7lp~!ip<~I*KKOh28t`8%kG+`?&;3+fJp(pN-YRPg57mb zv)#fsg6AUg3u>{Y8{74Pp_|)6GFXD~$z{gvmJpOF$`HrnR2Qgy+hHQVPk|dh7rf~7 zeN5Z+Oo7kbKnO@7Yb*sjc>O7!h{gJ3Y}o9CPhefkB)}|s@$HdHlnG3+>$GNOToZOc zvl}fEsu9j%9s@V`#T~dQoKrpzaL%I+Hbduya6Fj>V8aYedaT|Fm~2KOp8jj%^(`aGEuAaQCC3kZdnI(YwJfgU2J^}>I`In+*;aow|IwJp4`aX z7r-=L+8U`zQ7O-5ewiZNs)I^UrQmA%LbN|({ffcoS2}MYYNq&sQrY+)#TSdL(u^4< z@CbZeT;O4@N?JMETdo(3(R+gYJ)hUPwdP$(chZ@^I_l772^&Ic3~MVyG4)QvUC*Ec z5f(da`Y+*I#JAJFD;5Ats?fHOz_HU70LF8-hIUsPlh0wvI0hJQJ^bv7Gyfxs%hG~N zj@rJy;;^IU?T$NO_GQN8PC~+8o_Munq z#d&)0m8~9Oxuy*yk%Jd1jV;tsj0K4^ zhQgR5;2#cA0VjV?2!t%@;W;IO z*6|6GpGd2BM&K*kYYeDHtUAVm;j&)$HFofd;py-S^yM{s-&ibJRQ?2T^}W0yV$L=( zbV;BXvWdfa1TLc&6v`f(uYC5C9A|bkyPeHVX8aByJool;y}s&b^@HquO0gxcMcgR2 zMY<)EMSIu3?acV;aQw8I6y0P`^o)JraK-4Ou5-jPe)IyyCupL$1G5Xw-NqlcaFsSy z`N5WIe8%nObM%m4P2|Upl1-H8lF2s^F9Fh8c)eBL4=jp28#Dupn$0|U)oHC;sqGr( zgv~$>BYSuVFoDw^Em3Fv65h+ngIN#TEQiYg`7y{i6+2A#kdseJIsn?S<9yBfyhWxAvo zuF^50q98>l9+!F)GI(EJmVeMlp2(C zz=b#fl6Y6lcnrUs3Ub?42QQzg>#9Cijm|-&>iRty|KXxoU*1J=s@BW8GDd8`7^SuQ zvLx$9;oydUw`*}hHjB3ZYsHBeXjyp+YYB3`+o%>!z)BEds%@5?1?_eMQrI|3Fu zyuTW5gm%g%DC|`WSoTbgFx-%-QHdI-ETJw+KV+W9maOeYB3pw+IJJoI3JQ-Q3RGZE zN+UvyQpW`jI|o%eVn;1`9s#x`1quZNB=({;SoM;P3qK{yUwn>D5c3w9ACq~j2U{Sk zS6IZft2Q=oX}3j$x}0vSD!mSA&gLqo_7%0q#-%JpIAODx!tao8nYZyI=Q_kok`lCJ z%uHK8tk}fKybLu&w!)P$&Wp#M7(PH^JpT!6@LeMI8TKFh+{>_m=pq5uO{dhQ!nHNW&TF}WC(-|@lV=axEsl45l}?sFuRY)vY6 zDdFfRa`=+WqNuU?@U`6|KR;ZMc&(H$`6yS1$yZKAQJQ>s)rq0m( z7V-!|dvvWB{@dN!Bv!{UAL)Wht;)v z5IgJTsbB*@y*%a2j*2}vn&0m9#YxJIUe-+AXXMu1eGZVXV!T_e2Ylv_UIp1yB@n-+cXulz?80aC zi0NdC%mX^0^W*a@Hx$ArAucu;#YEB<=8yNk1$ypm+2&5z=H*7lW?}P6K{QIcvg~&) z%$8A$r>K?v@LqA}1Z_};&fskGhg}~mYu|#o@G#K8AAu5*X2=84Z_xl@_3+=Z+~G;g z04ynE4HY+JEPX0d@{Llle1*SbVPhW;l;0=wRwfU0ee6)V!oyB=czN8A{V?^|K-?L= z?9eK{e%{Lly_Jo?tXb0O!kP3iA{oqc6DjB@Wm`un+n7td@z~l0L3~Jao7gPNa9W67 zGX*zfUo9GOne;?G#r2EvhkXp|AW1=dEbXVUigir2)3(}B`54J`h1oLoURZS>sgb;je>!fC`__wR`kQ@D1ZQ+3*l0Jmr30t>{c z2oR;48bYvr!I3fW3{j(<3J}IKP}wTO@E-OcH?gE^VlZfsM(lIQzw|^fO+%KH zJ2O_CMn41=ak;~mvw39zsOA*>Pg5X)8`M0IdQqd5$5ueR?!1puml?8$IXy(NEX4EJ z-yDyO5El9O#>nOpKw@MuXni(yJU#tC2%Ie9c10n?I^@|7bkpugNAnH_^60*Z!0^a{ z!Uw(HJmClRy24pY8f?1&S#8V;oz^Bt)R;CoT9GXFFI2g9FmxI_UyK_Pq+3&dRD^YT zQjZIcKuF$6mQs(fRlAOqOL(?n%oh4axkhLS7YNpPyT!G>{=M=P(OH^0t-afvD>%kf zbylu@cF(!lbMpubFZRnla!;BbPPG@?Eito*1#Sy;<9eYS%@41tds?x_Dqjv&y{mJ? z%*`K)19<)Lt00NWfX=>tL05t?u=tBUX-k>}+}f`@;1^}3huUm)@snH-p*HV(XF<4} z-#nRWI-jmD=)8s({;W8KQIR!q4Xfx%N>xL?rY~R--T(M|vP@Bt`zIE@{Zke`u!{3&JMWh#4PRku<46)fi|_n1 z)s^Q6;(Y89o@fS*9WmFj>i4B>UW0xhckaG~PJzu}*E_74Xl zTc*57<3W3IU4#Y8Z`bIgeJJ413@|m|5}zODbC(_d2?+ycAwFAKTNPxE)3i3AnA8gY zptiYYO}|rxSdT>hn?oB8-=xy%X_Y2I=s@(-9&Z?{+)r;UOt|81tw@*#|Hq@qv32V9 z;%G2y8+mY*{QmiV;t(l$@-YZB2()s!-<{mavwxtcLqh zf8H{y*u7;+u~XdsrK;jMyEjpfGubKZPg31ol5n^%$+kwWTuB_Uzb z)V?PQc5mQ8Y5f?g4S0zCx3HxV??c~0bdam~BCa1w%GV>f5O*$b5A=A7>p1r(c#hYg z?;+Dlv-cFlU0O1!Y_zuiuF2}Va%?oc=97iI?bv0~VFhqq>z2&BDE`;UpeHJ=ao&i@bhjhv$1?f`RErC zO9&KFN*FHA1@?gTAO%mI2YAvjDDd4F5ow z{u(9!pz~OLWy_DQygWaGFcO8cU7C$f^99$X$5x~~7FetW|RcV?vwHOoyJ!ozj#>H-fGn@b~afQX042q)eGD*S<(+NiL zwWL^#ME)9n=?UeKBdHqlL{n+uvV-3+Th@%3x`m$}LwyNRSHpdwl*p6pnSGg|2y=0%XbrS5eb+T{kBt~DTn;5)4z=|s5)StU#2Ibm^lB-^T z5@t}CyUd`B65O>xGftzMmqAl#`O4Kyjy_4ka(Ti;@_AF*uyS@}<&-)OA%yia{(AK& z_RRxFJ9mKFtVryeb6i379-H9wQj?$#Hp)p9izys1T9(=YGGTM>$>tovB@?Pw9q=A{ z$$v0JQLhQjlw0I6xtSmYh~KhRId?x|4J^?FZd?oOa%`#439kkWTDlw!S1U_v0<^)b8Mmc1mZh+~3`=Wh zd9t(`#cfs%5-o~s;w_siNYaVj!>KLGU)5nuJ{6^6t`DL=p!1jeG?Qc(@mc`^;21=? zXvyN`kM!nadRfBh$09yCup5VRbZzow#Q0*^5eYQfhf{@Ab3)C$iG{c5@vZ9b{ z!y43I%T~fG%A@2-cP%?Mf}(XK10sGL&VVnp24?SjtYW>jEIXWa3e*pJ-L^H|3cT1& zV~ywWc$=M^Ad)o+^@!?Wjyeuk!hfdv$A#_TXbYoastEtH^M<;!wFn&xe;YQJJ`E{! zxBIuM^Yj2iT=XNeAucbW+OpS{APsQEw=Tre16VmULOqolm91q5HE^D+WowL8#!h;> zM*M&ub9bvA)BLw>tk|}(cskt}Pf}ylieQo&^PL)#?pc9QgCD=596nS=4ny42cY#G& zQc%K2Q*!jPfJ&%^H;Gx5vTbRV)(Z*^Sr~zz4$=jr3mOxUI-F^_WQ$T6bkjMU;pD^# zj~T=k)l;wsqWnc|wO7<=NwOTFjO#!aiCbzbDM1vEvd9{@$iG6vIEgWgYM^{85xoKA zKqTgsw+QN@dno-k%QTEqqBkd<=``6doTm)yzY_exen|M+oRZ;=<$)Is;bqOE|IFuVGj$-pUwB2Gl;6^l5gf%#`G(S5CY%0&#(|DR z*|(k4rUWNDcxRQ`IE_MU@|dC_VFJPqrM#I%Iw}dRi3vMcV^-w|Q_pbZ3^2#zFf0)Z ztT4xc#zV(#a-ilTAR3o-cU*Tz*y04I=KPeF{FR-hY&Q)g#21QKySC3YK6op$3F_pQ zCsFa4dM`QQ>nm*8di?Qv-^A9sZ_3t+$sT*(Y!yNwyWi4n`t=k9?#_CL(H$Znmt!cx z&ikvK*p7GDs=cq;_t=MT6hfZ#@cP=FsbX@LI{S}h{_nz6D0uNqwf9_g#pCKA|6wh= z0`26=S!>yqKP%@;+2bG7zM1O-Kew+Ali6kKQzS7JQV%CDFzC+etZhi-HT5|Ei?)!d zg`({;D`xwq$V|Wt#)R&aHJ%?{!*lH7iG}n)H$D|Qq;goT=bvF;C1AjkZwt*Se_ab{ zlN}KhW^M_z*PPk@LN%sHOTj$?`^7A9Ze}HZKL!iYkZv<4+JtGLK|=uV2kuB;L;-TY zLFa;K%O`JzN(YG>ZB(Kd1JW_M?@CrM2NKGjl0IPjp-!!nMn-6xJ`q7=CSr-43&#oO6zB%6^8izK<-i^oX*b{N zgC!U>1q7$)gG&kxgqHJy1o;oPnUS56O&Rr@>o>iTIEWcpcPyP2%yKrQ?-;$DBWVbj zhwOoE({TI6g21-?=9&kyp@TMwk7rOIvA9+5kSjHD)g=FtpXFqd;WYv_bW&M^j_4;W z3KZ%PABjAV0-C{Mu#T=u@+(fbK-M5qrvfMSgd(W`r`?F=9wP3u5U?HeX(EibBm(Fn z7ZjCJHvHUNLw%;eI)Oq+;Zkw1wy0pnUL?vDc6(k|V}(M$o7eJ80gvmG1jK8N zKh!(~Lj*bLG~MYQUmZlC(|wEzIAQkJuC4OqsZQ!X6vJBMg%&Rxw3WJhUk$7^ClbpG zfT$YtRwx$?yrz&x3Ckad-eKZ%4|Ctit@c3%NpvOn&iGB#`fMypKwSmp+sdCxf=5 zP5DaylRP!`ArzxvM94-;OJ%EtGFgBLn%@KWU}wUr_9M=I2(`|nA}gIe80Jr*)l$f1 zt&ln>q&q$Md%b+9Kwm(dAI!{Fdp6rLFA5E=7!lNfW+4p&d0$hr%u5FV1zH5D3W1uC ziiJszZ`mG(4GOzojGpx*Wa3U^#* z;ZLJpsHD2oRvz9;<36Oyk+}>d_4?b?&Qzf!9md;AU$i|&P6+2dli6qKDR1u5pSywk zfds$%1is-fai#(f7g^V*|2mkUwL??;Bx*Ej^YdLIZR%r0Qd1$m#u((nof zUF5`!7g7iPLJpO3g8M~r17)>iwl&Kz18wl%z3tPpEMKt^V-&U1-hI$FIa0YNjy6|c zq9@3H+R;#}S~YexrAIovtTX)T3a=zd#8AK{hV;2SrIb@Ch(@pZ_ljpYeWRixNEM)o zN#JDdb8G~=8Et!a%a?OF++1Pk)I8FxCKRyItxQPUUG8Rip4<0y%o9NoFOO2o<43#Y z0%o`T6Jy$_Mnn*UJl2a7vbZ=!7AMKR21hTHpS~6Q2HnuS_nPiKh%Ji3NGCO$U_S5O zV`atzFsRr32kIggi*Q?37#6O!I~O!Xnl!PUm0JB|UQL_Irr21X%gPLEajp>~sOS$$ z4QosRCxCwViasKu4~j%*ZXq?H_s#5F8Hd ztnF{NEu`8h>y=FH|Fvo#4F0Gny5M8Mf)i|dN9R7RP(i4IWQJahiqEzIQS(V;j1`Ib z34Ae>KsZjQGXlk@nrbM1S5zPg4hlO~LjNG${oBRgpnF$;B^2>T3~0^&S+DK81U&Dp&68gOo)7@%6Z^}`o3+| zPr~tY4LIulhTMQIQMpYTEGnhO(EZ>p0(Xja_Mli0FO_WKN>JpyA`QXbT09U^I~UY! zx}v6hA0W%UmhiA|UM~IyK|vNrys4!JBW=wL{?D@LJ=B5BXln5eZ9YZHj6nB0Yc_|G zzGa8dGFiWqU(j$73WuqbKw9RTw8PEkAtu#vxCO%cNJR<Kg}XW}#^<^&KWa)ewdbrfJ- zLyXD-BYAEeAv3F*$LqnldXWPFZ3WWe!Z&D%SI-}<;__iqCr=3N(iEYEk{vlQ%J`D@ z_-rsKHkc|VoL}XSn%!Lg@T!bh%HNYXo#RT!-8BZNm+(>bhS1MS!ZD)&Oqh2h;QH;q^3>DOLDkocp8l7Br&8#G%zHsLYvAY)U?o)N_drpz^!%*w(X1VOz{HKa1Ll|;p2rYhxDbUSHgjC#zncD2(iYbY89 z>^I~Ms_+VD%o=x`7s}euzX_-WsH&@^428ru383!Qb3V$)!-rVT>4SHS$=dK&IlNGh zhBY$OdBjmIu?s4F~2@?|=D{7vTX~qAY+|+pq zYu2R2B~I6t5YBXIroNa{H&^yq$dz!2g!~_fVw^2NF>^pwMJffV?hXF~W-44N3Ezva zq7GzXzu4v(0yBa-k?X95=rgn$%>c1+D9b?@t{DtkF2t5Wi2i|e+=;p88aZ2(f)hPQ zY0;(w)IoMeUkGIV%2_J}9zh+o3=h3}SMlVMDbhu+Y3! zShYavPO-2u^d2oU2n-^R2#nUY)mJYEDOCuU(#&`fv+Q7iQ656WP;vPP;?~B*j#-4K z>mHN~Rg(^od&@$4E-|A=a)Hv1Verl|z?V%j;QIN)`ij`e?7uM2ALYfnm||XL&8&qVC`@ey=G|NP9W7deCFO*Xagb6w`Sqa9ju!RF+j=F_U_bDxto?0s0t~9J&{i`S3?q zB=yj5EIosNvZJ#~id}Z5b$}T=(}RPVTF_uv6wrgZyeVY#;DLypSrREm6@n*t$BLwX zf(HXrsL);tkjmU=E9@p^tYK#=TXPz;Ac(bs7DQlzf&lU%X<>Bu0=Jw1!rCc5;b?|n z%(YcHmXZAL-yJVHB;#4FDrAE7_3zbU^Si<5DlavRVN|s^>bJce342~B(Uh525#E6o z67-;1*_I|;#Z=*Rey+ZX7QBgc)#Y8>09dD4Il20k`YqL{J=yP%rB{6Ar-RfG(MWEX z>Mhkit$pSCs5px&Mot?V$|WWwF9e zKGq-59;`a1SET&kn0_nd7GCFG3K?U8390+)U5GtSClMHckBLqoG7LrOMduyf!Z&@M@*aM>L5}Yw zae}4$m6Cz@s$0mQ!#?;e&Z&Y^t0s2AChF#_(-b--DmziwGEPhtYR(RuefpB@$84f& zf7kVp!idJ&k}`ESoAc;zj^&D?RY9GQOO+c}+idP@KB?8N3hP2AiR(9K72Hx6tIebR zW+#5@I#b-|=Rl@mYxR=k0)_I`bGMwX4^#(;+^qJj)_aE<0nHL$oXXtqx>%riKU1x)A`I?A+-iO$yXg#<=OueJpUQ7KbB0+cMI9pd zAg7C^?PE>k4tT$4+=06EZUVQ$4Kn6C9pJ{8I|p5irTpui5o!NUH?~c)lwYV9aS^%aH^u_?9|jNXm~(to-oz zdUA*ZL%bY3ix=7@odSm?&^F zB;a?2LZ209k|@x)7u#gj?#xjW0b`vSECbkp4Ugg72 z>F{85EzIG+nf8DX3rZTo1cR^hKVt>PydTy&%o_F=hW|((!Bn4Tf%q&gWuT>T z8CYCi09{lD2Y&y484F!TiG8xBO7DLCGZ^oF8J+wr^2*GE*YYh7Hbv@ygiYX5IqC2s zz@}<`EaIW&Elf4Xj-~3_bhI7&*4}~80PZ`ijV8z4{{yvZV`b>baE(?j*W` zm7#q?LJ)Om?_mMe2gS*>s*L~}!u{@5nFHGXY1lVpFKY2R!Rv+n_yWo_fyDJnO7dE& z2#G|R^F$$tM6aD1{^pL+&T_o~eA}cL<-9;f4W2eVcK>aW+^xJ}yN_<>yN_bF z1qC|_D3&-78UbWe6@Fav0ugQUGtwy$3H^A}E=PJ^w9m<+Bm*=3;30$%FjKTCwJpo> zYg%rqo&Vt`23AuT`O{^xRK@}ZE6SU=lmz4Z!S;b0yS5$Bw%xTwfDkle*VfAU-60OK z^@t(Jt^qPFXic%r0Gu(hh|!_~Ly|n#?B8nHX;jKvo>ICUE+m$*u?p7&x_}pb7CaGHvMmlMQd7E3iAG6jn-Yz3 zmlBO~m({zK-gfuTL}Rp6Mcw=2!WNZUVq!VtgSMc7YgPZWtOTGj0x6iP0N+yUOX#wQ-ePw)ANcvtlqTk5>$wRahD;2C>u* z5$+c5f9l<#w1Bkk@79Cs>jjpMHpDXVTs1Qwd)q^!MgEVp;ZB;(#bWJEFIGMpH*JZj zZJOE^tj& ztCj|4HhE=C7AyiF2L4Qf;&GVfzG?v;=oR^KUJ!XA88;nlW;-HOLmoAv8kpdq8c{8N z%CW;qATERh@W=v)%&t1wL6ubCYB!}|E9@1QqNP43163v zEB1Nu18pzkz@S8`2pV^zQ^{eJ#NpQ1mab4IWYuPsJKt4*w2RvvVIyWr_P7RN>cC{K z#(zm5kJ_l~CbJ#af&sdqEM#E9z+k}Np&4Rb7;c!oxLr0d)UHqq_uBMG^e_{=D9u_Fb_iG! zfuc?zPo3-(@Ch9 z3>k)wQcS4rC93mW#AG-jXS`Y-M4|oxEPEO;J=q6gY+^}jX7e({@P}6Dn`!9XUX#K#XqdWq zPs;>{w=2STz#3L$nO1oe!bgYm|0kl!(2-Z*4dUCg>ZC>)0crzCrSqc$O#Snz4TFT?_Mh*TZdy;Dq`uKVc zKz=O`;-zhDX1`4Wa$CSeNSufQ`kJu`qw0BCLvg$@<-_W$Z+yJQJ)zaYZN>K~?nxy( z!dX-ecl>r)V#LSBMX86^!bbbpj-Ow$ird`U#Z{;R`Z`qs5zpKAK?*lEvvJYXhX@bQ z)C(%(x0mdR+#t3a4ATIZ{PGQUNcCLYAs|41!Qt0 z5pDH*oj5{cyKP^PT5hDFo@#>@NlA2bT1e&eBFLN-W-Co7JAd2RhA8(eUkk~-|5*?* zV#7+Q?uFAr$-7I|E5nuRHO-JL*h{>cZY_860)sRtY*vjUq<4SmOps@vSEdcr#16o2 zT$<<{WTe}4(|H@=P91e1klpS5OaV*0K`9p?T6~vCJgbLKiG!sMD#PrU9E(ti^tigO; z0QaXyL;$Va9FkhIw$aST>8de(6tnVDh<=iiUKa#9D=+GiftI$2v>|G>2*W~Bi+pFb z$akn;men<(?uUeO84jh0OG4ec)m0Au$!h1I{DD4RNRbEC@RJ2*bd^05>tyw^5XA)Z zZPEZcuoP*bqn)rVw5TKYgJn0`zeuSpooX#yT$q;*(X0+#<~TDfF!&gzQ`}cU5AE=> zR*0@p9{eksf`6=>)#`0We;22>)e#%Oq|w${kM&ztIc+d=5-DxXJi+ur(3+gG&`++M z#CyEHYLzxb4|cBdSxG|AE1UddWcJVaDZj^Z1h;C=@infFJOe#B7f{K=mrJBgFq{3o z3Ib{ncvBvMQ@)YN#&yL>7!*>F3B=aBeb89&fuY<5k65;cq7-Yr_XxF>9%w7gBG|qx zjQwzd8IF`vUlvFGR;a`f@t6xMT29?rvo_w?IYzdu@sFvUU+*M&-^lY+zwPLSPs^8U zHMW>SNUyJXPnNOAL|P3RvmI0WLf^?#?+bk=`$B88d)sSMd)rW6qWjqw0^X>Vz1vpn zwd$Jb4I)7BLOHWZ^!944dOMp$m#vna25Q!B%R;rJ94*V3W=C{TWDrm+k4lIU1gE+Z zfJ@(DnQA^N`9?7r2edAon(ZAm9)kEd5RA!6H*)amklwEyPaNyE)AeX|R8#$ddq!6? z?F-btP}LHrkTB%@l5vBR@7O&9Owc2ibw}4J~t&zIj2i36$ol4-rM2;b8mJ7%ZY1m-G*4?N(quOKM8K?~pc*9tc0~a5(^79wH2k zm_|%nH9F53OZ(Lj-f(h`U? zs7B#rbNL2{D0qVnXwho#NbAe3aE9sih~*K#l2j3h^rQp48=w1tNC;85BtMwvj9|vy z2i9ywj~Rh>O5Ekeg|h70zt1j-k)a zy(WT)QR-ffDGMcefDq)#sGAMp~1fqJx?^y&=&!_PuA&?&9IG4t>b)J*9 zN)Iq32LjQ7Z4pRqax6s5uWP*=0-+eGx~ch_4{z{28sQ}yV2|{THP8*RZfuSrPA}~L zqt!TUD{F4Qpa6nkL3Qwe6%etp#BReV=MNTD$N7H|A z1Cw}wY`JNd+7+(AP6-|=sewOjp=fXwwBQBf(M%PTCml1NY{fVcnMt&=) zZV)~yOgid|cnzBXFkwPtHl;oClJGFSj6k?;s)&j&Tg4-(3UmH#s)&Xj{r0`^Htb9v zV*tn0(UbCkDYd<;Ur4$VS*=*{1rEzvNE=wU1-Yw~sJt67t|1e*c#DYZpma?h`LL*O zo7&hoVCs;;P9e(M8j0VRYlOkKQg*5llQDi^vX{=W2G{`ZLhKN>`$9j&;l)roNcGy)Civ3phn$*Oq&Du44vevvs0iy|kMitSWUY@gzIQe~-E zxn37q1#w7$_g;bi8YhK9{0TMC$nreJqHmDOXA^|Tzbn+q)u`79rk^JRBRBfMzP#7yPy%`{FBoJ-1@k-Au zmdlP=#3J+@+FsWtp_I?udD}bng3=qAgyE?uEdXNe?AM3nMk{oO^!076(e4P|gxXJ% z{J^%i?A=2|2q{=%CYX}wG~0GdHo<6b7MhG!+}2t9xPf|r-xCOrqXs7nh8+&)Nh?Sg zam1Oz9(W$}yQn$|cu}0R(J`nN-zU4ji=(WnRjX8W>+a^LXLXISEbxDJB(#4@$X}(Z z@xtIB0D)JDJ9fAN8jK>+&Ga5J7@vu;veuKD0jVZkvXa}ewI9cb>}J=$vrY*5%Y>lg z$B@Fa^21z=BLAjlD5Z);k86w3Ua00n6aHi(k(i%RvZI6yLxR)A$Q4A z=sQ~qeJ4wymYWTQT)xWYX4l8FQ2ow9CL$#oI!S22rnae#TCPh)I21vFw5%~|11YOGe2`+3p zH0_a|a+?vp$-YD8a!z_&nQSw!Ol>o_iQA(bCp})W9L92;^qBTCird^xQRhp1;XQP6 zv|@c6pY(Xo)KB&>?gKp;{DFF&Ehk5#uuv8fc6->;2mtFVSC2f^YsITqD-8p2rZ;5L zrL*Q+S3|VObj0n;y1kxTEEm@WTn_OI3+0;LA0|<)%yQ)4RC<2fXm`^Cfs-}q`P!{b zyxTy1-Q}EbGH6v@nYUWsXnD<>~ z>f1X+^clK{K`O6JpePTjXv&E?@>~4S!cPdEqHwJ>Ic{}jDF!EHWY=F%o*f{7m<@li zXV>q)$^p3x9uPd|4GhTTJs_7K4+uSHGGLy<8sH2U4T-_Tz$Qad*hZ6&`a+pja&Pd; zmIOd@L*u%qvL^6aGyyUocM(OdOS1$pt+mJ&dW&uP)&$Y^xFCqJZU~DyaJYC*Tl=CV zvVj0}{7qmFIk_&)-oB6!-;c zAWE|fzUu^k#PMA?ly)efsmK%19T7~y3pDXk zmwWOEhIPbAf_$K#u1*B482)^hKfeH_E**tG_%F#TQmS<-W5Fwk&XFGJG<$X&Q|^k(SJ2RmcL_ z5#q)_BfO>YGKA(zarQ>o<@0mk7vHVrz=_pJk#NYq{!fxO04VHtdx#3(*}=L zC>=OxSzUJ_;p1+TEpIcUh(sMR))hL+WYNy?&%DkiXDVL*0t{V-GtG#;|5#2!;*N&K^V-^>C zl@+muK{r=);`Vf0h?ZaH6zW2$y1_&_(RD^Pzrsl-m2iTni(=F+}M?P2rX;c}mhI1t42h&#C| zs*v`66d@;nJClT`^O3LXY&B8;kr8d7Mf%_u#~d;VQi9guH)r1l3R(}906DjT%yIT@ z@t2^VzL2{ZX)~bD7l=miL6F_0Zc)BaFcI2Y;fh%0?P*eU#Zdt$(3&Yt7+j_*POMT= z9g3%l$I|*icNJTBow#6fX*b=p5iRK*bgKJ80%l(;0qsP;;Kj|8tdw8bEwh3Sjs2Y+ z$Zw^JyrU{r*-o1*#<;;k<%qy66w#(dQXm5vzvm|i@0er}~+u&AVOo;6+_!ce!11X|C_8Flz;yZ7S* zmJUeVoKuX;!r-6x%3b7F^T~(Aqx2;&2$v9D0{MWngKZ%F#xsxvw*;ohGE23nBm(sQ zF8V5ewR*_1Z0)h5F7Uy~e!Si(DI0M!tXjzPd;*=~38xwc-_^2a)7PFZk&qI`#1dz% z&3q|$QVtH%;_KOf!U~@^aakt!QBf2*YmFLqtuxN8s26Hdi)qv zo&J{R>N|8~HcWpePwL)TOVi$IOB10}45(hT_zcL|PZf?6TO#8{)lxSu4r)eeajooYqi zjC<%NhI_UXChn_#59~l}04OP1fQ2X+Qm|Gw9NF}j%OFS(1!AF{#fjggY{Q|SM3--0 zYO-~UMAL`A;wJa6_I7q!2roVk_k02|T+!dH^EeYJo6{aicUN$t03F(ck!PuFI@}Oy zv?t`dJrXzh5%L{On_JZ8QrFEs!k}*yR}qg=X*t3uABIZtUx7NUe7wst6AT#&HXBZL9K13bLG#Dr4@3*s37CMC9ASrkXQ zUgR`($-`1-7HcC&zh2q+O1&?ohx&CTvv|XqUs>j{DnOevx{ zQm~a4#|$Pj+O%4Ru&6ZBIq?69jqeyGXT zHIsmXd^Zae$jf-0w3tI7Mfq$41VP8=B3^_!7%ag0hN#^wA^*Z5L|@=UeHW2Pzr@jC zJXYC9>HJ+W5^XCX`Gg`py#k!)P~)$&APw*z5z4!(+23bTp6uU(ETtSCj%DO}Ha|Vm zd7Ar;^2{)iJ1cC>`2P&8m3Tv5l^Gtn>=aMeCSR(CC4e`JNW4>t z5H|DE^muTi`7gFCOd?)@Gm8y96JB46gh}|Rmy`J8*dd5G zh|lv5l_#lAp5FOqEF#SF)H!TTp!o%@*(Xy6PTLH9CG}Zr5SD@5BKRi|NzQGd<36|)a!mkL?1b5v ztnIC=MRm!ZB7g^s#cL)HA{uJjuf)PAOmFqMt?FiLa#jNiL<1!9GA-zpDIR8CRx)0Y z1;)%m8qxrHUYawev(tmc4Ex15mrf184E%oq&GQGk7DL&y0Gj<#o<>u5%vbn(9c+b* z*o$Z&Ni@;+p=h|LDAVR)nebc3Bp$55_OubJwBBU zwKyKJqOvYn?O|YUWNu$IF8YmPi9Ift`1E+eTZ4+b;`zYW zzvSZjR(9|Au`R!$wN&NDSBHBxb0E~S{jk(PVXU|gg9VLrETA{)CHYAEqux4R$UoS|m#{95lMU=XSyT1OtJV=P?g{&o`$Q4g9 zE1TjRIL}YdrwE{OQ&Afkdvy}MOo1VmhQ+d!;;Y`r7K2=^YQ1Bei`u&!UlCU*_)UTAW~o2>k%IHBR!7TQ0&W zn3k}1+Lb{pF9%2!Xr$Mb|EWY97hxOyG3=RDFd+t)FtB6>HO z26|w^YPOmwEeRkE7BjM>2mCvmKeV4-G<$Ch(31~Ul2|*QapYSAyrWT-LL1)p>P~b+ zlu&iBCzgL~@_pEnT2Rw{moBxv0z!G01@UYn#K$i9sVr3U2cs@a@EDpb=Qv-gVT~x2 zy17u{!K$(lKXNZCfs{cjLMTB7p!(P_&uJ}cU!v-y5!HiLim@qEaRahKD%w}nIj<~h zJx`#Airh%Lj@X^DUpsaqH9FYR=s=AQv=JJOk|c$HEb&-4^^zKuhaop^G&U`~ri6`P zsar|dI3Ho;2CNZTWO=-2DUhyiK>UXIM?GZE#5g%Jcy_ED0yoDm9I$du*O@#!wF*l4u>fLfeeIEXG|N zKXq;3%+0K>KCp;-)f{^i1gxTOxeZ`}4Nt2Gw3a%nMK*=~EQaY0rR-l68Ghcj8}$d! z|-Xt$6FoLht|XcOkY&2tdPO?JR5v=^4IG-i=} zpr@WNB?wdPL&;vU8zFva+`P??#p%UV+%y2^C$tH~vr`UPK1)r`#6Rt3!%41TA` z=ft2z0NGM*&_Ijz$v-t_gjw!&yQpn)JTnIuwVzD9R<}FB>&$CGJ}{sGoe`w~d)mjC zG~|btUW#K&UP<4?OA;u;vD+fz+Kg?c2+DDAYZr}3M=(yN;$oc@G?o|uNM9t?+`~c# zQ;Reo+@n$!=_+$7Sg46er(%iH>NA^$CQS&Vmux++q`!hT#YOTX-AejRAEaeF03CkP z8~npO?+Um$U706XT9`vP z+Dv}!{5f>IF0>A^NriYaQ6W~Kah32e^7pgykR%vhSYn31)DuJjX+t_o=IupUj-kJ}V~9wsm5 ze_rnob)bsthtI55`#(c8$Lj3v!Rqwx0mRZNZuxtjO&nRUN&hV`ZU8g(SG6gqQ?6s; z$Dv=djVk^G803F5+as)In(Y zfkiUGsH?g3yROcG!Z-SDbX}du?|FydU5c5+)<|#dLn&GWm_FD{oaEXWXzb z%dia~F{F8c?U6b27`l1#aB)EqIS_12;4h_HOlB{qTVnFQm2SzC_X@Wd`!+X+?<~F` zdV!7qb6ow*=~W+1Pan}!`Lg|Y?<_X;jDrnc*Vp+wi&wd7Ti~poYx2wH0z!Et|kXir9HVq?=abur|FSIX#gR)UXfxA!q?KRtd8jx5N=9=pa39z znA;YFU*ujOe7b#R5I&inKB1=xgy(b*=+64x;o=Lr0@6oyeF|p55fNp85bMEkso^cj z#z&-CY+&W9*u=YZo1N-`$FY|WNP|J_&_J->*JKgJUCoUkD3WPoKT;XUhyQ($R0jHz z#vHiva=K-pEDS$ops#@A3=<>lc#uyZG-!}t;5xyRbLr`$dYT6Lu5aw^Jmd-$Fa&LD=#t8L&PFxfLOL!#c1kw<5 zVqoac1dniv4&*VJreZ~+?ivmfM_McHM2}dn3TiZqfh6tFu%r|C)Wd%|59ta*`UMLT z`%VpcCMhDy#P8WMIMb?(nKoa|R*DzVRHd*rm|-gI8ZUY)zat8;#X!H&*82NdvfOob z2UQtU%DyS3dkdu$W+leKcGL{pU~O=|xriDfg9x07ohakNG=W2B9RC~>I9Qn%*V8$o z3k(m@V8XHb_NVNxWh>ft1FhCFw(*EbFt8|l9loTK;t}rJadEkaa!2t+P);PYL^$9N zqi31$c8Y*Pm0JSJZA(D8Wl@-ba{C{HfD*9BidfW&V7Mlr9SEowzkNrp3p)BHFm}-t zgQFjyeHW8G;rrpjWKVdW$R4*X+2i&vMfO@UcM!>l4Ij3w~(DE3Q zIn;NNIsS~voF9=WXqwEia06Me20h@7y*}fVBB1X$q)FQpy`z8r+2_15;iDq^Y_0ap3)w(TclMnWp)Z6H zc=^ev8Nm?c4Ku7Y74jzkeeXI8Ylc6;-kkSAny+7t{7f_NE>KXKuk%5t*?c~KSI$o! zoQF$@FalEkcVuTji$Jx`@Co^j(!lU1ePhk19Q;Os!lu$nV#mdfXlUHb%}=eMml1om zL*^R4L^)o(7fZk5xtrhm+28!xoN%?~H+4fVG1M^x{&jBV{J(~$znOi2gr#O~F6}&v z5kZZCF&>^vflWV6 zo@9V6DCEcTxaTbwe;t}&YDo_1z$_YM%rRWRh!sjb}hBc=METk-m#nV#DEOlab|7OH>p4|yB*Ei5ErRYAu z*!`^3uCgD>{PA?b^Z*s&HPG0Z4gOD*h7U_|3^`_Zc0aIZu)vdjQ2K;I1Q-K)eMFat zthbu6oEDV*P3KhbF_E}caZ4?`k50}3i{?+B#>;}AKFCVbo{o{xCdK?M)!+n~PCIcTD<(JE9l@ds$>IYI zs*s^i)puQp)> z+&;~yj0WJF`l42bzW{?#L!xPlmhs}WrHPbLUYYj#z$S6ix&1Q5hHueQpdhOmX_gyxhDbl$`shJMmKXekT;xapunR zR3c>oegpk!gcyzLNv_S=QW_wx4*Y$BzebRleXJ}}vz#Mx_>-iU*B`uCkipi9N6O)k zsJO@qiYHC$^oc z`=+7vS0*uaT4#aGyOzHH_FPMsRV`^b<6o(@DnB0WX47}fR5ho7vqu;B2}k~5Zt;{t4~QH29>sHw=Umg%M~=cxOa@eUm1_{ zr|5w2yKEMSuVY4q-<|=(pVfHN>Qw2=4o?ALEJ3fp7^Y`=vQnfw2v=(}2L+bmbT12= zQKXE7NCqzb1;mPErjUY!T}UWd5_|8oNolDHYs4VI5_yB#No;eoOXxzTbs3sk|D%zl zI#4Phn56O`J``kkNAwfgGk7nktS15sYxbq98JBEs_acYBBoIV*s+>BORrgihRt7(-j&*sIeVX!x3ZXM>NkYL$4z+8GT#N2;bW zrDeL4`S}LhcEB-Mttvvo_OrQowrw}NYZ(b3*Rls>D!osC9vFUh?#u0xt77TN&bur- z?`0O>Gr&;Xl=*^-OW*W8TwLZ`JQzj`Ty;KIgA19a0>Wz!i9o|#b6Otgq0_^+p%Nwl z{zI*xA|qA2i2oOG;>rpVEt0Ln}C{>1s;AcYEQB&}qI{BKO0~&mbF{ z`%(6#!g&x_Z%tQu5Sn@KhQM1asagPL+rWkLYcsKAo^hjvgaJYqZG_ls5>C|sxofle zjTV9)5~d>=!OH zd{w(+gF8q&K^4+4Mu;t=jFCa#!7Cb*aHIJ`+pY2wxFJ$Rq=g$<*+t+OMcRy@NO<^- zu*PJAzm<;@TI7I@E_+8qyc7G)z0L3VSX&-J>6Cska9!~A!LvS1Bw(?Q)cpFB zkNrB}MO8g@}oMAFHn6?LoAmUh^9&CrwCaGBbXOkZN0^gz`8`I!35;AJV(J z8+~yCBaWttzW5^lRgfo+chrby#z2@p`jNVe`ZUf10yV+T#UhHFM-0n%eMY9a2E@e5 zgbFzVjDkDU%AEKVX`!GF(nW6@f>`Rb40&1@be|8U6GxW-Kw z78V*C%)@2%1iyh_UK#!yEospSB~f(L=O6a+C2h%GH*)@p9td*sgISWq*QuN?ZVlC>7twlYU)VMSS0MT$64R=6k8)ZP#?b;pXzy^>8>9)B@ z@I@R=WY2q5kc%L3(NAm^mX$PnKvA5w%Ei>?1<(0#-7&6Mkq~mHRHaKy&@vHD zj6g4zEH|wZg{g5lG;uKzxQX474q~>331bC2(D*24h@zG9*yMG1uiW)TD`)mCIGofj z85!6n;Za^r+M^D11qut{8AAPi>^aoR3YQT>+Bk}~8;4Hx>m7>tqu652F-y91%-BWC zTD}iP;acZ!)LjQ2aSYmVnq5AA1~xX=Y(0B5NMW_0vsbYSwau&XJQ@csK7AElLpOwp zl8xgf-M|giW&#N%EwmiJ_Du(j%xyV~6@$Wd#ZU#QSwP`!8nqCfA-9$COVgdpibbYH{bo?_Q6M1`TfNDhwXc9@AdCFS7pzf8^QT= zqqlmIZYl}F0~yA~L6OiN00^gu16qJ@!O}zYRCWf0Dy|xW>41wnblI!Qu21bp!9&SI7HAc?mR~y8vcojenD1b*yTt+n8D8xPoqhD)WYil$c>|cIGP(2lHNxv2V_o1 z7q|moKK4vBfl&}68+-55#Z)WNtVSj*gFyCwRy-i!~eIVALtLRk3lYCQw5< z+o%t#!$KRnd-HI?5_z4bIbQcleAp>qwx~I3x>{;HyX3O8Hrw z9mz?|G0eI?+OL&@Pb5VRF+`cpYw}D~e8D|J(n0Rn`&M2i7vhJ%7AeKt070vu zY5tD_%UOc5GmiFhRsNoRTnUIAUCDHn_vlC&?MvWT17A5c;)Jl~IWm4K``$}j-!eua z4vo(P26RX86pFxHC0Z*Jmni4R zfLdZV#01z5Uj8`=FwB%d;e1$>p9015MWC>4D4^l_niJQha}@?_%Q)O0gs%IZ0YLKS znKx5iryYO@g>0oYQgc4e$KDGCRDWHD&k2YJaJ;yg7fwg8pceYcZv%wAA-kYSW`Hlw zRY0(LyK|Ar{KQ^LuiB4$1_fl-`IfFA|JOCM^r!ONuNB8sC1F@VR$*AAZ=Ty=Q7LAJ z4>~twKMZiBb`GCjsYjET-O*IcZjGk!n(F8JYQkUjiw$%oP1C83@KXHM7O0s-8%wN( zdKdN&#^deUMPR2+*QK()mXYEKqyntSu127NkU9b6^?(uJ;M&a`bSOH=-G%O&#-e3(J!PSk!qAcE&d7Z5b1#cf?gb0o6)hgQ$ z3QVA|bSsh}h_sL_K{g4-{5n$935BCNLl&p_=nZs`2UuMCN|80E6j>C7$`XTopz4bj z^{Tzbxfxs|nWgJ5CJ-rl`G1yBu#R%$cfK zf%Q~erHYl!O7Z5Y(!lyyk#HwfrFykH3!c(SRF?*t4F4vg3~PO7VMSmIe4$J`V-{w> zK9*SA!C=oitzckDpog3yQETVmXZyt>Nt%#c@F`g4Q7-DZ!|9NqW8%`mw(afQDi=Ts zT!Og+;AI3Qi#CY*FJ>4ASin+3siSinJM)Mt!ylbT3Tc$MddS&vB=BG&?Mih3c__80 z+)w^U`D`ccT42SFo^L>UF*osl1QJ`TK`aHOBw^7(`yF})14A>^1|nh#NJOi$gw~R1 ztDA7z9U=2!N|CKT$#4bcW|S)t3p0KRJNW~m5L-T;)5p>=C0iorv+rD@+o^a zOHB;EteP15D5VV8O40z6WOp|>`YCKo8cLp!ah@h*W(yey}Bwm8$XWO4w0!kQS`VkDFRv0AKo zBj2L}6%A=_idgp`8ybSVE$NbzWJo=Pjm2m*&YU-z9FK-F^jA#aBBY33fs&MM+For1 zIM((lfU}z!0EeK#!PsAi0W6tZEQe{&_Dpwi@MtFjFV>koh(;-*CiM zuq`OffoczWM65C1B@h_<LPLaUCjtZ* zBZw2)wnAiVj0mz(K*aO=?Q`yXulmc%Fv-k{+p2rtz2}~fz4zH)XPY1Gn>#?%Llsr?Sz}qu$RtdWRiNoibCd zcnX;=60>(IAA3`?oOz%a|KN>-OL1FN-x|?K&yR719Vi%SXv8oF27fzd>CeYe&_k8Q z=P<9mo*CzSQe>%4N*I6Lp~WX}!D8Za2QEZ3Sd^qj|KkqV1IVy+CsT!TD3_>}On75L zc7tWDs{@)xx_ZdF`rV~h#WF?`p(eL7!H=j*9_eLP=3 zl&_EE>%-?wV3_k0e&)Ix{&xKDcdu)gJaSu-8{NF`!;_Xh5&QA*#7U+5S=8Ow9uKlH z9}jZrdDm{+8wjW8f1h)I#mla1=SAy!;hehK?fq)!`?VJ$S_%R745ZTFS&E;(Fy0|HrK?X@-Ei?a9_2nKF3Jrxl47L zl3$UyiQ`i6x6)~|Z?d<+j0}(88Dzj2V<}mqcwp&O)wA4(Byhu(pvAh@M8!3k zo~KP$Zl~bsJG`<6c+$60ubZ!YhPD2ZHM#jJ*ZvT-e=hF3GaTvT<|~*S!R8}_%`a_9 z)m?A0MY%NKlkDITF+S}h`;Ml4WN*^6k536NdUCpd7X3SwpFZK0{ypy7+&}g}MgQ0X z75!uPQ`Bt#*yWUP!hvEg&e2DWUvs1FfbTBR({N;O+vbxu@?Zc&moeM!+#nm)l2P1j zkh^(fC24Z5g@QhCvk3ac4d@Gmk@-)AEhS_|VEX{{@vs>O)$Irx46QndPom6}D&;LD zf*mIUY!clryS;Cx8)OV64{OjK?d2!P_gT1Im^&){LJ>S>d2vF0p5HHtSETU^;*{Ud z=ikre-_PdXpIC%hdWcOH+8`FcTM;SI*-@~eoMY=$9Nc{gS9eC>u}N8|nYXu^swYBh zwJ*?g75OmD6=n_({KPZAW6L!jKE=9emx&wEUPq8JnU(0y5*~#}k4FkzEyMU4JXbpW z3<|~bghr4=FB-(Gvb69O+j6M8#d1$IrsuJ{2UB5tD%B6SqYvNkSK@!4zV7{hYjTP6 z9pju$a9pn4*lh|74Q+W%;BesR@T{9(Va_Hg9OY*Zu~?VU@`m_$ zc6Y;D_jLqy?A8t;>{py)nWE65Ew$@_EiE$iMO-FhiB+X=`+;?RTWvpxPq3 zCDme&q)lmtOf=nJ(TX9zg+0-34VvVYJI(@|+~QOQo77FI={~nqYv{e(YUTM^welow zOj|fu9LV_R_F%$)j1*2TsJD-IZnO&*87&y1h3Q&_c-c1EyihSeTFRe0+Mu~KT4;{Z zQffNdRO`8;<@t29saBrMk2a_@jTS0p>Pe|EzbR4~`2FyOAPQ*+lRJWQ6Ht4nIZU4A zTU-d@V4Hk^2txGb7&Obq^FIE|y-oh}(s@_WkHwv8$GaI!KxCY8bU+}-A%n{i;= ziJ4@@!Hi%&{FvjvSZq`3<2F+tpSDQlxsUp+0%;;pvY!atrisv2GFYq=GXrn$z}m$+ zFp3TYL2ye4WLwbz%(q#ur>0x%{iGxv2-@V94#*GV%on%;23z?4w$sYWSRw<(%OIcs z0{J|d5?arymM+dy{eos|6oEO({(5{gKC@ZzF7FF4JQ z$Ia~Vne=!{VRnf9j@x^MUdwt$tKWB{qh#)j8&j2_oj-l(c*jt#q~d7@Qtit93O%q4;2 zFSgvVp2iM4H|VjniU%v*vAz;_4C54;CLGS`aT0A$kCPaD#%1OewWTHhEcnL_$oN5^ zr5$u^7ay+DShcY_H+wwrBLzUq>kQwg_(GmNJn3f-w;w8*`oW4&-Opk*Sodlyh{sT| zfEUU|;uZ3w7gb_W(4OZC7jQDOrXI+#D#Xsj5z7lFmkIuT(rv^BAyxMEOC2;i4kokE zQtH6uGIT0Ru`IV08aQPy>t|*Zl-*<+%lVEa>BksiZ;oG4KDOf6 zFBt?SGy2%=bfepzZF+yBb5pdvhBsg?WF2pwydl^Mr-fC!Aeu z3dYaDyIZB1cF#4{V?JhK9=FFHj&e@?2#Qja;C4w}Qb(~%&XbqhrS(~tSkSqR$qgsC z0cQ}a6LyKNe9*Sx6S!JHO`JQS2Py^f7}HCb-qyw(;4)##hAaNU6iGuLS>o z#r_7u6Gw(3jP4?&4L&P1x%H7BvNqnt(JCm1p)K-|CD^mR8r?!T3Jzi8o-04ueb@OM zAm8vk-+kHFf5W?e{tJJtom_vWe*10v*kjEh4*8?%E^1(B)hl{W+AA*Zrh!k1n@jcq zg56sirZNAD_A4LsYcgMc#VmN@E9QbH=;*lJb<4(XO6!8zWIN3MS<(ITMRzeRcEiOS zc;Fbbqg}jZAIu)IWI5XZ{HY{g-42s(J>{r_;y>r?qX7SQc$gTuU-Eo>z$?Gs!8Mph z&)Icfgk%VMK@6)ZF_Z9IpXRoE3hRKMe5z*59l;Y%`{HBi1@ny;yNjW2=SI4jEdS z&i%G4aQqZol+x23IW<=Nio6AwvG?Oa3RX1zqTKdDpJe6xBGoerd<+*F1wH^-)#^FTplQ;~%F7Ul?ztH01FR$lffNT;<2 z*@Kb#ink%J2;12rFo=8k0LSr+w$NiRK<*-1LQ7cj_Ka6d|BvP0PkSX$>nX2@;L~22 ztxx9Pr@Z2Fc!Fyf{mfw^>{S1r;;O=@ikB3=CwZc}_ypG#-l+1xDuDF@zf41jr_tCP ze(3>PKod<$(JFeC`|g^)|z1nV7!dr8P__$avxce|L!%vFK@*y16 z^1;wiR@6~e)KS9W6ij_KK%CgKR2Nk*YTX<)JEJUV6Y-5=9;l$H%t0mAUr-3n0~RDY z0wTb|EgUq!!fg*0ZvSh81$^N?20?&@zZon$1S_$K*>(F&n2 zJ2MYfC*tpmv4l8*=0Cu1pTCrCwzQ7;@Gw{P%xGIxpBSa2WAVx3uvrXMqD(ncmYGDX zXFPu_o_{c&!)q{87Q-(MB6NAqraBU0ZVn^UZLFSgyZEa5 zA%bOuQx*jN9$x>y6Z&!3Vgd!3i8rGlxFgnW6q+6z!be3@U(T-;MCVqs$g)X5Fy!XC zev#e&Y5cRpKVioAt|#JKT>%L@I^SVghfTXk91TqnCFQ;(im>*^@8o@q$2zB60%KuN zp3cJ7_Miv3C1MelNsbQeHSExI_GQ@8&j}ms{+m(i!&KRcJq?u+kl~V1(XK0;63zAA z+ZB#SzYi9T2}&OQH{c8*Y@AHOm+~YBUySu~vC+ePdbD}#1cq)hgdr=(#IK|_ZzG2x z9BpGS2GRz5dv=Ed&Uok9!rSv>!Y;>eFWsujGIR*ep#BJRDbhX`LtIM!(M`l-lo^J* zk##QMGQ4F{vxlwuDN|I7U>B>a=3PVgT^r#;3MKIO0D6N}#2@zXHSZoa5Be+>9>0Nf z%|sZ12Foz{B80|OE03z4I*#(@G3bvu&Z@K}S#IaV4VO4@FYP-*WaoJN!^<^+q|+00 z#|I4Vy6+|rh(ik^d>QXx6`+qms5|nJu3=u9i4PKpb2ZGf*m1ZIpRt?6phy4?q&;I0 zrDVEsF`jzzU|ao%3({!|6EbN~3%wP_Z5}aE&GM=4Pm}xOz z&`zc1Jj(9T_hI+@D1oURnQiHOVHdl$Rgyd0?$p)L=qxD6#L(bs*u6bCX7_w>Oza?= z_Rcy~>YJC{-r&#Qm^p{^Fg74bH>42hsd9s|eT+x(9wa!U(6(Sc>P(*;wsAI191;CugySoXQ=;AJ@$u8@lYT5*_!6UlFo?0{bI7+dN%-PL^972!jZ2ua5=Ws`tO2^P*JLOYge zaiGAXV`wl&tq5dXB?*W)Pzl*^$u;pWh?cb4{0t3?Un}}o!D-F)1w6HnwmbV=JliC|ML=vS8EWt>_E?L2y^;Ec%MqJy zHlaRbUlyHru%ulk=|#{B9N5e=@tox}Gu1pBnQaV`i%qtlBEUO8Hc1ZWA?3XplADB> zHAy$XkNF^2_w1* zKvk2%=~QkMs`=K*E zv_@h{%d|{%qZ_4RgdMxGk+tMUuN=RM z_F+x<{_0TYU~e>muKCW0#$T~#!Jm;)*lKF35*_J-O0iQBOfND_%^U5?qE610?ROthOV&ymCtBPV%3D<`>~&f_R0`y{{qFwe zdx8xzDPV?ZZcdJ1bpR==RjAUuo0i~3lKCr8`gvctwVvizOk+tc?6rJ!L)@}EM7$Ed zSpou7V^O88OgKM>5HF~_QO>EI0Rpa^(bnQI3^x?5 zhdU~=uAtao02(VVzaLv{u0gFoKU7IW@UjPF06x~&h9osdD2iq9VR+qz0J%Ub<6fMN zzYLmSd*`oxaXfyPW@EM4d4_Ja55i+cBifu}z%g;8Nu4hV&KgN8PX)J8reC)V^mddKsl=sW9SapE$!{c(C8N|YY zB2Wim2U|78($UFsBmrTY1J#8BLmZ;b8>m!FQf!i&H5MnUw@!924n$X+J-p&U;)xhA z4kLl${6uHByBlvH95rKhJI4^hn2t#!8e3jvutXBuhe@ zCT<)KzEN1eELqN(PLfeVh{jn%YzQ4hwOQ~CAmylR+xRDulOVJ|Ko2dj%W4LLG-&=cHR@sqrL?om6K9wTSR7T}k3hV_ zq|o5AOq`*VH!l;L2^h1{{Qn7~Q#@t_wvl1=%b_r^9!%*xm~`WIQfFq92v6B;{LW}% z7Z9rFViSEJVH3j6XbW=8=!!jN+cC(o>ELy7ia}@K`O!B~AflV*Ik_Ey+h7KXeayF>^#1&FWv()!HyQ8Qy^(l>cl9qE>>Pdm7Y{Gy z>_vw6atViXBTH0?q;v)^2UI-^D8ZY|CSx}^9EB5tSxFDQZ2Wz7HJql5kGwR^D>#N5 z3+RTFy7^GLJOSDIRJ+0JKkKIL;_-B6*hQrIbhHIlbjq2wSYloWJGq|BzX#PGz4&2laS0pTp-k^OId=5~&WBS~j z?hp)&$7d|6+}65PU5}9qr|6Uc7gzhbzgK--d60rjuc~jSbNVb=$N;ev;w~~Np43?Q zHoOdKh3dP7w694p9)D<|ZtknUEm8=P_GyLBrIMHzDUHWLgKA9Uk&?31{AgF1U?6A_ zFBmzT4zTy0Ei48^esRD?;>jLhMvz!%oGE!^A9th4tk%^~$}v%>XzWbocn>#7t%(1I zU+lzPZeB!f#n2;~EXl=Pw#R>(qKoY=zthH=>~&>)Z_cN3+5H=rch3TWEg--y>Xq5BM35j;38?)H~b8^eEW0$pD;OYA*VvwlT*U zak07@c8IVPSdA5C&HzAt)coSB+GXn$zjW&;UHg{FIq%UkqX`<#m4VHu1Y<(NNtxxA z$<~6afDK35aMbeX#y)irKB{Or zYr82$D&1sA=owr%$N*-b-B8gbx+j<`8H8%3zXUL?^_fx;{q&Asb^)8Hub+ot8g2?p z%b7&^8HITcZ`Gefd3RMhMX6wXZ6qP)NA4cr!FthwPi6LwIVN}_?Pi$N#ia198H`)N z5dfV?VLUCHkFY_Td;V{Mm4a&G$1kpp$Nr$s<`=IVKcL90zcu+iJhhVpdCqG;f?qSY z>?F%I()P|rvFyg%4e;^20S?FP*bojYs&B=3>&CA`P+WIQ%rbKUk)d*QXKa(x6@wuI z?g%*~W!yrwS#3f-(^aZ=@ZrgLwriR-gK?h0e|X*dnN1YEN%y1dl`q|`X9ET{EgjWr z1fQ@AkMq_nx$mx{o*0NL_Ez>|sv{BdD$llsPEk+%jgGGj`dd z5(v5i&T6i>Tlo9IQsGOl?|3aUdgTr{NWqLSaG5^@E^}ItH9K;Ym#AYgiP6#cR8BT= zxSwjGG&xqnUU5^P(+he$)Yekxf%L0Qzu4X_EW~zRdkllC)sGH%=)gh$98j2XjhwA} z$t)u~qxbqANgx3!GYdT=&R=0X3NEP?aKmol&P3_gZVaGZbfkvLu?=9(2mxyHYlLbd z!j)Z1kp~$dZB0Jze$$E%*d@Sl+{#T?mlRKYkDw|0}L(-lbLc+fErT32eg|j zSk&L>^WdUUJ_uE`SIuuDAqGie{dRI6Rq(>@K-c2%k)uO<#T(G9ihVA;-^URO$-RVb zUUsJn)TmT0F=4$;4jZc1kLtvpgkJqd9@A_Jm@u=ZOYo%U(P9Zh7c3>m29mjNx}v(& zsH7aVZNL_CJ(EBMDs#tR_aPObNB9rp(Obc6^NalgV>tfls$5bUd(tv^WXNkVC!2uxsv*_|p&4EC+du!;t1w4f46?6Vp zsEDMADE)gvCIlnpG)y!_5y^1~%VMOMjE`JZaKIVRDEI`ms+RN79AUF4I~k~zK5-TY zwKVs&Y-t+yp9LF0KV?|P{II`ZcvrZKUgyc5=Xo&=enT z7aq^z;wP_r{~fQr*r8m%@!#xFuHTr_ews$;2K7b>#P!0-4wJ}Fy2t;ghjRT&pEZ6c zcF-l}^D%!dN=s55=G8E0Dm-s|P&H4ZkMRJcn$kI`W^ke`<>sSxxtx{LrR(Zt zvNK%MJh2=6IW)<+_ev#p?uasPz9Y;yJK_$E+r9ETuKYggkE6jnW%)(u>T~^Com--TXIO=5}bLiDA6YtRaZ(y_j89Kmx`Knafyk>AJZi_ zzr-S5tmJxzRPCgU!xH$~+4!&4Cc)VCO|zv?8u;naq-g#%xKrs-1-fqoX1EkQn>E09 z?-{IQC!XK=c0$h?GH83GoGe{cTn(H_3TVs=Uc_W#P1eLB zn3!BDWNM%bB@Ebz5KD>p^p8lRA&fRBdsGf9d$P-FuO*WzOQmrv+n^;z#kFWe5Y)`u z!~Qum*%=14nIBLFHg-TBgLbzVWUa)lhjBesEvhl&N<*Uk5$#W!)rx19?lVd!a;6U$jLryqlP)Xm z9yB@?9DO2{%fad?%;azz|Z3jy%qyx

JaSA$nd#kMyCu%hHE_Hy7Dxd$`%$vD_=DL`W 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%0DEQ)E95x?ouUW}CGx}-YAtgBjmyFN+ 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 z

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

DtA^kYMwMiN9I8zcV!R~uLJ{x= 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 - location: Quadrilateral; - confidence: number; - angle: number; - moduleSize: number; - details: BarcodeDetails; - isMirrored: boolean; - isDPM: boolean; -} diff --git a/dist/types/interface/CandidateBarcodeZone.d.ts b/dist/types/interface/CandidateBarcodeZone.d.ts deleted file mode 100644 index 120c7bc1..00000000 --- a/dist/types/interface/CandidateBarcodeZone.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Quadrilateral } from "dynamsoft-core"; -import { EnumBarcodeFormat } from "../enum/EnumBarcodeFormat"; -/** - * The `CandidateBarcodeZone` interface represents a candidate barcode zone. - */ -export interface CandidateBarcodeZone { - /** Location of the candidate barcode zone within the image. */ - location: Quadrilateral; - /** Possible formats of the localized barcode. */ - possibleFormats: EnumBarcodeFormat; -} diff --git a/dist/types/interface/CandidateBarcodeZonesUnit.d.ts b/dist/types/interface/CandidateBarcodeZonesUnit.d.ts deleted file mode 100644 index 32c0371e..00000000 --- a/dist/types/interface/CandidateBarcodeZonesUnit.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { IntermediateResultExtraInfo, IntermediateResultUnit } from "dynamsoft-core"; -import { CandidateBarcodeZone } from "./CandidateBarcodeZone"; -/** - * The `CandidateBarcodeZonesUnit` interface extends the `IntermediateResultUnit` interface and represents a unit of candidate barcode zones. - */ -export interface CandidateBarcodeZonesUnit extends IntermediateResultUnit { - /** Array of candidate barcode zones represented as quadrilaterals. */ - candidateBarcodeZones: Array; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onCandidateBarcodeZonesUnitReceived?: (result: CandidateBarcodeZonesUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/ComplementedBarcodeImageUnit.d.ts b/dist/types/interface/ComplementedBarcodeImageUnit.d.ts deleted file mode 100644 index 6498524b..00000000 --- a/dist/types/interface/ComplementedBarcodeImageUnit.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { DSImageData, IntermediateResultExtraInfo, IntermediateResultUnit, Quadrilateral } from "dynamsoft-core"; -export interface ComplementedBarcodeImageUnit extends IntermediateResultUnit { - imageData: DSImageData; - location: Quadrilateral; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onComplementedBarcodeImageUnitReceived?: (result: ComplementedBarcodeImageUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/DataMatrixDetails.d.ts b/dist/types/interface/DataMatrixDetails.d.ts deleted file mode 100644 index e618b17d..00000000 --- a/dist/types/interface/DataMatrixDetails.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BarcodeDetails } from "./BarcodeDetails"; -export interface DataMatrixDetails extends BarcodeDetails { - rows: number; - columns: number; - dataRegionRows: number; - dataRegionColumns: number; - dataRegionNumber: number; -} diff --git a/dist/types/interface/DecodedBarcodeElement.d.ts b/dist/types/interface/DecodedBarcodeElement.d.ts deleted file mode 100644 index 9e0d62b6..00000000 --- a/dist/types/interface/DecodedBarcodeElement.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { RegionObjectElement } from "dynamsoft-core"; -import { BarcodeDetails } from "./BarcodeDetails"; -import { ExtendedBarcodeResult } from "./ExtendedBarcodeResult"; -import { EnumBarcodeFormat } from "../enum/EnumBarcodeFormat"; -export interface DecodedBarcodeElement extends RegionObjectElement { - format: EnumBarcodeFormat; - formatString: string; - text: string; - bytes: Array; - details: BarcodeDetails; - isDPM: boolean; - isMirrored: boolean; - angle: number; - moduleSize: number; - confidence: number; - extendedBarcodeResults: Array; -} diff --git a/dist/types/interface/DecodedBarcodesResult.d.ts b/dist/types/interface/DecodedBarcodesResult.d.ts deleted file mode 100644 index d2ef80e6..00000000 --- a/dist/types/interface/DecodedBarcodesResult.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ImageTag } from "dynamsoft-core"; -import { BarcodeResultItem } from "./BarcodeResultItem"; -export interface DecodedBarcodesResult { - readonly originalImageHashId: string; - readonly originalImageTag: ImageTag; - readonly barcodeResultItems: Array; - readonly errorCode: number; - readonly errorString: string; -} -declare module "dynamsoft-capture-vision-router" { - interface CapturedResultReceiver { - onDecodedBarcodesReceived?: (result: DecodedBarcodesResult) => void; - } - interface CapturedResultFilter { - onDecodedBarcodesReceived?: (result: DecodedBarcodesResult) => void; - } -} diff --git a/dist/types/interface/DecodedBarcodesUnit.d.ts b/dist/types/interface/DecodedBarcodesUnit.d.ts deleted file mode 100644 index 45b7bbf4..00000000 --- a/dist/types/interface/DecodedBarcodesUnit.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IntermediateResultExtraInfo, IntermediateResultUnit } from "dynamsoft-core"; -import { DecodedBarcodeElement } from "./DecodedBarcodeElement"; -export interface DecodedBarcodesUnit extends IntermediateResultUnit { - decodedBarcodes: Array; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onDecodedBarcodesReceived?: (result: DecodedBarcodesUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/DeformationResistedBarcode.d.ts b/dist/types/interface/DeformationResistedBarcode.d.ts deleted file mode 100644 index 7228fb0c..00000000 --- a/dist/types/interface/DeformationResistedBarcode.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { DSImageData, Quadrilateral } from "dynamsoft-core"; -import { EnumBarcodeFormat } from "../enum/EnumBarcodeFormat"; -/** - * The `DeformationResistedBarcode` interface represents a deformation-resisted barcode image. - */ -export interface DeformationResistedBarcode { - /** Format of the barcode, as defined by `EnumBarcodeFormat`. */ - format: EnumBarcodeFormat; - /** Image data of the deformation-resisted barcode image. */ - imageData: DSImageData; - /** Location of the deformation-resisted barcode within the image. */ - location: Quadrilateral; -} diff --git a/dist/types/interface/DeformationResistedBarcodeImageUnit.d.ts b/dist/types/interface/DeformationResistedBarcodeImageUnit.d.ts deleted file mode 100644 index 1a470a2e..00000000 --- a/dist/types/interface/DeformationResistedBarcodeImageUnit.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { IntermediateResultExtraInfo, IntermediateResultUnit } from "dynamsoft-core"; -import { DeformationResistedBarcode } from "./DeformationResistedBarcode"; -/** - * The `DeformationResistedBarcodeImageUnit` interface extends the `IntermediateResultUnit` interface and represents a unit that holds the deformation-resisted barcode which includes the corresponding image data, its location, and the barcode format. - */ -export interface DeformationResistedBarcodeImageUnit extends IntermediateResultUnit { - /** The deformation-resisted barcode. */ - deformationResistedBarcode: DeformationResistedBarcode; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onDeformationResistedBarcodeImageUnitReceived?: (result: DeformationResistedBarcodeImageUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/ExtendedBarcodeResult.d.ts b/dist/types/interface/ExtendedBarcodeResult.d.ts deleted file mode 100644 index e83763d1..00000000 --- a/dist/types/interface/ExtendedBarcodeResult.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DSImageData } from "dynamsoft-core"; -import { EnumExtendedBarcodeResultType } from "../enum/EnumExtendedBarcodeResultType"; -import { DecodedBarcodeElement } from "./DecodedBarcodeElement"; -export interface ExtendedBarcodeResult extends DecodedBarcodeElement { - extendedBarcodeResultType: EnumExtendedBarcodeResultType; - deformation: number; - clarity: number; - samplingImage: DSImageData; -} diff --git a/dist/types/interface/LocalizedBarcodeElement.d.ts b/dist/types/interface/LocalizedBarcodeElement.d.ts deleted file mode 100644 index 1d87cecf..00000000 --- a/dist/types/interface/LocalizedBarcodeElement.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { RegionObjectElement } from "dynamsoft-core"; -import { EnumBarcodeFormat } from "../enum/EnumBarcodeFormat"; -export interface LocalizedBarcodeElement extends RegionObjectElement { - possibleFormats: EnumBarcodeFormat; - possibleFormatsString: string; - angle: number; - moduleSize: number; - confidence: number; -} diff --git a/dist/types/interface/LocalizedBarcodesUnit.d.ts b/dist/types/interface/LocalizedBarcodesUnit.d.ts deleted file mode 100644 index dd13c9cc..00000000 --- a/dist/types/interface/LocalizedBarcodesUnit.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IntermediateResultExtraInfo, IntermediateResultUnit } from "dynamsoft-core"; -import { LocalizedBarcodeElement } from "./LocalizedBarcodeElement"; -export interface LocalizedBarcodesUnit extends IntermediateResultUnit { - localizedBarcodes: Array; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onLocalizedBarcodesReceived?: (result: LocalizedBarcodesUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/OneDCodeDetails.d.ts b/dist/types/interface/OneDCodeDetails.d.ts deleted file mode 100644 index d75b1dbd..00000000 --- a/dist/types/interface/OneDCodeDetails.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { BarcodeDetails } from "./BarcodeDetails"; -export interface OneDCodeDetails extends BarcodeDetails { - startCharsBytes: Array; - stopCharsBytes: Array; - checkDigitBytes: Array; - startPatternRange: number; - middlePatternRange: number; - endPatternRange: number; -} diff --git a/dist/types/interface/PDF417Details.d.ts b/dist/types/interface/PDF417Details.d.ts deleted file mode 100644 index 88c78430..00000000 --- a/dist/types/interface/PDF417Details.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BarcodeDetails } from "./BarcodeDetails"; -export interface PDF417Details extends BarcodeDetails { - rows: number; - columns: number; - errorCorrectionLevel: number; - hasLeftRowIndicator: boolean; - hasRightRowIndicator: boolean; -} diff --git a/dist/types/interface/QRCodeDetails.d.ts b/dist/types/interface/QRCodeDetails.d.ts deleted file mode 100644 index f11f6b0a..00000000 --- a/dist/types/interface/QRCodeDetails.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { BarcodeDetails } from "./BarcodeDetails"; -export interface QRCodeDetails extends BarcodeDetails { - rows: number; - columns: number; - errorCorrectionLevel: number; - version: number; - model: number; - mode: number; - page: number; - totalPage: number; - parityData: number; -} diff --git a/dist/types/interface/ScaledUpBarcodeImageUnit.d.ts b/dist/types/interface/ScaledUpBarcodeImageUnit.d.ts deleted file mode 100644 index d1dd5867..00000000 --- a/dist/types/interface/ScaledUpBarcodeImageUnit.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { DSImageData, IntermediateResultExtraInfo, IntermediateResultUnit } from "dynamsoft-core"; -export interface ScaledUpBarcodeImageUnit extends IntermediateResultUnit { - imageData: DSImageData; -} -declare module "dynamsoft-capture-vision-router" { - interface IntermediateResultReceiver { - onScaledUpBarcodeImageUnitReceived?: (result: ScaledUpBarcodeImageUnit, info: IntermediateResultExtraInfo) => void; - } -} diff --git a/dist/types/interface/SimplifiedBarcodeReaderSettings.d.ts b/dist/types/interface/SimplifiedBarcodeReaderSettings.d.ts deleted file mode 100644 index 4407d9a0..00000000 --- a/dist/types/interface/SimplifiedBarcodeReaderSettings.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { EnumGrayscaleEnhancementMode, EnumGrayscaleTransformationMode } from "dynamsoft-core"; -import { EnumBarcodeFormat } from "../enum/EnumBarcodeFormat"; -export interface SimplifiedBarcodeReaderSettings { - barcodeFormatIds: EnumBarcodeFormat; - expectedBarcodesCount: number; - grayscaleTransformationModes: Array; - grayscaleEnhancementModes: Array; - localizationModes: Array; - deblurModes: Array; - minResultConfidence: number; - minBarcodeTextLength: number; - barcodeTextRegExPattern: string; -} diff --git a/package.json b/package.json index d86f835b..b2eb20d9 100644 --- a/package.json +++ b/package.json @@ -1,49 +1,39 @@ { - "name": "dynamsoft-barcode-reader", - "version": "10.2.10", + "name": "dynamsoft-barcode-reader-bundle", + "version": "10.2.1000", "description": "Dynamsoft Barcode Reader JS is a recognition SDK which enables you to embed barcode reading functionality in your web, desktop, and mobile applications. With a few lines of JavaScript code, you can develop a robust application to scan a linear barcode, QR Code, DaraMatrix, PDF417, and Aztec Code.", - "files": [ - "/dist/*.js", - "/dist/*.mjs", - "/dist/*.html", - "/dist/*.wasm", - "/dist/**/*.d.ts", - "/dist/**/*.json", - "LEGAL.txt", - "API Reference.url", - "samples.url" - ], - "homepage": "https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html", - "main": "./dist/dbr.js", - "module": "./dist/dbr.esm.js", + "main": "dist/dbr.bundle.js", + "module": "dist/dbr.no-content-bundle.esm.js", "exports": { - ".": { - "types": { - "require": "./dist/types/dbr.d.cts", - "import": "./dist/types/dbr.d.ts" - }, - "import": "./dist/dbr.esm.js", - "require": "./dist/dbr.js" + "import": { + "types": "./dist/dbr.bundle.esm.d.ts", + "default": "./dist/dbr.no-content-bundle.esm.js" + }, + "require": { + "types": "./dist/dbr.bundle.d.ts", + "default": "./dist/dbr.bundle.js" } }, - "types": "./dist/types/dbr.d.ts", "sideEffects": true, + "types": "dist/dbr.bundle.esm.d.ts", + "type": "module", + "files": [ + "/dist", + "LEGAL.txt", + "LICENSE" + ], "scripts": { "build": "rollup -c --environment BUILD:production", - "update:readme": "updateReadme --package=dynamsoft-barcode-reader --version=latest --html", - "update:prod": "updatePackage --package=dynamsoft-barcode-reader --version=auto --env=production --tag=latest", - "update:beta": "updatePackage --package=dynamsoft-barcode-reader --version=auto --env=beta --tag=beta", - "update:iv": "updatePackage --package=dynamsoft-barcode-reader --version=auto --env=internalVersion --tag=iv", - "update:dev": "updatePackage --package=dynamsoft-barcode-reader --version=auto --env=development --tag=latest", + "test": "echo \"Error: no test specified\" && exit 1", + "update:readme": "updateReadme --package=dynamsoft-barcode-reader-bundle --version=latest --branch=preview --html", "updateLink:npm": "updateLink --source=npm", "updateLink:zip": "updateLink --source=zip", "updateLink:github": "updateLink --source=github", - "makeZip": "makeZip --package=dynamsoft-barcode-reader --version=auto --sampleBranch=_dev --structure=new --otherPkgs=dynamsoft-capture-vision-std dynamsoft-image-processing dynamsoft-core dynamsoft-license dynamsoft-capture-vision-router dynamsoft-utility dynamsoft-camera-enhancer", - "makeZip_dev": "makeZip --package=dynamsoft-barcode-reader --version=auto --sampleBranch=_dev --structure=new --otherPkgs=@dynamsoft/dynamsoft-capture-vision-std @dynamsoft/dynamsoft-image-processing @dynamsoft/dynamsoft-core @dynamsoft/dynamsoft-license @dynamsoft/dynamsoft-capture-vision-router @dynamsoft/dynamsoft-utility @dynamsoft/dynamsoft-camera-enhancer", - "easyPublish": "npm run update:dev && npm i dynamsoft-core@npm:@dynamsoft/dynamsoft-core@latest && npm run build && npm publish", - "ep-no-core": "npm run update:dev && npm run build && npm publish", - "overridesCore:prod": "npm pkg delete overrides && npm pkg set dependencies.dynamsoft-core=\"^3.2.10\" && npm pkg set devDependencies.dynamsoft-camera-enhancer=\"^4.0.2\" && npm pkg set devDependencies.dynamsoft-capture-vision-router=\"^2.2.10\" && npm pkg set devDependencies.dynamsoft-license=\"^3.2.10\" && npm pkg set devDependencies.dynamsoft-utility=\"^1.2.10\"", - "overridesCore:dev": "npm pkg set overrides.dynamsoft-core=$dynamsoft-core && npm pkg set overrides.dynamsoft-camera-enhancer=$dynamsoft-camera-enhancer && npm pkg set overrides.dynamsoft-capture-vision-router=$dynamsoft-capture-vision-router && npm pkg set overrides.dynamsoft-license=$dynamsoft-license && npm pkg set overrides.dynamsoft-utility=$dynamsoft-utility && npm pkg set dependencies.dynamsoft-core=npm:@dynamsoft/dynamsoft-core@latest && npm pkg set devDependencies.dynamsoft-camera-enhancer=npm:@dynamsoft/dynamsoft-camera-enhancer@latest && npm pkg set devDependencies.dynamsoft-capture-vision-router=npm:@dynamsoft/dynamsoft-capture-vision-router@latest && npm pkg set devDependencies.dynamsoft-license=npm:@dynamsoft/dynamsoft-license@latest && npm pkg set devDependencies.dynamsoft-utility=npm:@dynamsoft/dynamsoft-utility@latest && npm update dynamsoft-core --no-package-lock && npm update dynamsoft-camera-enhancer --no-package-lock && npm update dynamsoft-capture-vision-router --no-package-lock && npm update dynamsoft-license --no-package-lock && npm update dynamsoft-utility --no-package-lock" + "update:prod": "updatePackage --package=dynamsoft-barcode-reader-bundle --version=auto --env=production --tag=latest", + "update:beta": "updatePackage --package=dynamsoft-barcode-reader-bundle --version=auto --env=beta --tag=beta", + "update:iv": "updatePackage --package=dynamsoft-barcode-reader-bundle --version=auto --env=internalVersion --tag=iv", + "update:dev": "updatePackage --package=dynamsoft-barcode-reader-bundle --version=auto --env=development --tag=latest", + "makeZip": "makeZip --package=dynamsoft-barcode-reader-bundle --version=auto --sampleBranch=_dev --structure=new --otherPkgs=dynamsoft-capture-vision-std dynamsoft-image-processing dynamsoft-core dynamsoft-license dynamsoft-capture-vision-router dynamsoft-utility dynamsoft-camera-enhancer dynamsoft-barcode-reader" }, "keywords": [ "HTML5 barcode", @@ -60,40 +50,36 @@ ], "author": { "name": "Dynamsoft", - "url": "https://www.dynamsoft.com" - }, - "publishConfig": { - "registry": "https://registry.npmjs.org/", - "tag": "latest" + "url": "https://www.dynamsoft.com", + "email": "support@dynamsoft.com" }, "license": "SEE LICENSE IN LICENSE", "repository": { "type": "git", "url": "https://github.com/dynamsoft/barcode-reader-javascript.git" }, - "maintainers": [ - { - "name": "Dynamsoft", - "email": "support@dynamsoft.com" - } - ], + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "tag": "latest" + }, "devDependencies": { - "@dynamsoft/rd2-scripts": "^0.1.17", - "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-typescript": "^11.0.0", + "@dynamsoft/rd2-scripts": "^0.1.18", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.5", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", "@scannerproxy/curscript-path": "^2.0.1", - "@types/node": "^20.7.1", - "dynamsoft-camera-enhancer": "^4.0.2", - "dynamsoft-capture-vision-router": "^2.2.10", - "dynamsoft-license": "^3.2.10", - "dynamsoft-utility": "^1.2.10", - "rollup": "^2.79.1", + "rollup": "^3.29.3", + "rollup-plugin-dts": "^6.1.0", "tslib": "^2.6.2", "typescript": "^4.9.5" }, "dependencies": { - "dynamsoft-core": "^3.2.10" + "dynamsoft-barcode-reader": "10.2.10", + "dynamsoft-camera-enhancer": "4.0.3", + "dynamsoft-capture-vision-router": "2.2.30", + "dynamsoft-core": "3.2.30", + "dynamsoft-license": "3.2.21", + "dynamsoft-utility": "1.2.20" } } diff --git a/samples.url b/samples.url index 00e29b17..0b037453 100644 --- a/samples.url +++ b/samples.url @@ -1,2 +1,2 @@ [InternetShortcut] -URL=https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/v10.2.10 \ No newline at end of file +URL=https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/v10.2.1000 \ No newline at end of file

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�u=;A02Sq6NAj6WNgp##l!V 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

G!@w>HZmRIqGiPSZ z&gC{}3cBI2NEgb7gQ{ZPj(GvXK=}d=ms%TxSr8gJ^62JO9hgyqAydW?0OU&~wub*W z0-lb|d`b6DF1y~`yvc(!sr4Z->tV8G_YT5Xrp#f|(9_hTNqtqp;nbEh=K_Cxz5JTuptmXa@*&u{%X1xx03Z(N z3~sWrkKkQW-KMO`IxlaB#Fz<}U4J5G!e!T|nc%pm!>=Lew7?q25X5ZVoP@x=cCsFO zcSCJ?yhQ3GXv9Ka5v=wSVFJ^`uUvd$<^M8Tk2ba)5;#cOez4jc!-d>Xx$JIG zysIe=!zrm(!k85HK$_fLv`?`IIU#OwhbFXHDavy{4T+hs?sj`WJmn=XJW}_p9}%H- zt!eY(?(zN<2zyJHSj6-{wqep6)|a&{FWeK^Xbexv&!Joh*oS4bpj-+HvzU5iRk5&DjKgjtOY z%FDDBY>{6WQOpbeBlqB9t+Za$3Q0(;qZY7(fDOepKq-{5w@yLni4N$3R!)ZVlf%ee zpT&5=N;S~Q^NT43JeX&H1C1b%MIUbEUXH;9pvAhs7Jse|Rq!?H59C`a;(uqZd;etL zoP*84gnd8Au$(vIKdLNKmE{GhywX8lq)NQzR*6t@S>ayI&9P~$l>-l#F6)fOzdQ38 zR2o#_2*stKTa+O?Bqo#;F^P=1APTEgDPICPruW;LUs#yHz)-i6mCps&ez-FgB}tFo zDAB4ZwLe`vKugE4r7*2o@sSaFx0kyWP>8G#OM$kVsjFc>o(tRZ1T@dxVQ67EzNRpZ zDJtnRa50-fP*+LmB-}O*n3=gqe|2sA3Il}ydM+0t7cN8pln?`}nSw1WQM;Q=OTHYb5Fy?Kh<7URi}!5}BgoXy8b zPzXtf3sW)Jg|RVOo-V;Go$g|9!U~bY#dT~6SuYFO+)CGZkU(V1Mv9aN7h?#-reTR= zxQ?}E@Mz@)fCmnSH0?A*2PT8m0bg4IF6Q!{>DP%h(eVH-{f@%5Mix|)9n2-0mvv7` zIMM9JFd6S*H7A&2Oy-U$xS+wBuBxybJwr~~*i$St4g4cORzSvXbTK%QVZ%-Pp-jf+ zTxQw3!(GNv1=3rFa)P+X!z7HW6G6;7G4BavF}=;kKy;X~@vvz%+Lx)R^CW znaI~q-%SBed~5$W6W;H*TgXog%*uCpEORp#(s3jOJOlj`tB>_!8WeFu@?Nl5#$nZ| zWh3mSn3{EN`Y@`3R$j*xVwW4fT`RRMB`c864FH5Ot^vlYUZ zSF&4-5KfyZIK2>47rw8O5{W-oWs zNI3nyo6}1EdRhK&)Id&blE4rXeXzKJPq-_%BQ4CM$T!;J*Uk90AAKK_iOYLA`uf4i zU}m`u9@&|dgz>tZawZ$m#Gw1}HB(ohT7t4RNeHS7c4+L*99N=50PF9B_s5n~P+CSUooq>21RdRh6>W_iiBI(9b>$K#XbtSJ}~A`;}t z;c%f*W{N_mYb#{hg3n+~5Z=4yrm_Eo_}$K$<$N%|0OxlrX2 zGM}nA?sc{%Oa{|xbN0_pxLUAdG#nP_C2;mE328r#$lR8>YrLhIn1M_qIw(tJ?&XK5 zOU%vmMy*BlHWiOIg<4B~t>VH!=UyW>lg47Pbo41RTK`MsM4GZ1KqF%Vz3MDAV-fEd z6Cu-y(ie8&x`bULR$PDR*C!!9hP)Oe!dk8ObU1Id}-( zy@WI%&Q+tv3>#xuq+o^$EIv4Mmnl&Ya)c8Ru)hDB05`i^#$ z@bGOl*EAm?yfB=VS-mUU>qStYgHy-(KVJLtAFo~T;{$wr;Soj42hQoTRy;ONSUyuw zIu_j<7kF_Xy+C8YtGs<683{z5qbLY8VVNw5wAFqoc2a;xkPAZLMz057=MB|3Z_Q^1 z|L>TyEy4Sa`QVN1gR*OyOa{U+5dxvClWOp6qYzyR2>`^Y%#ludhBd~dpMT!hi&-Z? zrnHil5FlwDYMT;eG5&B_u{{R1=s#;=meY}~?uns#7;`nLCR^Q44{y=%^pF6YMe><+ zOhGUXcr5jTpKmDU4u3@6%soXkoPyJ;uU)CUZ3kW!-}7CthS(9-ANu$=X-DmLvCl-d zVEh*f9~VPA(5{xoSHrDZ<`~|%uguNDg-)p}@ik9LFVj}EK#xvwR;2I7e^dETHJ1Ty zxP2b(RmFHhWv8H_eJGpFXV=^XZi9nEwue7UkWg*e|1NZvpqDDT!fm3^c4f0g_U$8ATu`{@BESr2MLEDS*#isdhzzK4bTsc#6HS1_rv?C>al(@W;hbZmSUV5E6ILX_vKxX(Ay81a5)~V3 zd5rUg3tp>qFt$}kBOts#AlstP)NUQb3qw)k4xi!E+`!WXN-`Q5O{4{_2=lZ-SNG}4 z_=t)cUplFoy<-GdeF{Sq5|{Q!*Z``TAwJ!tyNZet}olw$fb2#6e3!SMHO1Q zBd>_%Ea)Q+R++j4`7&O(fPTLHNx!IBpdWHF_5ZZ|D3G5#pU6X!_!IlfUdmeg*EOv z?kLj7_ZQu1;+(z!tL~oYZ%kPm`R-$J9c39ul&ke2wd zF~E2mr(V>}fuN#d8af)GnoftL0lWs{$lcB2K=zFWc6f=i)+henGB!)B-8G*UI(w_`l_0fC>Smw zyQ!BfxaM9W^t3sJTG$EW-eHF~G(@5`@~ssjPYt042sNavhkUMy5h-Nmy`t## zm}?Ixln|e^!_n>rz_P5ca%Zf{;qugt$0ZzxJKNfyhMV9e<JJC?bBM{%pF3Brf%~taCZTn zSGGI#Epp?)Q8MQTju{2irUTzW%Mf7t6ddKDzuLPPI_utf=m#MqhYk@gNQ65aIB7no z1LwXUIMtdF`5gk2m4%aD$qacvJ}gJY2pBgpJ5kCD0e~$RrtJOYt7?_dMk<4tX$)do zP(iZA|8*t2r7juf^x!J3N81t8v=c$k0*!eb65)=Xk_S(-j zrdjM&Kn2LP#a*Tto<&_{`U)%wRpe2cqfRZ?CRd$DF;X4fPAK*{q)8StDszDo4zr&+ z2(766ty6%!h4DIV1~F|G0+*S}6MssfnP4OM7cRglm2;n|Jno{;OUnP~6f5k~PtUfV zlTQH!_*G1SUV7Pxc4My8cq$6WoTq1|aq~{%sNaz338@=o`K1j2rTT*p(rYlk3&~`qQ;J zZ+Z+8RX$6xQ;si5vB$klaQ;x-2IW0M$D-?xBiRPsBm5l-?d*exSYQtF{-{_uB=LA+ zR`H7(jM%|I`uVtxil1|-in*X!@nRL2htO<3*Lue9Q+J>7R^XG_ zGj5~S)7*B?M0KZgb@a_ej2HE7+TO|nN?y7v5fcD=3KOOV)je$2^SqnE8)%o_Rv-=Ty^mz2>5&kCSiJ6Io zH3!RB=^)k;a(+oiw19!~G*Vu2r31~Qb)^IKpAo?D(n?3jb4p>(uH32d6IEc||8b^< zyxsw;q^k5hSC!T~Xeq6C1p1cgbt3OmA}`OIz@zFBNd3?ZsgGdy_UL;&DDn~hE+lMv^S1BF{SfWRwRK<#6QUNz-(98MY-bEKM_&rK<9hkiSQ2oCBG$9s`DX8;tG9`* zsL#mE*eq6WN+%oy4HHpQ==rvg2if{(6qNb1S5H49{x|e{Eo|%G&jiSW%*R*FcI9SYL9PVYL3|IMqM4o)37_ERnFqXA7s#+ zK$VOg)V2&4A2$EV)qbeG!2Uvs4M2DlI}(A}`Bv`KxZUZ?T|B!T;EdR$V9E{ZZx<7( zP}{)9qb}%T3h4g3+j!Okn!BjWngsJmFc0#0rnxeM)cYzCKvRJCpC9H~lIJRFJ-|l- zd^8Vm*R#VR(gQp?iKAo+@cwHKrk?_wyXYhU6yP*E?I7^gztRIdS*c9t?nEeK3*%4C z0UYx#87j)N)ZKf%%McEYDInal^V^v`!gmnxRgNKk!qfpT83;=41Vg2Hs`ch+t($x+ zT*J~DSpgzhqK5oB#xq@g0=iMLQ#V!e>S-m1xl8Nsv3bxxPiy0p;-z4pQb8 z_sig3?8=SBYIF7vT*pq-SkIcXn5Fx)4 zC4+f;g;^Wj)s>kTFUM48qv~LVmaer@YpukDLe?qFG+DH&ST=XElM6Smm|=&6$5|B` zRX6LLaR*VNE3l|7PE!nE$QOe%P?wLUOUngq@GV@hOzz+UpSU9|8BjHq4h=7osq5ux5g?MH)A%uMfcm^}@)YN7g zG5Z#im*}zVC5pU-|G47xZ}DxMn`qaU!$bwOPoO#D-Ha5p01LmD!6+#I{Z?nDqaXSw zNKBJy$mb+@9qF|~zqJ-+mB5aIY=mj+@EbAL{%dUp3epT?NL(vL^)@8SCbW^G{4i3o z??Y_J`TQ^kwYk_laPLhx)lOw_ZRkFG{QJ&b=zN|6vCtXCpP)BH+q6QocBRD8%byB5>VIG>Ppr-o} z1m)QEsGd>lDIAQu{VZ4Dw6rSZ9X@ZC9r&GM4nuW_hrySGT9q-z2b0ncS(dj};FK2U zb@MX|yx`siKcI2NR>I^OgbumsmR-tXGyXzTo}hicEAD(8jt^388iHgJv669pB| zP~)4QBc6wn_N7SNslvZO;1$x@FvaN11Mf~bXiR2KSBd|j4&`j5 zPY9p%E9m5tC&mySAQa3ub1}@9R5f>`C%5qtxmk{Kf&HcEA@0e5I=v?q&I$Tz&`%jE zL4=l6r);zwe~q|~K6Nj=b6byoY{4F}{L*qcV0|C+iHWjh60_3mUH*8K-Jfr8qu;+X z$!oU2lahdO)HmV|!z+1X+U|ej#xl;(jd8VEZ&sT@UBW&s6p1LD4YC6=w?%=mQ-7`) zuC!CR*ewx7dO%+()YA=`C-$@>I{4sku*CX*dBRF@IoRq-o0M4~k(vCq4AJ4&kR4U% zcs#GoPO{*uZLMK*+8W+Kx^>GcL?6V+AwUGOLowagC^q$_=T405#3E3eARw9t*IPVr z-E#B09t*^T@R&aSAcVWGHH3Ac+aRuJ;R=?!{_V#KYaE|yKJI7;B)h<{*-*Q}`gAnH zUS7)9HoC;f-;+naL?gmY69Gk=l<;`*=RO$rAAHxg4=A~Mp^_i}^#s&hHA_QqBC}XB z7FPY~5Zkb2oq@~@w|#;vpp!Zp?M6R#a&jTi+1W#f)c69%+EK7~V&}q%x%-Pp0v@xP zT~F-EgwS*X238ivW5;Meh$_TW%Z;=Hl5uQ`WR}YmH}e367xwks;`)dvOLP>_l#Y66 zin1P>RX~%v=01o~`9TlO=?AiEK3KN#v%wz}N6vV@+YZ|p3-HzBB79w)3Hf#wY=a{0 zImEXdbT9)iIcWs%(hR%-*=0r&Ob-z2>z(^7e_=2Ck8m^cON`itSLbuWh$F&aLRET>tpoa>a(fBf^skwb;d*6#EZqL%FW(g>#c%Ia?6LY2Yr=W77c z9ZsO`w_zfQYWOw2ADqw{`!Z<8|-Zb#S=uAA{yn~1sZ$yYM$R1E_ zi6%JKy}~&^^uL6kr64~(fX{*NaGSq&bzudi0pZY&PBkARc5k8M*tZ%sFr#Hoo9k)t z8`*BSKz$v$$JX5)`@mo=``XcQdRQxA+?%Tg%)FRY&@)5gDp+A;ksEEqW%fV?3e^7XAbOaN-2EnsRlk`K=N>R|J@(#XVlj6Le>E19;C2&lxpB8D0gS z*?J>PpeCcl>yEhq;gsSe0~=+NVl+D0*|EsEKo0ZCO82&-W?kSUwVn)uGzIL=?u!WE z9o-n$GVpY%WI1-7?dX=Btr_sKbi8~c^LFW2jG6{nmPsR6h!HGMHxnwh-dIVy6q|Ab zK)Go26E^^U+4rEo(&1;^jQ~{UKaMWhI);XX&XzvgiH}tkSJKA|e(ZNVh;%=cz&l9# z|5Q4@WIwf~U6Y+v!TL?}d&U;cs#xsn2@nyI1oQ{5P0)#~JjWwD4f7=gn^VvvB5gf> zw^~sO0u3iwsA^DSQrwaZ3q~DG&{e*e2+}~!hO&(k(w7(}6}&bmeL(y%v=YQoI>^$_ z>7*he1S*HO2HoOs$%2uSKMZ53Hex5w_|_D{ONA0Jf0Cr=JCLZ_=9~Xee%a8bZ?7>d z7+)Lf>OnVsrH4?#)b}c;arZSEl-!kZ*H!9>Fx-=fy{>A0q)b7nJo&9(FS>v6D^a%T z4zr6py`FY8*Gke6)zwXAQ6m?qyY}yDId&)NJ3WTrC{tV;@_BYzL}f?nnn|xKco2t$AH`WVQo{gKp=M z=H2URvBr7qWT2QZI4-X$z+je=E+uUraJNfdZKJdy!`VrHWjGoZ0W#Q5?HXYv+euM9 zP^HY7W>E&;y>8zkmDiUB3(?RLc^yGs2?mR6eZReyz{J)MGE|=KRS?HD!}C7zh6Ta3O$gn zEEsl69BW_?q!yuX4;C)e1G#?GxU5TougK*6<-Za(FSp2z zj<{slXY&Zh+IJ_Z< z>Py6vb*!u6!j$i|HM@2PTlX-Vi7Kk^KGxRvBxBn;A$+$%9-!P{YeVqInkKaCL(Eks zh%t|t76KQbx*Iusb_2FS>xQ_upEP&>puBYE;^6!V&$A5YDzSt<}q`#lx zefY={yxd_V6^bTspIbO5s>`{WJ4%efytaJ_2`HF z`m0ip=F8{E(}R6u53G;>G-rZiLwV@vjQC)6rc9^t1V5j6W*)RoChJH+qQ`|KA&2m? z4w`o?nI*7iFu_rrt2}7^bD%jLTSN!Vj|QvQZ_#IwCI_n%%8IrmU=ZbL11Zy?e;~Cu z*jl(B#_-i2yP$Z6%|V|P-SE}b{AMHmht^{&W2dAb4*yo2W2$7%O44+q(4qHpVUDI{ zDVBGVH4O)d1dwH50$GQGKzMG~BnrscEkZXxD-j zFmG0y)Cmfr?t1zd5V=A&!kS?LFWsX#jJD9FMsIulgh(+0>cOD4_hgVj+>Z3@fEsiZ zx)K|Ffpn5lggKyv&?>vbi99-b^r(xF{2SgpAy*pYK`Y$gg%GEa5Dck2{eJGti+q@! zF5~$xK^=^bEK})3CKx$FWKu>`jE$Q)M~Ay_zAz|vWD{1~LOvnu{zR#9kR}RRV4rz* z84|^yZ5eur-=TYeO)Rb9TreY)?!VpqLPRw#vtaJ*!F&JCC4@NQiK)a48Fa%t0kXSF zyn~gt3uLAWhwpwv@SiO==vAIPWJH9ZtIc|oX0wZkxfGn-JY#hBYC0EF1>KB3$n2FG z>@)_3!=p69{EN+ehsiC5gA%MeIT!$-7lO6vpvg`h8e~t;+wwtI7Sux1K)|D(ApjlG z1Z2j4F{y!qkl-F-LPW%po0NwSm#!WVuCNCFCe~2XwMY)c!+yxE5A~R(j)rZMJF3yv zM*c|1i2gH-BRI-%U1n=8C4ST{-`271oF_Uq016Nx+Y@Z~?B>XubLEmAu{H z0r~o~WzrY_t8#4V9B#ze`J3<|t7c752GDa`bODCB!H6~rUyho%R z6lu(~-&zT@E%2;C%!ZNolXGJErKuRlG)#KJwY{GG!|Q3yI=Rk_=>ZAXDu*ln1%D9P|3kbc{Idu0Wb=}9;}?YS_Z`G z=XJ+q+_n~jM`+?)iBy8yr3`HnMqWYBjwtze=zLA`!m;)%Op!54?U(S2qmmP>fY!fB z(7K$*C{Z7Jus5Vpi!_^it>|Y2;ExQlD5KxDAL{%e?~-=l9g-amI9cYtW6>+~NCcEg z?vmI1s$ww!B?0Sl7&G+HJlZ$l;N)`{ZV+m_jASdCQ|mfCV88HW=+(V@wBy$SxK zlsdp5aOUE6j2^5cI`K*B0pJM<9UXUkv~D*;j6@aCmJ6N4MoUtLNRJQ{xXN8VBbV;t zUHk}}D>`FWLfbDGls}x-vCRZ-cZE<&di-@xB3k};^4Z~v-asx!Opp@*DOP@NJ7T^ z0c>OC!Yi6QDg3MGPT41w@0h+q??o6EJa<-c^gv?XEA7dR%lr0RA+hK~m? zynXPTZgsGY4rWaU4gXw>gCY{B)kn@d=wU$Y!O5^6{P4>Sey$ajRkWwc2&^vkXaU%9 z?u&hC-lwFP%X>2ZoI+>Dbq6X_E3H&6H*J1#gys+r-9X4=#}gVOn!06BwJ3vf>qLO~ z!ckuUOvWAxHt5HC-V1@V!XiDRgU3v8B8fKjT@(esR|BUFwGhM&9ZxJbSn<4iukZ=| zI^JL+LzbOt7aMI5m2cSB4ms0~@25gmzdLTrReA06I3t>Wuzq>^^^WhK|MkeWUr%oP zb!OYIm$vL7JkDB;UFvqrMXe@(AN)YuZ@S2!BI`M%AcmJ7}!=@Rf#=>G%*O!)i1A zYpWeqRd_zG^5aJ2yR-%}b9;lkVDGgPJRJwyVM@yYzL711Q8Zi#k!f145_LdlvkK@t z)8^OL&#EUi6M3Uq)n}ycvmT89WlopQ3{41)-iRQ{e}5?3Nv4TRhmr^-AzA$}Ww|@+ zMd{q^(GLXijWI9exN4Quo}MVefO;ETQlqg|B_T~Dar1s)ti23WPd@B6-{r~9uZ>uF z93&6EpC$3ljsQsErtpMCA#~b|nH2O;T#(L{@~}eV3D<65+(|#8yc}KzzKc$=ZKx zmhzaMsVJ~jFG&pV_o{MrChMxrL?;Pg=RspCkP#{S0X#HB{c6z=`P|g)ao1xC(4LJ$ z{bAIg0tn(lCX;-9jo@qO)&M?{Y#7_yU^+YxOoJ;D!yso5$Qs5YIH$BOrbJli zJ^N9R7)h}~Xh=rz(wrq&;rvLDuVdnp3VBs!C7xweFl*v;tT~hbXPGVRHpBW?%V{<& zgv;5pTHX+(Pgm1qX=6HLzscnWnE^&WLrrTTOQ&4&oI;i`XnUQYqX&x#b3y1RGh|Pg zH_8iln*b1!^arI?j7Q><^M#i(#=&ojfMO*`C=VZ4DleCOh<%75$p~B2nYKd$T~!>K zOpi-}Xit{6$c~PYr$Rc4Lj8Mw?(f?Eh?4=iU(CY{I!fVGZzA|V@Q+>613@&ds_gJl zY*q)B;Qd4CeT>S2!4&XCz*w2z2QdHB-PKV;UiE-8x-TGAD9mE@PtO5ejL+l^OgIj! z*^>QYEDr-AKDU*Sw)|Uqg2~ZD5VNK zM|s4$7E=IF2^|)mgO7tc7@S+(2}OPPPS6>`$s(ad@KpcAApVZxZ@3c_3<>?Z!11om zn7oA`m?dfO0E=pw$__wQL5hQPa!=TfV6Ig_)zj54Dt7V*SsozcVo;D>97H~(LlZo) zSPRK|fnQ*h=U0a(14KKo_zyz>S1hV(e55|y7-mZKYPA=rJ?ndr%jBi@pR+nHYZjBI9rm#;T2;rXs8cPZr-DaTnJ zmdo4!D98DbM>aUElAHA-lgre5ICQeuC@EaF5k};SCHq}qdSrvf%^FiWpQa`psSj#D z=%4TdT@EM+G{5Ue^Lwjld2-w9aeEmrh#=*hg*;tm-WLsbcFbR z$wE{G9f02bfnMIT;*~(?!ES3qVTk@4?17=nuUsxMB^M*k4rFs*)&>zMnT&4USipec6%6v0K>wiy3~srBF@8GSS! zjT>Txy0ZBsiF=bo3N?CvM~$k{;c)$wDEx)(QHW_{7X%5-z+eCVdT1$erY>rltBuZK z1ZXf|9<|jL+RZO6Z4`hWy`tJ|^$an02FxAw=CIJCLNqu`)ycF70S{S+gjFG#E<#>5A(dDu2mv)CYw9?YGC4l-g_5~mGEq+Zq6 z?_;GJgrhCVSpmcr5@+1*kW-G}n?p>lgZ3WUaly3y7CZ=;eBwW|*5Gku7LgiO2(Bi> zmdGD9zq?MH>T$Hb#ISi)-pwwE#1ri(ZVm_g`PEq>)gJG4U1z-0FFJ_Z0!+P;Q0j0T z(4mN7#7nWc)wL*ErkeY6=DuZVHV>x%_N$Ma|J%8bFuX`x3|ayT`9o$3 zo|bMM3$EMu#`I%zi~S{M^6;YHfxw(^IlkC=zMgWE#=0omTh?o2FSYbBySd+Q7Vx~>0{Q4AyhTB zs`)+4R0bd~fHX{_gx(%Z#LUVQ843Y||8U;A?clo3uu@L z&fYMx*<2xc1@)v1a%m>T?2rbLR^fzFzhK+M&GdNbb%wkrb<|0c&cUdIo)?dY7au~V zSt*`%e8t*g!aZ|%%iJ1aC}}CF^G*>`R}iwW9$ZyidNG7h$Rl9*7=-8*)K?%v%0Ng; z%$pDrE`pqPI{dlY5E8)^!Ak-mHTq?Wn-n2^|C9ZUE4W9woY!_{S3e51+igeEV%-G>7k3y>{3=goZ-rlXV~V%}8|uK0<7S+O)LB z4u=I6QYUO(#(D+bFPc>I7#jl#W&=Sg8%vHIfPQ;mUV;-Ha?g^1Hk~@aeRn~B zcOM68s&U|0>IeHN1sM-val~{$OGUlO-;!!;0*mTR8m@r-qSmvn0m*7MsvLjUMpPZdN=;tEWgkd#>PoPZ8&nm+vZ?(Pe_Ya z_9glaecpYHfzGIgEv2k(^B!S(;zx%vJ>bZ1w8p|8YVA(zx1rQ@dp3v@@A&$v0=4F< zq9i;v)!y8F{CGFK2dMw-KiR=Hw9A9E%I+86zC+<&c3*lskLgPH_=z2`?#^(>&OJ+= zTbjFt4cZz9Y*D6EC~=mrjelrgxmz8=G;eSO2+qJU)~p}LT{4J>I~fw0Dm7X{53}J4 zs`gAW5S2KG{31f#)5R1EavlXfpa_D#a zkK!f2rutSNUQ^wxmhL84^x)5}qt^aDeiQR!Y%Bpvs=Xn(;5R4WVS(=_i_tO`gR8B2 z%Sec2^avT?QVaIWg=ZSdCR;w`QjLkFUN4T-c$f4G+YyZ+kz4B44Ph_ZFM2+rvF7ve zBYNW>bc6kO;$HZJbBA&cE0r2IF+}_V^ zlWtFP3$@5?=h})=@8DIUUXKTQwf!6rmjEl4CQ$vUVIeS#*iF!Sb-W8`4TTmQlw;Qa zU+z&XZ!dyBhXxxGkd|lk2Rcb`1Qa^QtJoTkCcxJC zlINj>FF}5=B)Ad%AnxEz5Tfi>k!D(?h1an$8cxa`E;{0nRp8+7N|7UX6M#SuB0b0q z=yU#--HeKZ!dMQ0NTgPx1L*kGOglJkut~G`id0B?@5Y{_>)=tHC%2P;4uKowF(bW} zBkuq{6FSHt0^9#^eFO5KfjIqhu(6h)y4Ef#Q}c_MJ^uLClNXWSR9s<#CUs>XR@?e6^kDaK)!lz)%PeO=QOhYJ zdr^Ln!cZfD!wU`N>L?%%$5)XA1@`vZyw8IG6$UHabr{LO55=h8R48>(-sI6O zi)qfDG&r<8M$zsdd0!&k4PI3)i~{Iek7IA1zc*GFu!+$FUM6Q!CD6+bR`(hclskr> zH z`NzQ7iU|Q<5JU8=4ffCi9frqm=XJ0hu^PKr_Xe;QiI>|K1D?11hDrZ_NDhS`qT3MZg_ zMM{-<8ny^{bhM7p+U~v8tOrh}OsPP9?w#|ue`TfL$SSsdz{pBS1vFTd(R7e~VxZG+ z*<+ z)=d+=L2vgw39GY8DKGFF14xJsFt71RMn13 z6%ji?bqBTG=fscZyC$cmiWJJE=1XPkxw3oFFQbDXCGvXN2QcWb0(xK&xknWbWe>?w zkt|MrGE3t*jiLkjnaa7Kpn~wwlQ!%3uN;46VL7_{fd@Z&fYsoSaxJ=l<=^JHEAw$- z_Mdm@=?`2v9>+&i@VP6;*LlWB;RrBw9YHk98mx^KlUg(cV7Bxk$IDcr`S#sRiSf1h zd+R{N1B;D*`QD&aIH9vqMLUyE;PD(k`gig(UP?wD-C3eXN*9b#eWm@?m_3! zZ-KQZ%VD7W;{nAW3^WEr3ebEV{zi;FV!wV09LFv+*a&M5-%giP(j+)Zz}#OQEv9w@ z>J9U79snJr4Lh!z?_Eq|Mg-*1{-uCirWR_+)Dk%aL(%;sx2E}A3K+jrI>c!(ztS&g z89`2D2RNEPSr2O^5~|g@<6^{+HvdQnf{mOks2I2J!h$Mr*Y!qJRDxSqpHy%9fV8RU z1NvjX?0#G)8J>aG5>qmMGkM(3rnLeO#aSz-yT4yVC-j8$ zBd;k43uEf@U5Vd?bMA5xpWs5i=eWPU_fMTvPT~D^<$kz;>L`qj>V%2tPaCg_>#7xm~GHx2U=HwKtsG) zXe^C~`|MDQ1GC!fWu?}Q*~=={pwj+K?g9gvQ~3g=bhWi zB<28&`!o0}T*~0me3m~Z+IztnT&KAt)Ny}{1OW721PSw%ynoaV+dH^x07nbILNxqV z-qzj6^!>&AH~F4h^3U`4r7N1x?=jb1>LuTA?jo{}t~B4XW>zNJ^ zt)Zj`QP90r$p*oFl=T!fj*QeEN7io)c3@i7%tj0YW$F+Vx5vHdsl(Bs+%)}rHT`21 zZ2Ji0RI^p(`7e1x(F6WzC(A~4p`Y^OiFyN?#y=5Y4ML6pK%~eGMf`7m6UM@$ac0uC zy%-lc1}~p<6(MU(ZpE`_RiL2MCpCuneIozX^Tbb_o~kcL{q>q+D?Pj;J^UtqJxiH4 z1Clt}0*v-YK73A>WpZ5R6BRyd3Pxb@naGhh5cB*(Eq69i%WYhqU9M*QyHD?jfr0 zYU?;Mwz~bw>cvCfP!y-T_kQyL^jv?U<%9_JU%H2~FCf;$3t`ahGGC{~G1=YWNjO0c zO;$8bVSOHC>-B5B2DAHM$wXT;R5P7MrA~3^D2oZK@$#H?662ZU#3{7m^y)xtN4A&4 zyI54iE;TV&EE9#)>4`LEUP`PxAZ(BxH%Gb%)r2F{(VCMqjRFbl5~#;MlgX(00G3B) z?R{0y>+^0BPG^e1Jd zLwDDGVcjqpSp5D1+7g>5YRtNH@LX;0$_T-MH4K=E5EDb?DH?}U5okChz#1J=YOb`l zM#oPnMxPm)ZXoJA()|1$sXFZ9C*$EAC{et7i_U<9)v00gXM0%6zwbsw^#W?UaQC!5 zyol45TdLRu*TJW zWuy-7{$uR7u5rKdI9#(f8}McP2?AfhVrN!;3Bel2DN5>dltE=ulj|-$Y$392q68y` zo+vVLY%kPZkrQOVe0hLF4E<0t5EZxxRXQijiFWYqWo~Q!xKV!}DMb)F(b_$8Fe%68>Za)Yr4`Gv% zPB;7_lpxKrT1SLUVV47zNpf^__wg!PX)BUk={VDoHvT^cq>PS}_0F)-wT7ev#Td<| z_b1UmeCf7yw+M$ycL-9ZmnRbN_ON$hW}9K3XOue_rxn0*>kjnteMc`WIC@px@(X(2 z+t$vOCS6=EqvQ=-K>UI9uwX&}7aW}5e=KGKw@}WD^+YD+?MtGlh@@Go+uW@(51@mj)+!SX{@|7>rry4tSgdW(D+#d&k;&(W;|3Wkx?VrGhaN+iE zOl`>G=-hnkppOw5(ci!5Tlbhu8)AZ<26}aOrZ6z;sZrYWG4-23oMg+E zIHg6g5~YC^?l-w0(_6@aP=6KmW_8v-yEZQZ+My05@C+%y!@_9N7<5K(#-Ao7ge&L! z_BFkS$|P??2gG-s=ZkKB=Jhp@N16dMnPQ)bVhZjbaA9J?K$+~{G!-4pC`82EjKcG4 z%}73Zv0UNXqHBr8+b7POqhCaveJ4X_0(g=^Oi-J`d3ztdmFrFxSC>qYdmrq4E#=`&XwKd0m~Ut9P(r?tWH zXQF*Aw@wPok~D9yXpk{LcQ=0ua1A<6>LMzv0{ zU|(r$8e?Lz^m{*4|2GuWJbU4aSUPFPuPHE0sr_?T;3CK7 zK}VgtDv9)$X%C?>lAdiOWP!2$*Pv}elZk|zAHwZ|fQ!VkkKbBim)HTT8Tl;jUn}u`R&<#DzBg* zpomjQA_EpFitSoSclJ6Q6oj$=&Q8{hn1|O?w{0W=ZX9gQY1cdiF~zu^ zCY0L&yWOXUfIhhd7q*zwWSqQqz@?{b09fE1qiS@H(hDn!bD~i8D7%<`Tu|YiS9A62 zFfg^mtmZB!H5ZCUi*`by8hcTnq~rm6|5h}+I7ka#AF756Ro#z*f;Bl;d2@ zn6(Nvza`yR$wZ&i>fs58>t2`}vDTe&)<|C_t_54P*N>O9Xq=l;I$$9dAzlWfV! zxi_!76qnq1K$E!A9-<>`S&@wi6jPP10yB4u;rZ=yW6K z&}D`+opz^zA!!heDFPjW1{??^O`OCb&Tj(_NkJye=lfmz+ zD8R7p-CB_^D40v$5upxJm*kKmW2a>XfMJ=RrO{6|03c&B%Y-ny7h_9 zMEg->4ND}bRPkt(E-s|+N7DC$>3b`EV*sl7UGeo@@%8HXdR2VAGQLj67ycx@a6^1u zAFv(qFPPAfR`KfqRF$*J>h*(;+%cMT;Dtrn;R)54Yn28X^}ND2&}ZDi{KFub8GAwk ze>u#BT>-~@LzY$bcqPBj7ghck-w)IeSCC6N!Jl};WO#70GIKhv%sCw~SZwskhpbw= z)Jhy8werIrj?S*GRJkJXaI~4aWRF!V4^K)Ob?T*(>_e+_r)5E6t8=NBFlG9R-C!S2 z-C_xCAl0cJh6h>X<&K5tSh&EA-G{|F*wXKH>^WYfUGa;keKGNR{QaC$8;q;j`s@N6fRF$-L9N8Vmed& zC%~+WU|O>;volrC@g_i&P$~SjQ|F{T)i(^K%lbA{-|SU!-#EOEJH+J~OCpH*zG?lA zRAgwKD-D$C$-}hws~9E@@U1v}^RYKKBYQI@Ls{+l4%Q^~{p~k1crobTe)HM02N~v) zZQBGxPG=_JmI^F$6oOKuBLa!I(BeVVevFO|BSuz1o;uzeQ8?@ zGd#y}TMf?Dm##fS219?8GVk8e-JNKnb-2N+i@05r?-I za&Az|hSsTMVB({W!sRmrir%>sQqD-<9kr4Z;%v>AKrOM1&xu;xDLV&~dW}N0xML`v z4{9Ndgj&Qe0)Wub=Z)7k0AG$*dW4q=2d!KayAYB)9OM$64tkQPnh{hSh9p^nH1kN| zkYMGbCUQ`d$^0BaJvvZNDuV$Cl`qXA{BXRWg!N1rl=I2}j;;oez4@ItNtS2XlfQx} zPuE%Yzua7{-t^t8KX=QA|LHqk{y!rQOy}#`Ip%)hHSfz9WD3Ov1okPhHP&^zdt zV>b+bp{e=h7pn4|lhvP`?3=HD-&d?36KFZ)TYNK!2>e`E z4jPUDA84Q^B+|*07!Bb&tjToe4cFw?kx`$i5rrUQtb`^+^v7FDz=O%idxF9`$HU*a zhp0kt3_-?o>Ei+VSON`HNluXsBCO;x7)TL)NnMbd#YMO4hXLb6 z9}sa;B#!wfHGo_isawi&iWx;*ldNhfiCsVoi69LtbW9t~$l)2OMXuba3|%?ho}xBZHA2?HPm@}4#PT+0NK*DivV%1h$yF&;NyU{H7?vS8CKm}Ez&GQ z&|(Yn;4|`kn9Y(J<9AzD9VHlXBsr$iE2_~MGR&e*C2*;#p(2STD%Xi=*VfJ!-2qZ*3{!kQ>e3X#Ihp%p1CHzr+@%CZSY-)yYk@w ze#;YDej^V?b^lh$gHgx>%zzfiB3P0Y1kl>5S9MNS%c=#fSj+qqN?)Y2Yd`(Vu~8Tg z?2oR2MY&bpVKpts~?=+AWO`T%ENEJ1wMw8D}!vDVfg|7ZG52)Ud2e@{eNZL zJPFO9=B18gs?jc_4)uiUP%>l&uOA`1!_g;Ntn<~RvzO}&k_T$FPxe(_Wy>#*=$B7^ zWWcq-T~%stQhSp=_hhi;$9Tg@M0s&@oH0h4PQl4?qs#YfdXhg@Jy0zYd2_Rlai*A`51r{a{Ds>KcY9ciM9v!0_WWPr{`WNb&H zJq(k4hx&XRU+LEJQHhgsHJ4+|XpQFnyw2Ed*qse8YPW{B9Pz5oJ7i!^Xw92gEls90Z<;K| z41sepv17s-rQg~*I$olRnn9@w!g0k&i-?72lEz*Gz}Ue~vIJQ&6zDMN7=#eF1F}U5 z-Zd_9I0L~*dXoZt-vb%Yb&L5-`*!e{1NkP2-(`L8cmzPav#Cvwc&>rx8yDLEwonO2 z;dS1Jgr4k?TNRK`E^?SMpo$>p-T3Dwj4INOLGUW^9{i1C$LE1wN!wwyPt%!Nalu6x zgUp?X?G^17lFR=IPx)Sg&b`Z@C#!T2+%qW2d=u63>QKBVf6;LI>MvgLRSdulQn2e) zx|P+x*E-GFl)u-ybEAGwce5&QLEsBQ;pG6thBWIR$zG&D=IgR_bTaCW=wMCY=SWX@ zt$U}-w{!t%?tUW4ftKD);t;evWrrChwV}~zT44gNQy_^<-YzPbzv( zzy56&+UMTCF4H4I&nSCseU!*E0O1h z8r=CbZb2`+03c-Y1Rc6A`vB@Js^qlHI5k(ma&NP~zWjhr=G4NIUX3$3LqfS9+@~cv zB+(3sX7yq+l#ngjV5dMkYO0IVJk#9C(r+r^5j6a%`6k3)U-sw|# zoBmL#PKKqk&B$^?IOiigkMYUyJ(ZC#vn83@rLW5h5B>Nox_l=BJniGimwu8i!R@R~*p^b~c5Yd1O*QP0CE zyaaifY=R?n*lH+rMgmB_{C@$-PsrwxeiR@_vfsfAsD5a(1;e0pV8Lkd%5MpHUI9PW ztPsWTv{d@yeD~e8%TT~NHYG(MA~|w}u5pRkDxTmu56w~G&K-;xB+9@@#Jb$kwx<@K<|e+U$bG2L;?mHJR_VE+ob*^ z0(qC&=GV4iD3bJ;ZRQC?J0gNWeqY040=Y0njtIoa=_?#Sj0tpVYZTp>oqs&-0ekJC zcjHwT35lRyy+d|(>YwCrT}0aDk_!rZKafjJTx!{d<)~jw4LbTUBJ-Oq9rJtynUNOi zqg~ji-*Q+=r~WDb%!~B%Oa9sJn9;uPDHZK>`y}`Sx6}H6$@OCx`1W6cin(U-xNX0k zN-IksmAs2N-hAm|$L&-)kK3GFysdO=$L%Pcr~q;?qli-(``~~y`u*U%)gX?qOaRXz zA>@o`g(ziMf?-_!jddB-Cz61^z<2=_4a+})yy~sD<>ZqyZL#SH!kBVe@L6oQ*+nXv z*sV%A1{T6f{26a?3^N`CBJM?NqBJ|z@L*`70V?7a=LAkrY4sMV<9*(5pL67Jg;%6( zh!QxO+00&V-HU7ow7NsM#zvguEm#X#q*3zd23f1KU*(ACcpPj|RLgoir|Gx>QJdI( z6#Alm>iF;=`zc3j{J@zW7@={Y-uRBzGku}X_#zmDDK9^ntH;z8hWKJ)h-ajBC(>Mt4Y$)Yn&?#r*2JgAl2|7GA4w95Eh9%tJQjm@mq%u%tyv#K1n|F`H>C`pW3~ zpHGk0IH@y-4JX#fH!buv)5qRVnhc|lc%86dWvYg?jOEWlY_U{i=(tfKqH#)og}&Hk z)+QGb91CG|2fA@xJ|Le#5b$!n`tJaPW z-!N7Tun;2z7S;apt=9_E&sy^S)i%jHa`-7Yg;?iQvrO!;BYlo|Aeu=CnKIMFG?r?r z2EoRNU~VE0fLI5B3yrDgfK(&r`VL`g78^`3L1kO^G5l}17|?w)gKefr)ff>Xb58anebjvx+%x^SfX}HcJeRv6naZGu>B^8Y&&tK)cLtxuXHeM%Pk@ zrY{+ilq0Q}`-p@pjIo?RBYka3N`|@?&_m_MVax1p{M3E_>#ndR@LA`4KwGlEgC|^+Y|*$_c^=`6yRB zC6+cxkVJHB)%jmJLy7+55?HK@&GD+Tk#3R@Zc*+G<=fyHS)Nq!0#19uwxXW)UnEcT zf=-w`aGFf7Pyd=W1!!VOl;~L`9ElIgllCqt+3eQiU|>)&ho*Gp<7)BbD=7_x!g)Zn z=X8LBYGsp%kIb84@Il{BgR|F(At91OHLNz+>EoOcl)M#`T>)47vlR{J!q=J01Q+4J?50tl#OwF+3v?u>8b%{oU+$C*%!dfHCBZ z$xAuQ%@n@%>|%~7z~#Mc3TNS3(QtV^B9Cem+}a03zI7sIIXpapaKPgQtS!DtAPe8s zIx|W^G{X~Bab`^O+34qctrDihSx2h(bWR_<_|SU&-<_u9{VcQDpUu6kb-Ak}lXqfb z2q@ev6B6_)sd6WorQlRfq3X($ul9{($gWt`^#%~+rp36+p*nc{FC(&jB47RJ3j zx(C&Pi{4o#b;Ek!X%g0YdBWTSiBYiNcBNcC3>DGnqEZ&9^`+T5h5$2m#$pj_?`i`l zbP0y=qiAhGv^mBu^k!+KDT2UB!}Pi%*dAJEcBU#YlYO?IjuGUgSlrMsWas4ILqu65 zPV`lsn2Zk6G+oi;4tJ`SwB!l_^Mqj2o-2QFy()FEg0pOLs(?BqPu~iz5*9I$;_8zq zV3A}`0Xhp7TC`yAnn3R+(7mm37tjT^&!uj_#-T?quLyR38`yAc12)ly!ap2LwrU!c zqaWOE0NKY!nVvh5ke=w}ib(&8o%ow#KM7xx&?j|d@O+Rx zy!F;~sP55qiFN!YlBgDdj8Y~>7P2X|wLT$cZ{dzeFGc4F<&c}D@Oo?D!HLzi4y81g z;mRa&@vTS?1Q;TWYF=G`|AO)YNO)pcy~0tr1yQ#eHH0UERHKI}$%2c#$I`tx|78!i z%AZ(;BQiuYP=aVpiNPngWq@L5ya@HnhM}*ANV75AY|g|+By}X6bSH?dS-3+Ec;9~1 zx8F)2eRG={>CD3ENe?E%=Ry;C{d9hMqkca?01fzH@AFDOt6KD-U0zs~43*#rEt6vS zi_y=2O>wnP3IyMm*i6=0=M^cL$u;E<5U($KC3OI5IZ_AozH;gSDW=Ju^5?Yh28wPA z6x|fRFbRaP8{!u^xb*7?O+F29K2PD(Zu4noft&Sjw!R7QwLzq)*<j{)Q6AmBwVmP-tkxB~hV1X_F&k@M$Yc zW#~ZSpk!H3_HRsllmr2BZ*M6qj$PjPzuCz5et}4}Fp?C4&weSyiQr!!H*7|fYo|V< zRm&ST%748&-=v+rvKX}Ag|}G)nZ1b~^zW05DYtKuf-Hhefq_#5kRT8h*Xwb0H3L6k zXQt*4ywmf<0gHU%qjd;Gfn4-vx}SEYADXO02*~u2j+l8Jq7cb8+rK_ulWn9hSK5{8 z(oTk16RWa8r%kNyXd*T|7*ef%$o735x($G44Txdx!|W@)qkv1=83itH((?D={G_;9 zSgiJzm$WdfOafOE3nPg@RLCiGNOtOsmZYmSXR%gK<==t0u3qrYn|}Pq^xr35{y*J(hNYFD3M$zL zV7r|R5C}r9q}&b zN^Xof2y%}4RhNiai+_wLD}>0k0}^eP%7fII1?}z`+Q=ueP`gOFQ>$5{E>eaCMjLwQk)~W*xGExA@)wa&b9CAo2&~9V?#EE}<7G{>RjfL5Ofu8C! z9dUnyl^H5Qtey}hut^65TPmnHZ}1j#cw-CCe<01Oq0WWdJP97+o->U~;eKedOF=bU81C2oJ>5->V zAw?WHs?B_<0|q>8*GKHCYHJ1#&y@7nQl1Qs9(^!^SVz&gRy`J0HE8j^kkhA#*1#v6 zB@~51_(G&!qvZ7?6XWZ8t)U|Zx7PJ}|GMOcgcTg?zzEO1;WSW1_g<1;Sf?fH1GtE? zd!R37V907|6GK2mg#=AotJ_uz?2Uhf)1a^+0xh5_MlCr=48Vo;rd=N;Cb9$|v~z!@ zD;5Uin`p^C2%iSQrXNtRavDw-WlL=aMC#pTKmp`43qX|Wae4Pg!ea`7ES*`i+9xvK z?#{+qUrl3-=Y@6iw1$=)LK;&=ov=NxT_atDbNBN|^wI=XUPxOXv7pqgp?O~<*gUo| zwqpbhw6RS=MsE+M&9)&TLK1Auig|sw8CDOsN3Itmhx*wuau#R_Ilw<10h79{svTHl zP!yH<6=2XnNb(C)h#qFdev6bLq05~&=A^+^h7CkoYg5|9l&eoqPj$y;m1Cq32QqW8 z(bQW@#;WU?9Fou_m^d=EDqyw9{_c_R5VR*N!ZMKto1$K$UTk2p0|Hut(U|P80U2IE za*3EcI3i4}5X6Q;@*q*ZLQKIh%V%L$6gJc#L`uTC3!1Ob>{>P_*!uFRWiyI#i^2Fy z!T1`tHo8!@y3(blkP*pgf(ZaD;vJ$5pddU?qF*DdVfD^Nfhb98jPt>UH9}|!IY4JN zV50TMF9b_UtBv%t>{(U)9wmhq=OZj1?X_A37_={54r;*q6x~bJ5H+s$BGWgf*AT!} zcH%?bcqoIaF^RMVh9dmE<7 ziftK4&78b|YVMUk$?0#93LsLl(l%cig*HK5t?|(0+c-B_4xK_-jAtD&ueUC<5;2!% z4>atrLvLau(Q-YAaFhzkmW>^icC?9{t_qTyEQrBynn8HPNP!2tv52o?@~~o$7|@945jY`tCnFKC zU9oJ9#Km@>Eddxqs(OGNh`}X>Np@kgftIb~?6(oM6Uw9wC5>bdSxqM~*p;SUNQ5K? zq~&I3hX{^i6?gP|ROjPtN&g_Y5v zk?b7xOJ-O|I_zmY#@-#=v+Exol?GyQ;Jg(z@Sca`)4hk*d8SyM6}oU5`;lC6>(phE zBz6k)*|!wF%<3vAnejsav?YvOm;9NyjU}>BC}uo6H4Eit&t+}c5V=Iy;}b2$yKzSr z_&~8gFBk7RL+mn9eiNe-WQ7DzeYGH82%kp5Tp4fxzH65wZb_L^Uv<;yibf7Xw$>tF zsp;))Nc>)*W0t^(2nK!^W%V4*1m}S}yCtvaRpG39mcrMd8(K*pvN%*9G<3m1h=3(h0A!G^&=wY*%Qa;?+mJ6+Vv8FwP666G6>q zntH`3seB9r*t~6}mBxf0O05VH0icvo`BQ5sYAzu^35>+`x|0Nj2vI?m!f@h#*4?K2 zUz&?wsSu?LX)5mxlrLZdWwm_+Wi_{faxPz@MVSm1;*vhMS6w{fqd=8D58EFq-!4b4 z$F@a)9GS2HktsUP83FlD83B2Qx|4f#NT0T=yH#){aW%hnd6p4Sdn-^E-aWY?)@I2- zUkf|L5_a|_1zxI$6LWJOy%XZ4#z^G z)VY`d8lf9Q+uzHG1!ioL|7Nh6RMtjnijl0+{gp9o!j&ELT`bc@he<)8A(Degw%tSP z)2?{%uHjf2&rGTPaU_4hiHn=xTkC0-6LiU{f|98)@4}2Af5=60;|Vl~~n^ zloF>NT>-!X3A0`ssCZqs6LMf&> zV?(v#ZV-U?gJ|#}b%iCzIwGCYrguFfH`8<&)qBnGaP`hCA2@DmB4brcWE6WE4oZmT8VOwg^7muvmY-WKzt9`v_D zG7xH#tNE5ma1Gd?^QWDYPB3^uMXoc^jRXRQX8EWbK_F1!GItY{_cKn2-AC37GFaLi z8a-yYh90|>ioFwBhY`PnRPWG96-nE)%b)WMMMKImubqX|8Mx-_aG+dCM*`86uMUIq zL+*AQ&&JZt48=!iF{)suxG~mt8I#w`GLaxVF@<6YB`C=-*hM!zd!aq1pW*PM%K}(r zc!$UMU&?=v6GF+2pww$KFS|gmI-FO{K(~wxyw)1|JOMz;Y{LDA7O8<) zh$6dIZo=gyX;oN*Gc5F#kx@@%=_M}1!5$Lbk=Dy0Z7@mIVuvmy&zUZ=6N1`1x3YG{ zpz60wSL($}`s}iN8^Af<{VhW7%UX*LWz9a zfIVdSjG3s2HLJBq58^q(xjW8)LnZ|ok+_sMJ5pq;kw{eG{+(wYA+^OKBXvktGvN^m z6j&5jU_qs{vvEk61g8Fb2zLP@Xzp6ZP_snCK5^aYeXgDDE1{FAIb&_1ZZ0k2(#w2F zpn56H)3dBNrYd#1vXlZHvwuY#<(ampAYlb4wIINU&X@AvU59K=-sXyEg2Je7FZUf7%_d`?xP~*JbN3| z$(kS=RrIUkttS1N((=0d;v6P@%wSbyefJ^@*ab3+plC-Q3?xc4J=KDJCnA}+a8!z{ z2h^4^#wQpn0x#R{4HB-Z5h+E9XrtaLA7>s}G?-})E`<7#j9PhdRfKxF;>oi6rKF_@ zh-h({X>xax?b22=E~zbPM)L4@hPar_%YhP`?u2>F9{a|Ge|dB9D;j`LgFOiN^kY@| z@MPs1GXDFHgVoA&kF})d4y;H@X{zhwgRXZ+p{~0lS7}u`fa|RsDwa3xNPSGyVh-AVJpXU*XtmG)h_c~CdyxAc#tBMsv;&oTrZ%+y z)y8s653u{HV8UGVaYS4E5L23cBq7YE{}92LlzEtx$UW&O!tq24ARyI&)dJ@*$(`Mj z1f4Rmgnv$UJX>n%9mkm^E|z4SmSM3~Wu+2~#iaxFi z+3qw-9E(f=Ny#+v@(NjQc14id0=LMYt!6m_z)V$1QTXbW!thBF8gS4no`YPqBj-qQ z;3+4*4QwixL~MAJ%;#D8?p2B#5T%!4@lyUUWj}3#ZAh`?l~-ln!nG;x)DR?XJQ+BZ zQjTzBMu{#4R%@)JIp~+cwY6bzneB1&mHG&Hdm@2QIRaUJ)_579ai~%bkoim^*C3En;QLYdNWshqYQCG`;tk&hnVAOW~@8$2! z`L8I77XLxO?fRp*XWPVyiC8!5f)w9SBq{FW7{4&=_>J^oaD^F3EX%G^w^&ftt)n92 zT#0(xoJp_=8?@`6$FeA1aj-m3e_zbZKuf+{EW9)mCiu!I1WalaiTk%`w0`8?`aN%; zwx`sER~%%y>p5DbDG-C;*#EV+W4mZ&p5kp4;TRYB$yIjkekY6(crLl7a%zOH%xrD&T)h)f$I;H)A-Zl>` zn*fAE$G{Bm0X49A7XwBtZ(ufL+@|+zn}-B_(|hToWvlejhgXUbN}+Wxb0DdO0ka7e zC8+SBRh<6LKvhmgFE09%y?932-(2Y{|7M4_bNOKRjmNWZAxj8aR~*^_;v9ITjmKE&ZNQVW;_05DIuf`e6+rqVCtGaY3~3{Gv25{tgl%aD#R zzp5(&5`xC^ghr4FJ8O8=*6`*8hCR91rAkeT&Y?d|OSog{@PsTBT1G6Dj>1?`t{}QM zpR57n5y$PWZS*l=w5944haL^;tz27J&~(wll3O4XQMACtv;}~XS&_0qcs8&g@aMY_ z-6}!6QO6Yvc=@PkX_ zAZ%J77(5`(8eo;iFA1>T#Huo??4NOdGoa@T-dHaqE1D#94QZ7d@b$?{5= z2IBlS-8_j_@vm2jle9|XuakW7^wp%uoue;n9S?S7`B2scdLvr(xQcOvdWajZHeIHp z@c4|#RRPr=^LpWQ9CZiZU9jRJ+LPfDj`&JAQUvL)HQjVsO*c(zg57V?F}tqqrl?Jb zmG?ycMFiz|8MY$Gzgj*OOL622pe1t`)=cb)nB%TF?89dS&@%HxEJ?Zm@pk&guG7Yu z%d3%Wm@$pqdZUfq>kw~fvH!sw6NB&bIm5~K136-X@B4Ev0yF@E+$AV9F;0Fj48B69 zHq+|7ATQoZXb%NX@O*H!q_2>g89MD85Boa=OotH-;4q4Uso|0EDlq zRPU7u){@W*+~TH2_yj9AL<_i=5v|X=zKr}W_AaYUcefKR#_LYPg%-5C7J2g#g8d+e z)`Ynu-7p^S7Gnw#o)PR zyx=7WUPS5_taKnoSXI)zlQtHxkkIy8`JnJi^2cSPaR2p4Atj5E%S{=N^b|Iiu<+GQ z0wPoH4`TWop8xTm4C^Y)x}Wvh3N~j46B9F&&tJ%9faPgwNVfRYNqKBgBHl6 zJ*$x(G} zH0sC>AY|zeUVw6H@vnb!!cHIzMQlDUw5qPcumO3odNx`*VUs?ZY*J@jeusXLQu#;w zMZa3Nm>~Nm@^(+|)FtNn&OoO-rD8&b=F>ntUgZjnV zzUv-no}$S_Hd(S~pd|yGbpiohFUiUqR?DwoLk`MR9_Wb#4b5X3&@225je%qfT%aJH zF*V*l4ZKXmmP1OR?ojdaF=KGlYSQ`#fGvEpFe)ZT%GXUuHLi!tMWVUTE)UwRRu`C8c`twykbLY;|ra0 zijG|0^L2Yu+gYUa9-o~g>@Fo8c?eSN)=RQt2t}wDWkcyo217sY_bV26Z$hsQe9kh` z1NIU5FwE%3to(Ou=oUu>sc|dUE!_4e>#rsJOxy9|N^$@uQ`R|=iC0M^IhhdkFim!d zL(fQZWEFOl#35f6hg6(IAXiBQay1iyUFVCF8{EbRO!*H?A$$fEXuE3I5tpCWhq;$=K_=1I%9#nERwMY|CUZ^z|@VBqPNS@8PAkjFOX z_z_8UL)Ftv==%6N9A6c$@$5kSf~!>o9P0~__?RYWh3JEvipUCj*gHSMJHN1fC1zoMC5Ca(ygO3DYOBi#q0%LNtIS%1qApd45_O3?%6+NXwCtcv z{YBd$p7bN)lF$OUj}_J{UrdiB-+GbUpVy|{&WPm~p_l6?e}m;R1+cKBNIt3erIddB zZno8A_13#76F=LaNaW7eGEiDS^@QG*ig9*7mePB^{|NP@`%Vs+xi?EzW{5(_?KVip zoaSFAxrxp{jc)*`v70m!-hiw2(#uRi0~4(BT>vCC8|d%`euW~-YavSP+J!LxE?lZk zYK8F0=kqQk9d8r~G56Eg!@VQih5Zd0x#@)45XTzSyRVjM&RjV zUaHJpz`;&dM=Y`llq*rQco;3S3pH;+&4Y(0!-krNQ1fUzHIL@0*)FCIL|1<|F;b#t zDAaB9399O{wnLp+wHQ*p5vBmQQ!hx5%6@5#5Wis(Bl_sxRG)hm(FE?As(+BKMg5>f z{Gs_#@D%}nA}x85bz>&2936V;H$~rizlO0)$sE*6EJ|CEg0p*p8Cmu75=6m`^hx<` z#d}G8(C}?22EI<#nU|M29--A z@r#*ccU{=pPe~ycy*f-CS4s-0m@S11`|bI>kX~PNC=FXb6$?RzZ6>Se;b<7Yh6IEt zQb1PZg%kibE(R%?Oog)?Am?F_tUX7VHeYv*mk_E^CW5OIoKc2EFeCkiNjEuX1T59R`Op6c#TOxAl*INqL(`VX@^2^v&j`L!fQ1PcWi z1Q+vTq0UDLSifFnGj_H2ZPn7-j=%BG|1x{S>nE$n-~WYQ|I6Qf*}d$;BtA1csQfY* z7}F$vGIr4kxiYmdx);$EL}S;cUAPr4Q6@i?V&J0G7{bD-U1b+llyoZ#5r{%cJe}F< zOnNR#L7;8fmR6%KKQ7b*34x4Or1zNfh)DGLI2KGA!e&?)P}GpD8GvCTWKCD-(r#AQ z6RG%s2xW96L+IkVhI9)Q4KdlI;^WcmW#yEg6!nl2!#gL;Y$1??k*>)IWY$!^dEYiH zDNz&rhj}u{}XAN&p1ssB6hgfs9>||ACb;-KYeRO7kPmv^?7@qiZxmw0O+8T{9fuvsG zVSist-@ll?wHT`BkEZVn>3gTPdLZ53O5csv0tC*r6OSX2l#e}!!WYH8(~iIskxXY! zFf-_-Wt2C^wv=%QH{t@|-6W0qVXs=7JiUw#XBrW4E)BBH)IROi_{_&gO{6C-kFjaGM^LU40UU$2{lQ#8{vyM$0U=3Mu88i7FH`$~wZ7)Tk)b%E0|%LQXe;UTZ^EgS-w6V&fAA?~;Vy z1P+|4qs=T-3652sN%1M_8^9@yqJ@%7ZDLksYJ(MIE)n41fVf4j@v^W!b+%gAHULs% z&l6BlkKPUZ0v_Ykz`HB7*%Vs&t-pF`cYw-x8es{JQ8QrQC^nt)@pLxHpA-ru>qyqu))6Q3M{*Rg}o}R1X@wld=jOZ9I9I!aI4C`t;M!7ME zPymWh1@`DOQDY|gaX|-id52@9Y8&m!Ax@x}EiO5*G;bJr`2{)(T-fwsX#Ilc74t7B zy*M6kJK&T5*eS+o4TLnNb5=BBsDdzMq!9zG8NYwYuZE{l(~q1%oTZL(50<)FrBtz1&AE1>G~g1!9U>r#~BHgrh-XRL3dig{%HljZex~n)JcDQdP8LJ zTbK;>*HOjFw1(@O8rstuel@*EC;r|P1`Uo5^z+2UZ*R|X?|FvG+XixH-3=X%szrU1%wcqbQBePbe? zV*v+p_0p{bQGQI)Rra@xV5If{Tg65=+3Cg^hU3)q))utbJ_uJN(_5!*BE@822{mjX z9Gte71Yzc=Zk$L~>Z*)MJnNd$81K$bVdQYpKZTdK{v8{v^4`-=t=s4($wxf_Uc7j>Det<(gHFFz(imQqR)y9(eRsoG-r9Dv((A6 zB5xHV8X<`(N(aphc2sh^jV%&r3bC+6Cuq~wDG@qzw)nJMO1JskmD%CHt+LD0Z4%;= z+*#O-@KfpqhP@|_CQunxgV+;N>A=)Xrw3T+fr$B8;!wgW%@S9HNzD>hFa-iNV_5~% zNE$=}5@swxU#oPGfW2=_=w#@`T&{xS)I47HMVwzu0%ekrSm|ckhQQ4X!vf1FZxKgpOwe5iWtTgHk+3n&awB9r;V8JWQn+s(Hgb%DP(P zPsSaS~ii{jTg8-`EioK^fG!x_PsTCAwts2OuPd*u4Q1cgV%{W@;%sf8*1s~&){fS6z;?()zoRt@hJ8l^U!;f< zy>a`lNulBL-Uayzb^{m5M#(Qt>usvMYd7GxK#g`(&FX#)W5gT-Fa7R)1|2k@v$?1J zyn%lDL=rQ|Hhc&hb9R@v;fGswz!GS)rx#2MS2q(oWKhx`U*pJQ_W-v6M_J)JSK87` zkOn3c!8y*_Mz98xqhJvxwbC~-u;^QOI58rS7mN%6$8-0*atKo#&L5>ga)l;a(L15F z-AB8%TvOVVVQi?6sSnU2Ka!9jy#?FBJ)I%zfEY;L<{p2A2}My7dSTaP`R-$+9(Z`N z^bHyRu|;W#WuxWobF$^RIoVv^fw5!*WYVmJfj$4;;#>0~e2aQ~&cCob`1P`EGj6^n zZgRFf%-@iK@GidiBGlhzYNO8&`jgWExc(IDJR-i_rM>$&TlV)WY5oO+Vnq zPmy$KaJQ_+H(w(@-O$|t1xWhQa}`!@)a^!T*^xoO~C^CI4#6hd7UN9AJM`z z_ixn4I;*t|Djvb&wM6VbrZTU-Hvi%gFj*ac=-b<1{P@;Is(+P?0N^_mo%TUco%|RA z$OOZnN|;|Sr<>9;kRSy+B&B8G+i4jPRT9u>AHoHBBTX!mJZCkL`@@JIPmgA484&IQ zv-4WKn8fSLJP5K9#U?`4grSkA?Rr({E;s7+62G%BQrO{Wn~M*6Q$9RUj_PjtR;^Q! zX=1J_jE`q>zo}?7c8u#oWAU*V7ER}MErmf#EmF(wN}59GWFVA2Z}QY+^_e3CbP}0a zex@S}vs-?NprXQ`t!wk^xU*wGw1cvHs|&0CAF{1 zIF{xIL@306pkTRxQdv9<<~(3^z$OS&QCk4?j2<b1y6l-3K_a?+T&r~D zOAF$Rg%E4bK$sx!2y#7v70S=?svArS2UZbrTV`>g&{lEC7udURW6+m+8O5Al!F$6h z_!FJhNE??~F6?03Fb^eiLuwbgq$kLH0K@R9zrV-y6;UEBK+L1|UjOP^B>MDAke=+B z1==WxSFb+@Q$Ca3A;)9=$G8DM(5tK7lK^j9 zuZzsSAUvlC2}+`rgBNFN|Cm5EGvM&4=EGWEH~!Sa;bdbBoly#Jg2$; zEon}pTNse~Is&oSxkXr3hlnB8*OYyo{%iCyj~>joz-Tk%w!H}3V7;g6-Z9bIKwK>l zTfEL(Cm3DM=L($YV5{=2+OW$LVCK);H&jiC?94_Vaz!#a7eCs4PXWY|*-ppd;eOQ= z&%brdujZ1RTf#_%^PkrgMxsfpV~)vc2*{FOlUcJ;4Y^f9ir-Ti_g%gQ<;tiSHxKI} zL_ariBaG(99QT?u8vS;9g_Ibbvqj$WxwI)1W zplh&y^q9LUnqL|ysmF`PkirjGWdnK^M|>I}2=V;?`Hs`K(oLsB|% zqFM9fK($}gGN=ydYpGh(*MfR}h{-`7%V!ckkP$i z+1*16@1BCUmcY}=97dfgpD3{yy+>5zexMdRtl8UL&%_4<1YuEQIy_-^CWuYkBnm|{ zPDFRen+DLrBArfsKO$W%m7f{&OKV!QUk*d&8S8|t^0Q-_A3_jI^Uafsh9$n%xF51t zlO9p`{q8#_hR_D}Rje^$K0_Vr`lw97WXc>FpA)Q62?pWR@hMSgg3}C91t?=y@Ng8Ys8X|W zq2_vh9I*krw4ucb->ppO`e>Jb205$Hx=Z?<^5YirzEeed9S3Su%OV4TY4S*eU;gPh zB0!i)N1_1_{}HKC?TeGBnl9Pcz)VU4B2^U=`E7|@#mA;B1>#7CFw*G+k@noCSj+nC zAyLS5gjXfB!FFtt)NImIAILT&Cpaq_oF$Ao!xf&G`Pvh6a<3E-E9M^34Kgx*%Bs|z zMBjoSx+jVTeI-mS9c56JCLNnnNae$PYSx!yh2+t)BDjA@4oyh?CHY-C21O-#&A6Q2 zbQ|z>wNXCO*T$MQkxkP4p5QrS@PdhHMO*xeyQOK@_2EW0!DQvgo{mH2WYW0b=P}9r z1JSA%`0xvig`wMC%fw8@_WRfl{0f{#2K#kEZ+G!atPdfTU*xoHRdJVrq&kJ=!e8Z^ z_e)`GQf*o{A{K(ywY$?sR^Lp!V8yr%ET%P>3)&jv%u%~F&I}*kRQt}iKW*QwYgRPv zrjpWCB44T>%gwi zc@i~~JyNkA#=`ndNFNU@6Q-!2tZG2z(Zs3Nyr^8h+E%e38&DojBXX6Mwm*kjF?|8S zQp{EZ0(3AYYjff#2{mAVyOe>KUqrT09-$XnKs2ertAa80DC9dfZ3edBW)EILrnrz& z8d42?-xSaE3Jx)kTHMEY7RJMrsokt19iR#m>O_K=GYi~tqNLy~dtgk_Y+;5IdX%d#{g01sP3cKv5i|OWb zv>1FoT=X$UTHDor&On)jS-ON{ZSMq@Lk)PShtlh5Q&NsZ3#3ex!rfVHS7K0wI`mIy zsZE*9M<;tWsy%mtpJePSiWH@%@v}??d5C3(AG0(mJsn1^Ny1+3s)YC`DD9_ecRWIV zl8W~%$+P8el6pd)eMWXm*OnP%k}M^sov6A_N=4gZWM&Lg5HzY&J5t0v#fb8_0nJ;m z6J(X6FnIMSW{YnVPfRU?&8kNiC0%5x=$S}uRDK@Od%X2hp0G8ZU$&d>t6M?D5jjW2 zhn3`x&xe$Xi!&Kby0Q#{bXDJtOypFAjSQk(ca@(vO1ck%xZ)ucb#uc;0gs4-1xp1? zt9@>wH&{9q2J#U0)Kpr+12(Mju?}{Lt%JR~X0JG-G^ZrQ%JaWv5rz04sJsrwQVGE} zwEotWnM;F&x^*#i3s223Uhx?Kf~kB~-6M+55K5IY*Cm;;2Q(#BpIJK$RkV(t05!C( zoab`ms6yO5+>zPP$UrN_2c?z~b0HwNsWN1a6*{6zLQjCtnat0QW%bUz2UW`UrwlaW zWZ_0@xBUEAJK)1c<_$GJvm&wNkV9%+me;zx{_4`I$=1WQA_$Nz%Nxn8NJfo+ zj#pkk={DTKn2Qc#N?@Nr42qitiF)V&w(T`0sg8)FdXbq(RM(AKQOC^NzME7G>eFIj z$)6O79TPzGV9aN*EocuzWd{KV5sAV~%6&)~Hu|El0FTZ3;5&E@Ff>H88c<_SER$}? z(%|0tIpmH6j(~^34VlM@dm$fSVOMp_Hs-gt zWYDyf%F)}MC`5HK&dq#7boBW#30y^&lCeQ2B-w8K+Eb$=IE-4&Fj6_>f7YE@|6=c*%PzSFvG@*#n zaS{@D%p4gK)E}mcop!@=i`*u_!XKi5jPYuA!6;>8hFb@zs4UIsc}s!;0F;x9>7|^X zh!HE~$%^=X0$7BhN_d+F`(Ts9AjxXMq?#af&Oi>bL3S8mlnxn0W?;p(5wy`%v1^B| zy&{2&fJRH*y%@+7czcH+lSOOqXJvtwSkv(3c;a^$-8?gz^!Vf=>Yr#Fb#_@Y>nKt{ zNeyJIFpZWSj5m+pmhsyT`q5Bpf;)#?79Z5`VNAUlmgg{PtdT{4ZOy{h zkPn*yM=wK~7qHDM;%EZ9paS%VND2AC1kZ*#*Xv5AKQq*&ONhM!!QoBe7+jALF6-?G zR<&@dHIswA5UzVgak#K_vs&}#J`-W-&;9YZgO^f1-tGvt%Id>4KK%06uZ;s_A6NL% zpL94i6>nzBW-7llY<#G$gdC2#TvpJwG6&YHm%SJ0|kIut zaKvGA#Do3D+F2zrXFTNFWrC_Nwaxk+j&H4x&|9;mp+!G+)4YwjRMC?jc+AH-^*jDp&z zB7QK9VE$j6B2@u-Xo@?bYK$ET4Q1)5m6~LMH`sJ7uLctFOpQsS%xT15&}HOJopVBU zpTl|h^lk~(&*AP(?&ZzF%^lf&F(sm>68$;-4wAYp` zxudCS&so~^*e@L9EWGKjHox+-dTaA;C*cZ+SRo9Eav)-v4u)VF#)=kkYFro49ErB% z?1yStbI{t@Qmp+AnPRYJ_d_j~@P&{{L}Av)wY;g6HA(dl+kS>SOGPU$kS!EFtPjQ2 zQD;$pa!~=7^LJTO+m!Iz+~pZ-4?NxF0ke-yh083CZf5yGdIt&jrx{d8w464WYXdJk z6fFKMdYlv)DX7IQ%`M><;h3H>VxynSS+*&(h$Kdwbmgi3@eZJ--P>&L=LJ1NB1x#Z zRQ+<143%=P+PGLg(ek2axBgHTTiW#C$!xQE0&G1X?J$(x`eQCbt-^~aoR!K9uUYw9 zoXL1Q`DCDyZv7|jQwvDC^(QWW<70l~zs|q$NxzZ%jnBjzm|7xqHB-K4O-BDSNO6rA zwSG3+T*|W+H-RpSmA^f$aPH=NeN(vWjs8Vaa%cJuMN8Dytv?L(1<)XC>qRfVWZ7^_%{TA3wpU zC_{@M|H-b8kp}VjFLr%At^C8y;}F;g=;)+6V_9LBpJ=0356NBPfj5Cj2K`0rbP$PQ z`@se_%v9cgk!S@8QosEJ9mR;Je$PloiZ=}zqt1}!XfX|0LqZ5SR7Clk)3IwvW?Lz* zQ9t#($wtdX&x34SY$w^o&3UqUOEFDWt}VixLC<{qmwyM>O7FUiC>sv7 zu-*EB_wk5*r#zAo(eeV+T%^>0`9_SY=FT2Pf>alk@-Q*q!2JJc*4ZJ?cWkAf8mhW)&qWz(uJR{ckqj z_7)cBhHBr={JlC@8I>zp(5vUTIfkV-~8DtTYABp?20rs3MCw|?Y>=plsT@qhm0#qW9J_nkk$ zrkI)x&ywXBz*^Dhf`3BJCus8PGFIw&F#IRPm53cT*g;(tQejQfMU}358d!;3YrX$b zE8MvQ#V3>%fz_4580eS7l0;!yeNm^HFs?;?0Ud;J{7~k+qOyKaGXUEMHc1j}azOjKML1{4G8*304i#pnm4BNo_e|Yrg)=i+8AdJawLa^vX}5!q^v5eg^G@*eHOA zFXo5b`>cpl2kk5z1OOZ8QgD!FGH#Up1#|7i4$TP7)Kb9LXp&vjAYgcdBU?WQ%Ri;I z?`chskB9ZC%70$%6(i!i(Ee(l-_Vw2Ubyp`C}`OcpR5tf}R4 z?cTY050*J2gl9hAASRP|A$|d~S#R`(y{%Qz*ToTZVHhyb&bO?Xi~55~vcUGw$s1Oo4WL>T0B0iw+7cabg5 zakE-cnzXUr5W9cf*{EMozHbf1-PVxCz*73+kac+oF%lZ-{a@VvKArfi-tOvcb}0L8 zGT@Q&6`?ld@w>k4DcqA-@sfuTLffUzi@0}DPfb6i^fddx9ti~qt*S({8om4UP_cdjbSRq#^Z8s%! zAl&(;#CRVHc<)PC+Tgog?MrWXUy5$5OmC1Oli$nJ->>s;ygOEwiksK-!SwfCv?)>` zPZ$k8Bz?<`g!5I8-X4FJ{#^8D1V7`xhBBIQfif6v#--4>;1pnNTPh(!Y{;e=V&Pv- zz3G@629c96w38g)Av_P~$in-QTs8IkgHZ@B5JVHV8RlTIR%R)E11q!9DVH%R<2oE%Q<)8S1H5r6i7;V27O{1AA}} zwDlW5kzpY=b?q1mE^R@J>;bB5eHv9&o2FIb8x<#a5e>U)ytv+WfNd$Gc^vj*1t z6?_se*zVK~*9Qe@_QX^G+KD8&ftNJx&PK1nO2_UcV4#KB3#^KeX5;ot5eM3i4GWR^ zL)?lE60;Kq5%CZ7wp0ErYjJ9_^g3-|)}KAEXJ9c4$&c)9?NuvV%(@n62F0u)^Vhdl zeatY0h$(b>0m-Ea$RDj~Mg3KDL~C;{_{wTQV4Z|T6^2S4!BYp>uS~c-8w{ezO;O~= z_;o}4BKceGjXdQC)`AB7i*z962Yo}9It@*HqKB^_D9v>=S#RA&#$Os+I6YRZGV|`@ z7`TlbQA{}nINKhNP~4M`7Om->HE^C0O~l8Uv397)(w0T9)ig4%Yw@#la?A>(_g4>H zFUNl?&bj0@77ZCPlKSGE;T+)BxaAV9YE8=wSM!I{s=tVHZ~+`MGFoh=?W3n*G;IRj z>!4Lx+5ZhipwWP8IZU8cE%_7yd|VQV@X(PQg65%vT=!C!CTDzPT9V`7=+07}XE2s- zVbh8Eco(k;ZE%ko6kH{DiYAFJh0!r9bzoZRfD}tcmxB!;WDs(I9&mCB`?b8|Z^1j? zI_2lOie|~iE5`Q$*@6pNCteUW5)z{N_iA1Z@rhP=%o5>dy?RIae?zI|m*IBPULgU<3r~~=OHT7YEj!Lv*Pc-|0{nHW0Aod$p_+QLin4>s!d6!{5 zLw=ES zGz70@6NZb~GhZL``NxUOYOe>nqv~G7(MAWWp*vHNa}(^3#<}xFdK;eneE88E5<~OO z*e>|gtGo2Ucx&xm0Tva1_G~PR4E6;XAU4$|2vn;vhBx{oXSyO{bd<>w#JNPb%D-q4 z7ol5tTlUG-7o&!=L)2&C)$!O>1l~ByoWv_=Bmxy7QtD$tVa2e4=CN%mh9XEz2HGHM z@@jB6p$hV`FgfIc*UVx3nkmL#&|v%^;8cgI7tA3Y1wfDbatVWY?MSoum_YzifB>-< zsJbx;H=kS+<4FzJvN5JBz_@CH6A`b9i21-#FA~0$aTed$B=G=LL&Yc|)Hx%D{Qgb1 zRUG-SM`|NvYYTlTZ=i4j+XJ-5GIy64pa7Cce93*LFHco%X^g-Wu%kptkv+5spE#57dq z)2q-5CUnK=x;{+mkWZU9bfr8r_VSrp&`XJ^9))^%6ns^dA0Zu_tCf)4APVI3;%vVU z(;^QL0_r5FA!(KDlDWs!l%n}mJrlyHo$!?}5tJa6k?vqq*&4Ntm9DnD5B906@@q)> z85ZCW(+qVQp{2+(;_e85I|37h1+`LsXf(5+AWto$bWfL0`fg)Ju_1^$WKd~wyH@Z8 z;TD)ga@Za{O&mfic`n82mbO^XYPbAX`~7_#u|vc$U|K-9W>2P*&h0(93O^IBZNAoR z=}y=Rw~q6NuS$MGME5Fa)M5nos$~A*{HEHgZ$obSo%Ar`8E&we=e6A)-ZaLbiNG*N zRW|jjtJ|75`CLuhXs78Fnm9Q|Wu~agO|1A4@eKH8k+4l;?AAslxIc2WVMNR|Huo?( zdxOpVXza3wC$%Rc;zN-`l97Dv#je=BIcB6+ZjQ=%cw;ON8hvxk#lw>dEXCD=w&?hi zRb~jei`~xbM1Lm_YHw*Hgbs1VZRKR+*(nwZ#@8_Zko>{%3wUwmj>(?K#*=DETJ43> zXq)58BW@4f~?8{^V4knS!9`l%Is9+F=+(4Y`^Ztim{4f2!>!fPV8X}cBW0UG)C zTI)@zerxaAMo{!d{XIj}WX#Y}u%UNlPtJgU&T4_^O4Tl~X-ExBtKC-}I1Al$H!HkT zd!QZ>ZGW>Or`jHkAvG-(-er?jZRw*m%RqMLHKfY4OVf`|5Ah)?{64D5_T5`$R%?t9Bh3FZ|Z<;8N_NS zgd5pcM03r;(~O`gpS!#~J&=r2mWeHc0U8B9D?eob%~N53mMX6FIc0#kMiK+GW(;^*Lk;`4cmU;4YF_@*PzNt$0h#W%n|XSII=if_$PJRXp3 z6py1Kp6;Odri)*J;x8{Iif=lSUWVc|L^Jxy34u1-ZKwF{ubJW-`2*cvEwSzcWF4$L z5+TM_h1N=Po82lL?ufdz@P}x0hM*oJRnZ2rN)F4uhlAs)8rjb`(jAO)F(}5lD$pBo zCRXy0FbS)W7-HUoxY9VNy~QbYlZU?{%d(gM@MJtozcQXnzk(35jY9$-D&UAAN4FEo zSM9y!p!RYGeBqBR-> zR6O47$HP{;N(x*U%flZ~r3;`>;Lxe#X zI=i_Fg2Adi&Ju%Zi5E=-&DAO^CE6}Nz?sDazFR)jvr(x*VPb^(IXKozEou1)8h;GW za)DD>4(YvAIf^PF4TgwHC2F{$(#NW`kSRK_lINISoF}X=C`c9|=U&+h19yy=>vz&F zS7J0xJc11=EDs(tH~2r!k5~Gv(Tnp{d{4Afnm_ECp%>Z@tJnGJSF11Ob@J(JjOA=z zV6-hU`&bc_(v}G}Q}|GNqVc>&f(-*61*{f3W$4kg7=YKc$q_$1hAll%rQWjd3B9i% zlsH<~JAzX@8D>+8CnLVe`7!hrD!);4JKR6 zeoB}S26cnH2;axnA)tl3E3plvfd5V3?B0rPt{ve-!`swRzu^wK=T|sF*j5W&HcfcD zqWk45_sdu6mpU$L5*E|p4Aw`7*vsR@YIsBlHJW0Rz=TR{-PW!vVjP>+y}=lnEs>bt zV~wUh81$ontd0cuv*DH(u8%RMI1>O#h~+9F_Hxh&GSWhUaqk|{z6MNq;l3fiKEUQa zN$6gTEZWC?n4IQS?uJMvwNHtQNUlInB(Ipg_JXc@F?KFnffT){abXIeRwhil7)Qke zvJb~a8%6$=gynx7Dg<4-uwmovY}XqPjiaHq46rgDOs6hm{{*fO$iiIt*XAw_ z>#+Q{9(1nMajkz?1e;?Rbs7oK8jcaf=9uO3-vGuHI3{fjH^&U=-jz9Kmn^W zF8U5_2Kx{U1ip=f^1VY5pNK<@r}tvKn`~v>Da>;;tk;q9EQ5o_IT}vYuv05&7+S4N zan!x6!n@M&Pj_SrNA-;A-e$oJ@e4gJexsqQ7H>VH^|$ho{e&G@OSQH4ux+~60R&v3 zbzX|NkZxtI@K0flNW}LQ3dv%nGgB5S-_6R%NNQHbKWf&ddlx<+Bct5r;$hjPN~?_j zNU&qUpy>Ou`J}dG=8d&LjLC@n(r%t36)5)_CcK8zMgqZH!L^iv)H8O1U7NXNskNu- zfY&dt1IW~6z}en;nHZ__vI2K@OZJDIzU>IY1t{4#Ur#UKz|}jxlbDUo+Ba`GSblVE z^rpO3Xlb5Pry>&?UGw^zx5H$1rg<3=D*;6m6DbcFkpUtUGKb?VD_RDgYhbEhG_pb1Brjd#9OE^l{mIn*z<}EA%6nxdYOvf>8RyxhF`1x zt+)R0Z)RS$1(&R1DS0EUD1@0WL!e-9h@lS^(SRia>3b>NOeQkX3U8!TeNVRuXvdPn z)NhW$2&yUy?{SlaFSI70eb?TczL0hxTeUbEMMOwC6MZe?H_@A{Tqs&vb7#M+jwsNX zKqAsxg3j{x$s#y&wpo?c3glTg);GvAWu< zU$OaGfDr)Uh^#_Zr4q)nY6&-rKMI5fa|Du$QP2yukh^IfQgw#G;7{*p&J?K-ggGg2 zA2CsI&I>dtZ%@!S#oZ!A%qfL~MB9;jg5_eSu=-<41OEstlShPJ6!Z~Fl$9xzE3Sc! zB`}|tzfzJ~CncC$W^y(pmzCRHG%&N;2*6Jr;>&{?^CO91e1&?ZMvw*S5h_`)2S!3- zpnA2$CF}@a4SK+H^Gojw0Re8a!p77W1jc|1zmjgF(LV|XXLoRmIZaCmIz4?^&>C|# z(cIRH*%^2M4k3|QAsMAwV=WHDz1kaY)JrgGzeYNz;g3hLDFfNT(h;w7{)2qf1PN`< zobLIt=ARm8VR*t|Gs|4+_Ig>HZ4ma8SYIu$JzfH_{MecjgQ3@$MDf9duv`Agns?I8 z-)t)&q+5QRC(uJy|L;ojH~$(jo=>kS`sT)svHPbGCYd&nu}OYGXJdHvA}in2Md@L< z768m}786n}^D;t0e9<;G^jx#@!?dawZunq z>DUsc%Sf?%0wC*?SbkId83MwbV9B(KO8`(PuUTDsjdAx+EpHNkhjuxO2Zx1MNZT2R zpe%JtrXJ(UA}Lz`)TFERH?1bPBy~&?K-HR75N#&}xbuYYfjM;tCz!Ta5jmsA*x)wb z7%R7g`Nc76+Zr20V}ost!4!e9r!W;@9{8;oF*bVD`@-EPDi82Q@LCuTiu2m0ydg$-o)A7A z_y9qAO}DT@TKCM}7v%-L(HEC=jFY?uTKi>*X_LvVDNc0Ox`&22v}!D;TUP&zw>TLw z93;g08Bs+zI0*ZohL5kQW16#f;Tr9QgTgk!EIZmj1afmhL7hJPYGKmRxECHU4+K~O zWOGV*KG=eexHz>KlQ3rSo^3I)PaXxB9IBF&ge-B*RhmiQ?Z6{8hP@E18VH&t>|a53 z2sWmH5)4Gu3!Lf1un!2(kv){T7q;(JT|ME;|H#bIz2;zDp(NEuv0Tg;IhwI zhVp-^6|j*oX)z?EXg3t7urlL?`61=rJb*nZO9A~!(&|E)fQ#_umu`l$3>yi7W)VX`l!BeK!Vh)ufOQ_p#< z;Q6WG0zoUDK?!4qsG089t=CGQatrzNh!WjUc#S8`u5Sogp^glv68^C` zgk!VnP^3R%N-PmVP$q(LgHXh-47RJJu)r1bVFXsAz2?86kRR`DF7*qx6n8qkt|djU zzMp$V*78wCG}P7cY#{cHlks2y*B){Gv%8G$T6w>o^c0LE(M=lWtiDm`;f5?p1@jn+ zvoH_B*ZGo8jE4fnh~Z}H`lx=R)|Ooh(B=5F?XRDbGU5>MSbIHmYmGzsT>Zwatv8We znDtBWr8zuHb(l)Mdil#VecT>(RCL=osv?NHzR)`@Ly-ZMjF%oIEC5AjTM^O;LU2TH zr3U6IBJs9fn<%VUhNA>C(3N-dBkCmL^J-WQ7kP0;cQjDL)C}Pk8$M4O`2pQw(Q67k z)EUo2D)YPiCKj?bCrkB3j3JE{^nmg;PnwSDJ1Au0ZYb!wGB1{QzARjXgq$|kGq zL}KTVcJuAM=WMkKB==T(?>+-e9D=M7>T|w$L3)pSaDaN47z>iZfchSx280>@I>+ej z@g7-H;o#85F2EX9S)5*`QNbi4p2MPQ$|8F@g|-oRy;KuiD&YFRI)Nf?pNu3q`as$` zGhW;_rjSQo@mRqdP=pT?VjtyyY-#i^GV~(JL6m?|^|XiepeE345D!9Nlq43Q9|e9^`xNv^6}OANro+adb&q5p zfP17>01nyhoh9z@6Nz29^8uJ!PcF5ltENyq19PTczK5Qa@Z#b@`WZPpC_LqHB$xk{ zKeW$VhUXrY5AEA25FXwq0fF#fhld7-tGUjifG_W zLt_zMMhmFd+Xpln!U^21AIX&!;h#+=tY;GTD}DekkIGdJs{W%;b+G&(lY40+sNzAa zAZfh^WJ0si>9dOv81m8_;puRioAxyk)k%H$|6$3=f)!H_=`1_?D$N}-`BTNx@T_Q& ziu6ObZu9y!s_!F`$nqO84h&=aiEBE%45G__)=JO~iIeEs=dAD7$k_4QU&fXaiLNT0lb@Oq6&jFi3=eAQ1zNO@R?(_GM*y=SUF)v52*5#x#m!$mM+)4qi z61+kiOIwj=WH(ay$M|ng<1fC}cGjq^OV?L}pk?eig4?Y}n9_-3jB!smH=TkA*fjZ7 zrk;y}kO$43ONeb}F?b{bKcm~nn$_l%gn23k%uT^)`OY1*+)f?JVJEHyIgke^Gdf>jji`hM&2eW*gtTZ$kC!-sUQS(BjinGrb^%p2T}-tP zXIS+EOm(y(gMUylED5o_y zu$|3afd1djqZPdJZ-!{)>@c|VFbG$fF~AbTTr+L%7-HDzaON=dY>2#RdSg>c9C1OI zeXe%-b4k0@szz(XH?TXaoFtm$(j$NFbBFlLXY5{7u<#p;{tuB-$G zZ1DZdGv84LPUKa_SiHTFUJSiNf96gf+KX%+XS4_X`ogBjehXCRT$WK)#^Wg9-?B#; zz2)pCY?vJYB|MZMb2a<)HneX_5s*Z91EjIg!~$x!2FXiMw32o5;u(Q&U5HUQXmC9EdUC~2E=5lgtT#R0f^ zRrt#Oc*UhGhdE0a4v%+T(A*c?=D7EWp6rATjm5i;?F1`=Ep64mIa#*ppOh{${S!V# z|NY_crK+Hgf$gc`Cc->n)108L(fq0&YKI7NOz_NfR6b7QacQEUyIH5(a@|;|GR2Ws zkf)Z=ZHA3cfd^2ub78TfQ$RL+Uvo=kx>u;iBcnJt{YU+dViEd0uA7$Fa;<;uqCB)2gHWAHBEn|#t<|R4&w1`ks%oF zzO%XSg@rD-D7>@vJMOa4{FTMuTyzR82+&GCO>=Bw4!nU|g~!6ro!cb%li(oS(X%c=Hrt zf#!r=S2AK|8FX*-E8jE;j^a%mJhEB0K}fEd_Atw3UQne>7`^426vgsg!UEr-YR&`8 zFcD3e;T0iuu!AvCFwH*aDnk(9-V@m@c?u9_=L_=Wm(qq@eOd}`xoLQLRxr_#T8q}% zKTWdwtRwZ0a-k8Udj0K@EtYQcTk129)VCcwTu1!bn0d*E-$_q(ZUV@R9j)|o0H4=I zf^p8H@|$0tDu+v1Ftr_=Kl)o_%5eAth^z8oaS&AM-_C(U25G@pauXEfj0A%tjjYH2 z2Rj#>SLkuwKaN$S(CCY4G;M^@aCmddorTnquH!x=wbr=wYf{z^oG^b4G9&CY((9@8 z1Ux-S7dng5aQ(IBF=~{42oVR&o6%Q;@AJ|BLwbkCTAMhM3Zvg?IP$Bq*poMQ-?a(4 zL@*bVJ`{WKM3WU`sq-FHp;aOf=KOD;9~e}3FX)^*^&deDO*PV+rnMW=pWCS6wLSi zP3|j;fk`MhjDw7FgOXI@N)&`G6Se326#HSLN$%3RuUp{9Rf~IZi{x>C&O(hT5R!S(CZRq7RgxsGX0{Jr7 z3WybfXreikJqhe2h0 zlDtgX+o6VwAhPM&29cSz#l;)$toT@KsMGc?%bvnVd0BR$?=QA#d+q)e#fK9~?skthGc)*E$$7$fh%jwo)6{g|Jvf|4Fpa5yG3& zr_}vNKfas(Y3_M*FaZGzFId=%pJ(X?1P~9n6~X`&0Sd@?_4t>`>`HkfP32|hylg-3` z^_X8&8acXd>|?x7uiTN|auZupjYJsk291Y`%N3ps)qtfx7HsgaatOqXxfM?DR0iUz zlZVxe_{KCL2dcQ9sKY8~z~W#IC`i1?#}P)e6CFj#s#lbs)%#sf(vGF zuMH{l#);?AvvpTYL#S5g*-U7KU|-yLL6ziWmfCfSQfJ8fb}yNxCT6Wsvj{H0q=C&0 zgDZ@Xk|9O-AK){OP#hwAG4ybR{W8Eo5@pL;Ae%=;g%4GM@%B!zaVEGh)#DFsiCV1+0=ezcvxc2 zTfDsCY{+w+XK4ZowC0%XU-idWeW{(8mhkihov4=Ij^Es}bD;VSX9v%&7cbC} z-w4CrNo{;_PlH|gx|3{pA)v*!t%U92&YxL0tZ@t(4EFiL!K}2&G`_)IK24A{c>xS4 zQW#O%C8>5RJfh(3yCbnO1s<3dpsATMVEiY#Qjcy|imCk9sgwx{>)T0Bs2Odpv!C1@ zdocm4Q<~In@Od)lFnFwAF%egyR=8m(!fta#vfDInH=v&Q})F?$;MrQ-9WK>qzji<0zCFDXtyK|GNwMK;41?nvqqeSB1NH^p)LYpZHih z8ZMIbV{RRNd_Yc+?0sKda!2ALDC;6lQPOyfr!O_ezF30f9=+V`147QnUSfyDjVtX|+=0M0ogR`9se)GT@oS7|eBSzD(S*ziTOsfWlWIA8yHAQ(IT$#k;-qXRwAxm^92~rA>4XzTFNRB5_fGaL&4TVsl z)l)40OgMpGY#RqAN%LBOL`%sO3D3y@`fG8JpGdJJ86uhr2&GvL8c%pfx=XKgIq7p` zA2NXj##zBpa$mHQAfsIva26yAtP2uaV?hF`I8w4_2bG{IWv^;Mg5x1@t9^2IUDi*! zRaDW5z?@PXODwa^Gf>_ei#^DD$zyO{Ocb&QU&7R@qd0636GqdDXU zb04m6wG5LyUsF5H8nV{G+z1*@wux*NqL4elCIABq&yI- zMCi?8m1CGqASRs{9EMfYldNUb?uNIg@PUHH!yc0V$};_tdF3k+V&mCY>Lz5fI|=nG zT-X?fb3#l&p^+F&hIcWVAq6VX%7~;Atj3Nj9L}&>5`R)hwmR3txQ}pv!H#Q4HQ1G` zqd(mk?8>@g*QRWtuGS+sg8?LcCMJkUQQD=oR9z<}C~P(Yg}`Z?b?jcMsV>=KtkD1y z)k$M<**qOx-k6`+2q4BDDLajzhem)vAvjga&k!mXq8d=)6R~lJaQ)b#IeVZ$j?F>Cm)^T%!pX9JG`q275)QO^z(p9# z_413-!`xGDJSJXp)bz*uO|R)PDWo--*#q?+Hl>VKE~kYcW1}nbj3q0;=1+hvwa4~` zFM!=}TMKqp6FH>Gz5{zO$?88w6K}v)3kt9~$P>zrxnVpw8xXSw#PH8JUDwISHDOFB zYlVL=b&W8^a!S`YL*j7=!kT_*J`ljt#W63`pijxdXj~_E5Wet6T4HAJ^1>AssJqS0 z!qoQSgclzOTtvYgIq}o%A`6?@-3mj?^AnrZwogEBhoN2QJ^R5#z0XjRe*M24b$)rK zhoTpg1-=$M^JbrFm|1)ueU6M9{9y}_rV=Rish3ifks3|5nY3WchSmaeE=&zbfw^5^ z4roxdr)cxYo!*3=6y<1~pc*F(9qFSocqtL18RQP`@1&jm*;{f96U9lkoVXnm{1Ugx zNFS370!s~~=CaWvE10R-&~T~nYP05ZUu=3yW!8LW4m3U4k*O+H8BwP7lUc=ispyaE z0eFw^K>ZD41Zp;Bc+l0!geSQ@@Z;nIWZOPKCSbDwH7963Mu5V&HwdHvu%HmBgS%t( zzq~unsXx(6N&E>0U_a3C&emv8qG1_bOMj#W{b(@i?ufT=7iHnQAZM4?oJiE^=pru7 zMV`{@>t7yc8cZ;2$C}iDrP+(c)~jV_g3a3PT>qtXOG6c&2B#SBa zv=Ud$JRfVWaCwD~$ms9SL5KqdbjxqvosUa(-H+V>Q>uD&5{Ku)Gr23|a+DQGzACTX z%g<9hUc?ix2%}0YRz);ey7C2r3$()b$ zEbJXHu__zCi@0$4Y3c!c0-NW6V+YK~OjD^92}v2&oz$cx2AstJ4#!KP{s6M3T51BM zMvwKf;g|A!q1j~OfXpdhh{3HFjzm?xdiCg(s%nWGUPQ0O;2EnC93^mdMZ5?2p%D z1e(^F{qaEa<3(K{P6-OyZ--Ag+Qu``$K|ou*nIb57E^8c2 zjHk> zk5g`TutNrv*cc`x0j+aPCC8r&R|;GdAD+z%Fr)jeMPBgT-2`noJjV6N)Td=h$qshZ z1LU9#tdr)GYE*JrbKscF%UfCNDalS)uVacJB~=Z|Cbt5Ui+Mr^w#gt_+?(wtbkRiF z>uV(q_>mG^B2k?x4EDJ7gp9NU1P9HG{&5kKrA?g>zzhR(mf{;s=!Twl_~}P7Vqx$= zs|I990u2ZR2sqAJqkpfE^F=(!s4{v--$@%l!O>lFl#qla8hrzEYJC=FBu{J|B&pE} ztm~s+V>w=e>tOajYy45BYo;>`tai-;zXxkxEzIubOhJosdh4@h4dStCx_K%N`p?zH zGyr@M4dK#)g+^tH>~;~C89& zMOS$=_|w*tD%rpj%o_`6GRL&b%5WXGkz}o$6Ml%4kYPxb#LB~$H`I<@GX#iigkWqq zIcN%=M*mDa2+;vU$Vm;i5G>ptlcDi8F`e^Jj$RYuCxxbxh^aNjH8vIn8qrHg3fK`X zECd`K#aIGH){YM?4ntUgQY8|KUC1$HQVP)w&vW8r_n;1?WEC?q3<=4Kvr&NMigZ=} zPL^fE|FVKT%7N8QIOht+i}GM1vFTq1juxtpLXz;o#&AwFFTC#*^NXXmt>DnZo>G2; zs@=-IX}9h^v(NgNka+Qn@gl1~5$WY-3J{Ta=WbjpDK^f4E<=E}v79~a6LhFuMp1MABha#o#z;vj3p{Gur?|1|7Y@*}tfjz}{*Uk* zf+;kmavml%m`N#2$g^3PO78%p!2~@tl-3!rmqI;@Hj8xNEUwpKS#i&jbV}wCBylp> z;!3-jutPYEXUr%af@id-W+8O}EnPd|p%gvi4IZdtjH=>W$9&GO@noEDiiY&c3{_p5E!ZK1vT^f5B@0g^hw(ha~kik zZ=n>#o(RSkIS?&Oe&=ojj3E3YOd<(I3#vIR*pfv*d=s*w81?YG8SO>N?f-U2C2cquC- zW=EG)D3L#*XJMO}0nm$Rso5L-huz>p`xxlS`Q>A#mLou;-y*!U^gIWTg~-6eM$}J{ z|K+jC%T$rx%^BvlZewSmu-ML# zJkIV7k1TDrM;%6k4+NN4=4IGO zyra*p%Vy+42Pk$8HcBeqgy$u_Ldc-j61;8d2tMup(6swQ$DU!ASCcch>0SF3$+07& z0%#2}8`~PD%gE6F5r{a)P{E~C+3>01V2f1ox)4RZgHcVve@Xp@4Wn?=KL;9U!Ez)<*!T`=lS7* zF*-E{hUDl39nhY*gtm5OhWq4fZpQ^^p)^2y++Xf*E(C!cKfW60%w2mHTVotetC}8x zKA@aw^>LdMiGV0_lCx=o>8eYL=h`WU1h7>UNgYByaO=jh-@l>k#vIOXC_*hRjB$Wp#!nqkY76c2*dkg|G*0$$bk6&pxaF9JMh?hre*bRq);}u0xIr`if zjA|4a;VLFah!6^%kKRz1FRII<^a2-Zz%)Z9XD=0eK*Q&|n^7JoWd(iHqc=61ndzgh z)1_A8Sq(mXA1A7lM{HT3VVx&205tRBtT4u{&~1k11*rpJv^~dqF}xOgoNIR2d%^o1iDyy*Hl%hCaop}u82TpRs=?Y7J+CUA~3rS-G{8R4ffDu z8@*UkOXjL2uop)2TgIJv#sjUmc6UI#10=jBGA}1>;d+|iowHY`!HL!q^{ZwN-mAGQ` zR_+Pvr5O8h_~Jqq2}@Df;fW(s1jX_D;S}QIJ6eT^ID<+3Ahqbbfji=WQg3twsZ~wx z{3p%yF>MN%>O#}lH+J1bs9)1fp(Jg(`G(nUxJu-&dJK^cpE;0WER+kN1b`NfIDTQ_Q%RwK2RiHcnON;fBEweuU zCdWvg5YBnYbkncCNi4;BF#hHW?#>%7&+E(t&eTEDuwLR}y^MQoF1B85nydBtWi@9~ zd&d{nT%PEcr{F{PV}AJ-E>lFI*gM{5{i74Iqu(;#FM|1x)0`xm0i&$qsPdcTMK#|9 zh!><(aUU?(P5}oZ388Wg(sd=4Z!pM4rG?{L>w=pb>FnF;295(Q98YcGxG2HF1tPbM zpQg9b+GH8gr)@ONK-dLKWGv!0RxTEo78;@;s&>j3jEPvo3J#yKQ5YqT4z3Iwiec?F zDEw$U>{+Xeu7=s3di61c3Hwa0D%+w;^{ru&<<@iyAE5Br)zh9$W{k6+eUr{mbM05( z#-(*oC~M-9Yb{qML0xH~Xwq|(ivI>_Sqzs7;;zRIjY)N&z{rnk`D)jEQZZF$Yyns( zGK__CN3a_0yBc-iTL5qC($#tlW65DGRZmIfuBY(+t%h+S!$5IJ;22MU#cN$6V696D z?lN|E;a%FSI~6HQ+Fc83gRAIrwdb&BBYKw67H|=IlkOQfwHe8+JUB`AJH?!4b zQP%b{*FUm-yZ-ec3VT9stxe(T99*>F>YSCeP%92*!qwk~pq?338?KHG1))Vj5sJW| zgDzY>s!U;Q!`0umGOP(#|3uN46I8H6$MU%4@2(R+CTH)-!z@&+QCSoD=6(>^r# zU}3<1uNhPme$)B%MWzuy-eSk!__nd&TPE?c=fUjpp>E;k7*XtN?c(P^H3eueAH@AD z6k@VE!)Brmt&{PsvEk1~rc;X*9@{B9CYo&xo0u}Gp<$D5yj{QyC!VjRAgHj#<%gI* zzo}t06b`y$m@zmGBH-KMvp8$6Jg~q2-!}p1I(H;zR>H987Mm6`g?1k{>byLdkn^GC zNnUYVr)xwxVqNRv)bHAjOT^H=ZYKo34R(LCPs26fW6fdyD=x~1&4Ct&vI0lf?tk3M zqm1Ec9wvss4inwGm8GjLU+8Vdt-?!?dqOc363TrBeC+-ZqR&qIM798R4;7hB7ruO~ zLW`jrdV1Z{0RY>j>p`5^W9U^3r_*sCs~W?m;iS~O<1{aeD(M~5rSMJlILuG)V9a4% z&Q{Ygj|rh$u&yWj=3Wu3vn|i{8VOdX5Y6?9B%AHk##?|qvQYBcFREo!+uSh}v~9;h zWZQHc_J7}P9y@WLIr-Ta14^|88#lllI-_@n0YqG5&2C8>`T^B=+R_cXPddQ~Pd; z*>lEg0ML_Qh@OEqeX-`FC@@UednXJl#+4 zdflG4u~BbJW#2LXZm!$Q+IO1=`<-34Q;>qUd0hcen32 zY~3KmuZWH_l$vqI`dzjcE-ay_d1WB@UFbE+Cn; zFjNIp3)c8LV>Nff%I-+Lj1lN9$e~hm`V46SJt{=6K3kuoyhg_f#epZiTP6`Uf=Wir zAX%g}YmVN!d-O0qv8Z^doKIIOEHi#`qK1{9qa`54&G3utKv22?WWhCy*6V%NPTMKG zvX1iBZ8nP`ddOIdWd=03_KVae+=LTZ0N419UgOEz9XRZ2Ayq+3ng~BcZbBgXc5LN6 z7IM2FplVZq@!J{aOtr_S7ZdW+=Kk=GrE)*swzO~(Qym`PixFw7Hi+uJxR;YN>oSI3 zy>`SSH1x6={VUyW5*U$6%A=D3I=2{%ARE+LkC1oAlQTqP?9&&MS|6&t@6U<%;c#Gv z5tB`|C8~aU!t!4MN&Wt;&g%C84j!%O5&kXWZ;2Iek)Y=Kg8Fwd@@rD;fo+T7jP$vz z{@sjwhbi~LZOftD{fUQh1Vd2n^V^mqzi+!$Y2XErFJ$C(t3Pbb4{ci$Nd7dde=n;) zYPpYWTMkGb%j)0H>W^FQW80QvkN)Rb{l%>Qua^6>ZOav#AO@1Zz%e4LAGYQvwyg;y zf0@;fWc43f?vvY=1CqbW>I3zsE%vExi(vx#o2>rptp0D7`_i`MG%TclElB{#m$Uk5 z^+nWs>UIPH6ko~eOX_c@5OH-|Qw=cuZB~CreJO>WzFi?sVE#U<|1RU^ZHoQ(?ErOa z%1Pv`tRQJ;$O@dSLRPR1lsga_<&E<~qvKl=74Rn{t~|wYa4|g@0x*x z@Y^i(8u*n$^CGC;aYQegP7ngS@RT*T4CD+gpy4Dy$q{hG;ffD%nc`VMgB0>f5l?5pL}eKwl~1|-tEhDF#hfDZPCs=jPIK*G7qC$`R!qR^=!pS#u<=8d%8Oo0iXTo z7X7C(9gMHsYCh&+{M77p0Aq*6*yl~Lm~K;#U534Xa2EYQ7_ZZgB6b^=`G=3sLpW2W zgYeV_Oh=hc<*aPx{@Efe7K1!vrVA(j2~+6bJORx9zuTAT;C|IsW#%#anb`?y;SLsh z914B#;d#7mHT&0ms$VUD7mc^JPiJ4N#_o}NPgV0KdG`|sxeo!gh`V0`TH z@%YZ!B2Sz`e|omsHWd1)*(sVY(?NLehS}JHLVtC3GFmJq3KffAABFzbRUZp=f7b_P=#@f?Bu(z>P9=1B~}< zn6<57{G-`vn;%C9<3k(pzXgnU%odr4aRY^Jfbp}llQQ3bH~+u9eVGo%zuyYi^LTu4 zwn(DTgvBja`Aokbm);YzGt{i{stCz;Y>C&-PS9+L4!SqZ&O|DKTWn*2u!&DM)8O%7 zWROrltwMDt-V48Hd@e$v48;_;WsC?~5A07|?Xp@Wjc9(n zUe<52*~MgW{R;b&i|VJ=++su6az+1aW^=c+IO(u0`S$u^-aT#eJ9Z+j$cM^nPy;S#Fe=vO?Ek*(_U>o>k>dGvv&r1P1tHs>?G;@rS9ywNqoZ{SzO{=lQV z(PvgB8HjqcJu^xT{+bPXlEbTq-_+(aCd1k%7tQ#Hf2KD)c~11F-&&r1Jio1c=>=?B zO*>?*@T%b;K28k}>L<*eCO1MD2(Hn7@<(w@iZw#8__Jd6|9v-d@Z}9t9)fwa%$H|I zaxRSkgdS^A!Ec>#jWUo-fru+(-&F5A8i6L~W5S4>Cmz}n+!oGr{K;&-j+TJNo=txHYi>TB`GL zrh_wZ>S!ELdcGzR0Xk!Gn+PQyt@_uHGa?Q^*k85)&ViTuO8{=}kD&nGrfwsZkjQyL z-8N&zVQ(HQ%@pCZzwbu!X<=@2d&hrSjLoFM1$#Zntf+5iKbLY*^@c`Yq?y5q#+lLf z#aB)_arbME>|1Uvv|`@)$&aV^twP861##Yve&3wQk;Ze2s<$< z1mVCuU|iKnHL@MQHj<2`W|Q1QR3V8wfXiH4isU%G+`{Vx3C z&TAe#I|>ZPyCrZ;C7PV8-4#Da|9b*9b=R7rKVwXl!u1sXM*Pc1|3Vm2#c*fD%1)R> z3Rlx6EbC;j4bM;IRq`K7iwf3YNyH?ckLI$;2~8al;XvpT<$22A^t9AKd>Dg}A^wd( z5vcIc2_rGSS~fTO0L_NnPE=*TWgaXUq>P2$6tO8hd$ za`pqg!{eRBLH~i7CL7Y9KJZ%j7`dVS%Q zV#V>R{zd%nlUFo||JW6Cy$$pQOT<~>b#t)0jYpW%0e==K*%-iRsF;mKmCBAFncWDBx!H1hiJmG|a#_xT; zHx&i7wsyX7t4d7W`s39^#NkH6vWUtQj#iFA>PY3X##4@Rz!8_(C?(3n-ANDZm9zE& zxAJE3W-}3=X=JFBS}LFXJlU^yjede*cv2E>G>e+R6l;PsDRF=ANWFd|=n3(f_zG}c1?n%rWzG$@Q&6XQszJ zNyS*MNRJSNrN7r;Jp(Znxli>x=NzkhxQv$)T+vYyt2%yRxBk{PE@*Q!ZOQt(B3e_h8S;`5Bq|@4 zZQH*0`Cx#iiJ1!=#W+Ebp>??DwKA_2m8afYmG@rtwD{jAuDI*hCwp9Tvmf4D?Rn3g zr<0LRa$Pb`l2J-;u1_tMrf}Bun1$ei!gNxSvGXLw0W);P)Ps1cx z@upgm%duOUr3I=*6k_4J#U+qR0q;voAZ9?dF!~Y@$IW;AeJc~+YDso58N_Y`k(O<{tn8LDV zp%4%n#JdxhHvr9GSuo3v2vR?P%(6h%9N_IINR=?O9`nVzvVLRaAdecTkf{z!fpyqR zD*+;M{>>m*kni*pK;J0BRiYj3`caN>z}M(g#x2)!2_Y2DBZxZg1M0rv!cn~d{ zXMh!t7-D_j+@re(&~*YYd=)tYLzqeHBa;rnFh@qe$@ZD)g-BxJ8|^7j5L6F?xY5p! z(9lq!6J!X~felC{aFC#Wj+Be?lYzUY<4IUxMxSzq)X2)XhOdl7ZmDWmOM0WfixPNe zrV`Q0#!>@IC2>x3cW){z)-N#mZZYZ$i5&!{?77&NeHg@FgVKM{LKqbOA+}-|6BagC z6PqV>7Nr_nXsaD)s@=Kjc7gPko2%VzH36gAdzxxhQ|)J?T4l9V$l*mN%@-D9gIX1-STK zG6TBE1Aaob5BiCwaG#%Q5`HeTQu~R!=Se?dv%76JbLu4|@H^#OxDIWpUPscn^@LWq zZ2+c;ji``WEhqpLDyu(}9X&ic5Of8X*FCJWj5``c97de2fZf0|e%&wIv#_&sqkZ7S z>_=mgnTcHPBlLYR`nFX60df(|)#q2#PxV+#2sP^yn9$XDaA1Z@B755&`88MLtJElG zYdl0wr@0#Znyc|J!egPSu~eP;LUv*73Q1)8wSA2Cwqy09#UZe8H;cj2wQPxHuey9@ zTnmDi4w})^&FIp6L5WRI2o;Sl4f!BaR@uj4bf|jw5X{STuoh$>+w<;3I2fA{CMCjz zM~mS7$cW2So0;(Zeu%=VDJ>B@+{HJpSR~2t>C6y)jS(xPdJoBSLqT^s@3;SGh2!>H zFq5H`B&V97dFJ4Tx=ew0epdxy>z|%>-*wCfz0$Pwn*lkx3bMgUGQ2X7$j z(M3P?nyE$O-0Iw@_d|QD{yndrY%`cy^~9|cGi=K)FA64SgydAs9!UXbw!Tmwt3ECw zQ9PtPRoOYT|A^;_Wv-i0&gs)?3$3s~!ij2DL{rM8aQ?EG!R^csH;E`PiyE$&Ct6Y? zK-t*kDrB{&gs+OFBcqCyU~?-$7;Tl)^^{b5qO0lY3|4|C)KgQb@0B11r`W&SjDXNP z{FaiI9e7lgK?14IaDlCoj(B?hpnt|rP}zARhY}#)+mbx_QLv8LjP_;~k`s_TldnSZ zqfalDVcxp3UcA6RM_Y9y^Cpmk6}y;DzerkJEY1KR=2T2VJ%Z;T!d5?FIY-(>C9Zd?IYc;C;eWXX8AS>UZ4_hnlX?SxsQ+f8pF+PwiL`l>zcpzt z|4mW!G3Hmry;o)Nzuv*Spa}W^+@>Rp^qOB0634@`Q7HA&?g7(Q#0x8S8|`}ZISfEs zRyQ!vx{xB$nF;Qxg%&eS$U8mu7^5S!GK5Yr$Z6&W|6%0EsLl-UizV=5nZZJuB^)>8 z)I>mYfx}Uiz<5Lho&JRMAP=6)-B&KE&WAahOC`39+MJ z3#&nI9B5$))%5AQi21G zXU5?yLx>7PtBf!i$Nel;pA3k7u5yFi@ku>j)FMQy#e1s3J*{kCoyzvr8QHFS41>7M zXP*R>MJKq7rcR(HS(ojO-5?4%4f27_^T-?Pgq1NZHyIQ;C^6dV;t3dvTL-*p8yY7S z7GmQbfZ7@&1}#VYsNyV2gKpy~*>97!5&UAy(Q>hP&t#Q$UZ(_$<|eDJ8)8Z(T=br5 z^>x*bSF;Fc;NE7yERa+UpvlEVx-kst%ujTgJB>5l^inrHq3*h&(BB12FL1wwZrz7-mY*O|43zUjjKbjQeZ z!i4!im+RV%Z;8B}szEdj4-p@T&?!Rb^g`$iccC#j9T3NQt-)*bAD=S(Sw|rM$V~!* z8fVAJosbJE({5+|h_%>hV@ZSA-J{cz`{}3yQTWT|Q7oGlXwQbxsnHC59inYuKR!oC z$AQu3kYhkV192W&uaDmLl;LFoE)dyn)IhJG>84G`m|9`#8Flb=Y=^VqXNLK*0dk0` z$;w)$TmbmZc?{{d$zq5lkSvA^3t5VW)M5)ZGZOTWNXs>P^x@rFOx;$lqZWlSgP=_xVvm`K zN9;A(MpzJ8Rz5^^_O~ve*cyVFU}H)-Rb3NJ(Cwndk?OQIMs;o1&JyOqmLcQg3W|~Y zC53dC3ya$= zFM?sZ=<>!iES{;5*=jenSwe2l!LXkw7)rH3+Uo!yBrpxIZSj=6sU7Ah0S~kSw}nHS zJCgF_^&z|i>0+elKKjJofrYN5gTQCj;u>s}2~b4$EfcJgrh^1dFv)!dB5z57Svn|} zLT;A>gp8=`#6q1fM7rIM_(|Xfk?>y`ap{EgSBUGoXAYkW&+o8w2iz2JnXa zin&CBXrb^@utdvJsU9Leni+Z$Y%gdV;|v6A@@XeHD43aZX-I4$U1FKDa>C-O`$(AP zQ1E$&L2$0S!iPEajw&mC_U7qZ-fTE#`f-cNWLummM4NW`Q&LP8&=V1`3zI?W8KY*` zb4Je%aNR?Q&botZ;TQ~CNI4soL0G=A%fb@T0Z1S&e^>;?k^_U+9qbY=WIhW`labdI z;rHYhhXPIzzx-ybh>vPvjN!A%8`v{%Ab65&DaGN}dXqPhCZKr?(1DG}9OyTjO3$07 zlzZk5G@YRsmVpxLSt?r5>Ko>3UR(tNy3~QlU1g@)`jb}od$ zqGeJ99U#_@Sic;mEM0VZp9&pHdaB~GQVu^^wCy4zSk+)3>K%3~#9T6)-H}+y`5Dpc zV1)~y5v6?1xAr>5fQoeuFUJ&9+Nb6*i&;7|`kC$lk zn!U8k&tqmnW9yAxMT#rSUN_11npMMZCAUe?29;p$y%V?qSTY++wQsU&0Y^ut{jMGx zc6WJ1CxyQP4aO1>AY}l+Q!eS#yvxC@2ew_$HZ8UVKe}QpwnK|z0!VTI@QAA9C+NRs z@9_FSYpr>PCmi5&{6*c^u3vy9xc=&2F2#;reL%P#<9FCgS@{ubO&zy!+3=k^i^1{y zWzE{oy#NyWW!ZC}M&4gjEodY@SkM#n5p;H>{>9v`v&K!vRfC*y7)Iat5nMe!YGw=c zh^sL3Bi@2*5IpgE!NKYh={lJYTdGs~6SNcV|o{r*2l$e3=>E!_j&Dgoc zQ^-<7>Ao78-Pl;vZyUp#k(rwgH#J7W`{$_SY*Ce|Y~TPWW@Ka4fCDAD9SjQphQZJ! z;$=D*NN!^z(Lc1~vR9YK+%L5Q!?`cd%u~@co7$O$bxTKMJ)!cUl;E4ZKRB@icDM8eGukKVg`wZ|kZ?8}}BM?gAcJ35%|8VTCG z%4I7i?3wA~V33Vjey7wkw((x6P>)Mr>tZ};kpS{!9q-_Z!GI6=Q=dwlh~y0lu=KdC zup>vsDz`K`sdLRX0C!x$tarm5h)5QK7-<4#NfncnSu}>@!~Y;up#pThv`Ce5gqLeI zZ(p7)rSvElmIo#~TJ#UTkIuVaC-S+UC$sP4=;*+RJBs;xUvKn2ARNviu?;7p0% zjFv)J>Jwy7QXYmEpHo$5vjvDy>QsJ=1RfX0fZ zfz6-?xt^}i46vP+jzGQ_#CHNe$>HFn0h}~|lXxAR_nbt$@M)4O2=}d6is|9dH&`lJ zc44U?-r3Q~drx3^n=#K4hy_`^=-B&MpHw-BHLZ^(QDX3DH9-t0wz36wp&U7bcE3M3 zI9m>lZUQe!cDE@hTQ^OvelLF84ee z29H`caO5ZZ8ln)m2PO&K_EKlY>>IDn`EvjGdVCJQkj?^)BT&y^ z+dVUnzr7p$FwygkG5y>+n(o8wx|WBvAtCI;U4x^GetidK><{ct4s+_g662sg12YJC zN%N?ch^-B9*n4Bxbs_3#C#@=GtvdrBN9Ja7U!_0eHCL(hcbHZ z(2l!s$74BY2-P*|ugU2k4!ReZLwBl}YdH*Xs@#({Lou0F8u3Cp6zMR35|#J>2oDsp zx?CUi7u82V4!Fjyof-*~#-d}Un`hq?m^*&6x)?2k1e4s&A>sW~BqSRFNC=3cn) zJz*9JUhCKa8Y+Qcb;t;s2*PH>D^f$C0I-!_fUYwJgfTzG7(W6NkVk_Y<{8RjW@DZg z4RU~%aKs+3KwIoA8M3c#;xUx<{w%T_&kc2EzPq8e^S!dwd~Y5qYe759F(<4bNmX-S zED5oo$fM!Kg`+Dgf8^D}GRGdlKf9nP5LD9=!eW2s;!ctCwwjgYpvktw5Z%;k`FDO2 zXrTkmk_WU|vP#*;%qpd12oL?`kd}jFSAH>(IBdv9M-0ZP5UOd%&ljFe;&e>?WpG$i zc5Y!(FU@a@t>h`p#0utS*+re^c-lpYJ6Lz{10ntWp>T}PtGSVN z3@N$0WIe{yzFIozemzp~p4VdgWTr|oAgjY+#yX|Y};NTIzv9$SdY5F+8K$jUzq!8zDTyo6T zvt1L8R1Rp^TF>^F2>fEd`x?C`9lCiyR`0`Rx1Oy{NF_#tmR_HbI_z@3Q9!E|rO0+8EE~TqnBV04I*qZEE!4;_Gj8$^Fyi_1E^PCV-mZetpSm@Gn}Wy7RS@~$+=$~yf6J zkvFs8Ugf>%(3OX3PJgo?t?1%SY|GCsg*MbawGKz+NP5~NvJ?2mrGVJ5CSfg=*e>zd z(aIX`lkB%*)kd>X%Bx$2Lq+Hlqp!F-fMrr9|1g3WuN5vxnX>>6;)3hES(=D?OhJ?C z^-jv@FXM}o_BGr=Q#k3MJ{30QpTQJImM1P0VXP=I0PQKO;Okx8i+gB1X3BkrF`n}^ z&6v9E8L&9%5jq3g=D3=IZdO;X0kUXVqtTcfLv-1#aePZ_oGTmn@S};_aNc@)>d@T+ zyc*wY=nxqBtG&86V#DA>B2y5$EYlezf=0*5apxaVf^L@3=o;fg({+4{u2Y|`(?G!T zVUM2Q4u=_y8`}E7Q--e{lnb#|vc{ia++N0d5K!<`+k(dNW$EH|etoj?JsJPQRel9m z`PF$oUY+4%_CgwE*@_*6&&Zh!;LD)aD}T_|vAp+h<}kuzsUC(Nokf^$gKqd(nJi*& z(-1Dg4@RIDj|W_IK-wLiE)tt(Gx>F-<5GQMo}F0UYu zUX(waQoxU+Q;{8gp9}7KEJg0*rQgNS$;Bnq?ky4eV<|b<1cju-t5tlE^x*RjtOoi*|VnJ0>i)f)FpwarNCbC?7efy z**7UJ$p~^52?r*Nmt-URA)SmSHQV}H{aIoFQ2Z#M!f+$uRjA`cCh#YpG-v619 z!;-uiIXLVFa-7n@Pj6JlaUx^6oW-PmtQdV>Ka44&>OU#aPaUl54QX=A;vi()cV#Q; zH@%d5zL8Ho=ni)F44$zd+E_Gc2CmQ(4j)IT!A5X#gccfmtI{gk;JVA%HsG_buZ`T6 z_a%zs+kr%He7iVN8{aOK)}q|`3Hdy$66*Q3mJrXkbP5frN20c zaRuarA8L@}JaMKopB!PIwN@B}TKjPF(Rlzwm~0ulSyiJoM0a^XK~S2Hy{71Z&~AcJ1ED z;%i+WBu$OXeLAp~WcLU$_VqiDzpD zhV4MCaTznF<``>JE?$UM&W@3DELF6ails$0)tG5H_Ry&*R)^v6q2?mk2sPV(bG zal*=mlBNBGV|su)lq^sFz~w?)MaaJf%m#M6JJ{9)Av3Rwyd3@7?vy0s_P5X6ReneF z!yFlG=I?Gd^KfwrJ&$@z*8hY#GM<xFm#qj4b^;>M3A>}+`VF8x4nL)AHjHs|@W)U!YyMbu|(ss>ZjfBfsL zwEm*Zp93>TSZs9KBKH5vg&n;zFEUQpyym^ig&i*YLvjqv47rRUV-@BMoE40T`+zRm z(X)HXh59p1rU#5f(D^lE*n*{>uLmRWzPNX?V;ZG+I%NySAm4rBga-zWRI&BLAfOg)t^Q!lMW&H?tAqw&Bk5(;`gxhi@( z1}rJ@Bc9vk+WkHy+WkI8e0CXHsoa62Mv*91@t{@GXI|Hfhw}+QtOLTNIJ8QLKS=(v zPHpK~yn7fSh1L32Vq@G@PL?qV$d`;>U9H`K>G3V$;4!am%f`L0D{{IpGkW#Kx_{Qf zUIIk{uz&XW`)Ww67xv3Q&V4zWboizhN#neaeeokW!vNWRB%}~o+$D^~pIy{>Ue??K zG!FnCW&jH);r85h7{D=ezCd!!Hnk&;1E+u{4Kxjti2ay=tGOkb%G{??U+~PEKs0|> zJ**~L3f)k152b{+IC2_DrOXCfa2x3z9%e~zi$uD1&0(__fO&huAP_V+%Y8p z`PNJ$4X%r%%l&hyf36z619MKD>Fc6dL5}z*YtDDV+CbsRa5L@6BuDItjQ${lvzrt~ z616QG$^DpG0ds$_62c^Yjz)i=qaE^RzBG-5?V=fw2flD}R5?FYfex)AZ`s!q9pk4R zV_c!=J_t~md{pBYF8E7R;P4;vAdSxl`HZYOoo!SoyNie^yUptM)(+ z9XVEI2GgK$4Ww?UMCk`;5dUAQqCG?vw!EjS(iNT|;QmmZU1J+8Nh6!)^3&-I3Y^Jy zlsM?piGfPahr=Cc+4mxcrF3WD9 zOZLClNCLC`Kht+2MGRI*r0oa%sUTiA>YTVXX1D*hgGlkB| zIJkJ&8{$rbpLaYF{A`?-4We-dHR(!Pr)3fw$QCxF=M*;N_zdODtwz3KDNi<)bk^^j zuZTbE#G?`|Gx+RI*Z1U6fcoII)>MROLXe{iyXd1Kx=(vC5`6TeNf_ZcjgdvxHYIWc zcMqG&&1L5*J}|Of$_HjX$Qev$#mm^w@TI)Cc)Lcxss}p_n}ay+HoczG5Dy77hQGQ{ z?mS-JR+s{g^R@7Sth4XTjh@Nwot)Fiabn3%mz;tdqEVl3;qKJT*xI(%DYNWMf4%pv z@j1moHK@8siUPy)1dlakFGf2k!7o~Ic5v`b!lF8l(=84T(%iIsL)onMM9zWyl#@>L$N8Ii%s$D`9x6zy^IcRgfj7ToVhsnguw!oZhu9Mv_Y)s*3^5J1G1B$SmnNLdJqLvC86-rEHCoWq zji{WKa&jsGKmz06ao*)xiDLe*QBsd<>zWTSq52 z>%rlP=Nu;Dg#bky!T5E=7mQzo6zK!1@>iKY0t)(~JcrdDL~`LOu>)L3tPw3>1mhYy zL2?A-aLg#d^qyjyO4RJ0$=R>F)HbWqhs*a&&UxKr7f-0NqEPccvqnWF?vDK@{^8_e!~`uQ3*8FD`He>nGg-N(+J&j^OZ97im>cE;1c9m-pB+v*{fO3MGQ%NfQrt5+ zvpVaC!SY$vnGqhyPeKDpH&&^54LND|(;e0d012Gj!S#w~zIwbIVrsq^a%?aOE+ip+ z6wa{X@kD|2%N3+f3DAU>ee-+5?XBLWQgK0C9OW%PCh5ClHH7n-Yg6Rs`(;UlZmw3~eb#F~ByHHmM1HFY$JW&E{X8=H;@C=0J$ z=Ord_es?JSP}%t|5}q_?VfZ?t0|OElQNzgwB%S-;brHY8JGhDyrj%MjmgmfRPz_%F zL&UboeKbhaO)PU9a@-S{ShC;@ufuRk)Md6_#G$m6`i_rgN1cwzQg9fH`4Wry^88}H zJhPZ1P9;DF5fqF9?HCv}r*JHxY_3OJI~a5|81C2KErxKE-#BCym5oEq;s}#IZjpuh z-;*_-3lBSckVrRduJV*}h$%ru^FTF7`CSbuzhhLcNXmw>oZ^s!69E=N#C#BHo4wal zWS*piDtNM8LznMl_uISnrXE2#nD6-~jlG+PB|AILD2iw99o{-wArcXxz!jEgXzpMo zfS5F=tj)?hkSoc`i^0+Dyagk0r`cjP`|7rI@NneiE!j)96>K>+WKo*EF>^oH8KxcA z08eq)Db`Qb;Kn|bJD7}oOf5OFxqBJBumTo-3N=EPg;i1`3{9(;VVJBy=t(dtRt^I5 zdr2mTQo$>hygGwZXj(Ok?Lu;&iQK`1de_k*K0eGSY;M+I{>nm7F0F-A0@bL?RKsvs zj_{%(D_jE4LEyLD4xJc3S^~Uv|E#5i%7W&;-^MjMV$_`N13L`dIMavs*G&5m$E^6+ zr`!3!7PJuyh)^<*u#}bjx7dIlr(%m>I%{@mi^C}vutl`yOuphRq)Z15q#ZF%%fT`Q zCe~a;O_6ikRH~XW{qE%6S|?N$#DX!!83^^yVYF5tM{-&% z*L=*bQiwCyP3^Nx_{nfQ_D3JmyK~=-&*2C~S6wHPomwOSru*`SfTFy{?b`^d;$r}x z2A~%sA;3RQ6VZC~#2cKP3fv1K`L8>03c001K%s6eRI6BJ=|hnhl_SUQ8EuAx9n-a9 z$Lv}Wfxs8z2EvG;pI(iE6bX|=PQguBhe@(HXiZve3;y=zKbbB6x23PeU zdp+{N3230J88nbuMQn`HKygN4Zp}&M6u0P5OOg%}I@TT4e~A0DT?>V#|FnY-YxMhyjx5F2SR2XYruv(Zs-(;UHA--eKW&JJV05 zJXn0zF@1U`y{1)!ahFmsXo)i5T9EWZj(iO?6Xr;qrB+D$f@2zMpt?y=%0UGoKQBed zg&Cu#4N)78k}tJVzwAbO<-#VOmDK=Q0(_N@MsEEv<7vR`v)El4i=i}z3<3u%06~L? z_J;T=USiR!1Y+55HzW{f!v6b5P%1-k3>wd%e&-p)w{37I%y3(z%Z>d9I$>-|Xp-jv z9HzEQ6E(qH7Z#UeU0{G6?9aVKj8x3^4PZXyRJ=UaoQ?!QRYw8Fu0%R$fG(&#mXJ&xy)XmHd$pAt>0U?(6(Zn^%a6Aa}83Tsr&wF zG2|#X#1$vDGPRn-uo|(Vve_{QgbDa0k~6EpWSKJc@$s_Exa@j?$5JdoEAC?D6FQDt zJZ!R#K>L+yCxN2m{iP2~8>x&ci3bNX5q^9_Rw?q{@+7?n^8ApilRK6C>cilFTDV#Q zAU3vSWoDHfRA)Ym#s0WQe6EIq646`@C&p0AHs75+EZ3_|;=Ei}8 zLB`2c9b&3>@Nuj<;~9J@4jt1_BdNMdp$R~iMp{FPgrBuf(tB_{6XsWaAN0UkSO`mp z^TMFg)zY3;t1~sQ1!Y&*So%k$G8RBPI;(yZr+dc4#3tfRgsS0j#BN(%S$debXLU{D zAmR`tv#6sU-`N+N@`taqNkTx1t)SB2`(F()LI9I5Aar%BLC73EcL#O;#v4aiCg~8&ZbC00UcW;`jh# znd*GOxnTwjzIR|O0my9IVXxR44CYyp02qdW9G(YbFlIVbS+bt)78mnE<|nPQIuqrvB_=$lYBxYu+Mo66 zLF6LNLRyFWI4=&yZ4^6*k)2ha3-#v9Q&pS^(Ap=Z6Itp~h0mNGRn!0{m$O~Z_h&?9 zPkEKE(EwWzIphGput=m=(reD-)(`;N{c7@lt701EJDMw={r1V6f|ZbjIL9r?m_5fG_BbN%OYFd5z} z?yjHoTd$`-zT&PIJOcn1uQz0Qh{|?-=$IZ8Vt^3mRaiINZS>hCYU#m?vRVvFPrplM zxvi-u?f=+?V|7X96GHg0?vT3$3eYvs*>o$5?N8UhkkxI^5|0(#WU*K|znv{+pY%f$ z@7j&=2w=f_3{HbTu^w^pla}Cx0JVHvP}!45KJ`6}GP`cVxfAmBdiM~zohD-yte#kHLbRqL#seo%GPV z@tx4^KmM!vO_Ep$srR17sr2uzc>Wwu201ZCu~x>y12?kNU@6}e!G<9XqfB^vItt5; z9y2WtBxnn;k1b$yK}IFz4eYzT%Zj5r!bNpYJeizl{ zDoOE=B^cvepdU+{D_(BOiGD0{k$9pIQ6`-zp zNA+n;@#;_GCnw{7e*DInoe z^%M?d!)id-bi3pY=DQq))rk{|Ya9a55=jO=^GY?`qMbLkwl_tEvg{1GD=0j5)k*8 zGl*MYEwY6|$81}`zjLOA=7RG+?mafrmX16gmj2YVbaG5b7>5-yif`_dt1zd12K=`2 z@U#_hFzqwCY5R;(So)*W(&6XZ^caPwJvQjl^w74@_4kQs3-lKywG(q5lopZ=DEa;E zipPz-ZR^07F!+(p#gTt1dv0%8bf~bI1m@=Q43W)T1|;*O z@Q2g38DtdP1V)-wA^GIA^xQ1OfM zObNnhBbBBZ+?||Ed_Ku^n24bT71kiP}A4%PRr33izPXy zW(h$2JwXD9Nt!2s2dAxXPXHZPy?q&gy=HlB; z;&*h^F*AoPn*@UeDF@32DR<2K?On}w=B9mY5-#)8-?b5@+pT19LnzJcKdtLZAXlm# zd)vv6JZFlF$C>=V@FZfVsWP(+d|)%GPAA|V*sl226A^~wc6?h)>t={yh>ns^gr?@v z*>TfvZ-#D5Zn|U^pMkk2yc9K(`>9j_I2tvIDibZk&c;LN&AwG7aq%3AL zkM4*Ka$uWng3tHS!ESe*c8k24{yq0WLXa*bfmha_CVD#U(TxlJlb5Edt_k_n><{dbqvWzC(f$%`VNdvT(@!J9Nq6V@7d^) z75;#;c&)E<(i$IWw8mfP=Zk8McVo$QyVtAlBqcwNlcf=?{Jeu%oB7#%#V86MOOKV@ z8DFHj2oVaQD00BDQ36fnq_?9evN)pxuau|{cq#;%Il~83{^MwDAtnYho)g19*`{c; z#KF>%{8y9*!L3)V@kKW*PPMXe&JX;=Vmbwu(X(M3(`a+{ACraxad@126>r}GMhBLI zbTOu5E&}GX&kQ<0iY1%jw8L<=61=V%>@?VyP9g6#kjEu(srjO5jA-!&4n}flb-AKZ z4G#?nak@;mfs@1L%xby}@<_!3F8$NEg1BDN+Srug$h<8Pr0Qrqv0i>5v00h~Vhs9< zzvL)TGav|uafqNJ;}$OD#-UYDb7tXUi?lURbeRwZ0^KTcI_`lP=V%-8C2-D0V1nkc z3rFb~YLqU-t`~&FVCM&Z_mYJAigSwL@j~CnJBH!L3#YM_!6;&)$++3C6!&cyHKfMb zpmva+rVqNJW42fBf;`=naWHyBZnE|{h9~45h>HzLBnymVLtKcVG5i_0R|jS?HL|9c z1;tHQGLPXFJa|PJ5g`+myt7J{;i-!U%ZuLmicwclg;{~X0V!rx*zZS!Xy6? zTPgcy2fc?1OTkP_^>Sk96=^zk!BKV?g1GcDVN-*6e}A@H9zLlZXCW@oW_iM>z;`SQ zfFH7gI~znlkVxlPt7N$i{FVx)Zn4#GSuSB^sa{IOY_G31t2g@d1{pj;p1<`0@LBRO zNsWGe!iz{-q1vy%r15b2llZXiXQ@mbfP19sw3n$k9Hb_pDC}bj&c#OjL?XJr#|+cL zi%}SKEigKc_ELlN-kg^710{{0OA(>=enl*NjHFj}+ja{f68&hdb?YAM+pwdW34f+zHq$_r%T?9@Nqr_9-8Bi~2 z5RXQi>EXhpIRO+x5(1zTN;2J-6nB(%lyK?{Ng!x%SM%N}W=goupge5eG#9I(yLd`3 zb11|C8;&ae8oh|&(NMG4M~gUOgiK^sErf?hP>eFMnGk_RJKzW;x=1inhclg~tw6lZ zG~~6M0)MAx z;W7Ab1TBEhZq%Ok5H*vtT8Q#Y`HDy{ztjW0Oeu8Vy|iA#&m>#n9jIWs>UZzBxq@;zse-GH?WNsg?fix% z{g(Pm|Fn3F`y&(V%vrb}*_KvI;!#SXOUh$tu)sQ9M9Nr1%;^_J&rncjX=JYiQb%|K zNn4+F?P@{Ah5Aefxm2HNXaSG8OzX-l`K%=CBBBk%1}3V}mHp$BomVcu{4E$XFUx4C zU+ui|AM%$~qubJ>mk%iP)Z4E7eD=>)o3-(=v^JKf(C5^I<-WzkPtCF`54@DH(gxX$ z%do_mP7>G&jH;ctjYm=tNP}qUYx!jn3nswih4T8jB;|Wxc%4NNLtv+Nml;i1+Hxh5bli{uf)# zxiur;PEdEt^CCwn>LO7&GR_6W1APr$@`xGN^~Ti) zrjYfgz2i{{8-y1CQ=ytOeK(Am$G%^``x|eD-8**Kz$z!FtPY&!|%$4GQR~8wLd!-MbYPb4$o@%jhJfoz7h?CjKg5b@Qxw+uh$u0 zJABn1^G#-<`=v}K?6onda^^@6aa4t!(>0kbxCaq#>2FXu^~)^?ns{}4UN59?Z_Mk( z^zCl4)udvi3|UIw9?I+G^zAcwJxt}kOd1t*T}5~(zw|^f8m%KV`1?@&y&sB*tQh=# zV|>3op5GGi1ay8o;J00V>m8o?AIH~&BVLW1vr%NU$i*veR?y_Jm4{pT;fvnruXYy) zQR9bK^QX8vIcBKMXZ24KE2O76)DsWF@KL{}?=@jfJCLlc#rPgS z;9iT0J%J|xzp6#~a|5X_5HF79wibP_kKLzZypxPM>E#0n;S_tgn}kz&ObpLJE@&nz zBKm!%31lH~9B*vrRA7-HLY_Pjc)c^evoqkyZ5DZf-=6EYtNg~Xqz9|~JPnGKiSsBf z5{fa}fZ`1ZCJd@UaD%TFMSB=Vhdi=>{r}9p4X|C;b>DYB?$^8beH;J}zylr#o_ma> zAP2P2u}s3QEW9HU1Vqu4+EJ&Pu|#u5w8OyzD*~hx#um+I3wDq(QXwGVP#(5{B*umv z#zA4mfqpvnkhg<(MBdm8xM+raQ6h9R#WYiJpWMG$~x5iHM+@Q7F?8U-jOs%21L zAJO?rCZG#q(?AT*`ha4TUcsKClHp6GFBm>rhVIM)iUBe8LN7m}Klkd9!zJD#XAL%n z7mE5SGQJjKralR=cYAxgKTw=h1^k0|+oQuiul zh;36Uc_$FlsTMfY+k=>aM1%9-PT*oRH{EcWoee)fU_4Uq8WKFzfa-A*EU%6Si9lu0 zr6dP=#Mg?lfdD|tKtxE+Q0Pr#qyR<;@p^s&U~d{cUuyv7YV<`Q%Hsyrl?$~t;ZdD@s22x zDgQP|vIHU{fE5k;>@tebjrTM(_TdIR4;ghHZwL%}jJn3z5nqRgMXUo_QS^dgVvtk` z*GF6kU?l*<1Tg|w;Q9f>02pNh4?F8LBne0!SN20nS+RJJQWle?QtycAue>A8!aR&W z+W1^|%`+Waph;H~s#O{kBOjXNFNeY{J*J#o4WQH9-`Mzue^59zUC> zQ_-187PC~d0sd++utOiSKe;nFacy(lPWH~|McvlE8|$ZD-HpFJ|KdN-`uoo|h5!4w zV#Z>Zia=(LRMp*ZSSTx}f~f|_U|vo!OYwP1*V@Y^pS3-k1?s@9#eXEyo%W9$8!UKn zs)Lkd1%q$b*6F^i=qjsCNqO;y&l!62ZEx%WDjnOKmpUGI>qH$5tfr^%Kl2t0U0^JX zcC=o`g5j4Msf=Unt+_-nh&8Y9YEv$sQ>NK{36+A9h7n8Q(Inas7snzGdhZ`TBLu{p z$tl{fW5|xm98=5S+9gClk{iGB;vfBW#twXYhDY1*U}eU>%-qEMYq93QW=!%wyi6dG zEc~dFI;9e?=6HGXEMY9O@Z*;WFSVh=UWRUNkk1^OMo06s2YHAN$|?ow>^R;k)5iW` zYMSB2HhC`zC2!M>+7!5jpBBDOitU~bA#mTO)T-C96Gn8CdiI_&oWR0woPC>n6jvi@ zLkUkGU1$HMoNTP7>~s)#k(tX6f-1zeWkv^c!hzf^O!;_vJ-{fYW_PkJ4a(+Aj4Kg> z<-?Q*j?D-);}qEy76*O++t%CxW6hmzVF*^Mg#6bxSGcg3Wy*J;Aa0VkCGRf&oOK+; zJy0VMar+@~z&bh{EaN=N`ILGRpG!hOCK zUL2?}V|X5{cOI0P4z5!C;$J6B3OHHj1iw{aDdZoru_TS3g4m5V_PjyM9Nw~Af8_mT zUg!64pmFQCMqa_}nG_w|91Py2USLOqXG}45m}<<2vd5TwZiLrdr1fW0<)-zzgMAN)SrJvj%n0jY zS(6lhDpLlsVb>aZKxQPxpKY$zugODRu*c9R7B3;h zB${bsB7=F^D(B-*a38AXw36VD4jW+~Cma;4s`w8xkfVpUPVf2S z_u&6e`mnJIW4e-kiQ8cwtxeMh+^o6HTXNjh`7w%|Mf8n;9eEpGHupQ0-{w zoM{;k*PG1@4}|vBxj;ih!@uKEg4Q99(aV=D!_vdyg8AIk>2+e*sNmuw>ax19+r9RtPlJx=VWAKQf*MnJCah4{ zUVa=rfup97-YobE;nF}nQKSrA)Yk1|M#Y0pCn;P(T4Q{7x)xW2R%`MUaUp% z)s(Y~;YIikHk>4u#T^Wy&u!El2^v2vcjg22mwy8W{3%^|$R(cjSN4R5ndCc&@gGpY zXn>x-JUd8RNh{-DtCi!w3LPr&@>Bn${$}#5m{zh}q1{=oP0qKDUwm<>mz^ z=i#m6Uiu4?uymu@cEme$r&z&l!;f1yL#m>lfy^! zNy?7MVLsWf;PEvFlIo^7(-w*s6kmCh@&joFU|xN+%V9rFF(~(ijZEAOo+?eZnfpm# zPmEM=kPOE^v+khLpm>9;J=7i%xj(m&f|?ci-@@Lg6rO3y@Ge|0sE7kjap6M~Cz{_d z(Ij>(+qPd#)iZ~r@1#Ny`lLa^G9Rnvi&8TR*5kPc*MwEgu$|0SiQ8_KY=wXR*RuNa zzm3ZsS~xXbNgl2?0Hr*PJ(d!G{T=EFKY!WNPq(zwAu)J|IG zO%``X5fj7EnRR?IU;Gj~W6Gj;1FM=dcz-t_B-DeX)63uNqxCgffCwi*45$l>0~PZd zIh7Q-*tu}$<5kky7pzi_$h9Z*B+>3t|YUk_iu0ZI<8?F zEJ$xl9<3PWMT93eHgI|O#0=w>$Q+7ZRY9s?WS(FN$+opo#wG2HTJD1AaYjht3OOfP z!|@dnsXi5*BlkD3Qq!f&R3o!gMzn+8V@HZ-H)>f2_tBlpW*VQM$dF ziGd21rK<*bR54`7pl`FOC-1VLdI56wB+)`Lb3rN?m(=RG9?6s@Np8RR`HlDpSTgB8 zW^>1BcM}em5SSBw#D1J^hDP)g7-vG9aYE|PnSKkVDB*U+Akh%DmL#_)Kq9Sog75ml zLlz^USX^3f)t;}neZsDl_A|60MXSM2bLAh0OHkgYwY0-WLys??iPw|L_ecYx3i(wT z#*9m07ZSOX?J#tU7dpCFXp^;4`KWL;pridJT$D0!7|mn1760Vc!5{YXxhJQd$Q3#B z462gvpjKyK(tGT>=7Yo-NUo#^FlG+NoL6HKrxQ#{&gHI7%yB)RHX?@8(;3LfvzE1| zkbKTxQH;yuJSq2>ez8Xo0kii$#kl;Nj(-W6I{sx(F)lIl`MzncT-EM0!7cmVqTuf- zH0uEenujw0dQczB?jgoeeuP=O^XLC%vG>mRpWLw*kFc_JzS??fxb4pJ_S5gZ^Ggr^ zzD&7 z_wZ-tJ{?9zNyaPN`B6=|;VO<;&bdBcTTW3M(jM8Zb_vD#sN zZz9xYwfP745z~3w4r_-`z^GX`NzQA95Qh9}N`~y!@ekWm#4~6hG3{ zSyz@$SBo#)mH2#&sr{`d z6ytaCbi17XQdxfSR|eJQ({xe63Rd>szgTU4K|uR=KQjOC_I~`ZZBi+VJL=;nDYulH zPY$=3pcUBr4BaB0gzsb8eCM-|eBa& (_;Kk(zxkGXmAIo!}p#Ddm?FhT>ZB#avh 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 z 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