From c3718fff87df8ba9e804b15b452f86d6e7aefeff Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 23 Jan 2026 15:04:24 -0800 Subject: [PATCH 01/25] IO-3515 Additional packages and initial route &n simple queue polling. --- package-lock.json | 141 ++++++++- package.json | 2 + server.js | 7 + server/ai/bill-ocr/bill-ocr-readme.md | 7 + server/ai/bill-ocr/bill-ocr.js | 404 ++++++++++++++++++++++++++ server/routes/aiRoutes.js | 15 + 6 files changed, 566 insertions(+), 10 deletions(-) create mode 100644 server/ai/bill-ocr/bill-ocr-readme.md create mode 100644 server/ai/bill-ocr/bill-ocr.js create mode 100644 server/routes/aiRoutes.js diff --git a/package-lock.json b/package-lock.json index d66c6e91e..dccab5208 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "@aws-sdk/client-s3": "^3.974.0", "@aws-sdk/client-secrets-manager": "^3.974.0", "@aws-sdk/client-ses": "^3.974.0", + "@aws-sdk/client-sqs": "^3.975.0", + "@aws-sdk/client-textract": "^3.975.0", "@aws-sdk/credential-provider-node": "^3.972.1", "@aws-sdk/lib-storage": "^3.974.0", "@aws-sdk/s3-request-presigner": "^3.974.0", @@ -558,6 +560,58 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/client-sqs": { + "version": "3.975.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sqs/-/client-sqs-3.975.0.tgz", + "integrity": "sha512-6KS8T24LkEp2QZ/529SKVHQTgvCDUWXE8NtrILUBxZ9e3BiprjC9JSEdMqgh82BUD8s8yv4nnoa4Faiz7lRFpw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.1", + "@aws-sdk/credential-provider-node": "^3.972.1", + "@aws-sdk/middleware-host-header": "^3.972.1", + "@aws-sdk/middleware-logger": "^3.972.1", + "@aws-sdk/middleware-recursion-detection": "^3.972.1", + "@aws-sdk/middleware-sdk-sqs": "^3.972.2", + "@aws-sdk/middleware-user-agent": "^3.972.2", + "@aws-sdk/region-config-resolver": "^3.972.1", + "@aws-sdk/types": "^3.973.0", + "@aws-sdk/util-endpoints": "3.972.0", + "@aws-sdk/util-user-agent-browser": "^3.972.1", + "@aws-sdk/util-user-agent-node": "^3.972.1", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.21.1", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/md5-js": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.11", + "@smithy/middleware-retry": "^4.4.27", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.12", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.26", + "@smithy/util-defaults-mode-node": "^4.2.29", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/client-sso": { "version": "3.974.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.974.0.tgz", @@ -607,20 +661,70 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/client-textract": { + "version": "3.975.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-textract/-/client-textract-3.975.0.tgz", + "integrity": "sha512-7Br+8Zkqm1UYf4poSynK8srQOj9iHi3HxsGDjfj+9D5Vg8USxQTugKZ9W70LFwKTPmreLhkPHpfOQWCdj3V2dA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.1", + "@aws-sdk/credential-provider-node": "^3.972.1", + "@aws-sdk/middleware-host-header": "^3.972.1", + "@aws-sdk/middleware-logger": "^3.972.1", + "@aws-sdk/middleware-recursion-detection": "^3.972.1", + "@aws-sdk/middleware-user-agent": "^3.972.2", + "@aws-sdk/region-config-resolver": "^3.972.1", + "@aws-sdk/types": "^3.973.0", + "@aws-sdk/util-endpoints": "3.972.0", + "@aws-sdk/util-user-agent-browser": "^3.972.1", + "@aws-sdk/util-user-agent-node": "^3.972.1", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.21.1", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.11", + "@smithy/middleware-retry": "^4.4.27", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.12", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.26", + "@smithy/util-defaults-mode-node": "^4.2.29", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/core": { - "version": "3.973.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.0.tgz", - "integrity": "sha512-qy3Fmt8z4PRInM3ZqJmHihQ2tfCdj/MzbGaZpuHjYjgl1/Gcar4Pyp/zzHXh9hGEb61WNbWgsJcDUhnGIiX1TA==", + "version": "3.973.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.1.tgz", + "integrity": "sha512-Ocubx42QsMyVs9ANSmFpRm0S+hubWljpPLjOi9UFrtcnVJjrVJTzQ51sN0e5g4e8i8QZ7uY73zosLmgYL7kZTQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.0", "@aws-sdk/xml-builder": "^3.972.1", - "@smithy/core": "^3.21.0", + "@smithy/core": "^3.21.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.10.11", + "@smithy/smithy-client": "^4.10.12", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.8", @@ -965,6 +1069,23 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/middleware-sdk-sqs": { + "version": "3.972.2", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.972.2.tgz", + "integrity": "sha512-LPKsfqdoei7kBJo7JqGKbIM05W0bbcnJNfFtoOPgjXOJa7OpEs0pYj5OHiqbykgUFzkygD22f9sBmEfZkFoZ0g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.0", + "@smithy/smithy-client": "^4.10.12", + "@smithy/types": "^4.12.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/middleware-ssec": { "version": "3.972.1", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.1.tgz", @@ -980,15 +1101,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.1.tgz", - "integrity": "sha512-6SVg4pY/9Oq9MLzO48xuM3lsOb8Rxg55qprEtFRpkUmuvKij31f5SQHEGxuiZ4RqIKrfjr2WMuIgXvqJ0eJsPA==", + "version": "3.972.2", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.2.tgz", + "integrity": "sha512-d+Exq074wy0X6wvShg/kmZVtkah+28vMuqCtuY3cydg8LUZOJBtbAolCpEJizSyb8mJJZF9BjWaTANXL4OYnkg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.0", + "@aws-sdk/core": "^3.973.1", "@aws-sdk/types": "^3.973.0", "@aws-sdk/util-endpoints": "3.972.0", - "@smithy/core": "^3.21.0", + "@smithy/core": "^3.21.1", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" diff --git a/package.json b/package.json index 7f9fe2d12..1a9e5daec 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,8 @@ "@aws-sdk/client-s3": "^3.974.0", "@aws-sdk/client-secrets-manager": "^3.974.0", "@aws-sdk/client-ses": "^3.974.0", + "@aws-sdk/client-sqs": "^3.975.0", + "@aws-sdk/client-textract": "^3.975.0", "@aws-sdk/credential-provider-node": "^3.972.1", "@aws-sdk/lib-storage": "^3.974.0", "@aws-sdk/s3-request-presigner": "^3.974.0", diff --git a/server.js b/server.js index 099ae3562..b85b28e9c 100644 --- a/server.js +++ b/server.js @@ -125,6 +125,8 @@ const applyRoutes = ({ app }) => { app.use("/payroll", require("./server/routes/payrollRoutes")); app.use("/sso", require("./server/routes/ssoRoutes")); app.use("/integrations", require("./server/routes/intergrationRoutes")); + app.use("/ai", require("./server/routes/aiRoutes")); + // Default route for forbidden access app.get("/", (req, res) => { @@ -438,6 +440,11 @@ const main = async () => { try { await server.listen(port); logger.log(`Server started on port ${port}`, "INFO", "api"); + + // Start SQS polling for Textract notifications + const { startSQSPolling } = require("./server/ai/bill-ocr/bill-ocr"); + startSQSPolling(); + logger.log(`Started SQS polling for Textract notifications`, "INFO", "api"); } catch (error) { logger.log(`Server failed to start on port ${port}`, "ERROR", "api", null, { error: error.message }); } diff --git a/server/ai/bill-ocr/bill-ocr-readme.md b/server/ai/bill-ocr/bill-ocr-readme.md new file mode 100644 index 000000000..9993262f7 --- /dev/null +++ b/server/ai/bill-ocr/bill-ocr-readme.md @@ -0,0 +1,7 @@ +Required Infrastructure setup +1. Create an AI user that has access to the required S3 buckets and textract permissions. +2. Had to create a queue and SNS topic. had to also create the role that had `sns:Publish`. Had to add `sqs:ReceiveMessage` and `sqs:DeleteMessage` to the profile. +3. Created 2 roles for SNS. The textract role is the right one, the other was created manually based on incorrect instructions. + +TODO: +* Create a rome bucket for uploads, or move to the regular spot. \ No newline at end of file diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js new file mode 100644 index 000000000..6f283c3bb --- /dev/null +++ b/server/ai/bill-ocr/bill-ocr.js @@ -0,0 +1,404 @@ +const { TextractClient, StartExpenseAnalysisCommand, GetExpenseAnalysisCommand } = require("@aws-sdk/client-textract"); +const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3"); +const { SQSClient, ReceiveMessageCommand, DeleteMessageCommand } = require("@aws-sdk/client-sqs"); +const { v4: uuidv4 } = require('uuid'); + +// Initialize AWS clients +const awsConfig = { + region: process.env.AWS_AI_REGION || "ca-central-1", + credentials: { + accessKeyId: process.env.AWS_AI_ACCESS_KEY_ID, + secretAccessKey: process.env.AWS_AI_SECRET_ACCESS_KEY, + } +}; + +const textractClient = new TextractClient(awsConfig); +const s3Client = new S3Client(awsConfig); +const sqsClient = new SQSClient(awsConfig); + +// In-memory job storage (consider using Redis or a database for production) +const jobStore = new Map(); + +async function handleBillOcr(request, response) { + // Check if file was uploaded + if (!request.file) { + response.status(400).send({ error: 'No file uploaded' }); + return; + } + + // The uploaded file is available in request.file + const uploadedFile = request.file; + + try { + // Start the Textract job (non-blocking) + const jobInfo = await startTextractJob(uploadedFile.buffer); + + response.status(202).send({ + success: true, + jobId: jobInfo.jobId, + message: 'Invoice processing started', + statusUrl: `/api/bill-ocr/status/${jobInfo.jobId}` + }); + } catch (error) { + console.error('Error starting invoice processing:', error); + response.status(500).send({ + error: 'Failed to start invoice processing', + message: error.message + }); + } +} + +async function handleBillOcrStatus(request, response) { + console.log('handleBillOcrStatus called'); + console.log('request.params:', request.params); + console.log('request.query:', request.query); + + const { jobId } = request.params; + + if (!jobId) { + console.log('No jobId found in params'); + response.status(400).send({ error: 'Job ID is required' }); + return; + } + + console.log('Looking for job:', jobId); + const jobStatus = jobStore.get(jobId); + console.log('Job status:', jobStatus); + + if (!jobStatus) { + response.status(404).send({ error: 'Job not found' }); + return; + } + + if (jobStatus.status === 'COMPLETED') { + response.status(200).send({ + status: 'COMPLETED', + data: jobStatus.data + }); + } else if (jobStatus.status === 'FAILED') { + response.status(500).send({ + status: 'FAILED', + error: jobStatus.error + }); + } else { + response.status(200).send({ + status: jobStatus.status + }); + } +} + +async function startTextractJob(pdfBuffer) { + // Upload PDF to S3 temporarily for Textract async processing + const s3Bucket = process.env.AWS_AI_BUCKET; + const snsTopicArn = process.env.AWS_TEXTRACT_SNS_TOPIC_ARN; + const snsRoleArn = process.env.AWS_TEXTRACT_SNS_ROLE_ARN; + + if (!s3Bucket) { + throw new Error('AWS_AI_BUCKET environment variable is required'); + } + if (!snsTopicArn) { + throw new Error('AWS_TEXTRACT_SNS_TOPIC_ARN environment variable is required'); + } + if (!snsRoleArn) { + throw new Error('AWS_TEXTRACT_SNS_ROLE_ARN environment variable is required'); + } + + const jobId = uuidv4(); + const s3Key = `textract-temp/${jobId}.pdf`; + + // Upload to S3 + const uploadCommand = new PutObjectCommand({ + Bucket: s3Bucket, + Key: s3Key, + Body: pdfBuffer, + ContentType: 'application/pdf' + }); + await s3Client.send(uploadCommand); + + // Start async Textract expense analysis with SNS notification + const startCommand = new StartExpenseAnalysisCommand({ + DocumentLocation: { + S3Object: { + Bucket: s3Bucket, + Name: s3Key + } + }, + OutputConfig: { + S3Bucket: s3Bucket, + S3Prefix: `textract-output/${jobId}/` + }, + NotificationChannel: { + SNSTopicArn: snsTopicArn, + RoleArn: snsRoleArn + }, + ClientRequestToken: jobId + }); + + const startResult = await textractClient.send(startCommand); + + // Store job info + jobStore.set(jobId, { + status: 'IN_PROGRESS', + textractJobId: startResult.JobId, + s3Key: s3Key, + startedAt: new Date().toISOString() + }); + + return { + jobId: jobId, + textractJobId: startResult.JobId + }; +} + +// Process SQS messages from Textract completion notifications +async function processSQSMessages() { + const queueUrl = process.env.AWS_TEXTRACT_SQS_QUEUE_URL; + + if (!queueUrl) { + console.error('AWS_TEXTRACT_SQS_QUEUE_URL not configured'); + return; + } + + try { + console.log('Polling SQS queue:', queueUrl); + const receiveCommand = new ReceiveMessageCommand({ + QueueUrl: queueUrl, + MaxNumberOfMessages: 10, + WaitTimeSeconds: 20, + MessageAttributeNames: ['All'] + }); + + const result = await sqsClient.send(receiveCommand); + console.log('SQS poll result:', result.Messages ? `${result.Messages.length} messages` : 'no messages'); + + if (result.Messages && result.Messages.length > 0) { + console.log('Processing', result.Messages.length, 'messages from SQS'); + for (const message of result.Messages) { + try { + console.log("Processing message:", message); + await handleTextractNotification(message); + + // Delete message after successful processing + const deleteCommand = new DeleteMessageCommand({ + QueueUrl: queueUrl, + ReceiptHandle: message.ReceiptHandle + }); + await sqsClient.send(deleteCommand); + } catch (error) { + console.error('Error processing message:', error); + } + } + } + } catch (error) { + console.error('Error receiving SQS messages:', error); + } +} + +async function handleTextractNotification(message) { + const body = JSON.parse(message.Body); + const snsMessage = JSON.parse(body.Message); + + const textractJobId = snsMessage.JobId; + const status = snsMessage.Status; + + // Find our job by Textract job ID + let ourJobId = null; + for (const [key, value] of jobStore.entries()) { + if (value.textractJobId === textractJobId) { + ourJobId = key; + break; + } + } + + if (!ourJobId) { + console.warn(`Job not found for Textract job ID: ${textractJobId}`); + return; + } + + const jobInfo = jobStore.get(ourJobId); + + if (status === 'SUCCEEDED') { + // Retrieve the results + const invoiceData = await retrieveTextractResults(textractJobId); + const processedData = processScanData(invoiceData); + + jobStore.set(ourJobId, { + ...jobInfo, + status: 'COMPLETED', + data: processedData, + completedAt: new Date().toISOString() + }); + } else if (status === 'FAILED') { + jobStore.set(ourJobId, { + ...jobInfo, + status: 'FAILED', + error: snsMessage.StatusMessage || 'Textract job failed', + completedAt: new Date().toISOString() + }); + } +} + +async function retrieveTextractResults(textractJobId) { + // Handle pagination if there are multiple pages of results + let allExpenseDocuments = []; + let nextToken = null; + + do { + const getCommand = new GetExpenseAnalysisCommand({ + JobId: textractJobId, + NextToken: nextToken + }); + + const result = await textractClient.send(getCommand); + + if (result.ExpenseDocuments) { + allExpenseDocuments = allExpenseDocuments.concat(result.ExpenseDocuments); + } + + nextToken = result.NextToken; + } while (nextToken); + + // Extract invoice data from Textract response + return extractInvoiceData({ ExpenseDocuments: allExpenseDocuments }); +} + +// Start SQS polling (call this when server starts) +function startSQSPolling() { + const pollInterval = setInterval(() => { + processSQSMessages().catch(error => { + console.error('SQS polling error:', error); + }); + }, 5000); // Poll every 5 seconds + + return pollInterval; +} + +function extractInvoiceData(textractResponse) { + const invoiceData = { + summary: {}, + lineItems: [] + }; + + if (!textractResponse.ExpenseDocuments || textractResponse.ExpenseDocuments.length === 0) { + return invoiceData; + } + + // Process each page of the invoice + textractResponse.ExpenseDocuments.forEach(expenseDoc => { + // Extract summary fields (vendor, invoice number, date, total, etc.) + if (expenseDoc.SummaryFields) { + expenseDoc.SummaryFields.forEach(field => { + const fieldType = field.Type?.Text || ''; + const fieldValue = field.ValueDetection?.Text || ''; + const confidence = field.ValueDetection?.Confidence || 0; + + // Map common invoice fields + if (fieldType && fieldValue) { + invoiceData.summary[fieldType] = { + value: fieldValue, + confidence: confidence + }; + } + }); + } + + // Extract line items + if (expenseDoc.LineItemGroups) { + expenseDoc.LineItemGroups.forEach(lineItemGroup => { + if (lineItemGroup.LineItems) { + lineItemGroup.LineItems.forEach(lineItem => { + const item = {}; + + if (lineItem.LineItemExpenseFields) { + lineItem.LineItemExpenseFields.forEach(field => { + const fieldType = field.Type?.Text || ''; + const fieldValue = field.ValueDetection?.Text || ''; + const confidence = field.ValueDetection?.Confidence || 0; + + if (fieldType && fieldValue) { + // Normalize field names + const normalizedField = normalizeFieldName(fieldType); + item[normalizedField] = { + value: fieldValue, + confidence: confidence + }; + } + }); + } + + if (Object.keys(item).length > 0) { + invoiceData.lineItems.push(item); + } + }); + } + }); + } + }); + + return invoiceData; +} + +function normalizeFieldName(fieldType) { + // Convert Textract field types to more readable names + const fieldMap = { + 'ITEM': 'description', + 'QUANTITY': 'quantity', + 'UNIT_PRICE': 'unitPrice', + 'PRICE': 'price', + 'PRODUCT_CODE': 'productCode', + 'EXPENSE_ROW': 'row' + }; + + return fieldMap[fieldType] || fieldType.toLowerCase().replace(/_/g, ''); +} + +function processScanData(invoiceData) { + // Process and clean the extracted data + const processed = { + summary: {}, + lineItems: [] + }; + + // Clean summary fields + for (const [key, value] of Object.entries(invoiceData.summary)) { + if (value.confidence > 50) { // Only include fields with > 50% confidence + processed.summary[key] = value.value; + } + } + + // Process line items + processed.lineItems = invoiceData.lineItems + .map(item => { + const processedItem = {}; + + for (const [key, value] of Object.entries(item)) { + if (value.confidence > 50) { // Only include fields with > 50% confidence + let cleanValue = value.value; + + // Parse numbers for quantity and price fields + if (key === 'quantity') { + cleanValue = parseFloat(cleanValue) || 0; + } else if (key === 'unitPrice' || key === 'price') { + // Remove currency symbols and parse + cleanValue = parseFloat(cleanValue.replace(/[^0-9.-]/g, '')) || 0; + } + + processedItem[key] = cleanValue; + } + } + + return processedItem; + }) + .filter(item => { + // Filter out items with no description or with quantity <= 0 + return item.description && (!item.quantity || item.quantity > 0); + }); + + return processed; +} + +module.exports = { + handleBillOcr, + handleBillOcrStatus, + startSQSPolling +}; diff --git a/server/routes/aiRoutes.js b/server/routes/aiRoutes.js new file mode 100644 index 000000000..0aa9260bf --- /dev/null +++ b/server/routes/aiRoutes.js @@ -0,0 +1,15 @@ +const express = require("express"); +const router = express.Router(); +const multer = require("multer"); +const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); +const { handleBillOcr, handleBillOcrStatus } = require("../ai/bill-ocr/bill-ocr"); + +// Configure multer for form data parsing +const upload = multer(); + +//router.use(validateFirebaseIdTokenMiddleware); + +router.post("/bill-ocr", upload.single('billScan'), handleBillOcr); +router.get("/bill-ocr/status/:jobId", handleBillOcrStatus); + +module.exports = router; From 2a6d0446f0e2941309fed35a291fa2cfd0798364 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Mon, 26 Jan 2026 16:09:58 -0800 Subject: [PATCH 02/25] IO-3515 WIP - bulk calls functioning. Further refinement required. --- server.js | 5 +- server/ai/bill-ocr/bill-ocr.js | 148 +++++++++++++++++++++++++-------- 2 files changed, 117 insertions(+), 36 deletions(-) diff --git a/server.js b/server.js index b85b28e9c..6f920b51a 100644 --- a/server.js +++ b/server.js @@ -441,8 +441,11 @@ const main = async () => { await server.listen(port); logger.log(`Server started on port ${port}`, "INFO", "api"); + // Initialize bill-ocr with Redis client + const { initializeBillOcr, startSQSPolling } = require("./server/ai/bill-ocr/bill-ocr"); + initializeBillOcr(pubClient); + // Start SQS polling for Textract notifications - const { startSQSPolling } = require("./server/ai/bill-ocr/bill-ocr"); startSQSPolling(); logger.log(`Started SQS polling for Textract notifications`, "INFO", "api"); } catch (error) { diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js index 6f283c3bb..d75375373 100644 --- a/server/ai/bill-ocr/bill-ocr.js +++ b/server/ai/bill-ocr/bill-ocr.js @@ -16,8 +16,76 @@ const textractClient = new TextractClient(awsConfig); const s3Client = new S3Client(awsConfig); const sqsClient = new SQSClient(awsConfig); -// In-memory job storage (consider using Redis or a database for production) -const jobStore = new Map(); +let redisPubClient = null; +const TEXTRACT_JOB_TTL = 3600; + +/** + * Initialize the bill-ocr module with Redis client + * @param {Object} pubClient - Redis cluster client + */ +function initializeBillOcr(pubClient) { + redisPubClient = pubClient; +} + +/** + * Generate Redis key for Textract job using textract job ID + * @param {string} textractJobId + * @returns {string} + */ +function getTextractJobKey(textractJobId) { + return `textract:job:${textractJobId}`; +} + +/** + * Store Textract job data in Redis + * @param {string} textractJobId + * @param {Object} jobData + */ +async function setTextractJob(textractJobId, jobData) { + if (!redisPubClient) { + throw new Error('Redis client not initialized. Call initializeBillOcr first.'); + } + const key = getTextractJobKey(textractJobId); + await redisPubClient.set(key, JSON.stringify(jobData)); + await redisPubClient.expire(key, TEXTRACT_JOB_TTL); +} + +/** + * Retrieve Textract job data from Redis + * @param {string} textractJobId + * @returns {Promise} + */ +async function getTextractJob(textractJobId) { + if (!redisPubClient) { + throw new Error('Redis client not initialized. Call initializeBillOcr first.'); + } + const key = getTextractJobKey(textractJobId); + const data = await redisPubClient.get(key); + return data ? JSON.parse(data) : null; +} + +/** + * Check if job exists by Textract job ID + * @param {string} textractJobId + * @returns {Promise} + */ +async function jobExists(textractJobId) { + if (!redisPubClient) { + throw new Error('Redis client not initialized. Call initializeBillOcr first.'); + } + + console.log('Checking if job exists for Textract job ID:', textractJobId); + const key = getTextractJobKey(textractJobId); + const exists = await redisPubClient.exists(key); + + if (exists) { + console.log(`Job found: ${textractJobId}`); + return true; + } + + console.log('No matching job found in Redis'); + return false; +} async function handleBillOcr(request, response) { // Check if file was uploaded @@ -37,7 +105,7 @@ async function handleBillOcr(request, response) { success: true, jobId: jobInfo.jobId, message: 'Invoice processing started', - statusUrl: `/api/bill-ocr/status/${jobInfo.jobId}` + statusUrl: `/ai/bill-ocr/status/${jobInfo.jobId}` }); } catch (error) { console.error('Error starting invoice processing:', error); @@ -53,16 +121,21 @@ async function handleBillOcrStatus(request, response) { console.log('request.params:', request.params); console.log('request.query:', request.query); - const { jobId } = request.params; - if (!jobId) { - console.log('No jobId found in params'); + + + const { jobId: textractJobId } = request.params; + + + + if (!textractJobId) { + console.log('No textractJobId found in params'); response.status(400).send({ error: 'Job ID is required' }); return; } - console.log('Looking for job:', jobId); - const jobStatus = jobStore.get(jobId); + console.log('Looking for job:', textractJobId); + const jobStatus = await getTextractJob(textractJobId); console.log('Job status:', jobStatus); if (!jobStatus) { @@ -103,8 +176,8 @@ async function startTextractJob(pdfBuffer) { throw new Error('AWS_TEXTRACT_SNS_ROLE_ARN environment variable is required'); } - const jobId = uuidv4(); - const s3Key = `textract-temp/${jobId}.pdf`; + const uploadId = uuidv4(); + const s3Key = `textract-temp/${uploadId}.pdf`; // Upload to S3 const uploadCommand = new PutObjectCommand({ @@ -123,30 +196,26 @@ async function startTextractJob(pdfBuffer) { Name: s3Key } }, - OutputConfig: { - S3Bucket: s3Bucket, - S3Prefix: `textract-output/${jobId}/` - }, NotificationChannel: { SNSTopicArn: snsTopicArn, RoleArn: snsRoleArn }, - ClientRequestToken: jobId + ClientRequestToken: uploadId }); const startResult = await textractClient.send(startCommand); + const textractJobId = startResult.JobId; - // Store job info - jobStore.set(jobId, { + // Store job info in Redis using textractJobId as the key + await setTextractJob(textractJobId, { status: 'IN_PROGRESS', - textractJobId: startResult.JobId, s3Key: s3Key, + uploadId: uploadId, startedAt: new Date().toISOString() }); return { - jobId: jobId, - textractJobId: startResult.JobId + jobId: textractJobId }; } @@ -196,40 +265,48 @@ async function processSQSMessages() { async function handleTextractNotification(message) { const body = JSON.parse(message.Body); - const snsMessage = JSON.parse(body.Message); + let snsMessage + try { + + snsMessage = JSON.parse(body.Message); + } catch (error) { + //Delete the message so it doesn't clog the queue + const deleteCommand = new DeleteMessageCommand({ + QueueUrl: process.env.AWS_TEXTRACT_SQS_QUEUE_URL, + ReceiptHandle: message.ReceiptHandle + }); + await sqsClient.send(deleteCommand); + console.error('Error parsing SNS message:', error); + console.log('Message Deleted:', body); + return; + } const textractJobId = snsMessage.JobId; const status = snsMessage.Status; - // Find our job by Textract job ID - let ourJobId = null; - for (const [key, value] of jobStore.entries()) { - if (value.textractJobId === textractJobId) { - ourJobId = key; - break; - } - } + // Check if job exists in Redis + const exists = await jobExists(textractJobId); - if (!ourJobId) { + if (!exists) { console.warn(`Job not found for Textract job ID: ${textractJobId}`); return; } - const jobInfo = jobStore.get(ourJobId); + const jobInfo = await getTextractJob(textractJobId); if (status === 'SUCCEEDED') { // Retrieve the results const invoiceData = await retrieveTextractResults(textractJobId); const processedData = processScanData(invoiceData); - jobStore.set(ourJobId, { + await setTextractJob(textractJobId, { ...jobInfo, status: 'COMPLETED', data: processedData, completedAt: new Date().toISOString() }); } else if (status === 'FAILED') { - jobStore.set(ourJobId, { + await setTextractJob(textractJobId, { ...jobInfo, status: 'FAILED', error: snsMessage.StatusMessage || 'Textract job failed', @@ -268,7 +345,7 @@ function startSQSPolling() { processSQSMessages().catch(error => { console.error('SQS polling error:', error); }); - }, 5000); // Poll every 5 seconds + }, 10000); // Poll every 10 seconds return pollInterval; } @@ -339,7 +416,7 @@ function extractInvoiceData(textractResponse) { } function normalizeFieldName(fieldType) { - // Convert Textract field types to more readable names + //Placeholder normalization for now. const fieldMap = { 'ITEM': 'description', 'QUANTITY': 'quantity', @@ -398,6 +475,7 @@ function processScanData(invoiceData) { } module.exports = { + initializeBillOcr, handleBillOcr, handleBillOcrStatus, startSQSPolling From ad7e85a5788b09eb1b6f0a191e1dc07e62542446 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Tue, 27 Jan 2026 15:40:13 -0800 Subject: [PATCH 03/25] IO-3515 bifurcate single/multi page extract, add check for polling, add field labels --- package-lock.json | 43 +++++ package.json | 1 + server/ai/bill-ocr/bill-ocr.js | 301 +++++++++++++++++++++++++++++---- 3 files changed, 310 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index dccab5208..ba1dcb9bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,7 @@ "mustache": "^4.2.0", "node-persist": "^4.0.4", "nodemailer": "^6.10.0", + "pdf-lib": "^1.17.1", "phone": "^3.1.70", "query-string": "7.1.3", "recursive-diff": "^1.0.9", @@ -2698,6 +2699,24 @@ "@noble/hashes": "^1.1.5" } }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.10" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -9312,6 +9331,12 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -9450,6 +9475,24 @@ "dev": true, "license": "MIT" }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "license": "MIT", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, + "node_modules/pdf-lib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/phone": { "version": "3.1.70", "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.70.tgz", diff --git a/package.json b/package.json index 1a9e5daec..e7106144a 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "mustache": "^4.2.0", "node-persist": "^4.0.4", "nodemailer": "^6.10.0", + "pdf-lib": "^1.17.1", "phone": "^3.1.70", "query-string": "7.1.3", "recursive-diff": "^1.0.9", diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js index d75375373..b99d9c1fb 100644 --- a/server/ai/bill-ocr/bill-ocr.js +++ b/server/ai/bill-ocr/bill-ocr.js @@ -1,7 +1,8 @@ -const { TextractClient, StartExpenseAnalysisCommand, GetExpenseAnalysisCommand } = require("@aws-sdk/client-textract"); +const { TextractClient, StartExpenseAnalysisCommand, GetExpenseAnalysisCommand, AnalyzeExpenseCommand } = require("@aws-sdk/client-textract"); const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3"); const { SQSClient, ReceiveMessageCommand, DeleteMessageCommand } = require("@aws-sdk/client-sqs"); const { v4: uuidv4 } = require('uuid'); +const PDFDocument = require('pdf-lib').PDFDocument; // Initialize AWS clients const awsConfig = { @@ -18,6 +19,7 @@ const sqsClient = new SQSClient(awsConfig); let redisPubClient = null; const TEXTRACT_JOB_TTL = 3600; +const MIN_CONFIDENCE_VALUE = 50 /** * Initialize the bill-ocr module with Redis client @@ -87,10 +89,46 @@ async function jobExists(textractJobId) { return false; } +/** + * Check if there are any jobs in IN_PROGRESS status + * @returns {Promise} + */ +async function hasActiveJobs() { + if (!redisPubClient) { + throw new Error('Redis client not initialized.'); + } + + try { + // Get all textract job keys + const pattern = 'textract:job:*'; + const keys = await redisPubClient.keys(pattern); + + if (!keys || keys.length === 0) { + return false; + } + //TODO: Is there a better way to do this that supports clusters? + // Check if any job has IN_PROGRESS status + for (const key of keys) { + const data = await redisPubClient.get(key); + if (data) { + const jobData = JSON.parse(data); + if (jobData.status === 'IN_PROGRESS') { + return true; + } + } + } + + return false; + } catch (error) { + console.error('Error checking for active jobs:', error); + return false; + } +} + async function handleBillOcr(request, response) { // Check if file was uploaded if (!request.file) { - response.status(400).send({ error: 'No file uploaded' }); + response.status(400).send({ error: 'No file uploaded.' }); return; } @@ -98,15 +136,54 @@ async function handleBillOcr(request, response) { const uploadedFile = request.file; try { - // Start the Textract job (non-blocking) - const jobInfo = await startTextractJob(uploadedFile.buffer); + const fileType = getFileType(uploadedFile); + console.log(`Processing file type: ${fileType}`); - response.status(202).send({ - success: true, - jobId: jobInfo.jobId, - message: 'Invoice processing started', - statusUrl: `/ai/bill-ocr/status/${jobInfo.jobId}` - }); + // Images are always processed synchronously (single page) + if (fileType === 'image') { + console.log('Image => 1 page, processing synchronously'); + const result = await processSinglePageDocument(uploadedFile.buffer); + + response.status(200).send({ + success: true, + status: 'COMPLETED', + data: result, + message: 'Invoice processing completed' + }); + } else if (fileType === 'pdf') { + // Check the number of pages in the PDF + const pageCount = await getPdfPageCount(uploadedFile.buffer); + console.log(`PDF has ${pageCount} page(s)`); + + if (pageCount === 1) { + // Process synchronously for single-page documents + console.log('PDF => 1 page, processing synchronously'); + const result = await processSinglePageDocument(uploadedFile.buffer); + + response.status(200).send({ + success: true, + status: 'COMPLETED', + data: result, + message: 'Invoice processing completed' + }); + } else { + // Start the Textract job (non-blocking) for multi-page documents + console.log('PDF => 2+ pages, processing asynchronously'); + const jobInfo = await startTextractJob(uploadedFile.buffer); + + response.status(202).send({ + success: true, + jobId: jobInfo.jobId, + message: 'Invoice processing started', + statusUrl: `/ai/bill-ocr/status/${jobInfo.jobId}` + }); + } + } else { + response.status(400).send({ + error: 'Unsupported file type', + message: 'Please upload a PDF or supported image file (JPEG, PNG, TIFF)' + }); + } } catch (error) { console.error('Error starting invoice processing:', error); response.status(500).send({ @@ -160,6 +237,95 @@ async function handleBillOcrStatus(request, response) { } } +/** + * Detect file type based on MIME type and file signature + * @param {Object} file - Multer file object + * @returns {string} 'pdf', 'image', or 'unknown' + */ +function getFileType(file) { + // Check MIME type first + const mimeType = file.mimetype?.toLowerCase(); + + if (mimeType === 'application/pdf') { + return 'pdf'; + } + + if (mimeType && mimeType.startsWith('image/')) { + return 'image'; + } + + // Fallback: Check file signature (magic bytes) + const buffer = file.buffer; + if (buffer && buffer.length > 4) { + // PDF signature: %PDF + if (buffer[0] === 0x25 && buffer[1] === 0x50 && buffer[2] === 0x44 && buffer[3] === 0x46) { + return 'pdf'; + } + + // JPEG signature: FF D8 FF + if (buffer[0] === 0xFF && buffer[1] === 0xD8 && buffer[2] === 0xFF) { + return 'image'; + } + + // PNG signature: 89 50 4E 47 + if (buffer[0] === 0x89 && buffer[1] === 0x50 && buffer[2] === 0x4E && buffer[3] === 0x47) { + return 'image'; + } + + // HEIC/HEIF: Check for ftyp followed by heic/heix/hevc/hevx + if (buffer.length > 12) { + const ftypIndex = buffer.indexOf(Buffer.from('ftyp')); + if (ftypIndex > 0 && ftypIndex < 12) { + const brand = buffer.slice(ftypIndex + 4, ftypIndex + 8).toString('ascii'); + if (brand.startsWith('heic') || brand.startsWith('heix') || + brand.startsWith('hevc') || brand.startsWith('hevx') || + brand.startsWith('mif1')) { + return 'image'; + } + } + } + } + + return 'unknown'; +} + +/** + * Get the number of pages in a PDF buffer + * @param {Buffer} pdfBuffer + * @returns {Promise} + */ +async function getPdfPageCount(pdfBuffer) { + try { + const pdfDoc = await PDFDocument.load(pdfBuffer); + return pdfDoc.getPageCount(); + } catch (error) { + console.error('Error reading PDF page count:', error); + throw new Error('Failed to read PDF: ' + error.message); + } +} + +/** + * Process a single-page document synchronously using AnalyzeExpenseCommand + * @param {Buffer} pdfBuffer + * @returns {Promise} + */ +async function processSinglePageDocument(pdfBuffer) { + const analyzeCommand = new AnalyzeExpenseCommand({ + Document: { + Bytes: pdfBuffer + } + }); + + const result = await textractClient.send(analyzeCommand); + const invoiceData = extractInvoiceData(result); + const processedData = processScanData(invoiceData); + + return { + ...processedData, + originalTextractResponse: result + }; +} + async function startTextractJob(pdfBuffer) { // Upload PDF to S3 temporarily for Textract async processing const s3Bucket = process.env.AWS_AI_BUCKET; @@ -177,14 +343,14 @@ async function startTextractJob(pdfBuffer) { } const uploadId = uuidv4(); - const s3Key = `textract-temp/${uploadId}.pdf`; + const s3Key = `textract-temp/${uploadId}.pdf`; //TODO Update Keys structure to something better. // Upload to S3 const uploadCommand = new PutObjectCommand({ Bucket: s3Bucket, Key: s3Key, Body: pdfBuffer, - ContentType: 'application/pdf' + ContentType: 'application/pdf' //Hard coded - we only support PDFs for multi-page }); await s3Client.send(uploadCommand); @@ -228,6 +394,13 @@ async function processSQSMessages() { return; } + // Only poll if there are active mutli page jobs in progress + const hasActive = await hasActiveJobs(); + if (!hasActive) { + console.log('No active jobs in progress, skipping SQS poll'); + return; + } + try { console.log('Polling SQS queue:', queueUrl); const receiveCommand = new ReceiveMessageCommand({ @@ -267,7 +440,6 @@ async function handleTextractNotification(message) { const body = JSON.parse(message.Body); let snsMessage try { - snsMessage = JSON.parse(body.Message); } catch (error) { //Delete the message so it doesn't clog the queue @@ -296,13 +468,15 @@ async function handleTextractNotification(message) { if (status === 'SUCCEEDED') { // Retrieve the results - const invoiceData = await retrieveTextractResults(textractJobId); - const processedData = processScanData(invoiceData); + const { processedData, originalResponse } = await retrieveTextractResults(textractJobId); await setTextractJob(textractJobId, { ...jobInfo, status: 'COMPLETED', - data: processedData, + data: { + ...processedData, + originalTextractResponse: originalResponse + }, completedAt: new Date().toISOString() }); } else if (status === 'FAILED') { @@ -335,8 +509,16 @@ async function retrieveTextractResults(textractJobId) { nextToken = result.NextToken; } while (nextToken); + // Store the complete original response + const fullTextractResponse = { ExpenseDocuments: allExpenseDocuments }; + // Extract invoice data from Textract response - return extractInvoiceData({ ExpenseDocuments: allExpenseDocuments }); + const invoiceData = extractInvoiceData(fullTextractResponse); + + return { + processedData: processScanData(invoiceData), + originalResponse: fullTextractResponse + }; } // Start SQS polling (call this when server starts) @@ -346,7 +528,6 @@ function startSQSPolling() { console.error('SQS polling error:', error); }); }, 10000); // Poll every 10 seconds - return pollInterval; } @@ -367,12 +548,15 @@ function extractInvoiceData(textractResponse) { expenseDoc.SummaryFields.forEach(field => { const fieldType = field.Type?.Text || ''; const fieldValue = field.ValueDetection?.Text || ''; + const fieldLabel = field.LabelDetection?.Text || ''; const confidence = field.ValueDetection?.Confidence || 0; // Map common invoice fields if (fieldType && fieldValue) { invoiceData.summary[fieldType] = { value: fieldValue, + label: fieldLabel, + normalizedLabel: normalizeLabelName(fieldLabel), confidence: confidence }; } @@ -390,6 +574,7 @@ function extractInvoiceData(textractResponse) { lineItem.LineItemExpenseFields.forEach(field => { const fieldType = field.Type?.Text || ''; const fieldValue = field.ValueDetection?.Text || ''; + const fieldLabel = field.LabelDetection?.Text || ''; const confidence = field.ValueDetection?.Confidence || 0; if (fieldType && fieldValue) { @@ -397,6 +582,8 @@ function extractInvoiceData(textractResponse) { const normalizedField = normalizeFieldName(fieldType); item[normalizedField] = { value: fieldValue, + label: fieldLabel, + normalizedLabel: normalizeLabelName(fieldLabel), confidence: confidence }; } @@ -417,16 +604,50 @@ function extractInvoiceData(textractResponse) { function normalizeFieldName(fieldType) { //Placeholder normalization for now. - const fieldMap = { - 'ITEM': 'description', - 'QUANTITY': 'quantity', - 'UNIT_PRICE': 'unitPrice', - 'PRICE': 'price', - 'PRODUCT_CODE': 'productCode', - 'EXPENSE_ROW': 'row' + return fieldType; +} + +function normalizeLabelName(labelText) { + if (!labelText) return ''; + + // Convert to lowercase and trim whitespace + let normalized = labelText.toLowerCase().trim(); + + // Remove special characters and replace spaces with underscores + normalized = normalized.replace(/[^a-z0-9\s]/g, '').replace(/\s+/g, '_'); + const standardizedFieldsnames = { + actual_cost: "actual_cost", + actual_price: "actual_price", + line_desc: "line_desc", + quantity: "quantity", + part_no: "part_no" + } + + // Common label normalizations + const labelMap = { + 'qty': standardizedFieldsnames.quantity, + 'qnty': standardizedFieldsnames.quantity, + 'sale_qty': standardizedFieldsnames.quantity, + 'quant': standardizedFieldsnames.quantity, + 'desc': standardizedFieldsnames.line_desc, + 'description': standardizedFieldsnames.line_desc, + 'item': standardizedFieldsnames.line_desc, + 'part': standardizedFieldsnames.part_no, + 'part_no': standardizedFieldsnames.part_no, + 'part_num': standardizedFieldsnames.part_no, + 'part_number': standardizedFieldsnames.part_no, + 'price': standardizedFieldsnames.actual_price, + 'unit_price': standardizedFieldsnames.actual_price, + 'amount': standardizedFieldsnames.actual_price, + 'list_price': standardizedFieldsnames.actual_price, + 'list': standardizedFieldsnames.actual_price, + 'retail_price': standardizedFieldsnames.actual_price, + 'net': standardizedFieldsnames.actual_cost, + 'selling_price': standardizedFieldsnames.actual_cost, + }; - return fieldMap[fieldType] || fieldType.toLowerCase().replace(/_/g, ''); + return labelMap[normalized] || normalized; // TODO: Should we monitor unmapped labels? } function processScanData(invoiceData) { @@ -438,8 +659,13 @@ function processScanData(invoiceData) { // Clean summary fields for (const [key, value] of Object.entries(invoiceData.summary)) { - if (value.confidence > 50) { // Only include fields with > 50% confidence - processed.summary[key] = value.value; + if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence + processed.summary[key] = { + value: value.value, + label: value.label, + normalizedLabel: value.normalizedLabel, + confidence: value.confidence + }; } } @@ -449,27 +675,32 @@ function processScanData(invoiceData) { const processedItem = {}; for (const [key, value] of Object.entries(item)) { - if (value.confidence > 50) { // Only include fields with > 50% confidence + if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence let cleanValue = value.value; // Parse numbers for quantity and price fields if (key === 'quantity') { cleanValue = parseFloat(cleanValue) || 0; - } else if (key === 'unitPrice' || key === 'price') { + } else if (key === 'retail_price' || key === 'actual_price') { // Remove currency symbols and parse cleanValue = parseFloat(cleanValue.replace(/[^0-9.-]/g, '')) || 0; } - processedItem[key] = cleanValue; + processedItem[key] = { + value: cleanValue, + label: value.label, + normalizedLabel: value.normalizedLabel, + confidence: value.confidence + }; } } return processedItem; }) - .filter(item => { - // Filter out items with no description or with quantity <= 0 - return item.description && (!item.quantity || item.quantity > 0); - }); + // .filter(item => { + // // Filter out items with no description or with quantity <= 0 + // return item.description && (!item.quantity || item.quantity > 0); + // }); return processed; } From 55de16281de2eba8ab15f17150f0286a29d77b7e Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 28 Jan 2026 14:32:11 -0800 Subject: [PATCH 04/25] IO-3515 Bill OCR refactor to split files and introduce generator. --- package-lock.json | 10 + package.json | 1 + server/ai/bill-ocr/bill-ocr-generator.js | 3346 +++ server/ai/bill-ocr/bill-ocr-helpers.js | 159 + server/ai/bill-ocr/bill-ocr-normalize.js | 184 + server/ai/bill-ocr/bill-ocr.js | 396 +- server/routes/aiRoutes.js | 26330 +++++++++++++++++++++ 7 files changed, 30079 insertions(+), 347 deletions(-) create mode 100644 server/ai/bill-ocr/bill-ocr-generator.js create mode 100644 server/ai/bill-ocr/bill-ocr-helpers.js create mode 100644 server/ai/bill-ocr/bill-ocr-normalize.js diff --git a/package-lock.json b/package-lock.json index ba1dcb9bd..3339d36ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,6 +39,7 @@ "express": "^4.21.1", "fast-xml-parser": "^5.3.3", "firebase-admin": "^13.6.0", + "fuse.js": "^7.1.0", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", @@ -7103,6 +7104,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, "node_modules/gaxios": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", diff --git a/package.json b/package.json index e7106144a..51d7bb195 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "express": "^4.21.1", "fast-xml-parser": "^5.3.3", "firebase-admin": "^13.6.0", + "fuse.js": "^7.1.0", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", diff --git a/server/ai/bill-ocr/bill-ocr-generator.js b/server/ai/bill-ocr/bill-ocr-generator.js new file mode 100644 index 000000000..34f50baa3 --- /dev/null +++ b/server/ai/bill-ocr/bill-ocr-generator.js @@ -0,0 +1,3346 @@ + +const client = require("../../graphql-client/graphql-client").client; +const Fuse = require('fuse.js'); + +// Helper function to normalize fields +const normalizePartNumber = (str) => { + return str.replace(/[^a-zA-Z0-9]/g, '').toUpperCase(); +}; + +const normalizeText = (str) => { + return str.replace(/[^a-zA-Z0-9\s]/g, '').replace(/\s+/g, ' ').trim().toUpperCase(); +}; + +const normalizePrice = (str) => { + return str.replace(/[^0-9.-]+/g, ""); +}; + +// Helper function to merge and deduplicate results with weighted scoring +const mergeResults = (resultsArray, weights = []) => { + const scoreMap = new Map(); + + resultsArray.forEach((results, index) => { + const weight = weights[index] || 1; + results.forEach(result => { + const id = result.item.id; + const weightedScore = result.score * weight; + + if (!scoreMap.has(id)) { + scoreMap.set(id, { item: result.item, score: weightedScore, count: 1 }); + } else { + const existing = scoreMap.get(id); + // Lower score is better in Fuse.js, so take the minimum + existing.score = Math.min(existing.score, weightedScore); + existing.count++; + } + }); + }); + + // Convert back to array and sort by score (lower is better) + return Array.from(scoreMap.values()) + .sort((a, b) => { + // Prioritize items found in multiple searches + if (a.count !== b.count) return b.count - a.count; + return a.score - b.score; + }) + .slice(0, 5); // Return top 5 results +}; + +async function generateBillFormData({ processedData, jobid, bodyshopid, partsorderid }) { + processedData = processedDataFromCoache; + const jobData = { jobs_by_pk: tempJobObjectFromCoache }; + //Look up the job information + // const jobData = await client.request(` + // query QUERY_BILL_OCR_DATA($jobid: uuid!, $partsorderid: uuid!) { + // jobs_by_pk(id: $jobid) { + // id + // joblines { + // id + // line_desc + // removed + // act_price + // db_price + // oem_partno + // alt_partno + // } + // } + // parts_orders_by_pk(id: $partsorderid) { + // id + // parts_order_lines { + // id + // line_desc + // act_price + // cost + // jobline { + // id + // line_desc + // act_price + // oem_partno + // alt_partno + // } + // } + // } + // } + + // `, { + // jobid, partsorderid // this may fail if null? + // }); + + //Get a list of vendors and the ID. + + //Create fuses of line descriptions for matching. + const jobLineDescFuse = new Fuse( + jobData.jobs_by_pk.joblines, + { + keys: [{ + name: 'line_desc', + weight: 4 + }, { + name: 'oem_partno', + weight: 5 + }, { + name: 'alt_partno', + weight: 3 + }, + { + name: 'act_price', + weight: 1 + }], + threshold: 0.4, //Adjust as needed for matching sensitivity, + includeScore: true, + + } + ); + const joblineMatches = joblineFuzzySearch({ fuseToSearch: jobLineDescFuse, processedData }); + console.log("*** ~ generateBillFormData ~ joblineMatches:", joblineMatches); + + const { jobs_by_pk: job, parts_orders_by_pk: partsOrder } = jobData; + if (!job) { + throw new Error('Job not found for bill form data generation.'); + } + //Try to match the recognized bill lines with a job line if there is one. + + //Create the form data structure for the bill posting screen. + + +} + +function joblineFuzzySearch({ fuseToSearch, processedData }) { + const matches = [] + processedData.result.lineItems.forEach(lineItem => { + // Refined ITEM search (multi-word description) + const refinedItemResults = (() => { + const itemValue = lineItem.ITEM.value; + const normalized = normalizeText(itemValue); + + // 1: Full string search + const fullSearch = fuseToSearch.search(normalized); + + // 2: Search individual significant words (3+ chars) + const words = normalized.split(' ').filter(w => w.length >= 3); + const wordSearches = words.map(word => fuseToSearch.search(word)); + + // 3: Search without spaces entirely + const noSpaceSearch = fuseToSearch.search(normalized.replace(/\s+/g, '')); + + // Merge results with weights (full search weighted higher) + return mergeResults( + [fullSearch, ...wordSearches, noSpaceSearch], + [1.0, ...words.map(() => 1.5), 1.2] // Full search best, individual words penalized slightly + ); + })(); + + // Refined PRODUCT_CODE search (part numbers) + const refinedProductCodeResults = (() => { + const productCode = lineItem.PRODUCT_CODE.value; + const normalized = normalizePartNumber(productCode); + + // 1: Normalized search (no spaces/special chars) + const normalizedSearch = fuseToSearch.search(normalized); + + // 2: Original with minimal cleaning + const minimalClean = productCode.replace(/\s+/g, '').toUpperCase(); + const minimalSearch = fuseToSearch.search(minimalClean); + + // 3: Search with dashes (common in part numbers) + const withDashes = productCode.replace(/[^a-zA-Z0-9-]/g, '').toUpperCase(); + const dashSearch = fuseToSearch.search(withDashes); + + return mergeResults( + [normalizedSearch, minimalSearch, dashSearch], + [1.0, 1.1, 1.2] // Prefer fully normalized + ); + })(); + + // Refined PRICE search + const refinedPriceResults = (() => { + const price = normalizePrice(lineItem.PRICE.value); + + // 1: Exact price match + const exactSearch = fuseToSearch.search(price); + + // 2: Price with 2 decimal places + const priceFloat = parseFloat(price); + if (!isNaN(priceFloat)) { + const formattedPrice = priceFloat.toFixed(2); + const formattedSearch = fuseToSearch.search(formattedPrice); + + return mergeResults([exactSearch, formattedSearch], [1.0, 1.1]); + } + + return exactSearch; + })(); + + // Refined UNIT_PRICE search + const refinedUnitPriceResults = (() => { + const unitPrice = normalizePrice(lineItem.UNIT_PRICE.value); + + // 1: Exact price match + const exactSearch = fuseToSearch.search(unitPrice); + + // 2: Price with 2 decimal places + const priceFloat = parseFloat(unitPrice); + if (!isNaN(priceFloat)) { + const formattedPrice = priceFloat.toFixed(2); + const formattedSearch = fuseToSearch.search(formattedPrice); + + return mergeResults([exactSearch, formattedSearch], [1.0, 1.1]); + } + + return exactSearch; + })(); + + //Merge them all together and sort by the highest scores. + const combinedScoreMap = new Map(); + + // Weight different field types differently + const fieldWeights = { + productCode: 5.0, // Most important - part numbers should match + item: 3.0, // Second most important - description + price: 1.0, // Less important - prices can vary + unitPrice: 0.8 // Least important - similar to price + }; + + [ + { results: refinedProductCodeResults, weight: fieldWeights.productCode, field: 'productCode' }, + { results: refinedItemResults, weight: fieldWeights.item, field: 'item' }, + { results: refinedPriceResults, weight: fieldWeights.price, field: 'price' }, + { results: refinedUnitPriceResults, weight: fieldWeights.unitPrice, field: 'unitPrice' } + ].forEach(({ results, weight, field }) => { + results.forEach((result, index) => { + const id = result.item.id; + + // Position bonus (first result is better than fifth) + const positionBonus = (5 - index) / 5; + + // Lower score is better in Fuse.js, so invert it and apply weights + const normalizedScore = (1 - result.score) * weight * positionBonus; + + if (!combinedScoreMap.has(id)) { + combinedScoreMap.set(id, { + item: result.item, + score: normalizedScore, + fieldMatches: [field], + matchCount: result.count || 1 + }); + } else { + const existing = combinedScoreMap.get(id); + existing.score += normalizedScore; + existing.fieldMatches.push(field); + existing.matchCount += (result.count || 1); + } + }); + }); + + // Convert to array and sort by best combined score + const finalMatches = Array.from(combinedScoreMap.values()) + .map(entry => { + // Apply penalty if item has no act_price or it's 0 + const hasPriceData = entry.item.act_price && parseFloat(entry.item.act_price) > 0; + const priceDataPenalty = hasPriceData ? 1.0 : 0.5; // 50% penalty if no price + + return { + ...entry, + // Boost score for items that matched in multiple fields, penalize for missing price + finalScore: entry.score * (1 + (entry.fieldMatches.length * 0.2)) * priceDataPenalty, + hasPriceData + }; + }) + .sort((a, b) => b.finalScore - a.finalScore) + .slice(0, 5); + + + matches.push({ matches: finalMatches, textractLineItem: lineItem }); + + }) + return matches +} + +module.exports = { + generateBillFormData +} + + +//Desired Output + +const output = { + "jobid": "3977b88e-68b8-482c-b10e-ca5e44222543", + "vendorid": "9261069e-4579-47d0-ad01-cdbed45c8655", + "invoice_number": "1234", + "date": "2026-01-28T19:50:13.598Z", + "is_credit_memo": false, + "total": 609.61, + "federal_tax_rate": 5, + "state_tax_rate": 7, + "local_tax_rate": 0, + "billlines": { + "data": [ + { + "line_desc": "R Fender Panel", + "quantity": 1, + "actual_price": 724.01, + "actual_cost": 579.21, + "cost_center": "Aftermarket", + "applicable_taxes": { + "federal": false, + "state": false, + "local": false + }, + "joblineid": "a18e0cc4-87b4-4089-a837-5e89f9ab2f77" + }, + { + "line_desc": "R Fender Stone Protective Film", + "quantity": 1, + "actual_price": 15, + "actual_cost": 12, + "cost_center": "Aftermarket", + "applicable_taxes": { + "federal": false, + "state": false, + "local": false + }, + "joblineid": "dded9d43-e981-42fc-82b6-c6b15740c240" + }, + { + "line_desc": "R Frt Door Adhesive Nameplate", + "quantity": 1, + "actual_price": 23, + "actual_cost": 18.4, + "cost_center": "Aftermarket", + "applicable_taxes": { + "federal": false, + "state": false, + "local": false + }, + "joblineid": "578c7825-4f01-46d2-a403-527613711e2c" + } + ] + } +} + +const processedDataFromCoache = { + "result": { + "summary": { + "ADDRESS": { + "value": "Capilano Audi\n813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", + "label": "", + "normalizedLabel": "", + "confidence": 99.5746078491211 + }, + "STREET": { + "value": "813 Automall Drive,", + "label": "", + "normalizedLabel": "", + "confidence": 99.95982360839844 + }, + "CITY": { + "value": "North Vancouver,", + "label": "", + "normalizedLabel": "", + "confidence": 99.6387939453125 + }, + "STATE": { + "value": "CA", + "label": "", + "normalizedLabel": "", + "confidence": 90.67389678955078 + }, + "ZIP_CODE": { + "value": "3R8,", + "label": "", + "normalizedLabel": "", + "confidence": 99.11088562011719 + }, + "COUNTRY": { + "value": "Canada,", + "label": "", + "normalizedLabel": "", + "confidence": 99.96498107910156 + }, + "ADDRESS_BLOCK": { + "value": "813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", + "label": "", + "normalizedLabel": "", + "confidence": 97.51412200927734 + }, + "NAME": { + "value": "Tekion Corp", + "label": "", + "normalizedLabel": "", + "confidence": 85.7325439453125 + }, + "DISCOUNT": { + "value": "$0.00", + "label": "Discount", + "normalizedLabel": "UNKNOWN_discount", + "confidence": 99.7116470336914 + }, + "INVOICE_RECEIPT_DATE": { + "value": "Jan 13 2026", + "label": "", + "normalizedLabel": "", + "confidence": 84.63554382324219 + }, + "INVOICE_RECEIPT_ID": { + "value": "72821", + "label": "Parts Invoice", + "normalizedLabel": "UNKNOWN_parts_invoice", + "confidence": 98.97218322753906 + }, + "TAX_PAYER_ID": { + "value": "713564805RT000", + "label": "G.S.T.#", + "normalizedLabel": "UNKNOWN_gst", + "confidence": 93.07450866699219 + }, + "VENDOR_VAT_NUMBER": { + "value": "713564805RT000", + "label": "G.S.T.#", + "normalizedLabel": "UNKNOWN_gst", + "confidence": 93.07450866699219 + }, + "PO_NUMBER": { + "value": "58117", + "label": "Customer PO No :", + "normalizedLabel": "UNKNOWN_customer_po_no_", + "confidence": 98.43647003173828 + }, + "RECEIVER_ADDRESS": { + "value": "1172 W 3RD ST\nNORTH VANCOUVER, BC\nCanada, V7P 1E6", + "label": "Billing Address", + "normalizedLabel": "UNKNOWN_billing_address", + "confidence": 99.65380859375 + }, + "RECEIVER_NAME": { + "value": "6992 COACHE COLLISION LTD.\n-", + "label": "", + "normalizedLabel": "", + "confidence": 76.0853500366211 + }, + "RECEIVER_PHONE": { + "value": "(604) 987 2211", + "label": "", + "normalizedLabel": "", + "confidence": 70.94715118408203 + }, + "SUBTOTAL": { + "value": "$4,421.82", + "label": "Sub Total", + "normalizedLabel": "UNKNOWN_sub_total", + "confidence": 99.92008972167969 + }, + "TAX": { + "value": "$221.09", + "label": "GST", + "normalizedLabel": "UNKNOWN_gst", + "confidence": 99.90827178955078 + }, + "TOTAL": { + "value": "$4,642.91", + "label": "Total", + "normalizedLabel": "UNKNOWN_total", + "confidence": 99.9670639038086 + }, + "VENDOR_ADDRESS": { + "value": "Capilano Audi\n813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", + "label": "", + "normalizedLabel": "", + "confidence": 99.5746078491211 + }, + "VENDOR_NAME": { + "value": "Tekion Corp", + "label": "", + "normalizedLabel": "", + "confidence": 85.7325439453125 + }, + "VENDOR_PHONE": { + "value": "(604) 985-0693,", + "label": "Tel:", + "normalizedLabel": "UNKNOWN_tel", + "confidence": 92.17896270751953 + } + }, + "lineItems": [ + { + "PRODUCT_CODE": { + "value": "80A-807-107-G-GRU", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 60.69740676879883 + }, + "ITEM": { + "value": "80A-807-107-G-GRU COVER\n-", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 80.92524719238281 + }, + "PRICE": { + "value": "$914.16", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.99465942382812 + }, + "QUANTITY": { + "value": "1", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 98.02381134033203 + }, + "UNIT_PRICE": { + "value": "$914.16", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 90.97144317626953 + }, + "EXPENSE_ROW": { + "value": "price\n1 80A-807-107-G-GRU COVER 1 SP-ORD $1,172.00 $914.16 $914.16\n-\nchange", + "label": "", + "normalizedLabel": "", + "confidence": 95.68555450439453 + } + }, + { + "OTHER": { + "value": "$246.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 90.83607482910156 + }, + "PRODUCT_CODE": { + "value": "80A-807-647-C-9B9", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 63.68674087524414 + }, + "ITEM": { + "value": "80A-807-647-C-9B9 GRILLE\n-", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 82.46648406982422 + }, + "PRICE": { + "value": "$191.88", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.9972915649414 + }, + "QUANTITY": { + "value": "1", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.20547485351562 + }, + "UNIT_PRICE": { + "value": "$191.88", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 93.8568344116211 + }, + "EXPENSE_ROW": { + "value": "2 80A-807-647-C-9B9 GRILLE 1 SP-ORD $246.00 $191.88 $191.88\n-", + "label": "", + "normalizedLabel": "", + "confidence": 95.46671295166016 + } + }, + { + "OTHER": { + "value": "$286.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 88.31619262695312 + }, + "PRODUCT_CODE": { + "value": "80A-807-661-A-GRU", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 73.04312133789062 + }, + "ITEM": { + "value": "80A-807-661-A-GRU CONN PIECE\n-", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 84.59918212890625 + }, + "PRICE": { + "value": "$223.08", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.99654388427734 + }, + "QUANTITY": { + "value": "1", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.30966186523438 + }, + "UNIT_PRICE": { + "value": "$223.08", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 91.8134765625 + }, + "EXPENSE_ROW": { + "value": "3 80A-807-661-A-GRU CONN PIECE 1 SP-ORD $286.00 $223.08 $223.08\n-", + "label": "", + "normalizedLabel": "", + "confidence": 95.99571228027344 + } + }, + { + "OTHER": { + "value": "$1,275.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 89.5396499633789 + }, + "PRODUCT_CODE": { + "value": "80A-853-765--3Q7", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 79.21212005615234 + }, + "ITEM": { + "value": "80A-853-765--3Q7 MOLDING\n-", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 75.85474395751953 + }, + "PRICE": { + "value": "$994.50", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.99325561523438 + }, + "QUANTITY": { + "value": "1", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 98.7352294921875 + }, + "UNIT_PRICE": { + "value": "$994.50", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 96.28019714355469 + }, + "EXPENSE_ROW": { + "value": "4 80A-853-765--3Q7 MOLDING 1 SP-ORD $1,275.00 $994.50 $994.50\n-", + "label": "", + "normalizedLabel": "", + "confidence": 96.20103454589844 + } + }, + { + "OTHER": { + "value": "$2,690.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 91.14651489257812 + }, + "ITEM": { + "value": "GRILLE", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 84.18718719482422 + }, + "PRICE": { + "value": "$2,098.20", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.97396087646484 + }, + "QUANTITY": { + "value": "1", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 99.32916259765625 + }, + "UNIT_PRICE": { + "value": "$2,098.20", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 98.04034423828125 + }, + "PRODUCT_CODE": { + "value": "80A-853-651-L-RP5", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 86.12691497802734 + }, + "EXPENSE_ROW": { + "value": "5 80A-853-651-L-RP5 GRILLE 1 SP-ORD $2,690.00 $2,098.20 $2,098.20\n-", + "label": "", + "normalizedLabel": "", + "confidence": 93.76665496826172 + } + } + ], + + } +} + +const tempJobObjectFromCoache = { + "tasks_aggregate": { + "aggregate": { + "count": 0, + "__typename": "tasks_aggregate_fields" + }, + "__typename": "tasks_aggregate" + }, + "actual_completion": "2026-01-21T22:50:00+00:00", + "actual_delivery": "2026-01-22T00:50:00+00:00", + "actual_in": "2026-01-09T22:23:41.562+00:00", + "acv_amount": null, + "admin_clerk": "bianca@raydarcollisiongroup.com", + "adjustment_bottom_line": null, + "alt_transport": "Rental", + "area_of_damage": { + "impact1": "12", + "impact2": null + }, + "auto_add_ats": false, + "available_jobs": [], + "ca_bc_pvrt": null, + "ca_customer_gst": 0, + "ca_gst_registrant": false, + "category": "Hit & Run", + "cccontracts": [], + "cieca_pfl": {}, + "cieca_pfo": {}, + "cieca_pft": {}, + "cieca_ttl": { + "data": { + "g_tax": 620.74, + "gst_amt": 443.39, + "g_aa_amt": 0, + "prev_net": 0, + "supp_amt": -697.45, + "g_ded_amt": 300, + "g_rpd_amt": 0, + "g_ttl_amt": 9931.82, + "g_upd_amt": 0, + "n_ttl_amt": 9631.82, + "g_bett_amt": 0, + "g_cust_amt": 300, + "g_ttl_disc": 0 + } + }, + "class": null, + "clm_no": "DA37868-0-A", + "clm_total": 9931.81, + "comment": "IN 01/09/2026 02:23 pm\nCOMP 01/21/2026 02:50 pm\nDEL 01/21/2026 04:50 pm", + "converted": true, + "csiinvites": [], + "date_estimated": "2026-01-07", + "date_exported": "2026-01-26T19:19:13.41+00:00", + "date_invoiced": "2026-01-26T19:07:11.473+00:00", + "date_last_contacted": null, + "date_lost_sale": null, + "date_next_contact": null, + "date_open": "2026-01-07T18:50:36.171+00:00", + "date_rentalresp": null, + "date_repairstarted": null, + "date_scheduled": null, + "date_towin": null, + "date_void": null, + "ded_amt": 300, + "ded_note": null, + "ded_status": "Y", + "deliverchecklist": { + "form": [ + { + "name": "Detailed", + "type": "checkbox", + "label": "Detailed?", + "required": false + }, + { + "name": "Buffed", + "type": "checkbox", + "label": "Buffed?", + "required": false + }, + { + "name": "Comments", + "type": "text", + "label": "Additional Comments?", + "required": false + } + ], + "completed_at": "2026-01-26T17:57:21.864Z", + "completed_by": "reception@coachecollision.ca", + "actual_delivery": "2026-01-22T00:50:00.000Z", + "actual_completion": "2026-01-21T22:50:00.000Z", + "removeFromProduction": true + }, + "depreciation_taxes": 0, + "driveable": true, + "employee_body": "f7cbeb13-f193-45bf-ba79-0ad11551b775", + "employee_body_rel": { + "id": "f7cbeb13-f193-45bf-ba79-0ad11551b775", + "first_name": "Steve", + "last_name": "Steele", + "__typename": "employees" + }, + "employee_csr": null, + "employee_csr_rel": null, + "employee_prep": null, + "employee_prep_rel": null, + "employee_refinish": "8535a3bc-0162-4fd8-8efd-48e99f437154", + "employee_refinish_rel": { + "id": "8535a3bc-0162-4fd8-8efd-48e99f437154", + "first_name": "David", + "last_name": "Lam", + "__typename": "employees" + }, + "est_co_nm": null, + "est_ct_fn": "Nuben", + "est_ct_ln": "Suthatharan", + "est_ea": "Nuben@coachecollision.ca", + "est_ph1": null, + "flat_rate_ats": false, + "federal_tax_rate": 0.05, + "hit_and_run": true, + "id": "62fcba91-b8df-4076-b5f5-14f8827c8f92", + "inproduction": false, + "ins_addr1": null, + "ins_city": null, + "ins_co_id": null, + "ins_co_nm": "ICBC", + "ins_ct_fn": null, + "ins_ct_ln": null, + "ins_ea": null, + "ins_ph1": null, + "intakechecklist": { + "ICBC": true, + "form": [ + { + "name": "ICBC", + "type": "checkbox", + "label": "ICBC", + "value": true + }, + { + "name": "PRIVATE", + "type": "checkbox", + "label": "PRIVATE" + }, + { + "name": "TOW-IN", + "type": "checkbox", + "label": "TOW-IN" + }, + { + "name": "How did you hear about us?", + "type": "textarea", + "label": "How did you hear about us?", + "required": false + }, + { + "name": "Were you referred to us?", + "type": "checkbox", + "label": "Were you referred to us?", + "required": false + }, + { + "name": "If YES, By who?", + "type": "textarea", + "label": "If YES, By who?", + "required": false + }, + { + "name": "CUSTOMER INFORMATION", + "type": "text", + "label": "CUSTOMER INFORMATION", + "required": false + }, + { + "name": "Phone Numbers:", + "type": "textarea", + "label": "Phone Numbers:", + "required": false + }, + { + "name": "Cell:", + "type": "textarea", + "label": "Cell:", + "required": false + }, + { + "name": "Text OK?", + "type": "checkbox", + "label": "Text OK?", + "required": false + }, + { + "name": "Email Address:", + "type": "textarea", + "label": "Email Address:", + "required": false + }, + { + "name": "Carry loss of use?", + "type": "checkbox", + "label": "Carry loss of use?", + "required": false + }, + { + "name": "Carry OEM Replacement Cost Policy?", + "type": "checkbox", + "label": "Carry OEM Replacement Cost Policy?", + "required": false + }, + { + "name": "GST Recipiant", + "type": "checkbox", + "label": "GST Recipiant", + "required": false + }, + { + "name": "VEHICLE INFORMATION", + "type": "text", + "label": "VEHICLE INFORMATION", + "required": false + }, + { + "name": "Canapy", + "type": "checkbox", + "label": "Canapy", + "required": false + }, + { + "name": "Keys", + "type": "checkbox", + "label": "Keys", + "required": false + }, + { + "name": "Wheel Locks", + "type": "checkbox", + "label": "Wheel Locks", + "required": false + }, + { + "name": "Alarm", + "type": "checkbox", + "label": "Alarm", + "required": false + }, + { + "name": "Fob", + "type": "checkbox", + "label": "Fob", + "required": false + }, + { + "name": "Dash board waring lights on?", + "type": "textarea", + "label": "Dash board waring lights on?", + "required": false + }, + { + "name": "Passenger in car?", + "type": "textarea", + "label": "Passenger in car?", + "required": false + }, + { + "name": "Interior Damage?", + "type": "textarea", + "label": "Interior Damage?", + "required": false + }, + { + "name": "Any power options not working?", + "type": "textarea", + "label": "Any power options not working?", + "required": false + }, + { + "name": "Did the car hit a curb?", + "type": "textarea", + "label": "Did the car hit a curb?", + "required": false + }, + { + "name": "Anything in the Truck or box of the Truck?", + "type": "textarea", + "label": "Anything in the Truck on box of the Truck?", + "required": false + }, + { + "name": "Old damage discussed with RO", + "type": "textarea", + "label": "Old damage discussed with RO", + "required": false + }, + { + "name": "If we find any dents or dings in repair panels would you like to be notified and given an estimate?", + "type": "checkbox", + "label": "If we find any dents or dings in repair panels would you like to be notified and given an estimate?", + "required": false + }, + { + "name": "Condition of Windshield", + "type": "textarea", + "label": "Condition of Windshield", + "required": false + }, + { + "name": "Notes", + "type": "textarea", + "label": "Notes" + } + ], + "completed_at": "2026-01-09T22:23:41.562Z", + "completed_by": "nuben@coachecollision.ca", + "addToProduction": true, + "production_vars": {}, + "scheduled_delivery": null, + "scheduled_completion": "2026-01-13T22:23:39.311Z" + }, + "invoice_final_note": null, + "iouparent": null, + "job_totals": { + "parts": { + "parts": { + "list": { + "PAA": { + "total": { + "amount": 58102, + "currency": "USD", + "precision": 2 + } + }, + "PAE": { + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "PAN": { + "total": { + "amount": 701000, + "currency": "USD", + "precision": 2 + } + } + }, + "total": { + "amount": 759102, + "currency": "USD", + "precision": 2 + }, + "subtotal": { + "amount": 759102, + "currency": "USD", + "precision": 2 + }, + "prt_dsmk_total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "sublets": { + "total": { + "amount": 35000, + "currency": "USD", + "precision": 2 + }, + "subtotal": { + "amount": 35000, + "currency": "USD", + "precision": 2 + } + } + }, + "rates": { + "la1": { + "rate": 97.8, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "la2": { + "rate": 0, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "la3": { + "rate": 107.35, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "la4": { + "rate": 0, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "laa": { + "rate": 107.35, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "lab": { + "rate": 89.46, + "hours": 5.800000000000001, + "total": { + "amount": 51887, + "currency": "USD", + "precision": 2 + } + }, + "lad": { + "rate": 0, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "lae": { + "rate": 0, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "laf": { + "rate": 102.27, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "lag": { + "rate": 89.46, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "lam": { + "rate": 115.05, + "hours": 0.8, + "total": { + "amount": 9204, + "currency": "USD", + "precision": 2 + } + }, + "lar": { + "rate": 89.46, + "hours": 1.8, + "total": { + "amount": 16103, + "currency": "USD", + "precision": 2 + } + }, + "las": { + "rate": 89.46, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "lau": { + "rate": 0, + "hours": 0, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "mapa": { + "rate": 60.11, + "hours": 1.8, + "total": { + "amount": 10820, + "currency": "USD", + "precision": 2 + } + }, + "mash": { + "rate": 7.05, + "hours": 6.6000000000000005, + "total": { + "amount": 4653, + "currency": "USD", + "precision": 2 + } + }, + "subtotal": { + "amount": 92667, + "currency": "USD", + "precision": 2 + }, + "rates_subtotal": { + "amount": 77194, + "currency": "USD", + "precision": 2 + } + }, + "totals": { + "subtotal": { + "amount": 886769, + "currency": "USD", + "precision": 2 + }, + "local_tax": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "state_tax": { + "amount": 62074, + "currency": "USD", + "precision": 2 + }, + "custPayable": { + "total": { + "amount": 30000, + "currency": "USD", + "precision": 2 + }, + "dep_taxes": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "deductible": { + "amount": 30000, + "currency": "USD", + "precision": 2 + }, + "federal_tax": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "other_customer_amount": { + "amount": 0, + "currency": "USD", + "precision": 2 + } + }, + "federal_tax": { + "amount": 44338, + "currency": "USD", + "precision": 2 + }, + "net_repairs": { + "amount": 963181, + "currency": "USD", + "precision": 2 + }, + "statePartsTax": { + "amount": 55587, + "currency": "USD", + "precision": 2 + }, + "total_repairs": { + "amount": 993181, + "currency": "USD", + "precision": 2 + } + }, + "additional": { + "pvrt": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "total": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "towing": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "storage": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "shipping": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "adjustments": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "additionalCosts": { + "amount": 0, + "currency": "USD", + "precision": 2 + }, + "additionalCostItems": [] + } + }, + "job_watchers": [], + "joblines": [ + { + "act_price": 1172, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 914.17, + "actual_price": 1172, + "bill": { + "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", + "invoice_number": "72821", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "65a1bf5d-a520-4b0a-a1d3-3518de994bc6", + "joblineid": "e64ab0ba-03b1-4b16-991d-b533caa57ef1", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 1.6, + "db_price": 1419, + "db_ref": "202199", + "id": "e64ab0ba-03b1-4b16-991d-b533caa57ef1", + "ioucreated": false, + "lbr_amt": 143.14, + "lbr_op": "OP11", + "line_desc": "L Frt Bumper Side Cover", + "line_ind": "S1", + "line_no": 1, + "line_ref": 14, + "location": null, + "manual_line": false, + "mod_lb_hrs": 1.6, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 07 ETA 1 - 2 WEEKS", + "oem_partno": "80A 807 107 M GRU", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 14, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "9c7744db-7f5a-4d16-aa29-3c65d1044fe5", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 2, + "line_ref": 14, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 18, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 1.1, + "db_price": 0, + "db_ref": "201285", + "id": "07b44893-092c-4687-a24b-970fc96ff4f3", + "ioucreated": false, + "lbr_amt": 98.41, + "lbr_op": "OP6", + "line_desc": "L Frt Bumper Side Cover", + "line_ind": "S1", + "line_no": 3, + "line_ref": 14, + "location": null, + "manual_line": false, + "mod_lb_hrs": 1.1, + "mod_lbr_ty": "LAR", + "notes": null, + "oem_partno": null, + "op_code_desc": "REFINISH", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 15, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.1, + "db_price": 0, + "db_ref": "201299", + "id": "a6b9007d-d45c-4e7c-9dad-9e141c97a5d2", + "ioucreated": false, + "lbr_amt": 8.95, + "lbr_op": "OP11", + "line_desc": "L Frt Add W/Parallel Park Assist Sensor", + "line_ind": "S1", + "line_no": 4, + "line_ref": 14, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.1, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 17, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 246, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 191.88, + "actual_price": 246, + "bill": { + "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", + "invoice_number": "72821", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "fe9d8dd3-74a0-4e51-bb3a-0f2529613d4d", + "joblineid": "5703a154-9cd8-41b2-b9c6-0e5665948052", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.3, + "db_price": 246, + "db_ref": "200194", + "id": "5703a154-9cd8-41b2-b9c6-0e5665948052", + "ioucreated": false, + "lbr_amt": 26.84, + "lbr_op": "OP11", + "line_desc": "Frt Lwr Bumper Grille", + "line_ind": "E", + "line_no": 5, + "line_ref": 7, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.3, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 07 ETA LOCAL", + "oem_partno": "80A 807 647 C 9B9", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 7, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "f1cb3534-949c-4f50-8d48-184483847b90", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 6, + "line_ref": 7, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 9, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 1.2, + "db_price": 0, + "db_ref": "201294", + "id": "966d17a3-4575-413c-9e81-3b5aed0c2034", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP2", + "line_desc": "Frt Bumper Cover", + "line_ind": "E", + "line_no": 7, + "line_ref": 7, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / INSTALL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 8, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 223.08, + "actual_price": 286, + "bill": { + "id": "92120eaf-8a04-4629-8e6c-082ce2fef717", + "invoice_number": "CM-72821-1", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "4dff060e-54c7-4a46-9349-0d482fdc1196", + "joblineid": "a89761f4-97e2-474b-b981-fa9cede17005", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.3, + "db_price": 286, + "db_ref": "200195", + "id": "a89761f4-97e2-474b-b981-fa9cede17005", + "ioucreated": false, + "lbr_amt": 26.84, + "lbr_op": "OP2", + "line_desc": "Frt Lwr Bumper Plate", + "line_ind": "S1", + "line_no": 8, + "line_ref": 23, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.3, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 07 ETA LOCAL", + "oem_partno": "80A 807 661 A GRU", + "op_code_desc": "REMOVE / INSTALL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAE", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Returned", + "tax_part": false, + "unq_seq": 23, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 1275, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 994.5, + "actual_price": 1275, + "bill": { + "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", + "invoice_number": "72821", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "c9cec9ef-7b5a-4232-9b69-5ee8e5089e23", + "joblineid": "9a531740-43f4-4181-8406-1c6e64046fa3", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.2, + "db_price": 1275, + "db_ref": "200197", + "id": "9a531740-43f4-4181-8406-1c6e64046fa3", + "ioucreated": false, + "lbr_amt": 17.89, + "lbr_op": "OP11", + "line_desc": "Frt Lwr Bumper Moulding", + "line_ind": "E", + "line_no": 9, + "line_ref": 27, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.2, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 07 ETA LOCAL", + "oem_partno": "80A 853 765 3Q7", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 27, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "f7e70ed4-de45-4532-bc8a-d3e541be83d4", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 10, + "line_ref": 27, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 28, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 120, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": "AQ518.264", + "assigned_team": null, + "billlines": [ + { + "actual_cost": 96, + "actual_price": 120, + "bill": { + "id": "c2c1850b-494d-4cbf-8083-dff15eadf745", + "invoice_number": "041105", + "vendor": { + "id": "72634cde-8dfa-457c-8c04-08621e712d67", + "name": "KWANTLEN ENTERPRISES LTD", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "42cbbc6e-e8ea-4efb-aa5a-7f92cdff448f", + "joblineid": "176052dd-4c5f-4d64-a520-74194a87fea2", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.2, + "db_price": 163, + "db_ref": "200200", + "id": "176052dd-4c5f-4d64-a520-74194a87fea2", + "ioucreated": false, + "lbr_amt": 17.89, + "lbr_op": "OP11", + "line_desc": "L Frt Bumper Reflector", + "line_ind": "E", + "line_no": 11, + "line_ref": 42, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.2, + "mod_lbr_ty": "LAB", + "notes": "ORD KW JAN 09 ETA JAN 13", + "oem_partno": "80A 945 071 A", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAA", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 42, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "16c263a7-c12d-4b1e-851a-532843ad87ac", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "INSIDE BROEKN -- GLUED ON", + "line_ind": "E", + "line_no": 12, + "line_ref": 42, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 47, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 306.01, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": "AU38-000W-0C", + "assigned_team": null, + "billlines": [ + { + "actual_cost": 174.43, + "actual_price": 306.01, + "bill": { + "id": "a57ce241-e00a-4ba3-9f26-e9e0e5eba1d2", + "invoice_number": "IS2595145", + "vendor": { + "id": "e54b45b4-55ab-4379-8d82-e4007e71622c", + "name": "A.P.T. AUTO PARTS TRADING CO LTD", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "5c9571e2-5abf-45e9-9dc7-896019e538b0", + "joblineid": "bde7f2b2-d2dc-480b-9398-233ada3ebae4", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 407, + "db_ref": "200173", + "id": "bde7f2b2-d2dc-480b-9398-233ada3ebae4", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP11", + "line_desc": "Frt Bumper Impact Absorber", + "line_ind": "E", + "line_no": 13, + "line_ref": 32, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": "ORD APT JAN 09 ETA JAN 12", + "oem_partno": "80A 807 550 C", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAA", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 32, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "1e82e200-5654-4521-9b1f-5930d24d3a3c", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 14, + "line_ref": 32, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 33, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 2690, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 2098.2, + "actual_price": 2690, + "bill": { + "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", + "invoice_number": "72821", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "5420de33-09fd-4ed3-9e4e-604403d88e17", + "joblineid": "78c719ec-dbeb-445d-8d45-ba15d3099edb", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 1, + "db_price": 2690, + "db_ref": "202371", + "id": "78c719ec-dbeb-445d-8d45-ba15d3099edb", + "ioucreated": false, + "lbr_amt": 89.46, + "lbr_op": "OP11", + "line_desc": "Grille Assembly", + "line_ind": "E", + "line_no": 15, + "line_ref": 10, + "location": null, + "manual_line": false, + "mod_lb_hrs": 1, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 07 ETA LOCAL", + "oem_partno": "80A 853 651 L RP5", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 10, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "20a9e040-74ad-47a2-993d-dd36f58311a0", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 16, + "line_ref": 10, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 13, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.2, + "db_price": 0, + "db_ref": "201373", + "id": "4525e99d-c06a-47df-aa6a-1b14d27697b5", + "ioucreated": false, + "lbr_amt": 17.89, + "lbr_op": "OP11", + "line_desc": "Frt Inr Add w/Parking Sensor", + "line_ind": "E", + "line_no": 17, + "line_ref": 10, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.2, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 12, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 447, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 348.66, + "actual_price": 447, + "bill": { + "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", + "invoice_number": "72865", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "1ac66d08-afc3-48c1-a3cf-6ed5611f6558", + "joblineid": "2679e440-4c79-4d70-ac20-6e6dc8ae8770", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.4, + "db_price": 447, + "db_ref": "202383", + "id": "2679e440-4c79-4d70-ac20-6e6dc8ae8770", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP11", + "line_desc": "Grille Plate", + "line_ind": "E", + "line_no": 18, + "line_ref": 29, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 09 ETA JAN 12", + "oem_partno": "80A 853 692 A", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 29, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "b0a41a8a-f332-409c-bf2b-1924431629a2", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 19, + "line_ref": 29, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 31, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 149, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 116.22, + "actual_price": 149, + "bill": { + "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", + "invoice_number": "72865", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "39e324fa-06da-487a-9d23-288eb476d103", + "joblineid": "7ba6a3cc-3291-40d6-a258-cf60573fe63f", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.4, + "db_price": 149, + "db_ref": "201241", + "id": "7ba6a3cc-3291-40d6-a258-cf60573fe63f", + "ioucreated": false, + "lbr_amt": 35.78, + "lbr_op": "OP11", + "line_desc": "L Cooling Air Deflector", + "line_ind": "E", + "line_no": 20, + "line_ref": 34, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.4, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 09 ETA JAN 12", + "oem_partno": "80A 121 283 K", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 34, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "989d0abc-05ab-409d-9cb2-2ea0ebccb13f", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 21, + "line_ref": 34, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 35, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 597, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 465.66, + "actual_price": 597, + "bill": { + "id": "f0cedaf5-e8ac-4fe5-bfd6-3bc38d430d98", + "invoice_number": "72868", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "34baeff0-8481-478b-acf4-4a0772d0ee5e", + "joblineid": "60d8f84e-af42-4013-a967-5bad275844d3", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.8, + "db_price": 597, + "db_ref": "202630", + "id": "60d8f84e-af42-4013-a967-5bad275844d3", + "ioucreated": false, + "lbr_amt": 92.04, + "lbr_op": "OP11", + "line_desc": "L Cooling Auxiliary Radiator -M", + "line_ind": "E", + "line_no": 22, + "line_ref": 36, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.8, + "mod_lbr_ty": "LAM", + "notes": "ORD PERFORMANCE JAN 09 ETA NO STOCK ORD OEM JAN 09 ETA", + "oem_partno": "80A 121 212 E", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 36, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "9f7a1b49-468f-4156-803c-6cd6083ceec3", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "DAMAGED -- ALPI NO STOCK / PERFORMANCE N", + "line_ind": "E", + "line_no": 23, + "line_ref": 36, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 37, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 149, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 116.22, + "actual_price": 149, + "bill": { + "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", + "invoice_number": "72865", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "71ed0c79-3cce-4245-90c3-2869880a785e", + "joblineid": "bb6d3570-b61a-49be-9c33-9df9dc9827be", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 149, + "db_ref": "204303", + "id": "bb6d3570-b61a-49be-9c33-9df9dc9827be", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP11", + "line_desc": "L Cooling Air Duct", + "line_ind": "E", + "line_no": 24, + "line_ref": 38, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 09 ETA JAN 12", + "oem_partno": "80A 121 333 D", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 38, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "27b2668e-874f-483d-a63a-504aa7633777", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 25, + "line_ref": 38, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 39, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 285, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [ + { + "actual_cost": 222.3, + "actual_price": 285, + "bill": { + "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", + "invoice_number": "72865", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "d1399be3-a660-4ac6-9eb7-cbcc4e304c78", + "joblineid": "4584e129-aeb7-4ea0-96de-73f0a56c26c7", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.5, + "db_price": 285, + "db_ref": "201577", + "id": "4584e129-aeb7-4ea0-96de-73f0a56c26c7", + "ioucreated": false, + "lbr_amt": 44.73, + "lbr_op": "OP11", + "line_desc": "L Fender Splash Shield", + "line_ind": "E", + "line_no": 26, + "line_ref": 40, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.5, + "mod_lbr_ty": "LAB", + "notes": "ORD OEM JAN 09 ETA JAN 12", + "oem_partno": "80A 853 887 K", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAN", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 40, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "45b16056-b19c-41f0-82ba-5c6ab0404fbd", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "TABS TORN / MISSING PIECES", + "line_ind": "E", + "line_no": 27, + "line_ref": 40, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 41, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 155.01, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": "AU38-219B-2C", + "assigned_team": null, + "billlines": [ + { + "actual_cost": 88.36, + "actual_price": 155.01, + "bill": { + "id": "a57ce241-e00a-4ba3-9f26-e9e0e5eba1d2", + "invoice_number": "IS2595145", + "vendor": { + "id": "e54b45b4-55ab-4379-8d82-e4007e71622c", + "name": "A.P.T. AUTO PARTS TRADING CO LTD", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "4863b4ce-5c1c-4429-89ee-4b08c7c4cdd0", + "joblineid": "d5cc63f7-346d-4246-840d-fe4d1cdb217c", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.3, + "db_price": 241, + "db_ref": "201599", + "id": "d5cc63f7-346d-4246-840d-fe4d1cdb217c", + "ioucreated": false, + "lbr_amt": 26.84, + "lbr_op": "OP11", + "line_desc": "L Frt Body Headlamp Mtg Brkt", + "line_ind": "E", + "line_no": 28, + "line_ref": 44, + "location": "", + "manual_line": false, + "mod_lb_hrs": 0.3, + "mod_lbr_ty": "LAB", + "notes": "ORD APT JAN 09 ETA JAN 12", + "oem_partno": "80A 805 607", + "op_code_desc": "REMOVE / REPLACE", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAA", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 44, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "6df2b618-68ce-4138-a93d-99dbd755612c", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "CRACKED", + "line_ind": "E", + "line_no": 29, + "line_ref": 44, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 46, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0.4, + "db_price": 0, + "db_ref": "201304", + "id": "6281b001-55af-43f2-bb67-75154f396053", + "ioucreated": false, + "lbr_amt": 35.78, + "lbr_op": "OP2", + "line_desc": "L Front Combination Lamp", + "line_ind": "E", + "line_no": 30, + "line_ref": 44, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.4, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / INSTALL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 45, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 46.53, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "936007", + "id": "6efcef5e-6697-426f-998d-9db0208ed164", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP13", + "line_desc": "Shop Materials", + "line_ind": null, + "line_no": 31, + "line_ref": 4, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "ADDITIONAL COSTS", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": true, + "unq_seq": 4, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 108.2, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "936008", + "id": "e29b7c4f-d12c-44f4-84a1-414bb7a0bad5", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP13", + "line_desc": "Paint/Materials", + "line_ind": null, + "line_no": 32, + "line_ref": 6, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "ADDITIONAL COSTS", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": true, + "unq_seq": 6, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "933002", + "id": "4c35520b-9538-4101-b40e-2ec2a52285fc", + "ioucreated": false, + "lbr_amt": 35.78, + "lbr_op": "OP14", + "line_desc": "Clear Coat", + "line_ind": "E", + "line_no": 33, + "line_ref": 19, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.4, + "mod_lbr_ty": "LAR", + "notes": null, + "oem_partno": null, + "op_code_desc": "ADDITIONAL OPERATIONS", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 19, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900500", + "id": "1210db03-3a0d-4893-88ca-411de3d7484c", + "ioucreated": false, + "lbr_amt": 26.84, + "lbr_op": "OP9", + "line_desc": "ICBC POST REPAIR SCAN", + "line_ind": "E", + "line_no": 34, + "line_ref": 2, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.3, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "REPAIR", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAE", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 2, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 50, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": "Sublet", + "assigned_team": null, + "billlines": [ + { + "actual_cost": 0, + "actual_price": 50, + "bill": { + "id": "1a9798cb-1f37-4198-b2f7-a53d3b97eab2", + "invoice_number": "3077", + "vendor": { + "id": "6793335c-98f6-4472-86c5-278bb1459462", + "name": "In House", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "8a0184b4-34e4-4552-93d7-fec5fbda2f9f", + "joblineid": "ea2002b9-41f2-4a50-8757-371e333406b4", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900500", + "id": "ea2002b9-41f2-4a50-8757-371e333406b4", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP26", + "line_desc": "REPAIR PLANNING & DOCUMENTATION", + "line_ind": "E", + "line_no": 35, + "line_ref": 3, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "PAINTLESS DENT REPAIR", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAS", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 3, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900500", + "id": "a3954c53-5d55-4163-8d91-373c89453633", + "ioucreated": false, + "lbr_amt": 26.84, + "lbr_op": "OP6", + "line_desc": "TINT COLOUR", + "line_ind": "E", + "line_no": 36, + "line_ref": 5, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0.3, + "mod_lbr_ty": "LAR", + "notes": null, + "oem_partno": null, + "op_code_desc": "REFINISH", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAE", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 5, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 300, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": "Sublet", + "assigned_team": null, + "billlines": [ + { + "actual_cost": 240, + "actual_price": 300, + "bill": { + "id": "b244fa89-c8e8-49ed-bccd-e5bc1ffb891b", + "invoice_number": "169291", + "vendor": { + "id": "377a732f-6285-4937-b110-bc11984541c4", + "name": "CAPILANO AUDI INC.", + "__typename": "vendors" + }, + "__typename": "bills" + }, + "id": "225ad893-6285-46a5-a2cb-82735a4edf21", + "joblineid": "7a9fb964-807a-4b4c-8b6a-715462b2ac45", + "quantity": 1, + "__typename": "billlines" + } + ], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900500", + "id": "7a9fb964-807a-4b4c-8b6a-715462b2ac45", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP26", + "line_desc": "ADAS CALIBRATION STATIC", + "line_ind": "E", + "line_no": 37, + "line_ref": 21, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": "LAB", + "notes": null, + "oem_partno": null, + "op_code_desc": "PAINTLESS DENT REPAIR", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": "PAS", + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": "Received", + "tax_part": true, + "unq_seq": 21, + "include_in_part_cnt": false, + "__typename": "joblines" + }, + { + "act_price": 0, + "act_price_before_ppc": null, + "ah_detail_line": false, + "alt_partm": null, + "alt_partno": null, + "assigned_team": null, + "billlines": [], + "convertedtolbr": false, + "critical": false, + "db_hrs": 0, + "db_price": 0, + "db_ref": "900501", + "id": "5eafbf12-5502-40a0-8b23-e6376acbfc17", + "ioucreated": false, + "lbr_amt": 0, + "lbr_op": "OP0", + "line_desc": "Adaptive Cruise Control -- ADAS OEM REQU", + "line_ind": "E", + "line_no": 38, + "line_ref": 21, + "location": null, + "manual_line": false, + "mod_lb_hrs": 0, + "mod_lbr_ty": null, + "notes": null, + "oem_partno": null, + "op_code_desc": "REMOVE / REPLACE PARTIAL", + "parts_dispatch_lines": [], + "part_qty": 1, + "part_type": null, + "prt_dsmk_m": 0, + "prt_dsmk_p": 0, + "status": null, + "tax_part": false, + "unq_seq": 22, + "include_in_part_cnt": false, + "__typename": "joblines" + } + ], + "kmin": 23959, + "kmout": null, + "labor_rate_desc": "EST", + "lbr_adjustments": {}, + "local_tax_rate": null, + "loss_date": "2025-12-23", + "loss_desc": "Other", + "loss_of_use": "RS+ ", + "lost_sale_reason": null, + "materials": { + "mapa": { + "cal_maxdlr": 9999.99, + "cal_opcode": "OP13" + }, + "mash": { + "cal_maxdlr": 9999.99, + "cal_opcode": "OP13" + } + }, + "other_amount_payable": null, + "owner": { + "id": "20615805-d911-4998-aa38-d0fcd08e49b2", + "note": null, + "ownr_addr1": "6500 CHATSWORTH RD", + "ownr_addr2": null, + "ownr_city": "RICHMOND", + "ownr_co_nm": null, + "ownr_ctry": null, + "ownr_ea": "fengwenilucy@gmail.com", + "ownr_fn": "KUN", + "ownr_ln": "LIN", + "ownr_ph1": "6043796180", + "ownr_ph2": "7789556180", + "ownr_ph1_ty": null, + "ownr_ph2_ty": null, + "ownr_st": "BC", + "ownr_zip": "V7C 3S3", + "tax_number": null, + "__typename": "owners" + }, + "ownerid": "20615805-d911-4998-aa38-d0fcd08e49b2", + "owner_owing": 300, + "ownr_addr1": "6500 CHATSWORTH RD", + "ownr_addr2": null, + "ownr_city": "RICHMOND", + "ownr_co_nm": null, + "ownr_ctry": null, + "ownr_ea": "fengwenilucy@gmail.com", + "ownr_fn": "KUN", + "ownr_ln": "LIN", + "ownr_ph1": "6043796180", + "ownr_ph2": "7789556180", + "ownr_ph1_ty": null, + "ownr_ph2_ty": null, + "ownr_st": "BC", + "ownr_zip": "V7C 3S3", + "parts_tax_rates": { + "CCC": {}, + "CCD": {}, + "CCF": {}, + "CCM": {}, + "PAA": { + "prt_type": "PAA", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAC": { + "prt_type": "PAC", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAG": {}, + "PAL": { + "prt_type": "PAL", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAM": { + "prt_type": "PAM", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAN": { + "prt_type": "PAN", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAO": {}, + "PAP": {}, + "PAR": { + "prt_type": "PAR", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "PAS": { + "prt_type": "PAS", + "prt_discp": 0, + "prt_mktyp": false, + "prt_mkupp": 0, + "prt_tax_in": true, + "prt_tax_rt": 0.07 + }, + "CCDR": {}, + "PASL": {} + }, + "payments": [ + { + "amount": 300, + "created_at": "2026-01-22T00:53:01.352735+00:00", + "date": "2026-01-21", + "exportedat": "2026-01-22T23:29:19.294+00:00", + "id": "98088180-cc9f-469e-b1a1-586775aae73a", + "jobid": "62fcba91-b8df-4076-b5f5-14f8827c8f92", + "memo": null, + "payer": "Customer", + "paymentnum": "2489", + "transactionid": "075921", + "type": "Visa", + "__typename": "payments" + } + ], + "plate_no": "HW815N", + "plate_st": "BC", + "po_number": null, + "policy_no": "5L.LHS", + "production_vars": { + "note": null + }, + "rate_ats": null, + "rate_ats_flat": null, + "rate_la1": 97.8, + "rate_la2": 0, + "rate_la3": 107.35, + "rate_la4": 0, + "rate_laa": 107.35, + "rate_lab": 89.46, + "rate_lad": null, + "rate_lae": null, + "rate_laf": 102.27, + "rate_lag": 89.46, + "rate_lam": 115.05, + "rate_lar": 89.46, + "rate_las": 89.46, + "rate_lau": 0, + "rate_ma2s": 0, + "rate_ma2t": 0, + "rate_ma3s": 0, + "rate_mabl": null, + "rate_macs": 0, + "rate_mahw": 0, + "rate_mapa": 60.11, + "rate_mash": 7.05, + "rate_matd": null, + "referral_source": null, + "referral_source_extra": null, + "regie_number": "12984170", + "remove_from_ar": false, + "ro_number": "58117", + "scheduled_completion": "2026-01-21T22:15:39.3+00:00", + "scheduled_delivery": "2026-01-21T08:00:00+00:00", + "scheduled_in": null, + "selling_dealer": null, + "estimate_approved": "2026-01-20T19:33:34.829+00:00", + "estimate_sent_approval": "2026-01-09T23:17:39.023+00:00", + "selling_dealer_contact": null, + "servicing_dealer": null, + "servicing_dealer_contact": null, + "special_coverage_policy": false, + "state_tax_rate": null, + "status": "Exported", + "storage_payable": null, + "suspended": false, + "tax_lbr_rt": 0.07, + "tax_levies_rt": 0.07, + "tax_paint_mat_rt": 0.07, + "tax_registration_number": null, + "tax_shop_mat_rt": 0.07, + "tax_str_rt": 0.07, + "tax_sub_rt": 0.07, + "tax_tow_rt": 0.07, + "tlos_ind": false, + "towin": false, + "towing_payable": null, + "unit_number": null, + "updated_at": "2026-01-26T19:19:12.944388+00:00", + "v_color": "Navarra Blue", + "v_make_desc": "Audi", + "v_model_yr": "18", + "v_model_desc": "SQ5", + "v_vin": "WA1A4AFY5J2082044", + "notes": [], + "vehicle": { + "id": "5a834070-9cf4-420d-90a4-08df96303af4", + "jobs": [ + { + "clm_no": "DA37868-0-A", + "id": "62fcba91-b8df-4076-b5f5-14f8827c8f92", + "ro_number": "58117", + "status": "Exported", + "__typename": "jobs" + } + ], + "notes": null, + "plate_no": "HW815N", + "plate_st": "BC", + "v_color": "LX5H Navarra Blue", + "v_make_desc": "Audi", + "v_model_yr": "18", + "v_model_desc": "SQ5", + "v_paint_codes": { + "paint_cd1": "LX5H Navarra Blue", + "paint_cd2": null + }, + "v_vin": "WA1A4AFY5J2082044", + "__typename": "vehicles" + }, + "vehicleid": "5a834070-9cf4-420d-90a4-08df96303af4", + "voided": false, + "__typename": "jobs" +} \ No newline at end of file diff --git a/server/ai/bill-ocr/bill-ocr-helpers.js b/server/ai/bill-ocr/bill-ocr-helpers.js new file mode 100644 index 000000000..2fa693dcc --- /dev/null +++ b/server/ai/bill-ocr/bill-ocr-helpers.js @@ -0,0 +1,159 @@ +const PDFDocument = require('pdf-lib').PDFDocument; + +const TEXTRACT_REDIS_PREFIX = "textract:" +const TEXTRACT_JOB_TTL = 3600; + + +/** + * Generate Redis key for Textract job using textract job ID + * @param {string} textractJobId + * @returns {string} + */ +function getTextractJobKey(textractJobId) { + return `${TEXTRACT_REDIS_PREFIX}:${textractJobId}`; +} + + +/** + * Store Textract job data in Redis + * @param {string} textractJobId + * @param {Object} redisPubClient + * @param {Object} jobData + */ +async function setTextractJob({ redisPubClient, textractJobId, jobData }) { + if (!redisPubClient) { + throw new Error('Redis client not initialized. Call initializeBillOcr first.'); + } + const key = getTextractJobKey(textractJobId); + await redisPubClient.set(key, JSON.stringify(jobData)); + await redisPubClient.expire(key, TEXTRACT_JOB_TTL); +} + +/** + * Retrieve Textract job data from Redis + * @param {string} textractJobId + * @param {Object} redisPubClient + * @returns {Promise} + */ +async function getTextractJob({ redisPubClient, textractJobId }) { + if (!redisPubClient) { + throw new Error('Redis client not initialized. Call initializeBillOcr first.'); + } + const key = getTextractJobKey(textractJobId); + const data = await redisPubClient.get(key); + return data ? JSON.parse(data) : null; +} + +/** + * Detect file type based on MIME type and file signature + * @param {Object} file - Multer file object + * @returns {string} 'pdf', 'image', or 'unknown' + */ +function getFileType(file) { + // Check MIME type first + const mimeType = file.mimetype?.toLowerCase(); + + if (mimeType === 'application/pdf') { + return 'pdf'; + } + + if (mimeType && mimeType.startsWith('image/')) { + return 'image'; + } + + // Fallback: Check file signature (magic bytes) + const buffer = file.buffer; + if (buffer && buffer.length > 4) { + // PDF signature: %PDF + if (buffer[0] === 0x25 && buffer[1] === 0x50 && buffer[2] === 0x44 && buffer[3] === 0x46) { + return 'pdf'; + } + + // JPEG signature: FF D8 FF + if (buffer[0] === 0xFF && buffer[1] === 0xD8 && buffer[2] === 0xFF) { + return 'image'; + } + + // PNG signature: 89 50 4E 47 + if (buffer[0] === 0x89 && buffer[1] === 0x50 && buffer[2] === 0x4E && buffer[3] === 0x47) { + return 'image'; + } + + // HEIC/HEIF: Check for ftyp followed by heic/heix/hevc/hevx + if (buffer.length > 12) { + const ftypIndex = buffer.indexOf(Buffer.from('ftyp')); + if (ftypIndex > 0 && ftypIndex < 12) { + const brand = buffer.slice(ftypIndex + 4, ftypIndex + 8).toString('ascii'); + if (brand.startsWith('heic') || brand.startsWith('heix') || + brand.startsWith('hevc') || brand.startsWith('hevx') || + brand.startsWith('mif1')) { + return 'image'; + } + } + } + } + + return 'unknown'; +} + +/** + * Get the number of pages in a PDF buffer + * @param {Buffer} pdfBuffer + * @returns {Promise} + */ +async function getPdfPageCount(pdfBuffer) { + try { + const pdfDoc = await PDFDocument.load(pdfBuffer); + return pdfDoc.getPageCount(); + } catch (error) { + console.error('Error reading PDF page count:', error); + throw new Error('Failed to read PDF: ' + error.message); + } +} + +/** + * Check if there are any jobs in IN_PROGRESS status + * @returns {Promise} + */ +async function hasActiveJobs({ redisPubClient }) { + if (!redisPubClient) { + throw new Error('Redis client not initialized.'); + } + + try { + // Get all textract job keys + const pattern = `${TEXTRACT_REDIS_PREFIX}:*`; + const keys = await redisPubClient.keys(pattern); + + if (!keys || keys.length === 0) { + return false; + } + //TODO: Is there a better way to do this that supports clusters? + // Check if any job has IN_PROGRESS status + for (const key of keys) { + const data = await redisPubClient.get(key); + if (data) { + const jobData = JSON.parse(data); + if (jobData.status === 'IN_PROGRESS') { + return true; + } + } + } + + return false; + } catch (error) { + console.error('Error checking for active jobs:', error); + return false; + } +} + +module.exports = { + getTextractJobKey, + setTextractJob, + getTextractJob, + getFileType, + getPdfPageCount, + hasActiveJobs, + TEXTRACT_REDIS_PREFIX +} + diff --git a/server/ai/bill-ocr/bill-ocr-normalize.js b/server/ai/bill-ocr/bill-ocr-normalize.js new file mode 100644 index 000000000..c519f654a --- /dev/null +++ b/server/ai/bill-ocr/bill-ocr-normalize.js @@ -0,0 +1,184 @@ + +const MIN_CONFIDENCE_VALUE = 50 + +function normalizeFieldName(fieldType) { + //Placeholder normalization for now. + return fieldType; +} + + +function normalizeLabelName(labelText) { + if (!labelText) return ''; + + // Convert to lowercase and trim whitespace + let normalized = labelText.toLowerCase().trim(); + + // Remove special characters and replace spaces with underscores + normalized = normalized.replace(/[^a-z0-9\s]/g, '').replace(/\s+/g, '_'); + const standardizedFieldsnames = { + actual_cost: "actual_cost", + actual_price: "actual_price", + line_desc: "line_desc", + quantity: "quantity", + part_no: "part_no" + } + + // Common label normalizations + const labelMap = { + 'qty': standardizedFieldsnames.quantity, + 'qnty': standardizedFieldsnames.quantity, + 'sale_qty': standardizedFieldsnames.quantity, + 'invoiced_qty': standardizedFieldsnames.quantity, + 'qty_shipped': standardizedFieldsnames.quantity, + 'quant': standardizedFieldsnames.quantity, + 'desc': standardizedFieldsnames.line_desc, + 'description': standardizedFieldsnames.line_desc, + 'item': standardizedFieldsnames.line_desc, + 'part': standardizedFieldsnames.part_no, + 'part_no': standardizedFieldsnames.part_no, + 'part_num': standardizedFieldsnames.part_no, + 'part_number': standardizedFieldsnames.part_no, + 'price': standardizedFieldsnames.actual_price, + 'unit_price': standardizedFieldsnames.actual_price, + 'amount': standardizedFieldsnames.actual_price, + 'list_price': standardizedFieldsnames.actual_price, + 'list': standardizedFieldsnames.actual_price, + 'retail_price': standardizedFieldsnames.actual_price, + 'net': standardizedFieldsnames.actual_cost, + 'selling_price': standardizedFieldsnames.actual_cost, + + }; + + return labelMap[normalized] || `UNKNOWN_${normalized}`; // TODO: Should we monitor unmapped labels? +} + +function processScanData(invoiceData) { + // Process and clean the extracted data + const processed = { + summary: {}, + lineItems: [] + }; + + // Clean summary fields + for (const [key, value] of Object.entries(invoiceData.summary)) { + if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence + processed.summary[key] = { + value: value.value, + label: value.label, + normalizedLabel: value.normalizedLabel, + confidence: value.confidence + }; + } + } + + // Process line items + processed.lineItems = invoiceData.lineItems + .map(item => { + const processedItem = {}; + + for (const [key, value] of Object.entries(item)) { + if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence + let cleanValue = value.value; + + // Parse numbers for quantity and price fields + if (key === 'quantity') { + cleanValue = parseFloat(cleanValue) || 0; + } else if (key === 'retail_price' || key === 'actual_price') { + // Remove currency symbols and parse + cleanValue = parseFloat(cleanValue.replace(/[^0-9.-]/g, '')) || 0; + } + + processedItem[key] = { + value: cleanValue, + label: value.label, + normalizedLabel: value.normalizedLabel, + confidence: value.confidence + }; + } + } + + return processedItem; + }) + // .filter(item => { + // // Filter out items with no description or with quantity <= 0 + // return item.description && (!item.quantity || item.quantity > 0); + // }); + + return processed; +} + +function extractInvoiceData(textractResponse) { + const invoiceData = { + summary: {}, + lineItems: [] + }; + + if (!textractResponse.ExpenseDocuments || textractResponse.ExpenseDocuments.length === 0) { + return invoiceData; + } + + // Process each page of the invoice + textractResponse.ExpenseDocuments.forEach(expenseDoc => { + // Extract summary fields (vendor, invoice number, date, total, etc.) + if (expenseDoc.SummaryFields) { + expenseDoc.SummaryFields.forEach(field => { + const fieldType = field.Type?.Text || ''; + const fieldValue = field.ValueDetection?.Text || ''; + const fieldLabel = field.LabelDetection?.Text || ''; + const confidence = field.ValueDetection?.Confidence || 0; + + // Map common invoice fields + if (fieldType && fieldValue) { + invoiceData.summary[fieldType] = { + value: fieldValue, + label: fieldLabel, + normalizedLabel: normalizeLabelName(fieldLabel), + confidence: confidence + }; + } + }); + } + + // Extract line items + if (expenseDoc.LineItemGroups) { + expenseDoc.LineItemGroups.forEach(lineItemGroup => { + if (lineItemGroup.LineItems) { + lineItemGroup.LineItems.forEach(lineItem => { + const item = {}; + + if (lineItem.LineItemExpenseFields) { + lineItem.LineItemExpenseFields.forEach(field => { + const fieldType = field.Type?.Text || ''; + const fieldValue = field.ValueDetection?.Text || ''; + const fieldLabel = field.LabelDetection?.Text || ''; + const confidence = field.ValueDetection?.Confidence || 0; + + if (fieldType && fieldValue) { + // Normalize field names + const normalizedField = normalizeFieldName(fieldType); + item[normalizedField] = { + value: fieldValue, + label: fieldLabel, + normalizedLabel: normalizeLabelName(fieldLabel), + confidence: confidence + }; + } + }); + } + + if (Object.keys(item).length > 0) { + invoiceData.lineItems.push(item); + } + }); + } + }); + } + }); + + return invoiceData; +} + +module.exports = { + extractInvoiceData, + processScanData +} \ No newline at end of file diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js index b99d9c1fb..cba3af558 100644 --- a/server/ai/bill-ocr/bill-ocr.js +++ b/server/ai/bill-ocr/bill-ocr.js @@ -2,7 +2,9 @@ const { TextractClient, StartExpenseAnalysisCommand, GetExpenseAnalysisCommand, const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3"); const { SQSClient, ReceiveMessageCommand, DeleteMessageCommand } = require("@aws-sdk/client-sqs"); const { v4: uuidv4 } = require('uuid'); -const PDFDocument = require('pdf-lib').PDFDocument; +const { getTextractJobKey, setTextractJob, getTextractJob, getFileType, getPdfPageCount, hasActiveJobs } = require("./bill-ocr-helpers"); +const { extractInvoiceData, processScanData } = require("./bill-ocr-normalize"); +const { generateBillFormData } = require("./bill-ocr-generator"); // Initialize AWS clients const awsConfig = { @@ -18,8 +20,7 @@ const s3Client = new S3Client(awsConfig); const sqsClient = new SQSClient(awsConfig); let redisPubClient = null; -const TEXTRACT_JOB_TTL = 3600; -const MIN_CONFIDENCE_VALUE = 50 + /** * Initialize the bill-ocr module with Redis client @@ -29,43 +30,6 @@ function initializeBillOcr(pubClient) { redisPubClient = pubClient; } -/** - * Generate Redis key for Textract job using textract job ID - * @param {string} textractJobId - * @returns {string} - */ -function getTextractJobKey(textractJobId) { - return `textract:job:${textractJobId}`; -} - -/** - * Store Textract job data in Redis - * @param {string} textractJobId - * @param {Object} jobData - */ -async function setTextractJob(textractJobId, jobData) { - if (!redisPubClient) { - throw new Error('Redis client not initialized. Call initializeBillOcr first.'); - } - const key = getTextractJobKey(textractJobId); - await redisPubClient.set(key, JSON.stringify(jobData)); - await redisPubClient.expire(key, TEXTRACT_JOB_TTL); -} - -/** - * Retrieve Textract job data from Redis - * @param {string} textractJobId - * @returns {Promise} - */ -async function getTextractJob(textractJobId) { - if (!redisPubClient) { - throw new Error('Redis client not initialized. Call initializeBillOcr first.'); - } - const key = getTextractJobKey(textractJobId); - const data = await redisPubClient.get(key); - return data ? JSON.parse(data) : null; -} - /** * Check if job exists by Textract job ID * @param {string} textractJobId @@ -89,42 +53,6 @@ async function jobExists(textractJobId) { return false; } -/** - * Check if there are any jobs in IN_PROGRESS status - * @returns {Promise} - */ -async function hasActiveJobs() { - if (!redisPubClient) { - throw new Error('Redis client not initialized.'); - } - - try { - // Get all textract job keys - const pattern = 'textract:job:*'; - const keys = await redisPubClient.keys(pattern); - - if (!keys || keys.length === 0) { - return false; - } - //TODO: Is there a better way to do this that supports clusters? - // Check if any job has IN_PROGRESS status - for (const key of keys) { - const data = await redisPubClient.get(key); - if (data) { - const jobData = JSON.parse(data); - if (jobData.status === 'IN_PROGRESS') { - return true; - } - } - } - - return false; - } catch (error) { - console.error('Error checking for active jobs:', error); - return false; - } -} - async function handleBillOcr(request, response) { // Check if file was uploaded if (!request.file) { @@ -134,6 +62,7 @@ async function handleBillOcr(request, response) { // The uploaded file is available in request.file const uploadedFile = request.file; + const { jobid, bodyshopid, parts_orderid } = request.body; try { const fileType = getFileType(uploadedFile); @@ -160,10 +89,11 @@ async function handleBillOcr(request, response) { console.log('PDF => 1 page, processing synchronously'); const result = await processSinglePageDocument(uploadedFile.buffer); + //const billResult = await generateBillFormData({ result, }); response.status(200).send({ success: true, status: 'COMPLETED', - data: result, + data: { result, }, message: 'Invoice processing completed' }); } else { @@ -194,17 +124,8 @@ async function handleBillOcr(request, response) { } async function handleBillOcrStatus(request, response) { - console.log('handleBillOcrStatus called'); - console.log('request.params:', request.params); - console.log('request.query:', request.query); - - - - const { jobId: textractJobId } = request.params; - - if (!textractJobId) { console.log('No textractJobId found in params'); response.status(400).send({ error: 'Job ID is required' }); @@ -212,7 +133,7 @@ async function handleBillOcrStatus(request, response) { } console.log('Looking for job:', textractJobId); - const jobStatus = await getTextractJob(textractJobId); + const jobStatus = await getTextractJob({ redisPubClient, textractJobId }); console.log('Job status:', jobStatus); if (!jobStatus) { @@ -237,72 +158,8 @@ async function handleBillOcrStatus(request, response) { } } -/** - * Detect file type based on MIME type and file signature - * @param {Object} file - Multer file object - * @returns {string} 'pdf', 'image', or 'unknown' - */ -function getFileType(file) { - // Check MIME type first - const mimeType = file.mimetype?.toLowerCase(); - if (mimeType === 'application/pdf') { - return 'pdf'; - } - if (mimeType && mimeType.startsWith('image/')) { - return 'image'; - } - - // Fallback: Check file signature (magic bytes) - const buffer = file.buffer; - if (buffer && buffer.length > 4) { - // PDF signature: %PDF - if (buffer[0] === 0x25 && buffer[1] === 0x50 && buffer[2] === 0x44 && buffer[3] === 0x46) { - return 'pdf'; - } - - // JPEG signature: FF D8 FF - if (buffer[0] === 0xFF && buffer[1] === 0xD8 && buffer[2] === 0xFF) { - return 'image'; - } - - // PNG signature: 89 50 4E 47 - if (buffer[0] === 0x89 && buffer[1] === 0x50 && buffer[2] === 0x4E && buffer[3] === 0x47) { - return 'image'; - } - - // HEIC/HEIF: Check for ftyp followed by heic/heix/hevc/hevx - if (buffer.length > 12) { - const ftypIndex = buffer.indexOf(Buffer.from('ftyp')); - if (ftypIndex > 0 && ftypIndex < 12) { - const brand = buffer.slice(ftypIndex + 4, ftypIndex + 8).toString('ascii'); - if (brand.startsWith('heic') || brand.startsWith('heix') || - brand.startsWith('hevc') || brand.startsWith('hevx') || - brand.startsWith('mif1')) { - return 'image'; - } - } - } - } - - return 'unknown'; -} - -/** - * Get the number of pages in a PDF buffer - * @param {Buffer} pdfBuffer - * @returns {Promise} - */ -async function getPdfPageCount(pdfBuffer) { - try { - const pdfDoc = await PDFDocument.load(pdfBuffer); - return pdfDoc.getPageCount(); - } catch (error) { - console.error('Error reading PDF page count:', error); - throw new Error('Failed to read PDF: ' + error.message); - } -} /** * Process a single-page document synchronously using AnalyzeExpenseCommand @@ -373,12 +230,18 @@ async function startTextractJob(pdfBuffer) { const textractJobId = startResult.JobId; // Store job info in Redis using textractJobId as the key - await setTextractJob(textractJobId, { - status: 'IN_PROGRESS', - s3Key: s3Key, - uploadId: uploadId, - startedAt: new Date().toISOString() - }); + await setTextractJob( + { + redisPubClient, + textractJobId, + jobData: { + status: 'IN_PROGRESS', + s3Key: s3Key, + uploadId: uploadId, + startedAt: new Date().toISOString() + } + } + ); return { jobId: textractJobId @@ -395,7 +258,7 @@ async function processSQSMessages() { } // Only poll if there are active mutli page jobs in progress - const hasActive = await hasActiveJobs(); + const hasActive = await hasActiveJobs({ redisPubClient }); if (!hasActive) { console.log('No active jobs in progress, skipping SQS poll'); return; @@ -464,28 +327,40 @@ async function handleTextractNotification(message) { return; } - const jobInfo = await getTextractJob(textractJobId); + const jobInfo = await getTextractJob({ redisPubClient, textractJobId }); if (status === 'SUCCEEDED') { // Retrieve the results const { processedData, originalResponse } = await retrieveTextractResults(textractJobId); - await setTextractJob(textractJobId, { - ...jobInfo, - status: 'COMPLETED', - data: { - ...processedData, - originalTextractResponse: originalResponse - }, - completedAt: new Date().toISOString() - }); + await setTextractJob( + { + redisPubClient, + textractJobId, + jobData: { + ...jobInfo, + status: 'COMPLETED', + data: { + ...processedData, + originalTextractResponse: originalResponse + }, + completedAt: new Date().toISOString() + } + } + ); } else if (status === 'FAILED') { - await setTextractJob(textractJobId, { - ...jobInfo, - status: 'FAILED', - error: snsMessage.StatusMessage || 'Textract job failed', - completedAt: new Date().toISOString() - }); + await setTextractJob( + { + redisPubClient, + textractJobId, + jobData: { + ...jobInfo, + status: 'FAILED', + error: snsMessage.StatusMessage || 'Textract job failed', + completedAt: new Date().toISOString() + } + } + ); } } @@ -531,179 +406,6 @@ function startSQSPolling() { return pollInterval; } -function extractInvoiceData(textractResponse) { - const invoiceData = { - summary: {}, - lineItems: [] - }; - - if (!textractResponse.ExpenseDocuments || textractResponse.ExpenseDocuments.length === 0) { - return invoiceData; - } - - // Process each page of the invoice - textractResponse.ExpenseDocuments.forEach(expenseDoc => { - // Extract summary fields (vendor, invoice number, date, total, etc.) - if (expenseDoc.SummaryFields) { - expenseDoc.SummaryFields.forEach(field => { - const fieldType = field.Type?.Text || ''; - const fieldValue = field.ValueDetection?.Text || ''; - const fieldLabel = field.LabelDetection?.Text || ''; - const confidence = field.ValueDetection?.Confidence || 0; - - // Map common invoice fields - if (fieldType && fieldValue) { - invoiceData.summary[fieldType] = { - value: fieldValue, - label: fieldLabel, - normalizedLabel: normalizeLabelName(fieldLabel), - confidence: confidence - }; - } - }); - } - - // Extract line items - if (expenseDoc.LineItemGroups) { - expenseDoc.LineItemGroups.forEach(lineItemGroup => { - if (lineItemGroup.LineItems) { - lineItemGroup.LineItems.forEach(lineItem => { - const item = {}; - - if (lineItem.LineItemExpenseFields) { - lineItem.LineItemExpenseFields.forEach(field => { - const fieldType = field.Type?.Text || ''; - const fieldValue = field.ValueDetection?.Text || ''; - const fieldLabel = field.LabelDetection?.Text || ''; - const confidence = field.ValueDetection?.Confidence || 0; - - if (fieldType && fieldValue) { - // Normalize field names - const normalizedField = normalizeFieldName(fieldType); - item[normalizedField] = { - value: fieldValue, - label: fieldLabel, - normalizedLabel: normalizeLabelName(fieldLabel), - confidence: confidence - }; - } - }); - } - - if (Object.keys(item).length > 0) { - invoiceData.lineItems.push(item); - } - }); - } - }); - } - }); - - return invoiceData; -} - -function normalizeFieldName(fieldType) { - //Placeholder normalization for now. - return fieldType; -} - -function normalizeLabelName(labelText) { - if (!labelText) return ''; - - // Convert to lowercase and trim whitespace - let normalized = labelText.toLowerCase().trim(); - - // Remove special characters and replace spaces with underscores - normalized = normalized.replace(/[^a-z0-9\s]/g, '').replace(/\s+/g, '_'); - const standardizedFieldsnames = { - actual_cost: "actual_cost", - actual_price: "actual_price", - line_desc: "line_desc", - quantity: "quantity", - part_no: "part_no" - } - - // Common label normalizations - const labelMap = { - 'qty': standardizedFieldsnames.quantity, - 'qnty': standardizedFieldsnames.quantity, - 'sale_qty': standardizedFieldsnames.quantity, - 'quant': standardizedFieldsnames.quantity, - 'desc': standardizedFieldsnames.line_desc, - 'description': standardizedFieldsnames.line_desc, - 'item': standardizedFieldsnames.line_desc, - 'part': standardizedFieldsnames.part_no, - 'part_no': standardizedFieldsnames.part_no, - 'part_num': standardizedFieldsnames.part_no, - 'part_number': standardizedFieldsnames.part_no, - 'price': standardizedFieldsnames.actual_price, - 'unit_price': standardizedFieldsnames.actual_price, - 'amount': standardizedFieldsnames.actual_price, - 'list_price': standardizedFieldsnames.actual_price, - 'list': standardizedFieldsnames.actual_price, - 'retail_price': standardizedFieldsnames.actual_price, - 'net': standardizedFieldsnames.actual_cost, - 'selling_price': standardizedFieldsnames.actual_cost, - - }; - - return labelMap[normalized] || normalized; // TODO: Should we monitor unmapped labels? -} - -function processScanData(invoiceData) { - // Process and clean the extracted data - const processed = { - summary: {}, - lineItems: [] - }; - - // Clean summary fields - for (const [key, value] of Object.entries(invoiceData.summary)) { - if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence - processed.summary[key] = { - value: value.value, - label: value.label, - normalizedLabel: value.normalizedLabel, - confidence: value.confidence - }; - } - } - - // Process line items - processed.lineItems = invoiceData.lineItems - .map(item => { - const processedItem = {}; - - for (const [key, value] of Object.entries(item)) { - if (value.confidence > MIN_CONFIDENCE_VALUE) { // Only include fields with > 50% confidence - let cleanValue = value.value; - - // Parse numbers for quantity and price fields - if (key === 'quantity') { - cleanValue = parseFloat(cleanValue) || 0; - } else if (key === 'retail_price' || key === 'actual_price') { - // Remove currency symbols and parse - cleanValue = parseFloat(cleanValue.replace(/[^0-9.-]/g, '')) || 0; - } - - processedItem[key] = { - value: cleanValue, - label: value.label, - normalizedLabel: value.normalizedLabel, - confidence: value.confidence - }; - } - } - - return processedItem; - }) - // .filter(item => { - // // Filter out items with no description or with quantity <= 0 - // return item.description && (!item.quantity || item.quantity > 0); - // }); - - return processed; -} module.exports = { initializeBillOcr, diff --git a/server/routes/aiRoutes.js b/server/routes/aiRoutes.js index 0aa9260bf..234859909 100644 --- a/server/routes/aiRoutes.js +++ b/server/routes/aiRoutes.js @@ -3,6 +3,7 @@ const router = express.Router(); const multer = require("multer"); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const { handleBillOcr, handleBillOcrStatus } = require("../ai/bill-ocr/bill-ocr"); +const { generateBillFormData } = require("../ai/bill-ocr/bill-ocr-generator"); // Configure multer for form data parsing const upload = multer(); @@ -11,5 +12,26334 @@ const upload = multer(); router.post("/bill-ocr", upload.single('billScan'), handleBillOcr); router.get("/bill-ocr/status/:jobId", handleBillOcrStatus); +router.get("/bill-ocr/test", async (req, res) => { + const response = await generateBillFormData({ + processedData: { + "summary": { + "ADDRESS": { + "value": "SASKATOON SK\n705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "label": "", + "normalizedLabel": "", + "confidence": 93.72879028320312 + }, + "STREET": { + "value": "705-43RD STREET EAST", + "label": "", + "normalizedLabel": "", + "confidence": 97.9238052368164 + }, + "CITY": { + "value": "SASKATOON", + "label": "", + "normalizedLabel": "", + "confidence": 99.35079956054688 + }, + "STATE": { + "value": "SK", + "label": "", + "normalizedLabel": "", + "confidence": 99.2448501586914 + }, + "ZIP_CODE": { + "value": "S7K 0V7", + "label": "", + "normalizedLabel": "", + "confidence": 80.69967651367188 + }, + "NAME": { + "value": "KEYSTONE", + "label": "", + "normalizedLabel": "", + "confidence": 99.3313217163086 + }, + "ADDRESS_BLOCK": { + "value": "705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "label": "", + "normalizedLabel": "", + "confidence": 92.97747039794922 + }, + "AMOUNT_PAID": { + "value": "0.00", + "label": "DEPOSIT\nAMOUNT", + "normalizedLabel": null, + "confidence": 77.86592102050781 + }, + "INVOICE_RECEIPT_DATE": { + "value": "10/17/22", + "label": "DATE", + "normalizedLabel": null, + "confidence": 99.88623046875 + }, + "INVOICE_RECEIPT_ID": { + "value": "SS148046", + "label": "Invoice#", + "normalizedLabel": null, + "confidence": 99.59791564941406 + }, + "TAX_PAYER_ID": { + "value": "24.64", + "label": "GST/HST", + "normalizedLabel": null, + "confidence": 67.21234893798828 + }, + "VENDOR_GST_NUMBER": { + "value": "88221 4026", + "label": "GST", + "normalizedLabel": null, + "confidence": 93.46067810058594 + }, + "ORDER_DATE": { + "value": "10/07/22", + "label": "ORDER DATE", + "normalizedLabel": null, + "confidence": 99.92405700683594 + }, + "PO_NUMBER": { + "value": "42719", + "label": "CUSTOMER P/O NUMBER", + "normalizedLabel": null, + "confidence": 99.45124053955078 + }, + "PAYMENT_TERMS": { + "value": "2%15th-Net30thP", + "label": "PAYMENT TERMS", + "normalizedLabel": null, + "confidence": 96.6642074584961 + }, + "RECEIVER_ADDRESS": { + "value": "CSN KAVIA AUTO BODY\n90 33RD ST E\nSASKATOON, SK S7K 0S1", + "label": "Ship To:", + "normalizedLabel": null, + "confidence": 97.3016586303711 + }, + "RECEIVER_NAME": { + "value": "CSN KAVIA AUTO BODY", + "label": "", + "normalizedLabel": "", + "confidence": 68.59736633300781 + }, + "RECEIVER_PHONE": { + "value": "306-657-4784,", + "label": "", + "normalizedLabel": "", + "confidence": 72.60002136230469 + }, + "SHIPPING_HANDLING_CHARGE": { + "value": "0.00", + "label": "FREIGHT", + "normalizedLabel": null, + "confidence": 95.58624267578125 + }, + "SUBTOTAL": { + "value": "487.91", + "label": "TOTAL", + "normalizedLabel": null, + "confidence": 92.1504135131836 + }, + "TOTAL": { + "value": "517.55", + "label": "INVOICE TOTAL", + "normalizedLabel": null, + "confidence": 99.68756103515625 + }, + "VENDOR_ADDRESS": { + "value": "SASKATOON SK\n705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "label": "", + "normalizedLabel": "", + "confidence": 93.72879028320312 + }, + "VENDOR_NAME": { + "value": "KEYSTONE", + "label": "", + "normalizedLabel": "", + "confidence": 99.3313217163086 + }, + "VENDOR_PHONE": { + "value": "306-955-1619", + "label": "Phone", + "normalizedLabel": null, + "confidence": 99.81151580810547 + }, + "VENDOR_URL": { + "value": "https: //www.lkgcorp.com/LKQ-terms-and-conditions", + "label": "", + "normalizedLabel": "", + "confidence": 81.50306701660156 + }, + "OTHER": { + "value": "0.00", + "label": "PST/QST", + "normalizedLabel": null, + "confidence": 99.94696044921875 + } + }, + "lineItems": [ + { + "PRODUCT_CODE": { + "value": "TO1200453C", + "label": "PRODUCT / DESCRIPTION", + "normalizedLabel": null, + "confidence": 71.57904815673828 + }, + "QUANTITY": { + "value": "1", + "label": "QTY\nSHIPPED", + "normalizedLabel": null, + "confidence": 96.6576156616211 + }, + "UNIT_PRICE": { + "value": "317.03", + "label": "PRICE", + "normalizedLabel": "actual_price", + "confidence": 99.80897521972656 + }, + "PRICE": { + "value": "317.03", + "label": "EXTENSION", + "normalizedLabel": null, + "confidence": 99.96924591064453 + }, + "ITEM": { + "value": "TO1200453C\nGRILLE;HONEYCOMB; 18-21 TUNDRA\nCHR FRM/LT GRY CNT;RND EMB TYP\nLot # 2205A", + "label": "PRODUCT / DESCRIPTION", + "normalizedLabel": null, + "confidence": 95.07057189941406 + }, + "EXPENSE_ROW": { + "value": "TO1200453C 1 1 0 537.34 317.03 EA 317.03\nGRILLE;HONEYCOMB; 18-21 TUNDRA\nCHR FRM/LT GRY CNT;RND EMB TYP\nLot # 2205A Vendor 200382", + "label": "", + "normalizedLabel": "", + "confidence": 97.93269348144531 + } + }, + { + "PRODUCT_CODE": { + "value": "TO2503260C", + "label": "PRODUCT / DESCRIPTION", + "normalizedLabel": null, + "confidence": 59.64625549316406 + }, + "OTHER": { + "value": "EA", + "label": "U/M", + "normalizedLabel": null, + "confidence": 71.8764877319336 + }, + "QUANTITY": { + "value": "1", + "label": "QTY\nSHIPPED", + "normalizedLabel": null, + "confidence": 59.45448303222656 + }, + "UNIT_PRICE": { + "value": "170.88", + "label": "PRICE", + "normalizedLabel": "actual_price", + "confidence": 99.76554870605469 + }, + "PRICE": { + "value": "170.88", + "label": "EXTENSION", + "normalizedLabel": null, + "confidence": 99.97667694091797 + }, + "ITEM": { + "value": "TO2503260C\nHLAMP ASM RH; 18-21 TUNDRA\nWO/SMOKED BZL;HLGN\nLot # 20220627", + "label": "PRODUCT / DESCRIPTION", + "normalizedLabel": null, + "confidence": 86.62881469726562 + }, + "EXPENSE_ROW": { + "value": "TO2503260C 1 1 0 289.63 170.88 EA 170.88\nHLAMP ASM RH; 18-21 TUNDRA\nWO/SMOKED BZL;HLGN\nLot # 20220627 Vendor 200411\nOCT 14TH", + "label": "", + "normalizedLabel": "", + "confidence": 91.09329223632812 + } + } + ], + "originalTextractResponse": { + "DocumentMetadata": { + "Pages": 1 + }, + "ExpenseDocuments": [ + { + "ExpenseIndex": 1, + "SummaryFields": [ + { + "Type": { + "Text": "ADDRESS", + "Confidence": 70.63086700439453 + }, + "LabelDetection": { + "Text": "BILL TO", + "Geometry": { + "BoundingBox": { + "Width": 0.048354372382164, + "Height": 0.00852169282734394, + "Left": 0.1312086135149002, + "Top": 0.12241477519273758 + }, + "Polygon": [ + { + "X": 0.1312086135149002, + "Y": 0.12247389554977417 + }, + { + "X": 0.17955149710178375, + "Y": 0.12241477519273758 + }, + { + "X": 0.1795629858970642, + "Y": 0.13087746500968933 + }, + { + "X": 0.13121995329856873, + "Y": 0.13093647360801697 + } + ] + }, + "Confidence": 70.790283203125 + }, + "ValueDetection": { + "Text": "PST: 3013675\n180757\nCSN KAVIA AUTO BODY\n90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.19152547419071198, + "Height": 0.06343784183263779, + "Left": 0.1434803009033203, + "Top": 0.136986643075943 + }, + "Polygon": [ + { + "X": 0.1434803009033203, + "Y": 0.13721992075443268 + }, + { + "X": 0.33491653203964233, + "Y": 0.136986643075943 + }, + { + "X": 0.3350057899951935, + "Y": 0.20019471645355225 + }, + { + "X": 0.14356528222560883, + "Y": 0.20042447745800018 + } + ] + }, + "Confidence": 69.82979583740234 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "STREET", + "Confidence": 70.63086700439453 + }, + "ValueDetection": { + "Text": "90 33RD ST E", + "Geometry": { + "BoundingBox": { + "Width": 0.0990283265709877, + "Height": 0.010042410343885422, + "Left": 0.14420948922634125, + "Top": 0.17593315243721008 + }, + "Polygon": [ + { + "X": 0.14420948922634125, + "Y": 0.17605268955230713 + }, + { + "X": 0.2432241290807724, + "Y": 0.17593315243721008 + }, + { + "X": 0.24323782324790955, + "Y": 0.18585631251335144 + }, + { + "X": 0.14422284066677094, + "Y": 0.1859755665063858 + } + ] + }, + "Confidence": 97.8727798461914 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "CITY", + "Confidence": 70.63086700439453 + }, + "ValueDetection": { + "Text": "SASKATOON,", + "Geometry": { + "BoundingBox": { + "Width": 0.09690607339143753, + "Height": 0.010468009859323502, + "Left": 0.14422833919525146, + "Top": 0.18995565176010132 + }, + "Polygon": [ + { + "X": 0.14422833919525146, + "Y": 0.19007223844528198 + }, + { + "X": 0.2411201447248459, + "Y": 0.18995565176010132 + }, + { + "X": 0.2411344200372696, + "Y": 0.20030738413333893 + }, + { + "X": 0.14424225687980652, + "Y": 0.20042367279529572 + } + ] + }, + "Confidence": 99.9671401977539 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "STATE", + "Confidence": 70.63086700439453 + }, + "ValueDetection": { + "Text": "SK", + "Geometry": { + "BoundingBox": { + "Width": 0.019103221595287323, + "Height": 0.009082181379199028, + "Left": 0.2464296668767929, + "Top": 0.18992629647254944 + }, + "Polygon": [ + { + "X": 0.2464296668767929, + "Y": 0.18994927406311035 + }, + { + "X": 0.265520304441452, + "Y": 0.18992629647254944 + }, + { + "X": 0.26553288102149963, + "Y": 0.19898556172847748 + }, + { + "X": 0.24644216895103455, + "Y": 0.19900847971439362 + } + ] + }, + "Confidence": 99.92793273925781 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "ZIP_CODE", + "Confidence": 70.63086700439453 + }, + "ValueDetection": { + "Text": "S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.059516146779060364, + "Height": 0.009277674369513988, + "Left": 0.275488018989563, + "Top": 0.18984271585941315 + }, + "Polygon": [ + { + "X": 0.275488018989563, + "Y": 0.1899143010377884 + }, + { + "X": 0.3349911570549011, + "Y": 0.18984271585941315 + }, + { + "X": 0.33500415086746216, + "Y": 0.1990489512681961 + }, + { + "X": 0.2755008339881897, + "Y": 0.1991203874349594 + } + ] + }, + "Confidence": 92.89834594726562 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "NAME", + "Confidence": 68.6081771850586 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17456044256687164, + "Height": 0.009859640151262283, + "Left": 0.14396999776363373, + "Top": 0.16251373291015625 + }, + "Polygon": [ + { + "X": 0.14396999776363373, + "Y": 0.16272512078285217 + }, + { + "X": 0.3185168504714966, + "Y": 0.16251373291015625 + }, + { + "X": 0.31853044033050537, + "Y": 0.17216245830059052 + }, + { + "X": 0.14398296177387238, + "Y": 0.17237336933612823 + } + ] + }, + "Confidence": 68.59736633300781 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "ADDRESS_BLOCK", + "Confidence": 68.6081771850586 + }, + "ValueDetection": { + "Text": "90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.19079628586769104, + "Height": 0.024601269513368607, + "Left": 0.14420948922634125, + "Top": 0.1758223921060562 + }, + "Polygon": [ + { + "X": 0.14420948922634125, + "Y": 0.17605268955230713 + }, + { + "X": 0.3349713683128357, + "Y": 0.1758223921060562 + }, + { + "X": 0.3350057899951935, + "Y": 0.20019471645355225 + }, + { + "X": 0.14424225687980652, + "Y": 0.20042367279529572 + } + ] + }, + "Confidence": 97.28291320800781 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_BILL_TO" + ], + "Id": "3151c8ca-13de-499d-a96d-7366af197804" + } + ] + }, + { + "Type": { + "Text": "ADDRESS", + "Confidence": 98.7428207397461 + }, + "LabelDetection": { + "Text": "Ship To:", + "Geometry": { + "BoundingBox": { + "Width": 0.05652110278606415, + "Height": 0.011458666063845158, + "Left": 0.6762433052062988, + "Top": 0.13563260436058044 + }, + "Polygon": [ + { + "X": 0.6762433052062988, + "Y": 0.1357014775276184 + }, + { + "X": 0.7327467799186707, + "Y": 0.13563260436058044 + }, + { + "X": 0.7327644228935242, + "Y": 0.14702259004116058 + }, + { + "X": 0.676260769367218, + "Y": 0.14709126949310303 + } + ] + }, + "Confidence": 98.69409942626953 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY\n90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.1909681111574173, + "Height": 0.037974681705236435, + "Left": 0.6756955981254578, + "Top": 0.14896684885025024 + }, + "Polygon": [ + { + "X": 0.6756955981254578, + "Y": 0.14919878542423248 + }, + { + "X": 0.8666033148765564, + "Y": 0.14896684885025024 + }, + { + "X": 0.8666636943817139, + "Y": 0.18671169877052307 + }, + { + "X": 0.6757534146308899, + "Y": 0.18694153428077698 + } + ] + }, + "Confidence": 97.3016586303711 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "STREET", + "Confidence": 98.7428207397461 + }, + "ValueDetection": { + "Text": "90 33RD ST E", + "Geometry": { + "BoundingBox": { + "Width": 0.09980809688568115, + "Height": 0.010079093277454376, + "Left": 0.6763015985488892, + "Top": 0.16226941347122192 + }, + "Polygon": [ + { + "X": 0.6763015985488892, + "Y": 0.16239026188850403 + }, + { + "X": 0.7760940790176392, + "Y": 0.16226941347122192 + }, + { + "X": 0.7761096954345703, + "Y": 0.17222794890403748 + }, + { + "X": 0.6763168573379517, + "Y": 0.1723485141992569 + } + ] + }, + "Confidence": 99.33981323242188 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "CITY", + "Confidence": 98.7428207397461 + }, + "ValueDetection": { + "Text": "SASKATOON,", + "Geometry": { + "BoundingBox": { + "Width": 0.09707306325435638, + "Height": 0.010646124370396137, + "Left": 0.6763231158256531, + "Top": 0.1762946993112564 + }, + "Polygon": [ + { + "X": 0.6763231158256531, + "Y": 0.17641185224056244 + }, + { + "X": 0.7733796834945679, + "Y": 0.1762946993112564 + }, + { + "X": 0.7733961343765259, + "Y": 0.1868239790201187 + }, + { + "X": 0.6763392090797424, + "Y": 0.18694083392620087 + } + ] + }, + "Confidence": 99.99335479736328 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "STATE", + "Confidence": 98.7428207397461 + }, + "ValueDetection": { + "Text": "SK", + "Geometry": { + "BoundingBox": { + "Width": 0.018407918512821198, + "Height": 0.009218666702508926, + "Left": 0.7795579433441162, + "Top": 0.17626504600048065 + }, + "Polygon": [ + { + "X": 0.7795579433441162, + "Y": 0.17628724873065948 + }, + { + "X": 0.7979514002799988, + "Y": 0.17626504600048065 + }, + { + "X": 0.7979658842086792, + "Y": 0.18546156585216522 + }, + { + "X": 0.7795723676681519, + "Y": 0.18548370897769928 + } + ] + }, + "Confidence": 99.95419311523438 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "ZIP_CODE", + "Confidence": 98.7428207397461 + }, + "ValueDetection": { + "Text": "S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.05842578783631325, + "Height": 0.01026479434221983, + "Left": 0.8076213002204895, + "Top": 0.17518126964569092 + }, + "Polygon": [ + { + "X": 0.8076213002204895, + "Y": 0.1752517819404602 + }, + { + "X": 0.866030752658844, + "Y": 0.17518126964569092 + }, + { + "X": 0.8660470843315125, + "Y": 0.18537572026252747 + }, + { + "X": 0.8076373934745789, + "Y": 0.18544606864452362 + } + ] + }, + "Confidence": 92.58487701416016 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "NAME", + "Confidence": 96.88468933105469 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17445150017738342, + "Height": 0.009960491210222244, + "Left": 0.6758216023445129, + "Top": 0.1487675905227661 + }, + "Polygon": [ + { + "X": 0.6758216023445129, + "Y": 0.14897951483726501 + }, + { + "X": 0.8502575159072876, + "Y": 0.1487675905227661 + }, + { + "X": 0.850273072719574, + "Y": 0.15851664543151855 + }, + { + "X": 0.6758365035057068, + "Y": 0.15872807800769806 + } + ] + }, + "Confidence": 96.84781646728516 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "ADDRESS_BLOCK", + "Confidence": 96.88468933105469 + }, + "ValueDetection": { + "Text": "90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.18974758684635162, + "Height": 0.024780306965112686, + "Left": 0.6763015985488892, + "Top": 0.16216051578521729 + }, + "Polygon": [ + { + "X": 0.6763015985488892, + "Y": 0.16239026188850403 + }, + { + "X": 0.8660099506378174, + "Y": 0.16216051578521729 + }, + { + "X": 0.8660492300987244, + "Y": 0.18671244382858276 + }, + { + "X": 0.6763392090797424, + "Y": 0.18694083392620087 + } + ] + }, + "Confidence": 97.76829528808594 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "RECEIVER_SHIP_TO" + ], + "Id": "031d4de6-57bc-4289-b49c-6dd792957fd5" + } + ] + }, + { + "Type": { + "Text": "ADDRESS", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "SASKATOON SK\n705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "Geometry": { + "BoundingBox": { + "Width": 0.13106030225753784, + "Height": 0.025918669998645782, + "Left": 0.1800866425037384, + "Top": 0.03365369141101837 + }, + "Polygon": [ + { + "X": 0.1800866425037384, + "Y": 0.03381729871034622 + }, + { + "X": 0.31111079454421997, + "Y": 0.03365369141101837 + }, + { + "X": 0.31114694476127625, + "Y": 0.0594097338616848 + }, + { + "X": 0.18012161552906036, + "Y": 0.059572361409664154 + } + ] + }, + "Confidence": 93.72879028320312 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "STREET", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "705-43RD STREET EAST", + "Geometry": { + "BoundingBox": { + "Width": 0.11680054664611816, + "Height": 0.0072342283092439175, + "Left": 0.18009887635707855, + "Top": 0.04268350452184677 + }, + "Polygon": [ + { + "X": 0.18009887635707855, + "Y": 0.042829032987356186 + }, + { + "X": 0.2968895137310028, + "Y": 0.04268350452184677 + }, + { + "X": 0.2968994379043579, + "Y": 0.04977244883775711 + }, + { + "X": 0.18010850250720978, + "Y": 0.049917735159397125 + } + ] + }, + "Confidence": 97.9238052368164 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "CITY", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "SASKATOON", + "Geometry": { + "BoundingBox": { + "Width": 0.06550861150026321, + "Height": 0.007812975905835629, + "Left": 0.1801111102104187, + "Top": 0.05175938457250595 + }, + "Polygon": [ + { + "X": 0.1801111102104187, + "Y": 0.051840826869010925 + }, + { + "X": 0.24560905992984772, + "Y": 0.05175938457250595 + }, + { + "X": 0.2456197291612625, + "Y": 0.05949106439948082 + }, + { + "X": 0.18012161552906036, + "Y": 0.059572361409664154 + } + ] + }, + "Confidence": 99.35079956054688 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "STATE", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "SK", + "Geometry": { + "BoundingBox": { + "Width": 0.013740685768425465, + "Height": 0.007118674460798502, + "Left": 0.24824276566505432, + "Top": 0.05173903703689575 + }, + "Polygon": [ + { + "X": 0.24824276566505432, + "Y": 0.0517561100423336 + }, + { + "X": 0.2619735896587372, + "Y": 0.05173903703689575 + }, + { + "X": 0.2619834542274475, + "Y": 0.058840665966272354 + }, + { + "X": 0.24825257062911987, + "Y": 0.058857712894678116 + } + ] + }, + "Confidence": 99.2448501586914 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "ZIP_CODE", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "S7K 0V7", + "Geometry": { + "BoundingBox": { + "Width": 0.04286394640803337, + "Height": 0.007062677759677172, + "Left": 0.2682819962501526, + "Top": 0.05167790502309799 + }, + "Polygon": [ + { + "X": 0.2682819962501526, + "Y": 0.05173119157552719 + }, + { + "X": 0.3111360967159271, + "Y": 0.05167790502309799 + }, + { + "X": 0.31114593148231506, + "Y": 0.05868738517165184 + }, + { + "X": 0.26829174160957336, + "Y": 0.058740586042404175 + } + ] + }, + "Confidence": 80.69967651367188 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "ADDRESS_BLOCK", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "Geometry": { + "BoundingBox": { + "Width": 0.1310480684041977, + "Height": 0.01690659113228321, + "Left": 0.18009887635707855, + "Top": 0.042665768414735794 + }, + "Polygon": [ + { + "X": 0.18009887635707855, + "Y": 0.042829032987356186 + }, + { + "X": 0.31112346053123474, + "Y": 0.042665768414735794 + }, + { + "X": 0.31114694476127625, + "Y": 0.0594097338616848 + }, + { + "X": 0.18012161552906036, + "Y": 0.059572361409664154 + } + ] + }, + "Confidence": 92.97747039794922 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "b29bf91d-310b-4ca8-8514-6448ac94ca14" + } + ] + }, + { + "Type": { + "Text": "NAME", + "Confidence": 99.41117095947266 + }, + "ValueDetection": { + "Text": "KEYSTONE", + "Geometry": { + "BoundingBox": { + "Width": 0.08066119253635406, + "Height": 0.008651877753436565, + "Left": 0.04952796548604965, + "Top": 0.06283125281333923 + }, + "Polygon": [ + { + "X": 0.04952796548604965, + "Y": 0.06293128430843353 + }, + { + "X": 0.13017769157886505, + "Y": 0.06283125281333923 + }, + { + "X": 0.13018915057182312, + "Y": 0.07138331234455109 + }, + { + "X": 0.04953917860984802, + "Y": 0.07148313522338867 + } + ] + }, + "Confidence": 99.3313217163086 + }, + "PageNumber": 1, + "GroupProperties": [ + { + "Types": [ + "VENDOR" + ], + "Id": "e4454574-e3b1-4f08-a7aa-93801706e822" + } + ] + }, + { + "Type": { + "Text": "AMOUNT_PAID", + "Confidence": 77.82003021240234 + }, + "LabelDetection": { + "Text": "DEPOSIT\nAMOUNT", + "Geometry": { + "BoundingBox": { + "Width": 0.059126850217580795, + "Height": 0.020495671778917313, + "Left": 0.6911165714263916, + "Top": 0.8430050611495972 + }, + "Polygon": [ + { + "X": 0.6911165714263916, + "Y": 0.8430649042129517 + }, + { + "X": 0.7502115964889526, + "Y": 0.8430050611495972 + }, + { + "X": 0.7502434253692627, + "Y": 0.8634412288665771 + }, + { + "X": 0.6911479830741882, + "Y": 0.863500714302063 + } + ] + }, + "Confidence": 77.8528060913086 + }, + "ValueDetection": { + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03606702387332916, + "Height": 0.01042898092418909, + "Left": 0.7248664498329163, + "Top": 0.8767009377479553 + }, + "Polygon": [ + { + "X": 0.7248664498329163, + "Y": 0.876737117767334 + }, + { + "X": 0.7609172463417053, + "Y": 0.8767009377479553 + }, + { + "X": 0.7609334588050842, + "Y": 0.8870939016342163 + }, + { + "X": 0.7248825430870056, + "Y": 0.8871299028396606 + } + ] + }, + "Confidence": 77.86592102050781 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "INVOICE_RECEIPT_DATE", + "Confidence": 99.92425537109375 + }, + "LabelDetection": { + "Text": "DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.04013612121343613, + "Height": 0.009255017153918743, + "Left": 0.6841368079185486, + "Top": 0.0622420459985733 + }, + "Polygon": [ + { + "X": 0.6841368079185486, + "Y": 0.06229180842638016 + }, + { + "X": 0.7242586612701416, + "Y": 0.0622420459985733 + }, + { + "X": 0.7242729067802429, + "Y": 0.07144740968942642 + }, + { + "X": 0.6841509342193604, + "Y": 0.07149706780910492 + } + ] + }, + "Confidence": 99.90900421142578 + }, + "ValueDetection": { + "Text": "10/17/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06395544856786728, + "Height": 0.009740135632455349, + "Left": 0.8047131896018982, + "Top": 0.06128028780221939 + }, + "Polygon": [ + { + "X": 0.8047131896018982, + "Y": 0.061359599232673645 + }, + { + "X": 0.8686531782150269, + "Y": 0.06128028780221939 + }, + { + "X": 0.8686686754226685, + "Y": 0.07094129174947739 + }, + { + "X": 0.8047284483909607, + "Y": 0.07102042436599731 + } + ] + }, + "Confidence": 99.88623046875 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "INVOICE_RECEIPT_ID", + "Confidence": 99.86983489990234 + }, + "LabelDetection": { + "Text": "Invoice#", + "Geometry": { + "BoundingBox": { + "Width": 0.05752210319042206, + "Height": 0.009569071233272552, + "Left": 0.6832658648490906, + "Top": 0.03172783926129341 + }, + "Polygon": [ + { + "X": 0.6832658648490906, + "Y": 0.031799670308828354 + }, + { + "X": 0.7407732009887695, + "Y": 0.03172783926129341 + }, + { + "X": 0.7407879829406738, + "Y": 0.041225239634513855 + }, + { + "X": 0.6832804083824158, + "Y": 0.041296910494565964 + } + ] + }, + "Confidence": 99.82084655761719 + }, + "ValueDetection": { + "Text": "SS148046", + "Geometry": { + "BoundingBox": { + "Width": 0.07445497810840607, + "Height": 0.009977882727980614, + "Left": 0.8036218881607056, + "Top": 0.030688954517245293 + }, + "Polygon": [ + { + "X": 0.8036218881607056, + "Y": 0.030781954526901245 + }, + { + "X": 0.8780609965324402, + "Y": 0.030688954517245293 + }, + { + "X": 0.8780768513679504, + "Y": 0.040574051439762115 + }, + { + "X": 0.8036375045776367, + "Y": 0.040666837245225906 + } + ] + }, + "Confidence": 99.59791564941406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "TAX_PAYER_ID", + "Confidence": 94.22247314453125 + }, + "LabelDetection": { + "Text": "GST", + "Geometry": { + "BoundingBox": { + "Width": 0.02009122259914875, + "Height": 0.0067952475510537624, + "Left": 0.13085518777370453, + "Top": 0.11180588603019714 + }, + "Polygon": [ + { + "X": 0.13085518777370453, + "Y": 0.11183050274848938 + }, + { + "X": 0.1509372889995575, + "Y": 0.11180588603019714 + }, + { + "X": 0.15094640851020813, + "Y": 0.1185765489935875 + }, + { + "X": 0.13086426258087158, + "Y": 0.11860113590955734 + } + ] + }, + "Confidence": 94.14836120605469 + }, + "ValueDetection": { + "Text": "88221 4026", + "Geometry": { + "BoundingBox": { + "Width": 0.06000582501292229, + "Height": 0.006937920581549406, + "Left": 0.153517946600914, + "Top": 0.11167186498641968 + }, + "Polygon": [ + { + "X": 0.153517946600914, + "Y": 0.1117454245686531 + }, + { + "X": 0.21351437270641327, + "Y": 0.11167186498641968 + }, + { + "X": 0.2135237753391266, + "Y": 0.11853635311126709 + }, + { + "X": 0.15352720022201538, + "Y": 0.11860978603363037 + } + ] + }, + "Confidence": 93.46067810058594 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "TAX_PAYER_ID", + "Confidence": 74.12191009521484 + }, + "LabelDetection": { + "Text": "QST", + "Geometry": { + "BoundingBox": { + "Width": 0.020709330216050148, + "Height": 0.0069014644250273705, + "Left": 0.2497818022966385, + "Top": 0.11149333417415619 + }, + "Polygon": [ + { + "X": 0.2497818022966385, + "Y": 0.11151871830224991 + }, + { + "X": 0.27048158645629883, + "Y": 0.11149333417415619 + }, + { + "X": 0.2704911231994629, + "Y": 0.11836946755647659 + }, + { + "X": 0.24979129433631897, + "Y": 0.11839479953050613 + } + ] + }, + "Confidence": 73.99639129638672 + }, + "ValueDetection": { + "Text": "1021981903", + "Geometry": { + "BoundingBox": { + "Width": 0.0633668601512909, + "Height": 0.007141560316085815, + "Left": 0.2738517224788666, + "Top": 0.1112215518951416 + }, + "Polygon": [ + { + "X": 0.2738517224788666, + "Y": 0.11129923909902573 + }, + { + "X": 0.33720862865448, + "Y": 0.1112215518951416 + }, + { + "X": 0.33721858263015747, + "Y": 0.11828556656837463 + }, + { + "X": 0.2738615572452545, + "Y": 0.11836311966180801 + } + ] + }, + "Confidence": 73.94054412841797 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "TAX_PAYER_ID", + "Confidence": 67.32154846191406 + }, + "LabelDetection": { + "Text": "GST/HST", + "Geometry": { + "BoundingBox": { + "Width": 0.05738966912031174, + "Height": 0.00858708843588829, + "Left": 0.4898292124271393, + "Top": 0.8492273092269897 + }, + "Polygon": [ + { + "X": 0.4898292124271393, + "Y": 0.8492853045463562 + }, + { + "X": 0.5472062230110168, + "Y": 0.8492273092269897 + }, + { + "X": 0.547218918800354, + "Y": 0.8577565550804138 + }, + { + "X": 0.4898417294025421, + "Y": 0.8578144311904907 + } + ] + }, + "Confidence": 66.80767822265625 + }, + "ValueDetection": { + "Text": "24.64", + "Geometry": { + "BoundingBox": { + "Width": 0.04649704694747925, + "Height": 0.010432282462716103, + "Left": 0.5337609052658081, + "Top": 0.8771160840988159 + }, + "Polygon": [ + { + "X": 0.5337609052658081, + "Y": 0.8771626949310303 + }, + { + "X": 0.580242395401001, + "Y": 0.8771160840988159 + }, + { + "X": 0.5802579522132874, + "Y": 0.8875018954277039 + }, + { + "X": 0.5337762832641602, + "Y": 0.8875483870506287 + } + ] + }, + "Confidence": 67.21234893798828 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "VENDOR_GST_NUMBER", + "Confidence": 94.22247314453125 + }, + "LabelDetection": { + "Text": "GST", + "Geometry": { + "BoundingBox": { + "Width": 0.02009122259914875, + "Height": 0.0067952475510537624, + "Left": 0.13085518777370453, + "Top": 0.11180588603019714 + }, + "Polygon": [ + { + "X": 0.13085518777370453, + "Y": 0.11183050274848938 + }, + { + "X": 0.1509372889995575, + "Y": 0.11180588603019714 + }, + { + "X": 0.15094640851020813, + "Y": 0.1185765489935875 + }, + { + "X": 0.13086426258087158, + "Y": 0.11860113590955734 + } + ] + }, + "Confidence": 94.14836120605469 + }, + "ValueDetection": { + "Text": "88221 4026", + "Geometry": { + "BoundingBox": { + "Width": 0.06000582501292229, + "Height": 0.006937920581549406, + "Left": 0.153517946600914, + "Top": 0.11167186498641968 + }, + "Polygon": [ + { + "X": 0.153517946600914, + "Y": 0.1117454245686531 + }, + { + "X": 0.21351437270641327, + "Y": 0.11167186498641968 + }, + { + "X": 0.2135237753391266, + "Y": 0.11853635311126709 + }, + { + "X": 0.15352720022201538, + "Y": 0.11860978603363037 + } + ] + }, + "Confidence": 93.46067810058594 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "ORDER_DATE", + "Confidence": 99.97838592529297 + }, + "LabelDetection": { + "Text": "ORDER DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.08378192782402039, + "Height": 0.008748191408813, + "Left": 0.16373082995414734, + "Top": 0.24440789222717285 + }, + "Polygon": [ + { + "X": 0.16373082995414734, + "Y": 0.24450735747814178 + }, + { + "X": 0.24750080704689026, + "Y": 0.24440789222717285 + }, + { + "X": 0.24751275777816772, + "Y": 0.2530568242073059 + }, + { + "X": 0.1637425273656845, + "Y": 0.2531560957431793 + } + ] + }, + "Confidence": 99.83074951171875 + }, + "ValueDetection": { + "Text": "10/07/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06422240287065506, + "Height": 0.009923442266881466, + "Left": 0.1710686832666397, + "Top": 0.2563275694847107 + }, + "Polygon": [ + { + "X": 0.1710686832666397, + "Y": 0.2564035952091217 + }, + { + "X": 0.23527753353118896, + "Y": 0.2563275694847107 + }, + { + "X": 0.23529109358787537, + "Y": 0.26617521047592163 + }, + { + "X": 0.1710820198059082, + "Y": 0.2662510275840759 + } + ] + }, + "Confidence": 99.92405700683594 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "PO_NUMBER", + "Confidence": 99.5051040649414 + }, + "LabelDetection": { + "Text": "CUSTOMER P/O NUMBER", + "Geometry": { + "BoundingBox": { + "Width": 0.15917867422103882, + "Height": 0.009415660984814167, + "Left": 0.4287773072719574, + "Top": 0.2428331971168518 + }, + "Polygon": [ + { + "X": 0.4287773072719574, + "Y": 0.24302223324775696 + }, + { + "X": 0.5879421234130859, + "Y": 0.2428331971168518 + }, + { + "X": 0.5879559516906738, + "Y": 0.25206026434898376 + }, + { + "X": 0.4287906289100647, + "Y": 0.2522488534450531 + } + ] + }, + "Confidence": 99.4083023071289 + }, + "ValueDetection": { + "Text": "42719", + "Geometry": { + "BoundingBox": { + "Width": 0.0469294972717762, + "Height": 0.009435637854039669, + "Left": 0.43650683760643005, + "Top": 0.25555619597435 + }, + "Polygon": [ + { + "X": 0.43650683760643005, + "Y": 0.25561171770095825 + }, + { + "X": 0.4834226071834564, + "Y": 0.25555619597435 + }, + { + "X": 0.48343634605407715, + "Y": 0.2649364173412323 + }, + { + "X": 0.43652042746543884, + "Y": 0.264991819858551 + } + ] + }, + "Confidence": 99.45124053955078 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "PAYMENT_TERMS", + "Confidence": 99.65811157226562 + }, + "LabelDetection": { + "Text": "PAYMENT TERMS", + "Geometry": { + "BoundingBox": { + "Width": 0.11343494802713394, + "Height": 0.009088623337447643, + "Left": 0.6728872060775757, + "Top": 0.2417142391204834 + }, + "Polygon": [ + { + "X": 0.6728872060775757, + "Y": 0.24184896051883698 + }, + { + "X": 0.7863080501556396, + "Y": 0.2417142391204834 + }, + { + "X": 0.7863221168518066, + "Y": 0.25066840648651123 + }, + { + "X": 0.672900915145874, + "Y": 0.2508028447628021 + } + ] + }, + "Confidence": 98.18521118164062 + }, + "ValueDetection": { + "Text": "2%15th-Net30thP", + "Geometry": { + "BoundingBox": { + "Width": 0.12754637002944946, + "Height": 0.009538604877889156, + "Left": 0.6810029149055481, + "Top": 0.2541484236717224 + }, + "Polygon": [ + { + "X": 0.6810029149055481, + "Y": 0.25429946184158325 + }, + { + "X": 0.8085345029830933, + "Y": 0.2541484236717224 + }, + { + "X": 0.8085492849349976, + "Y": 0.26353636384010315 + }, + { + "X": 0.6810173392295837, + "Y": 0.26368704438209534 + } + ] + }, + "Confidence": 96.6642074584961 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_ADDRESS", + "Confidence": 70.63086700439453 + }, + "LabelDetection": { + "Text": "BILL TO", + "Geometry": { + "BoundingBox": { + "Width": 0.048354372382164, + "Height": 0.00852169282734394, + "Left": 0.1312086135149002, + "Top": 0.12241477519273758 + }, + "Polygon": [ + { + "X": 0.1312086135149002, + "Y": 0.12247389554977417 + }, + { + "X": 0.17955149710178375, + "Y": 0.12241477519273758 + }, + { + "X": 0.1795629858970642, + "Y": 0.13087746500968933 + }, + { + "X": 0.13121995329856873, + "Y": 0.13093647360801697 + } + ] + }, + "Confidence": 70.790283203125 + }, + "ValueDetection": { + "Text": "PST: 3013675\n180757\nCSN KAVIA AUTO BODY\n90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.19152547419071198, + "Height": 0.06343784183263779, + "Left": 0.1434803009033203, + "Top": 0.136986643075943 + }, + "Polygon": [ + { + "X": 0.1434803009033203, + "Y": 0.13721992075443268 + }, + { + "X": 0.33491653203964233, + "Y": 0.136986643075943 + }, + { + "X": 0.3350057899951935, + "Y": 0.20019471645355225 + }, + { + "X": 0.14356528222560883, + "Y": 0.20042447745800018 + } + ] + }, + "Confidence": 69.82979583740234 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_ADDRESS", + "Confidence": 98.7428207397461 + }, + "LabelDetection": { + "Text": "Ship To:", + "Geometry": { + "BoundingBox": { + "Width": 0.05652110278606415, + "Height": 0.011458666063845158, + "Left": 0.6762433052062988, + "Top": 0.13563260436058044 + }, + "Polygon": [ + { + "X": 0.6762433052062988, + "Y": 0.1357014775276184 + }, + { + "X": 0.7327467799186707, + "Y": 0.13563260436058044 + }, + { + "X": 0.7327644228935242, + "Y": 0.14702259004116058 + }, + { + "X": 0.676260769367218, + "Y": 0.14709126949310303 + } + ] + }, + "Confidence": 98.69409942626953 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY\n90 33RD ST E\nSASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.1909681111574173, + "Height": 0.037974681705236435, + "Left": 0.6756955981254578, + "Top": 0.14896684885025024 + }, + "Polygon": [ + { + "X": 0.6756955981254578, + "Y": 0.14919878542423248 + }, + { + "X": 0.8666033148765564, + "Y": 0.14896684885025024 + }, + { + "X": 0.8666636943817139, + "Y": 0.18671169877052307 + }, + { + "X": 0.6757534146308899, + "Y": 0.18694153428077698 + } + ] + }, + "Confidence": 97.3016586303711 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_ADDRESS", + "Confidence": 98.88475036621094 + }, + "LabelDetection": { + "Text": "SHIP TO", + "Geometry": { + "BoundingBox": { + "Width": 0.052185267210006714, + "Height": 0.00879896990954876, + "Left": 0.6645111441612244, + "Top": 0.11968070268630981 + }, + "Polygon": [ + { + "X": 0.6645111441612244, + "Y": 0.11974453181028366 + }, + { + "X": 0.7166829109191895, + "Y": 0.11968070268630981 + }, + { + "X": 0.7166964411735535, + "Y": 0.12841597199440002 + }, + { + "X": 0.664524495601654, + "Y": 0.12847967445850372 + } + ] + }, + "Confidence": 98.42448425292969 + }, + "ValueDetection": { + "Text": "", + "Confidence": 98.42448425292969 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_NAME", + "Confidence": 96.88468933105469 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17445150017738342, + "Height": 0.009960491210222244, + "Left": 0.6758216023445129, + "Top": 0.1487675905227661 + }, + "Polygon": [ + { + "X": 0.6758216023445129, + "Y": 0.14897951483726501 + }, + { + "X": 0.8502575159072876, + "Y": 0.1487675905227661 + }, + { + "X": 0.850273072719574, + "Y": 0.15851664543151855 + }, + { + "X": 0.6758365035057068, + "Y": 0.15872807800769806 + } + ] + }, + "Confidence": 96.84781646728516 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_NAME", + "Confidence": 68.6081771850586 + }, + "ValueDetection": { + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17456044256687164, + "Height": 0.009859640151262283, + "Left": 0.14396999776363373, + "Top": 0.16251373291015625 + }, + "Polygon": [ + { + "X": 0.14396999776363373, + "Y": 0.16272512078285217 + }, + { + "X": 0.3185168504714966, + "Y": 0.16251373291015625 + }, + { + "X": 0.31853044033050537, + "Y": 0.17216245830059052 + }, + { + "X": 0.14398296177387238, + "Y": 0.17237336933612823 + } + ] + }, + "Confidence": 68.59736633300781 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_PHONE", + "Confidence": 98.63075256347656 + }, + "ValueDetection": { + "Text": "306-242-2733", + "Geometry": { + "BoundingBox": { + "Width": 0.1031409204006195, + "Height": 0.009894818998873234, + "Left": 0.144571453332901, + "Top": 0.2033212035894394 + }, + "Polygon": [ + { + "X": 0.144571453332901, + "Y": 0.20344488322734833 + }, + { + "X": 0.24769887328147888, + "Y": 0.2033212035894394 + }, + { + "X": 0.2477123737335205, + "Y": 0.213092640042305 + }, + { + "X": 0.14458459615707397, + "Y": 0.21321602165699005 + } + ] + }, + "Confidence": 98.57432556152344 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_PHONE", + "Confidence": 89.62075805664062 + }, + "ValueDetection": { + "Text": "306-242-2733", + "Geometry": { + "BoundingBox": { + "Width": 0.10368981212377548, + "Height": 0.009478895924985409, + "Left": 0.676652729511261, + "Top": 0.18976284563541412 + }, + "Polygon": [ + { + "X": 0.676652729511261, + "Y": 0.18988758325576782 + }, + { + "X": 0.7803278565406799, + "Y": 0.18976284563541412 + }, + { + "X": 0.7803425192832947, + "Y": 0.19911730289459229 + }, + { + "X": 0.6766670346260071, + "Y": 0.1992417424917221 + } + ] + }, + "Confidence": 89.59769439697266 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "RECEIVER_PHONE", + "Confidence": 72.74064636230469 + }, + "ValueDetection": { + "Text": "306-657-4784,", + "Geometry": { + "BoundingBox": { + "Width": 0.10794304311275482, + "Height": 0.01045873574912548, + "Left": 0.5280153751373291, + "Top": 0.29728129506111145 + }, + "Polygon": [ + { + "X": 0.5280153751373291, + "Y": 0.29740774631500244 + }, + { + "X": 0.6359426975250244, + "Y": 0.29728129506111145 + }, + { + "X": 0.6359584331512451, + "Y": 0.30761387944221497 + }, + { + "X": 0.5280306339263916, + "Y": 0.3077400028705597 + } + ] + }, + "Confidence": 72.60002136230469 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "SHIPPING_HANDLING_CHARGE", + "Confidence": 95.6107406616211 + }, + "LabelDetection": { + "Text": "FREIGHT", + "Geometry": { + "BoundingBox": { + "Width": 0.05472834035754204, + "Height": 0.00849450845271349, + "Left": 0.6028247475624084, + "Top": 0.8490623235702515 + }, + "Polygon": [ + { + "X": 0.6028247475624084, + "Y": 0.849117636680603 + }, + { + "X": 0.6575402021408081, + "Y": 0.8490623235702515 + }, + { + "X": 0.6575530767440796, + "Y": 0.8575016260147095 + }, + { + "X": 0.6028374433517456, + "Y": 0.8575568199157715 + } + ] + }, + "Confidence": 95.56483459472656 + }, + "ValueDetection": { + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03629852458834648, + "Height": 0.010335724800825119, + "Left": 0.6387216448783875, + "Top": 0.876995861530304 + }, + "Polygon": [ + { + "X": 0.6387216448783875, + "Y": 0.8770322203636169 + }, + { + "X": 0.6750043630599976, + "Y": 0.876995861530304 + }, + { + "X": 0.675020158290863, + "Y": 0.8872953057289124 + }, + { + "X": 0.6387372612953186, + "Y": 0.8873316049575806 + } + ] + }, + "Confidence": 95.58624267578125 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "SUBTOTAL", + "Confidence": 92.03809356689453 + }, + "LabelDetection": { + "Text": "TOTAL", + "Geometry": { + "BoundingBox": { + "Width": 0.04443163052201271, + "Height": 0.008280793204903603, + "Left": 0.08035657554864883, + "Top": 0.8555849194526672 + }, + "Polygon": [ + { + "X": 0.08035657554864883, + "Y": 0.8556298017501831 + }, + { + "X": 0.12477719038724899, + "Y": 0.8555849194526672 + }, + { + "X": 0.12478820234537125, + "Y": 0.8638210296630859 + }, + { + "X": 0.08036746084690094, + "Y": 0.8638657331466675 + } + ] + }, + "Confidence": 92.31369018554688 + }, + "ValueDetection": { + "Text": "487.91", + "Geometry": { + "BoundingBox": { + "Width": 0.05479893833398819, + "Height": 0.010345912538468838, + "Left": 0.10087869316339493, + "Top": 0.8774049878120422 + }, + "Polygon": [ + { + "X": 0.10087869316339493, + "Y": 0.8774598836898804 + }, + { + "X": 0.15566375851631165, + "Y": 0.8774049878120422 + }, + { + "X": 0.15567763149738312, + "Y": 0.8876960873603821 + }, + { + "X": 0.10089237242937088, + "Y": 0.8877508640289307 + } + ] + }, + "Confidence": 92.1504135131836 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "TOTAL", + "Confidence": 99.7182846069336 + }, + "LabelDetection": { + "Text": "INVOICE TOTAL", + "Geometry": { + "BoundingBox": { + "Width": 0.10059063881635666, + "Height": 0.008604212664067745, + "Left": 0.8570010662078857, + "Top": 0.8485700488090515 + }, + "Polygon": [ + { + "X": 0.8570010662078857, + "Y": 0.8486717343330383 + }, + { + "X": 0.9575778245925903, + "Y": 0.8485700488090515 + }, + { + "X": 0.957591712474823, + "Y": 0.8570728302001953 + }, + { + "X": 0.8570146560668945, + "Y": 0.857174277305603 + } + ] + }, + "Confidence": 99.7004165649414 + }, + "ValueDetection": { + "Text": "517.55", + "Geometry": { + "BoundingBox": { + "Width": 0.05628019943833351, + "Height": 0.010413852520287037, + "Left": 0.9034779667854309, + "Top": 0.8764674663543701 + }, + "Polygon": [ + { + "X": 0.9034779667854309, + "Y": 0.8765239119529724 + }, + { + "X": 0.9597412943840027, + "Y": 0.8764674663543701 + }, + { + "X": 0.9597581624984741, + "Y": 0.8868250846862793 + }, + { + "X": 0.903494656085968, + "Y": 0.8868813514709473 + } + ] + }, + "Confidence": 99.68756103515625 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "VENDOR_ADDRESS", + "Confidence": 99.04783630371094 + }, + "ValueDetection": { + "Text": "SASKATOON SK\n705-43RD STREET EAST\nSASKATOON SK S7K 0V7", + "Geometry": { + "BoundingBox": { + "Width": 0.13106030225753784, + "Height": 0.025918669998645782, + "Left": 0.1800866425037384, + "Top": 0.03365369141101837 + }, + "Polygon": [ + { + "X": 0.1800866425037384, + "Y": 0.03381729871034622 + }, + { + "X": 0.31111079454421997, + "Y": 0.03365369141101837 + }, + { + "X": 0.31114694476127625, + "Y": 0.0594097338616848 + }, + { + "X": 0.18012161552906036, + "Y": 0.059572361409664154 + } + ] + }, + "Confidence": 93.72879028320312 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "VENDOR_NAME", + "Confidence": 99.41117095947266 + }, + "ValueDetection": { + "Text": "KEYSTONE", + "Geometry": { + "BoundingBox": { + "Width": 0.08066119253635406, + "Height": 0.008651877753436565, + "Left": 0.04952796548604965, + "Top": 0.06283125281333923 + }, + "Polygon": [ + { + "X": 0.04952796548604965, + "Y": 0.06293128430843353 + }, + { + "X": 0.13017769157886505, + "Y": 0.06283125281333923 + }, + { + "X": 0.13018915057182312, + "Y": 0.07138331234455109 + }, + { + "X": 0.04953917860984802, + "Y": 0.07148313522338867 + } + ] + }, + "Confidence": 99.3313217163086 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "VENDOR_PHONE", + "Confidence": 99.90919494628906 + }, + "LabelDetection": { + "Text": "Phone", + "Geometry": { + "BoundingBox": { + "Width": 0.028255576267838478, + "Height": 0.006811824627220631, + "Left": 0.1805623173713684, + "Top": 0.061468902975320816 + }, + "Polygon": [ + { + "X": 0.1805623173713684, + "Y": 0.06150394678115845 + }, + { + "X": 0.20880863070487976, + "Y": 0.061468902975320816 + }, + { + "X": 0.20881789922714233, + "Y": 0.06824573874473572 + }, + { + "X": 0.180571511387825, + "Y": 0.06828072667121887 + } + ] + }, + "Confidence": 99.76091766357422 + }, + "ValueDetection": { + "Text": "306-955-1619", + "Geometry": { + "BoundingBox": { + "Width": 0.07000607252120972, + "Height": 0.006974639371037483, + "Left": 0.2112383097410202, + "Top": 0.06119547411799431 + }, + "Polygon": [ + { + "X": 0.2112383097410202, + "Y": 0.06128231808543205 + }, + { + "X": 0.2812347710132599, + "Y": 0.06119547411799431 + }, + { + "X": 0.2812443673610687, + "Y": 0.06808341294527054 + }, + { + "X": 0.2112477421760559, + "Y": 0.06817011535167694 + } + ] + }, + "Confidence": 99.81151580810547 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "VENDOR_URL", + "Confidence": 81.86308288574219 + }, + "ValueDetection": { + "Text": "https: //www.lkgcorp.com/LKQ-terms-and-conditions", + "Geometry": { + "BoundingBox": { + "Width": 0.23960578441619873, + "Height": 0.008087849244475365, + "Left": 0.22103425860404968, + "Top": 0.8110593557357788 + }, + "Polygon": [ + { + "X": 0.22103425860404968, + "Y": 0.8113042116165161 + }, + { + "X": 0.4606286287307739, + "Y": 0.8110593557357788 + }, + { + "X": 0.4606400430202484, + "Y": 0.818902850151062 + }, + { + "X": 0.22104501724243164, + "Y": 0.8191471695899963 + } + ] + }, + "Confidence": 81.50306701660156 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.88611602783203 + }, + "LabelDetection": { + "Text": "LOCATION", + "Geometry": { + "BoundingBox": { + "Width": 0.07558699697256088, + "Height": 0.009608403779566288, + "Left": 0.6835150122642517, + "Top": 0.04666052758693695 + }, + "Polygon": [ + { + "X": 0.6835150122642517, + "Y": 0.04675459489226341 + }, + { + "X": 0.7590871453285217, + "Y": 0.04666052758693695 + }, + { + "X": 0.7591020464897156, + "Y": 0.056175075471401215 + }, + { + "X": 0.6835296154022217, + "Y": 0.05626893416047096 + } + ] + }, + "Confidence": 99.85693359375 + }, + "ValueDetection": { + "Text": "561", + "Geometry": { + "BoundingBox": { + "Width": 0.02574155293405056, + "Height": 0.00917207170277834, + "Left": 0.8036235570907593, + "Top": 0.046428222209215164 + }, + "Polygon": [ + { + "X": 0.8036235570907593, + "Y": 0.04646024480462074 + }, + { + "X": 0.8293506503105164, + "Y": 0.046428222209215164 + }, + { + "X": 0.8293651342391968, + "Y": 0.05556833744049072 + }, + { + "X": 0.8036379814147949, + "Y": 0.05560029298067093 + } + ] + }, + "Confidence": 99.82811737060547 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.8923568725586 + }, + "LabelDetection": { + "Text": "Fax", + "Geometry": { + "BoundingBox": { + "Width": 0.016457101330161095, + "Height": 0.006351300980895758, + "Left": 0.1807316690683365, + "Top": 0.07081469893455505 + }, + "Polygon": [ + { + "X": 0.1807316690683365, + "Y": 0.07083506137132645 + }, + { + "X": 0.1971801370382309, + "Y": 0.07081469893455505 + }, + { + "X": 0.19718877971172333, + "Y": 0.07714566588401794 + }, + { + "X": 0.18074026703834534, + "Y": 0.07716599851846695 + } + ] + }, + "Confidence": 99.5902328491211 + }, + "ValueDetection": { + "Text": "306-955-1625", + "Geometry": { + "BoundingBox": { + "Width": 0.06983298063278198, + "Height": 0.006733359303325415, + "Left": 0.20000019669532776, + "Top": 0.07045888155698776 + }, + "Polygon": [ + { + "X": 0.20000019669532776, + "Y": 0.07054532319307327 + }, + { + "X": 0.26982393860816956, + "Y": 0.07045888155698776 + }, + { + "X": 0.26983317732810974, + "Y": 0.07710593938827515 + }, + { + "X": 0.2000092715024948, + "Y": 0.07719223946332932 + } + ] + }, + "Confidence": 99.49503326416016 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.9523696899414 + }, + "LabelDetection": { + "Text": "PAGE", + "Geometry": { + "BoundingBox": { + "Width": 0.039871588349342346, + "Height": 0.009287518449127674, + "Left": 0.684155285358429, + "Top": 0.07756676524877548 + }, + "Polygon": [ + { + "X": 0.684155285358429, + "Y": 0.07761602103710175 + }, + { + "X": 0.724012553691864, + "Y": 0.07756676524877548 + }, + { + "X": 0.7240268588066101, + "Y": 0.08680514246225357 + }, + { + "X": 0.6841694712638855, + "Y": 0.08685428649187088 + } + ] + }, + "Confidence": 99.93114471435547 + }, + "ValueDetection": { + "Text": "1 of 1", + "Geometry": { + "BoundingBox": { + "Width": 0.03876681253314018, + "Height": 0.009216567501425743, + "Left": 0.8047391772270203, + "Top": 0.07685871422290802 + }, + "Polygon": [ + { + "X": 0.8047391772270203, + "Y": 0.07690660655498505 + }, + { + "X": 0.8434913754463196, + "Y": 0.07685871422290802 + }, + { + "X": 0.8435059785842896, + "Y": 0.08602749556303024 + }, + { + "X": 0.8047536611557007, + "Y": 0.08607528358697891 + } + ] + }, + "Confidence": 98.63935089111328 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 89.71572875976562 + }, + "LabelDetection": { + "Text": "PST:", + "Geometry": { + "BoundingBox": { + "Width": 0.021950604394078255, + "Height": 0.007041481323540211, + "Left": 0.1431664079427719, + "Top": 0.13748209178447723 + }, + "Polygon": [ + { + "X": 0.1431664079427719, + "Y": 0.137508824467659 + }, + { + "X": 0.16510751843452454, + "Y": 0.13748209178447723 + }, + { + "X": 0.16511701047420502, + "Y": 0.1444968730211258 + }, + { + "X": 0.14317584037780762, + "Y": 0.14452357590198517 + } + ] + }, + "Confidence": 87.86759948730469 + }, + "ValueDetection": { + "Text": "3013675", + "Geometry": { + "BoundingBox": { + "Width": 0.044266775250434875, + "Height": 0.00722001725807786, + "Left": 0.1676948368549347, + "Top": 0.13738054037094116 + }, + "Polygon": [ + { + "X": 0.1676948368549347, + "Y": 0.1374344676733017 + }, + { + "X": 0.21195180714130402, + "Y": 0.13738054037094116 + }, + { + "X": 0.21196161210536957, + "Y": 0.1445467323064804 + }, + { + "X": 0.1677045226097107, + "Y": 0.14460055530071259 + } + ] + }, + "Confidence": 89.64093017578125 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.71392059326172 + }, + "LabelDetection": { + "Text": "ORDER NUMBER", + "Geometry": { + "BoundingBox": { + "Width": 0.10336653888225555, + "Height": 0.00914031732827425, + "Left": 0.0477241687476635, + "Top": 0.24449346959590912 + }, + "Polygon": [ + { + "X": 0.0477241687476635, + "Y": 0.24461618065834045 + }, + { + "X": 0.15107855200767517, + "Y": 0.24449346959590912 + }, + { + "X": 0.15109071135520935, + "Y": 0.25351133942604065 + }, + { + "X": 0.04773598909378052, + "Y": 0.2536337971687317 + } + ] + }, + "Confidence": 99.66703033447266 + }, + "ValueDetection": { + "Text": "REGO9057", + "Geometry": { + "BoundingBox": { + "Width": 0.07594526559114456, + "Height": 0.009400805458426476, + "Left": 0.05718053877353668, + "Top": 0.25670525431632996 + }, + "Polygon": [ + { + "X": 0.05718053877353668, + "Y": 0.25679513812065125 + }, + { + "X": 0.1331133246421814, + "Y": 0.25670525431632996 + }, + { + "X": 0.13312579691410065, + "Y": 0.2660163938999176 + }, + { + "X": 0.05719277262687683, + "Y": 0.2661060690879822 + } + ] + }, + "Confidence": 99.34066009521484 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.94149017333984 + }, + "LabelDetection": { + "Text": "SALES REP", + "Geometry": { + "BoundingBox": { + "Width": 0.07097568362951279, + "Height": 0.009001017548143864, + "Left": 0.25882837176322937, + "Top": 0.24394167959690094 + }, + "Polygon": [ + { + "X": 0.25882837176322937, + "Y": 0.24402594566345215 + }, + { + "X": 0.32979148626327515, + "Y": 0.24394167959690094 + }, + { + "X": 0.32980406284332275, + "Y": 0.25285860896110535 + }, + { + "X": 0.25884073972702026, + "Y": 0.2529427111148834 + } + ] + }, + "Confidence": 99.74678039550781 + }, + "ValueDetection": { + "Text": "H561/", + "Geometry": { + "BoundingBox": { + "Width": 0.04442339390516281, + "Height": 0.009614268317818642, + "Left": 0.26708266139030457, + "Top": 0.2563098669052124 + }, + "Polygon": [ + { + "X": 0.26708266139030457, + "Y": 0.2563624382019043 + }, + { + "X": 0.3114926218986511, + "Y": 0.2563098669052124 + }, + { + "X": 0.311506062746048, + "Y": 0.26587167382240295 + }, + { + "X": 0.2670959234237671, + "Y": 0.2659241259098053 + } + ] + }, + "Confidence": 99.78422546386719 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.96163177490234 + }, + "LabelDetection": { + "Text": "SHIP DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.06917145848274231, + "Height": 0.008884932845830917, + "Left": 0.04762997850775719, + "Top": 0.27182573080062866 + }, + "Polygon": [ + { + "X": 0.04762997850775719, + "Y": 0.2719072699546814 + }, + { + "X": 0.11678968369960785, + "Y": 0.27182573080062866 + }, + { + "X": 0.1168014332652092, + "Y": 0.2806292474269867 + }, + { + "X": 0.04764151573181152, + "Y": 0.2807106375694275 + } + ] + }, + "Confidence": 99.5842514038086 + }, + "ValueDetection": { + "Text": "10/17/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06441039592027664, + "Height": 0.009111352264881134, + "Left": 0.0515151247382164, + "Top": 0.2849649488925934 + }, + "Polygon": [ + { + "X": 0.0515151247382164, + "Y": 0.28504064679145813 + }, + { + "X": 0.11591345816850662, + "Y": 0.2849649488925934 + }, + { + "X": 0.11592552065849304, + "Y": 0.2940007746219635 + }, + { + "X": 0.051526982337236404, + "Y": 0.2940763235092163 + } + ] + }, + "Confidence": 99.9150390625 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.85800170898438 + }, + "LabelDetection": { + "Text": "WRTN BY CONTACT", + "Geometry": { + "BoundingBox": { + "Width": 0.1412266045808792, + "Height": 0.008905740454792976, + "Left": 0.1290806233882904, + "Top": 0.27175334095954895 + }, + "Polygon": [ + { + "X": 0.1290806233882904, + "Y": 0.2719198763370514 + }, + { + "X": 0.27029508352279663, + "Y": 0.27175334095954895 + }, + { + "X": 0.2703072130680084, + "Y": 0.280492901802063 + }, + { + "X": 0.12909233570098877, + "Y": 0.2806590795516968 + } + ] + }, + "Confidence": 99.80496978759766 + }, + "ValueDetection": { + "Text": "5B72", + "Geometry": { + "BoundingBox": { + "Width": 0.03670686110854149, + "Height": 0.009339122101664543, + "Left": 0.1339246779680252, + "Top": 0.2846733629703522 + }, + "Polygon": [ + { + "X": 0.1339246779680252, + "Y": 0.28471651673316956 + }, + { + "X": 0.1706189513206482, + "Y": 0.2846733629703522 + }, + { + "X": 0.170631542801857, + "Y": 0.29396945238113403 + }, + { + "X": 0.13393715023994446, + "Y": 0.29401248693466187 + } + ] + }, + "Confidence": 99.85342407226562 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 79.1348876953125 + }, + "LabelDetection": { + "Text": "CONTACT", + "Geometry": { + "BoundingBox": { + "Width": 0.06377674639225006, + "Height": 0.008709507994353771, + "Left": 0.20655441284179688, + "Top": 0.27185842394828796 + }, + "Polygon": [ + { + "X": 0.20655441284179688, + "Y": 0.2719336152076721 + }, + { + "X": 0.2703191637992859, + "Y": 0.27185842394828796 + }, + { + "X": 0.27033117413520813, + "Y": 0.2804928719997406 + }, + { + "X": 0.2065662145614624, + "Y": 0.2805679142475128 + } + ] + }, + "Confidence": 79.13421630859375 + }, + "ValueDetection": { + "Text": "*", + "Geometry": { + "BoundingBox": { + "Width": 0.005491184536367655, + "Height": 0.0031850060913711786, + "Left": 0.2150871604681015, + "Top": 0.2859463095664978 + }, + "Polygon": [ + { + "X": 0.2150871604681015, + "Y": 0.28595277667045593 + }, + { + "X": 0.22057397663593292, + "Y": 0.2859463095664978 + }, + { + "X": 0.22057834267616272, + "Y": 0.28912487626075745 + }, + { + "X": 0.2150915116071701, + "Y": 0.2891313135623932 + } + ] + }, + "Confidence": 35.540435791015625 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.5992431640625 + }, + "LabelDetection": { + "Text": "SHIP VIA", + "Geometry": { + "BoundingBox": { + "Width": 0.057273779064416885, + "Height": 0.008758237585425377, + "Left": 0.6730070114135742, + "Top": 0.2696962356567383 + }, + "Polygon": [ + { + "X": 0.6730070114135742, + "Y": 0.2697637677192688 + }, + { + "X": 0.7302672863006592, + "Y": 0.2696962356567383 + }, + { + "X": 0.7302807569503784, + "Y": 0.27838706970214844 + }, + { + "X": 0.6730203032493591, + "Y": 0.278454452753067 + } + ] + }, + "Confidence": 97.38916015625 + }, + "ValueDetection": { + "Text": "COMPANY TRUCK 3561000\nSASKATOON, SK", + "Geometry": { + "BoundingBox": { + "Width": 0.23883561789989471, + "Height": 0.025216171517968178, + "Left": 0.6425119042396545, + "Top": 0.28190121054649353 + }, + "Polygon": [ + { + "X": 0.6425119042396545, + "Y": 0.28218209743499756 + }, + { + "X": 0.8813074827194214, + "Y": 0.28190121054649353 + }, + { + "X": 0.8813474774360657, + "Y": 0.3068382740020752 + }, + { + "X": 0.6425498127937317, + "Y": 0.30711740255355835 + } + ] + }, + "Confidence": 99.49358367919922 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.68486022949219 + }, + "LabelDetection": { + "Text": "Lot #", + "Geometry": { + "BoundingBox": { + "Width": 0.040023867040872574, + "Height": 0.009674263186752796, + "Left": 0.05872808396816254, + "Top": 0.40479788184165955 + }, + "Polygon": [ + { + "X": 0.05872808396816254, + "Y": 0.4048435389995575 + }, + { + "X": 0.0987391546368599, + "Y": 0.40479788184165955 + }, + { + "X": 0.09875195473432541, + "Y": 0.41442662477493286 + }, + { + "X": 0.05874074250459671, + "Y": 0.41447216272354126 + } + ] + }, + "Confidence": 96.87403106689453 + }, + "ValueDetection": { + "Text": "2205A", + "Geometry": { + "BoundingBox": { + "Width": 0.05246767774224281, + "Height": 0.009917219169437885, + "Left": 0.10397660732269287, + "Top": 0.40466398000717163 + }, + "Polygon": [ + { + "X": 0.10397660732269287, + "Y": 0.40472379326820374 + }, + { + "X": 0.15643098950386047, + "Y": 0.40466398000717163 + }, + { + "X": 0.15644428133964539, + "Y": 0.4145215153694153 + }, + { + "X": 0.10398972034454346, + "Y": 0.41458117961883545 + } + ] + }, + "Confidence": 99.56085968017578 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.05999755859375 + }, + "LabelDetection": { + "Text": "Vendor", + "Geometry": { + "BoundingBox": { + "Width": 0.05535062029957771, + "Height": 0.010233109816908836, + "Left": 0.5152705907821655, + "Top": 0.40349459648132324 + }, + "Polygon": [ + { + "X": 0.5152705907821655, + "Y": 0.40355774760246277 + }, + { + "X": 0.570605993270874, + "Y": 0.40349459648132324 + }, + { + "X": 0.5706211924552917, + "Y": 0.4136647582054138 + }, + { + "X": 0.5152855515480042, + "Y": 0.413727730512619 + } + ] + }, + "Confidence": 99.05361938476562 + }, + "ValueDetection": { + "Text": "200382", + "Geometry": { + "BoundingBox": { + "Width": 0.06062285602092743, + "Height": 0.009929307736456394, + "Left": 0.5765126943588257, + "Top": 0.4035087525844574 + }, + "Polygon": [ + { + "X": 0.5765126943588257, + "Y": 0.40357789397239685 + }, + { + "X": 0.6371206045150757, + "Y": 0.4035087525844574 + }, + { + "X": 0.6371355652809143, + "Y": 0.4133690893650055 + }, + { + "X": 0.57652747631073, + "Y": 0.413438081741333 + } + ] + }, + "Confidence": 99.0489730834961 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.99512481689453 + }, + "LabelDetection": { + "Text": "Lot #", + "Geometry": { + "BoundingBox": { + "Width": 0.040226105600595474, + "Height": 0.009848510846495628, + "Left": 0.05915062874555588, + "Top": 0.4820655584335327 + }, + "Polygon": [ + { + "X": 0.05915062874555588, + "Y": 0.48211053013801575 + }, + { + "X": 0.09936371445655823, + "Y": 0.4820655584335327 + }, + { + "X": 0.09937673807144165, + "Y": 0.4918692409992218 + }, + { + "X": 0.059163518249988556, + "Y": 0.4919140636920929 + } + ] + }, + "Confidence": 90.56829071044922 + }, + "ValueDetection": { + "Text": "20220627", + "Geometry": { + "BoundingBox": { + "Width": 0.08086180686950684, + "Height": 0.010285520926117897, + "Left": 0.10409018397331238, + "Top": 0.48173418641090393 + }, + "Polygon": [ + { + "X": 0.10409018397331238, + "Y": 0.4818245768547058 + }, + { + "X": 0.18493813276290894, + "Y": 0.48173418641090393 + }, + { + "X": 0.1849519908428192, + "Y": 0.4919295310974121 + }, + { + "X": 0.10410374402999878, + "Y": 0.4920197129249573 + } + ] + }, + "Confidence": 99.94557189941406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.97107696533203 + }, + "LabelDetection": { + "Text": "Vendor", + "Geometry": { + "BoundingBox": { + "Width": 0.0568665936589241, + "Height": 0.010897910222411156, + "Left": 0.5152997970581055, + "Top": 0.4809163510799408 + }, + "Polygon": [ + { + "X": 0.5152997970581055, + "Y": 0.48097994923591614 + }, + { + "X": 0.5721502304077148, + "Y": 0.4809163510799408 + }, + { + "X": 0.5721664428710938, + "Y": 0.4917508661746979 + }, + { + "X": 0.51531583070755, + "Y": 0.4918142855167389 + } + ] + }, + "Confidence": 99.7948989868164 + }, + "ValueDetection": { + "Text": "200411", + "Geometry": { + "BoundingBox": { + "Width": 0.058440811932086945, + "Height": 0.01006569154560566, + "Left": 0.5770487785339355, + "Top": 0.4809386730194092 + }, + "Polygon": [ + { + "X": 0.5770487785339355, + "Y": 0.481003999710083 + }, + { + "X": 0.635474443435669, + "Y": 0.4809386730194092 + }, + { + "X": 0.6354896426200867, + "Y": 0.490939199924469 + }, + { + "X": 0.577063798904419, + "Y": 0.4910043478012085 + } + ] + }, + "Confidence": 99.26909637451172 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 93.12834167480469 + }, + "LabelDetection": { + "Text": "CURRENT TAX RATE FOR THIS INVOICE:", + "Geometry": { + "BoundingBox": { + "Width": 0.25793153047561646, + "Height": 0.009119224734604359, + "Left": 0.04472772777080536, + "Top": 0.74757981300354 + }, + "Polygon": [ + { + "X": 0.04472772777080536, + "Y": 0.7478482127189636 + }, + { + "X": 0.3026468753814697, + "Y": 0.74757981300354 + }, + { + "X": 0.302659273147583, + "Y": 0.7564312815666199 + }, + { + "X": 0.044739317148923874, + "Y": 0.7566990256309509 + } + ] + }, + "Confidence": 93.07603454589844 + }, + "ValueDetection": { + "Text": "PST/QST 0.000% GST/HST 5.000%", + "Geometry": { + "BoundingBox": { + "Width": 0.23233942687511444, + "Height": 0.009102772921323776, + "Left": 0.3064892590045929, + "Top": 0.7477473616600037 + }, + "Polygon": [ + { + "X": 0.3064892590045929, + "Y": 0.7479891180992126 + }, + { + "X": 0.5388154983520508, + "Y": 0.7477473616600037 + }, + { + "X": 0.5388286709785461, + "Y": 0.7566089630126953 + }, + { + "X": 0.3065016567707062, + "Y": 0.7568501234054565 + } + ] + }, + "Confidence": 91.86531829833984 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 98.41472625732422 + }, + "LabelDetection": { + "Text": "PST/QST", + "Geometry": { + "BoundingBox": { + "Width": 0.057049646973609924, + "Height": 0.008770143613219261, + "Left": 0.30638954043388367, + "Top": 0.7479298710823059 + }, + "Polygon": [ + { + "X": 0.30638954043388367, + "Y": 0.7479892373085022 + }, + { + "X": 0.3634268045425415, + "Y": 0.7479298710823059 + }, + { + "X": 0.3634392023086548, + "Y": 0.7566407918930054 + }, + { + "X": 0.3064017593860626, + "Y": 0.7566999793052673 + } + ] + }, + "Confidence": 97.62274932861328 + }, + "ValueDetection": { + "Text": "0.000%", + "Geometry": { + "BoundingBox": { + "Width": 0.050267159938812256, + "Height": 0.008649090304970741, + "Left": 0.367771714925766, + "Top": 0.7480375170707703 + }, + "Polygon": [ + { + "X": 0.367771714925766, + "Y": 0.7480897903442383 + }, + { + "X": 0.41802647709846497, + "Y": 0.7480375170707703 + }, + { + "X": 0.41803887486457825, + "Y": 0.7566344141960144 + }, + { + "X": 0.36778393387794495, + "Y": 0.7566866278648376 + } + ] + }, + "Confidence": 97.88632202148438 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.36210632324219 + }, + "LabelDetection": { + "Text": "GST/HST", + "Geometry": { + "BoundingBox": { + "Width": 0.05854424461722374, + "Height": 0.008630924858152866, + "Left": 0.4264984130859375, + "Top": 0.7479862570762634 + }, + "Polygon": [ + { + "X": 0.4264984130859375, + "Y": 0.7480471730232239 + }, + { + "X": 0.4850301146507263, + "Y": 0.7479862570762634 + }, + { + "X": 0.48504266142845154, + "Y": 0.7565564513206482 + }, + { + "X": 0.4265107810497284, + "Y": 0.7566171884536743 + } + ] + }, + "Confidence": 97.20172882080078 + }, + "ValueDetection": { + "Text": "5.000%", + "Geometry": { + "BoundingBox": { + "Width": 0.0491926409304142, + "Height": 0.008660012856125832, + "Left": 0.48959583044052124, + "Top": 0.7479104399681091 + }, + "Polygon": [ + { + "X": 0.48959583044052124, + "Y": 0.7479616403579712 + }, + { + "X": 0.5387756824493408, + "Y": 0.7479104399681091 + }, + { + "X": 0.5387884974479675, + "Y": 0.7565194368362427 + }, + { + "X": 0.4896084666252136, + "Y": 0.7565704584121704 + } + ] + }, + "Confidence": 97.67325592041016 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 94.29336547851562 + }, + "LabelDetection": { + "Text": "Payment Terms:", + "Geometry": { + "BoundingBox": { + "Width": 0.07452268898487091, + "Height": 0.008216566406190395, + "Left": 0.044709548354148865, + "Top": 0.7641838788986206 + }, + "Polygon": [ + { + "X": 0.044709548354148865, + "Y": 0.76426100730896 + }, + { + "X": 0.11922136694192886, + "Y": 0.7641838788986206 + }, + { + "X": 0.11923223733901978, + "Y": 0.7723234295845032 + }, + { + "X": 0.044720206409692764, + "Y": 0.772400438785553 + } + ] + }, + "Confidence": 94.20269012451172 + }, + "ValueDetection": { + "Text": "All payments are due in full in accordance with the terms stated herein. Amounts not paid by the due date are subject to a late payment fee of the greater of (i) 2% per\nmonth compounded monthly (26.8% per year) or (ii) $5.00. In addition, the customer is responsible for all fees and expenses of collection, including reasonable attorneys'\nfees. If the foregoing charges exceed the rate that may be lawfully charged, then such charges shall be calculated at the highest lawful rate.\nParts must be in unaltered, re-sellable condition and in the original packaging, with the invoice. Restocking/handling fees may apply. Returns may not be accepted after a\ncertain date. Core charges may be refundable up to a certain date. Full details of our LKQ Return Policy and Other Terms & Conditions applicable to your purchase can be\nfound here: https: //www.lkgcorp.com/LKQ-terms-and-conditions\nCash purchases returned on the same day as delivered will be refunded by your local branch All other refunds will be processed by Keystone and sent via U.S. mail\nwithin 7 working days.", + "Geometry": { + "BoundingBox": { + "Width": 0.7707473635673523, + "Height": 0.07603318244218826, + "Left": 0.166977658867836, + "Top": 0.7593113780021667 + }, + "Polygon": [ + { + "X": 0.166977658867836, + "Y": 0.7601105570793152 + }, + { + "X": 0.9376028180122375, + "Y": 0.7593113780021667 + }, + { + "X": 0.9377250075340271, + "Y": 0.8345622420310974 + }, + { + "X": 0.1670794039964676, + "Y": 0.8353445529937744 + } + ] + }, + "Confidence": 94.19567108154297 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 98.20440673828125 + }, + "LabelDetection": { + "Text": "Keystone Refund Policy:", + "Geometry": { + "BoundingBox": { + "Width": 0.10953927785158157, + "Height": 0.008232309482991695, + "Left": 0.04489083215594292, + "Top": 0.8184016346931458 + }, + "Polygon": [ + { + "X": 0.04489083215594292, + "Y": 0.8185133934020996 + }, + { + "X": 0.1544191688299179, + "Y": 0.8184016346931458 + }, + { + "X": 0.1544301062822342, + "Y": 0.8265224695205688 + }, + { + "X": 0.04490146413445473, + "Y": 0.8266339302062988 + } + ] + }, + "Confidence": 98.02762603759766 + }, + "ValueDetection": { + "Text": "Cash purchases returned on the same day as delivered will be refunded by your local branch All other refunds will be processed by Keystone and sent via U.S. mail\nwithin 7 working days.", + "Geometry": { + "BoundingBox": { + "Width": 0.7417106628417969, + "Height": 0.017882324755191803, + "Left": 0.1673259437084198, + "Top": 0.8174619674682617 + }, + "Polygon": [ + { + "X": 0.1673259437084198, + "Y": 0.8182185888290405 + }, + { + "X": 0.9090089797973633, + "Y": 0.8174619674682617 + }, + { + "X": 0.9090365767478943, + "Y": 0.8345913290977478 + }, + { + "X": 0.16734911501407623, + "Y": 0.8353442549705505 + } + ] + }, + "Confidence": 98.07789611816406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.56023406982422 + }, + "LabelDetection": { + "Text": "MISC\nCHARGES", + "Geometry": { + "BoundingBox": { + "Width": 0.06293045729398727, + "Height": 0.0199777539819479, + "Left": 0.17478367686271667, + "Top": 0.8438970446586609 + }, + "Polygon": [ + { + "X": 0.17478367686271667, + "Y": 0.843960702419281 + }, + { + "X": 0.23768670856952667, + "Y": 0.8438970446586609 + }, + { + "X": 0.23771414160728455, + "Y": 0.8638114333152771 + }, + { + "X": 0.17481067776679993, + "Y": 0.8638747930526733 + } + ] + }, + "Confidence": 99.53285217285156 + }, + "ValueDetection": { + "Text": "5.00", + "Geometry": { + "BoundingBox": { + "Width": 0.035597264766693115, + "Height": 0.010310275480151176, + "Left": 0.21269206702709198, + "Top": 0.8773852586746216 + }, + "Polygon": [ + { + "X": 0.21269206702709198, + "Y": 0.8774209022521973 + }, + { + "X": 0.24827514588832855, + "Y": 0.8773852586746216 + }, + { + "X": 0.2482893317937851, + "Y": 0.8876599073410034 + }, + { + "X": 0.21270613372325897, + "Y": 0.8876954913139343 + } + ] + }, + "Confidence": 99.47494506835938 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.88001251220703 + }, + "LabelDetection": { + "Text": "RETAIL DELIVERY\nFEE", + "Geometry": { + "BoundingBox": { + "Width": 0.11203832924365997, + "Height": 0.020145626738667488, + "Left": 0.26055288314819336, + "Top": 0.8437471389770508 + }, + "Polygon": [ + { + "X": 0.26055288314819336, + "Y": 0.8438605666160583 + }, + { + "X": 0.3725626468658447, + "Y": 0.8437471389770508 + }, + { + "X": 0.37259119749069214, + "Y": 0.8637800216674805 + }, + { + "X": 0.2605806291103363, + "Y": 0.8638927936553955 + } + ] + }, + "Confidence": 99.83665466308594 + }, + "ValueDetection": { + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03661354258656502, + "Height": 0.010323477908968925, + "Left": 0.3376835286617279, + "Top": 0.8772163987159729 + }, + "Polygon": [ + { + "X": 0.3376835286617279, + "Y": 0.8772531151771545 + }, + { + "X": 0.3742824196815491, + "Y": 0.8772163987159729 + }, + { + "X": 0.3742970824241638, + "Y": 0.8875032663345337 + }, + { + "X": 0.3376980721950531, + "Y": 0.8875398635864258 + } + ] + }, + "Confidence": 99.85475158691406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 99.95596313476562 + }, + "LabelDetection": { + "Text": "PST/QST", + "Geometry": { + "BoundingBox": { + "Width": 0.05651862919330597, + "Height": 0.008845221251249313, + "Left": 0.405240535736084, + "Top": 0.849118173122406 + }, + "Polygon": [ + { + "X": 0.405240535736084, + "Y": 0.8491753339767456 + }, + { + "X": 0.46174636483192444, + "Y": 0.849118173122406 + }, + { + "X": 0.46175917983055115, + "Y": 0.8579064011573792 + }, + { + "X": 0.40525317192077637, + "Y": 0.8579633831977844 + } + ] + }, + "Confidence": 98.53087615966797 + }, + "ValueDetection": { + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03611328452825546, + "Height": 0.010211504064500332, + "Left": 0.4424566626548767, + "Top": 0.8772851228713989 + }, + "Polygon": [ + { + "X": 0.4424566626548767, + "Y": 0.8773213624954224 + }, + { + "X": 0.4785550832748413, + "Y": 0.8772851228713989 + }, + { + "X": 0.47856995463371277, + "Y": 0.8874605298042297 + }, + { + "X": 0.4424714148044586, + "Y": 0.8874966502189636 + } + ] + }, + "Confidence": 99.94696044921875 + }, + "PageNumber": 1 + } + ], + "LineItemGroups": [ + { + "LineItemGroupIndex": 1, + "LineItems": [ + { + "LineItemExpenseFields": [ + { + "Type": { + "Text": "PRODUCT_CODE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRODUCT / DESCRIPTION", + "Geometry": { + "BoundingBox": { + "Width": 0.16155025362968445, + "Height": 0.00892757996916771, + "Left": 0.04779941588640213, + "Top": 0.3181908130645752 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.20933771133422852, + "Y": 0.3181908130645752 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.0478108674287796, + "Y": 0.3271183967590332 + } + ] + }, + "Confidence": 69.7171859741211 + }, + "ValueDetection": { + "Text": "TO1200453C", + "Geometry": { + "BoundingBox": { + "Width": 0.10555784404277802, + "Height": 0.01025246549397707, + "Left": 0.04626237973570824, + "Top": 0.3593105673789978 + }, + "Polygon": [ + { + "X": 0.04626237973570824, + "Y": 0.3594323694705963 + }, + { + "X": 0.15180657804012299, + "Y": 0.3593105673789978 + }, + { + "X": 0.15182022750377655, + "Y": 0.36944156885147095 + }, + { + "X": 0.046275652945041656, + "Y": 0.3695630431175232 + } + ] + }, + "Confidence": 71.57904815673828 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "QTY\nOPEN", + "Geometry": { + "BoundingBox": { + "Width": 0.034948524087667465, + "Height": 0.020671088248491287, + "Left": 0.41047006845474243, + "Top": 0.31908532977104187 + }, + "Polygon": [ + { + "X": 0.41047006845474243, + "Y": 0.31912603974342346 + }, + { + "X": 0.44538867473602295, + "Y": 0.31908532977104187 + }, + { + "X": 0.4454185962677002, + "Y": 0.3397159278392792 + }, + { + "X": 0.4104997515678406, + "Y": 0.33975642919540405 + } + ] + }, + "Confidence": 79.99483489990234 + }, + "ValueDetection": { + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.00598410377278924, + "Height": 0.009178688749670982, + "Left": 0.45207667350769043, + "Top": 0.3590306043624878 + }, + "Polygon": [ + { + "X": 0.45207667350769043, + "Y": 0.35903748869895935 + }, + { + "X": 0.45804744958877563, + "Y": 0.3590306043624878 + }, + { + "X": 0.45806077122688293, + "Y": 0.36820241808891296 + }, + { + "X": 0.45208999514579773, + "Y": 0.36820927262306213 + } + ] + }, + "Confidence": 38.89307403564453 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "QUANTITY", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "QTY\nSHIPPED", + "Geometry": { + "BoundingBox": { + "Width": 0.05396886542439461, + "Height": 0.020562421530485153, + "Left": 0.4709082245826721, + "Top": 0.3188082277774811 + }, + "Polygon": [ + { + "X": 0.4709082245826721, + "Y": 0.3188711106777191 + }, + { + "X": 0.5248467922210693, + "Y": 0.3188082277774811 + }, + { + "X": 0.5248770713806152, + "Y": 0.33930811285972595 + }, + { + "X": 0.47093817591667175, + "Y": 0.3393706679344177 + } + ] + }, + "Confidence": 79.98998260498047 + }, + "ValueDetection": { + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.012437527067959309, + "Height": 0.010098936967551708, + "Left": 0.5167763829231262, + "Top": 0.35787349939346313 + }, + "Polygon": [ + { + "X": 0.5167763829231262, + "Y": 0.3578878343105316 + }, + { + "X": 0.5291990041732788, + "Y": 0.35787349939346313 + }, + { + "X": 0.5292139649391174, + "Y": 0.367958128452301 + }, + { + "X": 0.5167912840843201, + "Y": 0.3679724335670471 + } + ] + }, + "Confidence": 96.6576156616211 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "LIST PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.06822152435779572, + "Height": 0.008204703219234943, + "Left": 0.6020211577415466, + "Top": 0.3245786726474762 + }, + "Polygon": [ + { + "X": 0.6020211577415466, + "Y": 0.324658066034317 + }, + { + "X": 0.6702302098274231, + "Y": 0.3245786726474762 + }, + { + "X": 0.6702426671981812, + "Y": 0.3327041566371918 + }, + { + "X": 0.6020333766937256, + "Y": 0.33278337121009827 + } + ] + }, + "Confidence": 79.57134246826172 + }, + "ValueDetection": { + "Text": "0 537.34\n200382", + "Geometry": { + "BoundingBox": { + "Width": 0.10206114500761032, + "Height": 0.055491913110017776, + "Left": 0.5756160020828247, + "Top": 0.35794711112976074 + }, + "Polygon": [ + { + "X": 0.5756160020828247, + "Y": 0.35806480050086975 + }, + { + "X": 0.6775922775268555, + "Y": 0.35794711112976074 + }, + { + "X": 0.6776771545410156, + "Y": 0.41332295536994934 + }, + { + "X": 0.5756989121437073, + "Y": 0.413439005613327 + } + ] + }, + "Confidence": 42.648597717285156 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "UNIT_PRICE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.03644489869475365, + "Height": 0.00819422397762537, + "Left": 0.7149896621704102, + "Top": 0.3240368068218231 + }, + "Polygon": [ + { + "X": 0.7149896621704102, + "Y": 0.3240792155265808 + }, + { + "X": 0.7514218688011169, + "Y": 0.3240368068218231 + }, + { + "X": 0.7514345645904541, + "Y": 0.3321886956691742 + }, + { + "X": 0.7150022387504578, + "Y": 0.3322310149669647 + } + ] + }, + "Confidence": 79.98226928710938 + }, + "ValueDetection": { + "Text": "317.03", + "Geometry": { + "BoundingBox": { + "Width": 0.05670133978128433, + "Height": 0.011031131260097027, + "Left": 0.7156900763511658, + "Top": 0.3565911054611206 + }, + "Polygon": [ + { + "X": 0.7156900763511658, + "Y": 0.356656551361084 + }, + { + "X": 0.7723742127418518, + "Y": 0.3565911054611206 + }, + { + "X": 0.7723913788795471, + "Y": 0.36755698919296265 + }, + { + "X": 0.715707004070282, + "Y": 0.3676222562789917 + } + ] + }, + "Confidence": 99.80897521972656 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "U/M", + "Geometry": { + "BoundingBox": { + "Width": 0.025426793843507767, + "Height": 0.008513799868524075, + "Left": 0.7892688512802124, + "Top": 0.3236437439918518 + }, + "Polygon": [ + { + "X": 0.7892688512802124, + "Y": 0.3236733376979828 + }, + { + "X": 0.8146822452545166, + "Y": 0.3236437439918518 + }, + { + "X": 0.8146956562995911, + "Y": 0.33212804794311523 + }, + { + "X": 0.7892822027206421, + "Y": 0.33215755224227905 + } + ] + }, + "Confidence": 79.90390014648438 + }, + "ValueDetection": { + "Text": "EA", + "Geometry": { + "BoundingBox": { + "Width": 0.020611422136425972, + "Height": 0.009707963094115257, + "Left": 0.7881222367286682, + "Top": 0.3575223684310913 + }, + "Polygon": [ + { + "X": 0.7881222367286682, + "Y": 0.3575461208820343 + }, + { + "X": 0.8087183833122253, + "Y": 0.3575223684310913 + }, + { + "X": 0.8087337017059326, + "Y": 0.3672066032886505 + }, + { + "X": 0.7881374955177307, + "Y": 0.3672303259372711 + } + ] + }, + "Confidence": 40.47085189819336 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "PRICE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "EXTENSION", + "Geometry": { + "BoundingBox": { + "Width": 0.07335331290960312, + "Height": 0.008393822237849236, + "Left": 0.8592621684074402, + "Top": 0.3231566250324249 + }, + "Polygon": [ + { + "X": 0.8592621684074402, + "Y": 0.3232420086860657 + }, + { + "X": 0.9326019883155823, + "Y": 0.3231566250324249 + }, + { + "X": 0.9326155185699463, + "Y": 0.3314652442932129 + }, + { + "X": 0.8592754602432251, + "Y": 0.3315504491329193 + } + ] + }, + "Confidence": 79.96648406982422 + }, + "ValueDetection": { + "Text": "317.03", + "Geometry": { + "BoundingBox": { + "Width": 0.056730229407548904, + "Height": 0.010495672933757305, + "Left": 0.9051418900489807, + "Top": 0.3561992347240448 + }, + "Polygon": [ + { + "X": 0.9051418900489807, + "Y": 0.35626471042633057 + }, + { + "X": 0.9618550539016724, + "Y": 0.3561992347240448 + }, + { + "X": 0.9618721008300781, + "Y": 0.36662960052490234 + }, + { + "X": 0.9051586985588074, + "Y": 0.36669492721557617 + } + ] + }, + "Confidence": 99.96924591064453 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "ITEM", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRODUCT / DESCRIPTION", + "Geometry": { + "BoundingBox": { + "Width": 0.16155025362968445, + "Height": 0.00892757996916771, + "Left": 0.04779941588640213, + "Top": 0.3181908130645752 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.20933771133422852, + "Y": 0.3181908130645752 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.0478108674287796, + "Y": 0.3271183967590332 + } + ] + }, + "Confidence": 69.7171859741211 + }, + "ValueDetection": { + "Text": "TO1200453C\nGRILLE;HONEYCOMB; 18-21 TUNDRA\nCHR FRM/LT GRY CNT;RND EMB TYP\nLot # 2205A", + "Geometry": { + "BoundingBox": { + "Width": 0.30631783604621887, + "Height": 0.056120920926332474, + "Left": 0.04626165330410004, + "Top": 0.3585258722305298 + }, + "Polygon": [ + { + "X": 0.04626165330410004, + "Y": 0.3588792681694031 + }, + { + "X": 0.35250040888786316, + "Y": 0.3585258722305298 + }, + { + "X": 0.3525795042514801, + "Y": 0.4142983555793762 + }, + { + "X": 0.04633471742272377, + "Y": 0.41464677453041077 + } + ] + }, + "Confidence": 95.07057189941406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "EXPENSE_ROW", + "Confidence": 70 + }, + "ValueDetection": { + "Text": "TO1200453C 1 1 0 537.34 317.03 EA 317.03\nGRILLE;HONEYCOMB; 18-21 TUNDRA\nCHR FRM/LT GRY CNT;RND EMB TYP\nLot # 2205A Vendor 200382", + "Geometry": { + "BoundingBox": { + "Width": 0.9158239364624023, + "Height": 0.0584476962685585, + "Left": 0.04625952988862991, + "Top": 0.35619908571243286 + }, + "Polygon": [ + { + "X": 0.04625952988862991, + "Y": 0.35725629329681396 + }, + { + "X": 0.9619897603988647, + "Y": 0.35619908571243286 + }, + { + "X": 0.9620835185050964, + "Y": 0.41360488533973694 + }, + { + "X": 0.04633471742272377, + "Y": 0.41464677453041077 + } + ] + }, + "Confidence": 97.93269348144531 + }, + "PageNumber": 1 + } + ] + }, + { + "LineItemExpenseFields": [ + { + "Type": { + "Text": "PRODUCT_CODE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRODUCT / DESCRIPTION", + "Geometry": { + "BoundingBox": { + "Width": 0.16155025362968445, + "Height": 0.00892757996916771, + "Left": 0.04779941588640213, + "Top": 0.3181908130645752 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.20933771133422852, + "Y": 0.3181908130645752 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.0478108674287796, + "Y": 0.3271183967590332 + } + ] + }, + "Confidence": 69.7171859741211 + }, + "ValueDetection": { + "Text": "TO2503260C", + "Geometry": { + "BoundingBox": { + "Width": 0.10528869181871414, + "Height": 0.011066609062254429, + "Left": 0.04736407473683357, + "Top": 0.4354275166988373 + }, + "Polygon": [ + { + "X": 0.04736407473683357, + "Y": 0.4355466365814209 + }, + { + "X": 0.1526380181312561, + "Y": 0.4354275166988373 + }, + { + "X": 0.152652770280838, + "Y": 0.44637531042099 + }, + { + "X": 0.04737842082977295, + "Y": 0.44649410247802734 + } + ] + }, + "Confidence": 59.64625549316406 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "QTY\nOPEN", + "Geometry": { + "BoundingBox": { + "Width": 0.034948524087667465, + "Height": 0.020671088248491287, + "Left": 0.41047006845474243, + "Top": 0.31908532977104187 + }, + "Polygon": [ + { + "X": 0.41047006845474243, + "Y": 0.31912603974342346 + }, + { + "X": 0.44538867473602295, + "Y": 0.31908532977104187 + }, + { + "X": 0.4454185962677002, + "Y": 0.3397159278392792 + }, + { + "X": 0.4104997515678406, + "Y": 0.33975642919540405 + } + ] + }, + "Confidence": 79.99483489990234 + }, + "ValueDetection": { + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.006231909152120352, + "Height": 0.0095490338280797, + "Left": 0.4525376856327057, + "Top": 0.4360588788986206 + }, + "Polygon": [ + { + "X": 0.4525376856327057, + "Y": 0.4360659122467041 + }, + { + "X": 0.4587557017803192, + "Y": 0.4360588788986206 + }, + { + "X": 0.4587695896625519, + "Y": 0.4456008970737457 + }, + { + "X": 0.45255157351493835, + "Y": 0.44560790061950684 + } + ] + }, + "Confidence": 67.41802215576172 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "QUANTITY", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "QTY\nSHIPPED", + "Geometry": { + "BoundingBox": { + "Width": 0.05396886542439461, + "Height": 0.020562421530485153, + "Left": 0.4709082245826721, + "Top": 0.3188082277774811 + }, + "Polygon": [ + { + "X": 0.4709082245826721, + "Y": 0.3188711106777191 + }, + { + "X": 0.5248467922210693, + "Y": 0.3188082277774811 + }, + { + "X": 0.5248770713806152, + "Y": 0.33930811285972595 + }, + { + "X": 0.47093817591667175, + "Y": 0.3393706679344177 + } + ] + }, + "Confidence": 79.98998260498047 + }, + "ValueDetection": { + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.014808440580964088, + "Height": 0.009870773181319237, + "Left": 0.5152720808982849, + "Top": 0.4353525936603546 + }, + "Polygon": [ + { + "X": 0.5152720808982849, + "Y": 0.4353693127632141 + }, + { + "X": 0.5300659537315369, + "Y": 0.4353525936603546 + }, + { + "X": 0.5300805568695068, + "Y": 0.4452066421508789 + }, + { + "X": 0.5152866244316101, + "Y": 0.4452233612537384 + } + ] + }, + "Confidence": 59.45448303222656 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "LIST PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.06822152435779572, + "Height": 0.008204703219234943, + "Left": 0.6020211577415466, + "Top": 0.3245786726474762 + }, + "Polygon": [ + { + "X": 0.6020211577415466, + "Y": 0.324658066034317 + }, + { + "X": 0.6702302098274231, + "Y": 0.3245786726474762 + }, + { + "X": 0.6702426671981812, + "Y": 0.3327041566371918 + }, + { + "X": 0.6020333766937256, + "Y": 0.33278337121009827 + } + ] + }, + "Confidence": 79.57134246826172 + }, + "ValueDetection": { + "Text": "0 289.63\n200411", + "Geometry": { + "BoundingBox": { + "Width": 0.10248519480228424, + "Height": 0.05604039877653122, + "Left": 0.5759474635124207, + "Top": 0.4349651038646698 + }, + "Polygon": [ + { + "X": 0.5759474635124207, + "Y": 0.43508100509643555 + }, + { + "X": 0.6783469319343567, + "Y": 0.4349651038646698 + }, + { + "X": 0.6784326434135437, + "Y": 0.49089130759239197 + }, + { + "X": 0.5760312080383301, + "Y": 0.4910055100917816 + } + ] + }, + "Confidence": 75.41642761230469 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "UNIT_PRICE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.03644489869475365, + "Height": 0.00819422397762537, + "Left": 0.7149896621704102, + "Top": 0.3240368068218231 + }, + "Polygon": [ + { + "X": 0.7149896621704102, + "Y": 0.3240792155265808 + }, + { + "X": 0.7514218688011169, + "Y": 0.3240368068218231 + }, + { + "X": 0.7514345645904541, + "Y": 0.3321886956691742 + }, + { + "X": 0.7150022387504578, + "Y": 0.3322310149669647 + } + ] + }, + "Confidence": 79.98226928710938 + }, + "ValueDetection": { + "Text": "170.88", + "Geometry": { + "BoundingBox": { + "Width": 0.05521046370267868, + "Height": 0.011025183834135532, + "Left": 0.7178140878677368, + "Top": 0.43372365832328796 + }, + "Polygon": [ + { + "X": 0.7178140878677368, + "Y": 0.43378615379333496 + }, + { + "X": 0.7730073928833008, + "Y": 0.43372365832328796 + }, + { + "X": 0.7730245590209961, + "Y": 0.44468656182289124 + }, + { + "X": 0.717831015586853, + "Y": 0.4447488486766815 + } + ] + }, + "Confidence": 99.76554870605469 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "OTHER", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "U/M", + "Geometry": { + "BoundingBox": { + "Width": 0.025426793843507767, + "Height": 0.008513799868524075, + "Left": 0.7892688512802124, + "Top": 0.3236437439918518 + }, + "Polygon": [ + { + "X": 0.7892688512802124, + "Y": 0.3236733376979828 + }, + { + "X": 0.8146822452545166, + "Y": 0.3236437439918518 + }, + { + "X": 0.8146956562995911, + "Y": 0.33212804794311523 + }, + { + "X": 0.7892822027206421, + "Y": 0.33215755224227905 + } + ] + }, + "Confidence": 79.90390014648438 + }, + "ValueDetection": { + "Text": "EA", + "Geometry": { + "BoundingBox": { + "Width": 0.020820410922169685, + "Height": 0.009704378433525562, + "Left": 0.7885988354682922, + "Top": 0.4345540702342987 + }, + "Polygon": [ + { + "X": 0.7885988354682922, + "Y": 0.434577614068985 + }, + { + "X": 0.8094039559364319, + "Y": 0.4345540702342987 + }, + { + "X": 0.8094192743301392, + "Y": 0.4442349672317505 + }, + { + "X": 0.7886140942573547, + "Y": 0.444258451461792 + } + ] + }, + "Confidence": 71.8764877319336 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "PRICE", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "EXTENSION", + "Geometry": { + "BoundingBox": { + "Width": 0.07335331290960312, + "Height": 0.008393822237849236, + "Left": 0.8592621684074402, + "Top": 0.3231566250324249 + }, + "Polygon": [ + { + "X": 0.8592621684074402, + "Y": 0.3232420086860657 + }, + { + "X": 0.9326019883155823, + "Y": 0.3231566250324249 + }, + { + "X": 0.9326155185699463, + "Y": 0.3314652442932129 + }, + { + "X": 0.8592754602432251, + "Y": 0.3315504491329193 + } + ] + }, + "Confidence": 79.96648406982422 + }, + "ValueDetection": { + "Text": "170.88", + "Geometry": { + "BoundingBox": { + "Width": 0.05538744106888771, + "Height": 0.01142818108201027, + "Left": 0.9072699546813965, + "Top": 0.4325072169303894 + }, + "Polygon": [ + { + "X": 0.9072699546813965, + "Y": 0.4325698912143707 + }, + { + "X": 0.962638795375824, + "Y": 0.4325072169303894 + }, + { + "X": 0.9626573920249939, + "Y": 0.44387286901474 + }, + { + "X": 0.9072882533073425, + "Y": 0.4439353942871094 + } + ] + }, + "Confidence": 99.97667694091797 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "ITEM", + "Confidence": 70 + }, + "LabelDetection": { + "Text": "PRODUCT / DESCRIPTION", + "Geometry": { + "BoundingBox": { + "Width": 0.16155025362968445, + "Height": 0.00892757996916771, + "Left": 0.04779941588640213, + "Top": 0.3181908130645752 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.20933771133422852, + "Y": 0.3181908130645752 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.0478108674287796, + "Y": 0.3271183967590332 + } + ] + }, + "Confidence": 69.7171859741211 + }, + "ValueDetection": { + "Text": "TO2503260C\nHLAMP ASM RH; 18-21 TUNDRA\nWO/SMOKED BZL;HLGN\nLot # 20220627", + "Geometry": { + "BoundingBox": { + "Width": 0.2666320204734802, + "Height": 0.05912073329091072, + "Left": 0.04736407473683357, + "Top": 0.43524500727653503 + }, + "Polygon": [ + { + "X": 0.04736407473683357, + "Y": 0.4355466365814209 + }, + { + "X": 0.313913494348526, + "Y": 0.43524500727653503 + }, + { + "X": 0.3139961063861847, + "Y": 0.4940686523914337 + }, + { + "X": 0.047441158443689346, + "Y": 0.49436572194099426 + } + ] + }, + "Confidence": 86.62881469726562 + }, + "PageNumber": 1 + }, + { + "Type": { + "Text": "EXPENSE_ROW", + "Confidence": 70 + }, + "ValueDetection": { + "Text": "TO2503260C 1 1 0 289.63 170.88 EA 170.88\nHLAMP ASM RH; 18-21 TUNDRA\nWO/SMOKED BZL;HLGN\nLot # 20220627 Vendor 200411\nOCT 14TH", + "Geometry": { + "BoundingBox": { + "Width": 0.9153992533683777, + "Height": 0.07565101236104965, + "Left": 0.047361452132463455, + "Top": 0.4325072169303894 + }, + "Polygon": [ + { + "X": 0.047361452132463455, + "Y": 0.4335435628890991 + }, + { + "X": 0.962638795375824, + "Y": 0.4325072169303894 + }, + { + "X": 0.9627607464790344, + "Y": 0.5071417689323425 + }, + { + "X": 0.047459233552217484, + "Y": 0.5081582069396973 + } + ] + }, + "Confidence": 91.09329223632812 + }, + "PageNumber": 1 + } + ] + } + ] + } + ], + "Blocks": [ + { + "BlockType": "PAGE", + "Geometry": { + "BoundingBox": { + "Width": 1, + "Height": 1, + "Left": 0, + "Top": 0 + }, + "Polygon": [ + { + "X": 0, + "Y": 0.0000017027592775775702 + }, + { + "X": 1, + "Y": 0 + }, + { + "X": 1, + "Y": 1 + }, + { + "X": 0.00000210004577638756, + "Y": 1 + } + ] + }, + "Id": "2e66a31c-de3b-4a53-9977-930b4de4357f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e29d46ea-5f51-4a11-828d-e7636ef46a7c", + "182de27e-83e3-42e0-8f13-c66b3cfbfb57", + "da531e68-1eb4-4ba0-a38c-46a0f7132482", + "1de5cd82-b60e-4a0a-8750-26f2007d089a", + "994adaaa-4597-40ad-8a29-5310d731d399", + "9220e0f3-225a-4206-9cb3-db4fe48cdf7e", + "e89eb29b-15f2-4e1a-96a7-15004a23c277", + "f6a9eea9-2cc8-4e63-a485-1cefff35b2ab", + "0c7c7166-27b8-411a-8c0f-0a7846943520", + "b0e3ba16-aa8c-492a-8909-c92bc35a5523", + "9d873732-08e5-4b48-9248-070dfe9399db", + "914cc4a1-e387-4d72-bf4d-4fad09b4bfd3", + "af5036ec-b2c1-4b94-bea0-307d389c83a9", + "f5967b56-697b-443c-a128-626ee65a3766", + "a8ddc102-1c98-4f72-8bfa-039c9c58fb16", + "ff5fed64-b78c-4822-9466-e8dd9d65ecbc", + "da41d671-8357-4a46-8397-4e79d4de48ca", + "608e13f1-b9ca-48af-bc75-5690f0dffb4b", + "01101eff-6916-4c06-bf77-cfd81a60c1db", + "db01038a-f2b9-4050-992e-926e0aa4df17", + "c5e4e4a9-5fd6-4772-84c0-e8790040bf82", + "ce1fed4f-4c20-4e36-9e65-ddba4a8f156e", + "95857cda-5811-4a6a-932f-77755ac97f8d", + "fbbeedd3-7725-454f-9f64-6e67357b20b9", + "fb4b3b5c-535d-4c6b-b282-6644fe495a16", + "a2237710-e28b-4054-92ff-2353cab3b4d2", + "f7e5e25c-2568-4b81-9129-08d7e73a62e4", + "222d8be6-d288-4e81-8503-7c7bc6043bd5", + "5b051c42-2d54-4c81-987e-5b5c29edd5c5", + "d2e1f996-7482-4469-b181-9c06a535264a", + "07ad133f-0641-4e98-b360-d9aa6d60caf8", + "8b9f2b6f-10da-43be-be02-4012d6fabd9f", + "668be16f-abd6-4781-bb5c-f09362b2dee0", + "fe6627d1-7038-4583-a629-894bfd6dd237", + "76ae5371-ba90-4f81-8591-fa715206eea7", + "73c9e842-e0cf-45f2-a697-c9071c095b02", + "75ca1d0f-45a1-4333-bf55-0b4d4329dc27", + "8a8a6f97-d270-4c79-9166-8900a3a7f8cf", + "2671255b-e550-4abc-9794-3ed2dd28f983", + "7e054a1f-1f4f-49d9-be34-80754b906cfc", + "c0dea988-0436-4d80-92cb-626781a98017", + "ce7af6b0-a02e-4af4-b90f-349fe6ac3ced", + "17006917-b3d4-428a-a767-e58ef05f021d", + "e4327392-1fc2-4cda-9749-2a0db68ba121", + "cc2903bc-f7e9-455d-8daa-d77c45d3e999", + "743dae47-bfc3-4c7c-934a-5bc6a2b0dcb6", + "1bf16505-0a8d-4604-a71c-80419da038d1", + "98646d93-6daf-408a-9c5a-6d0bd16a7c50", + "dff9bf13-38b6-457a-9cd9-51411a4875ac", + "74fc12b2-3da2-4c27-8337-a2fd32b06aa5", + "16d7877a-6bc4-4ca4-a045-7437a007b732", + "f198c095-f220-4c1e-aad1-81ea71aad80c", + "0057d0d2-bad0-473e-8564-e7c607761047", + "3060017b-6e4a-403d-a13a-cadb23de1454", + "e56741e0-51fb-451c-8b35-9a2e7dda0fbf", + "a54f6aca-f9d6-4e14-8207-d650f89ed1b0", + "67f505db-41fe-471f-b024-0dab53e7107e", + "a950a0f7-c695-43c9-9115-92a05441f380", + "dd909262-dad8-4d91-aea4-b93b1ceae9eb", + "427b516b-4e67-4bc2-bbdf-45d7f51a31ad", + "37891f0e-3585-4e5c-9dc9-0bf18fafc686", + "77ae465b-7ee7-4592-b27c-6341c0e89492", + "5dcbd1a0-7f65-4ce8-b76c-83979e140139", + "088ee46b-e60a-4a6d-8667-e820f548b8e5", + "6937c15c-2dc8-4df3-b083-529827c97d8a", + "40c3788c-25e0-4333-8dd7-65ef3cd39244", + "5e02b409-5490-4e90-a5c8-9695ccbff44c", + "6a4e5e68-8581-48b2-913c-caaa69206624", + "60d2ac4c-d1fa-4fb7-87fc-0102d779b7d7", + "a7ec5b0c-8ed5-4b9f-9ede-657a10756418", + "b1aae8ed-e524-40a8-b4b4-3e468d153fef", + "5ef99b5d-17ea-456f-a8fe-6103eef3739b", + "cf20041c-0d2c-4263-aa71-e54604640c5c", + "58aaa57c-4b68-4ce5-b8d2-aa161f6f877f", + "20003b7e-4f89-479d-b328-2f3a805aed6f", + "f45216c4-19e7-4a05-83bd-3f6ec5476366", + "12ca47b5-1711-4292-a1f9-0c6f45f1b973", + "d070c792-a3ef-4a0d-a49f-5e9f9281f9a5", + "719497ab-5ba8-4f1f-99d3-af62ef6d4d06", + "54f7aafc-52d9-4b61-bc27-30e4bc790c69", + "86d96393-fc43-4d82-b064-ac56ce93619b", + "180716d3-5396-43d5-aa32-d7268013fbf7", + "3ce5bc6f-bd15-4c38-b2d5-ab6567171990", + "1b149278-7848-4df8-b851-6f3cb864c69f", + "faca1942-2b85-4604-8dd1-b4dfc17227ea", + "05ad662e-7051-4b60-b959-b213a646e093", + "ed63341e-b716-40e0-a7e3-228b7eeaa206", + "d2a49c40-078f-488c-8b00-968b9b5801ac", + "bb22b75a-7ac5-4c31-a102-a94d2731c538", + "9ee0b7a9-bc86-4f2f-92a7-8cfca2ac093f", + "473098b3-734f-4658-9e4a-bfe1c7c98ee2", + "8242922b-fe79-4df9-99ac-0f82ebb21a29", + "39656611-b064-4631-aa0d-28a1eece75cc", + "9742e6f8-d3d5-45ce-a3ec-f64753814807", + "c1257442-1828-4d6a-bc4d-0fc78429f5a8", + "a1eb2b32-c131-4aff-afb3-618e8ab1e67d", + "1f7331b6-8a84-4ffc-b101-8f3ccfbc0214", + "23577924-a385-4aa0-b03f-e0c100153498", + "5690ca7f-05e3-4f85-9c48-1c9a972f01af", + "e983d2d8-40ef-48c1-aa5f-c2a6c387e842", + "e43479a8-a05e-4ac1-a80e-1a144b6971c9", + "6d39ae16-9e96-40c5-a165-f239e09cf55e", + "d5b2b46b-f950-4acb-9c16-433826199de9", + "d06bb636-6ff4-40f3-b4ff-be09451bd667", + "526a0ac4-450a-44d4-a5ed-aa8766154892", + "3c0583a0-8df9-41f3-90ab-3fead4d082ba", + "6e4fccb8-5cda-4ad8-8a03-d64b6b5326c5", + "7f941aef-ef59-48c6-976c-cbb4d5bfafb4", + "e771da5d-5189-472f-9768-d945fc08c8e2", + "b778a838-2d3e-4614-9d21-89ef37c240de", + "8a0a346d-24a2-4411-8834-0f6527c89877", + "26e59655-980e-4116-a8b8-e216df8fbced", + "d04dd8f3-111b-4f2e-b39e-17a95e4c0674", + "bafce2d3-0459-4ac5-b01f-e78169045408", + "16691d18-c044-4aa6-95f0-424fb36b8af8", + "a5761ab6-a342-4ba2-921c-d3af3823a2dc", + "8e8ac6bb-257c-48ec-98c8-f503ae6f3394", + "1fcd91c1-e6ab-4117-8099-e775aaf0d545", + "4358a123-3e68-4d8b-b8e6-d1e42e59fc49", + "8892fca1-7cc8-4d8e-994e-457afbbba756", + "ef3e37b0-f3c6-43f7-9967-87901c1ea4fa", + "c2d36098-f192-44d7-9f45-d09d4f9b6593", + "97815f70-e512-4656-802c-eb3ab6182792", + "b37f1f20-12f3-46c0-bc23-f9a03df32abb", + "c76d0dd1-6591-4dbe-85d4-0dd07f51f652", + "efe5db89-b906-4194-9315-12111dd2ec2f", + "5475c402-7856-469b-9a45-4468e1628290", + "a86dcbb4-eb96-4fbc-bed3-d29be6597613", + "65562b58-f073-437b-bff6-57bbbd2a7cba", + "f71cffa5-9eb7-4074-89a4-8bd238910b00", + "669d7b47-f2df-4ec2-bc27-4d5488fcc371", + "65b2c262-29fd-4881-a5e2-1c96696f026e", + "e0b0779d-24ce-4cea-abce-acb0daf711fb", + "f3ed8b29-d7e1-4f69-85c5-7996fb7d4626" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90238952636719, + "Text": "Invoice", + "Geometry": { + "BoundingBox": { + "Width": 0.07253161817789078, + "Height": 0.012965491972863674, + "Left": 0.4642057418823242, + "Top": 0.014308910816907883 + }, + "Polygon": [ + { + "X": 0.4642057418823242, + "Y": 0.014399858191609383 + }, + { + "X": 0.5367182493209839, + "Y": 0.014308910816907883 + }, + { + "X": 0.5367373824119568, + "Y": 0.02718372642993927 + }, + { + "X": 0.46422451734542847, + "Y": 0.027274401858448982 + } + ] + }, + "Id": "e29d46ea-5f51-4a11-828d-e7636ef46a7c", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a43c62f8-7944-4566-a6b6-df3bdd81dc9a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 79.50676727294922, + "Text": "SASKATOON SK", + "Geometry": { + "BoundingBox": { + "Width": 0.08094558864831924, + "Height": 0.0073184240609407425, + "Left": 0.1807357221841812, + "Top": 0.03428533673286438 + }, + "Polygon": [ + { + "X": 0.1807357221841812, + "Y": 0.03438638523221016 + }, + { + "X": 0.2616713047027588, + "Y": 0.03428533673286438 + }, + { + "X": 0.26168131828308105, + "Y": 0.041502878069877625 + }, + { + "X": 0.18074552714824677, + "Y": 0.04160375893115997 + } + ] + }, + "Id": "182de27e-83e3-42e0-8f13-c66b3cfbfb57", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "aad419d5-3c16-4f09-97dc-243fbfebfa6b", + "2b35143f-b1bc-4ad1-aaa4-0a75be870a0a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.41806030273438, + "Text": "Invoice#", + "Geometry": { + "BoundingBox": { + "Width": 0.05687333270907402, + "Height": 0.009038809686899185, + "Left": 0.6837244629859924, + "Top": 0.032257530838251114 + }, + "Polygon": [ + { + "X": 0.6837244629859924, + "Y": 0.03232854604721069 + }, + { + "X": 0.7405838966369629, + "Y": 0.032257530838251114 + }, + { + "X": 0.7405978441238403, + "Y": 0.04122547432780266 + }, + { + "X": 0.6837382316589355, + "Y": 0.0412963405251503 + } + ] + }, + "Id": "da531e68-1eb4-4ba0-a38c-46a0f7132482", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "141c6987-61f1-4c72-8472-a41b7f2d9b35" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.99443054199219, + "Text": "SS148046", + "Geometry": { + "BoundingBox": { + "Width": 0.07437808811664581, + "Height": 0.009570728987455368, + "Left": 0.8036753535270691, + "Top": 0.031096043065190315 + }, + "Polygon": [ + { + "X": 0.8036753535270691, + "Y": 0.03118893876671791 + }, + { + "X": 0.878038227558136, + "Y": 0.031096043065190315 + }, + { + "X": 0.8780534267425537, + "Y": 0.0405740812420845 + }, + { + "X": 0.8036902546882629, + "Y": 0.04066677391529083 + } + ] + }, + "Id": "1de5cd82-b60e-4a0a-8750-26f2007d089a", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a53b4e65-b29c-489d-b129-977aaec9ba33" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.4180908203125, + "Text": "705-43RD STREET EAST", + "Geometry": { + "BoundingBox": { + "Width": 0.11583153903484344, + "Height": 0.006635691504925489, + "Left": 0.18106788396835327, + "Top": 0.043280839920043945 + }, + "Polygon": [ + { + "X": 0.18106788396835327, + "Y": 0.04342513903975487 + }, + { + "X": 0.29689034819602966, + "Y": 0.043280839920043945 + }, + { + "X": 0.2968994379043579, + "Y": 0.04977244883775711 + }, + { + "X": 0.18107669055461884, + "Y": 0.049916528165340424 + } + ] + }, + "Id": "994adaaa-4597-40ad-8a29-5310d731d399", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9d192218-a901-4e57-9829-34246b69cbb6", + "8be24775-7da2-4d63-a819-b2ed82f9e581", + "a38fab5f-6ab3-448e-835c-b7b850c0de20" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 89.87446594238281, + "Text": "SASKATOON SK S7K 0V7", + "Geometry": { + "BoundingBox": { + "Width": 0.13031254708766937, + "Height": 0.0073853363282978535, + "Left": 0.18083441257476807, + "Top": 0.05218612775206566 + }, + "Polygon": [ + { + "X": 0.18083441257476807, + "Y": 0.05234812945127487 + }, + { + "X": 0.31113681197166443, + "Y": 0.05218612775206566 + }, + { + "X": 0.31114694476127625, + "Y": 0.0594097338616848 + }, + { + "X": 0.18084421753883362, + "Y": 0.059571463614702225 + } + ] + }, + "Id": "9220e0f3-225a-4206-9cb3-db4fe48cdf7e", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0cad4b7b-5517-4b78-88bb-7fa2bf6e158d", + "a21062f0-7b54-4bcd-8c6d-6263fc5db1d9", + "afd939d9-ea59-4e13-8cc0-8682961a33eb", + "d5e23d6b-6fad-4bf6-9f26-59837b2620d8" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.94971466064453, + "Text": "LOCATION", + "Geometry": { + "BoundingBox": { + "Width": 0.07503733038902283, + "Height": 0.008900492452085018, + "Left": 0.6840646862983704, + "Top": 0.04736775904893875 + }, + "Polygon": [ + { + "X": 0.6840646862983704, + "Y": 0.0474611297249794 + }, + { + "X": 0.7590882778167725, + "Y": 0.04736775904893875 + }, + { + "X": 0.7591020464897156, + "Y": 0.056175075471401215 + }, + { + "X": 0.6840782165527344, + "Y": 0.056268252432346344 + } + ] + }, + "Id": "e89eb29b-15f2-4e1a-96a7-15004a23c277", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "1f6fc461-a4c4-4743-95b6-9fe39ece0217" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.58111572265625, + "Text": "561", + "Geometry": { + "BoundingBox": { + "Width": 0.02574119344353676, + "Height": 0.00894449558109045, + "Left": 0.8036239147186279, + "Top": 0.046655796468257904 + }, + "Polygon": [ + { + "X": 0.8036239147186279, + "Y": 0.04668781906366348 + }, + { + "X": 0.829351007938385, + "Y": 0.046655796468257904 + }, + { + "X": 0.8293651342391968, + "Y": 0.05556833744049072 + }, + { + "X": 0.8036379814147949, + "Y": 0.05560029298067093 + } + ] + }, + "Id": "f6a9eea9-2cc8-4e63-a485-1cefff35b2ab", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9ea80d43-fe00-4852-abdf-008890b9ebfa" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.92171478271484, + "Text": "KEYSTONE", + "Geometry": { + "BoundingBox": { + "Width": 0.07914634048938751, + "Height": 0.007694493513554335, + "Left": 0.051042813807725906, + "Top": 0.06378676742315292 + }, + "Polygon": [ + { + "X": 0.051042813807725906, + "Y": 0.06388489156961441 + }, + { + "X": 0.13017897307872772, + "Y": 0.06378676742315292 + }, + { + "X": 0.13018915057182312, + "Y": 0.07138331234455109 + }, + { + "X": 0.05105277895927429, + "Y": 0.07148125767707825 + } + ] + }, + "Id": "0c7c7166-27b8-411a-8c0f-0a7846943520", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6fff0670-1dfb-4b8e-af3e-546479923d1d" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.5733642578125, + "Text": "Phone 306-955-1619", + "Geometry": { + "BoundingBox": { + "Width": 0.10011674463748932, + "Height": 0.0067034196108579636, + "Left": 0.18112774193286896, + "Top": 0.06157660856842995 + }, + "Polygon": [ + { + "X": 0.18112774193286896, + "Y": 0.06170079857110977 + }, + { + "X": 0.28123530745506287, + "Y": 0.06157660856842995 + }, + { + "X": 0.2812444865703583, + "Y": 0.06815603375434875 + }, + { + "X": 0.18113666772842407, + "Y": 0.06828002631664276 + } + ] + }, + "Id": "b0e3ba16-aa8c-492a-8909-c92bc35a5523", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "10e1028d-3a3b-4814-8864-236da50f6c1d", + "b21099ad-7504-425b-b711-c27cb1f95403" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.96461486816406, + "Text": "DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.03953924775123596, + "Height": 0.008870305493474007, + "Left": 0.6843146681785583, + "Top": 0.06262654066085815 + }, + "Polygon": [ + { + "X": 0.6843146681785583, + "Y": 0.06267555803060532 + }, + { + "X": 0.7238402366638184, + "Y": 0.06262654066085815 + }, + { + "X": 0.7238538861274719, + "Y": 0.0714479312300682 + }, + { + "X": 0.6843281984329224, + "Y": 0.07149684429168701 + } + ] + }, + "Id": "9d873732-08e5-4b48-9248-070dfe9399db", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "ada4c5ed-c1b9-46a0-9dd7-d439943d2e1e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.75965881347656, + "Text": "10/17/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06354615092277527, + "Height": 0.009389525279402733, + "Left": 0.8050990104675293, + "Top": 0.06163042038679123 + }, + "Polygon": [ + { + "X": 0.8050990104675293, + "Y": 0.061709221452474594 + }, + { + "X": 0.8686302900314331, + "Y": 0.06163042038679123 + }, + { + "X": 0.868645191192627, + "Y": 0.07094131410121918 + }, + { + "X": 0.8051137328147888, + "Y": 0.07101994752883911 + } + ] + }, + "Id": "914cc4a1-e387-4d72-bf4d-4fad09b4bfd3", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f7185bf1-2b48-4a43-a136-96f3dd2410f1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.88919830322266, + "Text": "13:59:59", + "Geometry": { + "BoundingBox": { + "Width": 0.06408500671386719, + "Height": 0.009203479625284672, + "Left": 0.8925708532333374, + "Top": 0.06040317937731743 + }, + "Polygon": [ + { + "X": 0.8925708532333374, + "Y": 0.06048266962170601 + }, + { + "X": 0.9566410183906555, + "Y": 0.06040317937731743 + }, + { + "X": 0.9566558599472046, + "Y": 0.06952734291553497 + }, + { + "X": 0.8925855755805969, + "Y": 0.06960666179656982 + } + ] + }, + "Id": "af5036ec-b2c1-4b94-bea0-307d389c83a9", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "130a2246-4ed4-4c6e-859c-7cc1a839accb" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.50369262695312, + "Text": "Fax 306-955-1625", + "Geometry": { + "BoundingBox": { + "Width": 0.08846945315599442, + "Height": 0.0063728271052241325, + "Left": 0.18136373162269592, + "Top": 0.0708424523472786 + }, + "Polygon": [ + { + "X": 0.18136373162269592, + "Y": 0.07095195353031158 + }, + { + "X": 0.26982447504997253, + "Y": 0.0708424523472786 + }, + { + "X": 0.26983317732810974, + "Y": 0.07710593938827515 + }, + { + "X": 0.1813722401857376, + "Y": 0.077215276658535 + } + ] + }, + "Id": "f5967b56-697b-443c-a128-626ee65a3766", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9d876f14-b49c-490d-bbb0-a19dd547d73e", + "466b7107-d7d6-4338-ac1b-f061af9293f6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.83251953125, + "Text": "PAGE", + "Geometry": { + "BoundingBox": { + "Width": 0.039580415934324265, + "Height": 0.008723516948521137, + "Left": 0.6841561198234558, + "Top": 0.07813076674938202 + }, + "Polygon": [ + { + "X": 0.6841561198234558, + "Y": 0.07817965745925903 + }, + { + "X": 0.7237231135368347, + "Y": 0.07813076674938202 + }, + { + "X": 0.723736584186554, + "Y": 0.08680550009012222 + }, + { + "X": 0.6841694712638855, + "Y": 0.08685428649187088 + } + ] + }, + "Id": "a8ddc102-1c98-4f72-8bfa-039c9c58fb16", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e8d925ba-6d0d-491f-8a65-bd7d66d610d6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.6656265258789, + "Text": "1 of 1", + "Geometry": { + "BoundingBox": { + "Width": 0.038146015256643295, + "Height": 0.008563936688005924, + "Left": 0.805359959602356, + "Top": 0.07751058042049408 + }, + "Polygon": [ + { + "X": 0.805359959602356, + "Y": 0.07755770534276962 + }, + { + "X": 0.8434924483299255, + "Y": 0.07751058042049408 + }, + { + "X": 0.8435059785842896, + "Y": 0.08602749556303024 + }, + { + "X": 0.8053734302520752, + "Y": 0.08607451617717743 + } + ] + }, + "Id": "ff5fed64-b78c-4822-9466-e8dd9d65ecbc", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "dd1aff56-7b0d-42b6-8f43-60570a67b028", + "89665485-d339-4f85-b55a-d31b27baa285", + "4d0e502b-bf1e-4b40-b0ac-1b487356d4a3" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.33687591552734, + "Text": "An LKQ Company", + "Geometry": { + "BoundingBox": { + "Width": 0.08540111780166626, + "Height": 0.00905205961316824, + "Left": 0.04746665433049202, + "Top": 0.09283702820539474 + }, + "Polygon": [ + { + "X": 0.04746665433049202, + "Y": 0.09294218569993973 + }, + { + "X": 0.13285577297210693, + "Y": 0.09283702820539474 + }, + { + "X": 0.13286778330802917, + "Y": 0.10178415477275848 + }, + { + "X": 0.04747838154435158, + "Y": 0.10188908874988556 + } + ] + }, + "Id": "da41d671-8357-4a46-8397-4e79d4de48ca", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "17918b85-2258-4a0b-a443-dee1270196a5", + "c92a1162-caca-4ea7-a2ab-97273fab3fe5", + "b6d1e362-b999-417b-9179-ecaae0de580a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.75435638427734, + "Text": "GST 88221 4026", + "Geometry": { + "BoundingBox": { + "Width": 0.08230800926685333, + "Height": 0.006683690939098597, + "Left": 0.13121576607227325, + "Top": 0.11195339262485504 + }, + "Polygon": [ + { + "X": 0.13121576607227325, + "Y": 0.11205428838729858 + }, + { + "X": 0.2135147601366043, + "Y": 0.11195339262485504 + }, + { + "X": 0.2135237753391266, + "Y": 0.11853635311126709 + }, + { + "X": 0.1312245875597, + "Y": 0.1186370849609375 + } + ] + }, + "Id": "608e13f1-b9ca-48af-bc75-5690f0dffb4b", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "dc34e346-f356-4b43-abc4-6febc5683e4e", + "5d75882e-a5bc-4c22-8d62-e0c5706d5a08", + "0e81803e-a12a-4320-bee7-025ba0a0b8e1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.52601623535156, + "Text": "QST 1021981903", + "Geometry": { + "BoundingBox": { + "Width": 0.08699483424425125, + "Height": 0.006708560977131128, + "Left": 0.2502237558364868, + "Top": 0.11168570071458817 + }, + "Polygon": [ + { + "X": 0.2502237558364868, + "Y": 0.11179234087467194 + }, + { + "X": 0.3372092843055725, + "Y": 0.11168570071458817 + }, + { + "X": 0.33721861243247986, + "Y": 0.11828778684139252 + }, + { + "X": 0.25023287534713745, + "Y": 0.11839426308870316 + } + ] + }, + "Id": "01101eff-6916-4c06-bf77-cfd81a60c1db", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "950fefa9-35ef-415d-a96c-f99217427a07", + "21e630f1-0bc4-4848-aa69-d24a4234cd1e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.94759368896484, + "Text": "BILL TO", + "Geometry": { + "BoundingBox": { + "Width": 0.04758533835411072, + "Height": 0.008106263354420662, + "Left": 0.13174474239349365, + "Top": 0.12282955646514893 + }, + "Polygon": [ + { + "X": 0.13174474239349365, + "Y": 0.12288772314786911 + }, + { + "X": 0.17931915819644928, + "Y": 0.12282955646514893 + }, + { + "X": 0.17933008074760437, + "Y": 0.1308777630329132 + }, + { + "X": 0.131755530834198, + "Y": 0.13093581795692444 + } + ] + }, + "Id": "db01038a-f2b9-4050-992e-926e0aa4df17", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "97b23fbf-81d9-44ea-b4a2-031d5c9811a3", + "a0880bb5-ab7b-48cc-a3f5-8c8437f6ec39" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.80278015136719, + "Text": "SHIP TO", + "Geometry": { + "BoundingBox": { + "Width": 0.05170654132962227, + "Height": 0.008209199644625187, + "Left": 0.6649818420410156, + "Top": 0.12026990205049515 + }, + "Polygon": [ + { + "X": 0.6649818420410156, + "Y": 0.12033313512802124 + }, + { + "X": 0.7166758179664612, + "Y": 0.12026990205049515 + }, + { + "X": 0.7166883945465088, + "Y": 0.12841598689556122 + }, + { + "X": 0.6649942994117737, + "Y": 0.12847909331321716 + } + ] + }, + "Id": "c5e4e4a9-5fd6-4772-84c0-e8790040bf82", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "78764db3-5373-45c9-91e0-dc44b8cad90c", + "91f0cb81-0d27-4c34-ad04-adcbdbbd090e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.88495635986328, + "Text": "PST: 3013675", + "Geometry": { + "BoundingBox": { + "Width": 0.06848066300153732, + "Height": 0.007015635725110769, + "Left": 0.14348094165325165, + "Top": 0.1376143842935562 + }, + "Polygon": [ + { + "X": 0.14348094165325165, + "Y": 0.13769780099391937 + }, + { + "X": 0.2119521200656891, + "Y": 0.1376143842935562 + }, + { + "X": 0.21196161210536957, + "Y": 0.1445467323064804 + }, + { + "X": 0.1434902548789978, + "Y": 0.14463001489639282 + } + ] + }, + "Id": "ce1fed4f-4c20-4e36-9e65-ddba4a8f156e", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "85e8c922-bbac-4211-8507-6680a1b787b8", + "442fabb2-92fd-4daa-82e1-0b761ebde661" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.80162048339844, + "Text": "Ship To:", + "Geometry": { + "BoundingBox": { + "Width": 0.0560687780380249, + "Height": 0.011113300919532776, + "Left": 0.6762438416481018, + "Top": 0.13597796857357025 + }, + "Polygon": [ + { + "X": 0.6762438416481018, + "Y": 0.13604627549648285 + }, + { + "X": 0.7322955131530762, + "Y": 0.13597796857357025 + }, + { + "X": 0.7323126196861267, + "Y": 0.14702314138412476 + }, + { + "X": 0.676260769367218, + "Y": 0.14709126949310303 + } + ] + }, + "Id": "95857cda-5811-4a6a-932f-77755ac97f8d", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a21a2af9-35c6-4afa-998e-b639458aab4b", + "81326692-913b-4bd9-989b-7f0fe65d17fb" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.86256408691406, + "Text": "180757", + "Geometry": { + "BoundingBox": { + "Width": 0.053991638123989105, + "Height": 0.008869488723576069, + "Left": 0.14541025459766388, + "Top": 0.14976538717746735 + }, + "Polygon": [ + { + "X": 0.14541025459766388, + "Y": 0.14983096718788147 + }, + { + "X": 0.19938988983631134, + "Y": 0.14976538717746735 + }, + { + "X": 0.19940190017223358, + "Y": 0.15856944024562836 + }, + { + "X": 0.145422101020813, + "Y": 0.15863487124443054 + } + ] + }, + "Id": "fbbeedd3-7725-454f-9f64-6e67357b20b9", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "1fed1c47-3db0-458d-a808-97cdb4567880" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90066528320312, + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17433175444602966, + "Height": 0.00954012293368578, + "Left": 0.6758222579956055, + "Top": 0.14918795228004456 + }, + "Polygon": [ + { + "X": 0.6758222579956055, + "Y": 0.14939972758293152 + }, + { + "X": 0.8501391410827637, + "Y": 0.14918795228004456 + }, + { + "X": 0.8501539826393127, + "Y": 0.1585167795419693 + }, + { + "X": 0.6758365035057068, + "Y": 0.15872807800769806 + } + ] + }, + "Id": "fb4b3b5c-535d-4c6b-b282-6644fe495a16", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2453af2f-4a36-4989-9dcb-57338681c1f0", + "bb514f5f-c605-481f-b849-f1abab63c7f9", + "6ebc318e-203f-49a5-911b-2cc19bc139db", + "2170fb34-ed23-458f-a887-70f9d25e61f2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.89584350585938, + "Text": "CSN KAVIA AUTO BODY", + "Geometry": { + "BoundingBox": { + "Width": 0.17398875951766968, + "Height": 0.009311090223491192, + "Left": 0.1445416659116745, + "Top": 0.16306158900260925 + }, + "Polygon": [ + { + "X": 0.1445416659116745, + "Y": 0.16327226161956787 + }, + { + "X": 0.31851762533187866, + "Y": 0.16306158900260925 + }, + { + "X": 0.31853044033050537, + "Y": 0.17216245830059052 + }, + { + "X": 0.14455389976501465, + "Y": 0.17237266898155212 + } + ] + }, + "Id": "a2237710-e28b-4054-92ff-2353cab3b4d2", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "23fa1407-e8cc-4abe-99e1-6ff806175fb5", + "109b1a5a-2fd8-4191-bde2-d2723543a346", + "0178d2b4-5fb1-4704-a8f2-707cfccf7aa2", + "fbeba0df-c26d-4cff-8220-8354da11c6d6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.77094268798828, + "Text": "90 33RD ST E", + "Geometry": { + "BoundingBox": { + "Width": 0.09964301437139511, + "Height": 0.00937486719340086, + "Left": 0.676466703414917, + "Top": 0.16297344863414764 + }, + "Polygon": [ + { + "X": 0.676466703414917, + "Y": 0.16309407353401184 + }, + { + "X": 0.7760952115058899, + "Y": 0.16297344863414764 + }, + { + "X": 0.7761096954345703, + "Y": 0.17222794890403748 + }, + { + "X": 0.6764808893203735, + "Y": 0.17234830558300018 + } + ] + }, + "Id": "f7e5e25c-2568-4b81-9129-08d7e73a62e4", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "872033db-d349-4f29-9977-c35bb1541bfa", + "2d064d75-9f28-41b3-9452-cebbe2bb0536", + "5fbe3b7f-808c-469e-914f-a73a4be8bafc", + "882fb33c-3986-4105-99ff-bccb89295b6e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.62023162841797, + "Text": "90 33RD ST E", + "Geometry": { + "BoundingBox": { + "Width": 0.0986894890666008, + "Height": 0.009186891838908195, + "Left": 0.14454832673072815, + "Top": 0.17678827047348022 + }, + "Polygon": [ + { + "X": 0.14454832673072815, + "Y": 0.17690737545490265 + }, + { + "X": 0.2432253062725067, + "Y": 0.17678827047348022 + }, + { + "X": 0.24323782324790955, + "Y": 0.18585631251335144 + }, + { + "X": 0.1445605307817459, + "Y": 0.18597516417503357 + } + ] + }, + "Id": "222d8be6-d288-4e81-8503-7c7bc6043bd5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "fcfde89c-7958-47dd-bffc-efed0de151d8", + "8e89bf9f-86d1-46a5-9b18-3faabe6c748d", + "195b0bb9-a811-4699-8d95-fbe3bde8e799", + "29b2a2b4-0c6b-438e-8fbb-25c03bf26d41" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 93.55393981933594, + "Text": "SASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.1891646683216095, + "Height": 0.011174115352332592, + "Left": 0.6768845319747925, + "Top": 0.17576603591442108 + }, + "Polygon": [ + { + "X": 0.6768845319747925, + "Y": 0.17599435150623322 + }, + { + "X": 0.8660317063331604, + "Y": 0.17576603591442108 + }, + { + "X": 0.8660492300987244, + "Y": 0.18671244382858276 + }, + { + "X": 0.6769012808799744, + "Y": 0.18694014847278595 + } + ] + }, + "Id": "5b051c42-2d54-4c81-987e-5b5c29edd5c5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "5770687d-6428-42b2-995a-af5de4dbe0b4", + "ed4fdf09-3eaf-42c1-b1d5-5b63e03b7674", + "71406edb-3deb-452d-9716-656d7ff733fe", + "822ac462-3807-4fc1-9b99-e5f7d9f4675f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 93.84515380859375, + "Text": "SASKATOON, SK S7K 0S1", + "Geometry": { + "BoundingBox": { + "Width": 0.190728560090065, + "Height": 0.010435967706143856, + "Left": 0.14427721500396729, + "Top": 0.1899876445531845 + }, + "Polygon": [ + { + "X": 0.14427721500396729, + "Y": 0.19021709263324738 + }, + { + "X": 0.33499136567115784, + "Y": 0.1899876445531845 + }, + { + "X": 0.3350057899951935, + "Y": 0.20019471645355225 + }, + { + "X": 0.14429093897342682, + "Y": 0.20042361319065094 + } + ] + }, + "Id": "d2e1f996-7482-4469-b181-9c06a535264a", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0ff966c3-ba78-4279-8805-63279b45f062", + "d2caa42c-371f-474f-82f0-bbf81727333a", + "c4758950-886e-4b17-9a40-085cc504d428", + "7d889d26-fb78-4d16-b90a-d26e71cea54a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.6675796508789, + "Text": "306-242-2733", + "Geometry": { + "BoundingBox": { + "Width": 0.10368923842906952, + "Height": 0.009105456992983818, + "Left": 0.676653265953064, + "Top": 0.19013629853725433 + }, + "Polygon": [ + { + "X": 0.676653265953064, + "Y": 0.19026100635528564 + }, + { + "X": 0.7803284525871277, + "Y": 0.19013629853725433 + }, + { + "X": 0.7803425192832947, + "Y": 0.19911730289459229 + }, + { + "X": 0.6766670346260071, + "Y": 0.1992417424917221 + } + ] + }, + "Id": "07ad133f-0641-4e98-b360-d9aa6d60caf8", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2bebbf95-02e1-4bee-9243-36c52ecca6d1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.75663757324219, + "Text": "306-242-2733", + "Geometry": { + "BoundingBox": { + "Width": 0.10314027965068817, + "Height": 0.009416496381163597, + "Left": 0.14457209408283234, + "Top": 0.2037995308637619 + }, + "Polygon": [ + { + "X": 0.14457209408283234, + "Y": 0.20392319560050964 + }, + { + "X": 0.2476995438337326, + "Y": 0.2037995308637619 + }, + { + "X": 0.2477123737335205, + "Y": 0.213092640042305 + }, + { + "X": 0.14458459615707397, + "Y": 0.21321602165699005 + } + ] + }, + "Id": "8b9f2b6f-10da-43be-be02-4012d6fabd9f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "eeb1845e-7c8d-416f-b592-c0c380537559" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9635238647461, + "Text": "ORDER NUMBER", + "Geometry": { + "BoundingBox": { + "Width": 0.10310675203800201, + "Height": 0.009055049158632755, + "Left": 0.04788511246442795, + "Top": 0.2445785403251648 + }, + "Polygon": [ + { + "X": 0.04788511246442795, + "Y": 0.24470095336437225 + }, + { + "X": 0.15097983181476593, + "Y": 0.2445785403251648 + }, + { + "X": 0.15099185705184937, + "Y": 0.2535114586353302 + }, + { + "X": 0.047896821051836014, + "Y": 0.253633588552475 + } + ] + }, + "Id": "668be16f-abd6-4781-bb5c-f09362b2dee0", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0889e5f2-0a4d-4a24-a3d6-ceb085c4c18d", + "948300ec-9571-41db-9217-762f788adfcb" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.94945526123047, + "Text": "ORDER DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.08377842605113983, + "Height": 0.00829672534018755, + "Left": 0.1637343317270279, + "Top": 0.24485935270786285 + }, + "Polygon": [ + { + "X": 0.1637343317270279, + "Y": 0.2449588030576706 + }, + { + "X": 0.2475014328956604, + "Y": 0.24485935270786285 + }, + { + "X": 0.24751275777816772, + "Y": 0.2530568242073059 + }, + { + "X": 0.16374541819095612, + "Y": 0.25315606594085693 + } + ] + }, + "Id": "fe6627d1-7038-4583-a629-894bfd6dd237", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "12467aff-9a7a-408b-aacb-d660d5606780", + "024ed319-6efb-4eef-b342-8b46e00a2259" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.8919677734375, + "Text": "SALES REP", + "Geometry": { + "BoundingBox": { + "Width": 0.07059396058320999, + "Height": 0.008405365981161594, + "Left": 0.2591850161552429, + "Top": 0.24453690648078918 + }, + "Polygon": [ + { + "X": 0.2591850161552429, + "Y": 0.24462071061134338 + }, + { + "X": 0.32976722717285156, + "Y": 0.24453690648078918 + }, + { + "X": 0.3297789692878723, + "Y": 0.25285863876342773 + }, + { + "X": 0.25919651985168457, + "Y": 0.25294229388237 + } + ] + }, + "Id": "76ae5371-ba90-4f81-8591-fa715206eea7", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d519da7c-1934-4dd7-b505-b01ea786325b", + "567763ae-38d9-4780-9214-049887fd681d" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90619659423828, + "Text": "CUSTOMER P/O NUMBER", + "Geometry": { + "BoundingBox": { + "Width": 0.1586262285709381, + "Height": 0.008938788436353207, + "Left": 0.4293297529220581, + "Top": 0.24330942332744598 + }, + "Polygon": [ + { + "X": 0.4293297529220581, + "Y": 0.24349777400493622 + }, + { + "X": 0.5879428386688232, + "Y": 0.24330942332744598 + }, + { + "X": 0.5879559516906738, + "Y": 0.25206026434898376 + }, + { + "X": 0.4293423891067505, + "Y": 0.25224819779396057 + } + ] + }, + "Id": "73c9e842-e0cf-45f2-a697-c9071c095b02", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "b3952533-74b5-4851-8b70-0c31d18561cf", + "63f59d3e-831b-4bda-a441-a3c4fb0eeb2f", + "53721271-8573-4bd9-859d-d802da936af1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.61601257324219, + "Text": "PAYMENT TERMS", + "Geometry": { + "BoundingBox": { + "Width": 0.11313558369874954, + "Height": 0.00861631240695715, + "Left": 0.673184871673584, + "Top": 0.24218618869781494 + }, + "Polygon": [ + { + "X": 0.673184871673584, + "Y": 0.24232055246829987 + }, + { + "X": 0.786307156085968, + "Y": 0.24218618869781494 + }, + { + "X": 0.7863204479217529, + "Y": 0.2506684362888336 + }, + { + "X": 0.673197865486145, + "Y": 0.25080251693725586 + } + ] + }, + "Id": "75ca1d0f-45a1-4333-bf55-0b4d4329dc27", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "b8317731-e8e2-4c0b-8040-1088b826d607", + "93078708-1c9a-4a54-8e48-a88c1baaae95" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.82331848144531, + "Text": "REGO9057", + "Geometry": { + "BoundingBox": { + "Width": 0.07579998672008514, + "Height": 0.009112833067774773, + "Left": 0.0573258139193058, + "Top": 0.25699305534362793 + }, + "Polygon": [ + { + "X": 0.0573258139193058, + "Y": 0.2570827603340149 + }, + { + "X": 0.13311369717121124, + "Y": 0.25699305534362793 + }, + { + "X": 0.13312579691410065, + "Y": 0.2660163938999176 + }, + { + "X": 0.05733766779303551, + "Y": 0.26610589027404785 + } + ] + }, + "Id": "8a8a6f97-d270-4c79-9166-8900a3a7f8cf", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e210f2b3-1feb-4e1b-a359-9b25faae00b2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.7378158569336, + "Text": "10/07/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06409009546041489, + "Height": 0.009407377801835537, + "Left": 0.17120099067687988, + "Top": 0.2568434774875641 + }, + "Polygon": [ + { + "X": 0.17120099067687988, + "Y": 0.25691932439804077 + }, + { + "X": 0.23527823388576508, + "Y": 0.2568434774875641 + }, + { + "X": 0.23529109358787537, + "Y": 0.26617521047592163 + }, + { + "X": 0.17121362686157227, + "Y": 0.266250878572464 + } + ] + }, + "Id": "2671255b-e550-4abc-9794-3ed2dd28f983", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e52b6030-d3fb-4e94-8587-c88c8ff5b578" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 96.51559448242188, + "Text": "H561/", + "Geometry": { + "BoundingBox": { + "Width": 0.04425487294793129, + "Height": 0.00938858836889267, + "Left": 0.267251193523407, + "Top": 0.2565353512763977 + }, + "Polygon": [ + { + "X": 0.267251193523407, + "Y": 0.2565877139568329 + }, + { + "X": 0.3114929497241974, + "Y": 0.2565353512763977 + }, + { + "X": 0.311506062746048, + "Y": 0.26587167382240295 + }, + { + "X": 0.26726412773132324, + "Y": 0.2659239172935486 + } + ] + }, + "Id": "7e054a1f-1f4f-49d9-be34-80754b906cfc", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "de65f3d4-db53-4821-b823-5941bdbbcee6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.81785583496094, + "Text": "42719", + "Geometry": { + "BoundingBox": { + "Width": 0.046453122049570084, + "Height": 0.009029661305248737, + "Left": 0.4368852972984314, + "Top": 0.25596171617507935 + }, + "Polygon": [ + { + "X": 0.4368852972984314, + "Y": 0.25601670145988464 + }, + { + "X": 0.4833252727985382, + "Y": 0.25596171617507935 + }, + { + "X": 0.4833384156227112, + "Y": 0.26493650674819946 + }, + { + "X": 0.43689829111099243, + "Y": 0.2649913728237152 + } + ] + }, + "Id": "c0dea988-0436-4d80-92cb-626781a98017", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6790a85d-af70-4318-99b1-04c7a0bd7b17" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 72.86243438720703, + "Text": "2%15th-Net30thP", + "Geometry": { + "BoundingBox": { + "Width": 0.1246044784784317, + "Height": 0.009378812275826931, + "Left": 0.683944821357727, + "Top": 0.25430476665496826 + }, + "Polygon": [ + { + "X": 0.683944821357727, + "Y": 0.25445228815078735 + }, + { + "X": 0.8085347414016724, + "Y": 0.25430476665496826 + }, + { + "X": 0.8085492849349976, + "Y": 0.26353636384010315 + }, + { + "X": 0.6839590072631836, + "Y": 0.263683557510376 + } + ] + }, + "Id": "ce7af6b0-a02e-4af4-b90f-349fe6ac3ced", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "487cb4b9-14e1-4266-8734-42774f07d26b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.88409423828125, + "Text": "SHIP DATE", + "Geometry": { + "BoundingBox": { + "Width": 0.0687529519200325, + "Height": 0.008251638151705265, + "Left": 0.048048485070466995, + "Top": 0.2724585235118866 + }, + "Polygon": [ + { + "X": 0.048048485070466995, + "Y": 0.27253958582878113 + }, + { + "X": 0.1167905256152153, + "Y": 0.2724585235118866 + }, + { + "X": 0.1168014332652092, + "Y": 0.2806292474269867 + }, + { + "X": 0.04805919528007507, + "Y": 0.2807101607322693 + } + ] + }, + "Id": "17006917-b3d4-428a-a767-e58ef05f021d", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "ceea9abd-4d21-4648-b162-d41fe6e34756", + "d9a6ee9f-5256-4781-b787-c81bb8c0a13b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.92977142333984, + "Text": "WRTN BY", + "Geometry": { + "BoundingBox": { + "Width": 0.06053191423416138, + "Height": 0.008140306919813156, + "Left": 0.12908132374286652, + "Top": 0.27236732840538025 + }, + "Polygon": [ + { + "X": 0.12908132374286652, + "Y": 0.2724387049674988 + }, + { + "X": 0.18960225582122803, + "Y": 0.27236732840538025 + }, + { + "X": 0.1896132379770279, + "Y": 0.2804364264011383 + }, + { + "X": 0.12909212708473206, + "Y": 0.2805076539516449 + } + ] + }, + "Id": "e4327392-1fc2-4cda-9749-2a0db68ba121", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a7a4f4b6-8830-43c6-8f48-e27ffc480919", + "e730645b-f36d-49c9-823d-50bf523dede6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.91498565673828, + "Text": "CONTACT", + "Geometry": { + "BoundingBox": { + "Width": 0.06350241601467133, + "Height": 0.008441532030701637, + "Left": 0.2068048119544983, + "Top": 0.27212610840797424 + }, + "Polygon": [ + { + "X": 0.2068048119544983, + "Y": 0.27220097184181213 + }, + { + "X": 0.2702955901622772, + "Y": 0.27212610840797424 + }, + { + "X": 0.2703072130680084, + "Y": 0.280492901802063 + }, + { + "X": 0.20681625604629517, + "Y": 0.28056761622428894 + } + ] + }, + "Id": "cc2903bc-f7e9-455d-8daa-d77c45d3e999", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6f404698-00e7-451c-855f-30286c22c279" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.58061981201172, + "Text": "R/O NUMBER", + "Geometry": { + "BoundingBox": { + "Width": 0.08139243721961975, + "Height": 0.008405709639191628, + "Left": 0.4296565651893616, + "Top": 0.27144283056259155 + }, + "Polygon": [ + { + "X": 0.4296565651893616, + "Y": 0.27153879404067993 + }, + { + "X": 0.51103675365448, + "Y": 0.27144283056259155 + }, + { + "X": 0.5110489726066589, + "Y": 0.2797527611255646 + }, + { + "X": 0.4296685755252838, + "Y": 0.27984851598739624 + } + ] + }, + "Id": "743dae47-bfc3-4c7c-934a-5bc6a2b0dcb6", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d944437d-d5ea-49a6-b676-fbb73e525044", + "eb478799-1e5a-49ef-af95-72457c7d5b8b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.4540786743164, + "Text": "SHIP VIA", + "Geometry": { + "BoundingBox": { + "Width": 0.056368350982666016, + "Height": 0.008170302025973797, + "Left": 0.6737975478172302, + "Top": 0.27028322219848633 + }, + "Polygon": [ + { + "X": 0.6737975478172302, + "Y": 0.2703497111797333 + }, + { + "X": 0.7301533222198486, + "Y": 0.27028322219848633 + }, + { + "X": 0.7301658987998962, + "Y": 0.278387188911438 + }, + { + "X": 0.6738099455833435, + "Y": 0.278453528881073 + } + ] + }, + "Id": "1bf16505-0a8d-4604-a71c-80419da038d1", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "b0c2381c-c56e-4b2a-99fc-6035a5de8eee", + "3e714408-bcf6-429b-bdb6-54d1b3f958fb" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.78462219238281, + "Text": "10/17/22", + "Geometry": { + "BoundingBox": { + "Width": 0.06375154852867126, + "Height": 0.008829658851027489, + "Left": 0.052173975855112076, + "Top": 0.2852458655834198 + }, + "Polygon": [ + { + "X": 0.052173975855112076, + "Y": 0.28532078862190247 + }, + { + "X": 0.11591383814811707, + "Y": 0.2852458655834198 + }, + { + "X": 0.11592552065849304, + "Y": 0.2940007746219635 + }, + { + "X": 0.05218546465039253, + "Y": 0.29407554864883423 + } + ] + }, + "Id": "98646d93-6daf-408a-9c5a-6d0bd16a7c50", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f358cad6-da9d-4a5f-964e-ac906885916b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.7158203125, + "Text": "5B72", + "Geometry": { + "BoundingBox": { + "Width": 0.03624593839049339, + "Height": 0.00893153715878725, + "Left": 0.1343856006860733, + "Top": 0.2850804030895233 + }, + "Polygon": [ + { + "X": 0.1343856006860733, + "Y": 0.2851230204105377 + }, + { + "X": 0.17061950266361237, + "Y": 0.2850804030895233 + }, + { + "X": 0.170631542801857, + "Y": 0.29396945238113403 + }, + { + "X": 0.13439752161502838, + "Y": 0.2940119504928589 + } + ] + }, + "Id": "dff9bf13-38b6-457a-9cd9-51411a4875ac", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9dff4831-2c90-455f-b61e-92d22eb6cc69" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 88.76171875, + "Text": "*", + "Geometry": { + "BoundingBox": { + "Width": 0.005902840290218592, + "Height": 0.004878581035882235, + "Left": 0.21529439091682434, + "Top": 0.2849128246307373 + }, + "Polygon": [ + { + "X": 0.21529439091682434, + "Y": 0.28491973876953125 + }, + { + "X": 0.22119055688381195, + "Y": 0.2849128246307373 + }, + { + "X": 0.2211972326040268, + "Y": 0.2897844910621643 + }, + { + "X": 0.21530106663703918, + "Y": 0.28979140520095825 + } + ] + }, + "Id": "74fc12b2-3da2-4c27-8337-a2fd32b06aa5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a19d325b-d422-469f-91b7-16fe4700ece6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90764617919922, + "Text": "COMPANY TRUCK 3561000", + "Geometry": { + "BoundingBox": { + "Width": 0.1996658742427826, + "Height": 0.009988450445234776, + "Left": 0.6816572546958923, + "Top": 0.28190121054649353 + }, + "Polygon": [ + { + "X": 0.6816572546958923, + "Y": 0.28213605284690857 + }, + { + "X": 0.8813074827194214, + "Y": 0.28190121054649353 + }, + { + "X": 0.8813230991363525, + "Y": 0.29165542125701904 + }, + { + "X": 0.681672215461731, + "Y": 0.29188966751098633 + } + ] + }, + "Id": "16d7877a-6bc4-4ca4-a045-7437a007b732", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "72b2976f-2af1-4b80-9681-78dbc8e05434", + "f33a1cfc-edec-44ee-bcde-b0b76024d9b5", + "d325dd27-8911-4685-a4f0-d78883617ea5" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 94.07244110107422, + "Text": "For Questions, contact MANDY EVANS, 306-657-4784, SASKATOON, SK", + "Geometry": { + "BoundingBox": { + "Width": 0.5166634917259216, + "Height": 0.011824587360024452, + "Left": 0.2467673271894455, + "Top": 0.2967870533466339 + }, + "Polygon": [ + { + "X": 0.2467673271894455, + "Y": 0.29739248752593994 + }, + { + "X": 0.7634132504463196, + "Y": 0.2967870533466339 + }, + { + "X": 0.7634307742118835, + "Y": 0.3080078959465027 + }, + { + "X": 0.2467828094959259, + "Y": 0.3086116313934326 + } + ] + }, + "Id": "f198c095-f220-4c1e-aad1-81ea71aad80c", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f9281883-4d0e-4705-bd04-043369e725f5", + "41ca2dea-7f11-451d-bd49-e27745cba27c", + "9ef81a4a-d70a-4587-9615-2fa24c2ae495", + "46644b2b-fedb-4f2e-877c-366f52fc3979", + "37437db4-311f-438b-b1ab-cb2cb5915335", + "8bbc5e10-ee54-4ac9-8b9a-0929e01d8c1c", + "9a0d14dc-6fa2-4933-9b31-4bb6d7a219d1", + "e4478e36-b395-4d09-8914-311b9dea76a3" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 95.90681457519531, + "Text": "PRODUCT / DESCRIPTION", + "Geometry": { + "BoundingBox": { + "Width": 0.16155025362968445, + "Height": 0.00892757996916771, + "Left": 0.04779941588640213, + "Top": 0.3181908130645752 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.20933771133422852, + "Y": 0.3181908130645752 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.0478108674287796, + "Y": 0.3271183967590332 + } + ] + }, + "Id": "0057d0d2-bad0-473e-8564-e7c607761047", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2ec3d749-7e83-4800-ab4e-843c4fb4fcc8", + "400a9336-9f0e-4253-a8ef-242ed249727b", + "5ca8482b-7bf9-42b5-a3c8-bdc6ba400cbe" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.96876525878906, + "Text": "QTY", + "Geometry": { + "BoundingBox": { + "Width": 0.02700347825884819, + "Height": 0.008297323249280453, + "Left": 0.4141574800014496, + "Top": 0.3190902769565582 + }, + "Polygon": [ + { + "X": 0.4141574800014496, + "Y": 0.31912171840667725 + }, + { + "X": 0.441148966550827, + "Y": 0.3190902769565582 + }, + { + "X": 0.4411609470844269, + "Y": 0.3273561894893646 + }, + { + "X": 0.4141693711280823, + "Y": 0.32738760113716125 + } + ] + }, + "Id": "3060017b-6e4a-403d-a13a-cadb23de1454", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9c2ced09-e521-4d93-aad7-2f079cb00be1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.97772216796875, + "Text": "QTY", + "Geometry": { + "BoundingBox": { + "Width": 0.027007749304175377, + "Height": 0.008408439345657825, + "Left": 0.4840388894081116, + "Top": 0.3188243508338928 + }, + "Polygon": [ + { + "X": 0.4840388894081116, + "Y": 0.31885579228401184 + }, + { + "X": 0.5110343098640442, + "Y": 0.3188243508338928 + }, + { + "X": 0.5110466480255127, + "Y": 0.32720139622688293 + }, + { + "X": 0.4840511679649353, + "Y": 0.3272327780723572 + } + ] + }, + "Id": "e56741e0-51fb-451c-8b35-9a2e7dda0fbf", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2e4d7001-31e1-4013-85ae-8cfc0e948996" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9599838256836, + "Text": "QTY", + "Geometry": { + "BoundingBox": { + "Width": 0.0270852018147707, + "Height": 0.008401293307542801, + "Left": 0.5505518317222595, + "Top": 0.3184622824192047 + }, + "Polygon": [ + { + "X": 0.5505518317222595, + "Y": 0.3184938430786133 + }, + { + "X": 0.577624499797821, + "Y": 0.3184622824192047 + }, + { + "X": 0.5776370167732239, + "Y": 0.3268320858478546 + }, + { + "X": 0.5505642890930176, + "Y": 0.3268635869026184 + } + ] + }, + "Id": "a54f6aca-f9d6-4e14-8207-d650f89ed1b0", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "fb9b16aa-b715-4e8e-a72e-99789aac3e56" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.86176300048828, + "Text": "LIST PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.06822152435779572, + "Height": 0.008204703219234943, + "Left": 0.6020211577415466, + "Top": 0.3245786726474762 + }, + "Polygon": [ + { + "X": 0.6020211577415466, + "Y": 0.324658066034317 + }, + { + "X": 0.6702302098274231, + "Y": 0.3245786726474762 + }, + { + "X": 0.6702426671981812, + "Y": 0.3327041566371918 + }, + { + "X": 0.6020333766937256, + "Y": 0.33278337121009827 + } + ] + }, + "Id": "67f505db-41fe-471f-b024-0dab53e7107e", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "493c5351-8eaa-4fea-950d-b99632189a40", + "5e91726d-d485-4ee9-90d3-f4b8076f22bc" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.97213745117188, + "Text": "PRICE", + "Geometry": { + "BoundingBox": { + "Width": 0.03644489869475365, + "Height": 0.00819422397762537, + "Left": 0.7149896621704102, + "Top": 0.3240368068218231 + }, + "Polygon": [ + { + "X": 0.7149896621704102, + "Y": 0.3240792155265808 + }, + { + "X": 0.7514218688011169, + "Y": 0.3240368068218231 + }, + { + "X": 0.7514345645904541, + "Y": 0.3321886956691742 + }, + { + "X": 0.7150022387504578, + "Y": 0.3322310149669647 + } + ] + }, + "Id": "a950a0f7-c695-43c9-9115-92a05441f380", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d61c820f-c3dc-4d75-827c-e225a0825425" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.34809875488281, + "Text": "U/M", + "Geometry": { + "BoundingBox": { + "Width": 0.025426793843507767, + "Height": 0.008513799868524075, + "Left": 0.7892688512802124, + "Top": 0.3236437439918518 + }, + "Polygon": [ + { + "X": 0.7892688512802124, + "Y": 0.3236733376979828 + }, + { + "X": 0.8146822452545166, + "Y": 0.3236437439918518 + }, + { + "X": 0.8146956562995911, + "Y": 0.33212804794311523 + }, + { + "X": 0.7892822027206421, + "Y": 0.33215755224227905 + } + ] + }, + "Id": "dd909262-dad8-4d91-aea4-b93b1ceae9eb", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e3010b98-6071-41ee-9729-bfa712dfc51f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.5205078125, + "Text": "EXTENSION", + "Geometry": { + "BoundingBox": { + "Width": 0.07335331290960312, + "Height": 0.008393822237849236, + "Left": 0.8592621684074402, + "Top": 0.3231566250324249 + }, + "Polygon": [ + { + "X": 0.8592621684074402, + "Y": 0.3232420086860657 + }, + { + "X": 0.9326019883155823, + "Y": 0.3231566250324249 + }, + { + "X": 0.9326155185699463, + "Y": 0.3314652442932129 + }, + { + "X": 0.8592754602432251, + "Y": 0.3315504491329193 + } + ] + }, + "Id": "427b516b-4e67-4bc2-bbdf-45d7f51a31ad", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "009b09f3-7c35-485f-888c-7fc24b92a692" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9858169555664, + "Text": "OPEN", + "Geometry": { + "BoundingBox": { + "Width": 0.034930747002363205, + "Height": 0.00831565447151661, + "Left": 0.4104878604412079, + "Top": 0.3314407765865326 + }, + "Polygon": [ + { + "X": 0.4104878604412079, + "Y": 0.33148133754730225 + }, + { + "X": 0.44540658593177795, + "Y": 0.3314407765865326 + }, + { + "X": 0.4454185962677002, + "Y": 0.3397159278392792 + }, + { + "X": 0.4104997515678406, + "Y": 0.33975642919540405 + } + ] + }, + "Id": "37891f0e-3585-4e5c-9dc9-0bf18fafc686", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "35dd7224-fd04-4b06-8384-3964edcfb6b9" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.93403625488281, + "Text": "SHIPPED", + "Geometry": { + "BoundingBox": { + "Width": 0.05395078286528587, + "Height": 0.008176436647772789, + "Left": 0.47092631459236145, + "Top": 0.3311942219734192 + }, + "Polygon": [ + { + "X": 0.47092631459236145, + "Y": 0.3312568962574005 + }, + { + "X": 0.5248650908470154, + "Y": 0.3311942219734192 + }, + { + "X": 0.5248770713806152, + "Y": 0.33930811285972595 + }, + { + "X": 0.47093817591667175, + "Y": 0.3393706679344177 + } + ] + }, + "Id": "77ae465b-7ee7-4592-b27c-6341c0e89492", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "397bc517-42d2-4817-a6d1-546036bb0623" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.72340393066406, + "Text": "B/O", + "Geometry": { + "BoundingBox": { + "Width": 0.02205323614180088, + "Height": 0.00880509428679943, + "Left": 0.5528959631919861, + "Top": 0.33100369572639465 + }, + "Polygon": [ + { + "X": 0.5528959631919861, + "Y": 0.3310292959213257 + }, + { + "X": 0.5749360918998718, + "Y": 0.33100369572639465 + }, + { + "X": 0.5749492049217224, + "Y": 0.3397832214832306 + }, + { + "X": 0.5529090762138367, + "Y": 0.33980879187583923 + } + ] + }, + "Id": "5dcbd1a0-7f65-4ce8-b76c-83979e140139", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "211bdd45-46a7-499e-ac98-c926d54f4571" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 77.96674346923828, + "Text": "TO1200453C", + "Geometry": { + "BoundingBox": { + "Width": 0.10509808361530304, + "Height": 0.010013116523623466, + "Left": 0.04672214388847351, + "Top": 0.3595494031906128 + }, + "Polygon": [ + { + "X": 0.04672214388847351, + "Y": 0.35967063903808594 + }, + { + "X": 0.15180689096450806, + "Y": 0.3595494031906128 + }, + { + "X": 0.15182022750377655, + "Y": 0.36944156885147095 + }, + { + "X": 0.04673510417342186, + "Y": 0.3695625066757202 + } + ] + }, + "Id": "088ee46b-e60a-4a6d-8667-e820f548b8e5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a287c82e-dbca-43e0-990e-bdf02e5659c2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.81033325195312, + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.00598410377278924, + "Height": 0.009178688749670982, + "Left": 0.45207667350769043, + "Top": 0.3590306043624878 + }, + "Polygon": [ + { + "X": 0.45207667350769043, + "Y": 0.35903748869895935 + }, + { + "X": 0.45804744958877563, + "Y": 0.3590306043624878 + }, + { + "X": 0.45806077122688293, + "Y": 0.36820241808891296 + }, + { + "X": 0.45208999514579773, + "Y": 0.36820927262306213 + } + ] + }, + "Id": "6937c15c-2dc8-4df3-b083-529827c97d8a", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "5e0aafc3-a3c8-4f11-9d98-a4d4e91f7ba0" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.23617553710938, + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.005709409713745117, + "Height": 0.009095893241465092, + "Left": 0.5201353430747986, + "Top": 0.3588726818561554 + }, + "Polygon": [ + { + "X": 0.5201353430747986, + "Y": 0.3588792383670807 + }, + { + "X": 0.5258312821388245, + "Y": 0.3588726818561554 + }, + { + "X": 0.5258447527885437, + "Y": 0.3679620027542114 + }, + { + "X": 0.520148754119873, + "Y": 0.3679685592651367 + } + ] + }, + "Id": "40c3788c-25e0-4333-8dd7-65ef3cd39244", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "894be092-bb37-4475-bc24-710d774f0476" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 79.68565368652344, + "Text": "0", + "Geometry": { + "BoundingBox": { + "Width": 0.010114015080034733, + "Height": 0.009526381269097328, + "Left": 0.5756165981292725, + "Top": 0.3584578335285187 + }, + "Polygon": [ + { + "X": 0.5756165981292725, + "Y": 0.35846948623657227 + }, + { + "X": 0.5857163667678833, + "Y": 0.3584578335285187 + }, + { + "X": 0.5857306122779846, + "Y": 0.36797258257865906 + }, + { + "X": 0.5756308436393738, + "Y": 0.36798423528671265 + } + ] + }, + "Id": "5e02b409-5490-4e90-a5c8-9695ccbff44c", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e8efa977-0ca4-4ea2-9845-b2f7b862717c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90790557861328, + "Text": "537.34", + "Geometry": { + "BoundingBox": { + "Width": 0.05580630898475647, + "Height": 0.009961158037185669, + "Left": 0.6218011379241943, + "Top": 0.35794711112976074 + }, + "Polygon": [ + { + "X": 0.6218011379241943, + "Y": 0.35801148414611816 + }, + { + "X": 0.6775922775268555, + "Y": 0.35794711112976074 + }, + { + "X": 0.6776074171066284, + "Y": 0.36784401535987854 + }, + { + "X": 0.621816098690033, + "Y": 0.3679082691669464 + } + ] + }, + "Id": "6a4e5e68-8581-48b2-913c-caaa69206624", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a4ba3bce-99c2-4a32-8a95-ac6c9c94b46b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.796142578125, + "Text": "317.03 EA", + "Geometry": { + "BoundingBox": { + "Width": 0.09212660789489746, + "Height": 0.010226531885564327, + "Left": 0.7166075706481934, + "Top": 0.35739466547966003 + }, + "Polygon": [ + { + "X": 0.7166075706481934, + "Y": 0.35750097036361694 + }, + { + "X": 0.808718204498291, + "Y": 0.35739466547966003 + }, + { + "X": 0.8087341785430908, + "Y": 0.3675151467323303 + }, + { + "X": 0.7166231870651245, + "Y": 0.36762118339538574 + } + ] + }, + "Id": "60d2ac4c-d1fa-4fb7-87fc-0102d779b7d7", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0b27b133-0747-48c9-bd9e-d9a49360a3b3", + "5e286014-533d-41ff-a751-e8a256eccc8c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.85729217529297, + "Text": "317.03", + "Geometry": { + "BoundingBox": { + "Width": 0.05585863068699837, + "Height": 0.01025800034403801, + "Left": 0.9059430956840515, + "Top": 0.35643598437309265 + }, + "Polygon": [ + { + "X": 0.9059430956840515, + "Y": 0.35650044679641724 + }, + { + "X": 0.961785078048706, + "Y": 0.35643598437309265 + }, + { + "X": 0.9618017077445984, + "Y": 0.3666296899318695 + }, + { + "X": 0.9059595465660095, + "Y": 0.36669400334358215 + } + ] + }, + "Id": "a7ec5b0c-8ed5-4b9f-9ede-657a10756418", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "77462cd6-bd20-4701-bd4d-0ef82a191711" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 95.86334991455078, + "Text": "GRILLE;HONEYCOMB; 18-21 TUNDRA", + "Geometry": { + "BoundingBox": { + "Width": 0.29105043411254883, + "Height": 0.011477969586849213, + "Left": 0.05875195562839508, + "Top": 0.37425491213798523 + }, + "Polygon": [ + { + "X": 0.05875195562839508, + "Y": 0.3745894134044647 + }, + { + "X": 0.3497866094112396, + "Y": 0.37425491213798523 + }, + { + "X": 0.3498024046421051, + "Y": 0.3853992819786072 + }, + { + "X": 0.05876660346984863, + "Y": 0.38573285937309265 + } + ] + }, + "Id": "b1aae8ed-e524-40a8-b4b4-3e468d153fef", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2dfc8ae6-4804-4838-a0d7-bbb2c117090b", + "e98e4068-11d3-4dd5-b8c4-ea7a3a391116", + "8aaad556-7776-4c86-aa84-c8676ae9c65e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.58609008789062, + "Text": "CHR FRM/LT GRY CNT;RND EMB TYP", + "Geometry": { + "BoundingBox": { + "Width": 0.29357287287712097, + "Height": 0.011480778455734253, + "Left": 0.05881696939468384, + "Top": 0.3893668055534363 + }, + "Polygon": [ + { + "X": 0.05881696939468384, + "Y": 0.3897029459476471 + }, + { + "X": 0.35237404704093933, + "Y": 0.3893668055534363 + }, + { + "X": 0.3523898422718048, + "Y": 0.4005123972892761 + }, + { + "X": 0.05883162096142769, + "Y": 0.40084758400917053 + } + ] + }, + "Id": "5ef99b5d-17ea-456f-a8fe-6103eef3739b", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "67914d8d-de52-4679-90f7-5e23f116b7b2", + "c2643f5e-8bd6-4a91-b916-192bc7ea352d", + "d403e7dd-9a92-4634-bef6-060d3c719ff5", + "686d5950-1d97-452a-8ea3-618e5a8c8d2c", + "3250b181-52f0-479a-8548-de3389f2ccbe", + "ad6a20c4-1830-48dc-8cee-2f6f78d817c7" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.56906127929688, + "Text": "Lot # 2205A", + "Geometry": { + "BoundingBox": { + "Width": 0.09733115136623383, + "Height": 0.009963656775653362, + "Left": 0.05911313369870186, + "Top": 0.40466856956481934 + }, + "Polygon": [ + { + "X": 0.05911313369870186, + "Y": 0.4047795832157135 + }, + { + "X": 0.15643098950386047, + "Y": 0.40466856956481934 + }, + { + "X": 0.15644428133964539, + "Y": 0.4145215153694153 + }, + { + "X": 0.05912608653306961, + "Y": 0.41463223099708557 + } + ] + }, + "Id": "cf20041c-0d2c-4263-aa71-e54604640c5c", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "ebf095ce-c89c-48e4-9190-6c718e146f60", + "259c7895-4863-4eec-98c7-e97bbb7c3454", + "41189fbc-4f0f-4e23-8e28-7726d6223538" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.88201904296875, + "Text": "Vendor 200382", + "Geometry": { + "BoundingBox": { + "Width": 0.12144827097654343, + "Height": 0.010172535665333271, + "Left": 0.5156876444816589, + "Top": 0.4035547077655792 + }, + "Polygon": [ + { + "X": 0.5156876444816589, + "Y": 0.40369322896003723 + }, + { + "X": 0.6371206641197205, + "Y": 0.4035547077655792 + }, + { + "X": 0.637135922908783, + "Y": 0.4135890603065491 + }, + { + "X": 0.5157024264335632, + "Y": 0.4137272536754608 + } + ] + }, + "Id": "58aaa57c-4b68-4ce5-b8d2-aa161f6f877f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2b0777b6-7dbd-4450-be14-f3736274a3e5", + "e0abb04a-6ed7-4a06-a418-d694b774b327" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 87.86726379394531, + "Text": "TO2503260C", + "Geometry": { + "BoundingBox": { + "Width": 0.10526879131793976, + "Height": 0.01011649239808321, + "Left": 0.047383975237607956, + "Top": 0.436377614736557 + }, + "Polygon": [ + { + "X": 0.047383975237607956, + "Y": 0.43649667501449585 + }, + { + "X": 0.15263929963111877, + "Y": 0.436377614736557 + }, + { + "X": 0.152652770280838, + "Y": 0.44637531042099 + }, + { + "X": 0.047397077083587646, + "Y": 0.44649410247802734 + } + ] + }, + "Id": "20003b7e-4f89-479d-b328-2f3a805aed6f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "664aa858-7348-44af-8e0a-9f9e380af007" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.37742614746094, + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.006231909152120352, + "Height": 0.0095490338280797, + "Left": 0.4525376856327057, + "Top": 0.4360588788986206 + }, + "Polygon": [ + { + "X": 0.4525376856327057, + "Y": 0.4360659122467041 + }, + { + "X": 0.4587557017803192, + "Y": 0.4360588788986206 + }, + { + "X": 0.4587695896625519, + "Y": 0.4456008970737457 + }, + { + "X": 0.45255157351493835, + "Y": 0.44560790061950684 + } + ] + }, + "Id": "f45216c4-19e7-4a05-83bd-3f6ec5476366", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "c4b4fc10-f7b4-4145-b07e-46d3fcf9d266" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 91.75514221191406, + "Text": "1", + "Geometry": { + "BoundingBox": { + "Width": 0.005577323026955128, + "Height": 0.008879962377250195, + "Left": 0.5210907459259033, + "Top": 0.43615227937698364 + }, + "Polygon": [ + { + "X": 0.5210907459259033, + "Y": 0.43615856766700745 + }, + { + "X": 0.5266549587249756, + "Y": 0.43615227937698364 + }, + { + "X": 0.5266680717468262, + "Y": 0.4450259506702423 + }, + { + "X": 0.5211038589477539, + "Y": 0.4450322389602661 + } + ] + }, + "Id": "12ca47b5-1711-4292-a1f9-0c6f45f1b973", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "aa997f76-020e-4237-a9c6-c9f5328b71ac" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.12946319580078, + "Text": "0", + "Geometry": { + "BoundingBox": { + "Width": 0.010250605642795563, + "Height": 0.009801243431866169, + "Left": 0.5759479403495789, + "Top": 0.43536466360092163 + }, + "Polygon": [ + { + "X": 0.5759479403495789, + "Y": 0.43537625670433044 + }, + { + "X": 0.5861838459968567, + "Y": 0.43536466360092163 + }, + { + "X": 0.5861985087394714, + "Y": 0.4451543688774109 + }, + { + "X": 0.5759625434875488, + "Y": 0.4451659321784973 + } + ] + }, + "Id": "d070c792-a3ef-4a0d-a49f-5e9f9281f9a5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "1e37a7a8-2dee-454f-8ed0-e0178d445a97" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.83314514160156, + "Text": "289.63", + "Geometry": { + "BoundingBox": { + "Width": 0.05589712783694267, + "Height": 0.010137727484107018, + "Left": 0.6224652528762817, + "Top": 0.4349651038646698 + }, + "Polygon": [ + { + "X": 0.6224652528762817, + "Y": 0.4350283443927765 + }, + { + "X": 0.6783469319343567, + "Y": 0.4349651038646698 + }, + { + "X": 0.6783623695373535, + "Y": 0.4450397491455078 + }, + { + "X": 0.6224805116653442, + "Y": 0.44510284066200256 + } + ] + }, + "Id": "719497ab-5ba8-4f1f-99d3-af62ef6d4d06", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d648e768-50a7-4c1a-a9f7-abddf0edb361" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.7951889038086, + "Text": "170.88 EA", + "Geometry": { + "BoundingBox": { + "Width": 0.09133321046829224, + "Height": 0.010334258899092674, + "Left": 0.7180867195129395, + "Top": 0.4344142973423004 + }, + "Polygon": [ + { + "X": 0.7180867195129395, + "Y": 0.43451762199401855 + }, + { + "X": 0.8094037771224976, + "Y": 0.4344142973423004 + }, + { + "X": 0.8094199299812317, + "Y": 0.4446454644203186 + }, + { + "X": 0.7181025147438049, + "Y": 0.44474855065345764 + } + ] + }, + "Id": "54f7aafc-52d9-4b61-bc27-30e4bc790c69", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "7edfdd18-e17b-4084-8ddf-f1bbe1972574", + "6c1763dc-645a-4fae-ac51-7d0652b48f8a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9477310180664, + "Text": "170.88", + "Geometry": { + "BoundingBox": { + "Width": 0.05504940450191498, + "Height": 0.010459932498633862, + "Left": 0.9076079726219177, + "Top": 0.4334750771522522 + }, + "Polygon": [ + { + "X": 0.9076079726219177, + "Y": 0.4335373640060425 + }, + { + "X": 0.9626404047012329, + "Y": 0.4334750771522522 + }, + { + "X": 0.9626573920249939, + "Y": 0.44387286901474 + }, + { + "X": 0.9076247811317444, + "Y": 0.44393500685691833 + } + ] + }, + "Id": "86d96393-fc43-4d82-b064-ac56ce93619b", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6387ef00-f6bb-46e5-b966-7f1be5d6746e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 96.28768157958984, + "Text": "HLAMP ASM RH; 18-21 TUNDRA", + "Geometry": { + "BoundingBox": { + "Width": 0.25452643632888794, + "Height": 0.011422467418015003, + "Left": 0.059354692697525024, + "Top": 0.451450377702713 + }, + "Polygon": [ + { + "X": 0.059354692697525024, + "Y": 0.4517372250556946 + }, + { + "X": 0.3138654828071594, + "Y": 0.451450377702713 + }, + { + "X": 0.31388112902641296, + "Y": 0.4625868499279022 + }, + { + "X": 0.05936933308839798, + "Y": 0.46287286281585693 + } + ] + }, + "Id": "180716d3-5396-43d5-aa32-d7268013fbf7", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6e1b4f35-19dc-4888-8c1e-1403b3d0a808", + "9f783289-410f-4950-97cd-53a432c9dc9d", + "7cc7120f-d250-47d9-ac62-9948748f6fb0", + "0b403bd7-83f0-4622-b861-9d7b5482af64", + "71b1880a-403d-4349-b544-379d59a605fb" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.319091796875, + "Text": "WO/SMOKED BZL;HLGN", + "Geometry": { + "BoundingBox": { + "Width": 0.18651996552944183, + "Height": 0.011309544555842876, + "Left": 0.058816444128751755, + "Top": 0.4667414128780365 + }, + "Polygon": [ + { + "X": 0.058816444128751755, + "Y": 0.46695077419281006 + }, + { + "X": 0.2453210949897766, + "Y": 0.4667414128780365 + }, + { + "X": 0.2453364133834839, + "Y": 0.47784221172332764 + }, + { + "X": 0.05883103609085083, + "Y": 0.47805094718933105 + } + ] + }, + "Id": "3ce5bc6f-bd15-4c38-b2d5-ab6567171990", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "17230a99-6018-44d4-b66a-1ec9d09fa2cd", + "dce5e6b1-cfa0-479a-af97-534019a0ee88" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.7040786743164, + "Text": "Lot # 20220627", + "Geometry": { + "BoundingBox": { + "Width": 0.12517568469047546, + "Height": 0.010045597329735756, + "Left": 0.05960672348737717, + "Top": 0.4820237159729004 + }, + "Polygon": [ + { + "X": 0.05960672348737717, + "Y": 0.482163667678833 + }, + { + "X": 0.184768944978714, + "Y": 0.4820237159729004 + }, + { + "X": 0.18478240072727203, + "Y": 0.4919297397136688 + }, + { + "X": 0.05961974710226059, + "Y": 0.4920693039894104 + } + ] + }, + "Id": "1b149278-7848-4df8-b851-6f3cb864c69f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a971490f-5cab-48af-8f57-5b5e828c4edd", + "ef9c4336-f578-4188-9cb1-01fea9a520a7", + "7f5ea6ea-afa8-46cf-a4c9-3013f30968ed" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.81155395507812, + "Text": "Vendor 200411", + "Geometry": { + "BoundingBox": { + "Width": 0.12019040435552597, + "Height": 0.010617466643452644, + "Left": 0.5153003334999084, + "Top": 0.4811968207359314 + }, + "Polygon": [ + { + "X": 0.5153003334999084, + "Y": 0.4813311994075775 + }, + { + "X": 0.6354748010635376, + "Y": 0.4811968207359314 + }, + { + "X": 0.6354907155036926, + "Y": 0.4916802644729614 + }, + { + "X": 0.51531583070755, + "Y": 0.4918142855167389 + } + ] + }, + "Id": "faca1942-2b85-4604-8dd1-b4dfc17227ea", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "5eecb561-27bc-4d4d-b090-19695bab111e", + "311d65df-036b-4b9a-a34b-caa5257b785c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.89298248291016, + "Text": "OCT 14TH", + "Geometry": { + "BoundingBox": { + "Width": 0.08087767660617828, + "Height": 0.010177559219300747, + "Left": 0.059624481946229935, + "Top": 0.4979671537876129 + }, + "Polygon": [ + { + "X": 0.059624481946229935, + "Y": 0.49805718660354614 + }, + { + "X": 0.1404886096715927, + "Y": 0.4979671537876129 + }, + { + "X": 0.14050215482711792, + "Y": 0.5080549120903015 + }, + { + "X": 0.05963774397969246, + "Y": 0.5081446766853333 + } + ] + }, + "Id": "05ad662e-7051-4b60-b959-b213a646e093", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e153d155-d3a0-427b-8733-873ed6cca8d6", + "c2240c83-8ea6-4ab8-b693-2cf4354e9f52" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 91.20771789550781, + "Text": "Hi Style", + "Geometry": { + "BoundingBox": { + "Width": 0.22121162712574005, + "Height": 0.04426328465342522, + "Left": 0.35809168219566345, + "Top": 0.5275147557258606 + }, + "Polygon": [ + { + "X": 0.35809168219566345, + "Y": 0.5277590155601501 + }, + { + "X": 0.5792373418807983, + "Y": 0.5275147557258606 + }, + { + "X": 0.5793033242225647, + "Y": 0.5715365409851074 + }, + { + "X": 0.35815417766571045, + "Y": 0.5717779994010925 + } + ] + }, + "Id": "ed63341e-b716-40e0-a7e3-228b7eeaa206", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6f383a8e-116e-4198-998d-6177b13dc755", + "8e9399f6-213b-49a8-8603-a2bc71ffa189" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 81.75589752197266, + "Text": "Tundsa", + "Geometry": { + "BoundingBox": { + "Width": 0.17538049817085266, + "Height": 0.04155232757329941, + "Left": 0.40554121136665344, + "Top": 0.5806329250335693 + }, + "Polygon": [ + { + "X": 0.40554121136665344, + "Y": 0.5808238983154297 + }, + { + "X": 0.5808597207069397, + "Y": 0.5806329250335693 + }, + { + "X": 0.5809217095375061, + "Y": 0.6219964027404785 + }, + { + "X": 0.4056006371974945, + "Y": 0.622185230255127 + } + ] + }, + "Id": "d2a49c40-078f-488c-8b00-968b9b5801ac", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e2a5ce57-20db-4cc3-b28c-213d41653ecd" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.86050415039062, + "Text": "Return", + "Geometry": { + "BoundingBox": { + "Width": 0.13233141601085663, + "Height": 0.047657303512096405, + "Left": 0.18893730640411377, + "Top": 0.6287118196487427 + }, + "Polygon": [ + { + "X": 0.18893730640411377, + "Y": 0.6288540959358215 + }, + { + "X": 0.3212018609046936, + "Y": 0.6287118196487427 + }, + { + "X": 0.3212687373161316, + "Y": 0.6762287616729736 + }, + { + "X": 0.18900194764137268, + "Y": 0.6763691306114197 + } + ] + }, + "Id": "bb22b75a-7ac5-4c31-a102-a94d2731c538", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "b36d7b96-8a4a-4d0c-b087-4044708a9ec5" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 82.96365356445312, + "Text": "10/21", + "Geometry": { + "BoundingBox": { + "Width": 0.11451564729213715, + "Height": 0.04458807408809662, + "Left": 0.4438190758228302, + "Top": 0.6225461363792419 + }, + "Polygon": [ + { + "X": 0.4438190758228302, + "Y": 0.6226693987846375 + }, + { + "X": 0.5582684278488159, + "Y": 0.6225461363792419 + }, + { + "X": 0.5583347082138062, + "Y": 0.6670124530792236 + }, + { + "X": 0.4438835680484772, + "Y": 0.6671342253684998 + } + ] + }, + "Id": "9ee0b7a9-bc86-4f2f-92a7-8cfca2ac093f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "2a841581-54c9-43b6-8623-f9c3ea237fde" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.39623260498047, + "Text": "wrong style", + "Geometry": { + "BoundingBox": { + "Width": 0.21972297132015228, + "Height": 0.058413129299879074, + "Left": 0.17462272942066193, + "Top": 0.658992350101471 + }, + "Polygon": [ + { + "X": 0.17462272942066193, + "Y": 0.6592265963554382 + }, + { + "X": 0.3942623436450958, + "Y": 0.658992350101471 + }, + { + "X": 0.3943457007408142, + "Y": 0.7171749472618103 + }, + { + "X": 0.17470157146453857, + "Y": 0.7174054384231567 + } + ] + }, + "Id": "473098b3-734f-4658-9e4a-bfe1c7c98ee2", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "587bae11-7485-4a5e-a496-0b93c96385f4", + "1b57c866-a27a-4eda-8a42-3ac7228f4da4" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.44489288330078, + "Text": "NEW! ORDER YOUR AUTO DATA LABELS TODAY!", + "Geometry": { + "BoundingBox": { + "Width": 0.31544336676597595, + "Height": 0.009002622216939926, + "Left": 0.04544871672987938, + "Top": 0.7236225605010986 + }, + "Polygon": [ + { + "X": 0.04544871672987938, + "Y": 0.7239530086517334 + }, + { + "X": 0.3608797788619995, + "Y": 0.7236225605010986 + }, + { + "X": 0.36089208722114563, + "Y": 0.7322955131530762 + }, + { + "X": 0.04546007141470909, + "Y": 0.7326251864433289 + } + ] + }, + "Id": "8242922b-fe79-4df9-99ac-0f82ebb21a29", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a0ea7fd0-4bb9-47e1-b4a9-d9b1213d3543", + "e7374b2b-cf9d-43f6-9f44-777607b39f70", + "fbbf8713-1071-49af-9f3c-44b78942c239", + "fdba4c7d-a813-43f0-b32c-11bed8e2ff4e", + "4e7cd339-6a20-44e1-bffc-bd1373b7ac5f", + "58a3d26a-bc83-46be-802c-c9ee3f69756c", + "f976ee1d-84a3-433f-94d0-119ad1899ca1" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.76638793945312, + "Text": "A $5.00 DELIVERY FEE HAS BEEN ADDED TO YOUR INVOICE", + "Geometry": { + "BoundingBox": { + "Width": 0.38531431555747986, + "Height": 0.008947170339524746, + "Left": 0.04520918428897858, + "Top": 0.7356358170509338 + }, + "Polygon": [ + { + "X": 0.04520918428897858, + "Y": 0.7360381484031677 + }, + { + "X": 0.43051114678382874, + "Y": 0.7356358170509338 + }, + { + "X": 0.43052348494529724, + "Y": 0.7441816329956055 + }, + { + "X": 0.04522037133574486, + "Y": 0.744583010673523 + } + ] + }, + "Id": "39656611-b064-4631-aa0d-28a1eece75cc", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "1bbe9db1-5e65-489e-a218-1b2524176944", + "c994e988-d4e0-412f-8ff4-99bb54b28de2", + "60809ed5-cbab-4ff8-9375-0bd5a31a9df9", + "7aca6b73-283b-4c38-8ca3-60804d657c0e", + "14e73776-6bd2-4782-b2d7-c38028325d9e", + "aeaf78ee-9fd0-45a8-bc05-e2457510a46c", + "07850c52-4fed-4b4c-aa21-b091c438efb8", + "a405c0a3-5d2d-40fd-99b1-3728cb2e6d37", + "03e01634-6f31-4a78-9fda-92fbac36fb5b", + "567eaadf-0fa8-4493-a516-0a95e50035ed" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.11100769042969, + "Text": "CURRENT TAX RATE FOR THIS INVOICE: PST/QST 0.000% GST/HST 5.000%", + "Geometry": { + "BoundingBox": { + "Width": 0.4931870996952057, + "Height": 0.00943546649068594, + "Left": 0.045601390302181244, + "Top": 0.7475958466529846 + }, + "Polygon": [ + { + "X": 0.045601390302181244, + "Y": 0.7481091022491455 + }, + { + "X": 0.5387752652168274, + "Y": 0.7475958466529846 + }, + { + "X": 0.5387884974479675, + "Y": 0.7565194368362427 + }, + { + "X": 0.04561307653784752, + "Y": 0.7570313215255737 + } + ] + }, + "Id": "9742e6f8-d3d5-45ce-a3ec-f64753814807", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a2ba7c25-d32f-403b-948d-cfdaabd7fae3", + "e3e482c1-c970-40a3-99b6-81e58ebcbad5", + "221d8e19-4147-4f6a-923d-727a68b50b41", + "dd93afb1-1447-4bd3-bb68-e5f69187d28f", + "70dbea9d-f597-4757-9c58-eeaffafc8384", + "ad933b9a-4295-43d8-9bdb-8dcd515fb174", + "fe0a8697-ecdc-4a85-a887-a4166a5da7f7", + "0dddda88-b8ab-40f2-88db-0f36778c4cc4", + "55307e02-9736-496e-96e4-c7021237b131", + "e4d8e50e-e436-4730-88ee-a2df73755a4f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.81617736816406, + "Text": "Payment Terms:", + "Geometry": { + "BoundingBox": { + "Width": 0.0739399716258049, + "Height": 0.007609744556248188, + "Left": 0.04529226943850517, + "Top": 0.7647900581359863 + }, + "Polygon": [ + { + "X": 0.04529226943850517, + "Y": 0.7648666501045227 + }, + { + "X": 0.11922217905521393, + "Y": 0.7647900581359863 + }, + { + "X": 0.11923223733901978, + "Y": 0.7723234295845032 + }, + { + "X": 0.0453021340072155, + "Y": 0.7723998427391052 + } + ] + }, + "Id": "c1257442-1828-4d6a-bc4d-0fc78429f5a8", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "13692b15-8551-4d6e-ba85-b76ee8877fc8", + "23a49916-97d2-4cd6-a783-d48b615176b2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.67991638183594, + "Text": "All payments are due in full in accordance with the terms stated herein. Amounts not paid by the due date are subject to a late payment fee of the greater of (i) 2% per", + "Geometry": { + "BoundingBox": { + "Width": 0.755584180355072, + "Height": 0.009350225329399109, + "Left": 0.16795985400676727, + "Top": 0.7637794017791748 + }, + "Polygon": [ + { + "X": 0.16795985400676727, + "Y": 0.7645620107650757 + }, + { + "X": 0.923530101776123, + "Y": 0.7637794017791748 + }, + { + "X": 0.9235439896583557, + "Y": 0.7723488807678223 + }, + { + "X": 0.1679714471101761, + "Y": 0.7731295824050903 + } + ] + }, + "Id": "a1eb2b32-c131-4aff-afb3-618e8ab1e67d", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "884ef76e-a48c-48fc-8b40-80c1067a9a3c", + "c5206e34-61c5-4a03-8e04-3c11d40606ef", + "f9db6f55-a59a-4ef5-b213-098de2fcbd51", + "7004b3fa-398f-49f6-9f2a-a610a3438b8d", + "7ddd51a1-3c4c-49ef-97a9-6f81767d1ccd", + "bcafecf6-6d27-40ef-8167-ad0fe05304f2", + "1bf31b6a-cbe3-4d33-b88d-4d68c885cd93", + "9dd797fc-a0b2-41be-9149-577b2215d44b", + "d89eebfe-1276-4bc5-a5d4-d2fdc68021e2", + "5e9d231a-a6bd-4736-8a58-07d69ac1bdb5", + "f1c22694-7083-4365-9e0b-894f6955e416", + "25a74975-9592-4762-bd56-364dfeaff52a", + "ea451553-7cec-4719-9d32-266cd037b285", + "b0eec90f-58ab-44e3-a927-eb912d9336a5", + "83ad1bef-acaa-44a1-b09a-a17722ba80c3", + "ed13604f-80de-44cf-9fba-54163057528f", + "79c5a028-4879-42a6-9e5c-a1e2e8784850", + "f9e923a9-8ffb-471a-a5e2-cf9084f698b5", + "a6222a0c-9506-49b8-b185-a513fed5ea35", + "4565ecd0-dd45-42c2-92c4-5cd9cb12331f", + "256f8f79-3552-41f8-aa71-6e29168951fb", + "5eab0165-719b-4b99-938c-daf01a4a20d4", + "22f96483-307f-4062-b5b1-96cb7e0d850c", + "0d1d2cd0-5e67-44d7-9fdd-d75b5eb7c30b", + "25aafafe-e35d-4a22-ba3e-5a78ff4e8d62", + "2a3806ae-bc78-477b-872b-c22cfaefa8c1", + "0039ead5-5abf-4200-acce-3675cb69ea15", + "7d0404a4-fcba-4074-9e58-03eb5b9793c6", + "8ae35308-ee00-41d8-85f3-536b7c1292d4", + "192f670d-6217-4133-937b-1c6350736024", + "35f8e3c3-6d9c-4410-9d07-7c7fcf2658a3", + "59a2dc57-9cf6-41b5-9742-1f7cd936ddca", + "f8625a50-0fe2-47fe-b0b2-04d2a927f371", + "5964be92-c177-4c74-9c50-69534f6c9a9f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.51773071289062, + "Text": "month compounded monthly (26.8% per year) or (ii) $5.00. In addition, the customer is responsible for all fees and expenses of collection, including reasonable attorneys'", + "Geometry": { + "BoundingBox": { + "Width": 0.7699001431465149, + "Height": 0.00867484975606203, + "Left": 0.16773787140846252, + "Top": 0.7731291651725769 + }, + "Polygon": [ + { + "X": 0.16773787140846252, + "Y": 0.7739245295524597 + }, + { + "X": 0.9376252293586731, + "Y": 0.7731291651725769 + }, + { + "X": 0.9376380443572998, + "Y": 0.7810104489326477 + }, + { + "X": 0.16774854063987732, + "Y": 0.7818040251731873 + } + ] + }, + "Id": "1f7331b6-8a84-4ffc-b101-8f3ccfbc0214", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9549c80c-94b7-49f4-a63b-70797b5600fa", + "68927fb2-8578-4a14-aa8e-50f31dec881b", + "4b9ba9d4-0d32-4a56-985a-021d201e6770", + "93b2ebfc-a4f3-409a-a5f8-239a7e6d49dd", + "9fbb3067-2b9d-4f3d-b125-559982b52266", + "a2745cb6-50da-4e5c-812e-c46fc38d0d1f", + "11897fb8-16a2-408d-9d1c-7f3f87fa168b", + "7c5038f6-dd3f-4d31-97b5-5e520c856c04", + "7239f70f-925b-437c-99ed-db5030b862f7", + "bf700731-9232-4379-8d94-91a0d800160f", + "b5a59711-0012-4e1d-a3c7-6ac9635fdcc6", + "f51a37ae-e9c2-4c9e-b554-7cb0367a3c74", + "d0f9d35b-4e7c-4a27-acd2-2ac8c2cb46c9", + "d789cb0c-16e1-4ab8-a3e0-7cd2af6cce1e", + "a16dfdf7-7571-4d48-85a9-0dfbf1fe0999", + "9cecbde7-0124-476d-ab04-f0255f4d1a18", + "984c0375-5b4c-46bf-a976-f1acda227d5d", + "a3716f3b-f8c3-4555-a9e8-a3c0c8ad54c5", + "8dd047c8-9ee2-4695-8986-5c2119dcf7f0", + "ff882a61-0293-4d52-8bc1-550a26601f5c", + "ee7640cc-fcba-4ab0-951d-ad7b5ad15d56", + "430b500b-c749-4172-b6ee-a11481b6f130", + "7efeccf1-873d-4231-83c3-4856e2610780", + "6d0db429-0ad7-474f-8a88-bc3c26bb71bc", + "096c6f0e-d214-4524-b298-d5cd04cc0148" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.37259674072266, + "Text": "fees. If the foregoing charges exceed the rate that may be lawfully charged, then such charges shall be calculated at the highest lawful rate.", + "Geometry": { + "BoundingBox": { + "Width": 0.6323677897453308, + "Height": 0.008489475585520267, + "Left": 0.16820430755615234, + "Top": 0.7825645804405212 + }, + "Polygon": [ + { + "X": 0.16820430755615234, + "Y": 0.783216118812561 + }, + { + "X": 0.8005596995353699, + "Y": 0.7825645804405212 + }, + { + "X": 0.8005720973014832, + "Y": 0.7904039621353149 + }, + { + "X": 0.16821490228176117, + "Y": 0.7910540699958801 + } + ] + }, + "Id": "23577924-a385-4aa0-b03f-e0c100153498", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0bd2f105-36f5-4907-bd9c-93d725472f83", + "ca9063b6-e90a-4bcf-a496-69aff17a284b", + "34159593-0361-4fa0-84dc-61d7ad81bf59", + "147d28a2-b295-4922-b744-d22157ccdd6e", + "2969a590-5724-45ee-8efb-e72c07beb32f", + "671a004f-6bc7-41c3-be8a-29ad4b076e9f", + "84433da6-7853-4ffa-9c8b-652eb4bdfc46", + "16ada7d0-2a1f-481a-b19d-d49b4e9fdf66", + "b661528e-d0bb-4eaf-98a6-cbc781ae1a51", + "51ade705-12e0-4fab-aa30-eaa099895fd4", + "f3b2ee54-5d65-4a10-9b1f-17d1401e692c", + "c3585b1e-2781-4f31-95b1-bad35b226888", + "2ec20aa1-4692-4e31-ae7a-72b6c7a4c12b", + "9afa3d0a-296e-467b-857f-0335ef67c462", + "e78c3c48-397a-4ae6-9bea-e3475afedfb1", + "8eea0261-603a-4913-9c86-b0aa668d94b5", + "05776d75-194a-4cd3-8abb-94fe3aa70f9d", + "d6316e70-51a1-4f4e-89d0-b9657bde8318", + "444adf7f-ac68-4127-9ca0-0ae3c8b012cc", + "bde98dd4-cea8-438e-bcb5-6c62825467e2", + "50cc044f-8c46-4166-bd5c-2911583af85d", + "cc121d01-d554-4d0a-827c-1eb96f2dbdad", + "bce5004a-face-4821-9218-ebf018db3b28", + "1c48f093-3ccc-4168-8aad-d5a66b1d10fd" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.38111114501953, + "Text": "Parts must be in unaltered, re-sellable condition and in the original packaging, with the invoice. Restocking/handling fees may apply. Returns may not be accepted after", + "Geometry": { + "BoundingBox": { + "Width": 0.7535421848297119, + "Height": 0.008942611515522003, + "Left": 0.16815076768398285, + "Top": 0.7927024364471436 + }, + "Polygon": [ + { + "X": 0.16815076768398285, + "Y": 0.7934765815734863 + }, + { + "X": 0.9216797351837158, + "Y": 0.7927024364471436 + }, + { + "X": 0.921692967414856, + "Y": 0.8008726835250854 + }, + { + "X": 0.1681618094444275, + "Y": 0.801645040512085 + } + ] + }, + "Id": "5690ca7f-05e3-4f85-9c48-1c9a972f01af", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "713f30c0-5722-4718-a7a6-0a149dea4506", + "ca68a50b-8cb0-4ae9-a9db-e70a16ce8e50", + "de1058f7-2663-4845-97a3-2b9f8befe444", + "673f35f7-194c-4567-b6d2-928e0b076de3", + "148cb3ec-eef8-4316-9106-af735471cef7", + "ef7ee9ea-2d49-46e9-a66e-f1833a608f98", + "a2717298-cb60-4539-b7c1-cf84403b0b62", + "9c39a2ba-5e55-400b-a09b-93bf8fdf4071", + "435bdd94-f1a8-4742-8879-f53f58df32c4", + "8a26f75d-dbd3-4374-987b-cb1fe08142d2", + "e73c4140-48cd-42fb-b81a-837dd1bde395", + "9fcb9b48-7a18-406d-903a-d3ba5f9a6443", + "3c8c6476-7d55-4ee2-a7df-6dd0f66d6608", + "07355e27-b7e2-45eb-b8d8-947bc56cee8e", + "626111dd-6e82-433d-a018-bba379646ff1", + "a117ea82-a5b6-4f1a-bd2c-93be7c3fb119", + "cc881675-73a5-4a54-9380-829a10566c41", + "8fa10817-afb1-40bc-b14e-5b1188d1b973", + "c66d1788-ca08-4e56-8710-a56df1a475b7", + "076ec544-02b9-4b60-ad42-ccef6478a7fb", + "c73c31b0-2c12-4bcf-b5e9-6fe0bc5d32a1", + "7f238899-ef44-4cdb-ab0e-3bfe234fdf72", + "745e9d63-e4a5-4358-b79a-d2426a15a2ba", + "92ca577e-a131-4c1c-9167-0c2081f25a48", + "5e641055-024f-4a2f-9953-70d1ea6a221c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.83995056152344, + "Text": "a", + "Geometry": { + "BoundingBox": { + "Width": 0.005348030012100935, + "Height": 0.004827684257179499, + "Left": 0.9246692657470703, + "Top": 0.7940688729286194 + }, + "Polygon": [ + { + "X": 0.9246692657470703, + "Y": 0.7940743565559387 + }, + { + "X": 0.9300094842910767, + "Y": 0.7940688729286194 + }, + { + "X": 0.9300172924995422, + "Y": 0.7988910675048828 + }, + { + "X": 0.9246770739555359, + "Y": 0.7988965511322021 + } + ] + }, + "Id": "e983d2d8-40ef-48c1-aa5f-c2a6c387e842", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "85c1c71e-31f7-4afc-bb7f-1e48b51e647e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.64067077636719, + "Text": "certain date. Core charges may be refundable up to a certain date. Full details of our LKQ Return Policy and Other Terms & Conditions applicable to your purchase can be", + "Geometry": { + "BoundingBox": { + "Width": 0.7658582329750061, + "Height": 0.008493360131978989, + "Left": 0.16804420948028564, + "Top": 0.8020059466362 + }, + "Polygon": [ + { + "X": 0.16804420948028564, + "Y": 0.802790641784668 + }, + { + "X": 0.9338899254798889, + "Y": 0.8020059466362 + }, + { + "X": 0.9339024424552917, + "Y": 0.8097162842750549 + }, + { + "X": 0.16805464029312134, + "Y": 0.8104993104934692 + } + ] + }, + "Id": "e43479a8-a05e-4ac1-a80e-1a144b6971c9", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "40582c3b-4f99-4544-a996-f67a5fcc6ace", + "de6c466e-ceec-47b8-8321-a06fb73a0872", + "016b19d5-f6ba-456d-9eec-9b441120281e", + "ba8e89bb-7d71-4938-982d-3530f0186c24", + "7f8ffc27-1994-413c-a292-10cf091a4c98", + "e0c04bff-a17c-4fcb-96e9-93af1e2966db", + "f7973462-478c-4bd2-a77b-8c7bcd10aa4c", + "2f1f7182-8fcc-430b-8b82-20727dba09ec", + "28a9522c-0103-43e8-b075-bb0d1cbc7e09", + "6e549967-12e5-4179-a894-df43a5679cc5", + "5c53f703-d53c-4900-aa5f-20822776b8a0", + "64a97f6f-0872-4ee5-94d6-dffa02640b70", + "6ddd0296-81a2-4358-8bce-76e2b1500359", + "dcbe2d22-d7ef-4844-8c8e-d29976a7b5f9", + "d1e4923f-5f6d-4f00-b2c9-5c6d5f6a518e", + "0fc2efb9-d7ac-4906-8857-fc2983d7364f", + "1e8b231c-6d45-4a07-9b0d-a2b50812501a", + "251d262a-c1ae-4b24-93e5-4bcca88948f4", + "946b5bc0-db48-4cd2-9486-effe9a6f04c1", + "405ec34f-5f90-4116-8d1b-c4fcfc3e8be3", + "388b94b6-2ef8-462d-bb9f-435151252d18", + "2b3b6ba9-b029-4b96-b254-f00097b3f74a", + "8c8eeafd-7b49-4db4-abfc-439e6eb79cc7", + "69595fa9-4c4d-486a-8c8a-d3f8ec9d97e0", + "19efbf87-2f99-4b96-a616-69989893736a", + "b16059c0-253d-4795-be96-49f71a2d70ef", + "ab431b01-17f0-42e3-b639-f71e1e7e78d0", + "e15dfec8-2c53-4fa5-9a29-b2901cbb80bb", + "41d57d3b-10ab-47ea-b402-316958aa05f1", + "becf3f60-72d5-4983-8f13-2df10b44307d" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 88.76490020751953, + "Text": "found here: https://www.lkgcorp.com/LKQ-terms-and-conditions", + "Geometry": { + "BoundingBox": { + "Width": 0.29173287749290466, + "Height": 0.007410431746393442, + "Left": 0.16841235756874084, + "Top": 0.811790406703949 + }, + "Polygon": [ + { + "X": 0.16841235756874084, + "Y": 0.8120885491371155 + }, + { + "X": 0.4601348638534546, + "Y": 0.811790406703949 + }, + { + "X": 0.4601452350616455, + "Y": 0.8189033269882202 + }, + { + "X": 0.16842198371887207, + "Y": 0.819200873374939 + } + ] + }, + "Id": "6d39ae16-9e96-40c5-a165-f239e09cf55e", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "753fd08d-495d-4685-90af-6733199a7100", + "7904a4b9-201b-407e-b1c8-8238a8ac9887", + "e45c4035-71ec-4858-90b3-c6614fb693d2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.40636444091797, + "Text": "Keystone Refund Policy:", + "Geometry": { + "BoundingBox": { + "Width": 0.10881359130144119, + "Height": 0.007700348272919655, + "Left": 0.04543616622686386, + "Top": 0.8189330697059631 + }, + "Polygon": [ + { + "X": 0.04543616622686386, + "Y": 0.8190440535545349 + }, + { + "X": 0.15423953533172607, + "Y": 0.8189330697059631 + }, + { + "X": 0.15424975752830505, + "Y": 0.8265226483345032 + }, + { + "X": 0.04544610530138016, + "Y": 0.8266333937644958 + } + ] + }, + "Id": "d5b2b46b-f950-4acb-9c16-433826199de9", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "724a792f-25b8-44a0-84e9-6a7252bc2783", + "ae1ecf85-59c9-4789-b164-4b0dacb31ae0", + "f0fbeba4-5a26-4bac-8d90-dc51b12f7e45" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 98.74781799316406, + "Text": "Cash purchases returned on the same day as delivered will be refunded by your local branch All other refunds will be processed by Keystone and sent via U.S. mail", + "Geometry": { + "BoundingBox": { + "Width": 0.7401145100593567, + "Height": 0.008598804473876953, + "Left": 0.16810476779937744, + "Top": 0.8182455897331238 + }, + "Polygon": [ + { + "X": 0.16810476779937744, + "Y": 0.8190004825592041 + }, + { + "X": 0.908206582069397, + "Y": 0.8182455897331238 + }, + { + "X": 0.9082192778587341, + "Y": 0.8260912895202637 + }, + { + "X": 0.16811537742614746, + "Y": 0.8268443942070007 + } + ] + }, + "Id": "d06bb636-6ff4-40f3-b4ff-be09451bd667", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "261a6ec3-537c-43db-b571-f1863412870b", + "55175691-10d7-4174-bd37-0964c044ba71", + "c31b347f-b23a-4c3d-a9f9-bc09dfefc53b", + "900e2bc4-85b7-4296-9b32-09989657129e", + "c226a502-9ec4-49d5-a64b-3e9367c4a2bc", + "80eb2963-6ddc-42e3-83e3-71db55056825", + "c13f36ce-7a65-4576-a0ce-8569a1951205", + "2d914ffa-a824-4b3c-a942-43948e6755e8", + "4f361a1d-256a-450d-90c5-5cceaae1e73e", + "cb15c8a8-d9d7-4568-80a7-6798c1518e4d", + "efc4323a-b279-481e-b2c6-d0217015baa2", + "7c6ec921-41dc-403a-9b52-f9979371bb1e", + "f113cb16-ecc1-4a1a-ba06-c955a1b8a7ef", + "594ce0a7-cece-474f-9f05-3f35fda0122c", + "94c7eb65-e779-426f-9812-27efc86ee2a4", + "a5e7dde0-be89-4960-8a91-1b1437b2f00e", + "1f48bf99-f800-40b0-aa2f-d870691e3c7f", + "004e2bc8-588f-44c6-a04a-1b8e07039667", + "875bd401-586e-4427-90ce-178c7d7f8823", + "5c841a42-0f6e-433b-9407-2f4ddb89a55b", + "ed46ffbc-36aa-4f9d-80e2-dd8e230c7fe6", + "8e751ba9-a075-485d-94fb-38043aef16fc", + "8aea646f-82ae-4535-91e2-ec8e4ca8901b", + "0631690a-3c86-462c-8237-71502ac29820", + "415d09f7-63d9-4027-962b-8c76dbac310e", + "46292201-73ca-42c1-a3b5-bdb8ec76b82e", + "6a3b581f-72ca-4966-b5d3-ad31a1a60f31", + "fea0c08f-fccd-45ef-af32-17a566014ed4", + "662d70ff-c47f-49f0-a9f6-f2aba2088c8c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.34178924560547, + "Text": "within 7 working days.", + "Geometry": { + "BoundingBox": { + "Width": 0.10387866944074631, + "Height": 0.007208031602203846, + "Left": 0.16809578239917755, + "Top": 0.8281354904174805 + }, + "Polygon": [ + { + "X": 0.16809578239917755, + "Y": 0.8282411694526672 + }, + { + "X": 0.27196457982063293, + "Y": 0.8281354904174805 + }, + { + "X": 0.27197444438934326, + "Y": 0.8352380990982056 + }, + { + "X": 0.16810539364814758, + "Y": 0.8353435397148132 + } + ] + }, + "Id": "526a0ac4-450a-44d4-a5ed-aa8766154892", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f67eee7b-c4d1-4abe-9eb7-c4109e4a4fd1", + "529bf0df-31c8-4a6c-b29d-7b504b7c8f48", + "db937328-4647-4fe0-99af-d32b708c5d65", + "9c8e6fe4-eca9-4c23-8204-ce688831aa63" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.8162841796875, + "Text": "MERCHANDISE", + "Geometry": { + "BoundingBox": { + "Width": 0.09492307901382446, + "Height": 0.008317681960761547, + "Left": 0.05565054342150688, + "Top": 0.8437407612800598 + }, + "Polygon": [ + { + "X": 0.05565054342150688, + "Y": 0.8438368439674377 + }, + { + "X": 0.15056255459785461, + "Y": 0.8437407612800598 + }, + { + "X": 0.15057362616062164, + "Y": 0.8519625067710876 + }, + { + "X": 0.055661339312791824, + "Y": 0.8520584106445312 + } + ] + }, + "Id": "3c0583a0-8df9-41f3-90ab-3fead4d082ba", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0049035a-cc30-4440-af8f-2e6163b0ff7c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.85576629638672, + "Text": "MISC", + "Geometry": { + "BoundingBox": { + "Width": 0.032408539205789566, + "Height": 0.008003665134310722, + "Left": 0.19045764207839966, + "Top": 0.8439120650291443 + }, + "Polygon": [ + { + "X": 0.19045764207839966, + "Y": 0.8439448475837708 + }, + { + "X": 0.22285524010658264, + "Y": 0.8439120650291443 + }, + { + "X": 0.22286617755889893, + "Y": 0.8518829941749573 + }, + { + "X": 0.19046849012374878, + "Y": 0.851915717124939 + } + ] + }, + "Id": "6e4fccb8-5cda-4ad8-8a03-d64b6b5326c5", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a1d611df-e8a9-485e-9b25-37f930d021b5" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.92250061035156, + "Text": "RETAIL DELIVERY", + "Geometry": { + "BoundingBox": { + "Width": 0.1115163266658783, + "Height": 0.008047378621995449, + "Left": 0.26099497079849243, + "Top": 0.8438485860824585 + }, + "Polygon": [ + { + "X": 0.26099497079849243, + "Y": 0.8439614772796631 + }, + { + "X": 0.3724999725818634, + "Y": 0.8438485860824585 + }, + { + "X": 0.3725112974643707, + "Y": 0.851783275604248 + }, + { + "X": 0.2610059678554535, + "Y": 0.8518959283828735 + } + ] + }, + "Id": "7f941aef-ef59-48c6-976c-cbb4d5bfafb4", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d88d99aa-21a9-4aa2-8a33-4244ea69ed71", + "9dd7ce0e-4dd8-424e-8a99-8b2b96ea7f55" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.93663024902344, + "Text": "DEPOSIT", + "Geometry": { + "BoundingBox": { + "Width": 0.05506415665149689, + "Height": 0.008278090506792068, + "Left": 0.6932185888290405, + "Top": 0.8432956337928772 + }, + "Polygon": [ + { + "X": 0.6932185888290405, + "Y": 0.843351423740387 + }, + { + "X": 0.7482699155807495, + "Y": 0.8432956337928772 + }, + { + "X": 0.7482827305793762, + "Y": 0.8515181541442871 + }, + { + "X": 0.6932312250137329, + "Y": 0.8515737652778625 + } + ] + }, + "Id": "e771da5d-5189-472f-9768-d945fc08c8e2", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "4e700a4d-6e40-4a83-af20-4e3831ce6bd2" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.92443084716797, + "Text": "DEPOSIT", + "Geometry": { + "BoundingBox": { + "Width": 0.05462045967578888, + "Height": 0.008335789665579796, + "Left": 0.7777970433235168, + "Top": 0.8431228995323181 + }, + "Polygon": [ + { + "X": 0.7777970433235168, + "Y": 0.8431782126426697 + }, + { + "X": 0.832404375076294, + "Y": 0.8431228995323181 + }, + { + "X": 0.8324175477027893, + "Y": 0.851403534412384 + }, + { + "X": 0.7778100371360779, + "Y": 0.8514586687088013 + } + ] + }, + "Id": "b778a838-2d3e-4614-9d21-89ef37c240de", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "e2a59049-09e6-476c-aad6-9d9b168dab8b" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.36085510253906, + "Text": "PST/QST", + "Geometry": { + "BoundingBox": { + "Width": 0.0558316744863987, + "Height": 0.00836925022304058, + "Left": 0.4056110084056854, + "Top": 0.8495938181877136 + }, + "Polygon": [ + { + "X": 0.4056110084056854, + "Y": 0.8496502041816711 + }, + { + "X": 0.4614305794239044, + "Y": 0.8495938181877136 + }, + { + "X": 0.4614426791667938, + "Y": 0.8579067587852478 + }, + { + "X": 0.4056229591369629, + "Y": 0.8579630255699158 + } + ] + }, + "Id": "8a0a346d-24a2-4411-8834-0f6527c89877", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6b26bf4b-dd00-4b6e-8ba2-aa296786b094" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.68617248535156, + "Text": "GST/HST", + "Geometry": { + "BoundingBox": { + "Width": 0.05682045966386795, + "Height": 0.00813084002584219, + "Left": 0.49039843678474426, + "Top": 0.8496829867362976 + }, + "Polygon": [ + { + "X": 0.49039843678474426, + "Y": 0.8497404456138611 + }, + { + "X": 0.5472068786621094, + "Y": 0.8496829867362976 + }, + { + "X": 0.547218918800354, + "Y": 0.8577565550804138 + }, + { + "X": 0.4904102683067322, + "Y": 0.857813835144043 + } + ] + }, + "Id": "26e59655-980e-4116-a8b8-e216df8fbced", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "97652775-2fe7-4369-b3fb-c68d94b0ca12" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.93302154541016, + "Text": "FREIGHT", + "Geometry": { + "BoundingBox": { + "Width": 0.05378830432891846, + "Height": 0.007974250242114067, + "Left": 0.6037467122077942, + "Top": 0.8495816588401794 + }, + "Polygon": [ + { + "X": 0.6037467122077942, + "Y": 0.8496360182762146 + }, + { + "X": 0.6575229167938232, + "Y": 0.8495816588401794 + }, + { + "X": 0.6575350165367126, + "Y": 0.8575016856193542 + }, + { + "X": 0.6037586331367493, + "Y": 0.8575559258460999 + } + ] + }, + "Id": "d04dd8f3-111b-4f2e-b39e-17a95e4c0674", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "90a25c2a-c351-43ac-9c43-d2b3aeb7ca1f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.90516662597656, + "Text": "INVOICE TOTAL", + "Geometry": { + "BoundingBox": { + "Width": 0.1002865806221962, + "Height": 0.0081713842228055, + "Left": 0.8573051691055298, + "Top": 0.8490025997161865 + }, + "Polygon": [ + { + "X": 0.8573051691055298, + "Y": 0.8491039276123047 + }, + { + "X": 0.9575785398483276, + "Y": 0.8490025997161865 + }, + { + "X": 0.957591712474823, + "Y": 0.8570728302001953 + }, + { + "X": 0.8573180437088013, + "Y": 0.8571739792823792 + } + ] + }, + "Id": "bafce2d3-0459-4ac5-b01f-e78169045408", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "28e7543e-d31a-4fcf-a793-28907b53e104", + "b8e94e83-79ac-4c9c-9e78-1bae75ad738a" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9083480834961, + "Text": "TOTAL", + "Geometry": { + "BoundingBox": { + "Width": 0.04343864321708679, + "Height": 0.007967702113091946, + "Left": 0.08134955912828445, + "Top": 0.855897068977356 + }, + "Polygon": [ + { + "X": 0.08134955912828445, + "Y": 0.8559408783912659 + }, + { + "X": 0.12477760761976242, + "Y": 0.855897068977356 + }, + { + "X": 0.12478820234537125, + "Y": 0.8638210296630859 + }, + { + "X": 0.08136004209518433, + "Y": 0.8638647198677063 + } + ] + }, + "Id": "16691d18-c044-4aa6-95f0-424fb36b8af8", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "cba2f921-75ac-4eee-ad1e-558371aa291d" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.91498565673828, + "Text": "CHARGES", + "Geometry": { + "BoundingBox": { + "Width": 0.06211908534169197, + "Height": 0.008055471815168858, + "Left": 0.17553110420703888, + "Top": 0.8558185696601868 + }, + "Polygon": [ + { + "X": 0.17553110420703888, + "Y": 0.8558812737464905 + }, + { + "X": 0.2376391738653183, + "Y": 0.8558185696601868 + }, + { + "X": 0.23765018582344055, + "Y": 0.8638114929199219 + }, + { + "X": 0.1755419373512268, + "Y": 0.8638740181922913 + } + ] + }, + "Id": "a5761ab6-a342-4ba2-921c-d3af3823a2dc", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a1a452a7-412a-491a-ad22-15cb8bb27dea" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.97380828857422, + "Text": "FEE", + "Geometry": { + "BoundingBox": { + "Width": 0.02194877900183201, + "Height": 0.007852411828935146, + "Left": 0.30608707666397095, + "Top": 0.8559945225715637 + }, + "Polygon": [ + { + "X": 0.30608707666397095, + "Y": 0.8560166954994202 + }, + { + "X": 0.32802483439445496, + "Y": 0.8559945225715637 + }, + { + "X": 0.3280358612537384, + "Y": 0.8638248443603516 + }, + { + "X": 0.3060980439186096, + "Y": 0.8638469576835632 + } + ] + }, + "Id": "8e8ac6bb-257c-48ec-98c8-f503ae6f3394", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f88b5ae1-e04a-44f1-8c00-7312cd217e13" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.9676284790039, + "Text": "AMOUNT", + "Geometry": { + "BoundingBox": { + "Width": 0.05910762399435043, + "Height": 0.007991348393261433, + "Left": 0.6911356449127197, + "Top": 0.8554122447967529 + }, + "Polygon": [ + { + "X": 0.6911356449127197, + "Y": 0.8554718494415283 + }, + { + "X": 0.7502309083938599, + "Y": 0.8554122447967529 + }, + { + "X": 0.7502433061599731, + "Y": 0.8633440732955933 + }, + { + "X": 0.6911478638648987, + "Y": 0.8634035587310791 + } + ] + }, + "Id": "1fcd91c1-e6ab-4117-8099-e775aaf0d545", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "6ca384ff-c873-40b7-a393-5eb6f8f8f11f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.96691131591797, + "Text": "APPLIED", + "Geometry": { + "BoundingBox": { + "Width": 0.05303827300667763, + "Height": 0.007902879267930984, + "Left": 0.7786018252372742, + "Top": 0.8553829789161682 + }, + "Polygon": [ + { + "X": 0.7786018252372742, + "Y": 0.8554364442825317 + }, + { + "X": 0.8316276669502258, + "Y": 0.8553829789161682 + }, + { + "X": 0.8316401243209839, + "Y": 0.863232433795929 + }, + { + "X": 0.7786141633987427, + "Y": 0.8632858395576477 + } + ] + }, + "Id": "4358a123-3e68-4d8b-b8e6-d1e42e59fc49", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "91820cde-8fb5-4546-abf5-d0c2ecaa8f95" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 96.02408599853516, + "Text": "487.91", + "Geometry": { + "BoundingBox": { + "Width": 0.05442700907588005, + "Height": 0.010013078339397907, + "Left": 0.10125062614679337, + "Top": 0.8777374029159546 + }, + "Polygon": [ + { + "X": 0.10125062614679337, + "Y": 0.8777920007705688 + }, + { + "X": 0.15566420555114746, + "Y": 0.8777374029159546 + }, + { + "X": 0.15567763149738312, + "Y": 0.8876960873603821 + }, + { + "X": 0.1012638583779335, + "Y": 0.887750506401062 + } + ] + }, + "Id": "8892fca1-7cc8-4d8e-994e-457afbbba756", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "1a592172-744e-4891-8a8c-59207ee6c476" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.22808074951172, + "Text": "5.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03520471230149269, + "Height": 0.009886548854410648, + "Left": 0.2130846232175827, + "Top": 0.8778085708618164 + }, + "Polygon": [ + { + "X": 0.2130846232175827, + "Y": 0.8778438568115234 + }, + { + "X": 0.2482757270336151, + "Y": 0.8778085708618164 + }, + { + "X": 0.2482893317937851, + "Y": 0.8876599073410034 + }, + { + "X": 0.21309810876846313, + "Y": 0.8876951336860657 + } + ] + }, + "Id": "ef3e37b0-f3c6-43f7-9967-87901c1ea4fa", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "a255efd8-b328-40fa-85c4-faed916a94b3" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 93.20948791503906, + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03577866405248642, + "Height": 0.009873278439044952, + "Left": 0.33836260437965393, + "Top": 0.8776659369468689 + }, + "Polygon": [ + { + "X": 0.33836260437965393, + "Y": 0.8777017593383789 + }, + { + "X": 0.37412723898887634, + "Y": 0.8776659369468689 + }, + { + "X": 0.37414127588272095, + "Y": 0.887503445148468 + }, + { + "X": 0.3383764922618866, + "Y": 0.8875392079353333 + } + ] + }, + "Id": "c2d36098-f192-44d7-9f45-d09d4f9b6593", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "9027d12d-0aae-45c7-af70-9eb2a6f6165e" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 87.77914428710938, + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03548669442534447, + "Height": 0.009880761615931988, + "Left": 0.443083256483078, + "Top": 0.8776152729988098 + }, + "Polygon": [ + { + "X": 0.443083256483078, + "Y": 0.8776508569717407 + }, + { + "X": 0.4785555601119995, + "Y": 0.8776152729988098 + }, + { + "X": 0.47856995463371277, + "Y": 0.8874605298042297 + }, + { + "X": 0.4430975317955017, + "Y": 0.8874959945678711 + } + ] + }, + "Id": "97815f70-e512-4656-802c-eb3ab6182792", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "dd545f27-d767-4480-8f04-85b0734d65a7" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.92679595947266, + "Text": "24.64", + "Geometry": { + "BoundingBox": { + "Width": 0.0461580827832222, + "Height": 0.010090148076415062, + "Left": 0.534099817276001, + "Top": 0.8774579167366028 + }, + "Polygon": [ + { + "X": 0.534099817276001, + "Y": 0.8775041699409485 + }, + { + "X": 0.5802428722381592, + "Y": 0.8774579167366028 + }, + { + "X": 0.5802579522132874, + "Y": 0.8875018954277039 + }, + { + "X": 0.5341147184371948, + "Y": 0.88754802942276 + } + ] + }, + "Id": "b37f1f20-12f3-46c0-bc23-f9a03df32abb", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d4a69dfe-83fc-46a6-8898-9071e4c77f09" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 97.06719970703125, + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03568468987941742, + "Height": 0.00992525927722454, + "Left": 0.6391417384147644, + "Top": 0.8774058818817139 + }, + "Polygon": [ + { + "X": 0.6391417384147644, + "Y": 0.8774416446685791 + }, + { + "X": 0.6748113036155701, + "Y": 0.8774058818817139 + }, + { + "X": 0.674826443195343, + "Y": 0.8872954845428467 + }, + { + "X": 0.6391567587852478, + "Y": 0.8873311877250671 + } + ] + }, + "Id": "c76d0dd1-6591-4dbe-85d4-0dd07f51f652", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "f6547ff8-d50b-4766-9497-812d8f4f795c" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.91791534423828, + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.035505760461091995, + "Height": 0.009883532300591469, + "Left": 0.7254277467727661, + "Top": 0.8772458434104919 + }, + "Polygon": [ + { + "X": 0.7254277467727661, + "Y": 0.8772814273834229 + }, + { + "X": 0.7609180808067322, + "Y": 0.8772458434104919 + }, + { + "X": 0.7609334588050842, + "Y": 0.8870939016342163 + }, + { + "X": 0.7254430055618286, + "Y": 0.8871293663978577 + } + ] + }, + "Id": "efe5db89-b906-4194-9315-12111dd2ec2f", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "0595c301-98bf-4a9b-8cce-6960de6a70e5" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.80265808105469, + "Text": "0.00", + "Geometry": { + "BoundingBox": { + "Width": 0.03499670326709747, + "Height": 0.009773205034434795, + "Left": 0.8110606074333191, + "Top": 0.8771435022354126 + }, + "Polygon": [ + { + "X": 0.8110606074333191, + "Y": 0.8771786093711853 + }, + { + "X": 0.8460417985916138, + "Y": 0.8771435022354126 + }, + { + "X": 0.8460572957992554, + "Y": 0.8868817090988159 + }, + { + "X": 0.8110759854316711, + "Y": 0.8869166970252991 + } + ] + }, + "Id": "5475c402-7856-469b-9a45-4468e1628290", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "db796a1f-021a-4159-9016-a79758e52f27" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.8488540649414, + "Text": "517.55", + "Geometry": { + "BoundingBox": { + "Width": 0.05581768602132797, + "Height": 0.01026908215135336, + "Left": 0.9037589430809021, + "Top": 0.8766120076179504 + }, + "Polygon": [ + { + "X": 0.9037589430809021, + "Y": 0.8766679167747498 + }, + { + "X": 0.9595599174499512, + "Y": 0.8766120076179504 + }, + { + "X": 0.9595766067504883, + "Y": 0.8868252635002136 + }, + { + "X": 0.9037753939628601, + "Y": 0.8868810534477234 + } + ] + }, + "Id": "a86dcbb4-eb96-4fbc-bed3-d29be6597613", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "d7f679ab-135b-4104-a232-a12b23e539aa" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.67475128173828, + "Text": "Insurance Claim#", + "Geometry": { + "BoundingBox": { + "Width": 0.11511214822530746, + "Height": 0.009197206236422062, + "Left": 0.05146578699350357, + "Top": 0.8975830674171448 + }, + "Polygon": [ + { + "X": 0.05146578699350357, + "Y": 0.8976978063583374 + }, + { + "X": 0.1665656566619873, + "Y": 0.8975830674171448 + }, + { + "X": 0.16657793521881104, + "Y": 0.9066658020019531 + }, + { + "X": 0.05147770047187805, + "Y": 0.9067802429199219 + } + ] + }, + "Id": "65562b58-f073-437b-bff6-57bbbd2a7cba", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "033bcd23-7d50-49d2-8240-84a34d312af3", + "15304d42-4c78-4528-8e62-a1f57b4965c6" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.42770385742188, + "Text": "Customer Signature:", + "Geometry": { + "BoundingBox": { + "Width": 0.15513372421264648, + "Height": 0.012458063662052155, + "Left": 0.43209365010261536, + "Top": 0.9106660485267639 + }, + "Polygon": [ + { + "X": 0.43209365010261536, + "Y": 0.9108201265335083 + }, + { + "X": 0.5872089266777039, + "Y": 0.9106660485267639 + }, + { + "X": 0.5872274041175842, + "Y": 0.9229706525802612 + }, + { + "X": 0.4321114420890808, + "Y": 0.9231241345405579 + } + ] + }, + "Id": "f71cffa5-9eb7-4074-89a4-8bd238910b00", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "fd042968-13cf-468e-9ce1-29b3a6547e89", + "11a89aa0-4730-4d96-b9a5-e746996294f5" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 88.42506408691406, + "Text": "I", + "Geometry": { + "BoundingBox": { + "Width": 0.0025675699580460787, + "Height": 0.005786259192973375, + "Left": 0.432677686214447, + "Top": 0.9246410727500916 + }, + "Polygon": [ + { + "X": 0.432677686214447, + "Y": 0.9246436357498169 + }, + { + "X": 0.4352368712425232, + "Y": 0.9246410727500916 + }, + { + "X": 0.43524524569511414, + "Y": 0.9304248094558716 + }, + { + "X": 0.4326860308647156, + "Y": 0.9304273128509521 + } + ] + }, + "Id": "669d7b47-f2df-4ec2-bc27-4d5488fcc371", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "71e26926-066b-45d8-8260-741fa0398724" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 99.64854431152344, + "Text": "acknowledge receipt of all products listed on this invoice and agree to all payment and other terms (or incorporated", + "Geometry": { + "BoundingBox": { + "Width": 0.5180369019508362, + "Height": 0.008605063892900944, + "Left": 0.4387996792793274, + "Top": 0.9236496090888977 + }, + "Polygon": [ + { + "X": 0.4387996792793274, + "Y": 0.9241620302200317 + }, + { + "X": 0.9568234086036682, + "Y": 0.9236496090888977 + }, + { + "X": 0.9568365812301636, + "Y": 0.9317434430122375 + }, + { + "X": 0.43881142139434814, + "Y": 0.9322546720504761 + } + ] + }, + "Id": "65b2c262-29fd-4881-a5e2-1c96696f026e", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "628ba189-372d-44a1-821d-893eca76ff53", + "39588b8e-819c-4e8d-b14f-7743e7acd0bc", + "77de2168-44cd-48bb-9f74-25eb8b677267", + "554d0979-1da8-485c-b803-2978cab405c7", + "8a796774-9100-4014-835d-965804ec0a9e", + "4737b997-447d-4d4c-8daa-4be260e12003", + "08d04273-21eb-4955-aa5f-b98dd54dcc14", + "259229c1-a0a0-4697-a240-137c499a6270", + "38633683-e118-4605-86d6-d71f353034af", + "1d1640f6-420a-4ac3-8f6a-f0efea56e4ec", + "d3f7de45-77e0-40ea-afa2-71ae4882806a", + "86e356dd-b8d7-48b0-b525-8ac22df6aef7", + "9037e246-cd30-426e-82c2-47f7ad325c10", + "63ade9b1-ad2a-42a9-919f-8e5e2bb4a3ef", + "75b3fae4-5913-4cc4-9d09-cfc346ac0dcb", + "265df821-bf5b-4f9e-80bb-6dceb410c895", + "746fa4af-a842-42b5-b1cb-61f129b418d6", + "a46a3b36-890c-4f9b-a6ae-4bffbff367ee", + "4d66a54e-5f95-4dc0-82f1-ef0f7a87bd40" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 94.97634887695312, + "Text": "into) this invoice Warranties and other tems and conditions incorporated into this invoice are available at", + "Geometry": { + "BoundingBox": { + "Width": 0.47271913290023804, + "Height": 0.007820948027074337, + "Left": 0.4325543940067291, + "Top": 0.9327077269554138 + }, + "Polygon": [ + { + "X": 0.4325543940067291, + "Y": 0.9331741333007812 + }, + { + "X": 0.9052616357803345, + "Y": 0.9327077269554138 + }, + { + "X": 0.9052734971046448, + "Y": 0.9400633573532104 + }, + { + "X": 0.43256503343582153, + "Y": 0.9405286908149719 + } + ] + }, + "Id": "e0b0779d-24ce-4cea-abce-acb0daf711fb", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "04317c5d-b470-456b-970c-cb0555a3b856", + "d1bc2ff1-dcf5-4490-abed-34e9850cce21", + "537b3390-4092-4d25-82f0-f2a9b0d9ecdc", + "107de124-7292-49a6-9a78-cf81c7243e08", + "b2d34688-c548-45f0-beaa-f12af1734b4a", + "3680679f-8dec-44bc-bd90-a9ad8fcfc525", + "1dc47f69-af53-4164-a13e-fe178ef1095f", + "3500e434-b52f-4211-9b50-34463c284abe", + "17db8caf-5491-493b-988b-ce3670bf7fda", + "b80b2aaa-621e-439c-bf46-f8140f09e455", + "e6c34512-145e-4b59-9491-3fa0ad87859d", + "6cb925fb-f149-4a45-8f6a-934f90857016", + "a73e4cde-7057-40d8-bc5e-aad64f33ade2", + "99b1526d-8394-45c9-b0fb-e0bcc40f70c3", + "bb3b3424-6689-432a-a2e5-a2c83e1f4de8", + "9fbb13b6-e1b3-42d9-8c8b-51f544f2d23f" + ] + } + ] + }, + { + "BlockType": "LINE", + "Confidence": 51.635860443115234, + "Text": "https://www.lkgcorp.com/about-us/our-industry-leading-warranty/", + "Geometry": { + "BoundingBox": { + "Width": 0.29916080832481384, + "Height": 0.007743896916508675, + "Left": 0.4327220618724823, + "Top": 0.9405109882354736 + }, + "Polygon": [ + { + "X": 0.4327220618724823, + "Y": 0.9408054947853088 + }, + { + "X": 0.7318713068962097, + "Y": 0.9405109882354736 + }, + { + "X": 0.7318828701972961, + "Y": 0.9479610919952393 + }, + { + "X": 0.43273282051086426, + "Y": 0.9482548832893372 + } + ] + }, + "Id": "f3ed8b29-d7e1-4f69-85c5-7996fb7d4626", + "Relationships": [ + { + "Type": "CHILD", + "Ids": [ + "ccbb4913-07ec-479b-9cb5-b694d8d6485e" + ] + } + ] + }, + { + "BlockType": "WORD", + "Confidence": 99.90238952636719, + "Text": "Invoice", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07253161817789078, + "Height": 0.012965491972863674, + "Left": 0.4642057418823242, + "Top": 0.014308910816907883 + }, + "Polygon": [ + { + "X": 0.4642057418823242, + "Y": 0.014399858191609383 + }, + { + "X": 0.5367182493209839, + "Y": 0.014308910816907883 + }, + { + "X": 0.5367373824119568, + "Y": 0.02718372642993927 + }, + { + "X": 0.46422451734542847, + "Y": 0.027274401858448982 + } + ] + }, + "Id": "a43c62f8-7944-4566-a6b6-df3bdd81dc9a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 59.349674224853516, + "Text": "SASKATOON", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06523355841636658, + "Height": 0.007182254455983639, + "Left": 0.18073588609695435, + "Top": 0.03442150354385376 + }, + "Polygon": [ + { + "X": 0.18073588609695435, + "Y": 0.03450293466448784 + }, + { + "X": 0.24595963954925537, + "Y": 0.03442150354385376 + }, + { + "X": 0.24596944451332092, + "Y": 0.04152246192097664 + }, + { + "X": 0.18074552714824677, + "Y": 0.04160375893115997 + } + ] + }, + "Id": "aad419d5-3c16-4f09-97dc-243fbfebfa6b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.66385650634766, + "Text": "SK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.012966498732566833, + "Height": 0.0064719058573246, + "Left": 0.24871376156806946, + "Top": 0.03428533673286438 + }, + "Polygon": [ + { + "X": 0.24871376156806946, + "Y": 0.0343015119433403 + }, + { + "X": 0.2616713047027588, + "Y": 0.03428533673286438 + }, + { + "X": 0.2616802453994751, + "Y": 0.04074108600616455 + }, + { + "X": 0.24872267246246338, + "Y": 0.04075724259018898 + } + ] + }, + "Id": "2b35143f-b1bc-4ad1-aaa4-0a75be870a0a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.41806030273438, + "Text": "Invoice#", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05687333270907402, + "Height": 0.009038809686899185, + "Left": 0.6837244629859924, + "Top": 0.032257530838251114 + }, + "Polygon": [ + { + "X": 0.6837244629859924, + "Y": 0.03232854604721069 + }, + { + "X": 0.7405838966369629, + "Y": 0.032257530838251114 + }, + { + "X": 0.7405978441238403, + "Y": 0.04122547432780266 + }, + { + "X": 0.6837382316589355, + "Y": 0.0412963405251503 + } + ] + }, + "Id": "141c6987-61f1-4c72-8472-a41b7f2d9b35", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.99443054199219, + "Text": "SS148046", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07437808811664581, + "Height": 0.009570728987455368, + "Left": 0.8036753535270691, + "Top": 0.031096043065190315 + }, + "Polygon": [ + { + "X": 0.8036753535270691, + "Y": 0.03118893876671791 + }, + { + "X": 0.878038227558136, + "Y": 0.031096043065190315 + }, + { + "X": 0.8780534267425537, + "Y": 0.0405740812420845 + }, + { + "X": 0.8036902546882629, + "Y": 0.04066677391529083 + } + ] + }, + "Id": "a53b4e65-b29c-489d-b129-977aaec9ba33", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.58100128173828, + "Text": "705-43RD", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04792752116918564, + "Height": 0.006433846894651651, + "Left": 0.1810680329799652, + "Top": 0.04348268359899521 + }, + "Polygon": [ + { + "X": 0.1810680329799652, + "Y": 0.04354238137602806 + }, + { + "X": 0.22898679971694946, + "Y": 0.04348268359899521 + }, + { + "X": 0.22899556159973145, + "Y": 0.049856919795274734 + }, + { + "X": 0.18107669055461884, + "Y": 0.049916528165340424 + } + ] + }, + "Id": "9d192218-a901-4e57-9829-34246b69cbb6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.77787780761719, + "Text": "STREET", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.036250751465559006, + "Height": 0.006188821978867054, + "Left": 0.23213458061218262, + "Top": 0.04341068118810654 + }, + "Polygon": [ + { + "X": 0.23213458061218262, + "Y": 0.043455831706523895 + }, + { + "X": 0.26837679743766785, + "Y": 0.04341068118810654 + }, + { + "X": 0.2683853507041931, + "Y": 0.04955441504716873 + }, + { + "X": 0.23214304447174072, + "Y": 0.049599502235651016 + } + ] + }, + "Id": "8be24775-7da2-4d63-a819-b2ed82f9e581", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89539337158203, + "Text": "EAST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025009723380208015, + "Height": 0.006356889382004738, + "Left": 0.27188947796821594, + "Top": 0.043280839920043945 + }, + "Polygon": [ + { + "X": 0.27188947796821594, + "Y": 0.043311987072229385 + }, + { + "X": 0.29689034819602966, + "Y": 0.043280839920043945 + }, + { + "X": 0.2968991994857788, + "Y": 0.049606624990701675 + }, + { + "X": 0.2718982696533203, + "Y": 0.049637727439403534 + } + ] + }, + "Id": "a38fab5f-6ab3-448e-835c-b7b850c0de20", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 84.59142303466797, + "Text": "SASKATOON", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06478504836559296, + "Height": 0.007101919036358595, + "Left": 0.18083468079566956, + "Top": 0.05246954411268234 + }, + "Polygon": [ + { + "X": 0.18083468079566956, + "Y": 0.052550073713064194 + }, + { + "X": 0.24561002850532532, + "Y": 0.05246954411268234 + }, + { + "X": 0.2456197291612625, + "Y": 0.05949106439948082 + }, + { + "X": 0.18084421753883362, + "Y": 0.059571463614702225 + } + ] + }, + "Id": "0cad4b7b-5517-4b78-88bb-7fa2bf6e158d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.48796844482422, + "Text": "SK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.012767555192112923, + "Height": 0.006359244231134653, + "Left": 0.24921590089797974, + "Top": 0.0524972602725029 + }, + "Polygon": [ + { + "X": 0.24921590089797974, + "Y": 0.05251312255859375 + }, + { + "X": 0.26197466254234314, + "Y": 0.0524972602725029 + }, + { + "X": 0.2619834542274475, + "Y": 0.058840665966272354 + }, + { + "X": 0.24922466278076172, + "Y": 0.058856505900621414 + } + ] + }, + "Id": "a21062f0-7b54-4bcd-8c6d-6263fc5db1d9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 92.53312683105469, + "Text": "S7K", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019415242597460747, + "Height": 0.006598535925149918, + "Left": 0.26841580867767334, + "Top": 0.05221511423587799 + }, + "Polygon": [ + { + "X": 0.26841580867767334, + "Y": 0.05223924294114113 + }, + { + "X": 0.287821888923645, + "Y": 0.05221511423587799 + }, + { + "X": 0.28783106803894043, + "Y": 0.058789558708667755 + }, + { + "X": 0.26842495799064636, + "Y": 0.05881365016102791 + } + ] + }, + "Id": "afd939d9-ea59-4e13-8cc0-8682961a33eb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 82.88533782958984, + "Text": "0V7", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0205061174929142, + "Height": 0.006344672758132219, + "Left": 0.29063963890075684, + "Top": 0.05224186182022095 + }, + "Polygon": [ + { + "X": 0.29063963890075684, + "Y": 0.05226734280586243 + }, + { + "X": 0.3111369013786316, + "Y": 0.05224186182022095 + }, + { + "X": 0.31114575266838074, + "Y": 0.058561086654663086 + }, + { + "X": 0.2906484603881836, + "Y": 0.05858653411269188 + } + ] + }, + "Id": "d5e23d6b-6fad-4bf6-9f26-59837b2620d8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94971466064453, + "Text": "LOCATION", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07503733038902283, + "Height": 0.008900492452085018, + "Left": 0.6840646862983704, + "Top": 0.04736775904893875 + }, + "Polygon": [ + { + "X": 0.6840646862983704, + "Y": 0.0474611297249794 + }, + { + "X": 0.7590882778167725, + "Y": 0.04736775904893875 + }, + { + "X": 0.7591020464897156, + "Y": 0.056175075471401215 + }, + { + "X": 0.6840782165527344, + "Y": 0.056268252432346344 + } + ] + }, + "Id": "1f6fc461-a4c4-4743-95b6-9fe39ece0217", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.58111572265625, + "Text": "561", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02574119344353676, + "Height": 0.00894449558109045, + "Left": 0.8036239147186279, + "Top": 0.046655796468257904 + }, + "Polygon": [ + { + "X": 0.8036239147186279, + "Y": 0.04668781906366348 + }, + { + "X": 0.829351007938385, + "Y": 0.046655796468257904 + }, + { + "X": 0.8293651342391968, + "Y": 0.05556833744049072 + }, + { + "X": 0.8036379814147949, + "Y": 0.05560029298067093 + } + ] + }, + "Id": "9ea80d43-fe00-4852-abdf-008890b9ebfa", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92171478271484, + "Text": "KEYSTONE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07914634048938751, + "Height": 0.007694493513554335, + "Left": 0.051042813807725906, + "Top": 0.06378676742315292 + }, + "Polygon": [ + { + "X": 0.051042813807725906, + "Y": 0.06388489156961441 + }, + { + "X": 0.13017897307872772, + "Y": 0.06378676742315292 + }, + { + "X": 0.13018915057182312, + "Y": 0.07138331234455109 + }, + { + "X": 0.05105277895927429, + "Y": 0.07148125767707825 + } + ] + }, + "Id": "6fff0670-1dfb-4b8e-af3e-546479923d1d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90486145019531, + "Text": "Phone", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02762617915868759, + "Height": 0.006378725171089172, + "Left": 0.18112805485725403, + "Top": 0.06190130487084389 + }, + "Polygon": [ + { + "X": 0.18112805485725403, + "Y": 0.06193556264042854 + }, + { + "X": 0.2087455540895462, + "Y": 0.06190130487084389 + }, + { + "X": 0.20875424146652222, + "Y": 0.06824582070112228 + }, + { + "X": 0.18113666772842407, + "Y": 0.06828002631664276 + } + ] + }, + "Id": "10e1028d-3a3b-4814-8864-236da50f6c1d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.24185943603516, + "Text": "306-955-1619", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0699562206864357, + "Height": 0.00659344345331192, + "Left": 0.21128815412521362, + "Top": 0.06157660856842995 + }, + "Polygon": [ + { + "X": 0.21128815412521362, + "Y": 0.06166338175535202 + }, + { + "X": 0.28123530745506287, + "Y": 0.06157660856842995 + }, + { + "X": 0.2812443673610687, + "Y": 0.06808341294527054 + }, + { + "X": 0.21129706501960754, + "Y": 0.06817005574703217 + } + ] + }, + "Id": "b21099ad-7504-425b-b711-c27cb1f95403", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96461486816406, + "Text": "DATE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03953924775123596, + "Height": 0.008870305493474007, + "Left": 0.6843146681785583, + "Top": 0.06262654066085815 + }, + "Polygon": [ + { + "X": 0.6843146681785583, + "Y": 0.06267555803060532 + }, + { + "X": 0.7238402366638184, + "Y": 0.06262654066085815 + }, + { + "X": 0.7238538861274719, + "Y": 0.0714479312300682 + }, + { + "X": 0.6843281984329224, + "Y": 0.07149684429168701 + } + ] + }, + "Id": "ada4c5ed-c1b9-46a0-9dd7-d439943d2e1e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.75965881347656, + "Text": "10/17/22", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06354615092277527, + "Height": 0.009389525279402733, + "Left": 0.8050990104675293, + "Top": 0.06163042038679123 + }, + "Polygon": [ + { + "X": 0.8050990104675293, + "Y": 0.061709221452474594 + }, + { + "X": 0.8686302900314331, + "Y": 0.06163042038679123 + }, + { + "X": 0.868645191192627, + "Y": 0.07094131410121918 + }, + { + "X": 0.8051137328147888, + "Y": 0.07101994752883911 + } + ] + }, + "Id": "f7185bf1-2b48-4a43-a136-96f3dd2410f1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88919830322266, + "Text": "13:59:59", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06408500671386719, + "Height": 0.009203479625284672, + "Left": 0.8925708532333374, + "Top": 0.06040317937731743 + }, + "Polygon": [ + { + "X": 0.8925708532333374, + "Y": 0.06048266962170601 + }, + { + "X": 0.9566410183906555, + "Y": 0.06040317937731743 + }, + { + "X": 0.9566558599472046, + "Y": 0.06952734291553497 + }, + { + "X": 0.8925855755805969, + "Y": 0.06960666179656982 + } + ] + }, + "Id": "130a2246-4ed4-4c6e-859c-7cc1a839accb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.67928314208984, + "Text": "Fax", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.015722161158919334, + "Height": 0.006159567274153233, + "Left": 0.18136383593082428, + "Top": 0.07100564986467361 + }, + "Polygon": [ + { + "X": 0.18136383593082428, + "Y": 0.07102510333061218 + }, + { + "X": 0.19707761704921722, + "Y": 0.07100564986467361 + }, + { + "X": 0.19708599150180817, + "Y": 0.07714579254388809 + }, + { + "X": 0.18137216567993164, + "Y": 0.07716521620750427 + } + ] + }, + "Id": "9d876f14-b49c-490d-bbb0-a19dd547d73e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.32810974121094, + "Text": "306-955-1625", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06903917342424393, + "Height": 0.006348810158669949, + "Left": 0.2007940113544464, + "Top": 0.0708424523472786 + }, + "Polygon": [ + { + "X": 0.2007940113544464, + "Y": 0.07092790305614471 + }, + { + "X": 0.26982447504997253, + "Y": 0.0708424523472786 + }, + { + "X": 0.26983317732810974, + "Y": 0.07710593938827515 + }, + { + "X": 0.20080256462097168, + "Y": 0.07719126343727112 + } + ] + }, + "Id": "466b7107-d7d6-4338-ac1b-f061af9293f6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83251953125, + "Text": "PAGE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.039580415934324265, + "Height": 0.008723516948521137, + "Left": 0.6841561198234558, + "Top": 0.07813076674938202 + }, + "Polygon": [ + { + "X": 0.6841561198234558, + "Y": 0.07817965745925903 + }, + { + "X": 0.7237231135368347, + "Y": 0.07813076674938202 + }, + { + "X": 0.723736584186554, + "Y": 0.08680550009012222 + }, + { + "X": 0.6841694712638855, + "Y": 0.08685428649187088 + } + ] + }, + "Id": "e8d925ba-6d0d-491f-8a65-bd7d66d610d6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.51853942871094, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005212424322962761, + "Height": 0.00846763327717781, + "Left": 0.8053600788116455, + "Top": 0.07760688662528992 + }, + "Polygon": [ + { + "X": 0.8053600788116455, + "Y": 0.07761330902576447 + }, + { + "X": 0.810559093952179, + "Y": 0.07760688662528992 + }, + { + "X": 0.8105725049972534, + "Y": 0.08606810867786407 + }, + { + "X": 0.8053734302520752, + "Y": 0.08607451617717743 + } + ] + }, + "Id": "dd1aff56-7b0d-42b6-8f43-60570a67b028", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88361358642578, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014026540331542492, + "Height": 0.008124535903334618, + "Left": 0.817288339138031, + "Top": 0.07756589353084564 + }, + "Polygon": [ + { + "X": 0.817288339138031, + "Y": 0.07758321613073349 + }, + { + "X": 0.8313019871711731, + "Y": 0.07756589353084564 + }, + { + "X": 0.8313148617744446, + "Y": 0.08567314594984055 + }, + { + "X": 0.8173011541366577, + "Y": 0.08569043129682541 + } + ] + }, + "Id": "89665485-d339-4f85-b55a-d31b27baa285", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.59474182128906, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005573835223913193, + "Height": 0.00841501820832491, + "Left": 0.8379319906234741, + "Top": 0.07751058042049408 + }, + "Polygon": [ + { + "X": 0.8379319906234741, + "Y": 0.07751744985580444 + }, + { + "X": 0.8434924483299255, + "Y": 0.07751058042049408 + }, + { + "X": 0.8435057997703552, + "Y": 0.08591873943805695 + }, + { + "X": 0.8379453420639038, + "Y": 0.08592560142278671 + } + ] + }, + "Id": "4d0e502b-bf1e-4b40-b0ac-1b487356d4a3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.01012420654297, + "Text": "An", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.013278826139867306, + "Height": 0.006862236652523279, + "Left": 0.04746708273887634, + "Top": 0.0932503342628479 + }, + "Polygon": [ + { + "X": 0.04746708273887634, + "Y": 0.09326667338609695 + }, + { + "X": 0.06073690205812454, + "Y": 0.0932503342628479 + }, + { + "X": 0.060745906084775925, + "Y": 0.10009625554084778 + }, + { + "X": 0.04747605323791504, + "Y": 0.10011256486177444 + } + ] + }, + "Id": "17918b85-2258-4a0b-a443-dee1270196a5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.25414276123047, + "Text": "LKQ", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02029120735824108, + "Height": 0.006975763477385044, + "Left": 0.06357742846012115, + "Top": 0.09306760132312775 + }, + "Polygon": [ + { + "X": 0.06357742846012115, + "Y": 0.09309257566928864 + }, + { + "X": 0.08385943621397018, + "Y": 0.09306760132312775 + }, + { + "X": 0.08386863768100739, + "Y": 0.10001843422651291 + }, + { + "X": 0.06358657777309418, + "Y": 0.10004336386919022 + } + ] + }, + "Id": "c92a1162-caca-4ea7-a2ab-97273fab3fe5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.74634552001953, + "Text": "Company", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04611292853951454, + "Height": 0.009003777988255024, + "Left": 0.08675485104322433, + "Top": 0.09283702820539474 + }, + "Polygon": [ + { + "X": 0.08675485104322433, + "Y": 0.0928938016295433 + }, + { + "X": 0.13285577297210693, + "Y": 0.09283702820539474 + }, + { + "X": 0.13286778330802917, + "Y": 0.10178415477275848 + }, + { + "X": 0.08676669746637344, + "Y": 0.10184080898761749 + } + ] + }, + "Id": "b6d1e362-b999-417b-9179-ecaae0de580a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91790008544922, + "Text": "GST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01968953385949135, + "Height": 0.00657053105533123, + "Left": 0.13121576607227325, + "Top": 0.11203016340732574 + }, + "Polygon": [ + { + "X": 0.13121576607227325, + "Y": 0.11205428838729858 + }, + { + "X": 0.15089647471904755, + "Y": 0.11203016340732574 + }, + { + "X": 0.1509052962064743, + "Y": 0.11857660114765167 + }, + { + "X": 0.13122454285621643, + "Y": 0.11860068887472153 + } + ] + }, + "Id": "dc34e346-f356-4b43-abc4-6febc5683e4e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.5601806640625, + "Text": "88221", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029631683602929115, + "Height": 0.006539623253047466, + "Left": 0.15406155586242676, + "Top": 0.1120695024728775 + }, + "Polygon": [ + { + "X": 0.15406155586242676, + "Y": 0.11210581660270691 + }, + { + "X": 0.18368439376354218, + "Y": 0.1120695024728775 + }, + { + "X": 0.18369323015213013, + "Y": 0.11857286840677261 + }, + { + "X": 0.15407031774520874, + "Y": 0.11860912293195724 + } + ] + }, + "Id": "5d75882e-a5bc-4c22-8d62-e0c5706d5a08", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.78499603271484, + "Text": "4026", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025365443900227547, + "Height": 0.006353166885674, + "Left": 0.18815821409225464, + "Top": 0.11212842166423798 + }, + "Polygon": [ + { + "X": 0.18815821409225464, + "Y": 0.11215950548648834 + }, + { + "X": 0.2135149985551834, + "Y": 0.11212842166423798 + }, + { + "X": 0.21352365612983704, + "Y": 0.11845055222511292 + }, + { + "X": 0.1881668120622635, + "Y": 0.1184815913438797 + } + ] + }, + "Id": "0e81803e-a12a-4320-bee7-025ba0a0b8e1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.48143005371094, + "Text": "QST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020196927711367607, + "Height": 0.006537830922752619, + "Left": 0.25022387504577637, + "Top": 0.11185643076896667 + }, + "Polygon": [ + { + "X": 0.25022387504577637, + "Y": 0.11188118159770966 + }, + { + "X": 0.27041175961494446, + "Y": 0.11185643076896667 + }, + { + "X": 0.2704208195209503, + "Y": 0.11836954951286316 + }, + { + "X": 0.25023287534713745, + "Y": 0.11839426308870316 + } + ] + }, + "Id": "950fefa9-35ef-415d-a96c-f99217427a07", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.57060241699219, + "Text": "1021981903", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06264972686767578, + "Height": 0.006676539313048124, + "Left": 0.2745688557624817, + "Top": 0.11168570071458817 + }, + "Polygon": [ + { + "X": 0.2745688557624817, + "Y": 0.11176249384880066 + }, + { + "X": 0.3372092843055725, + "Y": 0.11168570071458817 + }, + { + "X": 0.33721858263015747, + "Y": 0.11828556656837463 + }, + { + "X": 0.2745780348777771, + "Y": 0.11836224049329758 + } + ] + }, + "Id": "21e630f1-0bc4-4848-aa69-d24a4234cd1e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95584869384766, + "Text": "BILL", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025714142248034477, + "Height": 0.007941276766359806, + "Left": 0.1317448914051056, + "Top": 0.12297039479017258 + }, + "Polygon": [ + { + "X": 0.1317448914051056, + "Y": 0.1230018213391304 + }, + { + "X": 0.15744836628437042, + "Y": 0.12297039479017258 + }, + { + "X": 0.15745903551578522, + "Y": 0.13088031113147736 + }, + { + "X": 0.1317555010318756, + "Y": 0.1309116780757904 + } + ] + }, + "Id": "97b23fbf-81d9-44ea-b4a2-031d5c9811a3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93933868408203, + "Text": "TO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018277453258633614, + "Height": 0.008070495910942554, + "Left": 0.1610526293516159, + "Top": 0.12282955646514893 + }, + "Polygon": [ + { + "X": 0.1610526293516159, + "Y": 0.1228518858551979 + }, + { + "X": 0.17931915819644928, + "Y": 0.12282955646514893 + }, + { + "X": 0.17933008074760437, + "Y": 0.1308777630329132 + }, + { + "X": 0.16106349229812622, + "Y": 0.1309000551700592 + } + ] + }, + "Id": "a0880bb5-ab7b-48cc-a3f5-8c8437f6ec39", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80321502685547, + "Text": "SHIP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02913927100598812, + "Height": 0.008154093287885189, + "Left": 0.6649819016456604, + "Top": 0.12032500654459 + }, + "Polygon": [ + { + "X": 0.6649819016456604, + "Y": 0.12036063522100449 + }, + { + "X": 0.6941086649894714, + "Y": 0.12032500654459 + }, + { + "X": 0.6941211819648743, + "Y": 0.12844353914260864 + }, + { + "X": 0.6649942994117737, + "Y": 0.12847909331321716 + } + ] + }, + "Id": "78764db3-5373-45c9-91e0-dc44b8cad90c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80235290527344, + "Text": "TO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018109682947397232, + "Height": 0.008027952164411545, + "Left": 0.6985784769058228, + "Top": 0.12026990205049515 + }, + "Polygon": [ + { + "X": 0.6985784769058228, + "Y": 0.12029203772544861 + }, + { + "X": 0.7166758179664612, + "Y": 0.12026990205049515 + }, + { + "X": 0.7166881561279297, + "Y": 0.12827575206756592 + }, + { + "X": 0.6985908150672913, + "Y": 0.1282978504896164 + } + ] + }, + "Id": "91f0cb81-0d27-4c34-ad04-adcbdbbd090e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.05792999267578, + "Text": "PST:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021636003628373146, + "Height": 0.006804781965911388, + "Left": 0.14348100125789642, + "Top": 0.13771840929985046 + }, + "Polygon": [ + { + "X": 0.14348100125789642, + "Y": 0.1377447545528412 + }, + { + "X": 0.1651078462600708, + "Y": 0.13771840929985046 + }, + { + "X": 0.16511701047420502, + "Y": 0.1444968730211258 + }, + { + "X": 0.14349012076854706, + "Y": 0.14452318847179413 + } + ] + }, + "Id": "85e8c922-bbac-4211-8507-6680a1b787b8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.71199035644531, + "Text": "3013675", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04377220571041107, + "Height": 0.0069855800829827785, + "Left": 0.1681894063949585, + "Top": 0.1376143842935562 + }, + "Polygon": [ + { + "X": 0.1681894063949585, + "Y": 0.1376677006483078 + }, + { + "X": 0.2119521200656891, + "Y": 0.1376143842935562 + }, + { + "X": 0.21196161210536957, + "Y": 0.1445467323064804 + }, + { + "X": 0.16819877922534943, + "Y": 0.14459995925426483 + } + ] + }, + "Id": "442fabb2-92fd-4daa-82e1-0b761ebde661", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95958709716797, + "Text": "Ship", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029339687898755074, + "Height": 0.011046958155930042, + "Left": 0.6762439012527466, + "Top": 0.13604430854320526 + }, + "Polygon": [ + { + "X": 0.6762439012527466, + "Y": 0.1360800564289093 + }, + { + "X": 0.7055665850639343, + "Y": 0.13604430854320526 + }, + { + "X": 0.7055835723876953, + "Y": 0.14705562591552734 + }, + { + "X": 0.676260769367218, + "Y": 0.14709126949310303 + } + ] + }, + "Id": "a21a2af9-35c6-4afa-998e-b639458aab4b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.64364624023438, + "Text": "To:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022029120475053787, + "Height": 0.009059899486601353, + "Left": 0.7102804183959961, + "Top": 0.13597796857357025 + }, + "Polygon": [ + { + "X": 0.7102804183959961, + "Y": 0.13600480556488037 + }, + { + "X": 0.7322955131530762, + "Y": 0.13597796857357025 + }, + { + "X": 0.7323095202445984, + "Y": 0.14501109719276428 + }, + { + "X": 0.7102943658828735, + "Y": 0.14503787457942963 + } + ] + }, + "Id": "81326692-913b-4bd9-989b-7f0fe65d17fb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86256408691406, + "Text": "180757", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.053991638123989105, + "Height": 0.008869488723576069, + "Left": 0.14541025459766388, + "Top": 0.14976538717746735 + }, + "Polygon": [ + { + "X": 0.14541025459766388, + "Y": 0.14983096718788147 + }, + { + "X": 0.19938988983631134, + "Y": 0.14976538717746735 + }, + { + "X": 0.19940190017223358, + "Y": 0.15856944024562836 + }, + { + "X": 0.145422101020813, + "Y": 0.15863487124443054 + } + ] + }, + "Id": "1fed1c47-3db0-458d-a808-97cdb4567880", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92866516113281, + "Text": "CSN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.030109696090221405, + "Height": 0.00899831298738718, + "Left": 0.6758227944374084, + "Top": 0.14972975850105286 + }, + "Polygon": [ + { + "X": 0.6758227944374084, + "Y": 0.14976632595062256 + }, + { + "X": 0.7059186697006226, + "Y": 0.14972975850105286 + }, + { + "X": 0.7059324979782104, + "Y": 0.15869159996509552 + }, + { + "X": 0.6758365035057068, + "Y": 0.15872807800769806 + } + ] + }, + "Id": "2453af2f-4a36-4989-9dcb-57338681c1f0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8368148803711, + "Text": "KAVIA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04637819528579712, + "Height": 0.008753343485295773, + "Left": 0.7116986513137817, + "Top": 0.14966821670532227 + }, + "Polygon": [ + { + "X": 0.7116986513137817, + "Y": 0.149724543094635 + }, + { + "X": 0.7580632567405701, + "Y": 0.14966821670532227 + }, + { + "X": 0.7580768465995789, + "Y": 0.15836535394191742 + }, + { + "X": 0.7117120623588562, + "Y": 0.1584215611219406 + } + ] + }, + "Id": "bb514f5f-c605-481f-b849-f1abab63c7f9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84953308105469, + "Text": "AUTO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.041511472314596176, + "Height": 0.008829514496028423, + "Left": 0.7629876732826233, + "Top": 0.1494290828704834 + }, + "Polygon": [ + { + "X": 0.7629876732826233, + "Y": 0.14947949349880219 + }, + { + "X": 0.8044852614402771, + "Y": 0.1494290828704834 + }, + { + "X": 0.8044991493225098, + "Y": 0.15820829570293427 + }, + { + "X": 0.7630013823509216, + "Y": 0.1582585871219635 + } + ] + }, + "Id": "6ebc318e-203f-49a5-911b-2cc19bc139db", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9876708984375, + "Text": "BODY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04024738445878029, + "Height": 0.00880936998873949, + "Left": 0.8099057078361511, + "Top": 0.14918795228004456 + }, + "Polygon": [ + { + "X": 0.8099057078361511, + "Y": 0.14923682808876038 + }, + { + "X": 0.8501391410827637, + "Y": 0.14918795228004456 + }, + { + "X": 0.8501530885696411, + "Y": 0.1579485535621643 + }, + { + "X": 0.809919536113739, + "Y": 0.15799732506275177 + } + ] + }, + "Id": "2170fb34-ed23-458f-a887-70f9d25e61f2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91595458984375, + "Text": "CSN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029028840363025665, + "Height": 0.008800172246992588, + "Left": 0.14454202353954315, + "Top": 0.16350717842578888 + }, + "Polygon": [ + { + "X": 0.14454202353954315, + "Y": 0.16354231536388397 + }, + { + "X": 0.17355899512767792, + "Y": 0.16350717842578888 + }, + { + "X": 0.17357087135314941, + "Y": 0.17227229475975037 + }, + { + "X": 0.14455381035804749, + "Y": 0.1723073571920395 + } + ] + }, + "Id": "23fa1407-e8cc-4abe-99e1-6ff806175fb5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82494354248047, + "Text": "KAVIA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04568455368280411, + "Height": 0.008960883133113384, + "Left": 0.17926214635372162, + "Top": 0.16336983442306519 + }, + "Polygon": [ + { + "X": 0.17926214635372162, + "Y": 0.16342514753341675 + }, + { + "X": 0.22493445873260498, + "Y": 0.16336983442306519 + }, + { + "X": 0.22494669258594513, + "Y": 0.17227552831172943 + }, + { + "X": 0.17927423119544983, + "Y": 0.17233072221279144 + } + ] + }, + "Id": "109b1a5a-2fd8-4191-bde2-d2723543a346", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85736083984375, + "Text": "AUTO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04179481044411659, + "Height": 0.00891498476266861, + "Left": 0.22997279465198517, + "Top": 0.16321082413196564 + }, + "Polygon": [ + { + "X": 0.22997279465198517, + "Y": 0.16326142847537994 + }, + { + "X": 0.27175527811050415, + "Y": 0.16321082413196564 + }, + { + "X": 0.27176761627197266, + "Y": 0.1720753312110901 + }, + { + "X": 0.22998498380184174, + "Y": 0.17212581634521484 + } + ] + }, + "Id": "0178d2b4-5fb1-4704-a8f2-707cfccf7aa2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.985107421875, + "Text": "BODY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04119198024272919, + "Height": 0.00902821496129036, + "Left": 0.27733826637268066, + "Top": 0.16306158900260925 + }, + "Polygon": [ + { + "X": 0.27733826637268066, + "Y": 0.16311144828796387 + }, + { + "X": 0.31851762533187866, + "Y": 0.16306158900260925 + }, + { + "X": 0.31853026151657104, + "Y": 0.17204004526138306 + }, + { + "X": 0.2773507833480835, + "Y": 0.17208980023860931 + } + ] + }, + "Id": "fbeba0df-c26d-4cff-8220-8354da11c6d6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.67527770996094, + "Text": "90", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01815222017467022, + "Height": 0.008982243947684765, + "Left": 0.6764671206474304, + "Top": 0.16336606442928314 + }, + "Polygon": [ + { + "X": 0.6764671206474304, + "Y": 0.16338802874088287 + }, + { + "X": 0.6946055889129639, + "Y": 0.16336606442928314 + }, + { + "X": 0.694619357585907, + "Y": 0.17232640087604523 + }, + { + "X": 0.6764808893203735, + "Y": 0.17234830558300018 + } + ] + }, + "Id": "872033db-d349-4f29-9977-c35bb1541bfa", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80680084228516, + "Text": "33RD", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03836241737008095, + "Height": 0.008978472091257572, + "Left": 0.700356125831604, + "Top": 0.1631452888250351 + }, + "Polygon": [ + { + "X": 0.700356125831604, + "Y": 0.16319172084331512 + }, + { + "X": 0.7387046217918396, + "Y": 0.1631452888250351 + }, + { + "X": 0.7387185096740723, + "Y": 0.17207743227481842 + }, + { + "X": 0.7003698945045471, + "Y": 0.1721237599849701 + } + ] + }, + "Id": "2d064d75-9f28-41b3-9452-cebbe2bb0536", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86946868896484, + "Text": "ST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018019791692495346, + "Height": 0.008968771435320377, + "Left": 0.7443935871124268, + "Top": 0.1629900336265564 + }, + "Polygon": [ + { + "X": 0.7443935871124268, + "Y": 0.163011834025383 + }, + { + "X": 0.7623993754386902, + "Y": 0.1629900336265564 + }, + { + "X": 0.7624133825302124, + "Y": 0.17193704843521118 + }, + { + "X": 0.7444075345993042, + "Y": 0.1719588041305542 + } + ] + }, + "Id": "5fbe3b7f-808c-469e-914f-a73a4be8bafc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.73224639892578, + "Text": "E", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008068909868597984, + "Height": 0.008852439001202583, + "Left": 0.7680402994155884, + "Top": 0.1630719155073166 + }, + "Polygon": [ + { + "X": 0.7680402994155884, + "Y": 0.16308167576789856 + }, + { + "X": 0.7760953307151794, + "Y": 0.1630719155073166 + }, + { + "X": 0.7761092185974121, + "Y": 0.17191462218761444 + }, + { + "X": 0.7680541276931763, + "Y": 0.17192436754703522 + } + ] + }, + "Id": "882fb33c-3986-4105-99ff-bccb89295b6e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.69276428222656, + "Text": "90", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01770513318479061, + "Height": 0.008932830765843391, + "Left": 0.14454853534698486, + "Top": 0.1770387589931488 + }, + "Polygon": [ + { + "X": 0.14454853534698486, + "Y": 0.1770601123571396 + }, + { + "X": 0.1622416228055954, + "Y": 0.1770387589931488 + }, + { + "X": 0.16225366294384003, + "Y": 0.18595027923583984 + }, + { + "X": 0.14456051588058472, + "Y": 0.18597158789634705 + } + ] + }, + "Id": "fcfde89c-7958-47dd-bffc-efed0de151d8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.73638916015625, + "Text": "33RD", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.038318753242492676, + "Height": 0.009094190783798695, + "Left": 0.16769243776798248, + "Top": 0.17683319747447968 + }, + "Polygon": [ + { + "X": 0.16769243776798248, + "Y": 0.17687943577766418 + }, + { + "X": 0.20599882304668427, + "Y": 0.17683319747447968 + }, + { + "X": 0.20601119101047516, + "Y": 0.18588125705718994 + }, + { + "X": 0.16770468652248383, + "Y": 0.1859273910522461 + } + ] + }, + "Id": "8e89bf9f-86d1-46a5-9b18-3faabe6c748d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.7427749633789, + "Text": "ST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01844295673072338, + "Height": 0.008903950452804565, + "Left": 0.21143397688865662, + "Top": 0.17682558298110962 + }, + "Polygon": [ + { + "X": 0.21143397688865662, + "Y": 0.17684783041477203 + }, + { + "X": 0.22986473143100739, + "Y": 0.17682558298110962 + }, + { + "X": 0.22987693548202515, + "Y": 0.18570733070373535 + }, + { + "X": 0.2114461362361908, + "Y": 0.18572953343391418 + } + ] + }, + "Id": "195b0bb9-a811-4699-8d95-fbe3bde8e799", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.3089828491211, + "Text": "E", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008250546641647816, + "Height": 0.008935589343309402, + "Left": 0.234987273812294, + "Top": 0.17693065106868744 + }, + "Polygon": [ + { + "X": 0.234987273812294, + "Y": 0.17694059014320374 + }, + { + "X": 0.24322549998760223, + "Y": 0.17693065106868744 + }, + { + "X": 0.24323782324790955, + "Y": 0.18585631251335144 + }, + { + "X": 0.23499955236911774, + "Y": 0.18586623668670654 + } + ] + }, + "Id": "29b2a2b4-0c6b-438e-8fbb-25c03bf26d41", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 83.43324279785156, + "Text": "SASKATOON,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.09651074558496475, + "Height": 0.010480593889951706, + "Left": 0.6768854260444641, + "Top": 0.17645956575870514 + }, + "Polygon": [ + { + "X": 0.6768854260444641, + "Y": 0.17657601833343506 + }, + { + "X": 0.773379921913147, + "Y": 0.17645956575870514 + }, + { + "X": 0.7733961343765259, + "Y": 0.1868239790201187 + }, + { + "X": 0.6769012808799744, + "Y": 0.18694014847278595 + } + ] + }, + "Id": "5770687d-6428-42b2-995a-af5de4dbe0b4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85489654541016, + "Text": "SK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0182951707392931, + "Height": 0.0090912114828825, + "Left": 0.7796707153320312, + "Top": 0.1763923615217209 + }, + "Polygon": [ + { + "X": 0.7796707153320312, + "Y": 0.17641443014144897 + }, + { + "X": 0.7979515790939331, + "Y": 0.1763923615217209 + }, + { + "X": 0.7979658842086792, + "Y": 0.18546156585216522 + }, + { + "X": 0.7796849012374878, + "Y": 0.18548357486724854 + } + ] + }, + "Id": "ed4fdf09-3eaf-42c1-b1d5-5b63e03b7674", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.75056457519531, + "Text": "S7K", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027822865173220634, + "Height": 0.00919635221362114, + "Left": 0.8083060383796692, + "Top": 0.17624889314174652 + }, + "Polygon": [ + { + "X": 0.8083060383796692, + "Y": 0.17628245055675507 + }, + { + "X": 0.8361143469810486, + "Y": 0.17624889314174652 + }, + { + "X": 0.8361289501190186, + "Y": 0.1854117512702942 + }, + { + "X": 0.8083205223083496, + "Y": 0.18544524908065796 + } + ] + }, + "Id": "71406edb-3deb-452d-9716-656d7ff733fe", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 93.17705535888672, + "Text": "0S1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02478514239192009, + "Height": 0.009280680678784847, + "Left": 0.8412613272666931, + "Top": 0.17576603591442108 + }, + "Polygon": [ + { + "X": 0.8412613272666931, + "Y": 0.17579594254493713 + }, + { + "X": 0.8660317063331604, + "Y": 0.17576603591442108 + }, + { + "X": 0.8660464882850647, + "Y": 0.18501688539981842 + }, + { + "X": 0.8412760496139526, + "Y": 0.1850467175245285 + } + ] + }, + "Id": "822ac462-3807-4fc1-9b99-e5f7d9f4675f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 92.58799743652344, + "Text": "SASKATOON,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.09685688465833664, + "Height": 0.010086758062243462, + "Left": 0.14427752792835236, + "Top": 0.19033685326576233 + }, + "Polygon": [ + { + "X": 0.14427752792835236, + "Y": 0.19045336544513702 + }, + { + "X": 0.24112066626548767, + "Y": 0.19033685326576233 + }, + { + "X": 0.2411344200372696, + "Y": 0.20030738413333893 + }, + { + "X": 0.14429093897342682, + "Y": 0.20042361319065094 + } + ] + }, + "Id": "0ff966c3-ba78-4279-8805-63279b45f062", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81652069091797, + "Text": "SK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01850341074168682, + "Height": 0.008621415123343468, + "Left": 0.24702948331832886, + "Top": 0.1903863400220871 + }, + "Polygon": [ + { + "X": 0.24702948331832886, + "Y": 0.1904085874557495 + }, + { + "X": 0.26552096009254456, + "Y": 0.1903863400220871 + }, + { + "X": 0.26553288102149963, + "Y": 0.19898556172847748 + }, + { + "X": 0.24704135954380035, + "Y": 0.1990077644586563 + } + ] + }, + "Id": "d2caa42c-371f-474f-82f0-bbf81727333a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.36082458496094, + "Text": "S7K", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027953214943408966, + "Height": 0.0088881840929389, + "Left": 0.27591803669929504, + "Top": 0.19023169577121735 + }, + "Polygon": [ + { + "X": 0.27591803669929504, + "Y": 0.19026529788970947 + }, + { + "X": 0.30385884642601013, + "Y": 0.19023169577121735 + }, + { + "X": 0.3038712441921234, + "Y": 0.19908632338047028 + }, + { + "X": 0.27593034505844116, + "Y": 0.19911986589431763 + } + ] + }, + "Id": "c4758950-886e-4b17-9a40-085cc504d428", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 84.61526489257812, + "Text": "0S1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025907060131430626, + "Height": 0.008944540284574032, + "Left": 0.30909690260887146, + "Top": 0.1899876445531845 + }, + "Polygon": [ + { + "X": 0.30909690260887146, + "Y": 0.19001880288124084 + }, + { + "X": 0.33499136567115784, + "Y": 0.1899876445531845 + }, + { + "X": 0.33500394225120544, + "Y": 0.19890110194683075 + }, + { + "X": 0.3091093897819519, + "Y": 0.19893218576908112 + } + ] + }, + "Id": "7d889d26-fb78-4d16-b90a-d26e71cea54a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.6675796508789, + "Text": "306-242-2733", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.10368923842906952, + "Height": 0.009105456992983818, + "Left": 0.676653265953064, + "Top": 0.19013629853725433 + }, + "Polygon": [ + { + "X": 0.676653265953064, + "Y": 0.19026100635528564 + }, + { + "X": 0.7803284525871277, + "Y": 0.19013629853725433 + }, + { + "X": 0.7803425192832947, + "Y": 0.19911730289459229 + }, + { + "X": 0.6766670346260071, + "Y": 0.1992417424917221 + } + ] + }, + "Id": "2bebbf95-02e1-4bee-9243-36c52ecca6d1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.75663757324219, + "Text": "306-242-2733", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.10314027965068817, + "Height": 0.009416496381163597, + "Left": 0.14457209408283234, + "Top": 0.2037995308637619 + }, + "Polygon": [ + { + "X": 0.14457209408283234, + "Y": 0.20392319560050964 + }, + { + "X": 0.2476995438337326, + "Y": 0.2037995308637619 + }, + { + "X": 0.2477123737335205, + "Y": 0.213092640042305 + }, + { + "X": 0.14458459615707397, + "Y": 0.21321602165699005 + } + ] + }, + "Id": "eeb1845e-7c8d-416f-b592-c0c380537559", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98210906982422, + "Text": "ORDER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04397556185722351, + "Height": 0.00820617564022541, + "Left": 0.047885820269584656, + "Top": 0.24518968164920807 + }, + "Polygon": [ + { + "X": 0.047885820269584656, + "Y": 0.24524186551570892 + }, + { + "X": 0.09185057133436203, + "Y": 0.24518968164920807 + }, + { + "X": 0.09186138212680817, + "Y": 0.25334376096725464 + }, + { + "X": 0.04789650812745094, + "Y": 0.25339585542678833 + } + ] + }, + "Id": "0889e5f2-0a4d-4a24-a3d6-ceb085c4c18d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94493865966797, + "Text": "NUMBER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05396050959825516, + "Height": 0.008996826596558094, + "Left": 0.09703134745359421, + "Top": 0.2445785403251648 + }, + "Polygon": [ + { + "X": 0.09703134745359421, + "Y": 0.24464260041713715 + }, + { + "X": 0.15097983181476593, + "Y": 0.2445785403251648 + }, + { + "X": 0.15099185705184937, + "Y": 0.2535114586353302 + }, + { + "X": 0.09704321622848511, + "Y": 0.2535753846168518 + } + ] + }, + "Id": "948300ec-9571-41db-9217-762f788adfcb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95728302001953, + "Text": "ORDER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04411574825644493, + "Height": 0.008249638602137566, + "Left": 0.1637343317270279, + "Top": 0.2449064403772354 + }, + "Polygon": [ + { + "X": 0.1637343317270279, + "Y": 0.2449588030576706 + }, + { + "X": 0.20783887803554535, + "Y": 0.2449064403772354 + }, + { + "X": 0.20785008370876312, + "Y": 0.2531038224697113 + }, + { + "X": 0.16374541819095612, + "Y": 0.25315606594085693 + } + ] + }, + "Id": "12467aff-9a7a-408b-aacb-d660d5606780", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94163513183594, + "Text": "DATE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03490539640188217, + "Height": 0.008080405183136463, + "Left": 0.21260719001293182, + "Top": 0.24490058422088623 + }, + "Polygon": [ + { + "X": 0.21260719001293182, + "Y": 0.24494200944900513 + }, + { + "X": 0.24750149250030518, + "Y": 0.24490058422088623 + }, + { + "X": 0.2475125938653946, + "Y": 0.2529396414756775 + }, + { + "X": 0.21261820197105408, + "Y": 0.2529809772968292 + } + ] + }, + "Id": "024ed319-6efb-4eef-b342-8b46e00a2259", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96875762939453, + "Text": "SALES", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04184373468160629, + "Height": 0.008334505371749401, + "Left": 0.2591850459575653, + "Top": 0.24460777640342712 + }, + "Polygon": [ + { + "X": 0.2591850459575653, + "Y": 0.24465744197368622 + }, + { + "X": 0.3010171949863434, + "Y": 0.24460777640342712 + }, + { + "X": 0.3010287880897522, + "Y": 0.25289270281791687 + }, + { + "X": 0.25919651985168457, + "Y": 0.25294229388237 + } + ] + }, + "Id": "d519da7c-1934-4dd7-b505-b01ea786325b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81517028808594, + "Text": "REP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.023659946396946907, + "Height": 0.008182259276509285, + "Left": 0.30611878633499146, + "Top": 0.24453690648078918 + }, + "Polygon": [ + { + "X": 0.30611878633499146, + "Y": 0.2445649951696396 + }, + { + "X": 0.32976722717285156, + "Y": 0.24453690648078918 + }, + { + "X": 0.3297787308692932, + "Y": 0.2526911497116089 + }, + { + "X": 0.30613020062446594, + "Y": 0.2527191638946533 + } + ] + }, + "Id": "567763ae-38d9-4780-9214-049887fd681d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95451354980469, + "Text": "CUSTOMER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07269170135259628, + "Height": 0.008512094616889954, + "Left": 0.4293302297592163, + "Top": 0.24373610317707062 + }, + "Polygon": [ + { + "X": 0.4293302297592163, + "Y": 0.24382241070270538 + }, + { + "X": 0.5020095109939575, + "Y": 0.24373610317707062 + }, + { + "X": 0.5020219087600708, + "Y": 0.25216206908226013 + }, + { + "X": 0.4293423891067505, + "Y": 0.25224819779396057 + } + ] + }, + "Id": "b3952533-74b5-4851-8b70-0c31d18561cf", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80619812011719, + "Text": "P/O", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021203281357884407, + "Height": 0.008430969901382923, + "Left": 0.5069984197616577, + "Top": 0.24360820651054382 + }, + "Polygon": [ + { + "X": 0.5069984197616577, + "Y": 0.24363337457180023 + }, + { + "X": 0.5281893014907837, + "Y": 0.24360820651054382 + }, + { + "X": 0.528201699256897, + "Y": 0.25201407074928284 + }, + { + "X": 0.507010817527771, + "Y": 0.25203919410705566 + } + ] + }, + "Id": "63f59d3e-831b-4bda-a441-a3c4fb0eeb2f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9578857421875, + "Text": "NUMBER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.054545093327760696, + "Height": 0.008328862488269806, + "Left": 0.5334101319313049, + "Top": 0.24330942332744598 + }, + "Polygon": [ + { + "X": 0.5334101319313049, + "Y": 0.24337416887283325 + }, + { + "X": 0.5879428386688232, + "Y": 0.24330942332744598 + }, + { + "X": 0.5879552364349365, + "Y": 0.2515736520290375 + }, + { + "X": 0.5334224104881287, + "Y": 0.2516382932662964 + } + ] + }, + "Id": "53721271-8573-4bd9-859d-d802da936af1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.75189971923828, + "Text": "PAYMENT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06493361294269562, + "Height": 0.008441987447440624, + "Left": 0.6731850504875183, + "Top": 0.24236051738262177 + }, + "Polygon": [ + { + "X": 0.6731850504875183, + "Y": 0.24243763089179993 + }, + { + "X": 0.7381056547164917, + "Y": 0.24236051738262177 + }, + { + "X": 0.7381186485290527, + "Y": 0.25072556734085083 + }, + { + "X": 0.673197865486145, + "Y": 0.25080251693725586 + } + ] + }, + "Id": "b8317731-e8e2-4c0b-8040-1088b826d607", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.48013305664062, + "Text": "TERMS", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04464542493224144, + "Height": 0.008391190320253372, + "Left": 0.7416747808456421, + "Top": 0.24218618869781494 + }, + "Polygon": [ + { + "X": 0.7416747808456421, + "Y": 0.24223920702934265 + }, + { + "X": 0.786307156085968, + "Y": 0.24218618869781494 + }, + { + "X": 0.7863202095031738, + "Y": 0.25052449107170105 + }, + { + "X": 0.7416877746582031, + "Y": 0.2505773901939392 + } + ] + }, + "Id": "93078708-1c9a-4a54-8e48-a88c1baaae95", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.82331848144531, + "Text": "REGO9057", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07579998672008514, + "Height": 0.009112833067774773, + "Left": 0.0573258139193058, + "Top": 0.25699305534362793 + }, + "Polygon": [ + { + "X": 0.0573258139193058, + "Y": 0.2570827603340149 + }, + { + "X": 0.13311369717121124, + "Y": 0.25699305534362793 + }, + { + "X": 0.13312579691410065, + "Y": 0.2660163938999176 + }, + { + "X": 0.05733766779303551, + "Y": 0.26610589027404785 + } + ] + }, + "Id": "e210f2b3-1feb-4e1b-a359-9b25faae00b2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.7378158569336, + "Text": "10/07/22", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06409009546041489, + "Height": 0.009407377801835537, + "Left": 0.17120099067687988, + "Top": 0.2568434774875641 + }, + "Polygon": [ + { + "X": 0.17120099067687988, + "Y": 0.25691932439804077 + }, + { + "X": 0.23527823388576508, + "Y": 0.2568434774875641 + }, + { + "X": 0.23529109358787537, + "Y": 0.26617521047592163 + }, + { + "X": 0.17121362686157227, + "Y": 0.266250878572464 + } + ] + }, + "Id": "e52b6030-d3fb-4e94-8587-c88c8ff5b578", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.51559448242188, + "Text": "H561/", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04425487294793129, + "Height": 0.00938858836889267, + "Left": 0.267251193523407, + "Top": 0.2565353512763977 + }, + "Polygon": [ + { + "X": 0.267251193523407, + "Y": 0.2565877139568329 + }, + { + "X": 0.3114929497241974, + "Y": 0.2565353512763977 + }, + { + "X": 0.311506062746048, + "Y": 0.26587167382240295 + }, + { + "X": 0.26726412773132324, + "Y": 0.2659239172935486 + } + ] + }, + "Id": "de65f3d4-db53-4821-b823-5941bdbbcee6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81785583496094, + "Text": "42719", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.046453122049570084, + "Height": 0.009029661305248737, + "Left": 0.4368852972984314, + "Top": 0.25596171617507935 + }, + "Polygon": [ + { + "X": 0.4368852972984314, + "Y": 0.25601670145988464 + }, + { + "X": 0.4833252727985382, + "Y": 0.25596171617507935 + }, + { + "X": 0.4833384156227112, + "Y": 0.26493650674819946 + }, + { + "X": 0.43689829111099243, + "Y": 0.2649913728237152 + } + ] + }, + "Id": "6790a85d-af70-4318-99b1-04c7a0bd7b17", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 72.86243438720703, + "Text": "2%15th-Net30thP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.1246044784784317, + "Height": 0.009378812275826931, + "Left": 0.683944821357727, + "Top": 0.25430476665496826 + }, + "Polygon": [ + { + "X": 0.683944821357727, + "Y": 0.25445228815078735 + }, + { + "X": 0.8085347414016724, + "Y": 0.25430476665496826 + }, + { + "X": 0.8085492849349976, + "Y": 0.26353636384010315 + }, + { + "X": 0.6839590072631836, + "Y": 0.263683557510376 + } + ] + }, + "Id": "487cb4b9-14e1-4266-8734-42774f07d26b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85942840576172, + "Text": "SHIP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02916182205080986, + "Height": 0.008070248179137707, + "Left": 0.048048485070466995, + "Top": 0.2725051939487457 + }, + "Polygon": [ + { + "X": 0.048048485070466995, + "Y": 0.27253958582878113 + }, + { + "X": 0.07719969004392624, + "Y": 0.2725051939487457 + }, + { + "X": 0.07721030712127686, + "Y": 0.28054115176200867 + }, + { + "X": 0.048059020191431046, + "Y": 0.2805754542350769 + } + ] + }, + "Id": "ceea9abd-4d21-4648-b162-d41fe6e34756", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90876007080078, + "Text": "DATE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0349603034555912, + "Height": 0.008156239986419678, + "Left": 0.0818411335349083, + "Top": 0.2725141644477844 + }, + "Polygon": [ + { + "X": 0.0818411335349083, + "Y": 0.2725553512573242 + }, + { + "X": 0.11679060012102127, + "Y": 0.2725141644477844 + }, + { + "X": 0.1168014332652092, + "Y": 0.2806292474269867 + }, + { + "X": 0.08185186237096786, + "Y": 0.2806704044342041 + } + ] + }, + "Id": "d9a6ee9f-5256-4781-b787-c81bb8c0a13b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90892028808594, + "Text": "WRTN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0391320176422596, + "Height": 0.008093813434243202, + "Left": 0.1290813535451889, + "Top": 0.27241382002830505 + }, + "Polygon": [ + { + "X": 0.1290813535451889, + "Y": 0.2724599540233612 + }, + { + "X": 0.1682024747133255, + "Y": 0.27241382002830505 + }, + { + "X": 0.1682133674621582, + "Y": 0.2804616093635559 + }, + { + "X": 0.12909212708473206, + "Y": 0.2805076539516449 + } + ] + }, + "Id": "a7a4f4b6-8830-43c6-8f48-e27ffc480919", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95061492919922, + "Text": "BY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016789047047495842, + "Height": 0.008022491820156574, + "Left": 0.17282409965991974, + "Top": 0.27236732840538025 + }, + "Polygon": [ + { + "X": 0.17282409965991974, + "Y": 0.2723871171474457 + }, + { + "X": 0.18960225582122803, + "Y": 0.27236732840538025 + }, + { + "X": 0.18961314857006073, + "Y": 0.2803700864315033 + }, + { + "X": 0.17283493280410767, + "Y": 0.28038981556892395 + } + ] + }, + "Id": "e730645b-f36d-49c9-823d-50bf523dede6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91498565673828, + "Text": "CONTACT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06350241601467133, + "Height": 0.008441532030701637, + "Left": 0.2068048119544983, + "Top": 0.27212610840797424 + }, + "Polygon": [ + { + "X": 0.2068048119544983, + "Y": 0.27220097184181213 + }, + { + "X": 0.2702955901622772, + "Y": 0.27212610840797424 + }, + { + "X": 0.2703072130680084, + "Y": 0.280492901802063 + }, + { + "X": 0.20681625604629517, + "Y": 0.28056761622428894 + } + ] + }, + "Id": "6f404698-00e7-451c-855f-30286c22c279", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.25695037841797, + "Text": "R/O", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022003749385476112, + "Height": 0.008289412595331669, + "Left": 0.42965662479400635, + "Top": 0.27155911922454834 + }, + "Polygon": [ + { + "X": 0.42965662479400635, + "Y": 0.27158504724502563 + }, + { + "X": 0.4516483545303345, + "Y": 0.27155911922454834 + }, + { + "X": 0.4516603648662567, + "Y": 0.2798226475715637 + }, + { + "X": 0.4296685755252838, + "Y": 0.27984851598739624 + } + ] + }, + "Id": "d944437d-d5ea-49a6-b676-fbb73e525044", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90428924560547, + "Text": "NUMBER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0541202686727047, + "Height": 0.008034352213144302, + "Left": 0.45692822337150574, + "Top": 0.27144283056259155 + }, + "Polygon": [ + { + "X": 0.45692822337150574, + "Y": 0.2715066373348236 + }, + { + "X": 0.51103675365448, + "Y": 0.27144283056259155 + }, + { + "X": 0.5110484957695007, + "Y": 0.27941349148750305 + }, + { + "X": 0.45693981647491455, + "Y": 0.27947717905044556 + } + ] + }, + "Id": "eb478799-1e5a-49ef-af95-72457c7d5b8b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87385559082031, + "Text": "SHIP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029696382582187653, + "Height": 0.008138840086758137, + "Left": 0.6737975478172302, + "Top": 0.27031469345092773 + }, + "Polygon": [ + { + "X": 0.6737975478172302, + "Y": 0.2703497111797333 + }, + { + "X": 0.7034814357757568, + "Y": 0.27031469345092773 + }, + { + "X": 0.7034938931465149, + "Y": 0.2784186005592346 + }, + { + "X": 0.6738099455833435, + "Y": 0.278453528881073 + } + ] + }, + "Id": "b0c2381c-c56e-4b2a-99fc-6035a5de8eee", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.03430938720703, + "Text": "VIA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022774575278162956, + "Height": 0.007894269190728664, + "Left": 0.7073911428451538, + "Top": 0.2704111337661743 + }, + "Polygon": [ + { + "X": 0.7073911428451538, + "Y": 0.27043798565864563 + }, + { + "X": 0.730153501033783, + "Y": 0.2704111337661743 + }, + { + "X": 0.7301657199859619, + "Y": 0.2782785892486572 + }, + { + "X": 0.707403302192688, + "Y": 0.27830538153648376 + } + ] + }, + "Id": "3e714408-bcf6-429b-bdb6-54d1b3f958fb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.78462219238281, + "Text": "10/17/22", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06375154852867126, + "Height": 0.008829658851027489, + "Left": 0.052173975855112076, + "Top": 0.2852458655834198 + }, + "Polygon": [ + { + "X": 0.052173975855112076, + "Y": 0.28532078862190247 + }, + { + "X": 0.11591383814811707, + "Y": 0.2852458655834198 + }, + { + "X": 0.11592552065849304, + "Y": 0.2940007746219635 + }, + { + "X": 0.05218546465039253, + "Y": 0.29407554864883423 + } + ] + }, + "Id": "f358cad6-da9d-4a5f-964e-ac906885916b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.7158203125, + "Text": "5B72", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03624593839049339, + "Height": 0.00893153715878725, + "Left": 0.1343856006860733, + "Top": 0.2850804030895233 + }, + "Polygon": [ + { + "X": 0.1343856006860733, + "Y": 0.2851230204105377 + }, + { + "X": 0.17061950266361237, + "Y": 0.2850804030895233 + }, + { + "X": 0.170631542801857, + "Y": 0.29396945238113403 + }, + { + "X": 0.13439752161502838, + "Y": 0.2940119504928589 + } + ] + }, + "Id": "9dff4831-2c90-455f-b61e-92d22eb6cc69", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 88.76171875, + "Text": "*", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005902840290218592, + "Height": 0.004878581035882235, + "Left": 0.21529439091682434, + "Top": 0.2849128246307373 + }, + "Polygon": [ + { + "X": 0.21529439091682434, + "Y": 0.28491973876953125 + }, + { + "X": 0.22119055688381195, + "Y": 0.2849128246307373 + }, + { + "X": 0.2211972326040268, + "Y": 0.2897844910621643 + }, + { + "X": 0.21530106663703918, + "Y": 0.28979140520095825 + } + ] + }, + "Id": "a19d325b-d422-469f-91b7-16fe4700ece6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9693603515625, + "Text": "COMPANY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07453981041908264, + "Height": 0.009189682081341743, + "Left": 0.6816582679748535, + "Top": 0.2827000021934509 + }, + "Polygon": [ + { + "X": 0.6816582679748535, + "Y": 0.28278762102127075 + }, + { + "X": 0.7561838626861572, + "Y": 0.2827000021934509 + }, + { + "X": 0.7561980485916138, + "Y": 0.29180222749710083 + }, + { + "X": 0.681672215461731, + "Y": 0.29188966751098633 + } + ] + }, + "Id": "72b2976f-2af1-4b80-9681-78dbc8e05434", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95758819580078, + "Text": "TRUCK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04963052645325661, + "Height": 0.009059350937604904, + "Left": 0.7613999247550964, + "Top": 0.2823617160320282 + }, + "Polygon": [ + { + "X": 0.7613999247550964, + "Y": 0.2824200689792633 + }, + { + "X": 0.8110162615776062, + "Y": 0.2823617160320282 + }, + { + "X": 0.8110304474830627, + "Y": 0.29136285185813904 + }, + { + "X": 0.7614139914512634, + "Y": 0.2914210557937622 + } + ] + }, + "Id": "f33a1cfc-edec-44ee-bcde-b0b76024d9b5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.79598999023438, + "Text": "3561000", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06505048274993896, + "Height": 0.009290416724979877, + "Left": 0.8162717819213867, + "Top": 0.28190121054649353 + }, + "Polygon": [ + { + "X": 0.8162717819213867, + "Y": 0.28197771310806274 + }, + { + "X": 0.8813074827194214, + "Y": 0.28190121054649353 + }, + { + "X": 0.8813222646713257, + "Y": 0.29111531376838684 + }, + { + "X": 0.8162863254547119, + "Y": 0.29119163751602173 + } + ] + }, + "Id": "d325dd27-8911-4685-a4f0-d78883617ea5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96121215820312, + "Text": "For", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021355411037802696, + "Height": 0.008723394945263863, + "Left": 0.24676956236362457, + "Top": 0.29898470640182495 + }, + "Polygon": [ + { + "X": 0.24676956236362457, + "Y": 0.2990097105503082 + }, + { + "X": 0.2681128978729248, + "Y": 0.29898470640182495 + }, + { + "X": 0.2681249678134918, + "Y": 0.30768314003944397 + }, + { + "X": 0.24678157269954681, + "Y": 0.30770808458328247 + } + ] + }, + "Id": "f9281883-4d0e-4705-bd04-043369e725f5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.36823272705078, + "Text": "Questions,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07178184390068054, + "Height": 0.009890198707580566, + "Left": 0.2735045552253723, + "Top": 0.29869019985198975 + }, + "Polygon": [ + { + "X": 0.2735045552253723, + "Y": 0.29877427220344543 + }, + { + "X": 0.3452725410461426, + "Y": 0.29869019985198975 + }, + { + "X": 0.34528639912605286, + "Y": 0.30849653482437134 + }, + { + "X": 0.2735182046890259, + "Y": 0.3085803985595703 + } + ] + }, + "Id": "41ca2dea-7f11-451d-bd49-e27745cba27c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9761734008789, + "Text": "contact", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05115363374352455, + "Height": 0.00813977513462305, + "Left": 0.35149145126342773, + "Top": 0.29937905073165894 + }, + "Polygon": [ + { + "X": 0.35149145126342773, + "Y": 0.2994389533996582 + }, + { + "X": 0.4026334583759308, + "Y": 0.29937905073165894 + }, + { + "X": 0.402645081281662, + "Y": 0.3074590265750885 + }, + { + "X": 0.3515028953552246, + "Y": 0.3075188100337982 + } + ] + }, + "Id": "9ef81a4a-d70a-4587-9615-2fa24c2ae495", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9873046875, + "Text": "MANDY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.054810117930173874, + "Height": 0.008737924508750439, + "Left": 0.4085266888141632, + "Top": 0.29832229018211365 + }, + "Polygon": [ + { + "X": 0.4085266888141632, + "Y": 0.29838648438453674 + }, + { + "X": 0.4633241593837738, + "Y": 0.29832229018211365 + }, + { + "X": 0.4633367955684662, + "Y": 0.3069961369037628 + }, + { + "X": 0.40853914618492126, + "Y": 0.30706021189689636 + } + ] + }, + "Id": "46644b2b-fedb-4f2e-877c-366f52fc3979", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.53224182128906, + "Text": "EVANS,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05347567796707153, + "Height": 0.009813226759433746, + "Left": 0.4688703119754791, + "Top": 0.29807981848716736 + }, + "Polygon": [ + { + "X": 0.4688703119754791, + "Y": 0.2981424331665039 + }, + { + "X": 0.5223315954208374, + "Y": 0.29807981848716736 + }, + { + "X": 0.522346019744873, + "Y": 0.3078305423259735 + }, + { + "X": 0.46888455748558044, + "Y": 0.3078930377960205 + } + ] + }, + "Id": "37437db4-311f-438b-b1ab-cb2cb5915335", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 80.28942108154297, + "Text": "306-657-4784,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.1075456440448761, + "Height": 0.010151902213692665, + "Left": 0.5281899571418762, + "Top": 0.29758790135383606 + }, + "Polygon": [ + { + "X": 0.5281899571418762, + "Y": 0.29771390557289124 + }, + { + "X": 0.6357203722000122, + "Y": 0.29758790135383606 + }, + { + "X": 0.6357355713844299, + "Y": 0.30761414766311646 + }, + { + "X": 0.5282047986984253, + "Y": 0.30773982405662537 + } + ] + }, + "Id": "8bbc5e10-ee54-4ac9-8b9a-0929e01d8c1c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 74.65003204345703, + "Text": "SASKATOON,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.09642300754785538, + "Height": 0.010299881920218468, + "Left": 0.6425343155860901, + "Top": 0.29681751132011414 + }, + "Polygon": [ + { + "X": 0.6425343155860901, + "Y": 0.2969304919242859 + }, + { + "X": 0.738941490650177, + "Y": 0.29681751132011414 + }, + { + "X": 0.7389572858810425, + "Y": 0.3070046901702881 + }, + { + "X": 0.6425498127937317, + "Y": 0.30711740255355835 + } + ] + }, + "Id": "9a0d14dc-6fa2-4933-9b31-4bb6d7a219d1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81494903564453, + "Text": "SK", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018497085198760033, + "Height": 0.00908059161156416, + "Left": 0.7449303269386292, + "Top": 0.2967870533466339 + }, + "Polygon": [ + { + "X": 0.7449303269386292, + "Y": 0.29680871963500977 + }, + { + "X": 0.7634132504463196, + "Y": 0.2967870533466339 + }, + { + "X": 0.7634274363517761, + "Y": 0.30584603548049927 + }, + { + "X": 0.7449444532394409, + "Y": 0.30586764216423035 + } + ] + }, + "Id": "e4478e36-b395-4d09-8914-311b9dea76a3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.42737579345703, + "Text": "PRODUCT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06421138346195221, + "Height": 0.008471899665892124, + "Left": 0.04779941588640213, + "Top": 0.31830427050590515 + }, + "Polygon": [ + { + "X": 0.04779941588640213, + "Y": 0.31837913393974304 + }, + { + "X": 0.11199960112571716, + "Y": 0.31830427050590515 + }, + { + "X": 0.11201079934835434, + "Y": 0.32670149207115173 + }, + { + "X": 0.04781042039394379, + "Y": 0.3267761766910553 + } + ] + }, + "Id": "2ec3d749-7e83-4800-ab4e-843c4fb4fcc8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 88.97888946533203, + "Text": "/", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005229501985013485, + "Height": 0.00809270516037941, + "Left": 0.11536779254674911, + "Top": 0.31877419352531433 + }, + "Polygon": [ + { + "X": 0.11536779254674911, + "Y": 0.3187802731990814 + }, + { + "X": 0.12058649212121964, + "Y": 0.31877419352531433 + }, + { + "X": 0.12059729546308517, + "Y": 0.32686084508895874 + }, + { + "X": 0.11537858843803406, + "Y": 0.32686689496040344 + } + ] + }, + "Id": "400a9336-9f0e-4253-a8ef-242ed249727b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.31420135498047, + "Text": "DESCRIPTION", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.08505843579769135, + "Height": 0.008511030115187168, + "Left": 0.12429123371839523, + "Top": 0.31851837038993835 + }, + "Polygon": [ + { + "X": 0.12429123371839523, + "Y": 0.3186175227165222 + }, + { + "X": 0.20933815836906433, + "Y": 0.31851837038993835 + }, + { + "X": 0.20934966206550598, + "Y": 0.3269304633140564 + }, + { + "X": 0.12430248409509659, + "Y": 0.32702940702438354 + } + ] + }, + "Id": "5ca8482b-7bf9-42b5-a3c8-bdc6ba400cbe", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96876525878906, + "Text": "QTY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02700347825884819, + "Height": 0.008297323249280453, + "Left": 0.4141574800014496, + "Top": 0.3190902769565582 + }, + "Polygon": [ + { + "X": 0.4141574800014496, + "Y": 0.31912171840667725 + }, + { + "X": 0.441148966550827, + "Y": 0.3190902769565582 + }, + { + "X": 0.4411609470844269, + "Y": 0.3273561894893646 + }, + { + "X": 0.4141693711280823, + "Y": 0.32738760113716125 + } + ] + }, + "Id": "9c2ced09-e521-4d93-aad7-2f079cb00be1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97772216796875, + "Text": "QTY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027007749304175377, + "Height": 0.008408439345657825, + "Left": 0.4840388894081116, + "Top": 0.3188243508338928 + }, + "Polygon": [ + { + "X": 0.4840388894081116, + "Y": 0.31885579228401184 + }, + { + "X": 0.5110343098640442, + "Y": 0.3188243508338928 + }, + { + "X": 0.5110466480255127, + "Y": 0.32720139622688293 + }, + { + "X": 0.4840511679649353, + "Y": 0.3272327780723572 + } + ] + }, + "Id": "2e4d7001-31e1-4013-85ae-8cfc0e948996", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9599838256836, + "Text": "QTY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0270852018147707, + "Height": 0.008401293307542801, + "Left": 0.5505518317222595, + "Top": 0.3184622824192047 + }, + "Polygon": [ + { + "X": 0.5505518317222595, + "Y": 0.3184938430786133 + }, + { + "X": 0.577624499797821, + "Y": 0.3184622824192047 + }, + { + "X": 0.5776370167732239, + "Y": 0.3268320858478546 + }, + { + "X": 0.5505642890930176, + "Y": 0.3268635869026184 + } + ] + }, + "Id": "fb9b16aa-b715-4e8e-a72e-99789aac3e56", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82096862792969, + "Text": "LIST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027218753471970558, + "Height": 0.00815698504447937, + "Left": 0.6020211577415466, + "Top": 0.3246263861656189 + }, + "Polygon": [ + { + "X": 0.6020211577415466, + "Y": 0.324658066034317 + }, + { + "X": 0.6292275786399841, + "Y": 0.3246263861656189 + }, + { + "X": 0.6292399168014526, + "Y": 0.3327517807483673 + }, + { + "X": 0.6020333766937256, + "Y": 0.33278337121009827 + } + ] + }, + "Id": "493c5351-8eaa-4fea-950d-b99632189a40", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9025650024414, + "Text": "PRICE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03615470975637436, + "Height": 0.008014770224690437, + "Left": 0.634087860584259, + "Top": 0.32465651631355286 + }, + "Polygon": [ + { + "X": 0.634087860584259, + "Y": 0.3246985971927643 + }, + { + "X": 0.6702303290367126, + "Y": 0.32465651631355286 + }, + { + "X": 0.6702425479888916, + "Y": 0.33262932300567627 + }, + { + "X": 0.6340999603271484, + "Y": 0.33267128467559814 + } + ] + }, + "Id": "5e91726d-d485-4ee9-90d3-f4b8076f22bc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97213745117188, + "Text": "PRICE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03644489869475365, + "Height": 0.00819422397762537, + "Left": 0.7149896621704102, + "Top": 0.3240368068218231 + }, + "Polygon": [ + { + "X": 0.7149896621704102, + "Y": 0.3240792155265808 + }, + { + "X": 0.7514218688011169, + "Y": 0.3240368068218231 + }, + { + "X": 0.7514345645904541, + "Y": 0.3321886956691742 + }, + { + "X": 0.7150022387504578, + "Y": 0.3322310149669647 + } + ] + }, + "Id": "d61c820f-c3dc-4d75-827c-e225a0825425", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.34809875488281, + "Text": "U/M", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025426793843507767, + "Height": 0.008513799868524075, + "Left": 0.7892688512802124, + "Top": 0.3236437439918518 + }, + "Polygon": [ + { + "X": 0.7892688512802124, + "Y": 0.3236733376979828 + }, + { + "X": 0.8146822452545166, + "Y": 0.3236437439918518 + }, + { + "X": 0.8146956562995911, + "Y": 0.33212804794311523 + }, + { + "X": 0.7892822027206421, + "Y": 0.33215755224227905 + } + ] + }, + "Id": "e3010b98-6071-41ee-9729-bfa712dfc51f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.5205078125, + "Text": "EXTENSION", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07335331290960312, + "Height": 0.008393822237849236, + "Left": 0.8592621684074402, + "Top": 0.3231566250324249 + }, + "Polygon": [ + { + "X": 0.8592621684074402, + "Y": 0.3232420086860657 + }, + { + "X": 0.9326019883155823, + "Y": 0.3231566250324249 + }, + { + "X": 0.9326155185699463, + "Y": 0.3314652442932129 + }, + { + "X": 0.8592754602432251, + "Y": 0.3315504491329193 + } + ] + }, + "Id": "009b09f3-7c35-485f-888c-7fc24b92a692", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9858169555664, + "Text": "OPEN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.034930747002363205, + "Height": 0.00831565447151661, + "Left": 0.4104878604412079, + "Top": 0.3314407765865326 + }, + "Polygon": [ + { + "X": 0.4104878604412079, + "Y": 0.33148133754730225 + }, + { + "X": 0.44540658593177795, + "Y": 0.3314407765865326 + }, + { + "X": 0.4454185962677002, + "Y": 0.3397159278392792 + }, + { + "X": 0.4104997515678406, + "Y": 0.33975642919540405 + } + ] + }, + "Id": "35dd7224-fd04-4b06-8384-3964edcfb6b9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93403625488281, + "Text": "SHIPPED", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05395078286528587, + "Height": 0.008176436647772789, + "Left": 0.47092631459236145, + "Top": 0.3311942219734192 + }, + "Polygon": [ + { + "X": 0.47092631459236145, + "Y": 0.3312568962574005 + }, + { + "X": 0.5248650908470154, + "Y": 0.3311942219734192 + }, + { + "X": 0.5248770713806152, + "Y": 0.33930811285972595 + }, + { + "X": 0.47093817591667175, + "Y": 0.3393706679344177 + } + ] + }, + "Id": "397bc517-42d2-4817-a6d1-546036bb0623", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.72340393066406, + "Text": "B/O", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02205323614180088, + "Height": 0.00880509428679943, + "Left": 0.5528959631919861, + "Top": 0.33100369572639465 + }, + "Polygon": [ + { + "X": 0.5528959631919861, + "Y": 0.3310292959213257 + }, + { + "X": 0.5749360918998718, + "Y": 0.33100369572639465 + }, + { + "X": 0.5749492049217224, + "Y": 0.3397832214832306 + }, + { + "X": 0.5529090762138367, + "Y": 0.33980879187583923 + } + ] + }, + "Id": "211bdd45-46a7-499e-ac98-c926d54f4571", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 77.96674346923828, + "Text": "TO1200453C", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.10509808361530304, + "Height": 0.010013116523623466, + "Left": 0.04672214388847351, + "Top": 0.3595494031906128 + }, + "Polygon": [ + { + "X": 0.04672214388847351, + "Y": 0.35967063903808594 + }, + { + "X": 0.15180689096450806, + "Y": 0.3595494031906128 + }, + { + "X": 0.15182022750377655, + "Y": 0.36944156885147095 + }, + { + "X": 0.04673510417342186, + "Y": 0.3695625066757202 + } + ] + }, + "Id": "a287c82e-dbca-43e0-990e-bdf02e5659c2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81033325195312, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.00598410377278924, + "Height": 0.009178688749670982, + "Left": 0.45207667350769043, + "Top": 0.3590306043624878 + }, + "Polygon": [ + { + "X": 0.45207667350769043, + "Y": 0.35903748869895935 + }, + { + "X": 0.45804744958877563, + "Y": 0.3590306043624878 + }, + { + "X": 0.45806077122688293, + "Y": 0.36820241808891296 + }, + { + "X": 0.45208999514579773, + "Y": 0.36820927262306213 + } + ] + }, + "Id": "5e0aafc3-a3c8-4f11-9d98-a4d4e91f7ba0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.23617553710938, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005709409713745117, + "Height": 0.009095893241465092, + "Left": 0.5201353430747986, + "Top": 0.3588726818561554 + }, + "Polygon": [ + { + "X": 0.5201353430747986, + "Y": 0.3588792383670807 + }, + { + "X": 0.5258312821388245, + "Y": 0.3588726818561554 + }, + { + "X": 0.5258447527885437, + "Y": 0.3679620027542114 + }, + { + "X": 0.520148754119873, + "Y": 0.3679685592651367 + } + ] + }, + "Id": "894be092-bb37-4475-bc24-710d774f0476", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 79.68565368652344, + "Text": "0", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010114015080034733, + "Height": 0.009526381269097328, + "Left": 0.5756165981292725, + "Top": 0.3584578335285187 + }, + "Polygon": [ + { + "X": 0.5756165981292725, + "Y": 0.35846948623657227 + }, + { + "X": 0.5857163667678833, + "Y": 0.3584578335285187 + }, + { + "X": 0.5857306122779846, + "Y": 0.36797258257865906 + }, + { + "X": 0.5756308436393738, + "Y": 0.36798423528671265 + } + ] + }, + "Id": "e8efa977-0ca4-4ea2-9845-b2f7b862717c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90790557861328, + "Text": "537.34", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05580630898475647, + "Height": 0.009961158037185669, + "Left": 0.6218011379241943, + "Top": 0.35794711112976074 + }, + "Polygon": [ + { + "X": 0.6218011379241943, + "Y": 0.35801148414611816 + }, + { + "X": 0.6775922775268555, + "Y": 0.35794711112976074 + }, + { + "X": 0.6776074171066284, + "Y": 0.36784401535987854 + }, + { + "X": 0.621816098690033, + "Y": 0.3679082691669464 + } + ] + }, + "Id": "a4ba3bce-99c2-4a32-8a95-ac6c9c94b46b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87232971191406, + "Text": "317.03", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05578383058309555, + "Height": 0.01018458604812622, + "Left": 0.7166075706481934, + "Top": 0.3574365973472595 + }, + "Polygon": [ + { + "X": 0.7166075706481934, + "Y": 0.35750097036361694 + }, + { + "X": 0.7723755240440369, + "Y": 0.3574365973472595 + }, + { + "X": 0.7723913788795471, + "Y": 0.36755698919296265 + }, + { + "X": 0.7166231870651245, + "Y": 0.36762118339538574 + } + ] + }, + "Id": "0b27b133-0747-48c9-bd9e-d9a49360a3b3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.71996307373047, + "Text": "EA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020611422136425972, + "Height": 0.009707963094115257, + "Left": 0.7881222367286682, + "Top": 0.3575223684310913 + }, + "Polygon": [ + { + "X": 0.7881222367286682, + "Y": 0.3575461208820343 + }, + { + "X": 0.8087183833122253, + "Y": 0.3575223684310913 + }, + { + "X": 0.8087337017059326, + "Y": 0.3672066032886505 + }, + { + "X": 0.7881374955177307, + "Y": 0.3672303259372711 + } + ] + }, + "Id": "5e286014-533d-41ff-a751-e8a256eccc8c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85729217529297, + "Text": "317.03", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05585863068699837, + "Height": 0.01025800034403801, + "Left": 0.9059430956840515, + "Top": 0.35643598437309265 + }, + "Polygon": [ + { + "X": 0.9059430956840515, + "Y": 0.35650044679641724 + }, + { + "X": 0.961785078048706, + "Y": 0.35643598437309265 + }, + { + "X": 0.9618017077445984, + "Y": 0.3666296899318695 + }, + { + "X": 0.9059595465660095, + "Y": 0.36669400334358215 + } + ] + }, + "Id": "77462cd6-bd20-4701-bd4d-0ef82a191711", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 89.9676742553711, + "Text": "GRILLE;HONEYCOMB;", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.16832885146141052, + "Height": 0.011068923398852348, + "Left": 0.058752309530973434, + "Top": 0.37466394901275635 + }, + "Polygon": [ + { + "X": 0.058752309530973434, + "Y": 0.3748573958873749 + }, + { + "X": 0.22706621885299683, + "Y": 0.37466394901275635 + }, + { + "X": 0.22708116471767426, + "Y": 0.3855399489402771 + }, + { + "X": 0.05876660346984863, + "Y": 0.38573285937309265 + } + ] + }, + "Id": "2dfc8ae6-4804-4838-a0d7-bbb2c117090b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.91505432128906, + "Text": "18-21", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04240963235497475, + "Height": 0.00992946419864893, + "Left": 0.23014326393604279, + "Top": 0.3743436932563782 + }, + "Polygon": [ + { + "X": 0.23014326393604279, + "Y": 0.37439242005348206 + }, + { + "X": 0.2725391685962677, + "Y": 0.3743436932563782 + }, + { + "X": 0.2725529074668884, + "Y": 0.384224534034729 + }, + { + "X": 0.23015685379505157, + "Y": 0.38427314162254333 + } + ] + }, + "Id": "e98e4068-11d3-4dd5-b8c4-ea7a3a391116", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.70732116699219, + "Text": "TUNDRA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06851562857627869, + "Height": 0.009759892709553242, + "Left": 0.281284898519516, + "Top": 0.37439942359924316 + }, + "Polygon": [ + { + "X": 0.281284898519516, + "Y": 0.37447816133499146 + }, + { + "X": 0.34978681802749634, + "Y": 0.37439942359924316 + }, + { + "X": 0.3498005270957947, + "Y": 0.38408079743385315 + }, + { + "X": 0.2812983989715576, + "Y": 0.3841593265533447 + } + ] + }, + "Id": "8aaad556-7776-4c86-aa84-c8676ae9c65e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92406463623047, + "Text": "CHR", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03314865753054619, + "Height": 0.009443385526537895, + "Left": 0.058817438781261444, + "Top": 0.3900218605995178 + }, + "Polygon": [ + { + "X": 0.058817438781261444, + "Y": 0.39005979895591736 + }, + { + "X": 0.09195362031459808, + "Y": 0.3900218605995178 + }, + { + "X": 0.09196609258651733, + "Y": 0.3994274139404297 + }, + { + "X": 0.05882980301976204, + "Y": 0.3994652330875397 + } + ] + }, + "Id": "67914d8d-de52-4679-90f7-5e23f116b7b2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.71317291259766, + "Text": "FRM/LT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.058782242238521576, + "Height": 0.010489278472959995, + "Left": 0.09804779291152954, + "Top": 0.38959071040153503 + }, + "Polygon": [ + { + "X": 0.09804779291152954, + "Y": 0.38965800404548645 + }, + { + "X": 0.15681597590446472, + "Y": 0.38959071040153503 + }, + { + "X": 0.1568300426006317, + "Y": 0.40001288056373596 + }, + { + "X": 0.09806163609027863, + "Y": 0.40007999539375305 + } + ] + }, + "Id": "c2643f5e-8bd6-4a91-b916-192bc7ea352d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.79556274414062, + "Text": "GRY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.033044829964637756, + "Height": 0.009483455680310726, + "Left": 0.1622508019208908, + "Top": 0.38978463411331177 + }, + "Polygon": [ + { + "X": 0.1622508019208908, + "Y": 0.38982245326042175 + }, + { + "X": 0.19528275728225708, + "Y": 0.38978463411331177 + }, + { + "X": 0.19529563188552856, + "Y": 0.39923036098480225 + }, + { + "X": 0.16226355731487274, + "Y": 0.39926809072494507 + } + ] + }, + "Id": "d403e7dd-9a92-4634-bef6-060d3c719ff5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.47254180908203, + "Text": "CNT;RND", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0716172605752945, + "Height": 0.011162827722728252, + "Left": 0.2025606632232666, + "Top": 0.3895206153392792 + }, + "Polygon": [ + { + "X": 0.2025606632232666, + "Y": 0.3896026015281677 + }, + { + "X": 0.27416253089904785, + "Y": 0.3895206153392792 + }, + { + "X": 0.2741779386997223, + "Y": 0.40060171484947205 + }, + { + "X": 0.20257580280303955, + "Y": 0.4006834626197815 + } + ] + }, + "Id": "686d5950-1d97-452a-8ea3-618e5a8c8d2c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.69828033447266, + "Text": "EMB", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.034057408571243286, + "Height": 0.009719903580844402, + "Left": 0.2812366187572479, + "Top": 0.38958096504211426 + }, + "Polygon": [ + { + "X": 0.2812366187572479, + "Y": 0.38961994647979736 + }, + { + "X": 0.31528040766716003, + "Y": 0.38958096504211426 + }, + { + "X": 0.3152940273284912, + "Y": 0.399262011051178 + }, + { + "X": 0.28125008940696716, + "Y": 0.39930087327957153 + } + ] + }, + "Id": "3250b181-52f0-479a-8548-de3389f2ccbe", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9129409790039, + "Text": "TYP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03106849268078804, + "Height": 0.009471913799643517, + "Left": 0.32131925225257874, + "Top": 0.38958364725112915 + }, + "Polygon": [ + { + "X": 0.32131925225257874, + "Y": 0.38961920142173767 + }, + { + "X": 0.3523743450641632, + "Y": 0.38958364725112915 + }, + { + "X": 0.3523877263069153, + "Y": 0.39902007579803467 + }, + { + "X": 0.32133251428604126, + "Y": 0.3990555703639984 + } + ] + }, + "Id": "ad6a20c4-1830-48dc-8cee-2f6f78d817c7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.78800201416016, + "Text": "Lot", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.023013519123196602, + "Height": 0.009071510285139084, + "Left": 0.05911398306488991, + "Top": 0.40540021657943726 + }, + "Polygon": [ + { + "X": 0.05911398306488991, + "Y": 0.4054264426231384 + }, + { + "X": 0.082115538418293, + "Y": 0.40540021657943726 + }, + { + "X": 0.08212750405073166, + "Y": 0.41444554924964905 + }, + { + "X": 0.0591258741915226, + "Y": 0.41447171568870544 + } + ] + }, + "Id": "ebf095ce-c89c-48e4-9190-6c718e146f60", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.99185180664062, + "Text": "#", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009082747623324394, + "Height": 0.009081968106329441, + "Left": 0.08885399252176285, + "Top": 0.40528228878974915 + }, + "Polygon": [ + { + "X": 0.08885399252176285, + "Y": 0.4052926301956177 + }, + { + "X": 0.09792468696832657, + "Y": 0.40528228878974915 + }, + { + "X": 0.09793674200773239, + "Y": 0.4143539369106293 + }, + { + "X": 0.08886601030826569, + "Y": 0.4143642783164978 + } + ] + }, + "Id": "259c7895-4863-4eec-98c7-e97bbb7c3454", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92733764648438, + "Text": "2205A", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.051990341395139694, + "Height": 0.009912068955600262, + "Left": 0.10445394366979599, + "Top": 0.40466856956481934 + }, + "Polygon": [ + { + "X": 0.10445394366979599, + "Y": 0.40472787618637085 + }, + { + "X": 0.15643098950386047, + "Y": 0.40466856956481934 + }, + { + "X": 0.15644428133964539, + "Y": 0.4145215153694153 + }, + { + "X": 0.10446705669164658, + "Y": 0.41458064317703247 + } + ] + }, + "Id": "41189fbc-4f0f-4e23-8e28-7726d6223538", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82308959960938, + "Text": "Vendor", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.054459258913993835, + "Height": 0.009731943719089031, + "Left": 0.5156881809234619, + "Top": 0.4039953052997589 + }, + "Polygon": [ + { + "X": 0.5156881809234619, + "Y": 0.40405741333961487 + }, + { + "X": 0.5701329708099365, + "Y": 0.4039953052997589 + }, + { + "X": 0.5701474547386169, + "Y": 0.4136652946472168 + }, + { + "X": 0.5157024264335632, + "Y": 0.4137272536754608 + } + ] + }, + "Id": "2b0777b6-7dbd-4450-be14-f3736274a3e5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9409408569336, + "Text": "200382", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.060416653752326965, + "Height": 0.009883127175271511, + "Left": 0.5767189264297485, + "Top": 0.4035547077655792 + }, + "Polygon": [ + { + "X": 0.5767189264297485, + "Y": 0.4036236107349396 + }, + { + "X": 0.6371206641197205, + "Y": 0.4035547077655792 + }, + { + "X": 0.6371355652809143, + "Y": 0.4133690893650055 + }, + { + "X": 0.5767336487770081, + "Y": 0.4134378433227539 + } + ] + }, + "Id": "e0abb04a-6ed7-4a06-a418-d694b774b327", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 87.86726379394531, + "Text": "TO2503260C", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.10526879131793976, + "Height": 0.01011649239808321, + "Left": 0.047383975237607956, + "Top": 0.436377614736557 + }, + "Polygon": [ + { + "X": 0.047383975237607956, + "Y": 0.43649667501449585 + }, + { + "X": 0.15263929963111877, + "Y": 0.436377614736557 + }, + { + "X": 0.152652770280838, + "Y": 0.44637531042099 + }, + { + "X": 0.047397077083587646, + "Y": 0.44649410247802734 + } + ] + }, + "Id": "664aa858-7348-44af-8e0a-9f9e380af007", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.37742614746094, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.006231909152120352, + "Height": 0.0095490338280797, + "Left": 0.4525376856327057, + "Top": 0.4360588788986206 + }, + "Polygon": [ + { + "X": 0.4525376856327057, + "Y": 0.4360659122467041 + }, + { + "X": 0.4587557017803192, + "Y": 0.4360588788986206 + }, + { + "X": 0.4587695896625519, + "Y": 0.4456008970737457 + }, + { + "X": 0.45255157351493835, + "Y": 0.44560790061950684 + } + ] + }, + "Id": "c4b4fc10-f7b4-4145-b07e-46d3fcf9d266", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 91.75514221191406, + "Text": "1", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005577323026955128, + "Height": 0.008879962377250195, + "Left": 0.5210907459259033, + "Top": 0.43615227937698364 + }, + "Polygon": [ + { + "X": 0.5210907459259033, + "Y": 0.43615856766700745 + }, + { + "X": 0.5266549587249756, + "Y": 0.43615227937698364 + }, + { + "X": 0.5266680717468262, + "Y": 0.4450259506702423 + }, + { + "X": 0.5211038589477539, + "Y": 0.4450322389602661 + } + ] + }, + "Id": "aa997f76-020e-4237-a9c6-c9f5328b71ac", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.12946319580078, + "Text": "0", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010250605642795563, + "Height": 0.009801243431866169, + "Left": 0.5759479403495789, + "Top": 0.43536466360092163 + }, + "Polygon": [ + { + "X": 0.5759479403495789, + "Y": 0.43537625670433044 + }, + { + "X": 0.5861838459968567, + "Y": 0.43536466360092163 + }, + { + "X": 0.5861985087394714, + "Y": 0.4451543688774109 + }, + { + "X": 0.5759625434875488, + "Y": 0.4451659321784973 + } + ] + }, + "Id": "1e37a7a8-2dee-454f-8ed0-e0178d445a97", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83314514160156, + "Text": "289.63", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05589712783694267, + "Height": 0.010137727484107018, + "Left": 0.6224652528762817, + "Top": 0.4349651038646698 + }, + "Polygon": [ + { + "X": 0.6224652528762817, + "Y": 0.4350283443927765 + }, + { + "X": 0.6783469319343567, + "Y": 0.4349651038646698 + }, + { + "X": 0.6783623695373535, + "Y": 0.4450397491455078 + }, + { + "X": 0.6224805116653442, + "Y": 0.44510284066200256 + } + ] + }, + "Id": "d648e768-50a7-4c1a-a9f7-abddf0edb361", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91600799560547, + "Text": "170.88", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05468212068080902, + "Height": 0.010292778722941875, + "Left": 0.7180867195129395, + "Top": 0.4344557821750641 + }, + "Polygon": [ + { + "X": 0.7180867195129395, + "Y": 0.43451762199401855 + }, + { + "X": 0.7727528214454651, + "Y": 0.4344557821750641 + }, + { + "X": 0.7727688550949097, + "Y": 0.4446868300437927 + }, + { + "X": 0.7181025147438049, + "Y": 0.44474855065345764 + } + ] + }, + "Id": "7edfdd18-e17b-4084-8ddf-f1bbe1972574", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.67436981201172, + "Text": "EA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020820410922169685, + "Height": 0.009704378433525562, + "Left": 0.7885988354682922, + "Top": 0.4345540702342987 + }, + "Polygon": [ + { + "X": 0.7885988354682922, + "Y": 0.434577614068985 + }, + { + "X": 0.8094039559364319, + "Y": 0.4345540702342987 + }, + { + "X": 0.8094192743301392, + "Y": 0.4442349672317505 + }, + { + "X": 0.7886140942573547, + "Y": 0.444258451461792 + } + ] + }, + "Id": "6c1763dc-645a-4fae-ac51-7d0652b48f8a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9477310180664, + "Text": "170.88", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05504940450191498, + "Height": 0.010459932498633862, + "Left": 0.9076079726219177, + "Top": 0.4334750771522522 + }, + "Polygon": [ + { + "X": 0.9076079726219177, + "Y": 0.4335373640060425 + }, + { + "X": 0.9626404047012329, + "Y": 0.4334750771522522 + }, + { + "X": 0.9626573920249939, + "Y": 0.44387286901474 + }, + { + "X": 0.9076247811317444, + "Y": 0.44393500685691833 + } + ] + }, + "Id": "6387ef00-f6bb-46e5-b966-7f1be5d6746e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90239715576172, + "Text": "HLAMP", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05689643323421478, + "Height": 0.010204129852354527, + "Left": 0.059354692697525024, + "Top": 0.45167312026023865 + }, + "Polygon": [ + { + "X": 0.059354692697525024, + "Y": 0.4517372250556946 + }, + { + "X": 0.1162375956773758, + "Y": 0.45167312026023865 + }, + { + "X": 0.11625112593173981, + "Y": 0.4618133008480072 + }, + { + "X": 0.05936802551150322, + "Y": 0.4618772268295288 + } + ] + }, + "Id": "6e1b4f35-19dc-4888-8c1e-1403b3d0a808", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89012145996094, + "Text": "ASM", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03673709183931351, + "Height": 0.009882736951112747, + "Left": 0.12211796641349792, + "Top": 0.4517661929130554 + }, + "Polygon": [ + { + "X": 0.12211796641349792, + "Y": 0.45180758833885193 + }, + { + "X": 0.15884177386760712, + "Y": 0.4517661929130554 + }, + { + "X": 0.15885505080223083, + "Y": 0.4616076648235321 + }, + { + "X": 0.12213112413883209, + "Y": 0.46164894104003906 + } + ] + }, + "Id": "9f783289-410f-4950-97cd-53a432c9dc9d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 84.90589141845703, + "Text": "RH;", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029697149991989136, + "Height": 0.011066119186580181, + "Left": 0.16614703834056854, + "Top": 0.4516867399215698 + }, + "Polygon": [ + { + "X": 0.16614703834056854, + "Y": 0.4517201781272888 + }, + { + "X": 0.19582915306091309, + "Y": 0.4516867399215698 + }, + { + "X": 0.19584418833255768, + "Y": 0.46271950006484985 + }, + { + "X": 0.16616195440292358, + "Y": 0.4627528488636017 + } + ] + }, + "Id": "7cc7120f-d250-47d9-ac62-9948748f6fb0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.99939727783203, + "Text": "18-21", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04298875853419304, + "Height": 0.010127420537173748, + "Left": 0.19382035732269287, + "Top": 0.4515596330165863 + }, + "Polygon": [ + { + "X": 0.19382035732269287, + "Y": 0.4516080617904663 + }, + { + "X": 0.23679523169994354, + "Y": 0.4515596330165863 + }, + { + "X": 0.2368091195821762, + "Y": 0.46163874864578247 + }, + { + "X": 0.1938340961933136, + "Y": 0.4616870582103729 + } + ] + }, + "Id": "0b403bd7-83f0-4622-b861-9d7b5482af64", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.7406005859375, + "Text": "TUNDRA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06881135702133179, + "Height": 0.009994680993258953, + "Left": 0.24506811797618866, + "Top": 0.45148786902427673 + }, + "Polygon": [ + { + "X": 0.24506811797618866, + "Y": 0.4515654146671295 + }, + { + "X": 0.3138655424118042, + "Y": 0.45148786902427673 + }, + { + "X": 0.31387948989868164, + "Y": 0.4614052176475525 + }, + { + "X": 0.2450818121433258, + "Y": 0.46148255467414856 + } + ] + }, + "Id": "71b1880a-403d-4349-b544-379d59a605fb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.49671936035156, + "Text": "WO/SMOKED", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.10346603393554688, + "Height": 0.010575667954981327, + "Left": 0.058816444128751755, + "Top": 0.4668346345424652 + }, + "Polygon": [ + { + "X": 0.058816444128751755, + "Y": 0.46695077419281006 + }, + { + "X": 0.16226834058761597, + "Y": 0.4668346345424652 + }, + { + "X": 0.16228248178958893, + "Y": 0.4772945046424866 + }, + { + "X": 0.05883019417524338, + "Y": 0.47741031646728516 + } + ] + }, + "Id": "17230a99-6018-44d4-b66a-1ec9d09fa2cd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.14147186279297, + "Text": "BZL;HLGN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07588319480419159, + "Height": 0.01095899660140276, + "Left": 0.1694532185792923, + "Top": 0.4669681191444397 + }, + "Polygon": [ + { + "X": 0.1694532185792923, + "Y": 0.46705329418182373 + }, + { + "X": 0.24532140791416168, + "Y": 0.4669681191444397 + }, + { + "X": 0.2453364133834839, + "Y": 0.47784221172332764 + }, + { + "X": 0.16946792602539062, + "Y": 0.4779271185398102 + } + ] + }, + "Id": "dce5e6b1-cfa0-479a-af97-534019a0ee88", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84577178955078, + "Text": "Lot", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.023206911981105804, + "Height": 0.009272848255932331, + "Left": 0.05960738658905029, + "Top": 0.48264071345329285 + }, + "Polygon": [ + { + "X": 0.05960738658905029, + "Y": 0.48266664147377014 + }, + { + "X": 0.08280206471681595, + "Y": 0.48264071345329285 + }, + { + "X": 0.0828142985701561, + "Y": 0.4918876886367798 + }, + { + "X": 0.05961954593658447, + "Y": 0.4919135570526123 + } + ] + }, + "Id": "a971490f-5cab-48af-8f57-5b5e828c4edd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.48727416992188, + "Text": "#", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009209481067955494, + "Height": 0.009289601817727089, + "Left": 0.08941417932510376, + "Top": 0.482473760843277 + }, + "Polygon": [ + { + "X": 0.08941417932510376, + "Y": 0.48248404264450073 + }, + { + "X": 0.09861133247613907, + "Y": 0.482473760843277 + }, + { + "X": 0.09862366318702698, + "Y": 0.49175310134887695 + }, + { + "X": 0.08942648023366928, + "Y": 0.4917633533477783 + } + ] + }, + "Id": "ef9c4336-f578-4188-9cb1-01fea9a520a7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.7791748046875, + "Text": "20220627", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07967457175254822, + "Height": 0.009994854219257832, + "Left": 0.10510783642530441, + "Top": 0.4820237159729004 + }, + "Polygon": [ + { + "X": 0.10510783642530441, + "Y": 0.4821127951145172 + }, + { + "X": 0.184768944978714, + "Y": 0.4820237159729004 + }, + { + "X": 0.18478240072727203, + "Y": 0.4919297397136688 + }, + { + "X": 0.10512102395296097, + "Y": 0.49201858043670654 + } + ] + }, + "Id": "7f5ea6ea-afa8-46cf-a4c9-3013f30968ed", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87344360351562, + "Text": "Vendor", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05549392104148865, + "Height": 0.010137133300304413, + "Left": 0.5153009295463562, + "Top": 0.4816771447658539 + }, + "Polygon": [ + { + "X": 0.5153009295463562, + "Y": 0.4817391633987427 + }, + { + "X": 0.5707798004150391, + "Y": 0.4816771447658539 + }, + { + "X": 0.5707948803901672, + "Y": 0.49175241589546204 + }, + { + "X": 0.51531583070755, + "Y": 0.4918142855167389 + } + ] + }, + "Id": "5eecb561-27bc-4d4d-b090-19695bab111e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.74966430664062, + "Text": "200411", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.057869136333465576, + "Height": 0.009806912392377853, + "Left": 0.5776205062866211, + "Top": 0.4811968207359314 + }, + "Polygon": [ + { + "X": 0.5776205062866211, + "Y": 0.4812614917755127 + }, + { + "X": 0.6354748010635376, + "Y": 0.4811968207359314 + }, + { + "X": 0.6354896426200867, + "Y": 0.490939199924469 + }, + { + "X": 0.5776350498199463, + "Y": 0.49100372195243835 + } + ] + }, + "Id": "311d65df-036b-4b9a-a34b-caa5257b785c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91241455078125, + "Text": "OCT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03364599868655205, + "Height": 0.010055502876639366, + "Left": 0.059624481946229935, + "Top": 0.4980197250843048 + }, + "Polygon": [ + { + "X": 0.059624481946229935, + "Y": 0.49805718660354614 + }, + { + "X": 0.09325718879699707, + "Y": 0.4980197250843048 + }, + { + "X": 0.09327048063278198, + "Y": 0.5080378651618958 + }, + { + "X": 0.059637654572725296, + "Y": 0.5080752372741699 + } + ] + }, + "Id": "e153d155-d3a0-427b-8733-873ed6cca8d6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8735580444336, + "Text": "14TH", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04018696770071983, + "Height": 0.009872364811599255, + "Left": 0.10031519085168839, + "Top": 0.49822714924812317 + }, + "Polygon": [ + { + "X": 0.10031519085168839, + "Y": 0.4982718825340271 + }, + { + "X": 0.14048895239830017, + "Y": 0.49822714924812317 + }, + { + "X": 0.14050215482711792, + "Y": 0.5080549120903015 + }, + { + "X": 0.10032825171947479, + "Y": 0.5080994963645935 + } + ] + }, + "Id": "c2240c83-8ea6-4ab8-b693-2cf4354e9f52", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 91.08980560302734, + "Text": "Hi", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05105694755911827, + "Height": 0.041340239346027374, + "Left": 0.35809168219566345, + "Top": 0.5277026891708374 + }, + "Polygon": [ + { + "X": 0.35809168219566345, + "Y": 0.5277590155601501 + }, + { + "X": 0.40908926725387573, + "Y": 0.5277026891708374 + }, + { + "X": 0.409148633480072, + "Y": 0.5689871907234192 + }, + { + "X": 0.35815030336380005, + "Y": 0.5690429210662842 + } + ] + }, + "Id": "6f383a8e-116e-4198-998d-6177b13dc755", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 91.32563018798828, + "Text": "Style", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.12479672580957413, + "Height": 0.043705567717552185, + "Left": 0.4545065760612488, + "Top": 0.5279671549797058 + }, + "Polygon": [ + { + "X": 0.4545065760612488, + "Y": 0.5281049609184265 + }, + { + "X": 0.5792380571365356, + "Y": 0.5279671549797058 + }, + { + "X": 0.5793033242225647, + "Y": 0.5715365409851074 + }, + { + "X": 0.454569935798645, + "Y": 0.5716727375984192 + } + ] + }, + "Id": "8e9399f6-213b-49a8-8603-a2bc71ffa189", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 81.75589752197266, + "Text": "Tundsa", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.17538049817085266, + "Height": 0.04155232757329941, + "Left": 0.40554121136665344, + "Top": 0.5806329250335693 + }, + "Polygon": [ + { + "X": 0.40554121136665344, + "Y": 0.5808238983154297 + }, + { + "X": 0.5808597207069397, + "Y": 0.5806329250335693 + }, + { + "X": 0.5809217095375061, + "Y": 0.6219964027404785 + }, + { + "X": 0.4056006371974945, + "Y": 0.622185230255127 + } + ] + }, + "Id": "e2a5ce57-20db-4cc3-b28c-213d41653ecd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86050415039062, + "Text": "Return", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.13233141601085663, + "Height": 0.047657303512096405, + "Left": 0.18893730640411377, + "Top": 0.6287118196487427 + }, + "Polygon": [ + { + "X": 0.18893730640411377, + "Y": 0.6288540959358215 + }, + { + "X": 0.3212018609046936, + "Y": 0.6287118196487427 + }, + { + "X": 0.3212687373161316, + "Y": 0.6762287616729736 + }, + { + "X": 0.18900194764137268, + "Y": 0.6763691306114197 + } + ] + }, + "Id": "b36d7b96-8a4a-4d0c-b087-4044708a9ec5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 82.96365356445312, + "Text": "10/21", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.11451564729213715, + "Height": 0.04458807408809662, + "Left": 0.4438190758228302, + "Top": 0.6225461363792419 + }, + "Polygon": [ + { + "X": 0.4438190758228302, + "Y": 0.6226693987846375 + }, + { + "X": 0.5582684278488159, + "Y": 0.6225461363792419 + }, + { + "X": 0.5583347082138062, + "Y": 0.6670124530792236 + }, + { + "X": 0.4438835680484772, + "Y": 0.6671342253684998 + } + ] + }, + "Id": "2a841581-54c9-43b6-8623-f9c3ea237fde", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.31623840332031, + "Text": "wrong", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.11772751808166504, + "Height": 0.03638778626918793, + "Left": 0.17465242743492126, + "Top": 0.6810176968574524 + }, + "Polygon": [ + { + "X": 0.17465242743492126, + "Y": 0.6811424493789673 + }, + { + "X": 0.2923292815685272, + "Y": 0.6810176968574524 + }, + { + "X": 0.2923799455165863, + "Y": 0.7172819375991821 + }, + { + "X": 0.17470157146453857, + "Y": 0.7174054384231567 + } + ] + }, + "Id": "587bae11-7485-4a5e-a496-0b93c96385f4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.47623443603516, + "Text": "style", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.08876825869083405, + "Height": 0.04596278816461563, + "Left": 0.30555978417396545, + "Top": 0.658992350101471 + }, + "Polygon": [ + { + "X": 0.30555978417396545, + "Y": 0.6590869426727295 + }, + { + "X": 0.3942623436450958, + "Y": 0.658992350101471 + }, + { + "X": 0.3943280577659607, + "Y": 0.7048617005348206 + }, + { + "X": 0.3056240677833557, + "Y": 0.7049551010131836 + } + ] + }, + "Id": "1b57c866-a27a-4eda-8a42-3ac7228f4da4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.61433410644531, + "Text": "NEW!", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03376812860369682, + "Height": 0.00832639541476965, + "Left": 0.04544871672987938, + "Top": 0.7239176630973816 + }, + "Polygon": [ + { + "X": 0.04544871672987938, + "Y": 0.7239530086517334 + }, + { + "X": 0.07920588552951813, + "Y": 0.7239176630973816 + }, + { + "X": 0.0792168453335762, + "Y": 0.7322087287902832 + }, + { + "X": 0.0454595722258091, + "Y": 0.7322440147399902 + } + ] + }, + "Id": "a0ea7fd0-4bb9-47e1-b4a9-d9b1213d3543", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98381042480469, + "Text": "ORDER", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.044119760394096375, + "Height": 0.008336137048900127, + "Left": 0.08373022824525833, + "Top": 0.7238778471946716 + }, + "Polygon": [ + { + "X": 0.08373022824525833, + "Y": 0.7239240407943726 + }, + { + "X": 0.1278388947248459, + "Y": 0.7238778471946716 + }, + { + "X": 0.1278499811887741, + "Y": 0.7321678400039673 + }, + { + "X": 0.083741195499897, + "Y": 0.7322139739990234 + } + ] + }, + "Id": "e7374b2b-cf9d-43f6-9f44-777607b39f70", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94239807128906, + "Text": "YOUR", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.036788977682590485, + "Height": 0.008377905935049057, + "Left": 0.1319175511598587, + "Top": 0.7238692045211792 + }, + "Polygon": [ + { + "X": 0.1319175511598587, + "Y": 0.7239077091217041 + }, + { + "X": 0.16869524121284485, + "Y": 0.7238692045211792 + }, + { + "X": 0.1687065213918686, + "Y": 0.7322086691856384 + }, + { + "X": 0.1319287270307541, + "Y": 0.7322471141815186 + } + ] + }, + "Id": "fbbf8713-1071-49af-9f3c-44b78942c239", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80258178710938, + "Text": "AUTO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03695797175168991, + "Height": 0.008318757638335228, + "Left": 0.1731180101633072, + "Top": 0.7239880561828613 + }, + "Polygon": [ + { + "X": 0.1731180101633072, + "Y": 0.7240267395973206 + }, + { + "X": 0.21006464958190918, + "Y": 0.7239880561828613 + }, + { + "X": 0.2100759744644165, + "Y": 0.732268214225769 + }, + { + "X": 0.17312921583652496, + "Y": 0.7323068380355835 + } + ] + }, + "Id": "fdba4c7d-a813-43f0-b32c-11bed8e2ff4e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90532684326172, + "Text": "DATA", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.037213899195194244, + "Height": 0.008411068469285965, + "Left": 0.21491625905036926, + "Top": 0.7238375544548035 + }, + "Polygon": [ + { + "X": 0.21491625905036926, + "Y": 0.7238765358924866 + }, + { + "X": 0.2521185874938965, + "Y": 0.7238375544548035 + }, + { + "X": 0.2521301507949829, + "Y": 0.7322097420692444 + }, + { + "X": 0.21492771804332733, + "Y": 0.7322486042976379 + } + ] + }, + "Id": "4e7cd339-6a20-44e1-bffc-bd1373b7ac5f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9471435546875, + "Text": "LABELS", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04855300486087799, + "Height": 0.00825829803943634, + "Left": 0.25698643922805786, + "Top": 0.724014401435852 + }, + "Polygon": [ + { + "X": 0.25698643922805786, + "Y": 0.7240652441978455 + }, + { + "X": 0.305527925491333, + "Y": 0.724014401435852 + }, + { + "X": 0.30553942918777466, + "Y": 0.7322219610214233 + }, + { + "X": 0.2569977939128876, + "Y": 0.7322726845741272 + } + ] + }, + "Id": "58a3d26a-bc83-46be-802c-c9ee3f69756c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.91863250732422, + "Text": "TODAY!", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05094914138317108, + "Height": 0.008428975939750671, + "Left": 0.30994296073913574, + "Top": 0.7239197492599487 + }, + "Polygon": [ + { + "X": 0.30994296073913574, + "Y": 0.7239730954170227 + }, + { + "X": 0.36088019609451294, + "Y": 0.7239197492599487 + }, + { + "X": 0.36089208722114563, + "Y": 0.7322955131530762 + }, + { + "X": 0.3099547028541565, + "Y": 0.7323487401008606 + } + ] + }, + "Id": "f976ee1d-84a3-433f-94d0-119ad1899ca1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.55980682373047, + "Text": "A", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009756871499121189, + "Height": 0.007602097932249308, + "Left": 0.04520954564213753, + "Top": 0.7363060712814331 + }, + "Polygon": [ + { + "X": 0.04520954564213753, + "Y": 0.7363162636756897 + }, + { + "X": 0.054956451058387756, + "Y": 0.7363060712814331 + }, + { + "X": 0.05496641620993614, + "Y": 0.7438980340957642 + }, + { + "X": 0.04521948844194412, + "Y": 0.743908166885376 + } + ] + }, + "Id": "1bbe9db1-5e65-489e-a218-1b2524176944", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.66302490234375, + "Text": "$5.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.035982146859169006, + "Height": 0.00815244298428297, + "Left": 0.06054660305380821, + "Top": 0.7359845638275146 + }, + "Polygon": [ + { + "X": 0.06054660305380821, + "Y": 0.7360221147537231 + }, + { + "X": 0.09651798009872437, + "Y": 0.7359845638275146 + }, + { + "X": 0.09652875363826752, + "Y": 0.744099497795105 + }, + { + "X": 0.06055727228522301, + "Y": 0.7441369891166687 + } + ] + }, + "Id": "c994e988-d4e0-412f-8ff4-99bb54b28de2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96532440185547, + "Text": "DELIVERY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06139739230275154, + "Height": 0.007991007529199123, + "Left": 0.10116589814424515, + "Top": 0.7360994219779968 + }, + "Polygon": [ + { + "X": 0.10116589814424515, + "Y": 0.7361634969711304 + }, + { + "X": 0.1625525802373886, + "Y": 0.7360994219779968 + }, + { + "X": 0.162563294172287, + "Y": 0.7440264821052551 + }, + { + "X": 0.1011764332652092, + "Y": 0.7440904378890991 + } + ] + }, + "Id": "60809ed5-cbab-4ff8-9375-0bd5a31a9df9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95380401611328, + "Text": "FEE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021662071347236633, + "Height": 0.007662561722099781, + "Left": 0.1675572693347931, + "Top": 0.7364203333854675 + }, + "Polygon": [ + { + "X": 0.1675572693347931, + "Y": 0.7364429831504822 + }, + { + "X": 0.18920893967151642, + "Y": 0.7364203333854675 + }, + { + "X": 0.18921934068202972, + "Y": 0.7440603375434875 + }, + { + "X": 0.16756759583950043, + "Y": 0.7440829277038574 + } + ] + }, + "Id": "7aca6b73-283b-4c38-8ca3-60804d657c0e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88031768798828, + "Text": "HAS", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027489811182022095, + "Height": 0.007843020372092724, + "Left": 0.19376739859580994, + "Top": 0.7363229990005493 + }, + "Polygon": [ + { + "X": 0.19376739859580994, + "Y": 0.7363516688346863 + }, + { + "X": 0.22124648094177246, + "Y": 0.7363229990005493 + }, + { + "X": 0.22125720977783203, + "Y": 0.7441374063491821 + }, + { + "X": 0.19377803802490234, + "Y": 0.7441660165786743 + } + ] + }, + "Id": "14e73776-6bd2-4782-b2d7-c38028325d9e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97684478759766, + "Text": "BEEN", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03242017328739166, + "Height": 0.007921795360744, + "Left": 0.2260284423828125, + "Top": 0.7362847924232483 + }, + "Polygon": [ + { + "X": 0.2260284423828125, + "Y": 0.7363185882568359 + }, + { + "X": 0.2584376931190491, + "Y": 0.7362847924232483 + }, + { + "X": 0.25844860076904297, + "Y": 0.7441728115081787 + }, + { + "X": 0.22603927552700043, + "Y": 0.7442065477371216 + } + ] + }, + "Id": "aeaf78ee-9fd0-45a8-bc05-e2457510a46c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9655532836914, + "Text": "ADDED", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.046014051884412766, + "Height": 0.008205551654100418, + "Left": 0.263015478849411, + "Top": 0.7361505627632141 + }, + "Polygon": [ + { + "X": 0.263015478849411, + "Y": 0.7361986041069031 + }, + { + "X": 0.3090181052684784, + "Y": 0.7361505627632141 + }, + { + "X": 0.30902954936027527, + "Y": 0.7443081736564636 + }, + { + "X": 0.26302680373191833, + "Y": 0.744356095790863 + } + ] + }, + "Id": "07850c52-4fed-4b4c-aa21-b091c438efb8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92150115966797, + "Text": "TO", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.017808564007282257, + "Height": 0.007843726314604282, + "Left": 0.31379228830337524, + "Top": 0.7362383008003235 + }, + "Polygon": [ + { + "X": 0.31379228830337524, + "Y": 0.7362568974494934 + }, + { + "X": 0.33158981800079346, + "Y": 0.7362383008003235 + }, + { + "X": 0.3316008448600769, + "Y": 0.7440634965896606 + }, + { + "X": 0.3138032853603363, + "Y": 0.7440820336341858 + } + ] + }, + "Id": "a405c0a3-5d2d-40fd-99b1-3728cb2e6d37", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9192886352539, + "Text": "YOUR", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03738349303603172, + "Height": 0.007907494902610779, + "Left": 0.33616533875465393, + "Top": 0.7361171245574951 + }, + "Polygon": [ + { + "X": 0.33616533875465393, + "Y": 0.736156165599823 + }, + { + "X": 0.3735376298427582, + "Y": 0.7361171245574951 + }, + { + "X": 0.37354883551597595, + "Y": 0.7439857125282288 + }, + { + "X": 0.33617645502090454, + "Y": 0.7440246343612671 + } + ] + }, + "Id": "03e01634-6f31-4a78-9fda-92fbac36fb5b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85843658447266, + "Text": "INVOICE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0524592399597168, + "Height": 0.008051157929003239, + "Left": 0.37806421518325806, + "Top": 0.7361646890640259 + }, + "Polygon": [ + { + "X": 0.37806421518325806, + "Y": 0.7362194657325745 + }, + { + "X": 0.4305118918418884, + "Y": 0.7361646890640259 + }, + { + "X": 0.43052345514297485, + "Y": 0.7441612482070923 + }, + { + "X": 0.37807562947273254, + "Y": 0.7442158460617065 + } + ] + }, + "Id": "567eaadf-0fa8-4493-a516-0a95e50035ed", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95415496826172, + "Text": "CURRENT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.060482773929834366, + "Height": 0.008326442912220955, + "Left": 0.045601390302181244, + "Top": 0.7480461597442627 + }, + "Polygon": [ + { + "X": 0.045601390302181244, + "Y": 0.7481091022491455 + }, + { + "X": 0.10607316344976425, + "Y": 0.7480461597442627 + }, + { + "X": 0.10608416795730591, + "Y": 0.7563098073005676 + }, + { + "X": 0.045612215995788574, + "Y": 0.7563725709915161 + } + ] + }, + "Id": "a2ba7c25-d32f-403b-948d-cfdaabd7fae3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9649429321289, + "Text": "TAX", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027610035613179207, + "Height": 0.008003187365829945, + "Left": 0.11032707989215851, + "Top": 0.748324990272522 + }, + "Polygon": [ + { + "X": 0.11032707989215851, + "Y": 0.7483537197113037 + }, + { + "X": 0.13792641460895538, + "Y": 0.748324990272522 + }, + { + "X": 0.13793711364269257, + "Y": 0.7562995553016663 + }, + { + "X": 0.11033771187067032, + "Y": 0.7563281655311584 + } + ] + }, + "Id": "e3e482c1-c970-40a3-99b6-81e58ebcbad5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96759033203125, + "Text": "RATE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.033633965998888016, + "Height": 0.008098781108856201, + "Left": 0.14254675805568695, + "Top": 0.7482811808586121 + }, + "Polygon": [ + { + "X": 0.14254675805568695, + "Y": 0.7483161687850952 + }, + { + "X": 0.17616978287696838, + "Y": 0.7482811808586121 + }, + { + "X": 0.17618072032928467, + "Y": 0.7563450336456299 + }, + { + "X": 0.14255759119987488, + "Y": 0.7563799619674683 + } + ] + }, + "Id": "221d8e19-4147-4f6a-923d-727a68b50b41", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94678497314453, + "Text": "FOR", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025176703929901123, + "Height": 0.008171399123966694, + "Left": 0.18082895874977112, + "Top": 0.7482921481132507 + }, + "Polygon": [ + { + "X": 0.18082895874977112, + "Y": 0.7483183145523071 + }, + { + "X": 0.20599454641342163, + "Y": 0.7482921481132507 + }, + { + "X": 0.20600566267967224, + "Y": 0.7564374208450317 + }, + { + "X": 0.18084001541137695, + "Y": 0.7564635276794434 + } + ] + }, + "Id": "dd93afb1-1447-4bd3-bb68-e5f69187d28f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9655990600586, + "Text": "THIS", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029814066365361214, + "Height": 0.00812366884201765, + "Left": 0.21031591296195984, + "Top": 0.7483018040657043 + }, + "Polygon": [ + { + "X": 0.21031591296195984, + "Y": 0.7483327984809875 + }, + { + "X": 0.2401188164949417, + "Y": 0.7483018040657043 + }, + { + "X": 0.2401299774646759, + "Y": 0.7563945055007935 + }, + { + "X": 0.21032696962356567, + "Y": 0.7564254403114319 + } + ] + }, + "Id": "70dbea9d-f597-4757-9c58-eeaffafc8384", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 75.29915618896484, + "Text": "INVOICE:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0573265366256237, + "Height": 0.008332154713571072, + "Left": 0.24462266266345978, + "Top": 0.7481593489646912 + }, + "Polygon": [ + { + "X": 0.24462266266345978, + "Y": 0.7482190132141113 + }, + { + "X": 0.30193760991096497, + "Y": 0.7481593489646912 + }, + { + "X": 0.3019492030143738, + "Y": 0.7564319968223572 + }, + { + "X": 0.24463407695293427, + "Y": 0.756491482257843 + } + ] + }, + "Id": "ad933b9a-4295-43d8-9bdb-8dcd515fb174", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.60246276855469, + "Text": "PST/QST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.056805457919836044, + "Height": 0.008769889362156391, + "Left": 0.30654096603393555, + "Top": 0.7479299902915955 + }, + "Polygon": [ + { + "X": 0.30654096603393555, + "Y": 0.7479890584945679 + }, + { + "X": 0.363334059715271, + "Y": 0.7479299902915955 + }, + { + "X": 0.3633464276790619, + "Y": 0.7566409111022949 + }, + { + "X": 0.3065531849861145, + "Y": 0.7566998600959778 + } + ] + }, + "Id": "fe0a8697-ecdc-4a85-a887-a4166a5da7f7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.79702758789062, + "Text": "0.000%", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.050267159938812256, + "Height": 0.008649090304970741, + "Left": 0.367771714925766, + "Top": 0.7480375170707703 + }, + "Polygon": [ + { + "X": 0.367771714925766, + "Y": 0.7480897903442383 + }, + { + "X": 0.41802647709846497, + "Y": 0.7480375170707703 + }, + { + "X": 0.41803887486457825, + "Y": 0.7566344141960144 + }, + { + "X": 0.36778393387794495, + "Y": 0.7566866278648376 + } + ] + }, + "Id": "0dddda88-b8ab-40f2-88db-0f36778c4cc4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.322021484375, + "Text": "GST/HST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05776773393154144, + "Height": 0.008587668649852276, + "Left": 0.4269850254058838, + "Top": 0.7480289936065674 + }, + "Polygon": [ + { + "X": 0.4269850254058838, + "Y": 0.7480891346931458 + }, + { + "X": 0.484740287065506, + "Y": 0.7480289936065674 + }, + { + "X": 0.4847527742385864, + "Y": 0.7565567493438721 + }, + { + "X": 0.4269973635673523, + "Y": 0.7566167116165161 + } + ] + }, + "Id": "55307e02-9736-496e-96e4-c7021237b131", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.29035186767578, + "Text": "5.000%", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.048919450491666794, + "Height": 0.008659729734063148, + "Left": 0.48986902832984924, + "Top": 0.7479104399681091 + }, + "Polygon": [ + { + "X": 0.48986902832984924, + "Y": 0.7479613423347473 + }, + { + "X": 0.5387756824493408, + "Y": 0.7479104399681091 + }, + { + "X": 0.5387884974479675, + "Y": 0.7565194368362427 + }, + { + "X": 0.4898816645145416, + "Y": 0.7565701603889465 + } + ] + }, + "Id": "e4d8e50e-e436-4730-88ee-a2df73755a4f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89971160888672, + "Text": "Payment", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03954923525452614, + "Height": 0.007574125193059444, + "Left": 0.04529226943850517, + "Top": 0.764825701713562 + }, + "Polygon": [ + { + "X": 0.04529226943850517, + "Y": 0.7648666501045227 + }, + { + "X": 0.08483153581619263, + "Y": 0.764825701713562 + }, + { + "X": 0.08484150469303131, + "Y": 0.7723589539527893 + }, + { + "X": 0.0453021340072155, + "Y": 0.7723998427391052 + } + ] + }, + "Id": "13692b15-8551-4d6e-ba85-b76ee8877fc8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.73265075683594, + "Text": "Terms:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03194146975874901, + "Height": 0.006350396666675806, + "Left": 0.08728918433189392, + "Top": 0.764819324016571 + }, + "Polygon": [ + { + "X": 0.08728918433189392, + "Y": 0.7648523449897766 + }, + { + "X": 0.11922221630811691, + "Y": 0.764819324016571 + }, + { + "X": 0.11923065036535263, + "Y": 0.7711367011070251 + }, + { + "X": 0.08729755133390427, + "Y": 0.7711697220802307 + } + ] + }, + "Id": "23a49916-97d2-4cd6-a783-d48b615176b2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84285736083984, + "Text": "All", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.011764763854444027, + "Height": 0.006227388512343168, + "Left": 0.16796018183231354, + "Top": 0.7647939324378967 + }, + "Polygon": [ + { + "X": 0.16796018183231354, + "Y": 0.7648060917854309 + }, + { + "X": 0.17971651256084442, + "Y": 0.7647939324378967 + }, + { + "X": 0.17972494661808014, + "Y": 0.7710091471672058 + }, + { + "X": 0.16796858608722687, + "Y": 0.77102130651474 + } + ] + }, + "Id": "884ef76e-a48c-48fc-8b40-80c1067a9a3c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95368957519531, + "Text": "payments", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04372047260403633, + "Height": 0.00695830537006259, + "Left": 0.18280629813671112, + "Top": 0.7656341791152954 + }, + "Polygon": [ + { + "X": 0.18280629813671112, + "Y": 0.7656794786453247 + }, + { + "X": 0.22651727497577667, + "Y": 0.7656341791152954 + }, + { + "X": 0.22652678191661835, + "Y": 0.7725473046302795 + }, + { + "X": 0.18281568586826324, + "Y": 0.7725924849510193 + } + ] + }, + "Id": "c5206e34-61c5-4a03-8e04-3c11d40606ef", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91862487792969, + "Text": "are", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01387434359639883, + "Height": 0.0049737016670405865, + "Left": 0.22973036766052246, + "Top": 0.7662402391433716 + }, + "Polygon": [ + { + "X": 0.22973036766052246, + "Y": 0.7662546038627625 + }, + { + "X": 0.2435978651046753, + "Y": 0.7662402391433716 + }, + { + "X": 0.24360470473766327, + "Y": 0.7711995840072632 + }, + { + "X": 0.22973717749118805, + "Y": 0.771213948726654 + } + ] + }, + "Id": "f9db6f55-a59a-4ef5-b213-098de2fcbd51", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92884063720703, + "Text": "due", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01661854237318039, + "Height": 0.006149806547909975, + "Left": 0.24658691883087158, + "Top": 0.7650468349456787 + }, + "Polygon": [ + { + "X": 0.24658691883087158, + "Y": 0.7650640606880188 + }, + { + "X": 0.2631969451904297, + "Y": 0.7650468349456787 + }, + { + "X": 0.26320546865463257, + "Y": 0.7711794972419739 + }, + { + "X": 0.2465953826904297, + "Y": 0.7711966633796692 + } + ] + }, + "Id": "7004b3fa-398f-49f6-9f2a-a610a3438b8d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.15282440185547, + "Text": "in", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008064829744398594, + "Height": 0.005961053539067507, + "Left": 0.26639077067375183, + "Top": 0.7650061249732971 + }, + "Polygon": [ + { + "X": 0.26639077067375183, + "Y": 0.7650144696235657 + }, + { + "X": 0.27444732189178467, + "Y": 0.7650061249732971 + }, + { + "X": 0.27445560693740845, + "Y": 0.7709588408470154 + }, + { + "X": 0.2663990259170532, + "Y": 0.7709671854972839 + } + ] + }, + "Id": "7ddd51a1-3c4c-49ef-97a9-6f81767d1ccd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8158950805664, + "Text": "full", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.013827966526150703, + "Height": 0.006363606080412865, + "Left": 0.2776152193546295, + "Top": 0.7648597359657288 + }, + "Polygon": [ + { + "X": 0.2776152193546295, + "Y": 0.7648740410804749 + }, + { + "X": 0.29143431782722473, + "Y": 0.7648597359657288 + }, + { + "X": 0.2914431691169739, + "Y": 0.7712090611457825 + }, + { + "X": 0.2776240408420563, + "Y": 0.7712233662605286 + } + ] + }, + "Id": "bcafecf6-6d27-40ef-8167-ad0fe05304f2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.62547302246094, + "Text": "in", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.007777421735227108, + "Height": 0.0061094146221876144, + "Left": 0.29465341567993164, + "Top": 0.7650402784347534 + }, + "Polygon": [ + { + "X": 0.29465341567993164, + "Y": 0.7650482654571533 + }, + { + "X": 0.30242228507995605, + "Y": 0.7650402784347534 + }, + { + "X": 0.3024308383464813, + "Y": 0.7711416482925415 + }, + { + "X": 0.2946619391441345, + "Y": 0.7711496353149414 + } + ] + }, + "Id": "1bf31b6a-cbe3-4d33-b88d-4d68c885cd93", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9278335571289, + "Text": "accordance", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.051465243101119995, + "Height": 0.006275478284806013, + "Left": 0.30591461062431335, + "Top": 0.7651023268699646 + }, + "Polygon": [ + { + "X": 0.30591461062431335, + "Y": 0.7651556134223938 + }, + { + "X": 0.3573710024356842, + "Y": 0.7651023268699646 + }, + { + "X": 0.35737985372543335, + "Y": 0.771324634552002 + }, + { + "X": 0.30592331290245056, + "Y": 0.7713778018951416 + } + ] + }, + "Id": "9dd797fc-a0b2-41be-9149-577b2215d44b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9814682006836, + "Text": "with", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02003040350973606, + "Height": 0.0062219430692493916, + "Left": 0.36028072237968445, + "Top": 0.7649198770523071 + }, + "Polygon": [ + { + "X": 0.36028072237968445, + "Y": 0.764940619468689 + }, + { + "X": 0.3803022503852844, + "Y": 0.7649198770523071 + }, + { + "X": 0.38031110167503357, + "Y": 0.7711211442947388 + }, + { + "X": 0.3602895140647888, + "Y": 0.7711418271064758 + } + ] + }, + "Id": "d89eebfe-1276-4bc5-a5d4-d2fdc68021e2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97145080566406, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014117639511823654, + "Height": 0.006182072684168816, + "Left": 0.38373103737831116, + "Top": 0.7649558782577515 + }, + "Polygon": [ + { + "X": 0.38373103737831116, + "Y": 0.7649704813957214 + }, + { + "X": 0.39783984422683716, + "Y": 0.7649558782577515 + }, + { + "X": 0.3978486955165863, + "Y": 0.7711233496665955 + }, + { + "X": 0.3837398588657379, + "Y": 0.7711379528045654 + } + ] + }, + "Id": "5e9d231a-a6bd-4736-8a58-07d69ac1bdb5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92445373535156, + "Text": "terms", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02535477839410305, + "Height": 0.005733991041779518, + "Left": 0.4010889232158661, + "Top": 0.7655771374702454 + }, + "Polygon": [ + { + "X": 0.4010889232158661, + "Y": 0.7656034231185913 + }, + { + "X": 0.4264354705810547, + "Y": 0.7655771374702454 + }, + { + "X": 0.4264436960220337, + "Y": 0.7712849378585815 + }, + { + "X": 0.4010971188545227, + "Y": 0.7713111639022827 + } + ] + }, + "Id": "f1c22694-7083-4365-9e0b-894f6955e416", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96102142333984, + "Text": "stated", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027484290301799774, + "Height": 0.006283835973590612, + "Left": 0.4297897517681122, + "Top": 0.7649742364883423 + }, + "Polygon": [ + { + "X": 0.4297897517681122, + "Y": 0.7650026679039001 + }, + { + "X": 0.4572649300098419, + "Y": 0.7649742364883423 + }, + { + "X": 0.45727404952049255, + "Y": 0.7712296843528748 + }, + { + "X": 0.42979878187179565, + "Y": 0.7712580561637878 + } + ] + }, + "Id": "25a74975-9592-4762-bd56-364dfeaff52a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 62.56428527832031, + "Text": "herein.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029970983043313026, + "Height": 0.006661674007773399, + "Left": 0.46091192960739136, + "Top": 0.7647866010665894 + }, + "Polygon": [ + { + "X": 0.46091192960739136, + "Y": 0.7648176550865173 + }, + { + "X": 0.49087318778038025, + "Y": 0.7647866010665894 + }, + { + "X": 0.490882933139801, + "Y": 0.7714173197746277 + }, + { + "X": 0.46092158555984497, + "Y": 0.7714483141899109 + } + ] + }, + "Id": "ea451553-7cec-4719-9d32-266cd037b285", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95590209960938, + "Text": "Amounts", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.040701016783714294, + "Height": 0.006359091494232416, + "Left": 0.4940918982028961, + "Top": 0.7648022770881653 + }, + "Polygon": [ + { + "X": 0.4940918982028961, + "Y": 0.7648444175720215 + }, + { + "X": 0.5347835421562195, + "Y": 0.7648022770881653 + }, + { + "X": 0.5347929000854492, + "Y": 0.7711193561553955 + }, + { + "X": 0.4941011667251587, + "Y": 0.7711613774299622 + } + ] + }, + "Id": "b0eec90f-58ab-44e3-a927-eb912d9336a5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97779846191406, + "Text": "not", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014541031792759895, + "Height": 0.005878220312297344, + "Left": 0.5379094481468201, + "Top": 0.7652801871299744 + }, + "Polygon": [ + { + "X": 0.5379094481468201, + "Y": 0.7652952671051025 + }, + { + "X": 0.5524417757987976, + "Y": 0.7652801871299744 + }, + { + "X": 0.5524504780769348, + "Y": 0.77114337682724 + }, + { + "X": 0.5379181504249573, + "Y": 0.7711583971977234 + } + ] + }, + "Id": "83ad1bef-acaa-44a1-b09a-a17722ba80c3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97488403320312, + "Text": "paid", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01828646846115589, + "Height": 0.0075063458643853664, + "Left": 0.5556864142417908, + "Top": 0.7647126317024231 + }, + "Polygon": [ + { + "X": 0.5556864142417908, + "Y": 0.7647315263748169 + }, + { + "X": 0.5739616751670837, + "Y": 0.7647126317024231 + }, + { + "X": 0.5739728808403015, + "Y": 0.7722000479698181 + }, + { + "X": 0.5556975603103638, + "Y": 0.7722189426422119 + } + ] + }, + "Id": "ed13604f-80de-44cf-9fba-54163057528f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9703369140625, + "Text": "by", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010727472603321075, + "Height": 0.007449896540492773, + "Left": 0.5774058103561401, + "Top": 0.7646409273147583 + }, + "Polygon": [ + { + "X": 0.5774058103561401, + "Y": 0.7646520137786865 + }, + { + "X": 0.5881221294403076, + "Y": 0.7646409273147583 + }, + { + "X": 0.5881333351135254, + "Y": 0.7720797061920166 + }, + { + "X": 0.5774169564247131, + "Y": 0.7720907926559448 + } + ] + }, + "Id": "79c5a028-4879-42a6-9e5c-a1e2e8784850", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97772216796875, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014245579019188881, + "Height": 0.006216593086719513, + "Left": 0.5913388133049011, + "Top": 0.7647424340248108 + }, + "Polygon": [ + { + "X": 0.5913388133049011, + "Y": 0.7647572159767151 + }, + { + "X": 0.6055750846862793, + "Y": 0.7647424340248108 + }, + { + "X": 0.6055843830108643, + "Y": 0.7709442973136902 + }, + { + "X": 0.5913481712341309, + "Y": 0.7709590196609497 + } + ] + }, + "Id": "f9e923a9-8ffb-471a-a5e2-cf9084f698b5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93376922607422, + "Text": "due", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016499925404787064, + "Height": 0.00632130540907383, + "Left": 0.6086871027946472, + "Top": 0.7646481990814209 + }, + "Polygon": [ + { + "X": 0.6086871027946472, + "Y": 0.7646653056144714 + }, + { + "X": 0.6251774430274963, + "Y": 0.7646481990814209 + }, + { + "X": 0.6251870393753052, + "Y": 0.7709524631500244 + }, + { + "X": 0.6086965799331665, + "Y": 0.7709695100784302 + } + ] + }, + "Id": "a6222a0c-9506-49b8-b185-a513fed5ea35", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93887329101562, + "Text": "date", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01936315931379795, + "Height": 0.006214782129973173, + "Left": 0.6281181573867798, + "Top": 0.7646991610527039 + }, + "Polygon": [ + { + "X": 0.6281181573867798, + "Y": 0.7647191882133484 + }, + { + "X": 0.6474719047546387, + "Y": 0.7646991610527039 + }, + { + "X": 0.6474813222885132, + "Y": 0.770893931388855 + }, + { + "X": 0.6281275749206543, + "Y": 0.7709138989448547 + } + ] + }, + "Id": "4565ecd0-dd45-42c2-92c4-5cd9cb12331f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.965576171875, + "Text": "are", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014164010994136333, + "Height": 0.004946946632117033, + "Left": 0.650704562664032, + "Top": 0.7659652233123779 + }, + "Polygon": [ + { + "X": 0.650704562664032, + "Y": 0.7659798860549927 + }, + { + "X": 0.6648610234260559, + "Y": 0.7659652233123779 + }, + { + "X": 0.6648685932159424, + "Y": 0.7708975672721863 + }, + { + "X": 0.6507120728492737, + "Y": 0.7709121704101562 + } + ] + }, + "Id": "256f8f79-3552-41f8-aa71-6e29168951fb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96710205078125, + "Text": "subject", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03134103864431381, + "Height": 0.008119698613882065, + "Left": 0.6679949164390564, + "Top": 0.7644932270050049 + }, + "Polygon": [ + { + "X": 0.6679949164390564, + "Y": 0.7645256519317627 + }, + { + "X": 0.6993235349655151, + "Y": 0.7644932270050049 + }, + { + "X": 0.6993359923362732, + "Y": 0.7725805640220642 + }, + { + "X": 0.6680073142051697, + "Y": 0.7726129293441772 + } + ] + }, + "Id": "5eab0165-719b-4b99-938c-daf01a4a20d4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87689208984375, + "Text": "to", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0093168243765831, + "Height": 0.005588098429143429, + "Left": 0.7029671669006348, + "Top": 0.7651729583740234 + }, + "Polygon": [ + { + "X": 0.7029671669006348, + "Y": 0.7651825547218323 + }, + { + "X": 0.7122753262519836, + "Y": 0.7651729583740234 + }, + { + "X": 0.7122839689254761, + "Y": 0.770751416683197 + }, + { + "X": 0.7029757499694824, + "Y": 0.7707610130310059 + } + ] + }, + "Id": "22f96483-307f-4062-b5b1-96cb7e0d850c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.68500518798828, + "Text": "a", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005094290245324373, + "Height": 0.00489406380802393, + "Left": 0.7155383825302124, + "Top": 0.7658380270004272 + }, + "Polygon": [ + { + "X": 0.7155383825302124, + "Y": 0.7658433318138123 + }, + { + "X": 0.720625102519989, + "Y": 0.7658380270004272 + }, + { + "X": 0.7206326723098755, + "Y": 0.7707268595695496 + }, + { + "X": 0.7155459523200989, + "Y": 0.7707321047782898 + } + ] + }, + "Id": "0d1d2cd0-5e67-44d7-9fdd-d75b5eb7c30b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84317779541016, + "Text": "late", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01661669835448265, + "Height": 0.00629711477085948, + "Left": 0.7234621047973633, + "Top": 0.7644672393798828 + }, + "Polygon": [ + { + "X": 0.7234621047973633, + "Y": 0.7644844651222229 + }, + { + "X": 0.7400690317153931, + "Y": 0.7644672393798828 + }, + { + "X": 0.7400788068771362, + "Y": 0.770747184753418 + }, + { + "X": 0.7234718203544617, + "Y": 0.7707643508911133 + } + ] + }, + "Id": "25aafafe-e35d-4a22-ba3e-5a78ff4e8d62", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9236831665039, + "Text": "payment", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0394354909658432, + "Height": 0.0066388193517923355, + "Left": 0.7430115342140198, + "Top": 0.7652159929275513 + }, + "Polygon": [ + { + "X": 0.7430115342140198, + "Y": 0.7652568221092224 + }, + { + "X": 0.7824366688728333, + "Y": 0.7652159929275513 + }, + { + "X": 0.7824470400810242, + "Y": 0.7718141078948975 + }, + { + "X": 0.7430217862129211, + "Y": 0.771854817867279 + } + ] + }, + "Id": "2a3806ae-bc78-477b-872b-c22cfaefa8c1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95113372802734, + "Text": "fee", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.013960371725261211, + "Height": 0.006137920543551445, + "Left": 0.7853977084159851, + "Top": 0.7643213272094727 + }, + "Polygon": [ + { + "X": 0.7853977084159851, + "Y": 0.7643357515335083 + }, + { + "X": 0.7993484139442444, + "Y": 0.7643213272094727 + }, + { + "X": 0.799358069896698, + "Y": 0.7704448103904724 + }, + { + "X": 0.785407304763794, + "Y": 0.7704592347145081 + } + ] + }, + "Id": "0039ead5-5abf-4200-acce-3675cb69ea15", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.78175354003906, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009122602641582489, + "Height": 0.0062578716315329075, + "Left": 0.8023498058319092, + "Top": 0.7641521096229553 + }, + "Polygon": [ + { + "X": 0.8023498058319092, + "Y": 0.7641615867614746 + }, + { + "X": 0.8114625215530396, + "Y": 0.7641521096229553 + }, + { + "X": 0.8114724159240723, + "Y": 0.7704005837440491 + }, + { + "X": 0.8023596405982971, + "Y": 0.7704100012779236 + } + ] + }, + "Id": "7d0404a4-fcba-4074-9e58-03eb5b9793c6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9569320678711, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014641331508755684, + "Height": 0.00611654669046402, + "Left": 0.8142222762107849, + "Top": 0.7643445134162903 + }, + "Polygon": [ + { + "X": 0.8142222762107849, + "Y": 0.7643596529960632 + }, + { + "X": 0.8288539052009583, + "Y": 0.7643445134162903 + }, + { + "X": 0.8288636207580566, + "Y": 0.7704459428787231 + }, + { + "X": 0.8142319321632385, + "Y": 0.7704610228538513 + } + ] + }, + "Id": "8ae35308-ee00-41d8-85f3-536b7c1292d4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89158630371094, + "Text": "greater", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.031722549349069595, + "Height": 0.007123332936316729, + "Left": 0.8317055702209473, + "Top": 0.7649210095405579 + }, + "Polygon": [ + { + "X": 0.8317055702209473, + "Y": 0.7649538516998291 + }, + { + "X": 0.8634167909622192, + "Y": 0.7649210095405579 + }, + { + "X": 0.8634281158447266, + "Y": 0.7720115780830383 + }, + { + "X": 0.8317168354988098, + "Y": 0.7720443606376648 + } + ] + }, + "Id": "192f670d-6217-4133-937b-1c6350736024", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90633392333984, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009177977219223976, + "Height": 0.006254979409277439, + "Left": 0.8662217259407043, + "Top": 0.7641058564186096 + }, + "Polygon": [ + { + "X": 0.8662217259407043, + "Y": 0.7641153931617737 + }, + { + "X": 0.8753896951675415, + "Y": 0.7641058564186096 + }, + { + "X": 0.8753997087478638, + "Y": 0.7703513503074646 + }, + { + "X": 0.8662317395210266, + "Y": 0.7703608274459839 + } + ] + }, + "Id": "35f8e3c3-6d9c-4410-9d07-7c7fcf2658a3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.59197998046875, + "Text": "(i)", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008185001090168953, + "Height": 0.006590346340090036, + "Left": 0.8784797787666321, + "Top": 0.7641331553459167 + }, + "Polygon": [ + { + "X": 0.8784797787666321, + "Y": 0.7641416192054749 + }, + { + "X": 0.8866541981697083, + "Y": 0.7641331553459167 + }, + { + "X": 0.8866648077964783, + "Y": 0.770715057849884 + }, + { + "X": 0.8784903287887573, + "Y": 0.7707235217094421 + } + ] + }, + "Id": "59a2dc57-9cf6-41b5-9742-1f7cd936ddca", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.3366928100586, + "Text": "2%", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.015447081997990608, + "Height": 0.006557067856192589, + "Left": 0.8904974460601807, + "Top": 0.7637975811958313 + }, + "Polygon": [ + { + "X": 0.8904974460601807, + "Y": 0.7638136148452759 + }, + { + "X": 0.9059339761734009, + "Y": 0.7637975811958313 + }, + { + "X": 0.9059445261955261, + "Y": 0.7703387141227722 + }, + { + "X": 0.8905079364776611, + "Y": 0.770354688167572 + } + ] + }, + "Id": "f8625a50-0fe2-47fe-b0b2-04d2a927f371", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.141357421875, + "Text": "per", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014066910371184349, + "Height": 0.0061126817017793655, + "Left": 0.9094753861427307, + "Top": 0.7651973962783813 + }, + "Polygon": [ + { + "X": 0.9094753861427307, + "Y": 0.7652119398117065 + }, + { + "X": 0.9235324263572693, + "Y": 0.7651973962783813 + }, + { + "X": 0.923542320728302, + "Y": 0.7712955474853516 + }, + { + "X": 0.9094852209091187, + "Y": 0.7713100910186768 + } + ] + }, + "Id": "5964be92-c177-4c74-9c50-69534f6c9a9f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96502685546875, + "Text": "month", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.028868133202195168, + "Height": 0.006044358015060425, + "Left": 0.16773809492588043, + "Top": 0.7740542888641357 + }, + "Polygon": [ + { + "X": 0.16773809492588043, + "Y": 0.7740840911865234 + }, + { + "X": 0.19659802317619324, + "Y": 0.7740542888641357 + }, + { + "X": 0.19660623371601105, + "Y": 0.7800688743591309 + }, + { + "X": 0.16774623095989227, + "Y": 0.7800986766815186 + } + ] + }, + "Id": "9549c80c-94b7-49f4-a63b-70797b5600fa", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.72541046142578, + "Text": "compounded", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05706079676747322, + "Height": 0.007424524519592524, + "Left": 0.19988998770713806, + "Top": 0.7742586135864258 + }, + "Polygon": [ + { + "X": 0.19988998770713806, + "Y": 0.7743175625801086 + }, + { + "X": 0.2569405734539032, + "Y": 0.7742586135864258 + }, + { + "X": 0.2569507956504822, + "Y": 0.7816243171691895 + }, + { + "X": 0.19990003108978271, + "Y": 0.7816831469535828 + } + ] + }, + "Id": "68927fb2-8578-4a14-aa8e-50f31dec881b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94808197021484, + "Text": "monthly", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03672020137310028, + "Height": 0.007202185224741697, + "Left": 0.26100513339042664, + "Top": 0.7742061614990234 + }, + "Polygon": [ + { + "X": 0.26100513339042664, + "Y": 0.7742440700531006 + }, + { + "X": 0.29771533608436584, + "Y": 0.7742061614990234 + }, + { + "X": 0.2977253496646881, + "Y": 0.7813705205917358 + }, + { + "X": 0.26101505756378174, + "Y": 0.7814083695411682 + } + ] + }, + "Id": "4b9ba9d4-0d32-4a56-985a-021d201e6770", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 92.0212631225586, + "Text": "(26.8%", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.033811282366514206, + "Height": 0.007006325293332338, + "Left": 0.3014080822467804, + "Top": 0.7739413976669312 + }, + "Polygon": [ + { + "X": 0.3014080822467804, + "Y": 0.7739763259887695 + }, + { + "X": 0.33520951867103577, + "Y": 0.7739413976669312 + }, + { + "X": 0.3352193832397461, + "Y": 0.7809128761291504 + }, + { + "X": 0.30141785740852356, + "Y": 0.780947744846344 + } + ] + }, + "Id": "93b2ebfc-a4f3-409a-a5f8-239a7e6d49dd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.43106842041016, + "Text": "per", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014279092662036419, + "Height": 0.006163623183965683, + "Left": 0.3395019769668579, + "Top": 0.7753252983093262 + }, + "Polygon": [ + { + "X": 0.3395019769668579, + "Y": 0.7753400206565857 + }, + { + "X": 0.3537723422050476, + "Y": 0.7753252983093262 + }, + { + "X": 0.3537810742855072, + "Y": 0.781474232673645 + }, + { + "X": 0.33951064944267273, + "Y": 0.7814888954162598 + } + ] + }, + "Id": "9fbb3067-2b9d-4f3d-b125-559982b52266", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83980560302734, + "Text": "year)", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022206014022231102, + "Height": 0.007384596858173609, + "Left": 0.3569747805595398, + "Top": 0.7742244005203247 + }, + "Polygon": [ + { + "X": 0.3569747805595398, + "Y": 0.7742472887039185 + }, + { + "X": 0.3791702687740326, + "Y": 0.7742244005203247 + }, + { + "X": 0.37918078899383545, + "Y": 0.7815861105918884 + }, + { + "X": 0.3569852411746979, + "Y": 0.7816089987754822 + } + ] + }, + "Id": "a2745cb6-50da-4e5c-812e-c46fc38d0d1f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 95.77677154541016, + "Text": "or", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009125704877078533, + "Height": 0.0047864606603980064, + "Left": 0.38304170966148376, + "Top": 0.7754568457603455 + }, + "Polygon": [ + { + "X": 0.38304170966148376, + "Y": 0.77546626329422 + }, + { + "X": 0.392160564661026, + "Y": 0.7754568457603455 + }, + { + "X": 0.39216741919517517, + "Y": 0.7802339196205139 + }, + { + "X": 0.38304853439331055, + "Y": 0.7802432775497437 + } + ] + }, + "Id": "11897fb8-16a2-408d-9d1c-7f3f87fa168b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.7920150756836, + "Text": "(ii)", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010261384770274162, + "Height": 0.007025921251624823, + "Left": 0.3955312669277191, + "Top": 0.7739744186401367 + }, + "Polygon": [ + { + "X": 0.3955312669277191, + "Y": 0.7739850282669067 + }, + { + "X": 0.4057825803756714, + "Y": 0.7739744186401367 + }, + { + "X": 0.4057926535606384, + "Y": 0.7809897661209106 + }, + { + "X": 0.39554131031036377, + "Y": 0.7810003161430359 + } + ] + }, + "Id": "7c5038f6-dd3f-4d31-97b5-5e520c856c04", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.45999908447266, + "Text": "$5.00.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.030411869287490845, + "Height": 0.006632989272475243, + "Left": 0.41006791591644287, + "Top": 0.773921549320221 + }, + "Polygon": [ + { + "X": 0.41006791591644287, + "Y": 0.7739529609680176 + }, + { + "X": 0.44047021865844727, + "Y": 0.773921549320221 + }, + { + "X": 0.4404797852039337, + "Y": 0.7805231809616089 + }, + { + "X": 0.41007739305496216, + "Y": 0.7805545330047607 + } + ] + }, + "Id": "7239f70f-925b-437c-99ed-db5030b862f7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.62550354003906, + "Text": "In", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.00823811162263155, + "Height": 0.005935017950832844, + "Left": 0.4440782964229584, + "Top": 0.7741166353225708 + }, + "Polygon": [ + { + "X": 0.4440782964229584, + "Y": 0.7741250991821289 + }, + { + "X": 0.4523078203201294, + "Y": 0.7741166353225708 + }, + { + "X": 0.45231640338897705, + "Y": 0.7800431251525879 + }, + { + "X": 0.4440869092941284, + "Y": 0.7800516486167908 + } + ] + }, + "Id": "bf700731-9232-4379-8d94-91a0d800160f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.27620697021484, + "Text": "addition,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.038103457540273666, + "Height": 0.007000379730015993, + "Left": 0.4557238221168518, + "Top": 0.7740169167518616 + }, + "Polygon": [ + { + "X": 0.4557238221168518, + "Y": 0.7740562558174133 + }, + { + "X": 0.4938170611858368, + "Y": 0.7740169167518616 + }, + { + "X": 0.49382728338241577, + "Y": 0.7809780240058899 + }, + { + "X": 0.4557339549064636, + "Y": 0.7810173034667969 + } + ] + }, + "Id": "b5a59711-0012-4e1d-a3c7-6ac9635fdcc6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97209167480469, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014280615374445915, + "Height": 0.006126452703028917, + "Left": 0.4973260164260864, + "Top": 0.7741367220878601 + }, + "Polygon": [ + { + "X": 0.4973260164260864, + "Y": 0.7741514444351196 + }, + { + "X": 0.5115976333618164, + "Y": 0.7741367220878601 + }, + { + "X": 0.5116066336631775, + "Y": 0.7802484631538391 + }, + { + "X": 0.4973349869251251, + "Y": 0.7802631855010986 + } + ] + }, + "Id": "f51a37ae-e9c2-4c9e-b554-7cb0367a3c74", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89936065673828, + "Text": "customer", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04162826016545296, + "Height": 0.0056077176705002785, + "Left": 0.5147495269775391, + "Top": 0.7745689153671265 + }, + "Polygon": [ + { + "X": 0.5147495269775391, + "Y": 0.7746118903160095 + }, + { + "X": 0.5563694834709167, + "Y": 0.7745689153671265 + }, + { + "X": 0.5563777685165405, + "Y": 0.7801337242126465 + }, + { + "X": 0.5147576928138733, + "Y": 0.7801766395568848 + } + ] + }, + "Id": "d0f9d35b-4e7c-4a27-acd2-2ac8c2cb46c9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94991302490234, + "Text": "is", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.007077233865857124, + "Height": 0.006260791793465614, + "Left": 0.559552788734436, + "Top": 0.7737650871276855 + }, + "Polygon": [ + { + "X": 0.559552788734436, + "Y": 0.7737723588943481 + }, + { + "X": 0.5666207075119019, + "Y": 0.7737650871276855 + }, + { + "X": 0.5666300654411316, + "Y": 0.7800185680389404 + }, + { + "X": 0.5595621466636658, + "Y": 0.780025839805603 + } + ] + }, + "Id": "d789cb0c-16e1-4ab8-a3e0-7cd2af6cce1e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.71173858642578, + "Text": "responsible", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05024521052837372, + "Height": 0.007371027488261461, + "Left": 0.5698183178901672, + "Top": 0.7739251852035522 + }, + "Polygon": [ + { + "X": 0.5698183178901672, + "Y": 0.7739771008491516 + }, + { + "X": 0.6200524568557739, + "Y": 0.7739251852035522 + }, + { + "X": 0.6200634837150574, + "Y": 0.7812444567680359 + }, + { + "X": 0.5698292255401611, + "Y": 0.7812961935997009 + } + ] + }, + "Id": "a16dfdf7-7571-4d48-85a9-0dfbf1fe0999", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80127716064453, + "Text": "for", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.012446561828255653, + "Height": 0.006160218734294176, + "Left": 0.623262882232666, + "Top": 0.773817241191864 + }, + "Polygon": [ + { + "X": 0.623262882232666, + "Y": 0.7738300561904907 + }, + { + "X": 0.6357001066207886, + "Y": 0.773817241191864 + }, + { + "X": 0.6357094645500183, + "Y": 0.7799646258354187 + }, + { + "X": 0.623272180557251, + "Y": 0.7799774408340454 + } + ] + }, + "Id": "9cecbde7-0124-476d-ab04-f0255f4d1a18", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88641357421875, + "Text": "all", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0098192123696208, + "Height": 0.006191324908286333, + "Left": 0.6389352679252625, + "Top": 0.7737185955047607 + }, + "Polygon": [ + { + "X": 0.6389352679252625, + "Y": 0.7737287282943726 + }, + { + "X": 0.648745059967041, + "Y": 0.7737185955047607 + }, + { + "X": 0.6487544775009155, + "Y": 0.7798997759819031 + }, + { + "X": 0.638944685459137, + "Y": 0.7799099087715149 + } + ] + }, + "Id": "984c0375-5b4c-46bf-a976-f1acda227d5d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97637939453125, + "Text": "fees", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018298408016562462, + "Height": 0.006143737118691206, + "Left": 0.6522574424743652, + "Top": 0.7738321423530579 + }, + "Polygon": [ + { + "X": 0.6522574424743652, + "Y": 0.7738510370254517 + }, + { + "X": 0.6705464720726013, + "Y": 0.7738321423530579 + }, + { + "X": 0.670555830001831, + "Y": 0.7799569964408875 + }, + { + "X": 0.6522667407989502, + "Y": 0.7799758911132812 + } + ] + }, + "Id": "a3716f3b-f8c3-4555-a9e8-a3c0c8ad54c5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98605346679688, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016347773373126984, + "Height": 0.006000310182571411, + "Left": 0.6736104488372803, + "Top": 0.773966908454895 + }, + "Polygon": [ + { + "X": 0.6736104488372803, + "Y": 0.7739837765693665 + }, + { + "X": 0.6899489760398865, + "Y": 0.773966908454895 + }, + { + "X": 0.6899582147598267, + "Y": 0.7799503803253174 + }, + { + "X": 0.6736195683479309, + "Y": 0.7799672484397888 + } + ] + }, + "Id": "8dd047c8-9ee2-4695-8986-5c2119dcf7f0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94276428222656, + "Text": "expenses", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04164833575487137, + "Height": 0.00629210053011775, + "Left": 0.6931424736976624, + "Top": 0.774878203868866 + }, + "Polygon": [ + { + "X": 0.6931424736976624, + "Y": 0.774921178817749 + }, + { + "X": 0.7347810864448547, + "Y": 0.774878203868866 + }, + { + "X": 0.7347908020019531, + "Y": 0.781127393245697 + }, + { + "X": 0.6931520700454712, + "Y": 0.7811703085899353 + } + ] + }, + "Id": "ff882a61-0293-4d52-8bc1-550a26601f5c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87018585205078, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009284336119890213, + "Height": 0.006146614905446768, + "Left": 0.7379465103149414, + "Top": 0.7734912037849426 + }, + "Polygon": [ + { + "X": 0.7379465103149414, + "Y": 0.7735007405281067 + }, + { + "X": 0.7472212910652161, + "Y": 0.7734912037849426 + }, + { + "X": 0.7472308278083801, + "Y": 0.7796282172203064 + }, + { + "X": 0.7379560470581055, + "Y": 0.7796378135681152 + } + ] + }, + "Id": "ee7640cc-fcba-4ab0-951d-ad7b5ad15d56", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.2469482421875, + "Text": "collection,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04574551805853844, + "Height": 0.007159295957535505, + "Left": 0.7501205801963806, + "Top": 0.7734804749488831 + }, + "Polygon": [ + { + "X": 0.7501205801963806, + "Y": 0.7735277414321899 + }, + { + "X": 0.7958548665046692, + "Y": 0.7734804749488831 + }, + { + "X": 0.795866072177887, + "Y": 0.7805926203727722 + }, + { + "X": 0.7501316666603088, + "Y": 0.7806397676467896 + } + ] + }, + "Id": "430b500b-c749-4172-b6ee-a11481b6f130", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94479370117188, + "Text": "including", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03937261551618576, + "Height": 0.00775145785883069, + "Left": 0.7992013096809387, + "Top": 0.7732315063476562 + }, + "Polygon": [ + { + "X": 0.7992013096809387, + "Y": 0.7732721567153931 + }, + { + "X": 0.8385616540908813, + "Y": 0.7732315063476562 + }, + { + "X": 0.8385739326477051, + "Y": 0.7809423804283142 + }, + { + "X": 0.7992134690284729, + "Y": 0.7809829711914062 + } + ] + }, + "Id": "7efeccf1-873d-4231-83c3-4856e2610780", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91960144042969, + "Text": "reasonable", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04733741655945778, + "Height": 0.0061300331726670265, + "Left": 0.8419548273086548, + "Top": 0.7735620737075806 + }, + "Polygon": [ + { + "X": 0.8419548273086548, + "Y": 0.7736109495162964 + }, + { + "X": 0.8892824649810791, + "Y": 0.7735620737075806 + }, + { + "X": 0.8892922401428223, + "Y": 0.7796432971954346 + }, + { + "X": 0.8419644832611084, + "Y": 0.7796921133995056 + } + ] + }, + "Id": "6d0db429-0ad7-474f-8a88-bc3c26bb71bc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 87.9747314453125, + "Text": "attorneys'", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04497915878891945, + "Height": 0.007151845842599869, + "Left": 0.8926578164100647, + "Top": 0.773254930973053 + }, + "Polygon": [ + { + "X": 0.8926578164100647, + "Y": 0.7733014225959778 + }, + { + "X": 0.9376254677772522, + "Y": 0.773254930973053 + }, + { + "X": 0.9376369714736938, + "Y": 0.7803604602813721 + }, + { + "X": 0.8926692605018616, + "Y": 0.7804067730903625 + } + ] + }, + "Id": "096c6f0e-d214-4524-b298-d5cd04cc0148", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.63233184814453, + "Text": "fees.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021042799577116966, + "Height": 0.0062248557806015015, + "Left": 0.16820445656776428, + "Top": 0.7833060622215271 + }, + "Polygon": [ + { + "X": 0.16820445656776428, + "Y": 0.7833277583122253 + }, + { + "X": 0.18923881649971008, + "Y": 0.7833060622215271 + }, + { + "X": 0.1892472505569458, + "Y": 0.7895092964172363 + }, + { + "X": 0.16821284592151642, + "Y": 0.7895309329032898 + } + ] + }, + "Id": "0bd2f105-36f5-4907-bd9c-93d725472f83", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.33484649658203, + "Text": "If", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.006374760996550322, + "Height": 0.005991660989820957, + "Left": 0.19282200932502747, + "Top": 0.7832702398300171 + }, + "Polygon": [ + { + "X": 0.19282200932502747, + "Y": 0.7832767963409424 + }, + { + "X": 0.19918860495090485, + "Y": 0.7832702398300171 + }, + { + "X": 0.19919677078723907, + "Y": 0.7892553806304932 + }, + { + "X": 0.1928301602602005, + "Y": 0.7892619371414185 + } + ] + }, + "Id": "ca9063b6-e90a-4bcf-a496-69aff17a284b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9914321899414, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01432749442756176, + "Height": 0.006044348236173391, + "Left": 0.20202474296092987, + "Top": 0.7834520936012268 + }, + "Polygon": [ + { + "X": 0.20202474296092987, + "Y": 0.7834668755531311 + }, + { + "X": 0.2163439840078354, + "Y": 0.7834520936012268 + }, + { + "X": 0.21635223925113678, + "Y": 0.7894816994667053 + }, + { + "X": 0.20203296840190887, + "Y": 0.7894964218139648 + } + ] + }, + "Id": "34159593-0361-4fa0-84dc-61d7ad81bf59", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94415283203125, + "Text": "foregoing", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04202723503112793, + "Height": 0.007539044599980116, + "Left": 0.21983113884925842, + "Top": 0.783305823802948 + }, + "Polygon": [ + { + "X": 0.21983113884925842, + "Y": 0.7833490967750549 + }, + { + "X": 0.26184797286987305, + "Y": 0.783305823802948 + }, + { + "X": 0.26185837388038635, + "Y": 0.7908016443252563 + }, + { + "X": 0.21984142065048218, + "Y": 0.7908448576927185 + } + ] + }, + "Id": "147d28a2-b295-4922-b744-d22157ccdd6e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82050323486328, + "Text": "charges", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0347134955227375, + "Height": 0.007565920241177082, + "Left": 0.2653121054172516, + "Top": 0.7832584977149963 + }, + "Polygon": [ + { + "X": 0.2653121054172516, + "Y": 0.7832942008972168 + }, + { + "X": 0.30001506209373474, + "Y": 0.7832584977149963 + }, + { + "X": 0.30002561211586, + "Y": 0.7907887101173401 + }, + { + "X": 0.26532256603240967, + "Y": 0.7908244132995605 + } + ] + }, + "Id": "2969a590-5724-45ee-8efb-e72c07beb32f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97560119628906, + "Text": "exceed", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.031425923109054565, + "Height": 0.006187505554407835, + "Left": 0.30352699756622314, + "Top": 0.7833474278450012 + }, + "Polygon": [ + { + "X": 0.30352699756622314, + "Y": 0.7833797931671143 + }, + { + "X": 0.3349442183971405, + "Y": 0.7833474278450012 + }, + { + "X": 0.3349529206752777, + "Y": 0.7895026206970215 + }, + { + "X": 0.3035356104373932, + "Y": 0.7895349264144897 + } + ] + }, + "Id": "671a004f-6bc7-41c3-be8a-29ad4b076e9f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.99126434326172, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014288813807070255, + "Height": 0.006088129710406065, + "Left": 0.3382565975189209, + "Top": 0.7833831906318665 + }, + "Polygon": [ + { + "X": 0.3382565975189209, + "Y": 0.783397912979126 + }, + { + "X": 0.35253679752349854, + "Y": 0.7833831906318665 + }, + { + "X": 0.3525454103946686, + "Y": 0.7894566059112549 + }, + { + "X": 0.33826518058776855, + "Y": 0.7894713282585144 + } + ] + }, + "Id": "84433da6-7853-4ffa-9c8b-652eb4bdfc46", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89083099365234, + "Text": "rate", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01726141944527626, + "Height": 0.00554132042452693, + "Left": 0.3561633825302124, + "Top": 0.7838479280471802 + }, + "Polygon": [ + { + "X": 0.3561633825302124, + "Y": 0.783865749835968 + }, + { + "X": 0.373416930437088, + "Y": 0.7838479280471802 + }, + { + "X": 0.37342479825019836, + "Y": 0.7893715500831604 + }, + { + "X": 0.35617122054100037, + "Y": 0.7893892526626587 + } + ] + }, + "Id": "16ada7d0-2a1f-481a-b19d-d49b4e9fdf66", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9773941040039, + "Text": "that", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01741388440132141, + "Height": 0.0060871560126543045, + "Left": 0.376730352640152, + "Top": 0.7833727598190308 + }, + "Polygon": [ + { + "X": 0.376730352640152, + "Y": 0.7833907008171082 + }, + { + "X": 0.3941355347633362, + "Y": 0.7833727598190308 + }, + { + "X": 0.3941442370414734, + "Y": 0.7894420027732849 + }, + { + "X": 0.3767389953136444, + "Y": 0.7894599437713623 + } + ] + }, + "Id": "b661528e-d0bb-4eaf-98a6-cbc781ae1a51", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97726440429688, + "Text": "may", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018641294911503792, + "Height": 0.006111630704253912, + "Left": 0.39787405729293823, + "Top": 0.7845847010612488 + }, + "Polygon": [ + { + "X": 0.39787405729293823, + "Y": 0.7846038937568665 + }, + { + "X": 0.4165065586566925, + "Y": 0.7845847010612488 + }, + { + "X": 0.4165153503417969, + "Y": 0.7906771898269653 + }, + { + "X": 0.3978827893733978, + "Y": 0.7906963229179382 + } + ] + }, + "Id": "51ade705-12e0-4fab-aa30-eaa099895fd4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8055648803711, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010764820501208305, + "Height": 0.006146542262285948, + "Left": 0.41992464661598206, + "Top": 0.7832996249198914 + }, + "Polygon": [ + { + "X": 0.41992464661598206, + "Y": 0.7833107113838196 + }, + { + "X": 0.43068060278892517, + "Y": 0.7832996249198914 + }, + { + "X": 0.4306894838809967, + "Y": 0.789435088634491 + }, + { + "X": 0.4199334979057312, + "Y": 0.7894461154937744 + } + ] + }, + "Id": "f3b2ee54-5d65-4a10-9b1f-17d1401e692c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95777893066406, + "Text": "lawfully", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03549777343869209, + "Height": 0.00772304181009531, + "Left": 0.433898389339447, + "Top": 0.7830578684806824 + }, + "Polygon": [ + { + "X": 0.433898389339447, + "Y": 0.7830944657325745 + }, + { + "X": 0.46938493847846985, + "Y": 0.7830578684806824 + }, + { + "X": 0.46939617395401, + "Y": 0.790744423866272 + }, + { + "X": 0.43390950560569763, + "Y": 0.7907809019088745 + } + ] + }, + "Id": "c3585b1e-2781-4f31-95b1-bad35b226888", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 90.75749969482422, + "Text": "charged,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0377584844827652, + "Height": 0.007640083320438862, + "Left": 0.4728253483772278, + "Top": 0.783081591129303 + }, + "Polygon": [ + { + "X": 0.4728253483772278, + "Y": 0.7831205129623413 + }, + { + "X": 0.510572612285614, + "Y": 0.783081591129303 + }, + { + "X": 0.5105838179588318, + "Y": 0.7906829118728638 + }, + { + "X": 0.4728364646434784, + "Y": 0.7907217144966125 + } + ] + }, + "Id": "2ec20aa1-4692-4e31-ae7a-72b6c7a4c12b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.54159545898438, + "Text": "then", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01955685205757618, + "Height": 0.006142910104244947, + "Left": 0.5143592953681946, + "Top": 0.7831208109855652 + }, + "Polygon": [ + { + "X": 0.5143592953681946, + "Y": 0.7831409573554993 + }, + { + "X": 0.5339070558547974, + "Y": 0.7831208109855652 + }, + { + "X": 0.5339161157608032, + "Y": 0.7892436385154724 + }, + { + "X": 0.5143682956695557, + "Y": 0.7892637252807617 + } + ] + }, + "Id": "9afa3d0a-296e-467b-857f-0335ef67c462", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97111511230469, + "Text": "such", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020799066871404648, + "Height": 0.006097655277699232, + "Left": 0.5372574329376221, + "Top": 0.7831360101699829 + }, + "Polygon": [ + { + "X": 0.5372574329376221, + "Y": 0.7831574082374573 + }, + { + "X": 0.5580474734306335, + "Y": 0.7831360101699829 + }, + { + "X": 0.5580565333366394, + "Y": 0.7892122864723206 + }, + { + "X": 0.5372664332389832, + "Y": 0.7892336845397949 + } + ] + }, + "Id": "e78c3c48-397a-4ae6-9bea-e3475afedfb1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.70571899414062, + "Text": "charges", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03427641838788986, + "Height": 0.007496217265725136, + "Left": 0.5613224506378174, + "Top": 0.7829291224479675 + }, + "Polygon": [ + { + "X": 0.5613224506378174, + "Y": 0.7829644083976746 + }, + { + "X": 0.5955876111984253, + "Y": 0.7829291224479675 + }, + { + "X": 0.5955988764762878, + "Y": 0.790390133857727 + }, + { + "X": 0.5613335967063904, + "Y": 0.7904253602027893 + } + ] + }, + "Id": "8eea0261-603a-4913-9c86-b0aa668d94b5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96380615234375, + "Text": "shall", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020191483199596405, + "Height": 0.00624890299513936, + "Left": 0.598796010017395, + "Top": 0.7828707695007324 + }, + "Polygon": [ + { + "X": 0.598796010017395, + "Y": 0.782891571521759 + }, + { + "X": 0.6189780831336975, + "Y": 0.7828707695007324 + }, + { + "X": 0.618987500667572, + "Y": 0.7890989184379578 + }, + { + "X": 0.5988053679466248, + "Y": 0.7891196608543396 + } + ] + }, + "Id": "05776d75-194a-4cd3-8abb-94fe3aa70f9d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.50675201416016, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010672240518033504, + "Height": 0.006054626777768135, + "Left": 0.6224014163017273, + "Top": 0.7830472588539124 + }, + "Polygon": [ + { + "X": 0.6224014163017273, + "Y": 0.7830582857131958 + }, + { + "X": 0.6330645084381104, + "Y": 0.7830472588539124 + }, + { + "X": 0.6330736875534058, + "Y": 0.7890909314155579 + }, + { + "X": 0.6224105954170227, + "Y": 0.7891018986701965 + } + ] + }, + "Id": "d6316e70-51a1-4f4e-89d0-b9657bde8318", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93965911865234, + "Text": "calculated", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.044786080718040466, + "Height": 0.006245900876820087, + "Left": 0.6362095475196838, + "Top": 0.7828646898269653 + }, + "Polygon": [ + { + "X": 0.6362095475196838, + "Y": 0.7829108238220215 + }, + { + "X": 0.6809861063957214, + "Y": 0.7828646898269653 + }, + { + "X": 0.6809955835342407, + "Y": 0.7890645265579224 + }, + { + "X": 0.6362189650535583, + "Y": 0.7891106009483337 + } + ] + }, + "Id": "444adf7f-ac68-4127-9ca0-0ae3c8b012cc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94786834716797, + "Text": "at", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008682996965944767, + "Height": 0.00564597686752677, + "Left": 0.6843674182891846, + "Top": 0.783439576625824 + }, + "Polygon": [ + { + "X": 0.6843674182891846, + "Y": 0.7834485173225403 + }, + { + "X": 0.6930417418479919, + "Y": 0.783439576625824 + }, + { + "X": 0.6930504441261292, + "Y": 0.7890766859054565 + }, + { + "X": 0.684376060962677, + "Y": 0.7890855669975281 + } + ] + }, + "Id": "bde98dd4-cea8-438e-bcb5-6c62825467e2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97483825683594, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014465649612247944, + "Height": 0.006047450006008148, + "Left": 0.6962982416152954, + "Top": 0.7829225659370422 + }, + "Polygon": [ + { + "X": 0.6962982416152954, + "Y": 0.7829374074935913 + }, + { + "X": 0.7107545733451843, + "Y": 0.7829225659370422 + }, + { + "X": 0.7107638716697693, + "Y": 0.7889550924301147 + }, + { + "X": 0.6963075399398804, + "Y": 0.7889699935913086 + } + ] + }, + "Id": "50cc044f-8c46-4166-bd5c-2911583af85d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95359802246094, + "Text": "highest", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03221716359257698, + "Height": 0.007572779431939125, + "Left": 0.7139781713485718, + "Top": 0.7826603055000305 + }, + "Polygon": [ + { + "X": 0.7139781713485718, + "Y": 0.7826935052871704 + }, + { + "X": 0.7461836338043213, + "Y": 0.7826603055000305 + }, + { + "X": 0.746195375919342, + "Y": 0.7901999950408936 + }, + { + "X": 0.7139898538589478, + "Y": 0.7902330756187439 + } + ] + }, + "Id": "cc121d01-d554-4d0a-827c-1eb96f2dbdad", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86543273925781, + "Text": "lawful", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.027970008552074432, + "Height": 0.006309450138360262, + "Left": 0.7491491436958313, + "Top": 0.7825887799263 + }, + "Polygon": [ + { + "X": 0.7491491436958313, + "Y": 0.7826175689697266 + }, + { + "X": 0.7771093249320984, + "Y": 0.7825887799263 + }, + { + "X": 0.7771191596984863, + "Y": 0.7888694405555725 + }, + { + "X": 0.7491589188575745, + "Y": 0.788898229598999 + } + ] + }, + "Id": "bce5004a-face-4821-9218-ebf018db3b28", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.51545715332031, + "Text": "rate.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020353592932224274, + "Height": 0.0056139701046049595, + "Left": 0.7802160978317261, + "Top": 0.7832815051078796 + }, + "Polygon": [ + { + "X": 0.7802160978317261, + "Y": 0.7833024859428406 + }, + { + "X": 0.8005608320236206, + "Y": 0.7832815051078796 + }, + { + "X": 0.8005696535110474, + "Y": 0.7888745665550232 + }, + { + "X": 0.7802248597145081, + "Y": 0.7888954877853394 + } + ] + }, + "Id": "1c48f093-3ccc-4168-8aad-d5a66b1d10fd", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89823913574219, + "Text": "Parts", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022541064769029617, + "Height": 0.006097354460507631, + "Left": 0.1681510955095291, + "Top": 0.7937016487121582 + }, + "Polygon": [ + { + "X": 0.1681510955095291, + "Y": 0.793724775314331 + }, + { + "X": 0.19068390130996704, + "Y": 0.7937016487121582 + }, + { + "X": 0.19069217145442963, + "Y": 0.7997758984565735 + }, + { + "X": 0.16815932095050812, + "Y": 0.7997990250587463 + } + ] + }, + "Id": "713f30c0-5722-4718-a7a6-0a149dea4506", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97953033447266, + "Text": "must", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022379275411367416, + "Height": 0.005507657770067453, + "Left": 0.19398076832294464, + "Top": 0.794291079044342 + }, + "Polygon": [ + { + "X": 0.19398076832294464, + "Y": 0.7943140864372253 + }, + { + "X": 0.21635253727436066, + "Y": 0.794291079044342 + }, + { + "X": 0.21636004745960236, + "Y": 0.7997758388519287 + }, + { + "X": 0.19398824870586395, + "Y": 0.7997987866401672 + } + ] + }, + "Id": "ca68a50b-8cb0-4ae9-a9db-e70a16ce8e50", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93144226074219, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.011039855889976025, + "Height": 0.005983816459774971, + "Left": 0.21946708858013153, + "Top": 0.7937454581260681 + }, + "Polygon": [ + { + "X": 0.21946708858013153, + "Y": 0.7937567830085754 + }, + { + "X": 0.23049873113632202, + "Y": 0.7937454581260681 + }, + { + "X": 0.23050694167613983, + "Y": 0.7997179627418518 + }, + { + "X": 0.21947528421878815, + "Y": 0.7997292876243591 + } + ] + }, + "Id": "de1058f7-2663-4845-97a3-2b9f8befe444", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.945068359375, + "Text": "in", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.007580141071230173, + "Height": 0.005925566889345646, + "Left": 0.2337130308151245, + "Top": 0.7936223149299622 + }, + "Polygon": [ + { + "X": 0.2337130308151245, + "Y": 0.7936301231384277 + }, + { + "X": 0.24128501117229462, + "Y": 0.7936223149299622 + }, + { + "X": 0.24129317700862885, + "Y": 0.799540102481842 + }, + { + "X": 0.23372116684913635, + "Y": 0.7995479106903076 + } + ] + }, + "Id": "673f35f7-194c-4567-b6d2-928e0b076de3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 95.8568344116211, + "Text": "unaltered,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.044456105679273605, + "Height": 0.007276743650436401, + "Left": 0.24444395303726196, + "Top": 0.7935621738433838 + }, + "Polygon": [ + { + "X": 0.24444395303726196, + "Y": 0.7936078310012817 + }, + { + "X": 0.28888997435569763, + "Y": 0.7935621738433838 + }, + { + "X": 0.2889000475406647, + "Y": 0.8007933497428894 + }, + { + "X": 0.24445393681526184, + "Y": 0.8008389472961426 + } + ] + }, + "Id": "148cb3ec-eef8-4316-9106-af735471cef7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.70901489257812, + "Text": "re-sellable", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0452607199549675, + "Height": 0.006304061505943537, + "Left": 0.2924089729785919, + "Top": 0.7936976552009583 + }, + "Polygon": [ + { + "X": 0.2924089729785919, + "Y": 0.7937441468238831 + }, + { + "X": 0.33766084909439087, + "Y": 0.7936976552009583 + }, + { + "X": 0.33766970038414, + "Y": 0.7999553084373474 + }, + { + "X": 0.2924177050590515, + "Y": 0.8000016808509827 + } + ] + }, + "Id": "ef7ee9ea-2d49-46e9-a66e-f1833a608f98", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87489318847656, + "Text": "condition", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04152369126677513, + "Height": 0.006263457238674164, + "Left": 0.34083402156829834, + "Top": 0.7935301065444946 + }, + "Polygon": [ + { + "X": 0.34083402156829834, + "Y": 0.793572723865509 + }, + { + "X": 0.38234883546829224, + "Y": 0.7935301065444946 + }, + { + "X": 0.38235771656036377, + "Y": 0.7997509837150574 + }, + { + "X": 0.3408428132534027, + "Y": 0.799793541431427 + } + ] + }, + "Id": "a2717298-cb60-4539-b7c1-cf84403b0b62", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98755645751953, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01583511009812355, + "Height": 0.0059802839532494545, + "Left": 0.3855550289154053, + "Top": 0.7936134338378906 + }, + "Polygon": [ + { + "X": 0.3855550289154053, + "Y": 0.7936296463012695 + }, + { + "X": 0.40138158202171326, + "Y": 0.7936134338378906 + }, + { + "X": 0.4013901650905609, + "Y": 0.7995774745941162 + }, + { + "X": 0.38556358218193054, + "Y": 0.7995936870574951 + } + ] + }, + "Id": "9c39a2ba-5e55-400b-a09b-93bf8fdf4071", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.60978698730469, + "Text": "in", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.007790572941303253, + "Height": 0.005955083761364222, + "Left": 0.4047512710094452, + "Top": 0.7936179637908936 + }, + "Polygon": [ + { + "X": 0.4047512710094452, + "Y": 0.7936259508132935 + }, + { + "X": 0.4125332832336426, + "Y": 0.7936179637908936 + }, + { + "X": 0.41254183650016785, + "Y": 0.7995650768280029 + }, + { + "X": 0.40475979447364807, + "Y": 0.7995730638504028 + } + ] + }, + "Id": "435bdd94-f1a8-4742-8879-f53f58df32c4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97679901123047, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014076750725507736, + "Height": 0.006110028829425573, + "Left": 0.41584512591362, + "Top": 0.7935903072357178 + }, + "Polygon": [ + { + "X": 0.41584512591362, + "Y": 0.7936047911643982 + }, + { + "X": 0.4299130439758301, + "Y": 0.7935903072357178 + }, + { + "X": 0.42992186546325684, + "Y": 0.7996858954429626 + }, + { + "X": 0.415853887796402, + "Y": 0.7997003197669983 + } + ] + }, + "Id": "8a26f75d-dbd3-4374-987b-cb1fe08142d2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81756591796875, + "Text": "original", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03251815587282181, + "Height": 0.007628797087818384, + "Left": 0.4329545795917511, + "Top": 0.7935540676116943 + }, + "Polygon": [ + { + "X": 0.4329545795917511, + "Y": 0.7935875058174133 + }, + { + "X": 0.4654616713523865, + "Y": 0.7935540676116943 + }, + { + "X": 0.4654727280139923, + "Y": 0.8011495471000671 + }, + { + "X": 0.43296557664871216, + "Y": 0.8011828660964966 + } + ] + }, + "Id": "e73c4140-48cd-42fb-b81a-837dd1bde395", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 82.90396118164062, + "Text": "packaging,", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04769520089030266, + "Height": 0.007811103947460651, + "Left": 0.46885955333709717, + "Top": 0.7935256958007812 + }, + "Polygon": [ + { + "X": 0.46885955333709717, + "Y": 0.7935746908187866 + }, + { + "X": 0.5165433287620544, + "Y": 0.7935256958007812 + }, + { + "X": 0.5165547728538513, + "Y": 0.8012879490852356 + }, + { + "X": 0.4688708782196045, + "Y": 0.8013368248939514 + } + ] + }, + "Id": "9fcb9b48-7a18-406d-903a-d3ba5f9a6443", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95134735107422, + "Text": "with", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019891075789928436, + "Height": 0.00627415394410491, + "Left": 0.5200797915458679, + "Top": 0.7933052182197571 + }, + "Polygon": [ + { + "X": 0.5200797915458679, + "Y": 0.793325662612915 + }, + { + "X": 0.539961576461792, + "Y": 0.7933052182197571 + }, + { + "X": 0.539970874786377, + "Y": 0.7995589971542358 + }, + { + "X": 0.5200890302658081, + "Y": 0.799579381942749 + } + ] + }, + "Id": "3c8c6476-7d55-4ee2-a7df-6dd0f66d6608", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96478271484375, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014294696040451527, + "Height": 0.006126102991402149, + "Left": 0.5431153774261475, + "Top": 0.7935161590576172 + }, + "Polygon": [ + { + "X": 0.5431153774261475, + "Y": 0.7935308218002319 + }, + { + "X": 0.5574009418487549, + "Y": 0.7935161590576172 + }, + { + "X": 0.5574100613594055, + "Y": 0.7996276021003723 + }, + { + "X": 0.5431244373321533, + "Y": 0.7996422648429871 + } + ] + }, + "Id": "07355e27-b7e2-45eb-b8d8-947bc56cee8e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 62.7199592590332, + "Text": "invoice.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03412812203168869, + "Height": 0.006533470470458269, + "Left": 0.5605540871620178, + "Top": 0.793201744556427 + }, + "Polygon": [ + { + "X": 0.5605540871620178, + "Y": 0.7932367920875549 + }, + { + "X": 0.594672441482544, + "Y": 0.793201744556427 + }, + { + "X": 0.5946821570396423, + "Y": 0.7997002005577087 + }, + { + "X": 0.5605637431144714, + "Y": 0.7997351884841919 + } + ] + }, + "Id": "626111dd-6e82-433d-a018-bba379646ff1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.93040466308594, + "Text": "Restocking/handling", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0899442732334137, + "Height": 0.007822278887033463, + "Left": 0.5981266498565674, + "Top": 0.7931270003318787 + }, + "Polygon": [ + { + "X": 0.5981266498565674, + "Y": 0.7932193875312805 + }, + { + "X": 0.6880590319633484, + "Y": 0.7931270003318787 + }, + { + "X": 0.6880708932876587, + "Y": 0.8008571267127991 + }, + { + "X": 0.5981382727622986, + "Y": 0.8009492754936218 + } + ] + }, + "Id": "a117ea82-a5b6-4f1a-bd2c-93be7c3fb119", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96372985839844, + "Text": "fees", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0185348279774189, + "Height": 0.006269856821745634, + "Left": 0.691382646560669, + "Top": 0.7930997014045715 + }, + "Polygon": [ + { + "X": 0.691382646560669, + "Y": 0.7931187152862549 + }, + { + "X": 0.7099078297615051, + "Y": 0.7930997014045715 + }, + { + "X": 0.7099174857139587, + "Y": 0.7993505597114563 + }, + { + "X": 0.6913923025131226, + "Y": 0.7993695735931396 + } + ] + }, + "Id": "cc881675-73a5-4a54-9380-829a10566c41", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98268127441406, + "Text": "may", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01944505237042904, + "Height": 0.0060564810410141945, + "Left": 0.7130928635597229, + "Top": 0.7944180369377136 + }, + "Polygon": [ + { + "X": 0.7130928635597229, + "Y": 0.7944380044937134 + }, + { + "X": 0.732528567314148, + "Y": 0.7944180369377136 + }, + { + "X": 0.7325379252433777, + "Y": 0.8004546165466309 + }, + { + "X": 0.7131021618843079, + "Y": 0.8004745244979858 + } + ] + }, + "Id": "8fa10817-afb1-40bc-b14e-5b1188d1b973", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.81488037109375, + "Text": "apply.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02683454193174839, + "Height": 0.007401427254080772, + "Left": 0.7357825636863708, + "Top": 0.7931411862373352 + }, + "Polygon": [ + { + "X": 0.7357825636863708, + "Y": 0.7931687235832214 + }, + { + "X": 0.762605607509613, + "Y": 0.7931411862373352 + }, + { + "X": 0.7626171112060547, + "Y": 0.8005151152610779 + }, + { + "X": 0.7357940673828125, + "Y": 0.8005425930023193 + } + ] + }, + "Id": "c66d1788-ca08-4e56-8710-a56df1a475b7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91302490234375, + "Text": "Returns", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.034590210765600204, + "Height": 0.006078788079321384, + "Left": 0.7659714818000793, + "Top": 0.7931510210037231 + }, + "Polygon": [ + { + "X": 0.7659714818000793, + "Y": 0.7931865453720093 + }, + { + "X": 0.8005521297454834, + "Y": 0.7931510210037231 + }, + { + "X": 0.8005616664886475, + "Y": 0.7991943359375 + }, + { + "X": 0.7659808993339539, + "Y": 0.7992298007011414 + } + ] + }, + "Id": "076ec544-02b9-4b60-ad42-ccef6478a7fb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97259521484375, + "Text": "may", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01932300254702568, + "Height": 0.006110047455877066, + "Left": 0.8035846948623657, + "Top": 0.7940785884857178 + }, + "Polygon": [ + { + "X": 0.8035846948623657, + "Y": 0.794098436832428 + }, + { + "X": 0.8228980302810669, + "Y": 0.7940785884857178 + }, + { + "X": 0.8229076862335205, + "Y": 0.8001688122749329 + }, + { + "X": 0.8035942912101746, + "Y": 0.8001886606216431 + } + ] + }, + "Id": "c73c31b0-2c12-4bcf-b5e9-6fe0bc5d32a1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9744644165039, + "Text": "not", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014397023245692253, + "Height": 0.005377849563956261, + "Left": 0.8260378241539001, + "Top": 0.7935884594917297 + }, + "Polygon": [ + { + "X": 0.8260378241539001, + "Y": 0.7936031818389893 + }, + { + "X": 0.8404263257980347, + "Y": 0.7935884594917297 + }, + { + "X": 0.8404348492622375, + "Y": 0.7989515066146851 + }, + { + "X": 0.8260462880134583, + "Y": 0.7989662885665894 + } + ] + }, + "Id": "7f238899-ef44-4cdb-ab0e-3bfe234fdf72", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9013671875, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01076494064182043, + "Height": 0.006023271009325981, + "Left": 0.8433922529220581, + "Top": 0.7929775714874268 + }, + "Polygon": [ + { + "X": 0.8433922529220581, + "Y": 0.7929885983467102 + }, + { + "X": 0.8541476130485535, + "Y": 0.7929775714874268 + }, + { + "X": 0.8541572093963623, + "Y": 0.7989897727966309 + }, + { + "X": 0.8434018492698669, + "Y": 0.7990007996559143 + } + ] + }, + "Id": "745e9d63-e4a5-4358-b79a-d2426a15a2ba", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96717834472656, + "Text": "accepted", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03970111161470413, + "Height": 0.0072953542694449425, + "Left": 0.8575436472892761, + "Top": 0.7927786707878113 + }, + "Polygon": [ + { + "X": 0.8575436472892761, + "Y": 0.7928194403648376 + }, + { + "X": 0.8972330689430237, + "Y": 0.7927786707878113 + }, + { + "X": 0.8972447514533997, + "Y": 0.8000333309173584 + }, + { + "X": 0.8575552105903625, + "Y": 0.80007404088974 + } + ] + }, + "Id": "92ca577e-a131-4c1c-9167-0c2081f25a48", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98067474365234, + "Text": "after", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02116839960217476, + "Height": 0.006104565225541592, + "Left": 0.9005211591720581, + "Top": 0.7927024364471436 + }, + "Polygon": [ + { + "X": 0.9005211591720581, + "Y": 0.7927241325378418 + }, + { + "X": 0.9216797351837158, + "Y": 0.7927024364471436 + }, + { + "X": 0.9216895699501038, + "Y": 0.7987852692604065 + }, + { + "X": 0.900530993938446, + "Y": 0.7988069653511047 + } + ] + }, + "Id": "5e641055-024f-4a2f-9953-70d1ea6a221c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83995056152344, + "Text": "a", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005348030012100935, + "Height": 0.004827684257179499, + "Left": 0.9246692657470703, + "Top": 0.7940688729286194 + }, + "Polygon": [ + { + "X": 0.9246692657470703, + "Y": 0.7940743565559387 + }, + { + "X": 0.9300094842910767, + "Y": 0.7940688729286194 + }, + { + "X": 0.9300172924995422, + "Y": 0.7988910675048828 + }, + { + "X": 0.9246770739555359, + "Y": 0.7988965511322021 + } + ] + }, + "Id": "85c1c71e-31f7-4afc-bb7f-1e48b51e647e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85678100585938, + "Text": "certain", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03020109422504902, + "Height": 0.0060062832199037075, + "Left": 0.16804467141628265, + "Top": 0.8030979633331299 + }, + "Polygon": [ + { + "X": 0.16804467141628265, + "Y": 0.8031288981437683 + }, + { + "X": 0.1982376128435135, + "Y": 0.8030979633331299 + }, + { + "X": 0.19824576377868652, + "Y": 0.8090733885765076 + }, + { + "X": 0.16805274784564972, + "Y": 0.8091042637825012 + } + ] + }, + "Id": "40582c3b-4f99-4544-a996-f67a5fcc6ace", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.110107421875, + "Text": "date.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02232123352587223, + "Height": 0.006105688400566578, + "Left": 0.2012745440006256, + "Top": 0.8030259609222412 + }, + "Polygon": [ + { + "X": 0.2012745440006256, + "Y": 0.8030487895011902 + }, + { + "X": 0.22358742356300354, + "Y": 0.8030259609222412 + }, + { + "X": 0.2235957682132721, + "Y": 0.8091087937355042 + }, + { + "X": 0.20128284394741058, + "Y": 0.8091316223144531 + } + ] + }, + "Id": "de6c466e-ceec-47b8-8321-a06fb73a0872", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83786010742188, + "Text": "Core", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.021388359367847443, + "Height": 0.006228645797818899, + "Left": 0.22716447710990906, + "Top": 0.8028149008750916 + }, + "Polygon": [ + { + "X": 0.22716447710990906, + "Y": 0.8028368353843689 + }, + { + "X": 0.24854426085948944, + "Y": 0.8028149008750916 + }, + { + "X": 0.2485528290271759, + "Y": 0.8090217113494873 + }, + { + "X": 0.22717300057411194, + "Y": 0.8090435862541199 + } + ] + }, + "Id": "016b19d5-f6ba-456d-9eec-9b441120281e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80059051513672, + "Text": "charges", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03479136899113655, + "Height": 0.0075126513838768005, + "Left": 0.2518596649169922, + "Top": 0.8029009699821472 + }, + "Polygon": [ + { + "X": 0.2518596649169922, + "Y": 0.8029365539550781 + }, + { + "X": 0.28664058446884155, + "Y": 0.8029009699821472 + }, + { + "X": 0.28665101528167725, + "Y": 0.8103780150413513 + }, + { + "X": 0.2518700063228607, + "Y": 0.8104135990142822 + } + ] + }, + "Id": "ba8e89bb-7d71-4938-982d-3530f0186c24", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9681396484375, + "Text": "may", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019557267427444458, + "Height": 0.006229646969586611, + "Left": 0.2897774279117584, + "Top": 0.8039755821228027 + }, + "Polygon": [ + { + "X": 0.2897774279117584, + "Y": 0.8039956092834473 + }, + { + "X": 0.3093259632587433, + "Y": 0.8039755821228027 + }, + { + "X": 0.3093346953392029, + "Y": 0.8101851940155029 + }, + { + "X": 0.28978610038757324, + "Y": 0.8102052211761475 + } + ] + }, + "Id": "7f8ffc27-1994-413c-a292-10cf091a4c98", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85884857177734, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01057478878647089, + "Height": 0.006270498502999544, + "Left": 0.3126632869243622, + "Top": 0.8029658794403076 + }, + "Polygon": [ + { + "X": 0.3126632869243622, + "Y": 0.802976667881012 + }, + { + "X": 0.32322925329208374, + "Y": 0.8029658794403076 + }, + { + "X": 0.3232380747795105, + "Y": 0.8092255592346191 + }, + { + "X": 0.31267204880714417, + "Y": 0.8092363476753235 + } + ] + }, + "Id": "e0c04bff-a17c-4fcb-96e9-93af1e2966db", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92626953125, + "Text": "refundable", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04745890945196152, + "Height": 0.006295380648225546, + "Left": 0.3264843821525574, + "Top": 0.8028473854064941 + }, + "Polygon": [ + { + "X": 0.3264843821525574, + "Y": 0.8028960227966309 + }, + { + "X": 0.3739343583583832, + "Y": 0.8028473854064941 + }, + { + "X": 0.3739432692527771, + "Y": 0.809094250202179 + }, + { + "X": 0.32649317383766174, + "Y": 0.8091427683830261 + } + ] + }, + "Id": "f7973462-478c-4bd2-a77b-8c7bcd10aa4c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.6934814453125, + "Text": "up", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.011323878541588783, + "Height": 0.006129942834377289, + "Left": 0.37681707739830017, + "Top": 0.8040176033973694 + }, + "Polygon": [ + { + "X": 0.37681707739830017, + "Y": 0.8040291666984558 + }, + { + "X": 0.3881322145462036, + "Y": 0.8040176033973694 + }, + { + "X": 0.3881409764289856, + "Y": 0.8101359605789185 + }, + { + "X": 0.37682580947875977, + "Y": 0.8101475238800049 + } + ] + }, + "Id": "2f1f7182-8fcc-430b-8b82-20727dba09ec", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95094299316406, + "Text": "to", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008936254307627678, + "Height": 0.005766219459474087, + "Left": 0.3915241062641144, + "Top": 0.8035062551498413 + }, + "Polygon": [ + { + "X": 0.3915241062641144, + "Y": 0.8035154342651367 + }, + { + "X": 0.4004521071910858, + "Y": 0.8035062551498413 + }, + { + "X": 0.4004603624343872, + "Y": 0.8092633485794067 + }, + { + "X": 0.39153236150741577, + "Y": 0.8092724680900574 + } + ] + }, + "Id": "28a9522c-0103-43e8-b075-bb0d1cbc7e09", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8285903930664, + "Text": "a", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0054436782374978065, + "Height": 0.005001704208552837, + "Left": 0.4034912884235382, + "Top": 0.8043462634086609 + }, + "Polygon": [ + { + "X": 0.4034912884235382, + "Y": 0.804351806640625 + }, + { + "X": 0.4089277684688568, + "Y": 0.8043462634086609 + }, + { + "X": 0.40893495082855225, + "Y": 0.8093423843383789 + }, + { + "X": 0.40349844098091125, + "Y": 0.809347927570343 + } + ] + }, + "Id": "6e549967-12e5-4179-a894-df43a5679cc5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91299438476562, + "Text": "certain", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03015075996518135, + "Height": 0.006130005232989788, + "Left": 0.41207537055015564, + "Top": 0.80296790599823 + }, + "Polygon": [ + { + "X": 0.41207537055015564, + "Y": 0.8029987812042236 + }, + { + "X": 0.44221729040145874, + "Y": 0.80296790599823 + }, + { + "X": 0.4422261118888855, + "Y": 0.8090670704841614 + }, + { + "X": 0.4120841324329376, + "Y": 0.809097945690155 + } + ] + }, + "Id": "5c53f703-d53c-4900-aa5f-20822776b8a0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.51915740966797, + "Text": "date.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022365465760231018, + "Height": 0.006204546894878149, + "Left": 0.44520965218544006, + "Top": 0.802929699420929 + }, + "Polygon": [ + { + "X": 0.44520965218544006, + "Y": 0.8029525876045227 + }, + { + "X": 0.4675661027431488, + "Y": 0.802929699420929 + }, + { + "X": 0.4675751030445099, + "Y": 0.8091113567352295 + }, + { + "X": 0.44521862268447876, + "Y": 0.8091342449188232 + } + ] + }, + "Id": "64a97f6f-0872-4ee5-94d6-dffa02640b70", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87902069091797, + "Text": "Full", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01577775925397873, + "Height": 0.006245690397918224, + "Left": 0.4711437225341797, + "Top": 0.802607536315918 + }, + "Polygon": [ + { + "X": 0.4711437225341797, + "Y": 0.8026236891746521 + }, + { + "X": 0.4869123697280884, + "Y": 0.802607536315918 + }, + { + "X": 0.486921489238739, + "Y": 0.8088371157646179 + }, + { + "X": 0.4711528420448303, + "Y": 0.8088532090187073 + } + ] + }, + "Id": "6ddd0296-81a2-4358-8bce-76e2b1500359", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88028717041016, + "Text": "details", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.028741242364048958, + "Height": 0.006141558289527893, + "Left": 0.4899757504463196, + "Top": 0.8028102517127991 + }, + "Polygon": [ + { + "X": 0.4899757504463196, + "Y": 0.8028396368026733 + }, + { + "X": 0.5187079310417175, + "Y": 0.8028102517127991 + }, + { + "X": 0.5187169909477234, + "Y": 0.8089224100112915 + }, + { + "X": 0.4899846911430359, + "Y": 0.8089517951011658 + } + ] + }, + "Id": "dcbe2d22-d7ef-4844-8c8e-d29976a7b5f9", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89178466796875, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.008839608170092106, + "Height": 0.006234337575733662, + "Left": 0.5220238566398621, + "Top": 0.8026897311210632 + }, + "Polygon": [ + { + "X": 0.5220238566398621, + "Y": 0.8026987910270691 + }, + { + "X": 0.5308542847633362, + "Y": 0.8026897311210632 + }, + { + "X": 0.5308634638786316, + "Y": 0.8089150786399841 + }, + { + "X": 0.5220330953598022, + "Y": 0.8089240789413452 + } + ] + }, + "Id": "d1e4923f-5f6d-4f00-b2c9-5c6d5f6a518e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.52550506591797, + "Text": "our", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01441294327378273, + "Height": 0.005012874025851488, + "Left": 0.5342311263084412, + "Top": 0.8039253950119019 + }, + "Polygon": [ + { + "X": 0.5342311263084412, + "Y": 0.8039401769638062 + }, + { + "X": 0.5486366152763367, + "Y": 0.8039253950119019 + }, + { + "X": 0.5486440658569336, + "Y": 0.8089235424995422 + }, + { + "X": 0.5342385172843933, + "Y": 0.8089383244514465 + } + ] + }, + "Id": "0fc2efb9-d7ac-4906-8857-fc2983d7364f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.18644714355469, + "Text": "LKQ", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019032500684261322, + "Height": 0.006170821376144886, + "Left": 0.5517154932022095, + "Top": 0.8026936054229736 + }, + "Polygon": [ + { + "X": 0.5517154932022095, + "Y": 0.8027130961418152 + }, + { + "X": 0.5707387924194336, + "Y": 0.8026936054229736 + }, + { + "X": 0.570747971534729, + "Y": 0.8088449835777283 + }, + { + "X": 0.5517246127128601, + "Y": 0.808864414691925 + } + ] + }, + "Id": "1e8b231c-6d45-4a07-9b0d-a2b50812501a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94461822509766, + "Text": "Return", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029235560446977615, + "Height": 0.006085097789764404, + "Left": 0.5744814276695251, + "Top": 0.8026310801506042 + }, + "Polygon": [ + { + "X": 0.5744814276695251, + "Y": 0.8026610612869263 + }, + { + "X": 0.6037078499794006, + "Y": 0.8026310801506042 + }, + { + "X": 0.6037169694900513, + "Y": 0.8086863160133362 + }, + { + "X": 0.574490487575531, + "Y": 0.8087161779403687 + } + ] + }, + "Id": "251d262a-c1ae-4b24-93e5-4bcca88948f4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93717956542969, + "Text": "Policy", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02665628306567669, + "Height": 0.0073382193222641945, + "Left": 0.6071747541427612, + "Top": 0.802462100982666 + }, + "Polygon": [ + { + "X": 0.6071747541427612, + "Y": 0.8024893999099731 + }, + { + "X": 0.6338199377059937, + "Y": 0.802462100982666 + }, + { + "X": 0.6338310241699219, + "Y": 0.8097730875015259 + }, + { + "X": 0.6071857810020447, + "Y": 0.8098003268241882 + } + ] + }, + "Id": "946b5bc0-db48-4cd2-9486-effe9a6f04c1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98865509033203, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016141420230269432, + "Height": 0.006204570643603802, + "Left": 0.6370257139205933, + "Top": 0.8025349378585815 + }, + "Polygon": [ + { + "X": 0.6370257139205933, + "Y": 0.8025514483451843 + }, + { + "X": 0.6531577110290527, + "Y": 0.8025349378585815 + }, + { + "X": 0.6531671285629272, + "Y": 0.808722972869873 + }, + { + "X": 0.637035071849823, + "Y": 0.8087394833564758 + } + ] + }, + "Id": "405ec34f-5f90-4116-8d1b-c4fcfc3e8be3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93317413330078, + "Text": "Other", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025272734463214874, + "Height": 0.006260613910853863, + "Left": 0.6565788984298706, + "Top": 0.8024387359619141 + }, + "Polygon": [ + { + "X": 0.6565788984298706, + "Y": 0.8024646639823914 + }, + { + "X": 0.681842029094696, + "Y": 0.8024387359619141 + }, + { + "X": 0.6818516254425049, + "Y": 0.8086735606193542 + }, + { + "X": 0.6565883755683899, + "Y": 0.808699369430542 + } + ] + }, + "Id": "388b94b6-2ef8-462d-bb9f-435151252d18", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8658447265625, + "Text": "Terms", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.028473416343331337, + "Height": 0.0061780414544045925, + "Left": 0.6850962042808533, + "Top": 0.8024333119392395 + }, + "Polygon": [ + { + "X": 0.6850962042808533, + "Y": 0.8024625182151794 + }, + { + "X": 0.7135601043701172, + "Y": 0.8024333119392395 + }, + { + "X": 0.7135695815086365, + "Y": 0.8085822463035583 + }, + { + "X": 0.6851056218147278, + "Y": 0.8086113929748535 + } + ] + }, + "Id": "2b3b6ba9-b029-4b96-b254-f00097b3f74a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.73880004882812, + "Text": "&", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0067198327742516994, + "Height": 0.00616194074973464, + "Left": 0.7170406579971313, + "Top": 0.8024846911430359 + }, + "Polygon": [ + { + "X": 0.7170406579971313, + "Y": 0.8024916052818298 + }, + { + "X": 0.7237509489059448, + "Y": 0.8024846911430359 + }, + { + "X": 0.7237604856491089, + "Y": 0.8086397647857666 + }, + { + "X": 0.7170501947402954, + "Y": 0.8086466789245605 + } + ] + }, + "Id": "8c8eeafd-7b49-4db4-abfc-439e6eb79cc7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.66345977783203, + "Text": "Conditions", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04844600334763527, + "Height": 0.0061585064977407455, + "Left": 0.7270286679267883, + "Top": 0.8023227453231812 + }, + "Polygon": [ + { + "X": 0.7270286679267883, + "Y": 0.8023723363876343 + }, + { + "X": 0.7754650712013245, + "Y": 0.8023227453231812 + }, + { + "X": 0.7754746675491333, + "Y": 0.8084316849708557 + }, + { + "X": 0.7270380854606628, + "Y": 0.8084812164306641 + } + ] + }, + "Id": "69595fa9-4c4d-486a-8c8a-d3f8ec9d97e0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94011688232422, + "Text": "applicable", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.043988507241010666, + "Height": 0.007021912839263678, + "Left": 0.7785533666610718, + "Top": 0.8023867011070251 + }, + "Polygon": [ + { + "X": 0.7785533666610718, + "Y": 0.8024317622184753 + }, + { + "X": 0.8225308060646057, + "Y": 0.8023867011070251 + }, + { + "X": 0.8225418329238892, + "Y": 0.8093636631965637 + }, + { + "X": 0.7785642743110657, + "Y": 0.8094086647033691 + } + ] + }, + "Id": "19efbf87-2f99-4b96-a616-69989893736a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92430114746094, + "Text": "to", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009024390019476414, + "Height": 0.005559408105909824, + "Left": 0.8256852626800537, + "Top": 0.8027386665344238 + }, + "Polygon": [ + { + "X": 0.8256852626800537, + "Y": 0.802747905254364 + }, + { + "X": 0.8347008228302002, + "Y": 0.8027386665344238 + }, + { + "X": 0.834709644317627, + "Y": 0.8082888722419739 + }, + { + "X": 0.8256940245628357, + "Y": 0.8082980513572693 + } + ] + }, + "Id": "b16059c0-253d-4795-be96-49f71a2d70ef", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89739227294922, + "Text": "your", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020180491730570793, + "Height": 0.006129291839897633, + "Left": 0.8377556800842285, + "Top": 0.8032733201980591 + }, + "Polygon": [ + { + "X": 0.8377556800842285, + "Y": 0.8032940030097961 + }, + { + "X": 0.8579264283180237, + "Y": 0.8032733201980591 + }, + { + "X": 0.8579361438751221, + "Y": 0.8093819618225098 + }, + { + "X": 0.8377653956413269, + "Y": 0.809402585029602 + } + ] + }, + "Id": "ab431b01-17f0-42e3-b639-f71e1e7e78d0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92079162597656, + "Text": "purchase", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04036539047956467, + "Height": 0.006886178161948919, + "Left": 0.8611335754394531, + "Top": 0.802374541759491 + }, + "Polygon": [ + { + "X": 0.8611335754394531, + "Y": 0.8024159073829651 + }, + { + "X": 0.9014879465103149, + "Y": 0.802374541759491 + }, + { + "X": 0.9014989733695984, + "Y": 0.809219479560852 + }, + { + "X": 0.8611445426940918, + "Y": 0.8092607259750366 + } + ] + }, + "Id": "e15dfec8-2c53-4fa5-9a29-b2901cbb80bb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.90625, + "Text": "can", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01583258993923664, + "Height": 0.004856356885284185, + "Left": 0.9043748378753662, + "Top": 0.8031942844390869 + }, + "Polygon": [ + { + "X": 0.9043748378753662, + "Y": 0.8032104969024658 + }, + { + "X": 0.9201995730400085, + "Y": 0.8031942844390869 + }, + { + "X": 0.9202073812484741, + "Y": 0.8080344200134277 + }, + { + "X": 0.9043826460838318, + "Y": 0.8080506324768066 + } + ] + }, + "Id": "41d57d3b-10ab-47ea-b402-316958aa05f1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93260192871094, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010706243105232716, + "Height": 0.00593543192371726, + "Left": 0.9231933355331421, + "Top": 0.8020059466362 + }, + "Polygon": [ + { + "X": 0.9231933355331421, + "Y": 0.8020169138908386 + }, + { + "X": 0.9338899254798889, + "Y": 0.8020059466362 + }, + { + "X": 0.9338995814323425, + "Y": 0.8079304099082947 + }, + { + "X": 0.9232029318809509, + "Y": 0.8079413771629333 + } + ] + }, + "Id": "becf3f60-72d5-4983-8f13-2df10b44307d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95970153808594, + "Text": "found", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02498510293662548, + "Height": 0.006023562513291836, + "Left": 0.16841235756874084, + "Top": 0.8120630383491516 + }, + "Polygon": [ + { + "X": 0.16841235756874084, + "Y": 0.8120885491371155 + }, + { + "X": 0.19338928163051605, + "Y": 0.8120630383491516 + }, + { + "X": 0.19339746236801147, + "Y": 0.818061113357544 + }, + { + "X": 0.1684204638004303, + "Y": 0.818086564540863 + } + ] + }, + "Id": "753fd08d-495d-4685-90af-6733199a7100", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.6294174194336, + "Text": "here:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022866837680339813, + "Height": 0.0058844974264502525, + "Left": 0.19645728170871735, + "Top": 0.8121156692504883 + }, + "Polygon": [ + { + "X": 0.19645728170871735, + "Y": 0.8121390342712402 + }, + { + "X": 0.21931608021259308, + "Y": 0.8121156692504883 + }, + { + "X": 0.21932412683963776, + "Y": 0.8179768919944763 + }, + { + "X": 0.19646526873111725, + "Y": 0.8180001974105835 + } + ] + }, + "Id": "7904a4b9-201b-407e-b1c8-8238a8ac9887", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 66.70558166503906, + "Text": "https://www.lkgcorp.com/LKQ-terms-and-conditions", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.23910987377166748, + "Height": 0.007296058814972639, + "Left": 0.22103534638881683, + "Top": 0.8118511438369751 + }, + "Polygon": [ + { + "X": 0.22103534638881683, + "Y": 0.8120954632759094 + }, + { + "X": 0.46013495326042175, + "Y": 0.8118511438369751 + }, + { + "X": 0.4601452350616455, + "Y": 0.8189033269882202 + }, + { + "X": 0.22104501724243164, + "Y": 0.8191471695899963 + } + ] + }, + "Id": "e45c4035-71ec-4858-90b3-c6614fb693d2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.48046875, + "Text": "Keystone", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04204549267888069, + "Height": 0.007190844044089317, + "Left": 0.045436300337314606, + "Top": 0.8191038370132446 + }, + "Polygon": [ + { + "X": 0.045436300337314606, + "Y": 0.8191467523574829 + }, + { + "X": 0.0874723270535469, + "Y": 0.8191038370132446 + }, + { + "X": 0.087481789290905, + "Y": 0.8262519240379333 + }, + { + "X": 0.04544566199183464, + "Y": 0.8262947201728821 + } + ] + }, + "Id": "724a792f-25b8-44a0-84e9-6a7252bc2783", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87904357910156, + "Text": "Refund", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03128574788570404, + "Height": 0.006271280348300934, + "Left": 0.09053414314985275, + "Top": 0.8189661502838135 + }, + "Polygon": [ + { + "X": 0.09053414314985275, + "Y": 0.8189980387687683 + }, + { + "X": 0.12181154638528824, + "Y": 0.8189661502838135 + }, + { + "X": 0.1218198910355568, + "Y": 0.8252055644989014 + }, + { + "X": 0.09054241329431534, + "Y": 0.8252373933792114 + } + ] + }, + "Id": "ae1ecf85-59c9-4789-b164-4b0dacb31ae0", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.85958862304688, + "Text": "Policy:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.029313959181308746, + "Height": 0.0075559732504189014, + "Left": 0.12493579834699631, + "Top": 0.8189964890480042 + }, + "Polygon": [ + { + "X": 0.12493579834699631, + "Y": 0.8190264105796814 + }, + { + "X": 0.15423960983753204, + "Y": 0.8189964890480042 + }, + { + "X": 0.15424975752830505, + "Y": 0.8265226483345032 + }, + { + "X": 0.12494587153196335, + "Y": 0.8265525102615356 + } + ] + }, + "Id": "f0fbeba4-5a26-4bac-8d90-dc51b12f7e45", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.88507843017578, + "Text": "Cash", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02259264700114727, + "Height": 0.006079781800508499, + "Left": 0.16810496151447296, + "Top": 0.8191158175468445 + }, + "Polygon": [ + { + "X": 0.16810496151447296, + "Y": 0.8191388249397278 + }, + { + "X": 0.190689355134964, + "Y": 0.8191158175468445 + }, + { + "X": 0.19069761037826538, + "Y": 0.8251726031303406 + }, + { + "X": 0.16811315715312958, + "Y": 0.8251956105232239 + } + ] + }, + "Id": "261a6ec3-537c-43db-b571-f1863412870b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.28972625732422, + "Text": "purchases", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04491719231009483, + "Height": 0.007037242408841848, + "Left": 0.19359801709651947, + "Top": 0.81943279504776 + }, + "Polygon": [ + { + "X": 0.19359801709651947, + "Y": 0.8194786310195923 + }, + { + "X": 0.23850557208061218, + "Y": 0.81943279504776 + }, + { + "X": 0.2385152131319046, + "Y": 0.8264243602752686 + }, + { + "X": 0.19360753893852234, + "Y": 0.8264700770378113 + } + ] + }, + "Id": "55175691-10d7-4174-bd37-0964c044ba71", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96028900146484, + "Text": "returned", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03761284053325653, + "Height": 0.005705901421606541, + "Left": 0.24174197018146515, + "Top": 0.819678008556366 + }, + "Polygon": [ + { + "X": 0.24174197018146515, + "Y": 0.8197163343429565 + }, + { + "X": 0.27934691309928894, + "Y": 0.819678008556366 + }, + { + "X": 0.2793548107147217, + "Y": 0.8253456354141235 + }, + { + "X": 0.24174979329109192, + "Y": 0.8253839015960693 + } + ] + }, + "Id": "c31b347f-b23a-4c3d-a9f9-bc09dfefc53b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91838836669922, + "Text": "on", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01140629779547453, + "Height": 0.004750478081405163, + "Left": 0.2826596200466156, + "Top": 0.8207018375396729 + }, + "Polygon": [ + { + "X": 0.2826596200466156, + "Y": 0.8207134008407593 + }, + { + "X": 0.29405927658081055, + "Y": 0.8207018375396729 + }, + { + "X": 0.2940658926963806, + "Y": 0.8254407048225403 + }, + { + "X": 0.2826662063598633, + "Y": 0.8254522681236267 + } + ] + }, + "Id": "900e2bc4-85b7-4296-9b32-09989657129e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97675323486328, + "Text": "the", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.014479775913059711, + "Height": 0.005740339867770672, + "Left": 0.29700368642807007, + "Top": 0.8197022080421448 + }, + "Polygon": [ + { + "X": 0.29700368642807007, + "Y": 0.8197169303894043 + }, + { + "X": 0.3114754259586334, + "Y": 0.8197022080421448 + }, + { + "X": 0.3114834725856781, + "Y": 0.8254278302192688 + }, + { + "X": 0.29701170325279236, + "Y": 0.8254425525665283 + } + ] + }, + "Id": "c226a502-9ec4-49d5-a64b-3e9367c4a2bc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9087142944336, + "Text": "same", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.024081796407699585, + "Height": 0.004903014283627272, + "Left": 0.3145281970500946, + "Top": 0.8204542398452759 + }, + "Polygon": [ + { + "X": 0.3145281970500946, + "Y": 0.8204787969589233 + }, + { + "X": 0.33860310912132263, + "Y": 0.8204542398452759 + }, + { + "X": 0.3386099934577942, + "Y": 0.825332760810852 + }, + { + "X": 0.3145350515842438, + "Y": 0.8253572583198547 + } + ] + }, + "Id": "80eb2963-6ddc-42e3-83e3-71db55056825", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95745086669922, + "Text": "day", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01650216430425644, + "Height": 0.0071241408586502075, + "Left": 0.3414810001850128, + "Top": 0.8194490671157837 + }, + "Polygon": [ + { + "X": 0.3414810001850128, + "Y": 0.8194658756256104 + }, + { + "X": 0.3579730689525604, + "Y": 0.8194490671157837 + }, + { + "X": 0.35798317193984985, + "Y": 0.826556384563446 + }, + { + "X": 0.34149104356765747, + "Y": 0.8265731930732727 + } + ] + }, + "Id": "c13f36ce-7a65-4576-a0ce-8569a1951205", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94660949707031, + "Text": "as", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009753950871527195, + "Height": 0.00493616983294487, + "Left": 0.36118850111961365, + "Top": 0.8204596638679504 + }, + "Polygon": [ + { + "X": 0.36118850111961365, + "Y": 0.8204695582389832 + }, + { + "X": 0.3709354102611542, + "Y": 0.8204596638679504 + }, + { + "X": 0.37094244360923767, + "Y": 0.8253858685493469 + }, + { + "X": 0.36119550466537476, + "Y": 0.8253958225250244 + } + ] + }, + "Id": "2d914ffa-a824-4b3c-a942-43948e6755e8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86793518066406, + "Text": "delivered", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04067273810505867, + "Height": 0.00628936430439353, + "Left": 0.3741007447242737, + "Top": 0.8191632628440857 + }, + "Polygon": [ + { + "X": 0.3741007447242737, + "Y": 0.8192047476768494 + }, + { + "X": 0.4147644639015198, + "Y": 0.8191632628440857 + }, + { + "X": 0.41477346420288086, + "Y": 0.8254112601280212 + }, + { + "X": 0.3741096258163452, + "Y": 0.8254526257514954 + } + ] + }, + "Id": "4f361a1d-256a-450d-90c5-5cceaae1e73e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87581634521484, + "Text": "will", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016012145206332207, + "Height": 0.0059882099740207195, + "Left": 0.41773733496665955, + "Top": 0.819325864315033 + }, + "Polygon": [ + { + "X": 0.41773733496665955, + "Y": 0.8193421959877014 + }, + { + "X": 0.43374085426330566, + "Y": 0.819325864315033 + }, + { + "X": 0.4337494969367981, + "Y": 0.8252978324890137 + }, + { + "X": 0.4177459478378296, + "Y": 0.8253141045570374 + } + ] + }, + "Id": "cb15c8a8-d9d7-4568-80a7-6798c1518e4d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.83708190917969, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010639320127665997, + "Height": 0.00588894123211503, + "Left": 0.4367939531803131, + "Top": 0.8194252848625183 + }, + "Polygon": [ + { + "X": 0.4367939531803131, + "Y": 0.8194361329078674 + }, + { + "X": 0.4474247395992279, + "Y": 0.8194252848625183 + }, + { + "X": 0.4474332630634308, + "Y": 0.8253033757209778 + }, + { + "X": 0.4368024468421936, + "Y": 0.8253142237663269 + } + ] + }, + "Id": "efc4323a-b279-481e-b2c6-d0217015baa2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94493103027344, + "Text": "refunded", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03939519822597504, + "Height": 0.0061113182455301285, + "Left": 0.4505082964897156, + "Top": 0.8191932439804077 + }, + "Polygon": [ + { + "X": 0.4505082964897156, + "Y": 0.8192334175109863 + }, + { + "X": 0.4898945987224579, + "Y": 0.8191932439804077 + }, + { + "X": 0.4899035096168518, + "Y": 0.8252645134925842 + }, + { + "X": 0.45051711797714233, + "Y": 0.8253045678138733 + } + ] + }, + "Id": "7c6ec921-41dc-403a-9b52-f9979371bb1e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95260620117188, + "Text": "by", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010845665819942951, + "Height": 0.007156290579587221, + "Left": 0.4932173490524292, + "Top": 0.819122314453125 + }, + "Polygon": [ + { + "X": 0.4932173490524292, + "Y": 0.8191333413124084 + }, + { + "X": 0.504052460193634, + "Y": 0.819122314453125 + }, + { + "X": 0.5040630102157593, + "Y": 0.8262676000595093 + }, + { + "X": 0.4932278096675873, + "Y": 0.8262786269187927 + } + ] + }, + "Id": "f113cb16-ecc1-4a1a-ba06-c955a1b8a7ef", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.3407974243164, + "Text": "your", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020114196464419365, + "Height": 0.006155974231660366, + "Left": 0.5073251128196716, + "Top": 0.8203432559967041 + }, + "Polygon": [ + { + "X": 0.5073251128196716, + "Y": 0.8203637599945068 + }, + { + "X": 0.5274302363395691, + "Y": 0.8203432559967041 + }, + { + "X": 0.527439296245575, + "Y": 0.8264787793159485 + }, + { + "X": 0.5073341131210327, + "Y": 0.8264992237091064 + } + ] + }, + "Id": "594ce0a7-cece-474f-9f05-3f35fda0122c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86101531982422, + "Text": "local", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020627809688448906, + "Height": 0.006014344748109579, + "Left": 0.5303813219070435, + "Top": 0.8191543817520142 + }, + "Polygon": [ + { + "X": 0.5303813219070435, + "Y": 0.8191753625869751 + }, + { + "X": 0.55100017786026, + "Y": 0.8191543817520142 + }, + { + "X": 0.5510091185569763, + "Y": 0.8251476883888245 + }, + { + "X": 0.5303901433944702, + "Y": 0.8251687288284302 + } + ] + }, + "Id": "94c7eb65-e779-426f-9812-27efc86ee2a4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 69.98869323730469, + "Text": "branch", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.033214371651411057, + "Height": 0.005958888214081526, + "Left": 0.5538509488105774, + "Top": 0.819159984588623 + }, + "Polygon": [ + { + "X": 0.5538509488105774, + "Y": 0.8191938400268555 + }, + { + "X": 0.5870564579963684, + "Y": 0.819159984588623 + }, + { + "X": 0.5870653390884399, + "Y": 0.8250850439071655 + }, + { + "X": 0.5538597702980042, + "Y": 0.8251188397407532 + } + ] + }, + "Id": "a5e7dde0-be89-4960-8a91-1b1437b2f00e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.60476684570312, + "Text": "All", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.011871333234012127, + "Height": 0.005888441577553749, + "Left": 0.5908090472221375, + "Top": 0.8188715577125549 + }, + "Polygon": [ + { + "X": 0.5908090472221375, + "Y": 0.8188836574554443 + }, + { + "X": 0.6026715040206909, + "Y": 0.8188715577125549 + }, + { + "X": 0.6026803851127625, + "Y": 0.8247479200363159 + }, + { + "X": 0.5908178687095642, + "Y": 0.8247599601745605 + } + ] + }, + "Id": "1f48bf99-f800-40b0-aa2f-d870691e3c7f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89789581298828, + "Text": "other", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02339995838701725, + "Height": 0.006053562741726637, + "Left": 0.6056957840919495, + "Top": 0.8190310001373291 + }, + "Polygon": [ + { + "X": 0.6056957840919495, + "Y": 0.8190548419952393 + }, + { + "X": 0.6290866136550903, + "Y": 0.8190310001373291 + }, + { + "X": 0.629095733165741, + "Y": 0.8250607252120972 + }, + { + "X": 0.6057049036026001, + "Y": 0.8250845670700073 + } + ] + }, + "Id": "004e2bc8-588f-44c6-a04a-1b8e07039667", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95260620117188, + "Text": "refunds", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03376854956150055, + "Height": 0.006044445559382439, + "Left": 0.6322681307792664, + "Top": 0.8189841508865356 + }, + "Polygon": [ + { + "X": 0.6322681307792664, + "Y": 0.819018542766571 + }, + { + "X": 0.6660275459289551, + "Y": 0.8189841508865356 + }, + { + "X": 0.6660367250442505, + "Y": 0.8249942064285278 + }, + { + "X": 0.632277250289917, + "Y": 0.8250285387039185 + } + ] + }, + "Id": "875bd401-586e-4427-90ce-178c7d7f8823", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84513854980469, + "Text": "will", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.015927981585264206, + "Height": 0.00598833616822958, + "Left": 0.6691151857376099, + "Top": 0.819044291973114 + }, + "Polygon": [ + { + "X": 0.6691151857376099, + "Y": 0.8190605044364929 + }, + { + "X": 0.6850339770317078, + "Y": 0.819044291973114 + }, + { + "X": 0.6850431561470032, + "Y": 0.825016438961029 + }, + { + "X": 0.6691243052482605, + "Y": 0.825032651424408 + } + ] + }, + "Id": "5c841a42-0f6e-433b-9407-2f4ddb89a55b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80914306640625, + "Text": "be", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010790897533297539, + "Height": 0.005963467061519623, + "Left": 0.6881105303764343, + "Top": 0.8188479542732239 + }, + "Polygon": [ + { + "X": 0.6881105303764343, + "Y": 0.8188589215278625 + }, + { + "X": 0.6988922357559204, + "Y": 0.8188479542732239 + }, + { + "X": 0.6989014148712158, + "Y": 0.824800431728363 + }, + { + "X": 0.688119649887085, + "Y": 0.8248113989830017 + } + ] + }, + "Id": "ed46ffbc-36aa-4f9d-80e2-dd8e230c7fe6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91776275634766, + "Text": "processed", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.045024264603853226, + "Height": 0.007209897041320801, + "Left": 0.7021187543869019, + "Top": 0.8188018798828125 + }, + "Polygon": [ + { + "X": 0.7021187543869019, + "Y": 0.8188477754592896 + }, + { + "X": 0.747131884098053, + "Y": 0.8188018798828125 + }, + { + "X": 0.747143030166626, + "Y": 0.8259660005569458 + }, + { + "X": 0.7021297812461853, + "Y": 0.8260117769241333 + } + ] + }, + "Id": "8e751ba9-a075-485d-94fb-38043aef16fc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97257232666016, + "Text": "by", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010938984341919422, + "Height": 0.007086639758199453, + "Left": 0.7504957914352417, + "Top": 0.8189783692359924 + }, + "Polygon": [ + { + "X": 0.7504957914352417, + "Y": 0.8189895153045654 + }, + { + "X": 0.7614237666130066, + "Y": 0.8189783692359924 + }, + { + "X": 0.76143479347229, + "Y": 0.8260538578033447 + }, + { + "X": 0.7505068182945251, + "Y": 0.8260650038719177 + } + ] + }, + "Id": "8aea646f-82ae-4535-91e2-ec8e4ca8901b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.64273071289062, + "Text": "Keystone", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04183940961956978, + "Height": 0.00713328504934907, + "Left": 0.7648110389709473, + "Top": 0.8186559677124023 + }, + "Polygon": [ + { + "X": 0.7648110389709473, + "Y": 0.8186986446380615 + }, + { + "X": 0.8066392540931702, + "Y": 0.8186559677124023 + }, + { + "X": 0.8066504597663879, + "Y": 0.8257467150688171 + }, + { + "X": 0.7648221254348755, + "Y": 0.8257892727851868 + } + ] + }, + "Id": "0631690a-3c86-462c-8237-71502ac29820", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97886657714844, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016025707125663757, + "Height": 0.005977763794362545, + "Left": 0.8096104264259338, + "Top": 0.8185149431228638 + }, + "Polygon": [ + { + "X": 0.8096104264259338, + "Y": 0.8185312747955322 + }, + { + "X": 0.8256266713142395, + "Y": 0.8185149431228638 + }, + { + "X": 0.8256361484527588, + "Y": 0.824476420879364 + }, + { + "X": 0.8096198439598083, + "Y": 0.8244927525520325 + } + ] + }, + "Id": "415d09f7-63d9-4027-962b-8c76dbac310e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86935424804688, + "Text": "sent", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019087210297584534, + "Height": 0.005320193711668253, + "Left": 0.8283778429031372, + "Top": 0.8193084001541138 + }, + "Polygon": [ + { + "X": 0.8283778429031372, + "Y": 0.8193278908729553 + }, + { + "X": 0.8474565744400024, + "Y": 0.8193084001541138 + }, + { + "X": 0.8474650382995605, + "Y": 0.8246092200279236 + }, + { + "X": 0.8283862471580505, + "Y": 0.8246285915374756 + } + ] + }, + "Id": "46292201-73ca-42c1-a3b5-bdb8ec76b82e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.22815704345703, + "Text": "via", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01333772111684084, + "Height": 0.006025337148457766, + "Left": 0.85024493932724, + "Top": 0.8184722065925598 + }, + "Polygon": [ + { + "X": 0.85024493932724, + "Y": 0.8184857964515686 + }, + { + "X": 0.8635730743408203, + "Y": 0.8184722065925598 + }, + { + "X": 0.8635826706886292, + "Y": 0.8244839906692505 + }, + { + "X": 0.8502545356750488, + "Y": 0.8244975805282593 + } + ] + }, + "Id": "6a3b581f-72ca-4966-b5d3-ad31a1a60f31", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.77603912353516, + "Text": "U.S.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.019123747944831848, + "Height": 0.006179383955895901, + "Left": 0.8668920993804932, + "Top": 0.8182682394981384 + }, + "Polygon": [ + { + "X": 0.8668920993804932, + "Y": 0.81828773021698 + }, + { + "X": 0.8860059976577759, + "Y": 0.8182682394981384 + }, + { + "X": 0.8860158920288086, + "Y": 0.8244282007217407 + }, + { + "X": 0.8669019937515259, + "Y": 0.8244476318359375 + } + ] + }, + "Id": "fea0c08f-fccd-45ef-af32-17a566014ed4", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.67988586425781, + "Text": "mail", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.018603641539812088, + "Height": 0.00596228800714016, + "Left": 0.8896126747131348, + "Top": 0.8183243274688721 + }, + "Polygon": [ + { + "X": 0.8896126747131348, + "Y": 0.8183433413505554 + }, + { + "X": 0.9082067012786865, + "Y": 0.8183243274688721 + }, + { + "X": 0.9082162976264954, + "Y": 0.8242676854133606 + }, + { + "X": 0.8896222114562988, + "Y": 0.8242866396903992 + } + ] + }, + "Id": "662d70ff-c47f-49f0-a9f6-f2aba2088c8c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86322021484375, + "Text": "within", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.028155284002423286, + "Height": 0.005946302320808172, + "Left": 0.16809578239917755, + "Top": 0.8282124996185303 + }, + "Polygon": [ + { + "X": 0.16809578239917755, + "Y": 0.8282411694526672 + }, + { + "X": 0.19624300301074982, + "Y": 0.8282124996185303 + }, + { + "X": 0.1962510645389557, + "Y": 0.8341302275657654 + }, + { + "X": 0.16810378432273865, + "Y": 0.8341588377952576 + } + ] + }, + "Id": "f67eee7b-c4d1-4abe-9eb7-c4109e4a4fd1", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.61259460449219, + "Text": "7", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.005846244283020496, + "Height": 0.005759651307016611, + "Left": 0.19948552548885345, + "Top": 0.8282628655433655 + }, + "Polygon": [ + { + "X": 0.19948552548885345, + "Y": 0.8282687664031982 + }, + { + "X": 0.20532390475273132, + "Y": 0.8282628655433655 + }, + { + "X": 0.20533177256584167, + "Y": 0.8340165615081787 + }, + { + "X": 0.1994933784008026, + "Y": 0.8340225219726562 + } + ] + }, + "Id": "529bf0df-31c8-4a6c-b29d-7b504b7c8f48", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94241333007812, + "Text": "working", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03566098213195801, + "Height": 0.007093196734786034, + "Left": 0.2088889628648758, + "Top": 0.8282089233398438 + }, + "Polygon": [ + { + "X": 0.2088889628648758, + "Y": 0.8282451629638672 + }, + { + "X": 0.24454021453857422, + "Y": 0.8282089233398438 + }, + { + "X": 0.2445499449968338, + "Y": 0.8352659344673157 + }, + { + "X": 0.2088986188173294, + "Y": 0.8353021144866943 + } + ] + }, + "Id": "db937328-4647-4fe0-99af-d32b708c5d65", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.94892120361328, + "Text": "days.", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.023853730410337448, + "Height": 0.007035890128463507, + "Left": 0.24812068045139313, + "Top": 0.8281968832015991 + }, + "Polygon": [ + { + "X": 0.24812068045139313, + "Y": 0.8282211422920227 + }, + { + "X": 0.2719646692276001, + "Y": 0.8281968832015991 + }, + { + "X": 0.2719744145870209, + "Y": 0.835208535194397 + }, + { + "X": 0.24813036620616913, + "Y": 0.8352327346801758 + } + ] + }, + "Id": "9c8e6fe4-eca9-4c23-8204-ce688831aa63", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8162841796875, + "Text": "MERCHANDISE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.09492307901382446, + "Height": 0.008317681960761547, + "Left": 0.05565054342150688, + "Top": 0.8437407612800598 + }, + "Polygon": [ + { + "X": 0.05565054342150688, + "Y": 0.8438368439674377 + }, + { + "X": 0.15056255459785461, + "Y": 0.8437407612800598 + }, + { + "X": 0.15057362616062164, + "Y": 0.8519625067710876 + }, + { + "X": 0.055661339312791824, + "Y": 0.8520584106445312 + } + ] + }, + "Id": "0049035a-cc30-4440-af8f-2e6163b0ff7c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85576629638672, + "Text": "MISC", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.032408539205789566, + "Height": 0.008003665134310722, + "Left": 0.19045764207839966, + "Top": 0.8439120650291443 + }, + "Polygon": [ + { + "X": 0.19045764207839966, + "Y": 0.8439448475837708 + }, + { + "X": 0.22285524010658264, + "Y": 0.8439120650291443 + }, + { + "X": 0.22286617755889893, + "Y": 0.8518829941749573 + }, + { + "X": 0.19046849012374878, + "Y": 0.851915717124939 + } + ] + }, + "Id": "a1d611df-e8a9-485e-9b25-37f930d021b5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87876892089844, + "Text": "RETAIL", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04496939480304718, + "Height": 0.007908524014055729, + "Left": 0.2609950006008148, + "Top": 0.8439443111419678 + }, + "Polygon": [ + { + "X": 0.2609950006008148, + "Y": 0.8439898490905762 + }, + { + "X": 0.30595338344573975, + "Y": 0.8439443111419678 + }, + { + "X": 0.3059644103050232, + "Y": 0.8518074154853821 + }, + { + "X": 0.2610059082508087, + "Y": 0.8518528342247009 + } + ] + }, + "Id": "d88d99aa-21a9-4aa2-8a33-4244ea69ed71", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96623229980469, + "Text": "DELIVERY", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.061775241047143936, + "Height": 0.007997124455869198, + "Left": 0.3107360601425171, + "Top": 0.8438485860824585 + }, + "Polygon": [ + { + "X": 0.3107360601425171, + "Y": 0.8439111113548279 + }, + { + "X": 0.3724999725818634, + "Y": 0.8438485860824585 + }, + { + "X": 0.3725112974643707, + "Y": 0.851783275604248 + }, + { + "X": 0.3107471764087677, + "Y": 0.8518456816673279 + } + ] + }, + "Id": "9dd7ce0e-4dd8-424e-8a99-8b2b96ea7f55", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93663024902344, + "Text": "DEPOSIT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05506415665149689, + "Height": 0.008278090506792068, + "Left": 0.6932185888290405, + "Top": 0.8432956337928772 + }, + "Polygon": [ + { + "X": 0.6932185888290405, + "Y": 0.843351423740387 + }, + { + "X": 0.7482699155807495, + "Y": 0.8432956337928772 + }, + { + "X": 0.7482827305793762, + "Y": 0.8515181541442871 + }, + { + "X": 0.6932312250137329, + "Y": 0.8515737652778625 + } + ] + }, + "Id": "4e700a4d-6e40-4a83-af20-4e3831ce6bd2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92443084716797, + "Text": "DEPOSIT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05462045967578888, + "Height": 0.008335789665579796, + "Left": 0.7777970433235168, + "Top": 0.8431228995323181 + }, + "Polygon": [ + { + "X": 0.7777970433235168, + "Y": 0.8431782126426697 + }, + { + "X": 0.832404375076294, + "Y": 0.8431228995323181 + }, + { + "X": 0.8324175477027893, + "Y": 0.851403534412384 + }, + { + "X": 0.7778100371360779, + "Y": 0.8514586687088013 + } + ] + }, + "Id": "e2a59049-09e6-476c-aad6-9d9b168dab8b", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.36085510253906, + "Text": "PST/QST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0558316744863987, + "Height": 0.00836925022304058, + "Left": 0.4056110084056854, + "Top": 0.8495938181877136 + }, + "Polygon": [ + { + "X": 0.4056110084056854, + "Y": 0.8496502041816711 + }, + { + "X": 0.4614305794239044, + "Y": 0.8495938181877136 + }, + { + "X": 0.4614426791667938, + "Y": 0.8579067587852478 + }, + { + "X": 0.4056229591369629, + "Y": 0.8579630255699158 + } + ] + }, + "Id": "6b26bf4b-dd00-4b6e-8ba2-aa296786b094", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.68617248535156, + "Text": "GST/HST", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05682045966386795, + "Height": 0.00813084002584219, + "Left": 0.49039843678474426, + "Top": 0.8496829867362976 + }, + "Polygon": [ + { + "X": 0.49039843678474426, + "Y": 0.8497404456138611 + }, + { + "X": 0.5472068786621094, + "Y": 0.8496829867362976 + }, + { + "X": 0.547218918800354, + "Y": 0.8577565550804138 + }, + { + "X": 0.4904102683067322, + "Y": 0.857813835144043 + } + ] + }, + "Id": "97652775-2fe7-4369-b3fb-c68d94b0ca12", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93302154541016, + "Text": "FREIGHT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05378830432891846, + "Height": 0.007974250242114067, + "Left": 0.6037467122077942, + "Top": 0.8495816588401794 + }, + "Polygon": [ + { + "X": 0.6037467122077942, + "Y": 0.8496360182762146 + }, + { + "X": 0.6575229167938232, + "Y": 0.8495816588401794 + }, + { + "X": 0.6575350165367126, + "Y": 0.8575016856193542 + }, + { + "X": 0.6037586331367493, + "Y": 0.8575559258460999 + } + ] + }, + "Id": "90a25c2a-c351-43ac-9c43-d2b3aeb7ca1f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.86764526367188, + "Text": "INVOICE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05290105566382408, + "Height": 0.008067252114415169, + "Left": 0.8573051691055298, + "Top": 0.8490826487541199 + }, + "Polygon": [ + { + "X": 0.8573051691055298, + "Y": 0.8491361141204834 + }, + { + "X": 0.9101933240890503, + "Y": 0.8490826487541199 + }, + { + "X": 0.9102062582969666, + "Y": 0.8570965528488159 + }, + { + "X": 0.8573179841041565, + "Y": 0.8571498990058899 + } + ] + }, + "Id": "28e7543e-d31a-4fcf-a793-28907b53e104", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94269561767578, + "Text": "TOTAL", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.043726060539484024, + "Height": 0.008114336989820004, + "Left": 0.9138656854629517, + "Top": 0.8490025997161865 + }, + "Polygon": [ + { + "X": 0.9138656854629517, + "Y": 0.8490467667579651 + }, + { + "X": 0.9575785398483276, + "Y": 0.8490025997161865 + }, + { + "X": 0.957591712474823, + "Y": 0.8570728302001953 + }, + { + "X": 0.9138786792755127, + "Y": 0.8571168780326843 + } + ] + }, + "Id": "b8e94e83-79ac-4c9c-9e78-1bae75ad738a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9083480834961, + "Text": "TOTAL", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04343864321708679, + "Height": 0.007967702113091946, + "Left": 0.08134955912828445, + "Top": 0.855897068977356 + }, + "Polygon": [ + { + "X": 0.08134955912828445, + "Y": 0.8559408783912659 + }, + { + "X": 0.12477760761976242, + "Y": 0.855897068977356 + }, + { + "X": 0.12478820234537125, + "Y": 0.8638210296630859 + }, + { + "X": 0.08136004209518433, + "Y": 0.8638647198677063 + } + ] + }, + "Id": "cba2f921-75ac-4eee-ad1e-558371aa291d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91498565673828, + "Text": "CHARGES", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06211908534169197, + "Height": 0.008055471815168858, + "Left": 0.17553110420703888, + "Top": 0.8558185696601868 + }, + "Polygon": [ + { + "X": 0.17553110420703888, + "Y": 0.8558812737464905 + }, + { + "X": 0.2376391738653183, + "Y": 0.8558185696601868 + }, + { + "X": 0.23765018582344055, + "Y": 0.8638114929199219 + }, + { + "X": 0.1755419373512268, + "Y": 0.8638740181922913 + } + ] + }, + "Id": "a1a452a7-412a-491a-ad22-15cb8bb27dea", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.97380828857422, + "Text": "FEE", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.02194877900183201, + "Height": 0.007852411828935146, + "Left": 0.30608707666397095, + "Top": 0.8559945225715637 + }, + "Polygon": [ + { + "X": 0.30608707666397095, + "Y": 0.8560166954994202 + }, + { + "X": 0.32802483439445496, + "Y": 0.8559945225715637 + }, + { + "X": 0.3280358612537384, + "Y": 0.8638248443603516 + }, + { + "X": 0.3060980439186096, + "Y": 0.8638469576835632 + } + ] + }, + "Id": "f88b5ae1-e04a-44f1-8c00-7312cd217e13", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9676284790039, + "Text": "AMOUNT", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05910762399435043, + "Height": 0.007991348393261433, + "Left": 0.6911356449127197, + "Top": 0.8554122447967529 + }, + "Polygon": [ + { + "X": 0.6911356449127197, + "Y": 0.8554718494415283 + }, + { + "X": 0.7502309083938599, + "Y": 0.8554122447967529 + }, + { + "X": 0.7502433061599731, + "Y": 0.8633440732955933 + }, + { + "X": 0.6911478638648987, + "Y": 0.8634035587310791 + } + ] + }, + "Id": "6ca384ff-c873-40b7-a393-5eb6f8f8f11f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96691131591797, + "Text": "APPLIED", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05303827300667763, + "Height": 0.007902879267930984, + "Left": 0.7786018252372742, + "Top": 0.8553829789161682 + }, + "Polygon": [ + { + "X": 0.7786018252372742, + "Y": 0.8554364442825317 + }, + { + "X": 0.8316276669502258, + "Y": 0.8553829789161682 + }, + { + "X": 0.8316401243209839, + "Y": 0.863232433795929 + }, + { + "X": 0.7786141633987427, + "Y": 0.8632858395576477 + } + ] + }, + "Id": "91820cde-8fb5-4546-abf5-d0c2ecaa8f95", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 96.02408599853516, + "Text": "487.91", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05442700907588005, + "Height": 0.010013078339397907, + "Left": 0.10125062614679337, + "Top": 0.8777374029159546 + }, + "Polygon": [ + { + "X": 0.10125062614679337, + "Y": 0.8777920007705688 + }, + { + "X": 0.15566420555114746, + "Y": 0.8777374029159546 + }, + { + "X": 0.15567763149738312, + "Y": 0.8876960873603821 + }, + { + "X": 0.1012638583779335, + "Y": 0.887750506401062 + } + ] + }, + "Id": "1a592172-744e-4891-8a8c-59207ee6c476", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.22808074951172, + "Text": "5.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03520471230149269, + "Height": 0.009886548854410648, + "Left": 0.2130846232175827, + "Top": 0.8778085708618164 + }, + "Polygon": [ + { + "X": 0.2130846232175827, + "Y": 0.8778438568115234 + }, + { + "X": 0.2482757270336151, + "Y": 0.8778085708618164 + }, + { + "X": 0.2482893317937851, + "Y": 0.8876599073410034 + }, + { + "X": 0.21309810876846313, + "Y": 0.8876951336860657 + } + ] + }, + "Id": "a255efd8-b328-40fa-85c4-faed916a94b3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 93.20948791503906, + "Text": "0.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03577866405248642, + "Height": 0.009873278439044952, + "Left": 0.33836260437965393, + "Top": 0.8776659369468689 + }, + "Polygon": [ + { + "X": 0.33836260437965393, + "Y": 0.8777017593383789 + }, + { + "X": 0.37412723898887634, + "Y": 0.8776659369468689 + }, + { + "X": 0.37414127588272095, + "Y": 0.887503445148468 + }, + { + "X": 0.3383764922618866, + "Y": 0.8875392079353333 + } + ] + }, + "Id": "9027d12d-0aae-45c7-af70-9eb2a6f6165e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 87.77914428710938, + "Text": "0.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03548669442534447, + "Height": 0.009880761615931988, + "Left": 0.443083256483078, + "Top": 0.8776152729988098 + }, + "Polygon": [ + { + "X": 0.443083256483078, + "Y": 0.8776508569717407 + }, + { + "X": 0.4785555601119995, + "Y": 0.8776152729988098 + }, + { + "X": 0.47856995463371277, + "Y": 0.8874605298042297 + }, + { + "X": 0.4430975317955017, + "Y": 0.8874959945678711 + } + ] + }, + "Id": "dd545f27-d767-4480-8f04-85b0734d65a7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.92679595947266, + "Text": "24.64", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0461580827832222, + "Height": 0.010090148076415062, + "Left": 0.534099817276001, + "Top": 0.8774579167366028 + }, + "Polygon": [ + { + "X": 0.534099817276001, + "Y": 0.8775041699409485 + }, + { + "X": 0.5802428722381592, + "Y": 0.8774579167366028 + }, + { + "X": 0.5802579522132874, + "Y": 0.8875018954277039 + }, + { + "X": 0.5341147184371948, + "Y": 0.88754802942276 + } + ] + }, + "Id": "d4a69dfe-83fc-46a6-8898-9071e4c77f09", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.06719970703125, + "Text": "0.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03568468987941742, + "Height": 0.00992525927722454, + "Left": 0.6391417384147644, + "Top": 0.8774058818817139 + }, + "Polygon": [ + { + "X": 0.6391417384147644, + "Y": 0.8774416446685791 + }, + { + "X": 0.6748113036155701, + "Y": 0.8774058818817139 + }, + { + "X": 0.674826443195343, + "Y": 0.8872954845428467 + }, + { + "X": 0.6391567587852478, + "Y": 0.8873311877250671 + } + ] + }, + "Id": "f6547ff8-d50b-4766-9497-812d8f4f795c", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91791534423828, + "Text": "0.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.035505760461091995, + "Height": 0.009883532300591469, + "Left": 0.7254277467727661, + "Top": 0.8772458434104919 + }, + "Polygon": [ + { + "X": 0.7254277467727661, + "Y": 0.8772814273834229 + }, + { + "X": 0.7609180808067322, + "Y": 0.8772458434104919 + }, + { + "X": 0.7609334588050842, + "Y": 0.8870939016342163 + }, + { + "X": 0.7254430055618286, + "Y": 0.8871293663978577 + } + ] + }, + "Id": "0595c301-98bf-4a9b-8cce-6960de6a70e5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.80265808105469, + "Text": "0.00", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03499670326709747, + "Height": 0.009773205034434795, + "Left": 0.8110606074333191, + "Top": 0.8771435022354126 + }, + "Polygon": [ + { + "X": 0.8110606074333191, + "Y": 0.8771786093711853 + }, + { + "X": 0.8460417985916138, + "Y": 0.8771435022354126 + }, + { + "X": 0.8460572957992554, + "Y": 0.8868817090988159 + }, + { + "X": 0.8110759854316711, + "Y": 0.8869166970252991 + } + ] + }, + "Id": "db796a1f-021a-4159-9016-a79758e52f27", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8488540649414, + "Text": "517.55", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05581768602132797, + "Height": 0.01026908215135336, + "Left": 0.9037589430809021, + "Top": 0.8766120076179504 + }, + "Polygon": [ + { + "X": 0.9037589430809021, + "Y": 0.8766679167747498 + }, + { + "X": 0.9595599174499512, + "Y": 0.8766120076179504 + }, + { + "X": 0.9595766067504883, + "Y": 0.8868252635002136 + }, + { + "X": 0.9037753939628601, + "Y": 0.8868810534477234 + } + ] + }, + "Id": "d7f679ab-135b-4104-a232-a12b23e539aa", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.79769134521484, + "Text": "Insurance", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.06381221860647202, + "Height": 0.00866769440472126, + "Left": 0.05146641284227371, + "Top": 0.8981125950813293 + }, + "Polygon": [ + { + "X": 0.05146641284227371, + "Y": 0.8981761932373047 + }, + { + "X": 0.11526715010404587, + "Y": 0.8981125950813293 + }, + { + "X": 0.11527863144874573, + "Y": 0.9067168235778809 + }, + { + "X": 0.05147770047187805, + "Y": 0.9067802429199219 + } + ] + }, + "Id": "033bcd23-7d50-49d2-8240-84a34d312af3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.55181121826172, + "Text": "Claim#", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04614167660474777, + "Height": 0.009120474569499493, + "Left": 0.12043625116348267, + "Top": 0.8975830674171448 + }, + "Polygon": [ + { + "X": 0.12043625116348267, + "Y": 0.8976290822029114 + }, + { + "X": 0.1665656566619873, + "Y": 0.8975830674171448 + }, + { + "X": 0.16657792031764984, + "Y": 0.9066576957702637 + }, + { + "X": 0.12044837325811386, + "Y": 0.906703531742096 + } + ] + }, + "Id": "15304d42-4c78-4528-8e62-a1f57b4965c6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.947998046875, + "Text": "Customer", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07304619252681732, + "Height": 0.009919262491166592, + "Left": 0.43209370970726013, + "Top": 0.910789430141449 + }, + "Polygon": [ + { + "X": 0.43209370970726013, + "Y": 0.9108619689941406 + }, + { + "X": 0.5051254034042358, + "Y": 0.910789430141449 + }, + { + "X": 0.505139946937561, + "Y": 0.9206364154815674 + }, + { + "X": 0.43210795521736145, + "Y": 0.9207087159156799 + } + ] + }, + "Id": "fd042968-13cf-468e-9ce1-29b3a6547e89", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.90740203857422, + "Text": "Signature:", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.07636433839797974, + "Height": 0.012380119413137436, + "Left": 0.5108630657196045, + "Top": 0.9106660485267639 + }, + "Polygon": [ + { + "X": 0.5108630657196045, + "Y": 0.9107418656349182 + }, + { + "X": 0.5872089266777039, + "Y": 0.9106660485267639 + }, + { + "X": 0.5872274041175842, + "Y": 0.9229706525802612 + }, + { + "X": 0.5108811855316162, + "Y": 0.9230461716651917 + } + ] + }, + "Id": "11a89aa0-4730-4d96-b9a5-e746996294f5", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 88.42506408691406, + "Text": "I", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0025675699580460787, + "Height": 0.005786259192973375, + "Left": 0.432677686214447, + "Top": 0.9246410727500916 + }, + "Polygon": [ + { + "X": 0.432677686214447, + "Y": 0.9246436357498169 + }, + { + "X": 0.4352368712425232, + "Y": 0.9246410727500916 + }, + { + "X": 0.43524524569511414, + "Y": 0.9304248094558716 + }, + { + "X": 0.4326860308647156, + "Y": 0.9304273128509521 + } + ] + }, + "Id": "71e26926-066b-45d8-8260-741fa0398724", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8708724975586, + "Text": "acknowledge", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.058804504573345184, + "Height": 0.0075632790103554726, + "Left": 0.43880054354667664, + "Top": 0.924691379070282 + }, + "Polygon": [ + { + "X": 0.43880054354667664, + "Y": 0.9247495532035828 + }, + { + "X": 0.49759402871131897, + "Y": 0.924691379070282 + }, + { + "X": 0.49760502576828003, + "Y": 0.9321966767311096 + }, + { + "X": 0.43881142139434814, + "Y": 0.9322546720504761 + } + ] + }, + "Id": "628ba189-372d-44a1-821d-893eca76ff53", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.85173797607422, + "Text": "receipt", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03103981539607048, + "Height": 0.007125111762434244, + "Left": 0.5002971887588501, + "Top": 0.9247328042984009 + }, + "Polygon": [ + { + "X": 0.5002971887588501, + "Y": 0.9247635006904602 + }, + { + "X": 0.5313264727592468, + "Y": 0.9247328042984009 + }, + { + "X": 0.5313370227813721, + "Y": 0.9318273067474365 + }, + { + "X": 0.5003076195716858, + "Y": 0.9318579435348511 + } + ] + }, + "Id": "39588b8e-819c-4e8d-b14f-7743e7acd0bc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87815856933594, + "Text": "of", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.00943173747509718, + "Height": 0.006206755060702562, + "Left": 0.5340986847877502, + "Top": 0.9245855212211609 + }, + "Polygon": [ + { + "X": 0.5340986847877502, + "Y": 0.9245948195457458 + }, + { + "X": 0.5435212254524231, + "Y": 0.9245855212211609 + }, + { + "X": 0.5435304045677185, + "Y": 0.9307829737663269 + }, + { + "X": 0.5341078639030457, + "Y": 0.9307922720909119 + } + ] + }, + "Id": "77de2168-44cd-48bb-9f74-25eb8b677267", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82583618164062, + "Text": "all", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010130960494279861, + "Height": 0.0061493744142353535, + "Left": 0.5462538003921509, + "Top": 0.9246143698692322 + }, + "Polygon": [ + { + "X": 0.5462538003921509, + "Y": 0.9246243834495544 + }, + { + "X": 0.5563756227493286, + "Y": 0.9246143698692322 + }, + { + "X": 0.556384801864624, + "Y": 0.9307537078857422 + }, + { + "X": 0.5462629199028015, + "Y": 0.9307637214660645 + } + ] + }, + "Id": "554d0979-1da8-485c-b803-2978cab405c7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.81431579589844, + "Text": "products", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.039173997938632965, + "Height": 0.007291710935533047, + "Left": 0.5592316389083862, + "Top": 0.9245847463607788 + }, + "Polygon": [ + { + "X": 0.5592316389083862, + "Y": 0.9246234893798828 + }, + { + "X": 0.5983947515487671, + "Y": 0.9245847463607788 + }, + { + "X": 0.598405659198761, + "Y": 0.931837797164917 + }, + { + "X": 0.5592424869537354, + "Y": 0.9318764805793762 + } + ] + }, + "Id": "8a796774-9100-4014-835d-965804ec0a9e", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8940200805664, + "Text": "listed", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.024174196645617485, + "Height": 0.0063019078224897385, + "Left": 0.6011677980422974, + "Top": 0.9244363307952881 + }, + "Polygon": [ + { + "X": 0.6011677980422974, + "Y": 0.924460232257843 + }, + { + "X": 0.6253325343132019, + "Y": 0.9244363307952881 + }, + { + "X": 0.6253420114517212, + "Y": 0.9307143688201904 + }, + { + "X": 0.6011772751808167, + "Y": 0.9307382106781006 + } + ] + }, + "Id": "4737b997-447d-4d4c-8daa-4be260e12003", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8733139038086, + "Text": "on", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.011328743770718575, + "Height": 0.004870809148997068, + "Left": 0.6283988952636719, + "Top": 0.9257405400276184 + }, + "Polygon": [ + { + "X": 0.6283988952636719, + "Y": 0.9257517457008362 + }, + { + "X": 0.6397202610969543, + "Y": 0.9257405400276184 + }, + { + "X": 0.6397276520729065, + "Y": 0.9306002259254456 + }, + { + "X": 0.6284062266349792, + "Y": 0.9306113719940186 + } + ] + }, + "Id": "08d04273-21eb-4955-aa5f-b98dd54dcc14", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9106674194336, + "Text": "this", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016292229294776917, + "Height": 0.006065842229872942, + "Left": 0.642802357673645, + "Top": 0.9245746731758118 + }, + "Polygon": [ + { + "X": 0.642802357673645, + "Y": 0.9245907664299011 + }, + { + "X": 0.6590853929519653, + "Y": 0.9245746731758118 + }, + { + "X": 0.6590945720672607, + "Y": 0.9306244254112244 + }, + { + "X": 0.6428115963935852, + "Y": 0.9306405186653137 + } + ] + }, + "Id": "259229c1-a0a0-4697-a240-137c499a6270", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.99424743652344, + "Text": "invoice", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03190978243947029, + "Height": 0.006352738011628389, + "Left": 0.6619917750358582, + "Top": 0.9242993593215942 + }, + "Polygon": [ + { + "X": 0.6619917750358582, + "Y": 0.9243308901786804 + }, + { + "X": 0.6938918232917786, + "Y": 0.9242993593215942 + }, + { + "X": 0.693901538848877, + "Y": 0.9306206107139587 + }, + { + "X": 0.6620014309883118, + "Y": 0.9306520819664001 + } + ] + }, + "Id": "38633683-e118-4605-86d6-d71f353034af", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.98307037353516, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016380619257688522, + "Height": 0.006032153498381376, + "Left": 0.6967787742614746, + "Top": 0.9244300127029419 + }, + "Polygon": [ + { + "X": 0.6967787742614746, + "Y": 0.924446165561676 + }, + { + "X": 0.7131500840187073, + "Y": 0.9244300127029419 + }, + { + "X": 0.7131593823432922, + "Y": 0.9304459691047668 + }, + { + "X": 0.6967880129814148, + "Y": 0.930462121963501 + } + ] + }, + "Id": "1d1640f6-420a-4ac3-8f6a-f0efea56e4ec", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96959686279297, + "Text": "agree", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.024867260828614235, + "Height": 0.006284855306148529, + "Left": 0.7162417769432068, + "Top": 0.9254779815673828 + }, + "Polygon": [ + { + "X": 0.7162417769432068, + "Y": 0.925502598285675 + }, + { + "X": 0.7410992980003357, + "Y": 0.9254779815673828 + }, + { + "X": 0.7411090731620789, + "Y": 0.9317383170127869 + }, + { + "X": 0.7162514925003052, + "Y": 0.9317628741264343 + } + ] + }, + "Id": "d3f7de45-77e0-40ea-afa2-71ae4882806a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 97.08245086669922, + "Text": "to", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.009326489642262459, + "Height": 0.005605940707027912, + "Left": 0.7439500689506531, + "Top": 0.9249357581138611 + }, + "Polygon": [ + { + "X": 0.7439500689506531, + "Y": 0.9249449968338013 + }, + { + "X": 0.7532678246498108, + "Y": 0.9249357581138611 + }, + { + "X": 0.753276526927948, + "Y": 0.9305325150489807 + }, + { + "X": 0.7439587712287903, + "Y": 0.9305416941642761 + } + ] + }, + "Id": "86e356dd-b8d7-48b0-b525-8ac22df6aef7", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8115463256836, + "Text": "all", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.010298959910869598, + "Height": 0.006406531669199467, + "Left": 0.756155252456665, + "Top": 0.9241744875907898 + }, + "Polygon": [ + { + "X": 0.756155252456665, + "Y": 0.9241846799850464 + }, + { + "X": 0.766444206237793, + "Y": 0.9241744875907898 + }, + { + "X": 0.7664542198181152, + "Y": 0.9305708408355713 + }, + { + "X": 0.7561652064323425, + "Y": 0.9305810332298279 + } + ] + }, + "Id": "9037e246-cd30-426e-82c2-47f7ad325c10", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.87947845458984, + "Text": "payment", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.03909982740879059, + "Height": 0.006729491055011749, + "Left": 0.769365131855011, + "Top": 0.9249107837677002 + }, + "Polygon": [ + { + "X": 0.769365131855011, + "Y": 0.9249494671821594 + }, + { + "X": 0.8084543943405151, + "Y": 0.9249107837677002 + }, + { + "X": 0.8084650039672852, + "Y": 0.9316017031669617 + }, + { + "X": 0.7693756222724915, + "Y": 0.9316402673721313 + } + ] + }, + "Id": "63ade9b1-ad2a-42a9-919f-8e5e2bb4a3ef", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.96395874023438, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016348697245121002, + "Height": 0.005941099487245083, + "Left": 0.8115173578262329, + "Top": 0.924312174320221 + }, + "Polygon": [ + { + "X": 0.8115173578262329, + "Y": 0.9243283867835999 + }, + { + "X": 0.8278566598892212, + "Y": 0.924312174320221 + }, + { + "X": 0.8278660178184509, + "Y": 0.9302371740341187 + }, + { + "X": 0.8115267157554626, + "Y": 0.930253267288208 + } + ] + }, + "Id": "75b3fae4-5913-4cc4-9d09-cfc346ac0dcb", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.93936157226562, + "Text": "other", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022731535136699677, + "Height": 0.005908563733100891, + "Left": 0.8310536742210388, + "Top": 0.9243739247322083 + }, + "Polygon": [ + { + "X": 0.8310536742210388, + "Y": 0.9243963956832886 + }, + { + "X": 0.8537758588790894, + "Y": 0.9243739247322083 + }, + { + "X": 0.8537852168083191, + "Y": 0.9302600026130676 + }, + { + "X": 0.8310630321502686, + "Y": 0.930282473564148 + } + ] + }, + "Id": "265df821-bf5b-4f9e-80bb-6dceb410c895", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.89957427978516, + "Text": "terms", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.025631165131926537, + "Height": 0.005469185765832663, + "Left": 0.8570548892021179, + "Top": 0.9248814582824707 + }, + "Polygon": [ + { + "X": 0.8570548892021179, + "Y": 0.9249067902565002 + }, + { + "X": 0.8826773166656494, + "Y": 0.9248814582824707 + }, + { + "X": 0.8826860189437866, + "Y": 0.9303253293037415 + }, + { + "X": 0.8570635914802551, + "Y": 0.930350661277771 + } + ] + }, + "Id": "746fa4af-a842-42b5-b1cb-61f129b418d6", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.20429229736328, + "Text": "(or", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.012181821279227734, + "Height": 0.006315316539257765, + "Left": 0.885825514793396, + "Top": 0.9242528676986694 + }, + "Polygon": [ + { + "X": 0.885825514793396, + "Y": 0.9242649078369141 + }, + { + "X": 0.8979971408843994, + "Y": 0.9242528676986694 + }, + { + "X": 0.898007333278656, + "Y": 0.9305561184883118 + }, + { + "X": 0.8858356475830078, + "Y": 0.9305681586265564 + } + ] + }, + "Id": "a46a3b36-890c-4f9b-a6ae-4bffbff367ee", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.6759033203125, + "Text": "incorporated", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.05625736713409424, + "Height": 0.007255943957716227, + "Left": 0.9005777835845947, + "Top": 0.9236496090888977 + }, + "Polygon": [ + { + "X": 0.9005777835845947, + "Y": 0.9237052798271179 + }, + { + "X": 0.9568234086036682, + "Y": 0.9236496090888977 + }, + { + "X": 0.956835150718689, + "Y": 0.9308500289916992 + }, + { + "X": 0.9005894064903259, + "Y": 0.9309055805206299 + } + ] + }, + "Id": "4d66a54e-5f95-4dc0-82f1-ef0f7a87bd40", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 98.79869842529297, + "Text": "into)", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.020058203488588333, + "Height": 0.006791491527110338, + "Left": 0.43255454301834106, + "Top": 0.9332654476165771 + }, + "Polygon": [ + { + "X": 0.43255454301834106, + "Y": 0.9332852363586426 + }, + { + "X": 0.45260292291641235, + "Y": 0.9332654476165771 + }, + { + "X": 0.4526127576828003, + "Y": 0.940037190914154 + }, + { + "X": 0.4325643479824066, + "Y": 0.9400569200515747 + } + ] + }, + "Id": "04317c5d-b470-456b-970c-cb0555a3b856", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.9527359008789, + "Text": "this", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016720037907361984, + "Height": 0.00591064291074872, + "Left": 0.45579931139945984, + "Top": 0.9333401322364807 + }, + "Polygon": [ + { + "X": 0.45579931139945984, + "Y": 0.9333566427230835 + }, + { + "X": 0.47251075506210327, + "Y": 0.9333401322364807 + }, + { + "X": 0.4725193679332733, + "Y": 0.9392343163490295 + }, + { + "X": 0.4558078944683075, + "Y": 0.9392507672309875 + } + ] + }, + "Id": "d1bc2ff1-dcf5-4490-abed-34e9850cce21", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 59.04294204711914, + "Text": "invoice", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0351279079914093, + "Height": 0.005957170855253935, + "Left": 0.47465911507606506, + "Top": 0.9333645701408386 + }, + "Polygon": [ + { + "X": 0.47465911507606506, + "Y": 0.9333992004394531 + }, + { + "X": 0.5097783207893372, + "Y": 0.9333645701408386 + }, + { + "X": 0.5097870230674744, + "Y": 0.9392871260643005 + }, + { + "X": 0.4746677577495575, + "Y": 0.9393216967582703 + } + ] + }, + "Id": "537b3390-4092-4d25-82f0-f2a9b0d9ecdc", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.82050323486328, + "Text": "Warranties", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04921327158808708, + "Height": 0.006194013170897961, + "Left": 0.5128457546234131, + "Top": 0.9332248568534851 + }, + "Polygon": [ + { + "X": 0.5128457546234131, + "Y": 0.9332733750343323 + }, + { + "X": 0.5620498657226562, + "Y": 0.9332248568534851 + }, + { + "X": 0.5620590448379517, + "Y": 0.9393703937530518 + }, + { + "X": 0.512854814529419, + "Y": 0.9394188523292542 + } + ] + }, + "Id": "107de124-7292-49a6-9a78-cf81c7243e08", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95221710205078, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01635056547820568, + "Height": 0.006029122043401003, + "Left": 0.5647626519203186, + "Top": 0.9333007335662842 + }, + "Polygon": [ + { + "X": 0.5647626519203186, + "Y": 0.9333168864250183 + }, + { + "X": 0.5811042189598083, + "Y": 0.9333007335662842 + }, + { + "X": 0.5811132192611694, + "Y": 0.9393137693405151 + }, + { + "X": 0.5647715926170349, + "Y": 0.9393298625946045 + } + ] + }, + "Id": "b2d34688-c548-45f0-beaa-f12af1734b4a", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.84976196289062, + "Text": "other", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.023095250129699707, + "Height": 0.005983172915875912, + "Left": 0.5842968821525574, + "Top": 0.9332641959190369 + }, + "Polygon": [ + { + "X": 0.5842968821525574, + "Y": 0.9332869648933411 + }, + { + "X": 0.6073831915855408, + "Y": 0.9332641959190369 + }, + { + "X": 0.6073921322822571, + "Y": 0.9392246603965759 + }, + { + "X": 0.5843058228492737, + "Y": 0.9392473697662354 + } + ] + }, + "Id": "3680679f-8dec-44bc-bd90-a9ad8fcfc525", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 64.30482482910156, + "Text": "tems", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.022288203239440918, + "Height": 0.0055879391729831696, + "Left": 0.6105247735977173, + "Top": 0.9335787296295166 + }, + "Polygon": [ + { + "X": 0.6105247735977173, + "Y": 0.9336007237434387 + }, + { + "X": 0.6328045129776001, + "Y": 0.9335787296295166 + }, + { + "X": 0.6328129768371582, + "Y": 0.9391447305679321 + }, + { + "X": 0.6105331778526306, + "Y": 0.9391666650772095 + } + ] + }, + "Id": "1dc47f69-af53-4164-a13e-fe178ef1095f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91287994384766, + "Text": "and", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016277212649583817, + "Height": 0.005984312389045954, + "Left": 0.6359620094299316, + "Top": 0.9331954717636108 + }, + "Polygon": [ + { + "X": 0.6359620094299316, + "Y": 0.9332115054130554 + }, + { + "X": 0.6522301435470581, + "Y": 0.9331954717636108 + }, + { + "X": 0.6522392630577087, + "Y": 0.9391637444496155 + }, + { + "X": 0.6359710693359375, + "Y": 0.9391797780990601 + } + ] + }, + "Id": "3500e434-b52f-4211-9b50-34463c284abe", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.70542907714844, + "Text": "conditions", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.04569544270634651, + "Height": 0.005915043875575066, + "Left": 0.6554408669471741, + "Top": 0.933250904083252 + }, + "Polygon": [ + { + "X": 0.6554408669471741, + "Y": 0.9332959651947021 + }, + { + "X": 0.7011272311210632, + "Y": 0.933250904083252 + }, + { + "X": 0.7011362910270691, + "Y": 0.9391209483146667 + }, + { + "X": 0.6554498076438904, + "Y": 0.9391659498214722 + } + ] + }, + "Id": "17db8caf-5491-493b-988b-ce3670bf7fda", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.67464447021484, + "Text": "incorporated", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.056293994188308716, + "Height": 0.0074106925167143345, + "Left": 0.7043641805648804, + "Top": 0.9328504204750061 + }, + "Polygon": [ + { + "X": 0.7043641805648804, + "Y": 0.9329059720039368 + }, + { + "X": 0.7606467008590698, + "Y": 0.9328504204750061 + }, + { + "X": 0.7606582045555115, + "Y": 0.9402056932449341 + }, + { + "X": 0.7043755650520325, + "Y": 0.9402611255645752 + } + ] + }, + "Id": "b80b2aaa-621e-439c-bf46-f8140f09e455", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.8873519897461, + "Text": "into", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.01764293760061264, + "Height": 0.0061716907657682896, + "Left": 0.7634429931640625, + "Top": 0.9329104423522949 + }, + "Polygon": [ + { + "X": 0.7634429931640625, + "Y": 0.9329278469085693 + }, + { + "X": 0.7810762524604797, + "Y": 0.9329104423522949 + }, + { + "X": 0.7810859084129333, + "Y": 0.9390647411346436 + }, + { + "X": 0.7634525895118713, + "Y": 0.9390820860862732 + } + ] + }, + "Id": "e6c34512-145e-4b59-9491-3fa0ad87859d", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.95381164550781, + "Text": "this", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.016325894743204117, + "Height": 0.006081447936594486, + "Left": 0.783946692943573, + "Top": 0.9329864382743835 + }, + "Polygon": [ + { + "X": 0.783946692943573, + "Y": 0.9330025315284729 + }, + { + "X": 0.8002630472183228, + "Y": 0.9329864382743835 + }, + { + "X": 0.8002725839614868, + "Y": 0.9390518665313721 + }, + { + "X": 0.7839562296867371, + "Y": 0.9390679001808167 + } + ] + }, + "Id": "6cb925fb-f149-4a45-8f6a-934f90857016", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.14488983154297, + "Text": "invoice", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0317097008228302, + "Height": 0.006152365356683731, + "Left": 0.8032102584838867, + "Top": 0.9328497052192688 + }, + "Polygon": [ + { + "X": 0.8032102584838867, + "Y": 0.9328809380531311 + }, + { + "X": 0.8349102139472961, + "Y": 0.9328497052192688 + }, + { + "X": 0.8349199891090393, + "Y": 0.9389708638191223 + }, + { + "X": 0.8032199144363403, + "Y": 0.9390020370483398 + } + ] + }, + "Id": "a73e4cde-7057-40d8-bc5e-aad64f33ade2", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.91984558105469, + "Text": "are", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.013946183025836945, + "Height": 0.0047873230651021, + "Left": 0.8378186225891113, + "Top": 0.9341626167297363 + }, + "Polygon": [ + { + "X": 0.8378186225891113, + "Y": 0.9341763854026794 + }, + { + "X": 0.8517571687698364, + "Y": 0.9341626167297363 + }, + { + "X": 0.8517647981643677, + "Y": 0.9389362335205078 + }, + { + "X": 0.8378261923789978, + "Y": 0.9389499425888062 + } + ] + }, + "Id": "99b1526d-8394-45c9-b0fb-e0bcc40f70c3", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.75670623779297, + "Text": "available", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.0386703684926033, + "Height": 0.005829043686389923, + "Left": 0.8546226024627686, + "Top": 0.9329656362533569 + }, + "Polygon": [ + { + "X": 0.8546226024627686, + "Y": 0.9330037832260132 + }, + { + "X": 0.8932836651802063, + "Y": 0.9329656362533569 + }, + { + "X": 0.8932929635047913, + "Y": 0.9387566447257996 + }, + { + "X": 0.8546318411827087, + "Y": 0.9387946724891663 + } + ] + }, + "Id": "bb3b3424-6689-432a-a2e5-a2c83e1f4de8", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 99.94435119628906, + "Text": "at", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.00884680449962616, + "Height": 0.005286884494125843, + "Left": 0.8964248299598694, + "Top": 0.9336327314376831 + }, + "Polygon": [ + { + "X": 0.8964248299598694, + "Y": 0.9336414337158203 + }, + { + "X": 0.9052631258964539, + "Y": 0.9336327314376831 + }, + { + "X": 0.9052716493606567, + "Y": 0.9389109015464783 + }, + { + "X": 0.8964333534240723, + "Y": 0.9389196038246155 + } + ] + }, + "Id": "9fbb13b6-e1b3-42d9-8c8b-51f544f2d23f", + "Page": 1 + }, + { + "BlockType": "WORD", + "Confidence": 51.635860443115234, + "Text": "https://www.lkgcorp.com/about-us/our-industry-leading-warranty/", + "TextType": "PRINTED", + "Geometry": { + "BoundingBox": { + "Width": 0.29916080832481384, + "Height": 0.007743896916508675, + "Left": 0.4327220618724823, + "Top": 0.9405109882354736 + }, + "Polygon": [ + { + "X": 0.4327220618724823, + "Y": 0.9408054947853088 + }, + { + "X": 0.7318713068962097, + "Y": 0.9405109882354736 + }, + { + "X": 0.7318828701972961, + "Y": 0.9479610919952393 + }, + { + "X": 0.43273282051086426, + "Y": 0.9482548832893372 + } + ] + }, + "Id": "ccbb4913-07ec-479b-9cb5-b694d8d6485e", + "Page": 1 + } + ] + } + ], + "$metadata": { + "httpStatusCode": 200, + "requestId": "fa24cbd9-72ad-423a-9865-aef4c76d94e4", + "attempts": 1, + "totalRetryDelay": 0 + } + } + }, + jobid: req.body.jobid, + bodyshopid: req.body.bodyshopid, + partsorderid: req.body.partsorderid + }); + + res.json({ response }); +}) module.exports = router; From 83be45a40bfc01a7d19eb4634ce6b30a65c5b42c Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 28 Jan 2026 16:20:27 -0800 Subject: [PATCH 05/25] IO-3515 Checkin. Crude form update with some correct values. Pricing still significantly out. --- .../bill-enter-modal.container.jsx | 42 +- server/ai/bill-ocr/bill-ocr-generator.js | 2968 ++--------------- server/ai/bill-ocr/bill-ocr-normalize.js | 12 +- server/ai/bill-ocr/bill-ocr.js | 30 +- 4 files changed, 280 insertions(+), 2772 deletions(-) diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx index f3bfe6fab..4338f9bea 100644 --- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx +++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx @@ -2,7 +2,7 @@ import { useApolloClient, useMutation } from "@apollo/client/react"; import { useTreatmentsWithConfig } from "@splitsoftware/splitio-react"; import { Button, Checkbox, Form, Modal, Space } from "antd"; import _ from "lodash"; -import { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -27,6 +27,7 @@ import { handleUpload as handleLocalUpload } from "../documents-local-upload/doc import { handleUpload } from "../documents-upload/documents-upload.utility"; import { handleUpload as handleUploadToImageProxy } from "../documents-upload-imgproxy/documents-upload-imgproxy.utility"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; +import axios from "axios"; const mapStateToProps = createStructuredSelector({ billEnterModal: selectBillEnterModal, @@ -53,6 +54,7 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, const client = useApolloClient(); const [generateLabel, setGenerateLabel] = useLocalStorage("enter_bill_generate_label", false); const notification = useNotification(); + const fileInputRef = useRef(null); const { treatments: { Enhanced_Payroll, Imgproxy } @@ -419,6 +421,44 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, }} footer={ + { + const file = e.target.files?.[0]; + if (file) { + const formdata = new FormData(); + formdata.append("billScan", file); + formdata.append("jobid", billEnterModal.context.job.id); + formdata.append("bodyshopid", bodyshop.id); + formdata.append("partsorderid", "3dd26419-a139-4399-af4e-43eeb6f0dbad"); + // formdata.append("skipTextract", "true"); // For testing purposes + axios + .post("/ai/bill-ocr", formdata) + .then(({ data }) => { + console.log("*** ~ BillEnterModalContainer ~ response:", data.data.billForm); + //Stored in data.data + + form.setFieldsValue(data.data.billForm); + }) + .catch((error) => { + console.error("*** ~ BillEnterModalContainer ~ error:", error); + }); + } + // Reset the input so the same file can be selected again + e.target.value = ""; + }} + /> + setGenerateLabel(e.target.checked)}> {t("bills.labels.generatepartslabel")} diff --git a/server/ai/bill-ocr/bill-ocr-generator.js b/server/ai/bill-ocr/bill-ocr-generator.js index 34f50baa3..c35ca3076 100644 --- a/server/ai/bill-ocr/bill-ocr-generator.js +++ b/server/ai/bill-ocr/bill-ocr-generator.js @@ -1,6 +1,9 @@ const client = require("../../graphql-client/graphql-client").client; const Fuse = require('fuse.js'); +const { has } = require("lodash"); + +const PRICE_PERCENT_MARGIN_TOLERANCE = 0.5; //Used to make sure prices and costs are likely. // Helper function to normalize fields const normalizePartNumber = (str) => { @@ -12,6 +15,7 @@ const normalizeText = (str) => { }; const normalizePrice = (str) => { + if (typeof str !== 'string') return str; return str.replace(/[^0-9.-]+/g, ""); }; @@ -47,50 +51,53 @@ const mergeResults = (resultsArray, weights = []) => { }; async function generateBillFormData({ processedData, jobid, bodyshopid, partsorderid }) { - processedData = processedDataFromCoache; - const jobData = { jobs_by_pk: tempJobObjectFromCoache }; - //Look up the job information - // const jobData = await client.request(` - // query QUERY_BILL_OCR_DATA($jobid: uuid!, $partsorderid: uuid!) { - // jobs_by_pk(id: $jobid) { - // id - // joblines { - // id - // line_desc - // removed - // act_price - // db_price - // oem_partno - // alt_partno - // } - // } - // parts_orders_by_pk(id: $partsorderid) { - // id - // parts_order_lines { - // id - // line_desc - // act_price - // cost - // jobline { - // id - // line_desc - // act_price - // oem_partno - // alt_partno - // } - // } - // } - // } + //TODO: Should this be using the client auth token to limit results? Most likely. + //TODO: Add in vendor data. + const jobData = await client.request(` + query QUERY_BILL_OCR_DATA($jobid: uuid!, $partsorderid: uuid!) { + vendors{ + id + name + } + jobs_by_pk(id: $jobid) { + id + joblines { + id + line_desc + removed + act_price + db_price + oem_partno + alt_partno + } + } + parts_orders_by_pk(id: $partsorderid) { + id + parts_order_lines { + id + line_desc + act_price + cost + jobline { + id + line_desc + act_price + oem_partno + alt_partno + } + } + } + } - // `, { - // jobid, partsorderid // this may fail if null? - // }); + `, { + jobid, partsorderid // this may fail if null? + }); - //Get a list of vendors and the ID. + //TODO: Need to find a vendor ID. Create a fuse for it, and fuzzy search for it using the textract vendor info. //Create fuses of line descriptions for matching. const jobLineDescFuse = new Fuse( - jobData.jobs_by_pk.joblines, + jobData.jobs_by_pk.joblines, { keys: [{ name: 'line_desc', @@ -118,18 +125,99 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord if (!job) { throw new Error('Job not found for bill form data generation.'); } - //Try to match the recognized bill lines with a job line if there is one. + //Figure out which lines have a match and which don't. + + //TODO: How do we handle freight lines and core charges? //Create the form data structure for the bill posting screen. + const billFormData = { + "jobid": jobid, + "vendorid": null, + "invoice_number": processedData.summary?.INVOICE_RECEIPT_ID?.value, + "date": processedData.summary?.INVOICE_RECEIPT_DATE?.value, + "is_credit_memo": false, + "total": normalizePrice(processedData.summary?.INVOICE_TOTAL?.value || processedData.summary?.TOTAL?.value), + "billlines": joblineMatches.map(jlMatchLine => { + const { matches, textractLineItem, } = jlMatchLine + //Matches should be prioritized, take the first one. + const matchToUse = matches.length > 0 ? matches[0] : null; + //TODO: Should be using the textract if there is an exact match on the normalized label. + //if there isn't then we can do the below. + let actualPrice, actualCost; + + const hasNormalizedActualPrice = Object.keys(textractLineItem).find(key => textractLineItem[key].normalizedLabel === 'actual_price'); + const hasNormalizedActualCost = Object.keys(textractLineItem).find(key => textractLineItem[key].normalizedLabel === 'actual_cost'); + + if (hasNormalizedActualPrice) { + actualPrice = textractLineItem[hasNormalizedActualPrice].value; + } + if (hasNormalizedActualCost) { + actualCost = textractLineItem[hasNormalizedActualCost].value; + } + + if (!hasNormalizedActualPrice || !hasNormalizedActualCost) { + //This is if there was no match found for normalized labels. + //Check all prices, and generally the higher one will be the actual price and the lower one will be the cost. + //Need to make sure that other random items are excluded. This should be within a reasonable range of the matched jobline at matchToUse.item.act_price + //Iterate over all of the text values, and check out which of them are currencies. + //They'll be in the format starting with a $ sign usually. + const currencyTextractLineItems = [] // {key, value} + Object.keys(textractLineItem).forEach(key => { + const currencyValue = textractLineItem[key].value?.startsWith('$') ? textractLineItem[key].value : null; + if (currencyValue) { + //Clean it and parse it + const cleanValue = parseFloat(currencyValue.replace(/[^0-9.-]/g, '')) || 0; + currencyTextractLineItems.push({ key, value: cleanValue }) + } + }) + + //Sort them descending + currencyTextractLineItems.sort((a, b) => b.value - a.value); + //Most expensive should be the actual price, second most expensive should be the cost. + if (!actualPrice) actualPrice = currencyTextractLineItems.length > 0 ? currencyTextractLineItems[0].value : 0; + if (!actualCost) actualCost = currencyTextractLineItems.length > 1 ? currencyTextractLineItems[1].value : 0; + + if (matchToUse) { + //Double check that they're within 50% of the matched jobline price if there is one. + const joblinePrice = parseFloat(matchToUse.item.act_price) || 0; + if (!hasNormalizedActualPrice && actualPrice > 0 && (actualPrice < joblinePrice * (1 - PRICE_PERCENT_MARGIN_TOLERANCE) || actualPrice > joblinePrice * (1 + PRICE_PERCENT_MARGIN_TOLERANCE))) { + actualPrice = joblinePrice; //Set to the jobline as a fallback. + } + if (!hasNormalizedActualCost && actualCost > 0 && (actualCost < joblinePrice * (1 - PRICE_PERCENT_MARGIN_TOLERANCE) || actualCost > joblinePrice * (1 + PRICE_PERCENT_MARGIN_TOLERANCE))) { + actualCost = null //Blank it out if it's not likely. + } + } + } + + const lineObject = { + "line_desc": matchToUse.item?.line_desc, + "quantity": textractLineItem.QUANTITY?.value, // convert to integer? + "actual_price": normalizePrice(actualPrice), + "actual_cost": normalizePrice(actualCost), + "cost_center": "SETBYCLIENT", //Needs to get set by client side. + "applicable_taxes": { //Not sure what to do with these? + "federal": false, + "state": false, + "local": false + }, + "joblineid": matchToUse.item?.id || "noline", + } + return lineObject + }) + } + + return billFormData } function joblineFuzzySearch({ fuseToSearch, processedData }) { const matches = [] - processedData.result.lineItems.forEach(lineItem => { + processedData.lineItems.forEach(lineItem => { // Refined ITEM search (multi-word description) const refinedItemResults = (() => { + if (!lineItem.ITEM?.value) return []; + const itemValue = lineItem.ITEM.value; const normalized = normalizeText(itemValue); @@ -152,6 +240,8 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { // Refined PRODUCT_CODE search (part numbers) const refinedProductCodeResults = (() => { + if (!lineItem.PRODUCT_CODE?.value) return []; + const productCode = lineItem.PRODUCT_CODE.value; const normalized = normalizePartNumber(productCode); @@ -174,6 +264,8 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { // Refined PRICE search const refinedPriceResults = (() => { + if (!lineItem.PRICE?.value) return []; + const price = normalizePrice(lineItem.PRICE.value); // 1: Exact price match @@ -193,6 +285,8 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { // Refined UNIT_PRICE search const refinedUnitPriceResults = (() => { + if (!lineItem.UNIT_PRICE?.value) return []; + const unitPrice = normalizePrice(lineItem.UNIT_PRICE.value); // 1: Exact price match @@ -269,8 +363,13 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { .sort((a, b) => b.finalScore - a.finalScore) .slice(0, 5); - - matches.push({ matches: finalMatches, textractLineItem: lineItem }); + // Always push the textract line item, even if no matches found + // This ensures all invoice lines are processed + matches.push({ + matches: finalMatches, + textractLineItem: lineItem, + hasMatch: finalMatches.length > 0 + }); }) return matches @@ -280,64 +379,6 @@ module.exports = { generateBillFormData } - -//Desired Output - -const output = { - "jobid": "3977b88e-68b8-482c-b10e-ca5e44222543", - "vendorid": "9261069e-4579-47d0-ad01-cdbed45c8655", - "invoice_number": "1234", - "date": "2026-01-28T19:50:13.598Z", - "is_credit_memo": false, - "total": 609.61, - "federal_tax_rate": 5, - "state_tax_rate": 7, - "local_tax_rate": 0, - "billlines": { - "data": [ - { - "line_desc": "R Fender Panel", - "quantity": 1, - "actual_price": 724.01, - "actual_cost": 579.21, - "cost_center": "Aftermarket", - "applicable_taxes": { - "federal": false, - "state": false, - "local": false - }, - "joblineid": "a18e0cc4-87b4-4089-a837-5e89f9ab2f77" - }, - { - "line_desc": "R Fender Stone Protective Film", - "quantity": 1, - "actual_price": 15, - "actual_cost": 12, - "cost_center": "Aftermarket", - "applicable_taxes": { - "federal": false, - "state": false, - "local": false - }, - "joblineid": "dded9d43-e981-42fc-82b6-c6b15740c240" - }, - { - "line_desc": "R Frt Door Adhesive Nameplate", - "quantity": 1, - "actual_price": 23, - "actual_cost": 18.4, - "cost_center": "Aftermarket", - "applicable_taxes": { - "federal": false, - "state": false, - "local": false - }, - "joblineid": "578c7825-4f01-46d2-a403-527613711e2c" - } - ] - } -} - const processedDataFromCoache = { "result": { "summary": { @@ -521,10 +562,10 @@ const processedDataFromCoache = { }, { "OTHER": { - "value": "$246.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 90.83607482910156 + "value": "2", + "label": "1", + "normalizedLabel": "UNKNOWN_1", + "confidence": 75.68085479736328 }, "PRODUCT_CODE": { "value": "80A-807-647-C-9B9", @@ -556,6 +597,18 @@ const processedDataFromCoache = { "normalizedLabel": "UNKNOWN_38", "confidence": 93.8568344116211 }, + "OTHER_2": { + "value": "SP-ORD", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 90.64925384521484 + }, + "OTHER_3": { + "value": "$246.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 90.83607482910156 + }, "EXPENSE_ROW": { "value": "2 80A-807-647-C-9B9 GRILLE 1 SP-ORD $246.00 $191.88 $191.88\n-", "label": "", @@ -565,10 +618,10 @@ const processedDataFromCoache = { }, { "OTHER": { - "value": "$286.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 88.31619262695312 + "value": "3", + "label": "1", + "normalizedLabel": "UNKNOWN_1", + "confidence": 73.59772491455078 }, "PRODUCT_CODE": { "value": "80A-807-661-A-GRU", @@ -600,6 +653,18 @@ const processedDataFromCoache = { "normalizedLabel": "UNKNOWN_38", "confidence": 91.8134765625 }, + "OTHER_2": { + "value": "SP-ORD", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 88.12962341308594 + }, + "OTHER_3": { + "value": "$286.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 88.31619262695312 + }, "EXPENSE_ROW": { "value": "3 80A-807-661-A-GRU CONN PIECE 1 SP-ORD $286.00 $223.08 $223.08\n-", "label": "", @@ -609,10 +674,10 @@ const processedDataFromCoache = { }, { "OTHER": { - "value": "$1,275.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 89.5396499633789 + "value": "4", + "label": "1", + "normalizedLabel": "UNKNOWN_1", + "confidence": 74.5914306640625 }, "PRODUCT_CODE": { "value": "80A-853-765--3Q7", @@ -644,6 +709,18 @@ const processedDataFromCoache = { "normalizedLabel": "UNKNOWN_38", "confidence": 96.28019714355469 }, + "OTHER_2": { + "value": "SP-ORD", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 89.3599853515625 + }, + "OTHER_3": { + "value": "$1,275.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 89.5396499633789 + }, "EXPENSE_ROW": { "value": "4 80A-853-765--3Q7 MOLDING 1 SP-ORD $1,275.00 $994.50 $994.50\n-", "label": "", @@ -653,10 +730,10 @@ const processedDataFromCoache = { }, { "OTHER": { - "value": "$2,690.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 91.14651489257812 + "value": "5", + "label": "1", + "normalizedLabel": "UNKNOWN_1", + "confidence": 75.91088104248047 }, "ITEM": { "value": "GRILLE", @@ -688,6 +765,18 @@ const processedDataFromCoache = { "normalizedLabel": "UNKNOWN_38", "confidence": 86.12691497802734 }, + "OTHER_2": { + "value": "SP-ORD", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 90.96830749511719 + }, + "OTHER_3": { + "value": "$2,690.00", + "label": "38", + "normalizedLabel": "UNKNOWN_38", + "confidence": 91.14651489257812 + }, "EXPENSE_ROW": { "value": "5 80A-853-651-L-RP5 GRILLE 1 SP-ORD $2,690.00 $2,098.20 $2,098.20\n-", "label": "", @@ -698,2649 +787,4 @@ const processedDataFromCoache = { ], } -} - -const tempJobObjectFromCoache = { - "tasks_aggregate": { - "aggregate": { - "count": 0, - "__typename": "tasks_aggregate_fields" - }, - "__typename": "tasks_aggregate" - }, - "actual_completion": "2026-01-21T22:50:00+00:00", - "actual_delivery": "2026-01-22T00:50:00+00:00", - "actual_in": "2026-01-09T22:23:41.562+00:00", - "acv_amount": null, - "admin_clerk": "bianca@raydarcollisiongroup.com", - "adjustment_bottom_line": null, - "alt_transport": "Rental", - "area_of_damage": { - "impact1": "12", - "impact2": null - }, - "auto_add_ats": false, - "available_jobs": [], - "ca_bc_pvrt": null, - "ca_customer_gst": 0, - "ca_gst_registrant": false, - "category": "Hit & Run", - "cccontracts": [], - "cieca_pfl": {}, - "cieca_pfo": {}, - "cieca_pft": {}, - "cieca_ttl": { - "data": { - "g_tax": 620.74, - "gst_amt": 443.39, - "g_aa_amt": 0, - "prev_net": 0, - "supp_amt": -697.45, - "g_ded_amt": 300, - "g_rpd_amt": 0, - "g_ttl_amt": 9931.82, - "g_upd_amt": 0, - "n_ttl_amt": 9631.82, - "g_bett_amt": 0, - "g_cust_amt": 300, - "g_ttl_disc": 0 - } - }, - "class": null, - "clm_no": "DA37868-0-A", - "clm_total": 9931.81, - "comment": "IN 01/09/2026 02:23 pm\nCOMP 01/21/2026 02:50 pm\nDEL 01/21/2026 04:50 pm", - "converted": true, - "csiinvites": [], - "date_estimated": "2026-01-07", - "date_exported": "2026-01-26T19:19:13.41+00:00", - "date_invoiced": "2026-01-26T19:07:11.473+00:00", - "date_last_contacted": null, - "date_lost_sale": null, - "date_next_contact": null, - "date_open": "2026-01-07T18:50:36.171+00:00", - "date_rentalresp": null, - "date_repairstarted": null, - "date_scheduled": null, - "date_towin": null, - "date_void": null, - "ded_amt": 300, - "ded_note": null, - "ded_status": "Y", - "deliverchecklist": { - "form": [ - { - "name": "Detailed", - "type": "checkbox", - "label": "Detailed?", - "required": false - }, - { - "name": "Buffed", - "type": "checkbox", - "label": "Buffed?", - "required": false - }, - { - "name": "Comments", - "type": "text", - "label": "Additional Comments?", - "required": false - } - ], - "completed_at": "2026-01-26T17:57:21.864Z", - "completed_by": "reception@coachecollision.ca", - "actual_delivery": "2026-01-22T00:50:00.000Z", - "actual_completion": "2026-01-21T22:50:00.000Z", - "removeFromProduction": true - }, - "depreciation_taxes": 0, - "driveable": true, - "employee_body": "f7cbeb13-f193-45bf-ba79-0ad11551b775", - "employee_body_rel": { - "id": "f7cbeb13-f193-45bf-ba79-0ad11551b775", - "first_name": "Steve", - "last_name": "Steele", - "__typename": "employees" - }, - "employee_csr": null, - "employee_csr_rel": null, - "employee_prep": null, - "employee_prep_rel": null, - "employee_refinish": "8535a3bc-0162-4fd8-8efd-48e99f437154", - "employee_refinish_rel": { - "id": "8535a3bc-0162-4fd8-8efd-48e99f437154", - "first_name": "David", - "last_name": "Lam", - "__typename": "employees" - }, - "est_co_nm": null, - "est_ct_fn": "Nuben", - "est_ct_ln": "Suthatharan", - "est_ea": "Nuben@coachecollision.ca", - "est_ph1": null, - "flat_rate_ats": false, - "federal_tax_rate": 0.05, - "hit_and_run": true, - "id": "62fcba91-b8df-4076-b5f5-14f8827c8f92", - "inproduction": false, - "ins_addr1": null, - "ins_city": null, - "ins_co_id": null, - "ins_co_nm": "ICBC", - "ins_ct_fn": null, - "ins_ct_ln": null, - "ins_ea": null, - "ins_ph1": null, - "intakechecklist": { - "ICBC": true, - "form": [ - { - "name": "ICBC", - "type": "checkbox", - "label": "ICBC", - "value": true - }, - { - "name": "PRIVATE", - "type": "checkbox", - "label": "PRIVATE" - }, - { - "name": "TOW-IN", - "type": "checkbox", - "label": "TOW-IN" - }, - { - "name": "How did you hear about us?", - "type": "textarea", - "label": "How did you hear about us?", - "required": false - }, - { - "name": "Were you referred to us?", - "type": "checkbox", - "label": "Were you referred to us?", - "required": false - }, - { - "name": "If YES, By who?", - "type": "textarea", - "label": "If YES, By who?", - "required": false - }, - { - "name": "CUSTOMER INFORMATION", - "type": "text", - "label": "CUSTOMER INFORMATION", - "required": false - }, - { - "name": "Phone Numbers:", - "type": "textarea", - "label": "Phone Numbers:", - "required": false - }, - { - "name": "Cell:", - "type": "textarea", - "label": "Cell:", - "required": false - }, - { - "name": "Text OK?", - "type": "checkbox", - "label": "Text OK?", - "required": false - }, - { - "name": "Email Address:", - "type": "textarea", - "label": "Email Address:", - "required": false - }, - { - "name": "Carry loss of use?", - "type": "checkbox", - "label": "Carry loss of use?", - "required": false - }, - { - "name": "Carry OEM Replacement Cost Policy?", - "type": "checkbox", - "label": "Carry OEM Replacement Cost Policy?", - "required": false - }, - { - "name": "GST Recipiant", - "type": "checkbox", - "label": "GST Recipiant", - "required": false - }, - { - "name": "VEHICLE INFORMATION", - "type": "text", - "label": "VEHICLE INFORMATION", - "required": false - }, - { - "name": "Canapy", - "type": "checkbox", - "label": "Canapy", - "required": false - }, - { - "name": "Keys", - "type": "checkbox", - "label": "Keys", - "required": false - }, - { - "name": "Wheel Locks", - "type": "checkbox", - "label": "Wheel Locks", - "required": false - }, - { - "name": "Alarm", - "type": "checkbox", - "label": "Alarm", - "required": false - }, - { - "name": "Fob", - "type": "checkbox", - "label": "Fob", - "required": false - }, - { - "name": "Dash board waring lights on?", - "type": "textarea", - "label": "Dash board waring lights on?", - "required": false - }, - { - "name": "Passenger in car?", - "type": "textarea", - "label": "Passenger in car?", - "required": false - }, - { - "name": "Interior Damage?", - "type": "textarea", - "label": "Interior Damage?", - "required": false - }, - { - "name": "Any power options not working?", - "type": "textarea", - "label": "Any power options not working?", - "required": false - }, - { - "name": "Did the car hit a curb?", - "type": "textarea", - "label": "Did the car hit a curb?", - "required": false - }, - { - "name": "Anything in the Truck or box of the Truck?", - "type": "textarea", - "label": "Anything in the Truck on box of the Truck?", - "required": false - }, - { - "name": "Old damage discussed with RO", - "type": "textarea", - "label": "Old damage discussed with RO", - "required": false - }, - { - "name": "If we find any dents or dings in repair panels would you like to be notified and given an estimate?", - "type": "checkbox", - "label": "If we find any dents or dings in repair panels would you like to be notified and given an estimate?", - "required": false - }, - { - "name": "Condition of Windshield", - "type": "textarea", - "label": "Condition of Windshield", - "required": false - }, - { - "name": "Notes", - "type": "textarea", - "label": "Notes" - } - ], - "completed_at": "2026-01-09T22:23:41.562Z", - "completed_by": "nuben@coachecollision.ca", - "addToProduction": true, - "production_vars": {}, - "scheduled_delivery": null, - "scheduled_completion": "2026-01-13T22:23:39.311Z" - }, - "invoice_final_note": null, - "iouparent": null, - "job_totals": { - "parts": { - "parts": { - "list": { - "PAA": { - "total": { - "amount": 58102, - "currency": "USD", - "precision": 2 - } - }, - "PAE": { - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "PAN": { - "total": { - "amount": 701000, - "currency": "USD", - "precision": 2 - } - } - }, - "total": { - "amount": 759102, - "currency": "USD", - "precision": 2 - }, - "subtotal": { - "amount": 759102, - "currency": "USD", - "precision": 2 - }, - "prt_dsmk_total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "sublets": { - "total": { - "amount": 35000, - "currency": "USD", - "precision": 2 - }, - "subtotal": { - "amount": 35000, - "currency": "USD", - "precision": 2 - } - } - }, - "rates": { - "la1": { - "rate": 97.8, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "la2": { - "rate": 0, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "la3": { - "rate": 107.35, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "la4": { - "rate": 0, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "laa": { - "rate": 107.35, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "lab": { - "rate": 89.46, - "hours": 5.800000000000001, - "total": { - "amount": 51887, - "currency": "USD", - "precision": 2 - } - }, - "lad": { - "rate": 0, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "lae": { - "rate": 0, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "laf": { - "rate": 102.27, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "lag": { - "rate": 89.46, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "lam": { - "rate": 115.05, - "hours": 0.8, - "total": { - "amount": 9204, - "currency": "USD", - "precision": 2 - } - }, - "lar": { - "rate": 89.46, - "hours": 1.8, - "total": { - "amount": 16103, - "currency": "USD", - "precision": 2 - } - }, - "las": { - "rate": 89.46, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "lau": { - "rate": 0, - "hours": 0, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "mapa": { - "rate": 60.11, - "hours": 1.8, - "total": { - "amount": 10820, - "currency": "USD", - "precision": 2 - } - }, - "mash": { - "rate": 7.05, - "hours": 6.6000000000000005, - "total": { - "amount": 4653, - "currency": "USD", - "precision": 2 - } - }, - "subtotal": { - "amount": 92667, - "currency": "USD", - "precision": 2 - }, - "rates_subtotal": { - "amount": 77194, - "currency": "USD", - "precision": 2 - } - }, - "totals": { - "subtotal": { - "amount": 886769, - "currency": "USD", - "precision": 2 - }, - "local_tax": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "state_tax": { - "amount": 62074, - "currency": "USD", - "precision": 2 - }, - "custPayable": { - "total": { - "amount": 30000, - "currency": "USD", - "precision": 2 - }, - "dep_taxes": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "deductible": { - "amount": 30000, - "currency": "USD", - "precision": 2 - }, - "federal_tax": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "other_customer_amount": { - "amount": 0, - "currency": "USD", - "precision": 2 - } - }, - "federal_tax": { - "amount": 44338, - "currency": "USD", - "precision": 2 - }, - "net_repairs": { - "amount": 963181, - "currency": "USD", - "precision": 2 - }, - "statePartsTax": { - "amount": 55587, - "currency": "USD", - "precision": 2 - }, - "total_repairs": { - "amount": 993181, - "currency": "USD", - "precision": 2 - } - }, - "additional": { - "pvrt": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "total": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "towing": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "storage": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "shipping": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "adjustments": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "additionalCosts": { - "amount": 0, - "currency": "USD", - "precision": 2 - }, - "additionalCostItems": [] - } - }, - "job_watchers": [], - "joblines": [ - { - "act_price": 1172, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 914.17, - "actual_price": 1172, - "bill": { - "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", - "invoice_number": "72821", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "65a1bf5d-a520-4b0a-a1d3-3518de994bc6", - "joblineid": "e64ab0ba-03b1-4b16-991d-b533caa57ef1", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 1.6, - "db_price": 1419, - "db_ref": "202199", - "id": "e64ab0ba-03b1-4b16-991d-b533caa57ef1", - "ioucreated": false, - "lbr_amt": 143.14, - "lbr_op": "OP11", - "line_desc": "L Frt Bumper Side Cover", - "line_ind": "S1", - "line_no": 1, - "line_ref": 14, - "location": null, - "manual_line": false, - "mod_lb_hrs": 1.6, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 07 ETA 1 - 2 WEEKS", - "oem_partno": "80A 807 107 M GRU", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 14, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "9c7744db-7f5a-4d16-aa29-3c65d1044fe5", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 2, - "line_ref": 14, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 18, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 1.1, - "db_price": 0, - "db_ref": "201285", - "id": "07b44893-092c-4687-a24b-970fc96ff4f3", - "ioucreated": false, - "lbr_amt": 98.41, - "lbr_op": "OP6", - "line_desc": "L Frt Bumper Side Cover", - "line_ind": "S1", - "line_no": 3, - "line_ref": 14, - "location": null, - "manual_line": false, - "mod_lb_hrs": 1.1, - "mod_lbr_ty": "LAR", - "notes": null, - "oem_partno": null, - "op_code_desc": "REFINISH", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 15, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.1, - "db_price": 0, - "db_ref": "201299", - "id": "a6b9007d-d45c-4e7c-9dad-9e141c97a5d2", - "ioucreated": false, - "lbr_amt": 8.95, - "lbr_op": "OP11", - "line_desc": "L Frt Add W/Parallel Park Assist Sensor", - "line_ind": "S1", - "line_no": 4, - "line_ref": 14, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.1, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 17, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 246, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 191.88, - "actual_price": 246, - "bill": { - "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", - "invoice_number": "72821", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "fe9d8dd3-74a0-4e51-bb3a-0f2529613d4d", - "joblineid": "5703a154-9cd8-41b2-b9c6-0e5665948052", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.3, - "db_price": 246, - "db_ref": "200194", - "id": "5703a154-9cd8-41b2-b9c6-0e5665948052", - "ioucreated": false, - "lbr_amt": 26.84, - "lbr_op": "OP11", - "line_desc": "Frt Lwr Bumper Grille", - "line_ind": "E", - "line_no": 5, - "line_ref": 7, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.3, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 07 ETA LOCAL", - "oem_partno": "80A 807 647 C 9B9", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 7, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "f1cb3534-949c-4f50-8d48-184483847b90", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 6, - "line_ref": 7, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 9, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 1.2, - "db_price": 0, - "db_ref": "201294", - "id": "966d17a3-4575-413c-9e81-3b5aed0c2034", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP2", - "line_desc": "Frt Bumper Cover", - "line_ind": "E", - "line_no": 7, - "line_ref": 7, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / INSTALL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 8, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 223.08, - "actual_price": 286, - "bill": { - "id": "92120eaf-8a04-4629-8e6c-082ce2fef717", - "invoice_number": "CM-72821-1", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "4dff060e-54c7-4a46-9349-0d482fdc1196", - "joblineid": "a89761f4-97e2-474b-b981-fa9cede17005", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.3, - "db_price": 286, - "db_ref": "200195", - "id": "a89761f4-97e2-474b-b981-fa9cede17005", - "ioucreated": false, - "lbr_amt": 26.84, - "lbr_op": "OP2", - "line_desc": "Frt Lwr Bumper Plate", - "line_ind": "S1", - "line_no": 8, - "line_ref": 23, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.3, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 07 ETA LOCAL", - "oem_partno": "80A 807 661 A GRU", - "op_code_desc": "REMOVE / INSTALL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAE", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Returned", - "tax_part": false, - "unq_seq": 23, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 1275, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 994.5, - "actual_price": 1275, - "bill": { - "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", - "invoice_number": "72821", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "c9cec9ef-7b5a-4232-9b69-5ee8e5089e23", - "joblineid": "9a531740-43f4-4181-8406-1c6e64046fa3", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.2, - "db_price": 1275, - "db_ref": "200197", - "id": "9a531740-43f4-4181-8406-1c6e64046fa3", - "ioucreated": false, - "lbr_amt": 17.89, - "lbr_op": "OP11", - "line_desc": "Frt Lwr Bumper Moulding", - "line_ind": "E", - "line_no": 9, - "line_ref": 27, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.2, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 07 ETA LOCAL", - "oem_partno": "80A 853 765 3Q7", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 27, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "f7e70ed4-de45-4532-bc8a-d3e541be83d4", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 10, - "line_ref": 27, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 28, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 120, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": "AQ518.264", - "assigned_team": null, - "billlines": [ - { - "actual_cost": 96, - "actual_price": 120, - "bill": { - "id": "c2c1850b-494d-4cbf-8083-dff15eadf745", - "invoice_number": "041105", - "vendor": { - "id": "72634cde-8dfa-457c-8c04-08621e712d67", - "name": "KWANTLEN ENTERPRISES LTD", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "42cbbc6e-e8ea-4efb-aa5a-7f92cdff448f", - "joblineid": "176052dd-4c5f-4d64-a520-74194a87fea2", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.2, - "db_price": 163, - "db_ref": "200200", - "id": "176052dd-4c5f-4d64-a520-74194a87fea2", - "ioucreated": false, - "lbr_amt": 17.89, - "lbr_op": "OP11", - "line_desc": "L Frt Bumper Reflector", - "line_ind": "E", - "line_no": 11, - "line_ref": 42, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.2, - "mod_lbr_ty": "LAB", - "notes": "ORD KW JAN 09 ETA JAN 13", - "oem_partno": "80A 945 071 A", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAA", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 42, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "16c263a7-c12d-4b1e-851a-532843ad87ac", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "INSIDE BROEKN -- GLUED ON", - "line_ind": "E", - "line_no": 12, - "line_ref": 42, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 47, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 306.01, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": "AU38-000W-0C", - "assigned_team": null, - "billlines": [ - { - "actual_cost": 174.43, - "actual_price": 306.01, - "bill": { - "id": "a57ce241-e00a-4ba3-9f26-e9e0e5eba1d2", - "invoice_number": "IS2595145", - "vendor": { - "id": "e54b45b4-55ab-4379-8d82-e4007e71622c", - "name": "A.P.T. AUTO PARTS TRADING CO LTD", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "5c9571e2-5abf-45e9-9dc7-896019e538b0", - "joblineid": "bde7f2b2-d2dc-480b-9398-233ada3ebae4", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 407, - "db_ref": "200173", - "id": "bde7f2b2-d2dc-480b-9398-233ada3ebae4", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP11", - "line_desc": "Frt Bumper Impact Absorber", - "line_ind": "E", - "line_no": 13, - "line_ref": 32, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": "ORD APT JAN 09 ETA JAN 12", - "oem_partno": "80A 807 550 C", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAA", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 32, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "1e82e200-5654-4521-9b1f-5930d24d3a3c", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 14, - "line_ref": 32, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 33, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 2690, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 2098.2, - "actual_price": 2690, - "bill": { - "id": "a9dda427-a344-4f72-b7a0-3702b7f8c1b6", - "invoice_number": "72821", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "5420de33-09fd-4ed3-9e4e-604403d88e17", - "joblineid": "78c719ec-dbeb-445d-8d45-ba15d3099edb", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 1, - "db_price": 2690, - "db_ref": "202371", - "id": "78c719ec-dbeb-445d-8d45-ba15d3099edb", - "ioucreated": false, - "lbr_amt": 89.46, - "lbr_op": "OP11", - "line_desc": "Grille Assembly", - "line_ind": "E", - "line_no": 15, - "line_ref": 10, - "location": null, - "manual_line": false, - "mod_lb_hrs": 1, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 07 ETA LOCAL", - "oem_partno": "80A 853 651 L RP5", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 10, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "20a9e040-74ad-47a2-993d-dd36f58311a0", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 16, - "line_ref": 10, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 13, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.2, - "db_price": 0, - "db_ref": "201373", - "id": "4525e99d-c06a-47df-aa6a-1b14d27697b5", - "ioucreated": false, - "lbr_amt": 17.89, - "lbr_op": "OP11", - "line_desc": "Frt Inr Add w/Parking Sensor", - "line_ind": "E", - "line_no": 17, - "line_ref": 10, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.2, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 12, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 447, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 348.66, - "actual_price": 447, - "bill": { - "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", - "invoice_number": "72865", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "1ac66d08-afc3-48c1-a3cf-6ed5611f6558", - "joblineid": "2679e440-4c79-4d70-ac20-6e6dc8ae8770", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.4, - "db_price": 447, - "db_ref": "202383", - "id": "2679e440-4c79-4d70-ac20-6e6dc8ae8770", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP11", - "line_desc": "Grille Plate", - "line_ind": "E", - "line_no": 18, - "line_ref": 29, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 09 ETA JAN 12", - "oem_partno": "80A 853 692 A", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 29, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "b0a41a8a-f332-409c-bf2b-1924431629a2", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 19, - "line_ref": 29, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 31, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 149, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 116.22, - "actual_price": 149, - "bill": { - "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", - "invoice_number": "72865", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "39e324fa-06da-487a-9d23-288eb476d103", - "joblineid": "7ba6a3cc-3291-40d6-a258-cf60573fe63f", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.4, - "db_price": 149, - "db_ref": "201241", - "id": "7ba6a3cc-3291-40d6-a258-cf60573fe63f", - "ioucreated": false, - "lbr_amt": 35.78, - "lbr_op": "OP11", - "line_desc": "L Cooling Air Deflector", - "line_ind": "E", - "line_no": 20, - "line_ref": 34, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.4, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 09 ETA JAN 12", - "oem_partno": "80A 121 283 K", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 34, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "989d0abc-05ab-409d-9cb2-2ea0ebccb13f", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 21, - "line_ref": 34, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 35, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 597, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 465.66, - "actual_price": 597, - "bill": { - "id": "f0cedaf5-e8ac-4fe5-bfd6-3bc38d430d98", - "invoice_number": "72868", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "34baeff0-8481-478b-acf4-4a0772d0ee5e", - "joblineid": "60d8f84e-af42-4013-a967-5bad275844d3", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.8, - "db_price": 597, - "db_ref": "202630", - "id": "60d8f84e-af42-4013-a967-5bad275844d3", - "ioucreated": false, - "lbr_amt": 92.04, - "lbr_op": "OP11", - "line_desc": "L Cooling Auxiliary Radiator -M", - "line_ind": "E", - "line_no": 22, - "line_ref": 36, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.8, - "mod_lbr_ty": "LAM", - "notes": "ORD PERFORMANCE JAN 09 ETA NO STOCK ORD OEM JAN 09 ETA", - "oem_partno": "80A 121 212 E", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 36, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "9f7a1b49-468f-4156-803c-6cd6083ceec3", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "DAMAGED -- ALPI NO STOCK / PERFORMANCE N", - "line_ind": "E", - "line_no": 23, - "line_ref": 36, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 37, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 149, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 116.22, - "actual_price": 149, - "bill": { - "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", - "invoice_number": "72865", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "71ed0c79-3cce-4245-90c3-2869880a785e", - "joblineid": "bb6d3570-b61a-49be-9c33-9df9dc9827be", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 149, - "db_ref": "204303", - "id": "bb6d3570-b61a-49be-9c33-9df9dc9827be", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP11", - "line_desc": "L Cooling Air Duct", - "line_ind": "E", - "line_no": 24, - "line_ref": 38, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 09 ETA JAN 12", - "oem_partno": "80A 121 333 D", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 38, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "27b2668e-874f-483d-a63a-504aa7633777", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 25, - "line_ref": 38, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 39, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 285, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [ - { - "actual_cost": 222.3, - "actual_price": 285, - "bill": { - "id": "9a87a941-da0b-468f-9c99-9a8856a9a2e9", - "invoice_number": "72865", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "d1399be3-a660-4ac6-9eb7-cbcc4e304c78", - "joblineid": "4584e129-aeb7-4ea0-96de-73f0a56c26c7", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.5, - "db_price": 285, - "db_ref": "201577", - "id": "4584e129-aeb7-4ea0-96de-73f0a56c26c7", - "ioucreated": false, - "lbr_amt": 44.73, - "lbr_op": "OP11", - "line_desc": "L Fender Splash Shield", - "line_ind": "E", - "line_no": 26, - "line_ref": 40, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.5, - "mod_lbr_ty": "LAB", - "notes": "ORD OEM JAN 09 ETA JAN 12", - "oem_partno": "80A 853 887 K", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAN", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 40, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "45b16056-b19c-41f0-82ba-5c6ab0404fbd", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "TABS TORN / MISSING PIECES", - "line_ind": "E", - "line_no": 27, - "line_ref": 40, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 41, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 155.01, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": "AU38-219B-2C", - "assigned_team": null, - "billlines": [ - { - "actual_cost": 88.36, - "actual_price": 155.01, - "bill": { - "id": "a57ce241-e00a-4ba3-9f26-e9e0e5eba1d2", - "invoice_number": "IS2595145", - "vendor": { - "id": "e54b45b4-55ab-4379-8d82-e4007e71622c", - "name": "A.P.T. AUTO PARTS TRADING CO LTD", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "4863b4ce-5c1c-4429-89ee-4b08c7c4cdd0", - "joblineid": "d5cc63f7-346d-4246-840d-fe4d1cdb217c", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.3, - "db_price": 241, - "db_ref": "201599", - "id": "d5cc63f7-346d-4246-840d-fe4d1cdb217c", - "ioucreated": false, - "lbr_amt": 26.84, - "lbr_op": "OP11", - "line_desc": "L Frt Body Headlamp Mtg Brkt", - "line_ind": "E", - "line_no": 28, - "line_ref": 44, - "location": "", - "manual_line": false, - "mod_lb_hrs": 0.3, - "mod_lbr_ty": "LAB", - "notes": "ORD APT JAN 09 ETA JAN 12", - "oem_partno": "80A 805 607", - "op_code_desc": "REMOVE / REPLACE", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAA", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 44, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "6df2b618-68ce-4138-a93d-99dbd755612c", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "CRACKED", - "line_ind": "E", - "line_no": 29, - "line_ref": 44, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 46, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0.4, - "db_price": 0, - "db_ref": "201304", - "id": "6281b001-55af-43f2-bb67-75154f396053", - "ioucreated": false, - "lbr_amt": 35.78, - "lbr_op": "OP2", - "line_desc": "L Front Combination Lamp", - "line_ind": "E", - "line_no": 30, - "line_ref": 44, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.4, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / INSTALL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 45, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 46.53, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "936007", - "id": "6efcef5e-6697-426f-998d-9db0208ed164", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP13", - "line_desc": "Shop Materials", - "line_ind": null, - "line_no": 31, - "line_ref": 4, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "ADDITIONAL COSTS", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": true, - "unq_seq": 4, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 108.2, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "936008", - "id": "e29b7c4f-d12c-44f4-84a1-414bb7a0bad5", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP13", - "line_desc": "Paint/Materials", - "line_ind": null, - "line_no": 32, - "line_ref": 6, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "ADDITIONAL COSTS", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": true, - "unq_seq": 6, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "933002", - "id": "4c35520b-9538-4101-b40e-2ec2a52285fc", - "ioucreated": false, - "lbr_amt": 35.78, - "lbr_op": "OP14", - "line_desc": "Clear Coat", - "line_ind": "E", - "line_no": 33, - "line_ref": 19, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.4, - "mod_lbr_ty": "LAR", - "notes": null, - "oem_partno": null, - "op_code_desc": "ADDITIONAL OPERATIONS", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 19, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900500", - "id": "1210db03-3a0d-4893-88ca-411de3d7484c", - "ioucreated": false, - "lbr_amt": 26.84, - "lbr_op": "OP9", - "line_desc": "ICBC POST REPAIR SCAN", - "line_ind": "E", - "line_no": 34, - "line_ref": 2, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.3, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "REPAIR", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAE", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 2, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 50, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": "Sublet", - "assigned_team": null, - "billlines": [ - { - "actual_cost": 0, - "actual_price": 50, - "bill": { - "id": "1a9798cb-1f37-4198-b2f7-a53d3b97eab2", - "invoice_number": "3077", - "vendor": { - "id": "6793335c-98f6-4472-86c5-278bb1459462", - "name": "In House", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "8a0184b4-34e4-4552-93d7-fec5fbda2f9f", - "joblineid": "ea2002b9-41f2-4a50-8757-371e333406b4", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900500", - "id": "ea2002b9-41f2-4a50-8757-371e333406b4", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP26", - "line_desc": "REPAIR PLANNING & DOCUMENTATION", - "line_ind": "E", - "line_no": 35, - "line_ref": 3, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "PAINTLESS DENT REPAIR", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAS", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 3, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900500", - "id": "a3954c53-5d55-4163-8d91-373c89453633", - "ioucreated": false, - "lbr_amt": 26.84, - "lbr_op": "OP6", - "line_desc": "TINT COLOUR", - "line_ind": "E", - "line_no": 36, - "line_ref": 5, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0.3, - "mod_lbr_ty": "LAR", - "notes": null, - "oem_partno": null, - "op_code_desc": "REFINISH", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAE", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 5, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 300, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": "Sublet", - "assigned_team": null, - "billlines": [ - { - "actual_cost": 240, - "actual_price": 300, - "bill": { - "id": "b244fa89-c8e8-49ed-bccd-e5bc1ffb891b", - "invoice_number": "169291", - "vendor": { - "id": "377a732f-6285-4937-b110-bc11984541c4", - "name": "CAPILANO AUDI INC.", - "__typename": "vendors" - }, - "__typename": "bills" - }, - "id": "225ad893-6285-46a5-a2cb-82735a4edf21", - "joblineid": "7a9fb964-807a-4b4c-8b6a-715462b2ac45", - "quantity": 1, - "__typename": "billlines" - } - ], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900500", - "id": "7a9fb964-807a-4b4c-8b6a-715462b2ac45", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP26", - "line_desc": "ADAS CALIBRATION STATIC", - "line_ind": "E", - "line_no": 37, - "line_ref": 21, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": "LAB", - "notes": null, - "oem_partno": null, - "op_code_desc": "PAINTLESS DENT REPAIR", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": "PAS", - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": "Received", - "tax_part": true, - "unq_seq": 21, - "include_in_part_cnt": false, - "__typename": "joblines" - }, - { - "act_price": 0, - "act_price_before_ppc": null, - "ah_detail_line": false, - "alt_partm": null, - "alt_partno": null, - "assigned_team": null, - "billlines": [], - "convertedtolbr": false, - "critical": false, - "db_hrs": 0, - "db_price": 0, - "db_ref": "900501", - "id": "5eafbf12-5502-40a0-8b23-e6376acbfc17", - "ioucreated": false, - "lbr_amt": 0, - "lbr_op": "OP0", - "line_desc": "Adaptive Cruise Control -- ADAS OEM REQU", - "line_ind": "E", - "line_no": 38, - "line_ref": 21, - "location": null, - "manual_line": false, - "mod_lb_hrs": 0, - "mod_lbr_ty": null, - "notes": null, - "oem_partno": null, - "op_code_desc": "REMOVE / REPLACE PARTIAL", - "parts_dispatch_lines": [], - "part_qty": 1, - "part_type": null, - "prt_dsmk_m": 0, - "prt_dsmk_p": 0, - "status": null, - "tax_part": false, - "unq_seq": 22, - "include_in_part_cnt": false, - "__typename": "joblines" - } - ], - "kmin": 23959, - "kmout": null, - "labor_rate_desc": "EST", - "lbr_adjustments": {}, - "local_tax_rate": null, - "loss_date": "2025-12-23", - "loss_desc": "Other", - "loss_of_use": "RS+ ", - "lost_sale_reason": null, - "materials": { - "mapa": { - "cal_maxdlr": 9999.99, - "cal_opcode": "OP13" - }, - "mash": { - "cal_maxdlr": 9999.99, - "cal_opcode": "OP13" - } - }, - "other_amount_payable": null, - "owner": { - "id": "20615805-d911-4998-aa38-d0fcd08e49b2", - "note": null, - "ownr_addr1": "6500 CHATSWORTH RD", - "ownr_addr2": null, - "ownr_city": "RICHMOND", - "ownr_co_nm": null, - "ownr_ctry": null, - "ownr_ea": "fengwenilucy@gmail.com", - "ownr_fn": "KUN", - "ownr_ln": "LIN", - "ownr_ph1": "6043796180", - "ownr_ph2": "7789556180", - "ownr_ph1_ty": null, - "ownr_ph2_ty": null, - "ownr_st": "BC", - "ownr_zip": "V7C 3S3", - "tax_number": null, - "__typename": "owners" - }, - "ownerid": "20615805-d911-4998-aa38-d0fcd08e49b2", - "owner_owing": 300, - "ownr_addr1": "6500 CHATSWORTH RD", - "ownr_addr2": null, - "ownr_city": "RICHMOND", - "ownr_co_nm": null, - "ownr_ctry": null, - "ownr_ea": "fengwenilucy@gmail.com", - "ownr_fn": "KUN", - "ownr_ln": "LIN", - "ownr_ph1": "6043796180", - "ownr_ph2": "7789556180", - "ownr_ph1_ty": null, - "ownr_ph2_ty": null, - "ownr_st": "BC", - "ownr_zip": "V7C 3S3", - "parts_tax_rates": { - "CCC": {}, - "CCD": {}, - "CCF": {}, - "CCM": {}, - "PAA": { - "prt_type": "PAA", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAC": { - "prt_type": "PAC", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAG": {}, - "PAL": { - "prt_type": "PAL", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAM": { - "prt_type": "PAM", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAN": { - "prt_type": "PAN", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAO": {}, - "PAP": {}, - "PAR": { - "prt_type": "PAR", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "PAS": { - "prt_type": "PAS", - "prt_discp": 0, - "prt_mktyp": false, - "prt_mkupp": 0, - "prt_tax_in": true, - "prt_tax_rt": 0.07 - }, - "CCDR": {}, - "PASL": {} - }, - "payments": [ - { - "amount": 300, - "created_at": "2026-01-22T00:53:01.352735+00:00", - "date": "2026-01-21", - "exportedat": "2026-01-22T23:29:19.294+00:00", - "id": "98088180-cc9f-469e-b1a1-586775aae73a", - "jobid": "62fcba91-b8df-4076-b5f5-14f8827c8f92", - "memo": null, - "payer": "Customer", - "paymentnum": "2489", - "transactionid": "075921", - "type": "Visa", - "__typename": "payments" - } - ], - "plate_no": "HW815N", - "plate_st": "BC", - "po_number": null, - "policy_no": "5L.LHS", - "production_vars": { - "note": null - }, - "rate_ats": null, - "rate_ats_flat": null, - "rate_la1": 97.8, - "rate_la2": 0, - "rate_la3": 107.35, - "rate_la4": 0, - "rate_laa": 107.35, - "rate_lab": 89.46, - "rate_lad": null, - "rate_lae": null, - "rate_laf": 102.27, - "rate_lag": 89.46, - "rate_lam": 115.05, - "rate_lar": 89.46, - "rate_las": 89.46, - "rate_lau": 0, - "rate_ma2s": 0, - "rate_ma2t": 0, - "rate_ma3s": 0, - "rate_mabl": null, - "rate_macs": 0, - "rate_mahw": 0, - "rate_mapa": 60.11, - "rate_mash": 7.05, - "rate_matd": null, - "referral_source": null, - "referral_source_extra": null, - "regie_number": "12984170", - "remove_from_ar": false, - "ro_number": "58117", - "scheduled_completion": "2026-01-21T22:15:39.3+00:00", - "scheduled_delivery": "2026-01-21T08:00:00+00:00", - "scheduled_in": null, - "selling_dealer": null, - "estimate_approved": "2026-01-20T19:33:34.829+00:00", - "estimate_sent_approval": "2026-01-09T23:17:39.023+00:00", - "selling_dealer_contact": null, - "servicing_dealer": null, - "servicing_dealer_contact": null, - "special_coverage_policy": false, - "state_tax_rate": null, - "status": "Exported", - "storage_payable": null, - "suspended": false, - "tax_lbr_rt": 0.07, - "tax_levies_rt": 0.07, - "tax_paint_mat_rt": 0.07, - "tax_registration_number": null, - "tax_shop_mat_rt": 0.07, - "tax_str_rt": 0.07, - "tax_sub_rt": 0.07, - "tax_tow_rt": 0.07, - "tlos_ind": false, - "towin": false, - "towing_payable": null, - "unit_number": null, - "updated_at": "2026-01-26T19:19:12.944388+00:00", - "v_color": "Navarra Blue", - "v_make_desc": "Audi", - "v_model_yr": "18", - "v_model_desc": "SQ5", - "v_vin": "WA1A4AFY5J2082044", - "notes": [], - "vehicle": { - "id": "5a834070-9cf4-420d-90a4-08df96303af4", - "jobs": [ - { - "clm_no": "DA37868-0-A", - "id": "62fcba91-b8df-4076-b5f5-14f8827c8f92", - "ro_number": "58117", - "status": "Exported", - "__typename": "jobs" - } - ], - "notes": null, - "plate_no": "HW815N", - "plate_st": "BC", - "v_color": "LX5H Navarra Blue", - "v_make_desc": "Audi", - "v_model_yr": "18", - "v_model_desc": "SQ5", - "v_paint_codes": { - "paint_cd1": "LX5H Navarra Blue", - "paint_cd2": null - }, - "v_vin": "WA1A4AFY5J2082044", - "__typename": "vehicles" - }, - "vehicleid": "5a834070-9cf4-420d-90a4-08df96303af4", - "voided": false, - "__typename": "jobs" } \ No newline at end of file diff --git a/server/ai/bill-ocr/bill-ocr-normalize.js b/server/ai/bill-ocr/bill-ocr-normalize.js index c519f654a..7e39949a6 100644 --- a/server/ai/bill-ocr/bill-ocr-normalize.js +++ b/server/ai/bill-ocr/bill-ocr-normalize.js @@ -39,9 +39,9 @@ function normalizeLabelName(labelText) { 'part_num': standardizedFieldsnames.part_no, 'part_number': standardizedFieldsnames.part_no, 'price': standardizedFieldsnames.actual_price, - 'unit_price': standardizedFieldsnames.actual_price, 'amount': standardizedFieldsnames.actual_price, 'list_price': standardizedFieldsnames.actual_price, + 'unit_price': standardizedFieldsnames.actual_price, 'list': standardizedFieldsnames.actual_price, 'retail_price': standardizedFieldsnames.actual_price, 'net': standardizedFieldsnames.actual_cost, @@ -145,6 +145,7 @@ function extractInvoiceData(textractResponse) { if (lineItemGroup.LineItems) { lineItemGroup.LineItems.forEach(lineItem => { const item = {}; + const fieldNameCounts = {}; // Track field name occurrences if (lineItem.LineItemExpenseFields) { lineItem.LineItemExpenseFields.forEach(field => { @@ -155,7 +156,14 @@ function extractInvoiceData(textractResponse) { if (fieldType && fieldValue) { // Normalize field names - const normalizedField = normalizeFieldName(fieldType); + let normalizedField = normalizeFieldName(fieldType); + + // Ensure uniqueness by appending a counter if the field already exists + if (item.hasOwnProperty(normalizedField)) { + fieldNameCounts[normalizedField] = (fieldNameCounts[normalizedField] || 1) + 1; + normalizedField = `${normalizedField}_${fieldNameCounts[normalizedField]}`; + } + item[normalizedField] = { value: fieldValue, label: fieldLabel, diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js index cba3af558..ce8f9cae9 100644 --- a/server/ai/bill-ocr/bill-ocr.js +++ b/server/ai/bill-ocr/bill-ocr.js @@ -62,7 +62,19 @@ async function handleBillOcr(request, response) { // The uploaded file is available in request.file const uploadedFile = request.file; - const { jobid, bodyshopid, parts_orderid } = request.body; + const { jobid, bodyshopid, partsorderid, skipTextract } = request.body; + + + if (skipTextract === 'true') { + console.log('Skipping Textract processing as per request'); + response.status(200).send({ + success: true, + status: 'COMPLETED', + data: await generateBillFormData({ processedData: null, jobid, bodyshopid, partsorderid }), //This is broken if the processedData is not overwritten in the function for testing. + message: 'Invoice processing completed' + }); + return; + } try { const fileType = getFileType(uploadedFile); @@ -71,12 +83,12 @@ async function handleBillOcr(request, response) { // Images are always processed synchronously (single page) if (fileType === 'image') { console.log('Image => 1 page, processing synchronously'); - const result = await processSinglePageDocument(uploadedFile.buffer); - + const processedData = await processSinglePageDocument(uploadedFile.buffer); + const billForm = await generateBillFormData({ processedData: processedData, jobid, bodyshopid, partsorderid }); response.status(200).send({ success: true, status: 'COMPLETED', - data: result, + data: { ...processedData, billForm }, message: 'Invoice processing completed' }); } else if (fileType === 'pdf') { @@ -87,13 +99,13 @@ async function handleBillOcr(request, response) { if (pageCount === 1) { // Process synchronously for single-page documents console.log('PDF => 1 page, processing synchronously'); - const result = await processSinglePageDocument(uploadedFile.buffer); - + const processedData = await processSinglePageDocument(uploadedFile.buffer); + const billForm = await generateBillFormData({ processedData: processedData, jobid, bodyshopid, partsorderid }); //const billResult = await generateBillFormData({ result, }); response.status(200).send({ success: true, status: 'COMPLETED', - data: { result, }, + data: { ...processedData, billForm }, message: 'Invoice processing completed' }); } else { @@ -142,9 +154,13 @@ async function handleBillOcrStatus(request, response) { } if (jobStatus.status === 'COMPLETED') { + //TODO: This needs to be stored in the redis cache and pulled when it's processed. + //const billForm = await generateBillFormData({ jobid, bodyshopid, partsorderid }); + response.status(200).send({ status: 'COMPLETED', data: jobStatus.data + // data: { ...jobStatus.data, billForm } }); } else if (jobStatus.status === 'FAILED') { response.status(500).send({ From 96731a29e167717d9d2100f6b1575bb0524a610a Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 28 Jan 2026 16:23:15 -0800 Subject: [PATCH 06/25] Remove test data. --- server/ai/bill-ocr/bill-ocr-generator.js | 412 +---------------------- 1 file changed, 1 insertion(+), 411 deletions(-) diff --git a/server/ai/bill-ocr/bill-ocr-generator.js b/server/ai/bill-ocr/bill-ocr-generator.js index c35ca3076..4e860634f 100644 --- a/server/ai/bill-ocr/bill-ocr-generator.js +++ b/server/ai/bill-ocr/bill-ocr-generator.js @@ -126,7 +126,7 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord throw new Error('Job not found for bill form data generation.'); } //Figure out which lines have a match and which don't. - + //TODO: How do we handle freight lines and core charges? //Create the form data structure for the bill posting screen. @@ -378,413 +378,3 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { module.exports = { generateBillFormData } - -const processedDataFromCoache = { - "result": { - "summary": { - "ADDRESS": { - "value": "Capilano Audi\n813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", - "label": "", - "normalizedLabel": "", - "confidence": 99.5746078491211 - }, - "STREET": { - "value": "813 Automall Drive,", - "label": "", - "normalizedLabel": "", - "confidence": 99.95982360839844 - }, - "CITY": { - "value": "North Vancouver,", - "label": "", - "normalizedLabel": "", - "confidence": 99.6387939453125 - }, - "STATE": { - "value": "CA", - "label": "", - "normalizedLabel": "", - "confidence": 90.67389678955078 - }, - "ZIP_CODE": { - "value": "3R8,", - "label": "", - "normalizedLabel": "", - "confidence": 99.11088562011719 - }, - "COUNTRY": { - "value": "Canada,", - "label": "", - "normalizedLabel": "", - "confidence": 99.96498107910156 - }, - "ADDRESS_BLOCK": { - "value": "813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", - "label": "", - "normalizedLabel": "", - "confidence": 97.51412200927734 - }, - "NAME": { - "value": "Tekion Corp", - "label": "", - "normalizedLabel": "", - "confidence": 85.7325439453125 - }, - "DISCOUNT": { - "value": "$0.00", - "label": "Discount", - "normalizedLabel": "UNKNOWN_discount", - "confidence": 99.7116470336914 - }, - "INVOICE_RECEIPT_DATE": { - "value": "Jan 13 2026", - "label": "", - "normalizedLabel": "", - "confidence": 84.63554382324219 - }, - "INVOICE_RECEIPT_ID": { - "value": "72821", - "label": "Parts Invoice", - "normalizedLabel": "UNKNOWN_parts_invoice", - "confidence": 98.97218322753906 - }, - "TAX_PAYER_ID": { - "value": "713564805RT000", - "label": "G.S.T.#", - "normalizedLabel": "UNKNOWN_gst", - "confidence": 93.07450866699219 - }, - "VENDOR_VAT_NUMBER": { - "value": "713564805RT000", - "label": "G.S.T.#", - "normalizedLabel": "UNKNOWN_gst", - "confidence": 93.07450866699219 - }, - "PO_NUMBER": { - "value": "58117", - "label": "Customer PO No :", - "normalizedLabel": "UNKNOWN_customer_po_no_", - "confidence": 98.43647003173828 - }, - "RECEIVER_ADDRESS": { - "value": "1172 W 3RD ST\nNORTH VANCOUVER, BC\nCanada, V7P 1E6", - "label": "Billing Address", - "normalizedLabel": "UNKNOWN_billing_address", - "confidence": 99.65380859375 - }, - "RECEIVER_NAME": { - "value": "6992 COACHE COLLISION LTD.\n-", - "label": "", - "normalizedLabel": "", - "confidence": 76.0853500366211 - }, - "RECEIVER_PHONE": { - "value": "(604) 987 2211", - "label": "", - "normalizedLabel": "", - "confidence": 70.94715118408203 - }, - "SUBTOTAL": { - "value": "$4,421.82", - "label": "Sub Total", - "normalizedLabel": "UNKNOWN_sub_total", - "confidence": 99.92008972167969 - }, - "TAX": { - "value": "$221.09", - "label": "GST", - "normalizedLabel": "UNKNOWN_gst", - "confidence": 99.90827178955078 - }, - "TOTAL": { - "value": "$4,642.91", - "label": "Total", - "normalizedLabel": "UNKNOWN_total", - "confidence": 99.9670639038086 - }, - "VENDOR_ADDRESS": { - "value": "Capilano Audi\n813 Automall Drive, North Vancouver, BC V7P\n3R8, CA", - "label": "", - "normalizedLabel": "", - "confidence": 99.5746078491211 - }, - "VENDOR_NAME": { - "value": "Tekion Corp", - "label": "", - "normalizedLabel": "", - "confidence": 85.7325439453125 - }, - "VENDOR_PHONE": { - "value": "(604) 985-0693,", - "label": "Tel:", - "normalizedLabel": "UNKNOWN_tel", - "confidence": 92.17896270751953 - } - }, - "lineItems": [ - { - "PRODUCT_CODE": { - "value": "80A-807-107-G-GRU", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 60.69740676879883 - }, - "ITEM": { - "value": "80A-807-107-G-GRU COVER\n-", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 80.92524719238281 - }, - "PRICE": { - "value": "$914.16", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.99465942382812 - }, - "QUANTITY": { - "value": "1", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 98.02381134033203 - }, - "UNIT_PRICE": { - "value": "$914.16", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 90.97144317626953 - }, - "EXPENSE_ROW": { - "value": "price\n1 80A-807-107-G-GRU COVER 1 SP-ORD $1,172.00 $914.16 $914.16\n-\nchange", - "label": "", - "normalizedLabel": "", - "confidence": 95.68555450439453 - } - }, - { - "OTHER": { - "value": "2", - "label": "1", - "normalizedLabel": "UNKNOWN_1", - "confidence": 75.68085479736328 - }, - "PRODUCT_CODE": { - "value": "80A-807-647-C-9B9", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 63.68674087524414 - }, - "ITEM": { - "value": "80A-807-647-C-9B9 GRILLE\n-", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 82.46648406982422 - }, - "PRICE": { - "value": "$191.88", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.9972915649414 - }, - "QUANTITY": { - "value": "1", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.20547485351562 - }, - "UNIT_PRICE": { - "value": "$191.88", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 93.8568344116211 - }, - "OTHER_2": { - "value": "SP-ORD", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 90.64925384521484 - }, - "OTHER_3": { - "value": "$246.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 90.83607482910156 - }, - "EXPENSE_ROW": { - "value": "2 80A-807-647-C-9B9 GRILLE 1 SP-ORD $246.00 $191.88 $191.88\n-", - "label": "", - "normalizedLabel": "", - "confidence": 95.46671295166016 - } - }, - { - "OTHER": { - "value": "3", - "label": "1", - "normalizedLabel": "UNKNOWN_1", - "confidence": 73.59772491455078 - }, - "PRODUCT_CODE": { - "value": "80A-807-661-A-GRU", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 73.04312133789062 - }, - "ITEM": { - "value": "80A-807-661-A-GRU CONN PIECE\n-", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 84.59918212890625 - }, - "PRICE": { - "value": "$223.08", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.99654388427734 - }, - "QUANTITY": { - "value": "1", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.30966186523438 - }, - "UNIT_PRICE": { - "value": "$223.08", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 91.8134765625 - }, - "OTHER_2": { - "value": "SP-ORD", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 88.12962341308594 - }, - "OTHER_3": { - "value": "$286.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 88.31619262695312 - }, - "EXPENSE_ROW": { - "value": "3 80A-807-661-A-GRU CONN PIECE 1 SP-ORD $286.00 $223.08 $223.08\n-", - "label": "", - "normalizedLabel": "", - "confidence": 95.99571228027344 - } - }, - { - "OTHER": { - "value": "4", - "label": "1", - "normalizedLabel": "UNKNOWN_1", - "confidence": 74.5914306640625 - }, - "PRODUCT_CODE": { - "value": "80A-853-765--3Q7", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 79.21212005615234 - }, - "ITEM": { - "value": "80A-853-765--3Q7 MOLDING\n-", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 75.85474395751953 - }, - "PRICE": { - "value": "$994.50", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.99325561523438 - }, - "QUANTITY": { - "value": "1", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 98.7352294921875 - }, - "UNIT_PRICE": { - "value": "$994.50", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 96.28019714355469 - }, - "OTHER_2": { - "value": "SP-ORD", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 89.3599853515625 - }, - "OTHER_3": { - "value": "$1,275.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 89.5396499633789 - }, - "EXPENSE_ROW": { - "value": "4 80A-853-765--3Q7 MOLDING 1 SP-ORD $1,275.00 $994.50 $994.50\n-", - "label": "", - "normalizedLabel": "", - "confidence": 96.20103454589844 - } - }, - { - "OTHER": { - "value": "5", - "label": "1", - "normalizedLabel": "UNKNOWN_1", - "confidence": 75.91088104248047 - }, - "ITEM": { - "value": "GRILLE", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 84.18718719482422 - }, - "PRICE": { - "value": "$2,098.20", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.97396087646484 - }, - "QUANTITY": { - "value": "1", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 99.32916259765625 - }, - "UNIT_PRICE": { - "value": "$2,098.20", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 98.04034423828125 - }, - "PRODUCT_CODE": { - "value": "80A-853-651-L-RP5", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 86.12691497802734 - }, - "OTHER_2": { - "value": "SP-ORD", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 90.96830749511719 - }, - "OTHER_3": { - "value": "$2,690.00", - "label": "38", - "normalizedLabel": "UNKNOWN_38", - "confidence": 91.14651489257812 - }, - "EXPENSE_ROW": { - "value": "5 80A-853-651-L-RP5 GRILLE 1 SP-ORD $2,690.00 $2,098.20 $2,098.20\n-", - "label": "", - "normalizedLabel": "", - "confidence": 93.76665496826172 - } - } - ], - - } -} \ No newline at end of file From 20dad2cabaca0a6ddd5372a9935747402856e405 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Thu, 29 Jan 2026 16:26:16 -0800 Subject: [PATCH 07/25] IO-3515 Minimally functional form fill out. --- .../bill-enter-modal.container.jsx | 13 ++- .../vendor-search-select.component.jsx | 7 +- server/ai/bill-ocr/bill-ocr-generator.js | 105 ++++++++++++++++-- server/ai/bill-ocr/bill-ocr-normalize.js | 7 +- server/ai/bill-ocr/bill-ocr.js | 6 +- server/routes/aiRoutes.js | 4 +- 6 files changed, 124 insertions(+), 18 deletions(-) diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx index 4338f9bea..f15e7c6a2 100644 --- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx +++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx @@ -434,7 +434,7 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, formdata.append("jobid", billEnterModal.context.job.id); formdata.append("bodyshopid", bodyshop.id); formdata.append("partsorderid", "3dd26419-a139-4399-af4e-43eeb6f0dbad"); - // formdata.append("skipTextract", "true"); // For testing purposes + //formdata.append("skipTextract", "true"); // For testing purposes axios .post("/ai/bill-ocr", formdata) .then(({ data }) => { @@ -451,6 +451,17 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, e.target.value = ""; }} /> + setGenerateLabel(e.target.checked)}> {t("bills.labels.generatepartslabel")} diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx index 5b4a5ca8c..c6b2c8d0e 100644 --- a/client/src/components/bill-form/bill-form.lines.component.jsx +++ b/client/src/components/bill-form/bill-form.lines.component.jsx @@ -210,6 +210,18 @@ export function BillEnterModalLinesComponent({ }), formInput: () => }, + { + title: t("billlines.fields.confidence"), + dataIndex: "confidence", + editable: true, + width: "4rem", + formItemProps: (field) => ({ + key: `${field.index}confidence`, + name: [field.name, "confidence"], + label: t("billlines.fields.confidence") + }), + formInput: () => + }, { title: t("billlines.fields.quantity"), dataIndex: "quantity", diff --git a/server/ai/bill-ocr/bill-ocr-generator.js b/server/ai/bill-ocr/bill-ocr-generator.js index b366cb2ca..18c3552af 100644 --- a/server/ai/bill-ocr/bill-ocr-generator.js +++ b/server/ai/bill-ocr/bill-ocr-generator.js @@ -162,6 +162,9 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord bodyshop{ id md_responsibility_centers + cdk_dealerid + pbs_serialnumber + rr_dealerid } joblines { id @@ -171,6 +174,7 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord db_price oem_partno alt_partno + part_type } } parts_orders_by_pk(id: $partsorderid) { @@ -186,6 +190,7 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord act_price oem_partno alt_partno + part_type } } } @@ -325,13 +330,21 @@ async function generateBillFormData({ processedData, jobid, bodyshopid, partsord } } + const responsibilityCenters = job.bodyshop.md_responsibility_centers //TODO: Do we need to verify the lines to see if it is a unit price or total price (i.e. quantity * price) const lineObject = { "line_desc": matchToUse?.item?.line_desc || textractLineItem.ITEM?.value || "NO DESCRIPTION", "quantity": textractLineItem.QUANTITY?.value, // convert to integer? "actual_price": normalizePrice(actualPrice), "actual_cost": normalizePrice(actualCost), - "cost_center": "SETBYCLIENT", //Needs to get set by client side. + "cost_center": matchToUse?.item?.part_type + ? bodyshopHasDmsKey(job.bodyshop) + ? matchToUse?.item?.part_type !== "PAE" + ? matchToUse?.item?.part_type + : null + : responsibilityCenters.defaults && + (responsibilityCenters.defaults.costs[matchToUse?.item?.part_type] || null) + : null, //Needs to get set by client side. "applicable_taxes": { //Not sure what to do with these? "federal": false, "state": false, @@ -579,6 +592,10 @@ function joblineFuzzySearch({ fuseToSearch, processedData }) { return matches } +const bodyshopHasDmsKey = (bodyshop) => + bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber || bodyshop.rr_dealerid; + + module.exports = { generateBillFormData } diff --git a/server/ai/bill-ocr/bill-ocr.js b/server/ai/bill-ocr/bill-ocr.js index adee2c3c3..69d79d8a6 100644 --- a/server/ai/bill-ocr/bill-ocr.js +++ b/server/ai/bill-ocr/bill-ocr.js @@ -111,7 +111,7 @@ async function handleBillOcr(request, response) { } else { // Start the Textract job (non-blocking) for multi-page documents console.log('PDF => 2+ pages, processing asynchronously'); - const jobInfo = await startTextractJob(uploadedFile.buffer); + const jobInfo = await startTextractJob(uploadedFile.buffer, { jobid, bodyshopid, partsorderid }); response.status(202).send({ success: true, @@ -154,13 +154,50 @@ async function handleBillOcrStatus(request, response) { } if (jobStatus.status === 'COMPLETED') { - //TODO: This needs to be stored in the redis cache and pulled when it's processed. - //const billForm = await generateBillFormData({ jobid, bodyshopid, partsorderid }); - + // Generate billForm on-demand if not already generated + let billForm = jobStatus.data?.billForm; + + if (!billForm && jobStatus.context) { + try { + console.log('Generating bill form data on-demand...'); + billForm = await generateBillFormData({ + processedData: jobStatus.data, + jobid: jobStatus.context.jobid, + bodyshopid: jobStatus.context.bodyshopid, + partsorderid: jobStatus.context.partsorderid, + req: request // Now we have request context! + }); + + // Cache the billForm back to Redis for future requests + await setTextractJob({ + redisPubClient, + textractJobId, + jobData: { + ...jobStatus, + data: { + ...jobStatus.data, + billForm + } + } + }); + } catch (error) { + console.error('Error generating bill form data:', error); + response.status(500).send({ + status: 'COMPLETED', + error: 'Data processed but failed to generate bill form', + message: error.message, + data: jobStatus.data // Still return the raw processed data + }); + return; + } + } + response.status(200).send({ status: 'COMPLETED', - data: jobStatus.data - // data: { ...jobStatus.data, billForm } + data: { + ...jobStatus.data, + billForm + } }); } else if (jobStatus.status === 'FAILED') { response.status(500).send({ @@ -199,7 +236,7 @@ async function processSinglePageDocument(pdfBuffer) { }; } -async function startTextractJob(pdfBuffer) { +async function startTextractJob(pdfBuffer, context = {}) { // Upload PDF to S3 temporarily for Textract async processing const s3Bucket = process.env.AWS_AI_BUCKET; const snsTopicArn = process.env.AWS_TEXTRACT_SNS_TOPIC_ARN; @@ -254,7 +291,8 @@ async function startTextractJob(pdfBuffer) { status: 'IN_PROGRESS', s3Key: s3Key, uploadId: uploadId, - startedAt: new Date().toISOString() + startedAt: new Date().toISOString(), + context: context // Store the context for later use } } ); @@ -349,6 +387,7 @@ async function handleTextractNotification(message) { // Retrieve the results const { processedData, originalResponse } = await retrieveTextractResults(textractJobId); + // Store the processed data - billForm will be generated on-demand in the status endpoint await setTextractJob( { redisPubClient, From e6100851b8f23c5ff41ce36db5353f4fa4c9c600 Mon Sep 17 00:00:00 2001 From: Dave Date: Wed, 11 Feb 2026 10:14:55 -0500 Subject: [PATCH 14/25] feature/IO-3544-Ant-Select-Deprecation - Packages --- client/package-lock.json | 455 ++++++++++++++-------------- client/package.json | 34 +-- package-lock.json | 626 ++++++++++++++++++++++----------------- package.json | 28 +- 4 files changed, 605 insertions(+), 538 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 8d94aae22..a821ad1a9 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,9 +9,9 @@ "version": "0.2.1", "hasInstallScript": true, "dependencies": { - "@amplitude/analytics-browser": "^2.34.0", + "@amplitude/analytics-browser": "^2.34.1", "@ant-design/pro-layout": "^7.22.6", - "@apollo/client": "^4.1.3", + "@apollo/client": "^4.1.4", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", @@ -19,32 +19,32 @@ "@emotion/is-prop-valid": "^1.4.0", "@fingerprintjs/fingerprintjs": "^5.0.1", "@firebase/analytics": "^0.10.19", - "@firebase/app": "^0.14.7", + "@firebase/app": "^0.14.8", "@firebase/auth": "^1.12.0", - "@firebase/firestore": "^4.10.0", + "@firebase/firestore": "^4.11.0", "@firebase/messaging": "^0.12.22", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.11.2", - "@sentry/cli": "^3.1.0", + "@sentry/cli": "^3.2.0", "@sentry/react": "^10.38.0", - "@sentry/vite-plugin": "^4.9.0", + "@sentry/vite-plugin": "^4.9.1", "@splitsoftware/splitio-react": "^2.6.1", - "@tanem/react-nprogress": "^5.0.59", - "antd": "^6.2.3", + "@tanem/react-nprogress": "^5.0.60", + "antd": "^6.3.0", "apollo-link-logger": "^3.0.0", "autosize": "^6.0.1", - "axios": "^1.13.4", + "axios": "^1.13.5", "classnames": "^2.5.1", "css-box-model": "^1.2.1", "dayjs": "^1.11.19", "dayjs-business-days2": "^1.3.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.3", + "dotenv": "^17.2.4", "env-cmd": "^11.0.0", "exifr": "^7.1.3", "graphql": "^16.12.0", "graphql-ws": "^6.0.7", - "i18next": "^25.8.1", + "i18next": "^25.8.5", "i18next-browser-languagedetector": "^8.2.0", "immutability-helper": "^3.1.1", "libphonenumber-js": "^1.12.36", @@ -55,7 +55,7 @@ "normalize-url": "^8.1.1", "object-hash": "^3.0.0", "phone": "^3.1.70", - "posthog-js": "^1.341.0", + "posthog-js": "^1.345.4", "prop-types": "^15.8.1", "query-string": "^9.3.1", "raf-schd": "^4.0.3", @@ -88,7 +88,7 @@ "rxjs": "^7.8.2", "sass": "^1.97.3", "socket.io-client": "^4.8.3", - "styled-components": "^6.3.8", + "styled-components": "^6.3.9", "vite-plugin-ejs": "^1.7.0", "web-vitals": "^5.1.0" }, @@ -100,11 +100,11 @@ "@emotion/babel-plugin": "^11.13.5", "@emotion/react": "^11.14.0", "@eslint/js": "^9.39.2", - "@playwright/test": "^1.58.1", + "@playwright/test": "^1.58.2", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", - "@vitejs/plugin-react": "^5.1.3", + "@vitejs/plugin-react": "^5.1.4", "babel-plugin-react-compiler": "^1.0.0", "browserslist": "^4.28.1", "browserslist-to-esbuild": "^2.1.1", @@ -116,12 +116,12 @@ "jsdom": "^28.0.0", "memfs": "^4.56.10", "os-browserify": "^0.3.0", - "playwright": "^1.58.1", + "playwright": "^1.58.2", "react-error-overlay": "^6.1.0", "redux-logger": "^3.0.6", "source-map-explorer": "^2.5.3", "vite": "^7.3.1", - "vite-plugin-babel": "^1.4.1", + "vite-plugin-babel": "^1.5.1", "vite-plugin-eslint": "^1.8.1", "vite-plugin-node-polyfills": "^0.25.0", "vite-plugin-pwa": "^1.2.0", @@ -151,17 +151,17 @@ "license": "MIT" }, "node_modules/@amplitude/analytics-browser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.34.0.tgz", - "integrity": "sha512-a5AeUBs6AbgfEPBNVP1/FM8+0ZBjIzbfYcVJq2Lkvb0EaeEI09vrl+zFeJSDcjg5nsDBmz7oKV8j2kbGJHbZ9w==", + "version": "2.34.1", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.34.1.tgz", + "integrity": "sha512-dxyzk0nTkw+CgFPpOwUVgJO2acn9/P1MDE6NYaoM9WSvWkfesbgzdAnnh7PMjTu+aIeXgT2hSQtxAznBKv5rqA==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", - "@amplitude/plugin-autocapture-browser": "1.19.0", - "@amplitude/plugin-network-capture-browser": "1.7.8", - "@amplitude/plugin-page-url-enrichment-browser": "0.5.14", - "@amplitude/plugin-page-view-tracking-browser": "2.6.11", - "@amplitude/plugin-web-vitals-browser": "1.1.9", + "@amplitude/analytics-core": "2.38.0", + "@amplitude/plugin-autocapture-browser": "1.20.0", + "@amplitude/plugin-network-capture-browser": "1.7.9", + "@amplitude/plugin-page-url-enrichment-browser": "0.5.15", + "@amplitude/plugin-page-view-tracking-browser": "2.6.12", + "@amplitude/plugin-web-vitals-browser": "1.1.10", "tslib": "^2.4.1" } }, @@ -172,9 +172,9 @@ "license": "MIT" }, "node_modules/@amplitude/analytics-core": { - "version": "2.37.0", - "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.37.0.tgz", - "integrity": "sha512-/2vIyquLMSA29MMM901d5DOhBZ5bc6Qf4s0KVfRk8Avn90mC7KlE5SQiHOAW8+63o5aT1NtB0djrY4cq8Y8Opw==", + "version": "2.38.0", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.38.0.tgz", + "integrity": "sha512-cYFNox/mb8uWxdUFEMsS5Uj79BiWm3t1Dm+y5AS085tjbZ2RIxYsytb7ieeWCxd2cXEIpDPbcYhScU4Hm1Ky9g==", "license": "MIT", "dependencies": { "@amplitude/analytics-connector": "^1.6.4", @@ -183,52 +183,52 @@ } }, "node_modules/@amplitude/plugin-autocapture-browser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.19.0.tgz", - "integrity": "sha512-ga0TXxE87wNMgFvVUPE7a+HGMqMz9/Gy6C7ux3cgcuy8D7Z/Te5iMZmMadK/ztmQ3/pSZjYv9iDvOFsT6ywMZw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.20.0.tgz", + "integrity": "sha512-fuXmHDfGSx9iRHqTcXGaNaBUEZZqjLBhsujH16CfGngzug7C6Btfilev3nvxddwTwfhJ17MtFXIqJMWs7ahBTQ==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", + "@amplitude/analytics-core": "2.38.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-network-capture-browser": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.7.8.tgz", - "integrity": "sha512-SZj3m3O8yI040+Nto9uLi5eM0AclEi8hkZttLSKKVCJVIdi5xE1z9oC7lTir1h2b198unTqP2o7cmzEqI1wBoA==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.7.9.tgz", + "integrity": "sha512-Osu9O3SnNNNRZqqaBdMQ00F6Sdfg282BhCgzOf+zoDd1VEbtOpbBsXu7ofdUyEZ17Ey2z3sKprhkc96t+Bkb9w==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", + "@amplitude/analytics-core": "2.38.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-page-url-enrichment-browser": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-url-enrichment-browser/-/plugin-page-url-enrichment-browser-0.5.14.tgz", - "integrity": "sha512-vaAGxMgxQbsRKWtIKiMp3kVdg4RSsAzwlffDw7ifTw1yObVV2vVeBPb/O24cLf49NrhZ3ZuJlaxGmRxoY4FWow==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-url-enrichment-browser/-/plugin-page-url-enrichment-browser-0.5.15.tgz", + "integrity": "sha512-Z0UYsfLoRYTnXp7QWsGPozawvpQrgiN8ZhvCnBSPveaeZE76uT8ShSZMF7p4L4epFoCMNXbrDk3PuIWr0+S+Ow==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", + "@amplitude/analytics-core": "2.38.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-page-view-tracking-browser": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.6.11.tgz", - "integrity": "sha512-/UqXipdOWOsmn8Uw1BibOfgLMvjE8YYYI8bXL2vZ6D2mk6c0FdGe17BmccsLr1LVGx3HObZoIGnxje+0X1j07w==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.6.12.tgz", + "integrity": "sha512-LCUwQ23uS3QpjXWINpnh7qeJ0+i+Mx5BbXNBiU3uPRgAvaCGpMjHglHn44cc/RU8SEtm+25mrbNWb5n9Ky9Vfg==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", + "@amplitude/analytics-core": "2.38.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-web-vitals-browser": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-web-vitals-browser/-/plugin-web-vitals-browser-1.1.9.tgz", - "integrity": "sha512-hVGsJWtJQpHlpfC+IubCixe7KNmqaDkWO0XkwkLkn4T/FjFgK+rp9edBJr5KSi0enfcN+49DxJ4qQKu7NncIMA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-web-vitals-browser/-/plugin-web-vitals-browser-1.1.10.tgz", + "integrity": "sha512-V2ciIBPa+BMb1OC1dqcscHfQoY79RARNOOqohtJ+NZRM88AjhVGca+hs4igkIqbIju5Pjri2HU9TYwHbi550pg==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.37.0", + "@amplitude/analytics-core": "2.38.0", "tslib": "^2.4.1", "web-vitals": "5.1.0" } @@ -262,12 +262,12 @@ } }, "node_modules/@ant-design/cssinjs-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.0.2.tgz", - "integrity": "sha512-Mq3Hm6fJuQeFNKSp3+yT4bjuhVbdrsyXE2RyfpJFL0xiYNZdaJ6oFaE3zFrzmHbmvTd2Wp3HCbRtkD4fU+v2ZA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-2.1.1.tgz", + "integrity": "sha512-RKxkj5pGFB+FkPJ5NGhoX3DK3xsv0pMltha7Ei1AnY3tILeq38L7tuhaWDPQI/5nlPxOog44wvqpNyyGcUsNMg==", "license": "MIT", "dependencies": { - "@ant-design/cssinjs": "^2.0.1", + "@ant-design/cssinjs": "^2.1.0", "@babel/runtime": "^7.23.2", "@rc-component/util": "^1.4.0" }, @@ -277,9 +277,9 @@ } }, "node_modules/@ant-design/cssinjs-utils/node_modules/@ant-design/cssinjs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.0.3.tgz", - "integrity": "sha512-HAo8SZ3a6G8v6jT0suCz1270na6EA3obeJWM4uzRijBhdwdoMAXWK2f4WWkwB28yUufsfk3CAhN1coGPQq4kNQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.1.0.tgz", + "integrity": "sha512-eZFrPCnrYrF3XtL7qA4L75P0qA3TtZta8H3Yggy7UYFh8gZgu5bSMNF+v4UVCzGxzYmx8ZvPdgOce0BJ6PsW9g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.1", @@ -543,9 +543,9 @@ } }, "node_modules/@apollo/client": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-4.1.3.tgz", - "integrity": "sha512-2D0eN9R0IHj9qp1RwjM1/brKqcBGldlDfY0YiP5ecCj9FtVrhOtXqMj98SZ1CA0YGDY5X+dxx32Ljh7J0VHTfA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-4.1.4.tgz", + "integrity": "sha512-bTbxPHGXDMcYyQuWcYOzvWBHHJ+5ehvH3uKhd3+jI8X3ZPgWlfiI0MYN3r2exq/SNo5/TbL1p+bzQnE1xf+5tg==", "license": "MIT", "workspaces": [ "dist", @@ -3244,9 +3244,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -3295,9 +3295,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3307,7 +3307,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -3429,9 +3429,9 @@ } }, "node_modules/@firebase/app": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.7.tgz", - "integrity": "sha512-o3ZfnOx0AWBD5n/36p2zPoB0rDDxQP8H/A60zDLvvfRLtW8b3LfCyV97GKpJaAVV1JMMl/BC89EDzMyzxFZxTw==", + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.14.8.tgz", + "integrity": "sha512-WiE9uCGRLUnShdjb9iP20sA3ToWrBbNXr14/N5mow7Nls9dmKgfGaGX5cynLvrltxq2OrDLh1VDNaUgsnS/k/g==", "license": "Apache-2.0", "dependencies": { "@firebase/component": "0.7.0", @@ -3482,9 +3482,9 @@ } }, "node_modules/@firebase/firestore": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.10.0.tgz", - "integrity": "sha512-fgF6EbpoagGWh5Vwfu/7/jYgBFwUCwTlPNVF/aSjHcoEDRXpRsIqVfAFTp1LD+dWAUcAKEK3h+osk8spMJXtxA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.11.0.tgz", + "integrity": "sha512-Zb88s8rssBd0J2Tt+NUXMPt2sf+Dq7meatKiJf5t9oto1kZ8w9gK59Koe1uPVbaKfdgBp++N/z0I4G/HamyEhg==", "license": "Apache-2.0", "dependencies": { "@firebase/component": "0.7.0", @@ -3703,9 +3703,9 @@ } }, "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4815,13 +4815,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.1.tgz", - "integrity": "sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", + "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.58.1" + "playwright": "1.58.2" }, "bin": { "playwright": "cli.js" @@ -4841,18 +4841,18 @@ } }, "node_modules/@posthog/core": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.20.0.tgz", - "integrity": "sha512-e/F20we0t6bPMuDOVOe53f908s23vuKEpFKNXmZcx4bSYsPkjRN49akIIHU621HBJdcsFx537vhJYKZxu8uS9w==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.22.0.tgz", + "integrity": "sha512-WkmOnq95aAOu6yk6r5LWr5cfXsQdpVbWDCwOxQwxSne8YV6GuZET1ziO5toSQXgrgbdcjrSz2/GopAfiL6iiAA==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.6" } }, "node_modules/@posthog/types": { - "version": "1.341.0", - "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.341.0.tgz", - "integrity": "sha512-lIQzaPzfxdhonj2nXI2Nh3z45wyfb/e48cyy/+GawNDeRnkzqyhifpyAimVafBJIP7RR1lQqEnM8Xk55H7SRgQ==", + "version": "1.345.4", + "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.345.4.tgz", + "integrity": "sha512-6m4sQ1evxTu0m3eLfYpXVdguZyVzPdAxwY5JMJ02KvuYJCR1AY9+YP2BUaJ9tz3PleXaZxSK20msu/ceewmUjg==", "license": "MIT" }, "node_modules/@protobufjs/aspromise": { @@ -4932,13 +4932,13 @@ } }, "node_modules/@rc-component/cascader": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.11.0.tgz", - "integrity": "sha512-VDiEsskThWi8l0/1Nquc9I4ytcMKQYAb9Jkm6wiX5O5fpcMRsm+b8OulBMbr/b4rFTl/2y2y4GdKqQ+2whD+XQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.14.0.tgz", + "integrity": "sha512-Ip9356xwZUR2nbW5PRVGif4B/bDve4pLa/N+PGbvBaTnjbvmN4PFMBGQSmlDlzKP1ovxaYMvwF/dI9lXNLT4iQ==", "license": "MIT", "dependencies": { - "@rc-component/select": "~1.5.0", - "@rc-component/tree": "~1.1.0", + "@rc-component/select": "~1.6.0", + "@rc-component/tree": "~1.2.0", "@rc-component/util": "^1.4.0", "clsx": "^2.1.1" }, @@ -4957,9 +4957,9 @@ } }, "node_modules/@rc-component/checkbox": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-1.0.1.tgz", - "integrity": "sha512-08yTH8m+bSm8TOqbybbJ9KiAuIATti6bDs2mVeSfu4QfEnyeF6X0enHVvD1NEAyuBWEAo56QtLe++MYs2D9XiQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/checkbox/-/checkbox-2.0.0.tgz", + "integrity": "sha512-3CXGPpAR9gsPKeO2N78HAPOzU30UdemD6HGJoWVJOpa6WleaGB5kzZj3v6bdTZab31YuWgY/RxV3VKPctn0DwQ==", "license": "MIT", "dependencies": { "@rc-component/util": "^1.3.0", @@ -5005,9 +5005,9 @@ } }, "node_modules/@rc-component/color-picker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.0.3.tgz", - "integrity": "sha512-V7gFF9O7o5XwIWafdbOtqI4BUUkEUkgdBwp6favy3xajMX/2dDqytFaiXlcwrpq6aRyPLp5dKLAG5RFKLXMeGA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-3.1.0.tgz", + "integrity": "sha512-o7Vavj7yyfVxFmeynXf0fCHVlC0UTE9al74c6nYuLck+gjuVdQNWSVXR8Efq/mmWFy7891SCOsfaPq6Eqe1s/g==", "license": "MIT", "dependencies": { "@ant-design/fast-color": "^3.0.0", @@ -5042,14 +5042,14 @@ } }, "node_modules/@rc-component/dialog": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.8.2.tgz", - "integrity": "sha512-CwDSjpjZ1FcgsdKFPuSoYfi9Vbt2bp+ak4Pzkwq4APQC8DopJKWetRu1V+HE9vI1CNAeqvT5WAvAxE6RiDhl7A==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.8.4.tgz", + "integrity": "sha512-Ay6PM7phkTkquplG8fWfUGFZ2GTLx9diTl4f0d8Eqxd7W1u1KjE9AQooFQHOHnhZf0Ya3z51+5EKCWHmt/dNEw==", "license": "MIT", "dependencies": { "@rc-component/motion": "^1.1.3", "@rc-component/portal": "^2.1.0", - "@rc-component/util": "^1.7.0", + "@rc-component/util": "^1.9.0", "clsx": "^2.1.1" }, "peerDependencies": { @@ -5067,14 +5067,14 @@ } }, "node_modules/@rc-component/drawer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.4.1.tgz", - "integrity": "sha512-kNJQie/QjJO5wGeWrZQwSGeuo8staxXx1nYN+dpK2UY7i8teo5PQdZ6ukKSnnW9vmPXsLn3F5nKYRbf43e8+5g==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@rc-component/drawer/-/drawer-1.4.2.tgz", + "integrity": "sha512-1ib+fZEp6FBu+YvcIktm+nCQ+Q+qIpwpoaJH6opGr4ofh2QMq+qdr5DLC4oCf5qf3pcWX9lUWPYX652k4ini8Q==", "license": "MIT", "dependencies": { "@rc-component/motion": "^1.1.4", "@rc-component/portal": "^2.1.3", - "@rc-component/util": "^1.7.0", + "@rc-component/util": "^1.9.0", "clsx": "^2.1.1" }, "peerDependencies": { @@ -5570,9 +5570,9 @@ } }, "node_modules/@rc-component/select": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.5.2.tgz", - "integrity": "sha512-7wqD5D4I2+fc5XoB4nzDDK656QPlDnFAUaxLljkU1wwSpi4+MZxndv9vgg7NQfveuuf0/ilUdOjuPg7NPl7Mmg==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.6.5.tgz", + "integrity": "sha512-Cx+/OYEorXlPQ6ZFDro3HbalPZLlJWagvGtl8DGYO4losXM6gw43qbsxWqU1c3XOQVIOUDBlr7dSksSNMj8kXg==", "license": "MIT", "dependencies": { "@rc-component/overflow": "^1.0.0", @@ -5810,13 +5810,13 @@ } }, "node_modules/@rc-component/tree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.1.0.tgz", - "integrity": "sha512-HZs3aOlvFgQdgrmURRc/f4IujiNBf4DdEeXUlkS0lPoLlx9RoqsZcF0caXIAMVb+NaWqKtGQDnrH8hqLCN5zlA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rc-component/tree/-/tree-1.2.3.tgz", + "integrity": "sha512-mG8hF2ogQcKaEpfyxzPvMWqqkptofd7Sf+YiXOpPzuXLTLwNKfLDJtysc1/oybopbnzxNqWh2Vgwi+GYwNIb7w==", "license": "MIT", "dependencies": { "@rc-component/motion": "^1.0.0", - "@rc-component/util": "^1.2.1", + "@rc-component/util": "^1.8.1", "@rc-component/virtual-list": "^1.0.1", "clsx": "^2.1.1" }, @@ -5829,13 +5829,13 @@ } }, "node_modules/@rc-component/tree-select": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.6.0.tgz", - "integrity": "sha512-UvEGmZT+gcVvRwImAZg3/sXw9nUdn4FmCs1rSIMWjEXEIAo0dTGmIyWuLCvs+1rGe9AZ7CHMPiQUEbdadwV0fw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.8.0.tgz", + "integrity": "sha512-iYsPq3nuLYvGqdvFAW+l+I9ASRIOVbMXyA8FGZg2lGym/GwkaWeJGzI4eJ7c9IOEhRj0oyfIN4S92Fl3J05mjQ==", "license": "MIT", "dependencies": { - "@rc-component/select": "~1.5.0", - "@rc-component/tree": "~1.1.0", + "@rc-component/select": "~1.6.0", + "@rc-component/tree": "~1.2.0", "@rc-component/util": "^1.4.0", "clsx": "^2.1.1" }, @@ -5915,9 +5915,9 @@ } }, "node_modules/@rc-component/util": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.8.1.tgz", - "integrity": "sha512-Ku6BzF0Ov5L9U3ewFJZDQ//iWCR2nIkLBBiYSrhxIVl3PqeUqiYP2W8gNI8qoKAFQKZdYcS0+B6+SQTDtv/erw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@rc-component/util/-/util-1.9.0.tgz", + "integrity": "sha512-5uW6AfhIigCWeEQDthTozlxiT4Prn6xYQWeO0xokjcaa186OtwPRHBZJ2o0T0FhbjGhZ3vXdbkv0sx3gAYW7Vg==", "license": "MIT", "dependencies": { "is-mobile": "^5.0.0", @@ -6051,9 +6051,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.2.tgz", - "integrity": "sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==", + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", + "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", "dev": true, "license": "MIT" }, @@ -6739,9 +6739,9 @@ } }, "node_modules/@sentry/babel-plugin-component-annotate": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.9.0.tgz", - "integrity": "sha512-TJ7sVoa2Bf36lpJjBAzpNDC5Hg+evjsQnqUPeDx9Nz/YFw0u9rK1cwvi95gVWpx7PJSDCkljIv3aw0m4RatHpQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-4.9.1.tgz", + "integrity": "sha512-0gEoi2Lb54MFYPOmdTfxlNKxI7kCOvNV7gP8lxMXJ7nCazF5OqOOZIVshfWjDLrc0QrSV6XdVvwPV9GDn4wBMg==", "license": "MIT", "engines": { "node": ">= 14" @@ -6764,13 +6764,13 @@ } }, "node_modules/@sentry/bundler-plugin-core": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.9.0.tgz", - "integrity": "sha512-gOVgHG5BrxCFmZow1XovlDr1FH/gO/LfD8OKci1rryeqHVBLr3+S4yS4ACl+E5lfQPym8Ve1BKh793d1rZ0dyA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-4.9.1.tgz", + "integrity": "sha512-moii+w7N8k8WdvkX7qCDY9iRBlhgHlhTHTUQwF2FNMhBHuqlNpVcSJJqJMjFUQcjYMBDrZgxhfKV18bt5ixwlQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.18.5", - "@sentry/babel-plugin-component-annotate": "4.9.0", + "@sentry/babel-plugin-component-annotate": "4.9.1", "@sentry/cli": "^2.57.0", "dotenv": "^16.3.1", "find-up": "^5.0.0", @@ -6981,9 +6981,9 @@ } }, "node_modules/@sentry/cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-3.1.0.tgz", - "integrity": "sha512-ngnx6E8XjXpg1uzma45INfKCS8yurb/fl3cZdXTCa2wmek8b4N6WIlmOlTKFTBrV54OauF6mloJxAlpuzoQR6g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-3.2.0.tgz", + "integrity": "sha512-YLv/xgttSc8sRhK2xBoxmLS+yQlCW154ey2cXFsFe+yY73lXvQ9nZ7BkHmSc+YUl8y5CKHL+8edQLYV8O8PQMA==", "hasInstallScript": true, "license": "FSL-1.1-MIT", "dependencies": { @@ -6999,20 +6999,20 @@ "node": ">= 18" }, "optionalDependencies": { - "@sentry/cli-darwin": "3.1.0", - "@sentry/cli-linux-arm": "3.1.0", - "@sentry/cli-linux-arm64": "3.1.0", - "@sentry/cli-linux-i686": "3.1.0", - "@sentry/cli-linux-x64": "3.1.0", - "@sentry/cli-win32-arm64": "3.1.0", - "@sentry/cli-win32-i686": "3.1.0", - "@sentry/cli-win32-x64": "3.1.0" + "@sentry/cli-darwin": "3.2.0", + "@sentry/cli-linux-arm": "3.2.0", + "@sentry/cli-linux-arm64": "3.2.0", + "@sentry/cli-linux-i686": "3.2.0", + "@sentry/cli-linux-x64": "3.2.0", + "@sentry/cli-win32-arm64": "3.2.0", + "@sentry/cli-win32-i686": "3.2.0", + "@sentry/cli-win32-x64": "3.2.0" } }, "node_modules/@sentry/cli-darwin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-3.1.0.tgz", - "integrity": "sha512-xT1WlCHenGGO29Lq/wKaIthdqZzNzZhlPs7dXrzlBx9DyA2Jnl0g7WEau0oWi8GyJGVRXCJMiCydR//Tb5qVwA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-3.2.0.tgz", + "integrity": "sha512-2If2h0P/X9K0UrwlpZYKnxBmIFfa957lAHGe5VmN64v8nEHk8dxcrX+NS9nX9H75eccLGzGMcYk0Zt0KQgQJ3g==", "license": "FSL-1.1-MIT", "optional": true, "os": [ @@ -7023,9 +7023,9 @@ } }, "node_modules/@sentry/cli-linux-arm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-3.1.0.tgz", - "integrity": "sha512-kbP3/8/Ct/Jbm569KDXbFIyMyPypIegObvIT7LdSsfdYSZdBd396GV7vUpSGKiLUVVN0xjn8OqQ48AVGfjmuMg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-3.2.0.tgz", + "integrity": "sha512-NVcGcS9mceivVhi8W6iEnlcK96OlPMzOdM6xkIm+7+J0uXHgUyMyc+rT6p2QG3j8jI5I7qAl7fTHWluSX2lx3g==", "cpu": [ "arm" ], @@ -7041,9 +7041,9 @@ } }, "node_modules/@sentry/cli-linux-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-3.1.0.tgz", - "integrity": "sha512-Jm/iHLKiHxrZYlAq2tT07amiegEVCOAQT9Unilr6djjcZzS2tcI9ThSRQvjP9tFpFRKop+NyNGE3XHXf69r00g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-3.2.0.tgz", + "integrity": "sha512-YFpYIfYpXYzpSrIspmPOOPjXbxWp/Ve+F2hSIQb1tSKmcxFgaUm6WfuniYF8EIaLNa8YOLECf0xo78yGXBa+ug==", "cpu": [ "arm64" ], @@ -7059,9 +7059,9 @@ } }, "node_modules/@sentry/cli-linux-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-3.1.0.tgz", - "integrity": "sha512-f/PK/EGK5vFOy7LC4Riwb+BEE20Nk7RbEFEMjvRq26DpETCrZYUGlbpIKvJFKOaUmr79aAkFCA/EjJiYfcQP2Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-3.2.0.tgz", + "integrity": "sha512-6SOxlF37NqRRKxEuvWryBM7MAgTisq0G6ZQzhI2iuWbcrmlLUDUW2Yssz3gAR01eYJ4jfpqvojSzPRDwqB0K+Q==", "cpu": [ "x86", "ia32" @@ -7078,9 +7078,9 @@ } }, "node_modules/@sentry/cli-linux-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-3.1.0.tgz", - "integrity": "sha512-T+v8x1ujhixZrOrH0sVhsW6uLwK4n0WS+B+5xV46WqUKe32cbYotursp2y53ROjgat8SQDGeP/VnC0Qa3Y2fEA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-3.2.0.tgz", + "integrity": "sha512-7LRd0A74ma/1ejlTRPOoBiFiJr4LWkoE6CnA2XwAoYd0r62WUjGHtg6gIC+yElOCwtxXP7I9fOiV2BJIAq2DHw==", "cpu": [ "x64" ], @@ -7096,9 +7096,9 @@ } }, "node_modules/@sentry/cli-win32-arm64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-3.1.0.tgz", - "integrity": "sha512-2DIPq6aW2DC34EDC9J0xwD+9BpFnKdFGdIcQUZMS+5pXlU6V7o8wpZxZAM8TdYNmsPkkQGKp7Dhl/arWpvNgrw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-3.2.0.tgz", + "integrity": "sha512-uKRi/++gnGepsaGi4goIcC13YGNEHgOUcROkz4L3H8vAR7QxWv2SHy7SCN+2S6c+Q2mOd0DfY35cMW5MzTpb7g==", "cpu": [ "arm64" ], @@ -7112,9 +7112,9 @@ } }, "node_modules/@sentry/cli-win32-i686": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-3.1.0.tgz", - "integrity": "sha512-2NuywEiiZn6xJ1yAV2xjv/nuHiy6kZU5XR3RSAIrPdEZD1nBoMsH/gB2FufQw58Ziz/7otFcX+vtGpJjbIT5mQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-3.2.0.tgz", + "integrity": "sha512-/84NEPeFQne2bQWfDZ+3EzioxFR8ojSwExCgVsyTfqa/4PzmaerAGUAxiD+VcJLJTyJEHAjWXTmSZGbYjIgdyQ==", "cpu": [ "x86", "ia32" @@ -7129,9 +7129,9 @@ } }, "node_modules/@sentry/cli-win32-x64": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-3.1.0.tgz", - "integrity": "sha512-Ip405Yqdrr+l9TImsZOJz6c9Nb4zvXcmtOIBKLHc9cowpfXfmlqsHbDp7Xh4+k4L0uLr9i+8ilgQ6ypcuF4UCg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-3.2.0.tgz", + "integrity": "sha512-N9qGGT91awsh4IMyXrRHH+qIWmv9MJk9tPPAWPvLMWgdlTHT/40WYwvA4tYj80uZXU0TN8ppBWbd3ebDyOjwxA==", "cpu": [ "x64" ], @@ -7191,12 +7191,12 @@ } }, "node_modules/@sentry/vite-plugin": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-4.9.0.tgz", - "integrity": "sha512-1olEMpZnwZS4UdboB25w5sZYJSlwbxJaieoL0c7FDNMyyns5GhXSl6mK8Lpx9w3rIc88gw9JOdsehdd6YrlLOA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-4.9.1.tgz", + "integrity": "sha512-Tlyg2cyFYp/icX58GWvfpvZr9NLdLs2/xyFVyS8pQ0faZWmoXic3FMzoXYHV1gsdMbL1Yy5WQvGJy8j1rS8LGA==", "license": "MIT", "dependencies": { - "@sentry/bundler-plugin-core": "4.9.0", + "@sentry/bundler-plugin-core": "4.9.1", "unplugin": "1.0.1" }, "engines": { @@ -7302,9 +7302,9 @@ } }, "node_modules/@tanem/react-nprogress": { - "version": "5.0.59", - "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-5.0.59.tgz", - "integrity": "sha512-Ji7rKDtA/fM8geg7lLYChuuSZKwtchImSwdrUrM4+f5C4EwyvpxVCahPgrR5Pq1jlOLo8WgWj2AoVL15MfurEg==", + "version": "5.0.60", + "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-5.0.60.tgz", + "integrity": "sha512-1eJxtcZtUexasm6rc1chS446vHfBj3vV9t22hSjxzgFbtw4f2bpdfQZlsU/vycNwh8DC63v8Ya+a3s+hoSmTew==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.6", @@ -7707,16 +7707,16 @@ "license": "ISC" }, "node_modules/@vitejs/plugin-react": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.3.tgz", - "integrity": "sha512-NVUnA6gQCl8jfoYqKqQU5Clv0aPw14KkZYCsX6T9Lfu9slI0LOU10OTwFHS/WmptsMMpshNd/1tuWsHQ2Uk+cg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz", + "integrity": "sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-rc.2", + "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, @@ -8004,24 +8004,24 @@ } }, "node_modules/antd": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/antd/-/antd-6.2.3.tgz", - "integrity": "sha512-q92r7/hcQAR2iv6CCysdz7c2Pdl/3nhslc3azF9e6AEl4knO6v+nlaeor1oF2jBanZ/tiw2m3NprOVUgPDvyhg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-6.3.0.tgz", + "integrity": "sha512-bbHJcASrRHp02wTpr940KtUHlTT6tvmaD4OAjqgOJXNmTQ/+qBDdBVWY/yeDV41p/WbWjTLlaqRGVbL3UEVpNw==", "license": "MIT", "dependencies": { "@ant-design/colors": "^8.0.1", - "@ant-design/cssinjs": "^2.0.3", - "@ant-design/cssinjs-utils": "^2.0.2", + "@ant-design/cssinjs": "^2.1.0", + "@ant-design/cssinjs-utils": "^2.1.1", "@ant-design/fast-color": "^3.0.1", "@ant-design/icons": "^6.1.0", "@ant-design/react-slick": "~2.0.0", "@babel/runtime": "^7.28.4", - "@rc-component/cascader": "~1.11.0", - "@rc-component/checkbox": "~1.0.1", + "@rc-component/cascader": "~1.14.0", + "@rc-component/checkbox": "~2.0.0", "@rc-component/collapse": "~1.2.0", - "@rc-component/color-picker": "~3.0.3", - "@rc-component/dialog": "~1.8.2", - "@rc-component/drawer": "~1.4.1", + "@rc-component/color-picker": "~3.1.0", + "@rc-component/dialog": "~1.8.4", + "@rc-component/drawer": "~1.4.2", "@rc-component/dropdown": "~1.0.2", "@rc-component/form": "~1.6.2", "@rc-component/image": "~1.6.0", @@ -8039,7 +8039,7 @@ "@rc-component/rate": "~1.0.1", "@rc-component/resize-observer": "^1.1.1", "@rc-component/segmented": "~1.3.0", - "@rc-component/select": "~1.5.2", + "@rc-component/select": "~1.6.5", "@rc-component/slider": "~1.0.1", "@rc-component/steps": "~1.2.2", "@rc-component/switch": "~1.0.3", @@ -8048,11 +8048,11 @@ "@rc-component/textarea": "~1.1.2", "@rc-component/tooltip": "~1.4.0", "@rc-component/tour": "~2.3.0", - "@rc-component/tree": "~1.1.0", - "@rc-component/tree-select": "~1.6.0", + "@rc-component/tree": "~1.2.3", + "@rc-component/tree-select": "~1.8.0", "@rc-component/trigger": "^3.9.0", "@rc-component/upload": "~1.1.0", - "@rc-component/util": "^1.8.1", + "@rc-component/util": "^1.9.0", "clsx": "^2.1.1", "dayjs": "^1.11.11", "scroll-into-view-if-needed": "^3.1.0", @@ -8068,9 +8068,9 @@ } }, "node_modules/antd/node_modules/@ant-design/cssinjs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.0.3.tgz", - "integrity": "sha512-HAo8SZ3a6G8v6jT0suCz1270na6EA3obeJWM4uzRijBhdwdoMAXWK2f4WWkwB28yUufsfk3CAhN1coGPQq4kNQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-2.1.0.tgz", + "integrity": "sha512-eZFrPCnrYrF3XtL7qA4L75P0qA3TtZta8H3Yggy7UYFh8gZgu5bSMNF+v4UVCzGxzYmx8ZvPdgOce0BJ6PsW9g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.1", @@ -8388,13 +8388,13 @@ } }, "node_modules/axios": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz", - "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, @@ -9984,9 +9984,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.2.4", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.4.tgz", + "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -10687,9 +10687,9 @@ } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -11066,9 +11066,9 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -11253,6 +11253,7 @@ "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -11751,9 +11752,9 @@ } }, "node_modules/i18next": { - "version": "25.8.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.1.tgz", - "integrity": "sha512-nFFxhwcRNggIrkv2hx/xMYVMG7Z8iMUA4ZuH4tgcbZiI0bK1jn3kSDIXNWuQDt1xVAu7mb7Qn82TpH7ZAk/okA==", + "version": "25.8.5", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.5.tgz", + "integrity": "sha512-TApjhgqQU6P7BQlpCTv6zQuXrYAP9rjYWgx2Nm8dsq+Zg9yJlAz+iR16/w7uVtTlSoULbqPTfqYjMK/DAQI+Ng==", "funding": [ { "type": "individual", @@ -14945,13 +14946,13 @@ } }, "node_modules/playwright": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.1.tgz", - "integrity": "sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", + "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.1" + "playwright-core": "1.58.2" }, "bin": { "playwright": "cli.js" @@ -14964,9 +14965,9 @@ } }, "node_modules/playwright-core": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.1.tgz", - "integrity": "sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", + "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -15036,9 +15037,9 @@ "license": "MIT" }, "node_modules/posthog-js": { - "version": "1.341.0", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.341.0.tgz", - "integrity": "sha512-sWa/84yi93ar/SJrG0do5QshCGWqUH39cNLrngN/GqC8kA5JLxyUEBmFaK65aAxrSKJ1muGP11ofIKDCwQn98Q==", + "version": "1.345.4", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.345.4.tgz", + "integrity": "sha512-1jwG2LcXWgs3OxkRXhYwIk6gX13FSwufGR7pXElFd+/8g8+M4XMFNwQfSD9q2/0nI2nhNzeGCC9Tk5BuK2Mgiw==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@opentelemetry/api": "^1.9.0", @@ -15046,8 +15047,8 @@ "@opentelemetry/exporter-logs-otlp-http": "^0.208.0", "@opentelemetry/resources": "^2.2.0", "@opentelemetry/sdk-logs": "^0.208.0", - "@posthog/core": "1.20.0", - "@posthog/types": "1.341.0", + "@posthog/core": "1.22.0", + "@posthog/types": "1.345.4", "core-js": "^3.38.1", "dompurify": "^3.3.1", "fflate": "^0.4.8", @@ -17323,9 +17324,9 @@ } }, "node_modules/styled-components": { - "version": "6.3.8", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.8.tgz", - "integrity": "sha512-Kq/W41AKQloOqKM39zfaMdJ4BcYDw/N5CIq4/GTI0YjU6pKcZ1KKhk6b4du0a+6RA9pIfOP/eu94Ge7cu+PDCA==", + "version": "6.3.9", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.9.tgz", + "integrity": "sha512-J72R4ltw0UBVUlEjTzI0gg2STOqlI9JBhQOL4Dxt7aJOnnSesy0qJDn4PYfMCafk9cWOaVg129Pesl5o+DIh0Q==", "license": "MIT", "dependencies": { "@emotion/is-prop-valid": "1.4.0", @@ -18412,9 +18413,9 @@ } }, "node_modules/vite-plugin-babel": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/vite-plugin-babel/-/vite-plugin-babel-1.4.1.tgz", - "integrity": "sha512-quO+viHGSv1cjbfhbeiMZ7SZpo8P29NiUh9LJfKhpmIDwy0THRiTRUbanBbkNcZcSyHFgp1n7TByd1C2kanqLQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-babel/-/vite-plugin-babel-1.5.1.tgz", + "integrity": "sha512-TBBBsAYYg7V5yR+xPeZYHwritMmc2QvZrZKFSS26it7ZQ0Y8ESKwJJm2KUUcmHQZU/owvA4yKk4ibPVrfhlwJw==", "dev": true, "license": "MIT", "peerDependencies": { diff --git a/client/package.json b/client/package.json index d63657947..df8e3815f 100644 --- a/client/package.json +++ b/client/package.json @@ -8,9 +8,9 @@ "private": true, "proxy": "http://localhost:4000", "dependencies": { - "@amplitude/analytics-browser": "^2.34.0", + "@amplitude/analytics-browser": "^2.34.1", "@ant-design/pro-layout": "^7.22.6", - "@apollo/client": "^4.1.3", + "@apollo/client": "^4.1.4", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", @@ -18,32 +18,32 @@ "@emotion/is-prop-valid": "^1.4.0", "@fingerprintjs/fingerprintjs": "^5.0.1", "@firebase/analytics": "^0.10.19", - "@firebase/app": "^0.14.7", + "@firebase/app": "^0.14.8", "@firebase/auth": "^1.12.0", - "@firebase/firestore": "^4.10.0", + "@firebase/firestore": "^4.11.0", "@firebase/messaging": "^0.12.22", "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.11.2", - "@sentry/cli": "^3.1.0", + "@sentry/cli": "^3.2.0", "@sentry/react": "^10.38.0", - "@sentry/vite-plugin": "^4.9.0", + "@sentry/vite-plugin": "^4.9.1", "@splitsoftware/splitio-react": "^2.6.1", - "@tanem/react-nprogress": "^5.0.59", - "antd": "^6.2.3", + "@tanem/react-nprogress": "^5.0.60", + "antd": "^6.3.0", "apollo-link-logger": "^3.0.0", "autosize": "^6.0.1", - "axios": "^1.13.4", + "axios": "^1.13.5", "classnames": "^2.5.1", "css-box-model": "^1.2.1", "dayjs": "^1.11.19", "dayjs-business-days2": "^1.3.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.3", + "dotenv": "^17.2.4", "env-cmd": "^11.0.0", "exifr": "^7.1.3", "graphql": "^16.12.0", "graphql-ws": "^6.0.7", - "i18next": "^25.8.1", + "i18next": "^25.8.5", "i18next-browser-languagedetector": "^8.2.0", "immutability-helper": "^3.1.1", "libphonenumber-js": "^1.12.36", @@ -54,7 +54,7 @@ "normalize-url": "^8.1.1", "object-hash": "^3.0.0", "phone": "^3.1.70", - "posthog-js": "^1.341.0", + "posthog-js": "^1.345.4", "prop-types": "^15.8.1", "query-string": "^9.3.1", "raf-schd": "^4.0.3", @@ -87,7 +87,7 @@ "rxjs": "^7.8.2", "sass": "^1.97.3", "socket.io-client": "^4.8.3", - "styled-components": "^6.3.8", + "styled-components": "^6.3.9", "vite-plugin-ejs": "^1.7.0", "web-vitals": "^5.1.0" }, @@ -144,11 +144,11 @@ "@emotion/babel-plugin": "^11.13.5", "@emotion/react": "^11.14.0", "@eslint/js": "^9.39.2", - "@playwright/test": "^1.58.1", + "@playwright/test": "^1.58.2", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", - "@vitejs/plugin-react": "^5.1.3", + "@vitejs/plugin-react": "^5.1.4", "babel-plugin-react-compiler": "^1.0.0", "browserslist": "^4.28.1", "browserslist-to-esbuild": "^2.1.1", @@ -160,12 +160,12 @@ "jsdom": "^28.0.0", "memfs": "^4.56.10", "os-browserify": "^0.3.0", - "playwright": "^1.58.1", + "playwright": "^1.58.2", "react-error-overlay": "^6.1.0", "redux-logger": "^3.0.6", "source-map-explorer": "^2.5.3", "vite": "^7.3.1", - "vite-plugin-babel": "^1.4.1", + "vite-plugin-babel": "^1.5.1", "vite-plugin-eslint": "^1.8.1", "vite-plugin-node-polyfills": "^0.25.0", "vite-plugin-pwa": "^1.2.0", diff --git a/package-lock.json b/package-lock.json index 30adcf159..00b7b8d4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,23 +9,23 @@ "version": "0.2.0", "license": "UNLICENSED", "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.982.0", - "@aws-sdk/client-elasticache": "^3.982.0", - "@aws-sdk/client-s3": "^3.982.0", - "@aws-sdk/client-secrets-manager": "^3.982.0", - "@aws-sdk/client-ses": "^3.982.0", - "@aws-sdk/credential-provider-node": "^3.972.5", - "@aws-sdk/lib-storage": "^3.982.0", - "@aws-sdk/s3-request-presigner": "^3.982.0", + "@aws-sdk/client-cloudwatch-logs": "^3.987.0", + "@aws-sdk/client-elasticache": "^3.987.0", + "@aws-sdk/client-s3": "^3.987.0", + "@aws-sdk/client-secrets-manager": "^3.987.0", + "@aws-sdk/client-ses": "^3.987.0", + "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/lib-storage": "^3.987.0", + "@aws-sdk/s3-request-presigner": "^3.987.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", "archiver": "^7.0.1", "aws4": "^1.13.2", - "axios": "^1.13.4", + "axios": "^1.13.5", "axios-curlirize": "^2.0.0", "better-queue": "^3.8.12", - "bullmq": "^5.67.2", + "bullmq": "^5.68.0", "chart.js": "^4.5.1", "cloudinary": "^2.9.0", "compression": "^1.8.1", @@ -33,10 +33,10 @@ "cors": "^2.8.6", "crisp-status-reporter": "^1.2.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.3", + "dotenv": "^17.2.4", "express": "^4.21.1", - "fast-xml-parser": "^5.3.4", - "firebase-admin": "^13.6.0", + "fast-xml-parser": "^5.3.5", + "firebase-admin": "^13.6.1", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", @@ -60,7 +60,7 @@ "socket.io": "^4.8.3", "socket.io-adapter": "^2.5.6", "ssh2-sftp-client": "^11.0.0", - "twilio": "^5.12.0", + "twilio": "^5.12.1", "uuid": "^11.1.0", "winston": "^3.19.0", "winston-cloudwatch": "^6.3.0", @@ -288,26 +288,26 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.982.0.tgz", - "integrity": "sha512-GqftH+v8eYjyD41rCWY6IOpjy43xL8bJYqKgxB6grVPhI4GM+ZBjjSPfWaHWtQje7SHsDuQybIMrdpmkymDjLA==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.987.0.tgz", + "integrity": "sha512-e2CvrDmHdZkYPCehYUU0heabCviprmCjHXqOCq2aWqsRNU8vw3ePIWi1heFtxmHo2FPP//o/Lfnc8ZhZG/HrlA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-node": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.987.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/eventstream-serde-browser": "^4.2.8", "@smithy/eventstream-serde-config-resolver": "^4.3.8", "@smithy/eventstream-serde-node": "^4.2.8", @@ -315,21 +315,21 @@ "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -341,45 +341,45 @@ } }, "node_modules/@aws-sdk/client-elasticache": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.982.0.tgz", - "integrity": "sha512-mMxQsxrwyx1L+DvaeRJ/yLmUr7JKV+f9o/tO6aBFE7DTI/JtSHsSzGMicMTVmJm3dU9xtKiyTaJO+l7ikY6hmQ==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.987.0.tgz", + "integrity": "sha512-dex+KxchkikbBsq6cOQumnQKtjalK5qRg+efeS8DsYroGrPe9TTA0ahiZ6PAbrcT+WfcoPgJi8FliFM3g+DY8w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-node": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.987.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -392,34 +392,34 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.982.0.tgz", - "integrity": "sha512-k0ANYAtPiON9BwLXcDgJXkmmCAGEuSk2pZOvrMej2kNhs3xTXoPshIUR5UMCD9apYiWtXJJfXMZSgaME+iWNaQ==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.987.0.tgz", + "integrity": "sha512-9nLbDIjqdiDkJk8hrAW8jP51bRXjD0+2J3lnCAy+N2G4BDoQuN09+iQF2chF/9BJ/hTk5Ldm2beaO8G2PM1cyw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-node": "^3.972.6", "@aws-sdk/middleware-bucket-endpoint": "^3.972.3", "@aws-sdk/middleware-expect-continue": "^3.972.3", - "@aws-sdk/middleware-flexible-checksums": "^3.972.4", + "@aws-sdk/middleware-flexible-checksums": "^3.972.5", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-location-constraint": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-sdk-s3": "^3.972.6", + "@aws-sdk/middleware-sdk-s3": "^3.972.7", "@aws-sdk/middleware-ssec": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/signature-v4-multi-region": "3.982.0", + "@aws-sdk/signature-v4-multi-region": "3.987.0", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.987.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/eventstream-serde-browser": "^4.2.8", "@smithy/eventstream-serde-config-resolver": "^4.3.8", "@smithy/eventstream-serde-node": "^4.2.8", @@ -430,25 +430,25 @@ "@smithy/invalid-dependency": "^4.2.8", "@smithy/md5-js": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.11", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.8", "tslib": "^2.6.2" @@ -458,45 +458,45 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.982.0.tgz", - "integrity": "sha512-kipHYDesDGqzQSooO1J78ZiC/cW9NybGHmyu5Woz8ANvZ1VmFe2mwPt8jlfSeJXxAQdFK/HWGRc7/9u46a6QOQ==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.987.0.tgz", + "integrity": "sha512-OV651KLxvRHNO0o2Hp1aNmhuhwq1e8WA7RMn14AjegjIE6XWnw5jtANK125BdNtpV97kMZR/WXshO9UJ/oIxWA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-node": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.987.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -508,45 +508,45 @@ } }, "node_modules/@aws-sdk/client-ses": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.982.0.tgz", - "integrity": "sha512-FMfZsrdevWomqEwLWaW5Jfq+8jRbROQe8sbEANVTNPYBfXvnd8TxPs/09h7TgFjtSB7hsjUv8Ja6IjeMV5HHPA==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.987.0.tgz", + "integrity": "sha512-PnhriCF9FwSCRc5nqHyooHSARghhpeDigviEDEFXpEI2+vz+ns0oxpyS/OyFAU+EwDOVxEmIScbYWpBC0VlKHQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-node": "^3.972.5", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-node": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.987.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -559,44 +559,44 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.982.0.tgz", - "integrity": "sha512-qJrIiivmvujdGqJ0ldSUvhN3k3N7GtPesoOI1BSt0fNXovVnMz4C/JmnkhZihU7hJhDvxJaBROLYTU+lpild4w==", + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.985.0.tgz", + "integrity": "sha512-81J8iE8MuXhdbMfIz4sWFj64Pe41bFi/uqqmqOC5SlGv+kwoyLsyKS/rH2tW2t5buih4vTUxskRjxlqikTD4oQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.985.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -607,20 +607,36 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-endpoints": { + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", + "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/core": { - "version": "3.973.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.6.tgz", - "integrity": "sha512-pz4ZOw3BLG0NdF25HoB9ymSYyPbMiIjwQJ2aROXRhAzt+b+EOxStfFv8s5iZyP6Kiw7aYhyWxj5G3NhmkoOTKw==", + "version": "3.973.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.7.tgz", + "integrity": "sha512-wNZZQQNlJ+hzD49cKdo+PY6rsTDElO8yDImnrI69p2PLBa7QomeUKAJWYp9xnaR38nlHqWhMHZuYLCQ3oSX+xg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", "@aws-sdk/xml-builder": "^3.972.4", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.8", @@ -645,12 +661,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.4.tgz", - "integrity": "sha512-/8dnc7+XNMmViEom2xsNdArQxQPSgy4Z/lm6qaFPTrMFesT1bV3PsBhb19n09nmxHdrtQskYmViddUIjUQElXg==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.5.tgz", + "integrity": "sha512-LxJ9PEO4gKPXzkufvIESUysykPIdrV7+Ocb9yAhbhJLE4TiAYqbCVUE+VuKP1leGR1bBfjWjYgSV5MxprlX3mQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/types": "^4.12.0", @@ -661,20 +677,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.6.tgz", - "integrity": "sha512-5ERWqRljiZv44AIdvIRQ3k+EAV0Sq2WeJHvXuK7gL7bovSxOf8Al7MLH7Eh3rdovH4KHFnlIty7J71mzvQBl5Q==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.7.tgz", + "integrity": "sha512-L2uOGtvp2x3bTcxFTpSM+GkwFIPd8pHfGWO1764icMbo7e5xJh0nfhx1UwkXLnwvocTNEf8A7jISZLYjUSNaTg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/types": "^3.973.1", "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.11", "tslib": "^2.6.2" }, "engines": { @@ -682,19 +698,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.4.tgz", - "integrity": "sha512-eRUg+3HaUKuXWn/lEMirdiA5HOKmEl8hEHVuszIDt2MMBUKgVX5XNGmb3XmbgU17h6DZ+RtjbxQpjhz3SbTjZg==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.5.tgz", + "integrity": "sha512-SdDTYE6jkARzOeL7+kudMIM4DaFnP5dZVeatzw849k4bSXDdErDS188bgeNzc/RA2WGrlEpsqHUKP6G7sVXhZg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/credential-provider-env": "^3.972.4", - "@aws-sdk/credential-provider-http": "^3.972.6", - "@aws-sdk/credential-provider-login": "^3.972.4", - "@aws-sdk/credential-provider-process": "^3.972.4", - "@aws-sdk/credential-provider-sso": "^3.972.4", - "@aws-sdk/credential-provider-web-identity": "^3.972.4", - "@aws-sdk/nested-clients": "3.982.0", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/credential-provider-env": "^3.972.5", + "@aws-sdk/credential-provider-http": "^3.972.7", + "@aws-sdk/credential-provider-login": "^3.972.5", + "@aws-sdk/credential-provider-process": "^3.972.5", + "@aws-sdk/credential-provider-sso": "^3.972.5", + "@aws-sdk/credential-provider-web-identity": "^3.972.5", + "@aws-sdk/nested-clients": "3.985.0", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -707,13 +723,13 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.4.tgz", - "integrity": "sha512-nLGjXuvWWDlQAp505xIONI7Gam0vw2p7Qu3P6on/W2q7rjJXtYjtpHbcsaOjJ/pAju3eTvEQuSuRedcRHVQIAQ==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.5.tgz", + "integrity": "sha512-uYq1ILyTSI6ZDCMY5+vUsRM0SOCVI7kaW4wBrehVVkhAxC6y+e9rvGtnoZqCOWL1gKjTMouvsf4Ilhc5NCg1Aw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/nested-clients": "3.985.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", @@ -726,17 +742,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.5.tgz", - "integrity": "sha512-VWXKgSISQCI2GKN3zakTNHSiZ0+mux7v6YHmmbLQp/o3fvYUQJmKGcLZZzg2GFA+tGGBStplra9VFNf/WwxpYg==", + "version": "3.972.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.6.tgz", + "integrity": "sha512-DZ3CnAAtSVtVz+G+ogqecaErMLgzph4JH5nYbHoBMgBkwTUV+SUcjsjOJwdBJTHu3Dm6l5LBYekZoU2nDqQk2A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.4", - "@aws-sdk/credential-provider-http": "^3.972.6", - "@aws-sdk/credential-provider-ini": "^3.972.4", - "@aws-sdk/credential-provider-process": "^3.972.4", - "@aws-sdk/credential-provider-sso": "^3.972.4", - "@aws-sdk/credential-provider-web-identity": "^3.972.4", + "@aws-sdk/credential-provider-env": "^3.972.5", + "@aws-sdk/credential-provider-http": "^3.972.7", + "@aws-sdk/credential-provider-ini": "^3.972.5", + "@aws-sdk/credential-provider-process": "^3.972.5", + "@aws-sdk/credential-provider-sso": "^3.972.5", + "@aws-sdk/credential-provider-web-identity": "^3.972.5", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -749,12 +765,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.4.tgz", - "integrity": "sha512-TCZpWUnBQN1YPk6grvd5x419OfXjHvhj5Oj44GYb84dOVChpg/+2VoEj+YVA4F4E/6huQPNnX7UYbTtxJqgihw==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.5.tgz", + "integrity": "sha512-HDKF3mVbLnuqGg6dMnzBf1VUOywE12/N286msI9YaK9mEIzdsGCtLTvrDhe3Up0R9/hGFbB+9l21/TwF5L1C6g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -766,14 +782,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.4.tgz", - "integrity": "sha512-wzsGwv9mKlwJ3vHLyembBvGE/5nPUIwRR2I51B1cBV4Cb4ql9nIIfpmHzm050XYTY5fqTOKJQnhLj7zj89VG8g==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.5.tgz", + "integrity": "sha512-8urj3AoeNeQisjMmMBhFeiY2gxt6/7wQQbEGun0YV/OaOOiXrIudTIEYF8ZfD+NQI6X1FY5AkRsx6O/CaGiybA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.982.0", - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/token-providers": "3.982.0", + "@aws-sdk/client-sso": "3.985.0", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/token-providers": "3.985.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -785,13 +801,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.4.tgz", - "integrity": "sha512-hIzw2XzrG8jzsUSEatehmpkd5rWzASg5IHUfA+m01k/RtvfAML7ZJVVohuKdhAYx+wV2AThLiQJVzqn7F0khrw==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.5.tgz", + "integrity": "sha512-OK3cULuJl6c+RcDZfPpaK5o3deTOnKZbxm7pzhFNGA3fI2hF9yDih17fGRazJzGGWaDVlR9ejZrpDef4DJCEsw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/nested-clients": "3.985.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -803,14 +819,14 @@ } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.982.0.tgz", - "integrity": "sha512-N3FeXRwWxkRq5/WSNqgg4PNaT6mFG8eZyKs1AsS7n3PvoLTa17qTvtKUlxYvyf4AC5qNRF8Vp1OCMQycV013SQ==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.987.0.tgz", + "integrity": "sha512-wcMA47LXtxIPb7VE44GUYx/7ypjEh1EzQZdmrVcA0Q3/OWuF8k+Lm71rXIIU5A28hsmh17X7EflJUQmCG6yVmQ==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/smithy-client": "^4.11.1", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/smithy-client": "^4.11.2", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -820,7 +836,7 @@ "node": ">=20.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "3.982.0" + "@aws-sdk/client-s3": "^3.987.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { @@ -857,15 +873,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.4.tgz", - "integrity": "sha512-xOxsUkF3O3BtIe3tf54OpPo94eZepjFm3z0Dd2TZKbsPxMiRTFXurC04wJ58o/wPW9YHVO9VqZik3MfoPfrKlw==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.5.tgz", + "integrity": "sha512-SF/1MYWx67OyCrLA4icIpWUfCkdlOi8Y1KecQ9xYxkL10GMjVdPTGPnYhAg0dw5U43Y9PVUWhAV2ezOaG+0BLg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/crc64-nvme": "3.972.0", "@aws-sdk/types": "^3.973.1", "@smithy/is-array-buffer": "^4.2.0", @@ -873,7 +889,7 @@ "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.11", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -941,23 +957,23 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.6.tgz", - "integrity": "sha512-Xq7wM6kbgJN1UO++8dvH/efPb1nTwWqFCpZCR7RCLOETP7xAUAhVo7JmsCnML5Di/iC4Oo5VrJ4QmkYcMZniLw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.7.tgz", + "integrity": "sha512-VtZ7tMIw18VzjG+I6D6rh2eLkJfTtByiFoCIauGDtTTPBEUMQUiGaJ/zZrPlCY6BsvLLeFKz3+E5mntgiOWmIg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/types": "^3.973.1", "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.11", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -980,15 +996,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.6.tgz", - "integrity": "sha512-TehLN8W/kivl0U9HcS+keryElEWORROpghDXZBLfnb40DXM7hx/i+7OOjkogXQOF3QtUraJVRkHQ07bPhrWKlw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.7.tgz", + "integrity": "sha512-HUD+geASjXSCyL/DHPQc/Ua7JhldTcIglVAoCV8kiVm99IaFSlAbTvEnyhZwdE6bdFyTL+uIaWLaCFSRsglZBQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", - "@smithy/core": "^3.22.0", + "@aws-sdk/util-endpoints": "3.985.0", + "@smithy/core": "^3.22.1", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" @@ -997,45 +1013,61 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", + "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.982.0.tgz", - "integrity": "sha512-VVkaH27digrJfdVrT64rjkllvOp4oRiZuuJvrylLXAKl18ujToJR7AqpDldL/LS63RVne3QWIpkygIymxFtliQ==", + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.985.0.tgz", + "integrity": "sha512-TsWwKzb/2WHafAY0CE7uXgLj0FmnkBTgfioG9HO+7z/zCPcl1+YU+i7dW4o0y+aFxFgxTMG+ExBQpqT/k2ao8g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.6", + "@aws-sdk/core": "^3.973.7", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.982.0", + "@aws-sdk/util-endpoints": "3.985.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.4", + "@aws-sdk/util-user-agent-node": "^3.972.5", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.22.1", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.12", - "@smithy/middleware-retry": "^4.4.29", + "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-retry": "^4.4.30", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.9", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.28", - "@smithy/util-defaults-mode-node": "^4.2.31", + "@smithy/util-defaults-mode-browser": "^4.3.29", + "@smithy/util-defaults-mode-node": "^4.2.32", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -1046,6 +1078,22 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", + "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/region-config-resolver": { "version": "3.972.3", "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz", @@ -1063,17 +1111,17 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.982.0.tgz", - "integrity": "sha512-18mEy26sW0lf6Z3UpIPHFQ08+p+Kfn/A7EE7lrCAiQcq4b5ueSkR9B0uurIZHFtb9UMjOPXVdYaetWpl//Oidw==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.987.0.tgz", + "integrity": "sha512-XHf9ZQOgsdzBhfFhMM+wFITnd1M3OqMVUEdIrciSS8aFOg+WtQEcR2GcMs+Sj5whmO4XOrUMFuDdCgAwvdq0tg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.982.0", + "@aws-sdk/signature-v4-multi-region": "3.987.0", "@aws-sdk/types": "^3.973.1", "@aws-sdk/util-format-url": "^3.972.3", - "@smithy/middleware-endpoint": "^4.4.12", + "@smithy/middleware-endpoint": "^4.4.13", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.2", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -1082,12 +1130,12 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.982.0.tgz", - "integrity": "sha512-AWqjMAH848aNwnLCtIKM3WO00eHuUoYVfQMP4ccrUHhnEduGOusVgdHQ5mLNQZZNZzREuBwnPPhIP55cy0gFSg==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.987.0.tgz", + "integrity": "sha512-5kVC6x6+2NO+/NIXWJwN68+8cvqREsoE+tFOMyZWj2fg3EWzCnTGVIFd7hSJZJT2WiP5LqcrdEoFyXtfDta1hg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.6", + "@aws-sdk/middleware-sdk-s3": "^3.972.7", "@aws-sdk/types": "^3.973.1", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", @@ -1099,13 +1147,13 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.982.0.tgz", - "integrity": "sha512-v3M0KYp2TVHYHNBT7jHD9lLTWAdS9CaWJ2jboRKt0WAB65bA7iUEpR+k4VqKYtpQN4+8kKSc4w+K6kUNZkHKQw==", + "version": "3.985.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.985.0.tgz", + "integrity": "sha512-+hwpHZyEq8k+9JL2PkE60V93v2kNhUIv7STFt+EAez1UJsJOQDhc5LpzEX66pNjclI5OTwBROs/DhJjC/BtMjQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.6", - "@aws-sdk/nested-clients": "3.982.0", + "@aws-sdk/core": "^3.973.7", + "@aws-sdk/nested-clients": "3.985.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -1142,9 +1190,9 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.982.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.982.0.tgz", - "integrity": "sha512-M27u8FJP7O0Of9hMWX5dipp//8iglmV9jr7R8SR8RveU+Z50/8TqH68Tu6wUWBGMfXjzbVwn1INIAO5lZrlxXQ==", + "version": "3.987.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.987.0.tgz", + "integrity": "sha512-rZnZwDq7Pn+TnL0nyS6ryAhpqTZtLtHbJaqfxuHlDX3v/bq0M7Ch/V3qF9dZWaGgsJ2H9xn7/vFOxlnL4fBMcQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1197,12 +1245,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.4.tgz", - "integrity": "sha512-3WFCBLiM8QiHDfosQq3Py+lIMgWlFWwFQliUHUqwEiRqLnKyhgbU3AKa7AWJF7lW2Oc/2kFNY4MlAYVnVc0i8A==", + "version": "3.972.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.5.tgz", + "integrity": "sha512-GsUDF+rXyxDZkkJxUsDxnA67FG+kc5W1dnloCFLl6fWzceevsCYzJpASBzT+BPjwUgREE6FngfJYYYMQUY5fZQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.6", + "@aws-sdk/middleware-user-agent": "^3.972.7", "@aws-sdk/types": "^3.973.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/types": "^4.12.0", @@ -1234,6 +1282,24 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz", + "integrity": "sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/@aws/lambda-invoke-store": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz", @@ -2930,9 +2996,9 @@ } }, "node_modules/@smithy/core": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.22.0.tgz", - "integrity": "sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.0.tgz", + "integrity": "sha512-Yq4UPVoQICM9zHnByLmG8632t2M0+yap4T7ANVw482J0W7HW0pOuxwVmeOwzJqX2Q89fkXz0Vybz55Wj2Xzrsg==", "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^4.2.9", @@ -2941,7 +3007,7 @@ "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.12", "@smithy/util-utf8": "^4.2.0", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" @@ -3150,12 +3216,12 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.12.tgz", - "integrity": "sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.14.tgz", + "integrity": "sha512-FUFNE5KVeaY6U/GL0nzAAHkaCHzXLZcY1EhtQnsAqhD8Du13oPKtMB9/0WK4/LK6a/T5OZ24wPoSShff5iI6Ag==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.23.0", "@smithy/middleware-serde": "^4.2.9", "@smithy/node-config-provider": "^4.3.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -3169,15 +3235,15 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.29", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.29.tgz", - "integrity": "sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==", + "version": "4.4.31", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.31.tgz", + "integrity": "sha512-RXBzLpMkIrxBPe4C8OmEOHvS8aH9RUuCOH++Acb5jZDEblxDjyg6un72X9IcbrGTJoiUwmI7hLypNfuDACypbg==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.8", "@smithy/protocol-http": "^5.3.8", "@smithy/service-error-classification": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -3231,9 +3297,9 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.8.tgz", - "integrity": "sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz", + "integrity": "sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.2.8", @@ -3344,17 +3410,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.1.tgz", - "integrity": "sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.3.tgz", + "integrity": "sha512-Q7kY5sDau8OoE6Y9zJoRGgje8P4/UY0WzH8R2ok0PDh+iJ+ZnEKowhjEqYafVcubkbYxQVaqwm3iufktzhprGg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.22.0", - "@smithy/middleware-endpoint": "^4.4.12", + "@smithy/core": "^3.23.0", + "@smithy/middleware-endpoint": "^4.4.14", "@smithy/middleware-stack": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.12", "tslib": "^2.6.2" }, "engines": { @@ -3451,13 +3517,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.28.tgz", - "integrity": "sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==", + "version": "4.3.30", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.30.tgz", + "integrity": "sha512-cMni0uVU27zxOiU8TuC8pQLC1pYeZ/xEMxvchSK/ILwleRd1ugobOcIRr5vXtcRqKd4aBLWlpeBoDPJJ91LQng==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -3466,16 +3532,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.31", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.31.tgz", - "integrity": "sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==", + "version": "4.2.33", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.33.tgz", + "integrity": "sha512-LEb2aq5F4oZUSzWBG7S53d4UytZSkOEJPXcBq/xbG2/TmK9EW5naUZ8lKu1BEyWMzdHIzEVN16M3k8oxDq+DJA==", "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^4.4.6", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -3537,13 +3603,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.5.10", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.10.tgz", - "integrity": "sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==", + "version": "4.5.12", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.12.tgz", + "integrity": "sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg==", "license": "Apache-2.0", "dependencies": { "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.10", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-buffer-from": "^4.2.0", @@ -4461,13 +4527,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz", - "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, @@ -4655,9 +4721,9 @@ } }, "node_modules/bullmq": { - "version": "5.67.2", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.67.2.tgz", - "integrity": "sha512-3KYqNqQptKcgksACO1li4YW9/jxEh6XWa1lUg4OFrHa80Pf0C7H9zeb6ssbQQDfQab/K3QCXopbZ40vrvcyrLw==", + "version": "5.68.0", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.68.0.tgz", + "integrity": "sha512-PywC7eTcPrKVQN5iEfhs5ats90nSLr8dzsyIhgviO8qQRTHnTq/SnETq2E8Do1RLg7Qw1Q0p5htBPI/cUGAlHg==", "license": "MIT", "dependencies": { "cron-parser": "4.9.0", @@ -5628,9 +5694,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.2.4", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.4.tgz", + "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -6483,9 +6549,9 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz", - "integrity": "sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.5.tgz", + "integrity": "sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==", "funding": [ { "type": "github", @@ -6494,7 +6560,7 @@ ], "license": "MIT", "dependencies": { - "strnum": "^2.1.0" + "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" @@ -6609,9 +6675,9 @@ } }, "node_modules/firebase-admin": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.6.0.tgz", - "integrity": "sha512-GdPA/t0+Cq8p1JnjFRBmxRxAGvF/kl2yfdhALl38PrRp325YxyQ5aNaHui0XmaKcKiGRFIJ/EgBNWFoDP0onjw==", + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.6.1.tgz", + "integrity": "sha512-Zgc6yPtmPxAZo+FoK6LMG6zpSEsoSK8ifIR+IqF4oWuC3uWZU40OjxgfLTSFcsRlj/k/wD66zNv2UiTRreCNSw==", "license": "Apache-2.0", "dependencies": { "@fastify/busboy": "^3.0.0", @@ -10677,9 +10743,9 @@ } }, "node_modules/strnum": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", - "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", + "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", "funding": [ { "type": "github", @@ -10969,9 +11035,9 @@ "license": "Unlicense" }, "node_modules/twilio": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.12.0.tgz", - "integrity": "sha512-ZAKnDKcWvJSb90xQS13QB5KQOeMJPzsRPHxZqju8i5ALg3D4hNwAF9bpytVTxTJV99BL4Rn6Un+ZtXjGeMpjvQ==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.12.1.tgz", + "integrity": "sha512-EhgWS5o+JWqMEl0KgUaN1oAym2Pr7LYYiIlwQdx+u+vACBdwHRzhHAQD6TRKFMciNUTzgBi266ZNpYbFhnEykQ==", "license": "MIT", "dependencies": { "axios": "^1.12.0", diff --git a/package.json b/package.json index 118267f65..156509777 100644 --- a/package.json +++ b/package.json @@ -18,23 +18,23 @@ "job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js" }, "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.982.0", - "@aws-sdk/client-elasticache": "^3.982.0", - "@aws-sdk/client-s3": "^3.982.0", - "@aws-sdk/client-secrets-manager": "^3.982.0", - "@aws-sdk/client-ses": "^3.982.0", - "@aws-sdk/credential-provider-node": "^3.972.5", - "@aws-sdk/lib-storage": "^3.982.0", - "@aws-sdk/s3-request-presigner": "^3.982.0", + "@aws-sdk/client-cloudwatch-logs": "^3.987.0", + "@aws-sdk/client-elasticache": "^3.987.0", + "@aws-sdk/client-s3": "^3.987.0", + "@aws-sdk/client-secrets-manager": "^3.987.0", + "@aws-sdk/client-ses": "^3.987.0", + "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/lib-storage": "^3.987.0", + "@aws-sdk/s3-request-presigner": "^3.987.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", "archiver": "^7.0.1", "aws4": "^1.13.2", - "axios": "^1.13.4", + "axios": "^1.13.5", "axios-curlirize": "^2.0.0", "better-queue": "^3.8.12", - "bullmq": "^5.67.2", + "bullmq": "^5.68.0", "chart.js": "^4.5.1", "cloudinary": "^2.9.0", "compression": "^1.8.1", @@ -42,10 +42,10 @@ "cors": "^2.8.6", "crisp-status-reporter": "^1.2.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.3", + "dotenv": "^17.2.4", "express": "^4.21.1", - "fast-xml-parser": "^5.3.4", - "firebase-admin": "^13.6.0", + "fast-xml-parser": "^5.3.5", + "firebase-admin": "^13.6.1", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", @@ -69,7 +69,7 @@ "socket.io": "^4.8.3", "socket.io-adapter": "^2.5.6", "ssh2-sftp-client": "^11.0.0", - "twilio": "^5.12.0", + "twilio": "^5.12.1", "uuid": "^11.1.0", "winston": "^3.19.0", "winston-cloudwatch": "^6.3.0", From 1b84087ef85d30a8fb5715a1d30ba421ae24fd7e Mon Sep 17 00:00:00 2001 From: Dave Date: Wed, 18 Feb 2026 12:31:55 -0500 Subject: [PATCH 15/25] feature/IO-3544-Ant-Select-Deprecation - Package Bumps --- client/package-lock.json | 361 +++++++++++----------- client/package.json | 20 +- package-lock.json | 635 ++++++++++++++++++++------------------- package.json | 30 +- 4 files changed, 529 insertions(+), 517 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index a821ad1a9..16f5601e5 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,7 +9,7 @@ "version": "0.2.1", "hasInstallScript": true, "dependencies": { - "@amplitude/analytics-browser": "^2.34.1", + "@amplitude/analytics-browser": "^2.35.0", "@ant-design/pro-layout": "^7.22.6", "@apollo/client": "^4.1.4", "@dnd-kit/core": "^6.3.1", @@ -26,10 +26,10 @@ "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.11.2", "@sentry/cli": "^3.2.0", - "@sentry/react": "^10.38.0", + "@sentry/react": "^10.39.0", "@sentry/vite-plugin": "^4.9.1", "@splitsoftware/splitio-react": "^2.6.1", - "@tanem/react-nprogress": "^5.0.60", + "@tanem/react-nprogress": "^5.0.63", "antd": "^6.3.0", "apollo-link-logger": "^3.0.0", "autosize": "^6.0.1", @@ -39,15 +39,15 @@ "dayjs": "^1.11.19", "dayjs-business-days2": "^1.3.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.4", + "dotenv": "^17.3.1", "env-cmd": "^11.0.0", "exifr": "^7.1.3", "graphql": "^16.12.0", "graphql-ws": "^6.0.7", - "i18next": "^25.8.5", - "i18next-browser-languagedetector": "^8.2.0", + "i18next": "^25.8.11", + "i18next-browser-languagedetector": "^8.2.1", "immutability-helper": "^3.1.1", - "libphonenumber-js": "^1.12.36", + "libphonenumber-js": "^1.12.37", "lightningcss": "^1.31.1", "logrocket": "^12.0.0", "markerjs2": "^2.32.7", @@ -55,7 +55,7 @@ "normalize-url": "^8.1.1", "object-hash": "^3.0.0", "phone": "^3.1.70", - "posthog-js": "^1.345.4", + "posthog-js": "^1.351.1", "prop-types": "^15.8.1", "query-string": "^9.3.1", "raf-schd": "^4.0.3", @@ -88,7 +88,7 @@ "rxjs": "^7.8.2", "sass": "^1.97.3", "socket.io-client": "^4.8.3", - "styled-components": "^6.3.9", + "styled-components": "^6.3.10", "vite-plugin-ejs": "^1.7.0", "web-vitals": "^5.1.0" }, @@ -113,7 +113,7 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-compiler": "^19.1.0-rc.2", "globals": "^17.3.0", - "jsdom": "^28.0.0", + "jsdom": "^28.1.0", "memfs": "^4.56.10", "os-browserify": "^0.3.0", "playwright": "^1.58.2", @@ -151,17 +151,17 @@ "license": "MIT" }, "node_modules/@amplitude/analytics-browser": { - "version": "2.34.1", - "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.34.1.tgz", - "integrity": "sha512-dxyzk0nTkw+CgFPpOwUVgJO2acn9/P1MDE6NYaoM9WSvWkfesbgzdAnnh7PMjTu+aIeXgT2hSQtxAznBKv5rqA==", + "version": "2.35.0", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.35.0.tgz", + "integrity": "sha512-qDQ9ZBCThGMLT4t38djVLsdem9heSXj8rhdHCyoLqVCBaiW1bq3Q8nGL0THilFFNKOgHj/7HmAM8VmeHYHVtJA==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", - "@amplitude/plugin-autocapture-browser": "1.20.0", - "@amplitude/plugin-network-capture-browser": "1.7.9", - "@amplitude/plugin-page-url-enrichment-browser": "0.5.15", - "@amplitude/plugin-page-view-tracking-browser": "2.6.12", - "@amplitude/plugin-web-vitals-browser": "1.1.10", + "@amplitude/analytics-core": "2.39.0", + "@amplitude/plugin-autocapture-browser": "1.21.0", + "@amplitude/plugin-network-capture-browser": "1.8.0", + "@amplitude/plugin-page-url-enrichment-browser": "0.6.0", + "@amplitude/plugin-page-view-tracking-browser": "2.7.0", + "@amplitude/plugin-web-vitals-browser": "1.1.11", "tslib": "^2.4.1" } }, @@ -172,9 +172,9 @@ "license": "MIT" }, "node_modules/@amplitude/analytics-core": { - "version": "2.38.0", - "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.38.0.tgz", - "integrity": "sha512-cYFNox/mb8uWxdUFEMsS5Uj79BiWm3t1Dm+y5AS085tjbZ2RIxYsytb7ieeWCxd2cXEIpDPbcYhScU4Hm1Ky9g==", + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.39.0.tgz", + "integrity": "sha512-AnCMrjfBgHbXrJzW7ZMhm7POy5jv28IvrvBvNjt3y5qGXjR4V3nFUWjjUP5HuKhTM47DX5t9pM9RwDHfc/+gLQ==", "license": "MIT", "dependencies": { "@amplitude/analytics-connector": "^1.6.4", @@ -183,52 +183,52 @@ } }, "node_modules/@amplitude/plugin-autocapture-browser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.20.0.tgz", - "integrity": "sha512-fuXmHDfGSx9iRHqTcXGaNaBUEZZqjLBhsujH16CfGngzug7C6Btfilev3nvxddwTwfhJ17MtFXIqJMWs7ahBTQ==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.21.0.tgz", + "integrity": "sha512-lVFdNEq86y2ya+HyBO4wdJZHk8DsT2urV5LixMjeZ7EX5RZEOcGI4LIoUABC9VuFRylWEH1nMxBDBbRYeG91Rw==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", + "@amplitude/analytics-core": "2.39.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-network-capture-browser": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.7.9.tgz", - "integrity": "sha512-Osu9O3SnNNNRZqqaBdMQ00F6Sdfg282BhCgzOf+zoDd1VEbtOpbBsXu7ofdUyEZ17Ey2z3sKprhkc96t+Bkb9w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.8.0.tgz", + "integrity": "sha512-Q2uwzYVaoNWYgGplZGKM8EfC+9pWkvN3Da4YLLvdc3tFP6p+4kv2f3j5WBU3V4znf3ZTf8418ycPgzHF4zH77Q==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", + "@amplitude/analytics-core": "2.39.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-page-url-enrichment-browser": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-url-enrichment-browser/-/plugin-page-url-enrichment-browser-0.5.15.tgz", - "integrity": "sha512-Z0UYsfLoRYTnXp7QWsGPozawvpQrgiN8ZhvCnBSPveaeZE76uT8ShSZMF7p4L4epFoCMNXbrDk3PuIWr0+S+Ow==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-url-enrichment-browser/-/plugin-page-url-enrichment-browser-0.6.0.tgz", + "integrity": "sha512-RijfDipaeTe9QhK6mtHTWYjM0JmV7a3L3qoKTqigw4RJrcgNjC5QCCHk7ldFpdcLjmBQK4oFIDad2hKAGiFoow==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", + "@amplitude/analytics-core": "2.39.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-page-view-tracking-browser": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.6.12.tgz", - "integrity": "sha512-LCUwQ23uS3QpjXWINpnh7qeJ0+i+Mx5BbXNBiU3uPRgAvaCGpMjHglHn44cc/RU8SEtm+25mrbNWb5n9Ky9Vfg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.7.0.tgz", + "integrity": "sha512-RXickQd98A8WWr/cBG1hft/uy6sdRvYgaoASriDYGHxFSmID6iJT0kHVf3X3oAHDeMpt2aeuslZubuZou1MhfQ==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", + "@amplitude/analytics-core": "2.39.0", "tslib": "^2.4.1" } }, "node_modules/@amplitude/plugin-web-vitals-browser": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@amplitude/plugin-web-vitals-browser/-/plugin-web-vitals-browser-1.1.10.tgz", - "integrity": "sha512-V2ciIBPa+BMb1OC1dqcscHfQoY79RARNOOqohtJ+NZRM88AjhVGca+hs4igkIqbIju5Pjri2HU9TYwHbi550pg==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-web-vitals-browser/-/plugin-web-vitals-browser-1.1.11.tgz", + "integrity": "sha512-YtuTEB1brHbFcuyb8g8B8xVk5OucQnK3KxvMl6oxKQ5RH5XeUagFE2cFhiDhkvuCnA1m9nwGneXXaJWbN0TCIg==", "license": "MIT", "dependencies": { - "@amplitude/analytics-core": "2.38.0", + "@amplitude/analytics-core": "2.39.0", "tslib": "^2.4.1", "web-vitals": "5.1.0" } @@ -585,23 +585,23 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.1.tgz", - "integrity": "sha512-B0Hv6G3gWGMn0xKJ0txEi/jM5iFpT3MfDxmhZFb4W047GvytCf1DHQ1D69W3zHI4yWe2aTZAA0JnbMZ7Xc8DuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", + "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.2.4" + "@csstools/css-calc": "^3.0.0", + "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.2.5" } }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -609,9 +609,9 @@ } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.7.6", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.6.tgz", - "integrity": "sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", + "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", "dev": true, "license": "MIT", "dependencies": { @@ -619,13 +619,13 @@ "bidi-js": "^1.0.3", "css-tree": "^3.1.0", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.4" + "lru-cache": "^11.2.6" } }, "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2344,6 +2344,19 @@ "node": ">=6.9.0" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@commander-js/extra-typings": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-13.1.0.tgz", @@ -2354,9 +2367,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", - "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.1.tgz", + "integrity": "sha512-NmXRccUJMk2AWA5A7e5a//3bCIMyOu2hAtdRYrhPPHjDxINuCwX1w6rnIZ4xjLcp0ayv6h8Pc3X0eJUGiAAXHQ==", "dev": true, "funding": [ { @@ -2370,13 +2383,13 @@ ], "license": "MIT-0", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", + "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", "dev": true, "funding": [ { @@ -2390,17 +2403,17 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", - "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.1.tgz", + "integrity": "sha512-vYwO15eRBEkeF6xjAno/KQ61HacNhfQuuU/eGwH67DplL0zD5ZixUa563phQvUelA07yDczIXdtmYojCphKJcw==", "dev": true, "funding": [ { @@ -2414,21 +2427,21 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" + "@csstools/color-helpers": "^6.0.1", + "@csstools/css-calc": "^3.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -2442,16 +2455,16 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.25.tgz", - "integrity": "sha512-g0Kw9W3vjx5BEBAF8c5Fm2NcB/Fs8jJXh85aXqwEXiL+tqtOut07TWgyaGzAAfTM+gKckrrncyeGEZPcaRgm2Q==", + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.27.tgz", + "integrity": "sha512-sxP33Jwg1bviSUXAV43cVYdmjt2TLnLXNqCWl9xmxHawWVjGz/kEbdkr7F9pxJNBN2Mh+dq0crgItbW6tQvyow==", "dev": true, "funding": [ { @@ -2463,15 +2476,12 @@ "url": "https://opencollective.com/csstools" } ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } + "license": "MIT-0" }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -2485,7 +2495,7 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@ctrl/tinycolor": { @@ -4841,18 +4851,18 @@ } }, "node_modules/@posthog/core": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.22.0.tgz", - "integrity": "sha512-WkmOnq95aAOu6yk6r5LWr5cfXsQdpVbWDCwOxQwxSne8YV6GuZET1ziO5toSQXgrgbdcjrSz2/GopAfiL6iiAA==", + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.23.1.tgz", + "integrity": "sha512-GViD5mOv/mcbZcyzz3z9CS0R79JzxVaqEz4sP5Dsea178M/j3ZWe6gaHDZB9yuyGfcmIMQ/8K14yv+7QrK4sQQ==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.6" } }, "node_modules/@posthog/types": { - "version": "1.345.4", - "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.345.4.tgz", - "integrity": "sha512-6m4sQ1evxTu0m3eLfYpXVdguZyVzPdAxwY5JMJ02KvuYJCR1AY9+YP2BUaJ9tz3PleXaZxSK20msu/ceewmUjg==", + "version": "1.351.1", + "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.351.1.tgz", + "integrity": "sha512-hdHQtgXmmInxvNpoKQR/XbigutXQ9/GNX2H9VkrCh0IWybRr8irPUY3EojTYWmukL/N0Kn616eNNQCGFuE1RaA==", "license": "MIT" }, "node_modules/@protobufjs/aspromise": { @@ -6689,50 +6699,50 @@ ] }, "node_modules/@sentry-internal/browser-utils": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.38.0.tgz", - "integrity": "sha512-UOJtYmdcxHCcV0NPfXFff/a95iXl/E0EhuQ1y0uE0BuZDMupWSF5t2BgC4HaE5Aw3RTjDF3XkSHWoIF6ohy7eA==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.39.0.tgz", + "integrity": "sha512-W6WODonMGiI13Az5P7jd/m2lj/JpIyuVKg7wE4X+YdlMehLspAv6I7gRE4OBSumS14ZjdaYDpD/lwtnBwKAzcA==", "license": "MIT", "dependencies": { - "@sentry/core": "10.38.0" + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/feedback": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.38.0.tgz", - "integrity": "sha512-JXneg9zRftyfy1Fyfc39bBlF/Qd8g4UDublFFkVvdc1S6JQPlK+P6q22DKz3Pc8w3ySby+xlIq/eTu9Pzqi4KA==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.39.0.tgz", + "integrity": "sha512-cRXmmDeOr5FzVsBNRLU4WDEuC3fhuD0XV362EWl4DI3XBGao8ukaueKcLIKic5WZx6uXimjWw/UJmDLgxeCqkg==", "license": "MIT", "dependencies": { - "@sentry/core": "10.38.0" + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.38.0.tgz", - "integrity": "sha512-YWIkL6/dnaiQyFiZXJ/nN+NXGv/15z45ia86bE/TMq01CubX/DUOilgsFz0pk2v/pg3tp/U2MskLO9Hz0cnqeg==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.39.0.tgz", + "integrity": "sha512-obZoYOrUfxIYBHkmtPpItRdE38VuzF1VIxSgZ8Mbtq/9UvCWh+eOaVWU2stN/cVu1KYuYX0nQwBvdN28L6y/JA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.38.0", - "@sentry/core": "10.38.0" + "@sentry-internal/browser-utils": "10.39.0", + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.38.0.tgz", - "integrity": "sha512-OXWM9jEqNYh4VTvrMu7v+z1anz+QKQ/fZXIZdsO7JTT2lGNZe58UUMeoq386M+Saxen8F9SUH7yTORy/8KI5qw==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.39.0.tgz", + "integrity": "sha512-TTiX0XWCcqTqFGJjEZYObk93j/sJmXcqPzcu0cN2mIkKnnaHDY3w74SHZCshKqIr0AOQdt1HDNa36s3TCdt0Jw==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "10.38.0", - "@sentry/core": "10.38.0" + "@sentry-internal/replay": "10.39.0", + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" @@ -6748,16 +6758,16 @@ } }, "node_modules/@sentry/browser": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.38.0.tgz", - "integrity": "sha512-3phzp1YX4wcQr9mocGWKbjv0jwtuoDBv7+Y6Yfrys/kwyaL84mDLjjQhRf4gL5SX7JdYkhBp4WaiNlR0UC4kTA==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.39.0.tgz", + "integrity": "sha512-I50W/1PDJWyqgNrGufGhBYCmmO3Bb159nx2Ut2bKoVveTfgH/hLEtDyW0kHo8Fu454mW+ukyXfU4L4s+kB9aaw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.38.0", - "@sentry-internal/feedback": "10.38.0", - "@sentry-internal/replay": "10.38.0", - "@sentry-internal/replay-canvas": "10.38.0", - "@sentry/core": "10.38.0" + "@sentry-internal/browser-utils": "10.39.0", + "@sentry-internal/feedback": "10.39.0", + "@sentry-internal/replay": "10.39.0", + "@sentry-internal/replay-canvas": "10.39.0", + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" @@ -7166,22 +7176,22 @@ } }, "node_modules/@sentry/core": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.38.0.tgz", - "integrity": "sha512-1pubWDZE5y5HZEPMAZERP4fVl2NH3Ihp1A+vMoVkb3Qc66Diqj1WierAnStlZP7tCx0TBa0dK85GTW/ZFYyB9g==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.39.0.tgz", + "integrity": "sha512-xCLip2mBwCdRrvXHtVEULX0NffUTYZZBhEUGht0WFL+GNdNQ7gmBOGOczhZlrf2hgFFtDO0fs1xiP9bqq5orEQ==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry/react": { - "version": "10.38.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.38.0.tgz", - "integrity": "sha512-3UiKo6QsqTyPGUt0XWRY9KLaxc/cs6Kz4vlldBSOXEL6qPDL/EfpwNJT61osRo81VFWu8pKu7ZY2bvLPryrnBQ==", + "version": "10.39.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.39.0.tgz", + "integrity": "sha512-qxReWHFhDcXNGEyAlYzhR7+K70es+vXaSknTZui1q7TfQwCT1rZlLKn/K8GDpNsb35RC5QhiIphU6pKbyYgZqw==", "license": "MIT", "dependencies": { - "@sentry/browser": "10.38.0", - "@sentry/core": "10.38.0" + "@sentry/browser": "10.39.0", + "@sentry/core": "10.39.0" }, "engines": { "node": ">=18" @@ -7302,9 +7312,9 @@ } }, "node_modules/@tanem/react-nprogress": { - "version": "5.0.60", - "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-5.0.60.tgz", - "integrity": "sha512-1eJxtcZtUexasm6rc1chS446vHfBj3vV9t22hSjxzgFbtw4f2bpdfQZlsU/vycNwh8DC63v8Ya+a3s+hoSmTew==", + "version": "5.0.63", + "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-5.0.63.tgz", + "integrity": "sha512-bWkOhMBvwAe8GlqgkXdAyAeUDtWv7NknoDnlZXdVJb8M/1tP+JcsHq/xc3zUTQ0jcT3AT0uSB7Hlt27lJMHtDQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.6", @@ -9467,25 +9477,25 @@ "license": "MIT" }, "node_modules/cssstyle": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", - "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-6.0.1.tgz", + "integrity": "sha512-IoJs7La+oFp/AB033wBStxNOJt4+9hHMxsXUPANcoXL2b3W4DZKghlJ2cI/eyeRZIQ9ysvYEorVhjrcYctWbog==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^4.1.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.21", + "@asamuzakjp/css-color": "^4.1.2", + "@csstools/css-syntax-patches-for-csstree": "^1.0.26", "css-tree": "^3.1.0", - "lru-cache": "^11.2.4" + "lru-cache": "^11.2.5" }, "engines": { "node": ">=20" } }, "node_modules/cssstyle/node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -9984,9 +9994,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.4.tgz", - "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -11752,9 +11762,9 @@ } }, "node_modules/i18next": { - "version": "25.8.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.5.tgz", - "integrity": "sha512-TApjhgqQU6P7BQlpCTv6zQuXrYAP9rjYWgx2Nm8dsq+Zg9yJlAz+iR16/w7uVtTlSoULbqPTfqYjMK/DAQI+Ng==", + "version": "25.8.11", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.11.tgz", + "integrity": "sha512-LZ32llTLGludnddjLoijHV7TbmVubU5eJnsWf8taiuM3jmSfUuvBLuyDeubJKS1yBjLBgb7As124M4KWNcBvpw==", "funding": [ { "type": "individual", @@ -11783,9 +11793,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.0.tgz", - "integrity": "sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.1.tgz", + "integrity": "sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" @@ -12673,16 +12683,17 @@ } }, "node_modules/jsdom": { - "version": "28.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-28.0.0.tgz", - "integrity": "sha512-KDYJgZ6T2TKdU8yBfYueq5EPG/EylMsBvCaenWMJb2OXmjgczzwveRCoJ+Hgj1lXPDyasvrgneSn4GBuR1hYyA==", + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-28.1.0.tgz", + "integrity": "sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==", "dev": true, "license": "MIT", "dependencies": { "@acemir/cssom": "^0.9.31", - "@asamuzakjp/dom-selector": "^6.7.6", + "@asamuzakjp/dom-selector": "^6.8.1", + "@bramus/specificity": "^2.4.2", "@exodus/bytes": "^1.11.0", - "cssstyle": "^5.3.7", + "cssstyle": "^6.0.1", "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", @@ -12693,7 +12704,7 @@ "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.0", - "undici": "^7.20.0", + "undici": "^7.21.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", @@ -12737,9 +12748,9 @@ } }, "node_modules/jsdom/node_modules/undici": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.20.0.tgz", - "integrity": "sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==", + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", + "integrity": "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==", "dev": true, "license": "MIT", "engines": { @@ -12894,9 +12905,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.12.36", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.36.tgz", - "integrity": "sha512-woWhKMAVx1fzzUnMCyOzglgSgf6/AFHLASdOBcchYCyvWSGWt12imw3iu2hdI5d4dGZRsNWAmWiz37sDKUPaRQ==", + "version": "1.12.37", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.37.tgz", + "integrity": "sha512-rDU6bkpuMs8YRt/UpkuYEAsYSoNuDEbrE41I3KNvmXREGH6DGBJ8Wbak4by29wNOQ27zk4g4HL82zf0OGhwRuw==", "license": "MIT" }, "node_modules/lightningcss": { @@ -15037,9 +15048,9 @@ "license": "MIT" }, "node_modules/posthog-js": { - "version": "1.345.4", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.345.4.tgz", - "integrity": "sha512-1jwG2LcXWgs3OxkRXhYwIk6gX13FSwufGR7pXElFd+/8g8+M4XMFNwQfSD9q2/0nI2nhNzeGCC9Tk5BuK2Mgiw==", + "version": "1.351.1", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.351.1.tgz", + "integrity": "sha512-IbyVjhmQOgXR5UDflibXpqticWbfNnh2hM5+h+Mtz+MKbmw4vIu0AsHqSr6IcNMyrRM8NHoNiecjb00N6ROtmQ==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@opentelemetry/api": "^1.9.0", @@ -15047,8 +15058,8 @@ "@opentelemetry/exporter-logs-otlp-http": "^0.208.0", "@opentelemetry/resources": "^2.2.0", "@opentelemetry/sdk-logs": "^0.208.0", - "@posthog/core": "1.22.0", - "@posthog/types": "1.345.4", + "@posthog/core": "1.23.1", + "@posthog/types": "1.351.1", "core-js": "^3.38.1", "dompurify": "^3.3.1", "fflate": "^0.4.8", @@ -17324,9 +17335,9 @@ } }, "node_modules/styled-components": { - "version": "6.3.9", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.9.tgz", - "integrity": "sha512-J72R4ltw0UBVUlEjTzI0gg2STOqlI9JBhQOL4Dxt7aJOnnSesy0qJDn4PYfMCafk9cWOaVg129Pesl5o+DIh0Q==", + "version": "6.3.10", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.10.tgz", + "integrity": "sha512-vX2InL9LGFjpsWEBDbRQdhjl7PxZXzLqKeCxgGFl0x7tC6CYrcWdYgD0GUCU/m2MhhymJDbBTpdF0gwwG98phg==", "license": "MIT", "dependencies": { "@emotion/is-prop-valid": "1.4.0", diff --git a/client/package.json b/client/package.json index df8e3815f..215f5364e 100644 --- a/client/package.json +++ b/client/package.json @@ -8,7 +8,7 @@ "private": true, "proxy": "http://localhost:4000", "dependencies": { - "@amplitude/analytics-browser": "^2.34.1", + "@amplitude/analytics-browser": "^2.35.0", "@ant-design/pro-layout": "^7.22.6", "@apollo/client": "^4.1.4", "@dnd-kit/core": "^6.3.1", @@ -25,10 +25,10 @@ "@jsreport/browser-client": "^3.1.0", "@reduxjs/toolkit": "^2.11.2", "@sentry/cli": "^3.2.0", - "@sentry/react": "^10.38.0", + "@sentry/react": "^10.39.0", "@sentry/vite-plugin": "^4.9.1", "@splitsoftware/splitio-react": "^2.6.1", - "@tanem/react-nprogress": "^5.0.60", + "@tanem/react-nprogress": "^5.0.63", "antd": "^6.3.0", "apollo-link-logger": "^3.0.0", "autosize": "^6.0.1", @@ -38,15 +38,15 @@ "dayjs": "^1.11.19", "dayjs-business-days2": "^1.3.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.4", + "dotenv": "^17.3.1", "env-cmd": "^11.0.0", "exifr": "^7.1.3", "graphql": "^16.12.0", "graphql-ws": "^6.0.7", - "i18next": "^25.8.5", - "i18next-browser-languagedetector": "^8.2.0", + "i18next": "^25.8.11", + "i18next-browser-languagedetector": "^8.2.1", "immutability-helper": "^3.1.1", - "libphonenumber-js": "^1.12.36", + "libphonenumber-js": "^1.12.37", "lightningcss": "^1.31.1", "logrocket": "^12.0.0", "markerjs2": "^2.32.7", @@ -54,7 +54,7 @@ "normalize-url": "^8.1.1", "object-hash": "^3.0.0", "phone": "^3.1.70", - "posthog-js": "^1.345.4", + "posthog-js": "^1.351.1", "prop-types": "^15.8.1", "query-string": "^9.3.1", "raf-schd": "^4.0.3", @@ -87,7 +87,7 @@ "rxjs": "^7.8.2", "sass": "^1.97.3", "socket.io-client": "^4.8.3", - "styled-components": "^6.3.9", + "styled-components": "^6.3.10", "vite-plugin-ejs": "^1.7.0", "web-vitals": "^5.1.0" }, @@ -157,7 +157,7 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-compiler": "^19.1.0-rc.2", "globals": "^17.3.0", - "jsdom": "^28.0.0", + "jsdom": "^28.1.0", "memfs": "^4.56.10", "os-browserify": "^0.3.0", "playwright": "^1.58.2", diff --git a/package-lock.json b/package-lock.json index 00b7b8d4b..df399318e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,14 @@ "version": "0.2.0", "license": "UNLICENSED", "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.987.0", - "@aws-sdk/client-elasticache": "^3.987.0", - "@aws-sdk/client-s3": "^3.987.0", - "@aws-sdk/client-secrets-manager": "^3.987.0", - "@aws-sdk/client-ses": "^3.987.0", - "@aws-sdk/credential-provider-node": "^3.972.6", - "@aws-sdk/lib-storage": "^3.987.0", - "@aws-sdk/s3-request-presigner": "^3.987.0", + "@aws-sdk/client-cloudwatch-logs": "^3.992.0", + "@aws-sdk/client-elasticache": "^3.992.0", + "@aws-sdk/client-s3": "^3.992.0", + "@aws-sdk/client-secrets-manager": "^3.992.0", + "@aws-sdk/client-ses": "^3.992.0", + "@aws-sdk/credential-provider-node": "^3.972.9", + "@aws-sdk/lib-storage": "^3.992.0", + "@aws-sdk/s3-request-presigner": "^3.992.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", @@ -25,7 +25,7 @@ "axios": "^1.13.5", "axios-curlirize": "^2.0.0", "better-queue": "^3.8.12", - "bullmq": "^5.68.0", + "bullmq": "^5.69.3", "chart.js": "^4.5.1", "cloudinary": "^2.9.0", "compression": "^1.8.1", @@ -33,14 +33,14 @@ "cors": "^2.8.6", "crisp-status-reporter": "^1.2.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.4", + "dotenv": "^17.3.1", "express": "^4.21.1", - "fast-xml-parser": "^5.3.5", + "fast-xml-parser": "^5.3.6", "firebase-admin": "^13.6.1", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", - "ioredis": "^5.9.2", + "ioredis": "^5.9.3", "json-2-csv": "^5.5.10", "jsonwebtoken": "^9.0.3", "juice": "^11.1.1", @@ -54,13 +54,13 @@ "phone": "^3.1.70", "query-string": "7.1.3", "recursive-diff": "^1.0.9", - "rimraf": "^6.1.2", + "rimraf": "^6.1.3", "skia-canvas": "^3.0.8", - "soap": "^1.6.4", + "soap": "^1.7.1", "socket.io": "^4.8.3", "socket.io-adapter": "^2.5.6", "ssh2-sftp-client": "^11.0.0", - "twilio": "^5.12.1", + "twilio": "^5.12.2", "uuid": "^11.1.0", "winston": "^3.19.0", "winston-cloudwatch": "^6.3.0", @@ -288,26 +288,26 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.987.0.tgz", - "integrity": "sha512-e2CvrDmHdZkYPCehYUU0heabCviprmCjHXqOCq2aWqsRNU8vw3ePIWi1heFtxmHo2FPP//o/Lfnc8ZhZG/HrlA==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.992.0.tgz", + "integrity": "sha512-lQ3bQtiAftyfR8Ykr/a7QuG7fOLmJis1CZFI1TESMjXxnGizVD+lOK0qIqsHBFt9v3a3TdHyM5lTI6P/1zos6A==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.987.0", + "@aws-sdk/util-endpoints": "3.992.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/eventstream-serde-browser": "^4.2.8", "@smithy/eventstream-serde-config-resolver": "^4.3.8", "@smithy/eventstream-serde-node": "^4.2.8", @@ -315,21 +315,21 @@ "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -341,45 +341,45 @@ } }, "node_modules/@aws-sdk/client-elasticache": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.987.0.tgz", - "integrity": "sha512-dex+KxchkikbBsq6cOQumnQKtjalK5qRg+efeS8DsYroGrPe9TTA0ahiZ6PAbrcT+WfcoPgJi8FliFM3g+DY8w==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.992.0.tgz", + "integrity": "sha512-uy0L2E845EdLjuTe19puwM8kHqIixrWBMvnh1Am45Oez+zSqLdAxW2tIATozZ8ucTIORDmymYruZk2stizW2Xg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.987.0", + "@aws-sdk/util-endpoints": "3.992.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -392,34 +392,34 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.987.0.tgz", - "integrity": "sha512-9nLbDIjqdiDkJk8hrAW8jP51bRXjD0+2J3lnCAy+N2G4BDoQuN09+iQF2chF/9BJ/hTk5Ldm2beaO8G2PM1cyw==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.992.0.tgz", + "integrity": "sha512-6xfXGCvnWGgy5zZAse64Ru2G2qLKnPY7h8tchlsmGWVcJOWgz7iM3jmsWsQiJ79zH9A8HAPHU+ZD8TYYkwC+0Q==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", "@aws-sdk/middleware-bucket-endpoint": "^3.972.3", "@aws-sdk/middleware-expect-continue": "^3.972.3", - "@aws-sdk/middleware-flexible-checksums": "^3.972.5", + "@aws-sdk/middleware-flexible-checksums": "^3.972.8", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-location-constraint": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-sdk-s3": "^3.972.7", + "@aws-sdk/middleware-sdk-s3": "^3.972.10", "@aws-sdk/middleware-ssec": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", - "@aws-sdk/signature-v4-multi-region": "3.987.0", + "@aws-sdk/signature-v4-multi-region": "3.992.0", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.987.0", + "@aws-sdk/util-endpoints": "3.992.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/eventstream-serde-browser": "^4.2.8", "@smithy/eventstream-serde-config-resolver": "^4.3.8", "@smithy/eventstream-serde-node": "^4.2.8", @@ -430,25 +430,25 @@ "@smithy/invalid-dependency": "^4.2.8", "@smithy/md5-js": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", - "@smithy/util-stream": "^4.5.11", + "@smithy/util-stream": "^4.5.12", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.8", "tslib": "^2.6.2" @@ -458,45 +458,45 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.987.0.tgz", - "integrity": "sha512-OV651KLxvRHNO0o2Hp1aNmhuhwq1e8WA7RMn14AjegjIE6XWnw5jtANK125BdNtpV97kMZR/WXshO9UJ/oIxWA==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.992.0.tgz", + "integrity": "sha512-W/KW9LeIxf5h9oMyg9DsiR9KHVfzIINT+iOkT7cMTPOtM90tpGRhAoqwWSzYimYgiuWaRgTi2zVHqAccWHrtvg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.987.0", + "@aws-sdk/util-endpoints": "3.992.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -508,45 +508,45 @@ } }, "node_modules/@aws-sdk/client-ses": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.987.0.tgz", - "integrity": "sha512-PnhriCF9FwSCRc5nqHyooHSARghhpeDigviEDEFXpEI2+vz+ns0oxpyS/OyFAU+EwDOVxEmIScbYWpBC0VlKHQ==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.992.0.tgz", + "integrity": "sha512-1VvGbyrIyrYj+FBmSH9LCbF3r/tSj1W1x5eqkRtzA/ewKSDl8t1oOO7bFq9F8m3PmRSwaljhaLt/38Kr2tjDCw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-node": "^3.972.6", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.987.0", + "@aws-sdk/util-endpoints": "3.992.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -559,44 +559,44 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.985.0.tgz", - "integrity": "sha512-81J8iE8MuXhdbMfIz4sWFj64Pe41bFi/uqqmqOC5SlGv+kwoyLsyKS/rH2tW2t5buih4vTUxskRjxlqikTD4oQ==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.990.0.tgz", + "integrity": "sha512-xTEaPjZwOqVjGbLOP7qzwbdOWJOo1ne2mUhTZwEBBkPvNk4aXB/vcYwWwrjoSWUqtit4+GDbO75ePc/S6TUJYQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.985.0", + "@aws-sdk/util-endpoints": "3.990.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -608,9 +608,9 @@ } }, "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-endpoints": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", - "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -624,19 +624,19 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.973.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.7.tgz", - "integrity": "sha512-wNZZQQNlJ+hzD49cKdo+PY6rsTDElO8yDImnrI69p2PLBa7QomeUKAJWYp9xnaR38nlHqWhMHZuYLCQ3oSX+xg==", + "version": "3.973.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.10.tgz", + "integrity": "sha512-4u/FbyyT3JqzfsESI70iFg6e2yp87MB5kS2qcxIA66m52VSTN1fvuvbCY1h/LKq1LvuxIrlJ1ItcyjvcKoaPLg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", "@aws-sdk/xml-builder": "^3.972.4", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.8", @@ -661,12 +661,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.5.tgz", - "integrity": "sha512-LxJ9PEO4gKPXzkufvIESUysykPIdrV7+Ocb9yAhbhJLE4TiAYqbCVUE+VuKP1leGR1bBfjWjYgSV5MxprlX3mQ==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.8.tgz", + "integrity": "sha512-r91OOPAcHnLCSxaeu/lzZAVRCZ/CtTNuwmJkUwpwSDshUrP7bkX1OmFn2nUMWd9kN53Q4cEo8b7226G4olt2Mg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/types": "^4.12.0", @@ -677,20 +677,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.7.tgz", - "integrity": "sha512-L2uOGtvp2x3bTcxFTpSM+GkwFIPd8pHfGWO1764icMbo7e5xJh0nfhx1UwkXLnwvocTNEf8A7jISZLYjUSNaTg==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.10.tgz", + "integrity": "sha512-DTtuyXSWB+KetzLcWaSahLJCtTUe/3SXtlGp4ik9PCe9xD6swHEkG8n8/BNsQ9dsihb9nhFvuUB4DpdBGDcvVg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.11", + "@smithy/util-stream": "^4.5.12", "tslib": "^2.6.2" }, "engines": { @@ -698,19 +698,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.5.tgz", - "integrity": "sha512-SdDTYE6jkARzOeL7+kudMIM4DaFnP5dZVeatzw849k4bSXDdErDS188bgeNzc/RA2WGrlEpsqHUKP6G7sVXhZg==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.8.tgz", + "integrity": "sha512-n2dMn21gvbBIEh00E8Nb+j01U/9rSqFIamWRdGm/mE5e+vHQ9g0cBNdrYFlM6AAiryKVHZmShWT9D1JAWJ3ISw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/credential-provider-env": "^3.972.5", - "@aws-sdk/credential-provider-http": "^3.972.7", - "@aws-sdk/credential-provider-login": "^3.972.5", - "@aws-sdk/credential-provider-process": "^3.972.5", - "@aws-sdk/credential-provider-sso": "^3.972.5", - "@aws-sdk/credential-provider-web-identity": "^3.972.5", - "@aws-sdk/nested-clients": "3.985.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-env": "^3.972.8", + "@aws-sdk/credential-provider-http": "^3.972.10", + "@aws-sdk/credential-provider-login": "^3.972.8", + "@aws-sdk/credential-provider-process": "^3.972.8", + "@aws-sdk/credential-provider-sso": "^3.972.8", + "@aws-sdk/credential-provider-web-identity": "^3.972.8", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -723,13 +723,13 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.5.tgz", - "integrity": "sha512-uYq1ILyTSI6ZDCMY5+vUsRM0SOCVI7kaW4wBrehVVkhAxC6y+e9rvGtnoZqCOWL1gKjTMouvsf4Ilhc5NCg1Aw==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.8.tgz", + "integrity": "sha512-rMFuVids8ICge/X9DF5pRdGMIvkVhDV9IQFQ8aTYk6iF0rl9jOUa1C3kjepxiXUlpgJQT++sLZkT9n0TMLHhQw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/nested-clients": "3.985.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", @@ -742,17 +742,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.6.tgz", - "integrity": "sha512-DZ3CnAAtSVtVz+G+ogqecaErMLgzph4JH5nYbHoBMgBkwTUV+SUcjsjOJwdBJTHu3Dm6l5LBYekZoU2nDqQk2A==", + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.9.tgz", + "integrity": "sha512-LfJfO0ClRAq2WsSnA9JuUsNyIicD2eyputxSlSL0EiMrtxOxELLRG6ZVYDf/a1HCepaYPXeakH4y8D5OLCauag==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.5", - "@aws-sdk/credential-provider-http": "^3.972.7", - "@aws-sdk/credential-provider-ini": "^3.972.5", - "@aws-sdk/credential-provider-process": "^3.972.5", - "@aws-sdk/credential-provider-sso": "^3.972.5", - "@aws-sdk/credential-provider-web-identity": "^3.972.5", + "@aws-sdk/credential-provider-env": "^3.972.8", + "@aws-sdk/credential-provider-http": "^3.972.10", + "@aws-sdk/credential-provider-ini": "^3.972.8", + "@aws-sdk/credential-provider-process": "^3.972.8", + "@aws-sdk/credential-provider-sso": "^3.972.8", + "@aws-sdk/credential-provider-web-identity": "^3.972.8", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -765,12 +765,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.5.tgz", - "integrity": "sha512-HDKF3mVbLnuqGg6dMnzBf1VUOywE12/N286msI9YaK9mEIzdsGCtLTvrDhe3Up0R9/hGFbB+9l21/TwF5L1C6g==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.8.tgz", + "integrity": "sha512-6cg26ffFltxM51OOS8NH7oE41EccaYiNlbd5VgUYwhiGCySLfHoGuGrLm2rMB4zhy+IO5nWIIG0HiodX8zdvHA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -782,14 +782,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.5.tgz", - "integrity": "sha512-8urj3AoeNeQisjMmMBhFeiY2gxt6/7wQQbEGun0YV/OaOOiXrIudTIEYF8ZfD+NQI6X1FY5AkRsx6O/CaGiybA==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.8.tgz", + "integrity": "sha512-35kqmFOVU1n26SNv+U37sM8b2TzG8LyqAcd6iM9gprqxyHEh/8IM3gzN4Jzufs3qM6IrH8e43ryZWYdvfVzzKQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.985.0", - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/token-providers": "3.985.0", + "@aws-sdk/client-sso": "3.990.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/token-providers": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -801,13 +801,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.5.tgz", - "integrity": "sha512-OK3cULuJl6c+RcDZfPpaK5o3deTOnKZbxm7pzhFNGA3fI2hF9yDih17fGRazJzGGWaDVlR9ejZrpDef4DJCEsw==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.8.tgz", + "integrity": "sha512-CZhN1bOc1J3ubQPqbmr5b4KaMJBgdDvYsmEIZuX++wFlzmZsKj1bwkaiTEb5U2V7kXuzLlpF5HJSOM9eY/6nGA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/nested-clients": "3.985.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -819,14 +819,14 @@ } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.987.0.tgz", - "integrity": "sha512-wcMA47LXtxIPb7VE44GUYx/7ypjEh1EzQZdmrVcA0Q3/OWuF8k+Lm71rXIIU5A28hsmh17X7EflJUQmCG6yVmQ==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.992.0.tgz", + "integrity": "sha512-XMbA5Sscho56oMNZi9G3LJirZqazpOlQvcGWoH1UvF1PN3iiYpO1l2g84LH9Xju1yU3BiLaxukEzD5aKyrPp0w==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/smithy-client": "^4.11.2", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/smithy-client": "^4.11.3", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -836,7 +836,7 @@ "node": ">=20.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.987.0" + "@aws-sdk/client-s3": "^3.992.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { @@ -873,15 +873,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.5.tgz", - "integrity": "sha512-SF/1MYWx67OyCrLA4icIpWUfCkdlOi8Y1KecQ9xYxkL10GMjVdPTGPnYhAg0dw5U43Y9PVUWhAV2ezOaG+0BLg==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.8.tgz", + "integrity": "sha512-Hn6gumcN/3/8Fzo9z7N1pA2PRfE8S+qAqdb4g3MqzXjIOIe+VxD7edO/DKAJ1YH11639EGQIHBz0wdOb5btjtw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/crc64-nvme": "3.972.0", "@aws-sdk/types": "^3.973.1", "@smithy/is-array-buffer": "^4.2.0", @@ -889,7 +889,7 @@ "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.11", + "@smithy/util-stream": "^4.5.12", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -957,23 +957,23 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.7.tgz", - "integrity": "sha512-VtZ7tMIw18VzjG+I6D6rh2eLkJfTtByiFoCIauGDtTTPBEUMQUiGaJ/zZrPlCY6BsvLLeFKz3+E5mntgiOWmIg==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.10.tgz", + "integrity": "sha512-wLkB4bshbBtsAiC2WwlHzOWXu1fx3ftL63fQl0DxEda48Q6B8bcHydZppE3KjEIpPyiNOllByfSnb07cYpIgmw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/node-config-provider": "^4.3.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.11", + "@smithy/util-stream": "^4.5.12", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -996,15 +996,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.7.tgz", - "integrity": "sha512-HUD+geASjXSCyL/DHPQc/Ua7JhldTcIglVAoCV8kiVm99IaFSlAbTvEnyhZwdE6bdFyTL+uIaWLaCFSRsglZBQ==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.10.tgz", + "integrity": "sha512-bBEL8CAqPQkI91ZM5a9xnFAzedpzH6NYCOtNyLarRAzTUTFN2DKqaC60ugBa7pnU1jSi4mA7WAXBsrod7nJltg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.985.0", - "@smithy/core": "^3.22.1", + "@aws-sdk/util-endpoints": "3.990.0", + "@smithy/core": "^3.23.0", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" @@ -1014,9 +1014,9 @@ } }, "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", - "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1030,44 +1030,44 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.985.0.tgz", - "integrity": "sha512-TsWwKzb/2WHafAY0CE7uXgLj0FmnkBTgfioG9HO+7z/zCPcl1+YU+i7dW4o0y+aFxFgxTMG+ExBQpqT/k2ao8g==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.990.0.tgz", + "integrity": "sha512-3NA0s66vsy8g7hPh36ZsUgO4SiMyrhwcYvuuNK1PezO52vX3hXDW4pQrC6OQLGKGJV0o6tbEyQtXb/mPs8zg8w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.7", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.985.0", + "@aws-sdk/util-endpoints": "3.990.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", - "@aws-sdk/util-user-agent-node": "^3.972.5", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.22.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.13", - "@smithy/middleware-retry": "^4.4.30", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.9", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.29", - "@smithy/util-defaults-mode-node": "^4.2.32", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -1079,9 +1079,9 @@ } }, "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.985.0.tgz", - "integrity": "sha512-vth7UfGSUR3ljvaq8V4Rc62FsM7GUTH/myxPWkaEgOrprz1/Pc72EgTXxj+cPPPDAfHFIpjhkB7T7Td0RJx+BA==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1111,17 +1111,17 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.987.0.tgz", - "integrity": "sha512-XHf9ZQOgsdzBhfFhMM+wFITnd1M3OqMVUEdIrciSS8aFOg+WtQEcR2GcMs+Sj5whmO4XOrUMFuDdCgAwvdq0tg==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.992.0.tgz", + "integrity": "sha512-TuMT/J+MlkNLM1GfMssJG7ikCbAPpthGDUf9ZHoJqW6k2+NY5n1MLHh+iFScvKWpTJmWrkwFLAnQjPPniaK5gw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.987.0", + "@aws-sdk/signature-v4-multi-region": "3.992.0", "@aws-sdk/types": "^3.973.1", "@aws-sdk/util-format-url": "^3.972.3", - "@smithy/middleware-endpoint": "^4.4.13", + "@smithy/middleware-endpoint": "^4.4.14", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.2", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -1130,12 +1130,12 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.987.0.tgz", - "integrity": "sha512-5kVC6x6+2NO+/NIXWJwN68+8cvqREsoE+tFOMyZWj2fg3EWzCnTGVIFd7hSJZJT2WiP5LqcrdEoFyXtfDta1hg==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.992.0.tgz", + "integrity": "sha512-jWoaM89xH2cYOY6O+PWMa0yqjzKlE61Ehea1hJe34kHg9QvZOkcSA5OT9CNaFXsAvafeAAHBhSE8XlDiNaJFuw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.7", + "@aws-sdk/middleware-sdk-s3": "^3.972.10", "@aws-sdk/types": "^3.973.1", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", @@ -1147,13 +1147,13 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.985.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.985.0.tgz", - "integrity": "sha512-+hwpHZyEq8k+9JL2PkE60V93v2kNhUIv7STFt+EAez1UJsJOQDhc5LpzEX66pNjclI5OTwBROs/DhJjC/BtMjQ==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.990.0.tgz", + "integrity": "sha512-L3BtUb2v9XmYgQdfGBzbBtKMXaP5fV973y3Qdxeevs6oUTVXFmi/mV1+LnScA/1wVPJC9/hlK+1o5vbt7cG7EQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.7", - "@aws-sdk/nested-clients": "3.985.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -1190,9 +1190,9 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.987.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.987.0.tgz", - "integrity": "sha512-rZnZwDq7Pn+TnL0nyS6ryAhpqTZtLtHbJaqfxuHlDX3v/bq0M7Ch/V3qF9dZWaGgsJ2H9xn7/vFOxlnL4fBMcQ==", + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.992.0.tgz", + "integrity": "sha512-FHgdMVbTZ2Lu7hEIoGYfkd5UazNSsAgPcupEnh15vsWKFKhuw6w/6tM1k/yNaa7l1wx0Wt1UuK0m+gQ0BJpuvg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1245,12 +1245,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.972.5", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.5.tgz", - "integrity": "sha512-GsUDF+rXyxDZkkJxUsDxnA67FG+kc5W1dnloCFLl6fWzceevsCYzJpASBzT+BPjwUgREE6FngfJYYYMQUY5fZQ==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.8.tgz", + "integrity": "sha512-XJZuT0LWsFCW1C8dEpPAXSa7h6Pb3krr2y//1X0Zidpcl0vmgY5nL/X0JuBZlntpBzaN3+U4hvKjuijyiiR8zw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/types": "^3.973.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/types": "^4.12.0", @@ -2269,27 +2269,6 @@ "integrity": "sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==", "license": "MIT" }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4721,20 +4700,44 @@ } }, "node_modules/bullmq": { - "version": "5.68.0", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.68.0.tgz", - "integrity": "sha512-PywC7eTcPrKVQN5iEfhs5ats90nSLr8dzsyIhgviO8qQRTHnTq/SnETq2E8Do1RLg7Qw1Q0p5htBPI/cUGAlHg==", + "version": "5.69.3", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.69.3.tgz", + "integrity": "sha512-P9uLsR7fDvejH/1m6uur6j7U9mqY6nNt+XvhlhStOUe7jdwbZoP/c2oWNtE+8ljOlubw4pRUKymtRqkyvloc4A==", "license": "MIT", "dependencies": { "cron-parser": "4.9.0", "ioredis": "5.9.2", "msgpackr": "1.11.5", "node-abort-controller": "3.1.1", - "semver": "7.7.3", + "semver": "7.7.4", "tslib": "2.8.1", "uuid": "11.1.0" } }, + "node_modules/bullmq/node_modules/ioredis": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.2.tgz", + "integrity": "sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "1.5.0", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -5694,9 +5697,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.4.tgz", - "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -6549,9 +6552,9 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.5.tgz", - "integrity": "sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.6.tgz", + "integrity": "sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==", "funding": [ { "type": "github", @@ -6979,18 +6982,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -7538,9 +7529,9 @@ } }, "node_modules/ioredis": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.2.tgz", - "integrity": "sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.3.tgz", + "integrity": "sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==", "license": "MIT", "dependencies": { "@ioredis/commands": "1.5.0", @@ -8440,9 +8431,9 @@ } }, "node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" @@ -9738,12 +9729,12 @@ } }, "node_modules/rimraf": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz", - "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^13.0.0", + "glob": "^13.0.3", "package-json-from-dist": "^1.0.1" }, "bin": { @@ -9756,13 +9747,34 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/balanced-match": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", + "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/rimraf/node_modules/glob": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", + "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.1", + "minimatch": "^10.2.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" }, @@ -9774,12 +9786,12 @@ } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", + "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^5.0.2" }, "engines": { "node": "20 || >=22" @@ -9970,9 +9982,9 @@ "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10246,24 +10258,22 @@ } }, "node_modules/soap": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/soap/-/soap-1.6.4.tgz", - "integrity": "sha512-cVsVgMpN8kAEjzdBm8o1aSPawLIxmQsDlo0EHiFyii4IAcvndAwxG6cWVyR+6FKDrSNnPg7oi9my0LQz6r+B3w==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/soap/-/soap-1.7.1.tgz", + "integrity": "sha512-PYDzr2F0eb0cpyTB+hg21rzj5/wfo1AeKy3HnOVx65+eFDUUY1FOtqC/ev0pwW5Y9UcvHWJ5egr8HQsCzE92Ig==", "license": "MIT", "dependencies": { - "axios": "^1.13.1", + "axios": "^1.13.5", "axios-ntlm": "^1.4.6", "debug": "^4.4.3", + "follow-redirects": "^1.15.11", "formidable": "^3.5.4", - "get-stream": "^6.0.1", - "lodash": "^4.17.21", "sax": "^1.4.1", - "strip-bom": "^3.0.0", "whatwg-mimetype": "4.0.0", "xml-crypto": "^6.1.2" }, "engines": { - "node": ">=20.9.0" + "node": ">=20.19.0" } }, "node_modules/socket.io": { @@ -10720,15 +10730,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -11035,9 +11036,9 @@ "license": "Unlicense" }, "node_modules/twilio": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.12.1.tgz", - "integrity": "sha512-EhgWS5o+JWqMEl0KgUaN1oAym2Pr7LYYiIlwQdx+u+vACBdwHRzhHAQD6TRKFMciNUTzgBi266ZNpYbFhnEykQ==", + "version": "5.12.2", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.12.2.tgz", + "integrity": "sha512-yjTH04Ig0Z3PAxIXhwrto0IJC4Gv7lBDQQ9f4/P9zJhnxVdd+3tENqBMJOtdmmRags3X0jl2IGKEQefCEpJE9g==", "license": "MIT", "dependencies": { "axios": "^1.12.0", diff --git a/package.json b/package.json index 156509777..31bf41fd1 100644 --- a/package.json +++ b/package.json @@ -18,14 +18,14 @@ "job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js" }, "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.987.0", - "@aws-sdk/client-elasticache": "^3.987.0", - "@aws-sdk/client-s3": "^3.987.0", - "@aws-sdk/client-secrets-manager": "^3.987.0", - "@aws-sdk/client-ses": "^3.987.0", - "@aws-sdk/credential-provider-node": "^3.972.6", - "@aws-sdk/lib-storage": "^3.987.0", - "@aws-sdk/s3-request-presigner": "^3.987.0", + "@aws-sdk/client-cloudwatch-logs": "^3.992.0", + "@aws-sdk/client-elasticache": "^3.992.0", + "@aws-sdk/client-s3": "^3.992.0", + "@aws-sdk/client-secrets-manager": "^3.992.0", + "@aws-sdk/client-ses": "^3.992.0", + "@aws-sdk/credential-provider-node": "^3.972.9", + "@aws-sdk/lib-storage": "^3.992.0", + "@aws-sdk/s3-request-presigner": "^3.992.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", @@ -34,7 +34,7 @@ "axios": "^1.13.5", "axios-curlirize": "^2.0.0", "better-queue": "^3.8.12", - "bullmq": "^5.68.0", + "bullmq": "^5.69.3", "chart.js": "^4.5.1", "cloudinary": "^2.9.0", "compression": "^1.8.1", @@ -42,14 +42,14 @@ "cors": "^2.8.6", "crisp-status-reporter": "^1.2.2", "dinero.js": "^1.9.1", - "dotenv": "^17.2.4", + "dotenv": "^17.3.1", "express": "^4.21.1", - "fast-xml-parser": "^5.3.5", + "fast-xml-parser": "^5.3.6", "firebase-admin": "^13.6.1", "graphql": "^16.12.0", "graphql-request": "^6.1.0", "intuit-oauth": "^4.2.2", - "ioredis": "^5.9.2", + "ioredis": "^5.9.3", "json-2-csv": "^5.5.10", "jsonwebtoken": "^9.0.3", "juice": "^11.1.1", @@ -63,13 +63,13 @@ "phone": "^3.1.70", "query-string": "7.1.3", "recursive-diff": "^1.0.9", - "rimraf": "^6.1.2", + "rimraf": "^6.1.3", "skia-canvas": "^3.0.8", - "soap": "^1.6.4", + "soap": "^1.7.1", "socket.io": "^4.8.3", "socket.io-adapter": "^2.5.6", "ssh2-sftp-client": "^11.0.0", - "twilio": "^5.12.1", + "twilio": "^5.12.2", "uuid": "^11.1.0", "winston": "^3.19.0", "winston-cloudwatch": "^6.3.0", From 6d94265081e95a319070bb38c222e11cddc5fef8 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 18 Feb 2026 10:08:28 -0800 Subject: [PATCH 16/25] Package lock updates. --- package-lock.json | 553 ++++++++++++++++++++++++++++++---------------- 1 file changed, 368 insertions(+), 185 deletions(-) diff --git a/package-lock.json b/package-lock.json index 34067b70d..e2446ace8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "@aws-sdk/client-s3": "^3.978.0", "@aws-sdk/client-secrets-manager": "^3.978.0", "@aws-sdk/client-ses": "^3.978.0", + "@aws-sdk/client-sqs": "^3.975.0", + "@aws-sdk/client-textract": "^3.975.0", "@aws-sdk/credential-provider-node": "^3.972.3", "@aws-sdk/lib-storage": "^3.978.0", "@aws-sdk/s3-request-presigner": "^3.978.0", @@ -560,45 +562,48 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.975.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.975.0.tgz", - "integrity": "sha512-HpgJuleH7P6uILxzJKQOmlHdwaCY+xYC6VgRDzlwVEqU/HXjo4m2gOAyjUbpXlBOCWfGgMUzfBlNJ9z3MboqEQ==", + "node_modules/@aws-sdk/client-sqs": { + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sqs/-/client-sqs-3.992.0.tgz", + "integrity": "sha512-qRSzhtXtMFkxpjntKc286qKD4QfZL5uAzzsQqvzmdQmCdWTCpSzE5ECA5M3Ts2V4dJFFvjeR/FLIMQbEe2pqyA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.1", - "@aws-sdk/middleware-host-header": "^3.972.1", - "@aws-sdk/middleware-logger": "^3.972.1", - "@aws-sdk/middleware-recursion-detection": "^3.972.1", - "@aws-sdk/middleware-user-agent": "^3.972.2", - "@aws-sdk/region-config-resolver": "^3.972.1", - "@aws-sdk/types": "^3.973.0", - "@aws-sdk/util-endpoints": "3.972.0", - "@aws-sdk/util-user-agent-browser": "^3.972.1", - "@aws-sdk/util-user-agent-node": "^3.972.1", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-sdk-sqs": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.10", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.992.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.21.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", + "@smithy/md5-js": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.11", - "@smithy/middleware-retry": "^4.4.27", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.10.12", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.26", - "@smithy/util-defaults-mode-node": "^4.2.29", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -609,20 +614,167 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/core": { - "version": "3.973.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.4.tgz", - "integrity": "sha512-8Rk+kPP74YiR47x54bxYlKZswsaSh0a4XvvRUMLvyS/koNawhsGu/+qSZxREqUeTO+GkKpFvSQIsAZR+deUP+g==", + "node_modules/@aws-sdk/client-sqs/node_modules/@aws-sdk/util-endpoints": { + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.992.0.tgz", + "integrity": "sha512-FHgdMVbTZ2Lu7hEIoGYfkd5UazNSsAgPcupEnh15vsWKFKhuw6w/6tM1k/yNaa7l1wx0Wt1UuK0m+gQ0BJpuvg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", - "@aws-sdk/xml-builder": "^3.972.2", - "@smithy/core": "^3.22.0", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.990.0.tgz", + "integrity": "sha512-xTEaPjZwOqVjGbLOP7qzwbdOWJOo1ne2mUhTZwEBBkPvNk4aXB/vcYwWwrjoSWUqtit4+GDbO75ePc/S6TUJYQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.10", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.990.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.8", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.23.0", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.3", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-endpoints": { + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-textract": { + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-textract/-/client-textract-3.992.0.tgz", + "integrity": "sha512-AXufuNr9I8nTSjGvdkqJRpAZ9J2omQpvkWZFYTAWLX3XXgpV8ILgUaw5NRKn30qytbTMY2mapx2kwgBEj/70ZQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-node": "^3.972.9", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.10", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.992.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.8", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.23.0", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.10", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.11.3", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-base64": "^4.3.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.1", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-textract/node_modules/@aws-sdk/util-endpoints": { + "version": "3.992.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.992.0.tgz", + "integrity": "sha512-FHgdMVbTZ2Lu7hEIoGYfkd5UazNSsAgPcupEnh15vsWKFKhuw6w/6tM1k/yNaa7l1wx0Wt1UuK0m+gQ0BJpuvg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.973.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.10.tgz", + "integrity": "sha512-4u/FbyyT3JqzfsESI70iFg6e2yp87MB5kS2qcxIA66m52VSTN1fvuvbCY1h/LKq1LvuxIrlJ1ItcyjvcKoaPLg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/xml-builder": "^3.972.4", + "@smithy/core": "^3.23.0", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.8", @@ -647,12 +799,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.2.tgz", - "integrity": "sha512-wzH1EdrZsytG1xN9UHaK12J9+kfrnd2+c8y0LVoS4O4laEjPoie1qVK3k8/rZe7KOtvULzyMnO3FT4Krr9Z0Dg==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.8.tgz", + "integrity": "sha512-r91OOPAcHnLCSxaeu/lzZAVRCZ/CtTNuwmJkUwpwSDshUrP7bkX1OmFn2nUMWd9kN53Q4cEo8b7226G4olt2Mg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.2", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/types": "^4.12.0", @@ -663,20 +815,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.4.tgz", - "integrity": "sha512-OC7F3ipXV12QfDEWybQGHLzoeHBlAdx/nLzPfHP0Wsabu3JBffu5nlzSaJNf7to9HGtOW8Bpu8NX0ugmDrCbtw==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.10.tgz", + "integrity": "sha512-DTtuyXSWB+KetzLcWaSahLJCtTUe/3SXtlGp4ik9PCe9xD6swHEkG8n8/BNsQ9dsihb9nhFvuUB4DpdBGDcvVg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.4", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.10", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.12", "tslib": "^2.6.2" }, "engines": { @@ -684,19 +836,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.2.tgz", - "integrity": "sha512-Jrb8sLm6k8+L7520irBrvCtdLxNtrG7arIxe9TCeMJt/HxqMGJdbIjw8wILzkEHLMIi4MecF2FbXCln7OT1Tag==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.8.tgz", + "integrity": "sha512-n2dMn21gvbBIEh00E8Nb+j01U/9rSqFIamWRdGm/mE5e+vHQ9g0cBNdrYFlM6AAiryKVHZmShWT9D1JAWJ3ISw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.2", - "@aws-sdk/credential-provider-env": "^3.972.2", - "@aws-sdk/credential-provider-http": "^3.972.3", - "@aws-sdk/credential-provider-login": "^3.972.2", - "@aws-sdk/credential-provider-process": "^3.972.2", - "@aws-sdk/credential-provider-sso": "^3.972.2", - "@aws-sdk/credential-provider-web-identity": "^3.972.2", - "@aws-sdk/nested-clients": "3.975.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/credential-provider-env": "^3.972.8", + "@aws-sdk/credential-provider-http": "^3.972.10", + "@aws-sdk/credential-provider-login": "^3.972.8", + "@aws-sdk/credential-provider-process": "^3.972.8", + "@aws-sdk/credential-provider-sso": "^3.972.8", + "@aws-sdk/credential-provider-web-identity": "^3.972.8", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -709,13 +861,13 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.2.tgz", - "integrity": "sha512-mlaw2aiI3DrimW85ZMn3g7qrtHueidS58IGytZ+mbFpsYLK5wMjCAKZQtt7VatLMtSBG/dn/EY4njbnYXIDKeQ==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.8.tgz", + "integrity": "sha512-rMFuVids8ICge/X9DF5pRdGMIvkVhDV9IQFQ8aTYk6iF0rl9jOUa1C3kjepxiXUlpgJQT++sLZkT9n0TMLHhQw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.2", - "@aws-sdk/nested-clients": "3.975.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/protocol-http": "^5.3.8", @@ -728,17 +880,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.3.tgz", - "integrity": "sha512-iu+JwWHM7tHowKqE+8wNmI3sM6mPEiI9Egscz2BEV7adyKmV95oR9tBO4VIOl72FGDi7X9mXg19VtqIpSkEEsA==", + "version": "3.972.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.9.tgz", + "integrity": "sha512-LfJfO0ClRAq2WsSnA9JuUsNyIicD2eyputxSlSL0EiMrtxOxELLRG6ZVYDf/a1HCepaYPXeakH4y8D5OLCauag==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.2", - "@aws-sdk/credential-provider-http": "^3.972.4", - "@aws-sdk/credential-provider-ini": "^3.972.2", - "@aws-sdk/credential-provider-process": "^3.972.2", - "@aws-sdk/credential-provider-sso": "^3.972.2", - "@aws-sdk/credential-provider-web-identity": "^3.972.2", + "@aws-sdk/credential-provider-env": "^3.972.8", + "@aws-sdk/credential-provider-http": "^3.972.10", + "@aws-sdk/credential-provider-ini": "^3.972.8", + "@aws-sdk/credential-provider-process": "^3.972.8", + "@aws-sdk/credential-provider-sso": "^3.972.8", + "@aws-sdk/credential-provider-web-identity": "^3.972.8", "@aws-sdk/types": "^3.973.1", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/property-provider": "^4.2.8", @@ -751,12 +903,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.2.tgz", - "integrity": "sha512-NLKLTT7jnUe9GpQAVkPTJO+cs2FjlQDt5fArIYS7h/Iw/CvamzgGYGFRVD2SE05nOHCMwafUSi42If8esGFV+g==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.8.tgz", + "integrity": "sha512-6cg26ffFltxM51OOS8NH7oE41EccaYiNlbd5VgUYwhiGCySLfHoGuGrLm2rMB4zhy+IO5nWIIG0HiodX8zdvHA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.2", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -768,14 +920,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.2.tgz", - "integrity": "sha512-YpwDn8g3gCGUl61cCV0sRxP2pFIwg+ZsMfWQ/GalSyjXtRkctCMFA+u0yPb/Q4uTfNEiya1Y4nm0C5rIHyPW5Q==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.8.tgz", + "integrity": "sha512-35kqmFOVU1n26SNv+U37sM8b2TzG8LyqAcd6iM9gprqxyHEh/8IM3gzN4Jzufs3qM6IrH8e43ryZWYdvfVzzKQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.975.0", - "@aws-sdk/core": "^3.973.2", - "@aws-sdk/token-providers": "3.975.0", + "@aws-sdk/client-sso": "3.990.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/token-providers": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -787,13 +939,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.2.tgz", - "integrity": "sha512-x9DAiN9Qz+NjJ99ltDiVQ8d511M/tuF/9MFbe2jUgo7HZhD6+x4S3iT1YcP07ndwDUjmzKGmeOEgE24k4qvfdg==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.8.tgz", + "integrity": "sha512-CZhN1bOc1J3ubQPqbmr5b4KaMJBgdDvYsmEIZuX++wFlzmZsKj1bwkaiTEb5U2V7kXuzLlpF5HJSOM9eY/6nGA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.2", - "@aws-sdk/nested-clients": "3.975.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -884,9 +1036,9 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.2.tgz", - "integrity": "sha512-42hZ8jEXT2uR6YybCzNq9OomqHPw43YIfRfz17biZjMQA4jKSQUaHIl6VvqO2Ddl5904pXg2Yd/ku78S0Ikgog==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz", + "integrity": "sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -913,9 +1065,9 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.2.tgz", - "integrity": "sha512-iUzdXKOgi4JVDDEG/VvoNw50FryRCEm0qAudw12DcZoiNJWl0rN6SYVLcL1xwugMfQncCXieK5UBlG6mhH7iYA==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz", + "integrity": "sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -927,9 +1079,9 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.2.tgz", - "integrity": "sha512-/mzlyzJDtngNFd/rAYvqx29a2d0VuiYKN84Y/Mu9mGw7cfMOCyRK+896tb9wV6MoPRHUX7IXuKCIL8nzz2Pz5A==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz", + "integrity": "sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -967,6 +1119,23 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/middleware-sdk-sqs": { + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.972.7.tgz", + "integrity": "sha512-DcJLYE4sRjgUyb2SupQGaRgBYc+j89N9nXeMT0PwwVvaBGmKqcxa7PFvz0kBnQrBckPWlfrPyyyMwOeT5BEp6Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/smithy-client": "^4.11.3", + "@smithy/types": "^4.12.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/middleware-ssec": { "version": "3.972.2", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.2.tgz", @@ -982,15 +1151,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.4.tgz", - "integrity": "sha512-6sU8jrSJvY/lqSnU6IYsa8SrCKwOZ4Enl6O4xVJo8RCq9Bdr5Giuw2eUaJAk9GPcpr4OFcmSFv3JOLhpKGeRZA==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.10.tgz", + "integrity": "sha512-bBEL8CAqPQkI91ZM5a9xnFAzedpzH6NYCOtNyLarRAzTUTFN2DKqaC60ugBa7pnU1jSi4mA7WAXBsrod7nJltg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.4", + "@aws-sdk/core": "^3.973.10", "@aws-sdk/types": "^3.973.1", - "@aws-sdk/util-endpoints": "3.972.0", - "@smithy/core": "^3.22.0", + "@aws-sdk/util-endpoints": "3.990.0", + "@smithy/core": "^3.23.0", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" @@ -999,45 +1168,61 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/util-endpoints": { + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.975.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.975.0.tgz", - "integrity": "sha512-OkeFHPlQj2c/Y5bQGkX14pxhDWUGUFt3LRHhjcDKsSCw6lrxKcxN3WFZN0qbJwKNydP+knL5nxvfgKiCLpTLRA==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.990.0.tgz", + "integrity": "sha512-3NA0s66vsy8g7hPh36ZsUgO4SiMyrhwcYvuuNK1PezO52vX3hXDW4pQrC6OQLGKGJV0o6tbEyQtXb/mPs8zg8w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.1", - "@aws-sdk/middleware-host-header": "^3.972.1", - "@aws-sdk/middleware-logger": "^3.972.1", - "@aws-sdk/middleware-recursion-detection": "^3.972.1", - "@aws-sdk/middleware-user-agent": "^3.972.2", - "@aws-sdk/region-config-resolver": "^3.972.1", - "@aws-sdk/types": "^3.973.0", - "@aws-sdk/util-endpoints": "3.972.0", - "@aws-sdk/util-user-agent-browser": "^3.972.1", - "@aws-sdk/util-user-agent-node": "^3.972.1", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/middleware-host-header": "^3.972.3", + "@aws-sdk/middleware-logger": "^3.972.3", + "@aws-sdk/middleware-recursion-detection": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.10", + "@aws-sdk/region-config-resolver": "^3.972.3", + "@aws-sdk/types": "^3.973.1", + "@aws-sdk/util-endpoints": "3.990.0", + "@aws-sdk/util-user-agent-browser": "^3.972.3", + "@aws-sdk/util-user-agent-node": "^3.972.8", "@smithy/config-resolver": "^4.4.6", - "@smithy/core": "^3.21.1", + "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", - "@smithy/middleware-endpoint": "^4.4.11", - "@smithy/middleware-retry": "^4.4.27", + "@smithy/middleware-endpoint": "^4.4.14", + "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", - "@smithy/smithy-client": "^4.10.12", + "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.26", - "@smithy/util-defaults-mode-node": "^4.2.29", + "@smithy/util-defaults-mode-browser": "^4.3.30", + "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -1048,10 +1233,26 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/util-endpoints": { + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz", + "integrity": "sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.1", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.2.tgz", - "integrity": "sha512-/7vRBsfmiOlg2X67EdKrzzQGw5/SbkXb7ALHQmlQLkZh8qNgvS2G2dDC6NtF3hzFlpP3j2k+KIEtql/6VrI6JA==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz", + "integrity": "sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1207,14 +1408,14 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.975.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.975.0.tgz", - "integrity": "sha512-AWQt64hkVbDQ+CmM09wnvSk2mVyH4iRROkmYkr3/lmUtFNbE2L/fnw26sckZnUcFCsHPqbkQrcsZAnTcBLbH4w==", + "version": "3.990.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.990.0.tgz", + "integrity": "sha512-L3BtUb2v9XmYgQdfGBzbBtKMXaP5fV973y3Qdxeevs6oUTVXFmi/mV1+LnScA/1wVPJC9/hlK+1o5vbt7cG7EQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.1", - "@aws-sdk/nested-clients": "3.975.0", - "@aws-sdk/types": "^3.973.0", + "@aws-sdk/core": "^3.973.10", + "@aws-sdk/nested-clients": "3.990.0", + "@aws-sdk/types": "^3.973.1", "@smithy/property-provider": "^4.2.8", "@smithy/shared-ini-file-loader": "^4.4.3", "@smithy/types": "^4.12.0", @@ -1306,9 +1507,9 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.2.tgz", - "integrity": "sha512-gz76bUyebPZRxIsBHJUd/v+yiyFzm9adHbr8NykP2nm+z/rFyvQneOHajrUejtmnc5tTBeaDPL4X25TnagRk4A==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz", + "integrity": "sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.1", @@ -1318,12 +1519,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.2.tgz", - "integrity": "sha512-vnxOc4C6AR7hVbwyFo1YuH0GB6dgJlWt8nIOOJpnzJAWJPkUMPJ9Zv2lnKsSU7TTZbhP2hEO8OZ4PYH59XFv8Q==", + "version": "3.972.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.8.tgz", + "integrity": "sha512-XJZuT0LWsFCW1C8dEpPAXSa7h6Pb3krr2y//1X0Zidpcl0vmgY5nL/X0JuBZlntpBzaN3+U4hvKjuijyiiR8zw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.3", + "@aws-sdk/middleware-user-agent": "^3.972.10", "@aws-sdk/types": "^3.973.1", "@smithy/node-config-provider": "^4.3.8", "@smithy/types": "^4.12.0", @@ -1342,37 +1543,19 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.2.tgz", - "integrity": "sha512-jGOOV/bV1DhkkUhHiZ3/1GZ67cZyOXaDb7d1rYD6ZiXf5V9tBNOcgqXwRRPvrCbYaFRa1pPMFb3ZjqjWpR3YfA==", + "version": "3.972.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.4.tgz", + "integrity": "sha512-0zJ05ANfYqI6+rGqj8samZBFod0dPPousBjLEqg8WdxSgbMAkRgLyn81lP215Do0rFJ/17LIXwr7q0yK24mP6Q==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.12.0", - "fast-xml-parser": "5.2.5", + "fast-xml-parser": "5.3.4", "tslib": "^2.6.2" }, "engines": { "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz", - "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "dependencies": { - "strnum": "^2.1.0" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, "node_modules/@aws/lambda-invoke-store": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz", @@ -3087,9 +3270,9 @@ } }, "node_modules/@smithy/core": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.22.0.tgz", - "integrity": "sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==", + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.2.tgz", + "integrity": "sha512-HaaH4VbGie4t0+9nY3tNBRSxVTr96wzIqexUa6C2qx3MPePAuz7lIxPxYtt1Wc//SPfJLNoZJzfdt0B6ksj2jA==", "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^4.2.9", @@ -3098,7 +3281,7 @@ "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-middleware": "^4.2.8", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.12", "@smithy/util-utf8": "^4.2.0", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" @@ -3307,12 +3490,12 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.12.tgz", - "integrity": "sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==", + "version": "4.4.16", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.16.tgz", + "integrity": "sha512-L5GICFCSsNhbJ5JSKeWFGFy16Q2OhoBizb3X2DrxaJwXSEujVvjG9Jt386dpQn2t7jINglQl0b4K/Su69BdbMA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.22.0", + "@smithy/core": "^3.23.2", "@smithy/middleware-serde": "^4.2.9", "@smithy/node-config-provider": "^4.3.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -3326,15 +3509,15 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.29", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.29.tgz", - "integrity": "sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==", + "version": "4.4.33", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.33.tgz", + "integrity": "sha512-jLqZOdJhtIL4lnA9hXnAG6GgnJlo1sD3FqsTxm9wSfjviqgWesY/TMBVnT84yr4O0Vfe0jWoXlfFbzsBVph3WA==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.8", "@smithy/protocol-http": "^5.3.8", "@smithy/service-error-classification": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.5", "@smithy/types": "^4.12.0", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -3388,9 +3571,9 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.8.tgz", - "integrity": "sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz", + "integrity": "sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.2.8", @@ -3501,17 +3684,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.1.tgz", - "integrity": "sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==", + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.11.5.tgz", + "integrity": "sha512-xixwBRqoeP2IUgcAl3U9dvJXc+qJum4lzo3maaJxifsZxKUYLfVfCXvhT4/jD01sRrHg5zjd1cw2Zmjr4/SuKQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.22.0", - "@smithy/middleware-endpoint": "^4.4.12", + "@smithy/core": "^3.23.2", + "@smithy/middleware-endpoint": "^4.4.16", "@smithy/middleware-stack": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", - "@smithy/util-stream": "^4.5.10", + "@smithy/util-stream": "^4.5.12", "tslib": "^2.6.2" }, "engines": { @@ -3608,13 +3791,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.28.tgz", - "integrity": "sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==", + "version": "4.3.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.32.tgz", + "integrity": "sha512-092sjYfFMQ/iaPH798LY/OJFBcYu0sSK34Oy9vdixhsU36zlZu8OcYjF3TD4e2ARupyK7xaxPXl+T0VIJTEkkg==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.5", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -3623,16 +3806,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.31", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.31.tgz", - "integrity": "sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==", + "version": "4.2.35", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.35.tgz", + "integrity": "sha512-miz/ggz87M8VuM29y7jJZMYkn7+IErM5p5UgKIf8OtqVs/h2bXr1Bt3uTsREsI/4nK8a0PQERbAPsVPVNIsG7Q==", "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^4.4.6", "@smithy/credential-provider-imds": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.11.1", + "@smithy/smithy-client": "^4.11.5", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -3694,13 +3877,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.5.10", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.10.tgz", - "integrity": "sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==", + "version": "4.5.12", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.12.tgz", + "integrity": "sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg==", "license": "Apache-2.0", "dependencies": { "@smithy/fetch-http-handler": "^5.3.9", - "@smithy/node-http-handler": "^4.4.8", + "@smithy/node-http-handler": "^4.4.10", "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-buffer-from": "^4.2.0", From e5f930b8c85f49aa5dc2b50dcac371db218805c4 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Wed, 18 Feb 2026 10:32:44 -0800 Subject: [PATCH 17/25] IO-3515 Refactor button to separate component. --- .../bill-enter-ai-scan.component.jsx | 151 ++++++++++++++++++ .../bill-enter-modal.container.jsx | 135 ++-------------- 2 files changed, 166 insertions(+), 120 deletions(-) create mode 100644 client/src/components/bill-enter-ai-scan/bill-enter-ai-scan.component.jsx diff --git a/client/src/components/bill-enter-ai-scan/bill-enter-ai-scan.component.jsx b/client/src/components/bill-enter-ai-scan/bill-enter-ai-scan.component.jsx new file mode 100644 index 000000000..38c7802e4 --- /dev/null +++ b/client/src/components/bill-enter-ai-scan/bill-enter-ai-scan.component.jsx @@ -0,0 +1,151 @@ +import { Button } from "antd"; +import axios from "axios"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { useNotification } from "../../contexts/Notifications/notificationContext"; +import { selectBillEnterModal } from "../../redux/modals/modals.selectors"; +import { selectBodyshop } from "../../redux/user/user.selectors"; + +const mapStateToProps = createStructuredSelector({ + billEnterModal: selectBillEnterModal, + bodyshop: selectBodyshop +}); + +function BillEnterAiScan({ + billEnterModal, + bodyshop, + pollingIntervalRef, + setPollingIntervalRef, + form, + fileInputRef, + scanLoading, + setScanLoading +}) { + const notification = useNotification(); + + // Polling function for multipage PDF status + const pollJobStatus = async (jobId) => { + try { + const { data } = await axios.get(`/ai/bill-ocr/status/${jobId}`); + + if (data.status === "COMPLETED") { + // Stop polling + if (pollingIntervalRef.current) { + clearInterval(pollingIntervalRef.current); + setPollingIntervalRef(null); + } + setScanLoading(false); + + // Update form with the extracted data + if (data.data && data.data.billForm) { + form.setFieldsValue(data.data.billForm); + notification.success({ + title: "AI Scan Complete", + message: "Invoice data has been extracted successfully" + }); + } + } else if (data.status === "FAILED") { + // Stop polling on failure + if (pollingIntervalRef.current) { + clearInterval(pollingIntervalRef.current); + setPollingIntervalRef(null); + } + setScanLoading(false); + + notification.error({ + title: "AI Scan Failed", + message: data.error || "Failed to process the invoice" + }); + } + // If status is IN_PROGRESS, continue polling + } catch (error) { + console.error("Error polling job status:", error); + + // Stop polling on error + if (pollingIntervalRef.current) { + clearInterval(pollingIntervalRef.current); + setPollingIntervalRef(null); + } + setScanLoading(false); + + notification.error({ + title: "AI Scan Error", + message: error.response?.data?.message || error.message || "Failed to check scan status" + }); + } + }; + + return ( + <> + { + const file = e.target.files?.[0]; + if (file) { + setScanLoading(true); + const formdata = new FormData(); + formdata.append("billScan", file); + formdata.append("jobid", billEnterModal.context.job.id); + formdata.append("bodyshopid", bodyshop.id); + formdata.append("partsorderid", "3dd26419-a139-4399-af4e-43eeb6f0dbad"); + //formdata.append("skipTextract", "true"); // For testing purposes + axios + .post("/ai/bill-ocr", formdata) + .then(({ data, status }) => { + if (status === 202) { + // Multipage PDF - start polling + notification.info({ + title: "Processing Invoice", + message: "This is a multipage document. Processing may take a few moments..." + }); + + //Workaround needed to bypass react-compiler error about manipulating refs in child components. Refactor may be needed in the future to clean this up. + setPollingIntervalRef( + setInterval(() => { + pollJobStatus(data.jobId); + }, 3000) + ); + + // Initial poll + pollJobStatus(data.jobId); + } else if (status === 200) { + // Single page - immediate response + setScanLoading(false); + + form.setFieldsValue(data.data.billForm); + notification.success({ + title: "AI Scan Complete", + message: "Invoice data has been extracted successfully" + }); + } + }) + .catch((error) => { + console.error("*** ~ BillEnterModalContainer ~ error:", error); + setScanLoading(false); + notification.error({ + title: "AI Scan Failed", + message: error.response?.data?.message || error.message || "Failed to process invoice" + }); + }); + } + // Reset the input so the same file can be selected again + e.target.value = ""; + }} + /> + + + ); +} +export default connect(mapStateToProps, null)(BillEnterAiScan); diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx index 6f8d7ca0d..84249e2aa 100644 --- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx +++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx @@ -6,6 +6,7 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; +import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import { useNotification } from "../../contexts/Notifications/notificationContext.jsx"; import { INSERT_NEW_BILL } from "../../graphql/bills.queries"; import { UPDATE_INVENTORY_LINES } from "../../graphql/inventory.queries"; @@ -21,13 +22,12 @@ import { GenerateDocument } from "../../utils/RenderTemplate"; import { TemplateList } from "../../utils/TemplateConstants"; import confirmDialog from "../../utils/asyncConfirm"; import useLocalStorage from "../../utils/useLocalStorage"; +import BillEnterAiScan from "../bill-enter-ai-scan/bill-enter-ai-scan.component.jsx"; import BillFormContainer from "../bill-form/bill-form.container"; import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility"; import { handleUpload as handleLocalUpload } from "../documents-local-upload/documents-local-upload.utility"; -import { handleUpload } from "../documents-upload/documents-upload.utility"; import { handleUpload as handleUploadToImageProxy } from "../documents-upload-imgproxy/documents-upload-imgproxy.utility"; -import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; -import axios from "axios"; +import { handleUpload } from "../documents-upload/documents-upload.utility"; const mapStateToProps = createStructuredSelector({ billEnterModal: selectBillEnterModal, @@ -402,62 +402,15 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, } }; + //Workaround needed to bypass react-compiler error about manipulating refs in child components. Refactor may be needed in the future to clean this up. + const setPollingIntervalRef = (func) => { + pollingIntervalRef.current = func; + }; + useEffect(() => { if (enterAgain) form.submit(); }, [enterAgain, form]); - // Polling function for multipage PDF status - const pollJobStatus = async (jobId) => { - try { - const { data } = await axios.get(`/ai/bill-ocr/status/${jobId}`); - - if (data.status === 'COMPLETED') { - // Stop polling - if (pollingIntervalRef.current) { - clearInterval(pollingIntervalRef.current); - pollingIntervalRef.current = null; - } - setScanLoading(false); - - // Update form with the extracted data - if (data.data && data.data.billForm) { - form.setFieldsValue(data.data.billForm); - notification.success({ - title: "AI Scan Complete", - message: "Invoice data has been extracted successfully" - }); - } - } else if (data.status === 'FAILED') { - // Stop polling on failure - if (pollingIntervalRef.current) { - clearInterval(pollingIntervalRef.current); - pollingIntervalRef.current = null; - } - setScanLoading(false); - - notification.error({ - title: "AI Scan Failed", - message: data.error || "Failed to process the invoice" - }); - } - // If status is IN_PROGRESS, continue polling - } catch (error) { - console.error("Error polling job status:", error); - - // Stop polling on error - if (pollingIntervalRef.current) { - clearInterval(pollingIntervalRef.current); - pollingIntervalRef.current = null; - } - setScanLoading(false); - - notification.error({ - title: "AI Scan Error", - message: error.response?.data?.message || error.message || "Failed to check scan status" - }); - } - }; - useEffect(() => { if (billEnterModal.open) { form.setFieldsValue(formValues); @@ -497,72 +450,14 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, }} footer={ - { - const file = e.target.files?.[0]; - if (file) { - setScanLoading(true); - const formdata = new FormData(); - formdata.append("billScan", file); - formdata.append("jobid", billEnterModal.context.job.id); - formdata.append("bodyshopid", bodyshop.id); - formdata.append("partsorderid", "3dd26419-a139-4399-af4e-43eeb6f0dbad"); - //formdata.append("skipTextract", "true"); // For testing purposes - axios - .post("/ai/bill-ocr", formdata) - .then(({ data, status }) => { - if (status === 202) { - // Multipage PDF - start polling - notification.info({ - title: "Processing Invoice", - message: "This is a multipage document. Processing may take a few moments..." - }); - - // Start polling every 3 seconds - pollingIntervalRef.current = setInterval(() => { - pollJobStatus(data.jobId); - }, 3000); - - // Initial poll - pollJobStatus(data.jobId); - } else if (status === 200) { - // Single page - immediate response - setScanLoading(false); - - form.setFieldsValue(data.data.billForm); - notification.success({ - title: "AI Scan Complete", - message: "Invoice data has been extracted successfully" - }); - } - }) - .catch((error) => { - console.error("*** ~ BillEnterModalContainer ~ error:", error); - setScanLoading(false); - notification.error({ - title: "AI Scan Failed", - message: error.response?.data?.message || error.message || "Failed to process invoice" - }); - }); - } - // Reset the input so the same file can be selected again - e.target.value = ""; - }} + - setGenerateLabel(e.target.checked)}> {t("bills.labels.generatepartslabel")} From 8422ea83aea83761f0289d2716831d1c4e310959 Mon Sep 17 00:00:00 2001 From: Dave Date: Wed, 18 Feb 2026 13:50:46 -0500 Subject: [PATCH 18/25] feature/IO-3544-Ant-Select-Deprecation - Make cdklike-dms-post-form.jsx compatible with search on the payer name --- client/src/components/dms-post-form/cdklike-dms-post-form.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/src/components/dms-post-form/cdklike-dms-post-form.jsx b/client/src/components/dms-post-form/cdklike-dms-post-form.jsx index fccea23da..09eebb5ca 100644 --- a/client/src/components/dms-post-form/cdklike-dms-post-form.jsx +++ b/client/src/components/dms-post-form/cdklike-dms-post-form.jsx @@ -273,6 +273,10 @@ export default function CdkLikePostForm({ bodyshop, socket, job, logsRef, mode, rules={[{ required: true }]} >