motion-master-client 0.0.317 → 0.0.318

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "motion-master-client",
3
- "version": "0.0.317",
3
+ "version": "0.0.318",
4
4
  "type": "commonjs",
5
5
  "description": "A library and CLI program used for communicating with Motion Master.",
6
6
  "dependencies": {
package/src/lib/smm.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
- import PythonStruct, { DataType } from 'python-struct';
3
2
  import { Buffer } from 'buffer';
4
- import { SmmOd } from './smm-od';
3
+ import PythonStruct, { DataType } from 'python-struct';
5
4
  import { Parameter } from './parameter';
5
+ import { SmmOd } from './smm-od';
6
+ import { SmmBinaryHeader } from './types';
6
7
  /**
7
8
  * Extends the base `Parameter` interface to include SMM-specific details.
8
9
  *
@@ -340,3 +341,92 @@ export declare function getSafetyStatuswordBitNames(parameterStructureVersion?:
340
341
  export declare function convertGroupedSmmParametersToTransmitData<T>(obj: {
341
342
  [key: string]: T[];
342
343
  }): T[];
344
+ /**
345
+ * Parses the binary header of an SMM firmware image and extracts structured metadata.
346
+ *
347
+ * This function automatically detects and supports both LW1 and LW2 firmware header versions.
348
+ * It unpacks the corresponding fields and returns an object containing detailed header information,
349
+ * including hardware/software versions, header length, binary lengths, CRCs, and other custom fields.
350
+ *
351
+ * Header version detection:
352
+ * - LW1: header version < 1.0.0
353
+ * - LW2: header version >= 1.0.0
354
+ *
355
+ * Extracted fields include:
356
+ * - `headerVersion`: Encoded numeric header version.
357
+ * - `swVersion`: Encoded software version.
358
+ * - `lengthBinaryA` / `lengthBinaryB`: Lengths of the binary parts.
359
+ * - `crcA` / `crcB`: Checksums of the binary parts (hexadecimal string).
360
+ * - `headerVersionSemver` / `swVersionSemver`: Semantic version strings (used in OBLAC Drives UI).
361
+ *
362
+ * @param smmFirmwareBinary - Raw binary data of the SMM firmware as a `Uint8Array`.
363
+ * @returns An `SmmBinaryHeader` object containing the parsed header fields.
364
+ *
365
+ * @throws If the binary header cannot be parsed or is invalid.
366
+ */
367
+ export declare function parseSmmBinaryHeaders(smmFirmwareBinary: Uint8Array): SmmBinaryHeader;
368
+ /**
369
+ * Encodes a semantic version string or number into a single number using bitwise operations.
370
+ * The encoding packs the major version in the high byte and the minor version in the low byte:
371
+ *
372
+ * encoded = (major << 8) | minor
373
+ *
374
+ * Examples:
375
+ * '1.3' => 0x0103 (259)
376
+ * '77.0' => 0x4d00 (19712)
377
+ *
378
+ * @param semver - Semantic version as a string (e.g., "1.3") or a numeric code.
379
+ * @returns Bitwise encoded version as a number. Returns 0 if parsing fails.
380
+ */
381
+ export declare function bitwiseEncodeSemverString(semver: string | number): number;
382
+ /**
383
+ * Determines whether a target SMM firmware version can be installed on a device,
384
+ * based on the device's serial number, its current firmware version, and the target version.
385
+ *
386
+ * Certain SMM firmware versions have special rules:
387
+ * - Versions v77.0, v77.1, and v99.0 are intentionally numbered high to avoid confusion
388
+ * with versions 0.77.0, 0.77.1, and 0.99.0.
389
+ *
390
+ * Rules:
391
+ * 1. v99.0 can always be installed.
392
+ * - v77.0 can only be installed on encrypted Circulo 7 devices **after** v99.0.
393
+ * - v77.1 can only be installed on encrypted Circulo 9 devices **after** v99.0.
394
+ * 2. Versions v1.92 - v1.99 are unencrypted and **cannot** be installed on devices
395
+ * that already have encrypted firmware.
396
+ * 3. Encrypted firmware versions (>= v1.3) can only be installed on devices with
397
+ * encrypted firmware, and unencrypted versions can only be installed on devices
398
+ * with unencrypted firmware.
399
+ *
400
+ * @param deviceSerialNumber - The serial number of the device.
401
+ * @param deviceSmmFirmwareVersion - The current SMM firmware version of the device
402
+ * (number or semver string).
403
+ * @param targetSmmFirmwareVersion - The target SMM firmware version to install
404
+ * (number or semver string).
405
+ * @param force - If `true`, bypasses certain checks and forces the installation.
406
+ * @returns `true` if installation is allowed, `false` otherwise.
407
+ */
408
+ export declare function checkSmmFirmwareInstallationAllowed(deviceSerialNumber: string, deviceSmmFirmwareVersion: number | string, targetSmmFirmwareVersion: number | string, force?: boolean): boolean;
409
+ export declare const smmFirmwareSpecialVersions: number[];
410
+ export declare const smmFirmwareUnencryptedVersions: number[];
411
+ /**
412
+ * Extracts metadata from a given SMM firmware version, including whether it is a special
413
+ * version and whether it is encrypted.
414
+ *
415
+ * Internally, the firmware version is first encoded using `bitwiseEncodeSemverString`.
416
+ * The function then:
417
+ * 1. Checks if the version is considered "special" (currently v77.0, v77.1, or v99.0).
418
+ * 2. Determines if the firmware is encrypted based on version rules:
419
+ * - Versions >= 1.3 are encrypted.
420
+ * - Exceptions: versions v1.92 through v1.99 are not encrypted.
421
+ *
422
+ * @param firmwareVersion - The firmware version to analyze, provided as a number or string.
423
+ * @returns An object containing:
424
+ * - `version`: The encoded firmware version number.
425
+ * - `isSpecial`: `true` if the version is in the list of special versions.
426
+ * - `isEncrypted`: `true` if the version is considered encrypted according to the rules.
427
+ */
428
+ export declare function getInformationFromSmmFirmwareVersion(firmwareVersion: number | string): {
429
+ version: number;
430
+ isSpecial: boolean;
431
+ isEncrypted: boolean;
432
+ };
package/src/lib/smm.js CHANGED
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertGroupedSmmParametersToTransmitData = exports.getSafetyStatuswordBitNames = exports.getSafetyStatuswordBits = exports.safetyStatuswordBitsV2 = exports.safetyStatuswordBitsV1 = exports.smmOdV1DefaultValues = exports.getSmmParametersGroupNames = exports.packSmmSoftwareUpdateCrc = exports.packSmmValidationReport = exports.packSmmDate = exports.packSmmParameterValuesForVerification = exports.unpackSmmParameterValues = exports.packSmmParameterValues = exports.packSmmChangePassword = exports.packSmmCredentials = exports.calcSmmCRC32 = exports.buildSmmParametersPackFormat = exports.buildSmmParametersGroupPackFormats = exports.buildSmmParametersGroupBitmask = exports.resolveSmmOd = void 0;
3
+ exports.getInformationFromSmmFirmwareVersion = exports.smmFirmwareUnencryptedVersions = exports.smmFirmwareSpecialVersions = exports.checkSmmFirmwareInstallationAllowed = exports.bitwiseEncodeSemverString = exports.parseSmmBinaryHeaders = exports.convertGroupedSmmParametersToTransmitData = exports.getSafetyStatuswordBitNames = exports.getSafetyStatuswordBits = exports.safetyStatuswordBitsV2 = exports.safetyStatuswordBitsV1 = exports.smmOdV1DefaultValues = exports.getSmmParametersGroupNames = exports.packSmmSoftwareUpdateCrc = exports.packSmmValidationReport = exports.packSmmDate = exports.packSmmParameterValuesForVerification = exports.unpackSmmParameterValues = exports.packSmmParameterValues = exports.packSmmChangePassword = exports.packSmmCredentials = exports.calcSmmCRC32 = exports.buildSmmParametersPackFormat = exports.buildSmmParametersGroupPackFormats = exports.buildSmmParametersGroupBitmask = exports.resolveSmmOd = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const python_struct_1 = tslib_1.__importDefault(require("python-struct"));
6
5
  const buffer_1 = require("buffer");
6
+ const python_struct_1 = tslib_1.__importDefault(require("python-struct"));
7
+ const semver_1 = require("semver");
7
8
  const util_1 = require("./util");
8
9
  // https://docs.google.com/spreadsheets/d/1XYZro2vkAKeuZ2briHCR28taoAz2A7hq/edit?usp=sharing&ouid=110065739563604250219&rtpof=true&sd=true
9
10
  const smm_od_v1_json_1 = tslib_1.__importDefault(require("./smm-od-v1.json"));
10
- // https://docs.google.com/spreadsheets/d/1AXPrGyQgwAKc3Ue2-lp5kLwXXRhut86y/edit?usp=sharing&ouid=110065739563604250219&rtpof=true&sd=true
11
+ const product_1 = require("./product");
11
12
  const smm_od_v2_json_1 = tslib_1.__importDefault(require("./smm-od-v2.json"));
12
13
  /**
13
14
  * Resolves the appropriate SMM OD (Object Dictionary) version based on the provided parameter structure version.
@@ -528,4 +529,203 @@ function convertGroupedSmmParametersToTransmitData(obj) {
528
529
  return parameters.flat();
529
530
  }
530
531
  exports.convertGroupedSmmParametersToTransmitData = convertGroupedSmmParametersToTransmitData;
532
+ /**
533
+ * Parses the binary header of an SMM firmware image and extracts structured metadata.
534
+ *
535
+ * This function automatically detects and supports both LW1 and LW2 firmware header versions.
536
+ * It unpacks the corresponding fields and returns an object containing detailed header information,
537
+ * including hardware/software versions, header length, binary lengths, CRCs, and other custom fields.
538
+ *
539
+ * Header version detection:
540
+ * - LW1: header version < 1.0.0
541
+ * - LW2: header version >= 1.0.0
542
+ *
543
+ * Extracted fields include:
544
+ * - `headerVersion`: Encoded numeric header version.
545
+ * - `swVersion`: Encoded software version.
546
+ * - `lengthBinaryA` / `lengthBinaryB`: Lengths of the binary parts.
547
+ * - `crcA` / `crcB`: Checksums of the binary parts (hexadecimal string).
548
+ * - `headerVersionSemver` / `swVersionSemver`: Semantic version strings (used in OBLAC Drives UI).
549
+ *
550
+ * @param smmFirmwareBinary - Raw binary data of the SMM firmware as a `Uint8Array`.
551
+ * @returns An `SmmBinaryHeader` object containing the parsed header fields.
552
+ *
553
+ * @throws If the binary header cannot be parsed or is invalid.
554
+ */
555
+ function parseSmmBinaryHeaders(smmFirmwareBinary) {
556
+ const header = buffer_1.Buffer.from(smmFirmwareBinary.slice(0, 500));
557
+ const endianness = '<';
558
+ // LW2 fields
559
+ let headerVersionField = `${endianness}H`;
560
+ let customHeaderField = `${endianness}L10s16s174s`;
561
+ let headerField = `${endianness}IHIIII`;
562
+ let headerVersion = python_struct_1.default.unpack(headerVersionField, header)[0];
563
+ // LW1 field (header versions lower than 1.0.0)
564
+ if (headerVersion < 256) {
565
+ customHeaderField = `${endianness}L10s186s`;
566
+ }
567
+ const fields = `${headerVersionField}${customHeaderField}${headerField}`;
568
+ const data = python_struct_1.default.unpack(fields, header);
569
+ const headerVersionSemver = [(headerVersion >> 8) & 0xff, headerVersion & 0xff, 0].join('.');
570
+ if ((0, semver_1.lt)(headerVersionSemver, '1.0.0')) {
571
+ // LW1 firmware
572
+ const swVersion = data[5];
573
+ const swVersionSemver = [(swVersion >> 8) & 0xff, swVersion & 0xff, 0].join('.');
574
+ const crcA = data[8];
575
+ const crcB = data[9];
576
+ return {
577
+ headerVersion,
578
+ swVersion,
579
+ lengthBinaryA: data[6],
580
+ lengthBinaryB: data[7],
581
+ crcA,
582
+ crcB,
583
+ // OBLAC Drives UI only
584
+ headerVersionSemver,
585
+ swVersionSemver,
586
+ };
587
+ }
588
+ else {
589
+ // LW2 firmware
590
+ const swVersion = data[6];
591
+ const swVersionSemver = [(swVersion >> 8) & 0xff, swVersion & 0xff, 0].join('.');
592
+ const crcA = data[9];
593
+ const crcB = data[10];
594
+ return {
595
+ headerVersion,
596
+ swVersion,
597
+ lengthBinaryA: data[7],
598
+ lengthBinaryB: data[8],
599
+ crcA,
600
+ crcB,
601
+ // OBLAC Drives UI only
602
+ headerVersionSemver,
603
+ swVersionSemver,
604
+ };
605
+ }
606
+ }
607
+ exports.parseSmmBinaryHeaders = parseSmmBinaryHeaders;
608
+ /**
609
+ * Encodes a semantic version string or number into a single number using bitwise operations.
610
+ * The encoding packs the major version in the high byte and the minor version in the low byte:
611
+ *
612
+ * encoded = (major << 8) | minor
613
+ *
614
+ * Examples:
615
+ * '1.3' => 0x0103 (259)
616
+ * '77.0' => 0x4d00 (19712)
617
+ *
618
+ * @param semver - Semantic version as a string (e.g., "1.3") or a numeric code.
619
+ * @returns Bitwise encoded version as a number. Returns 0 if parsing fails.
620
+ */
621
+ function bitwiseEncodeSemverString(semver) {
622
+ if (typeof semver === 'string') {
623
+ const version = (0, semver_1.parse)(semver);
624
+ return version ? (version.major << 8) | (version.minor & 0xff) : 0;
625
+ }
626
+ return semver !== null && semver !== void 0 ? semver : 0;
627
+ }
628
+ exports.bitwiseEncodeSemverString = bitwiseEncodeSemverString;
629
+ /**
630
+ * Determines whether a target SMM firmware version can be installed on a device,
631
+ * based on the device's serial number, its current firmware version, and the target version.
632
+ *
633
+ * Certain SMM firmware versions have special rules:
634
+ * - Versions v77.0, v77.1, and v99.0 are intentionally numbered high to avoid confusion
635
+ * with versions 0.77.0, 0.77.1, and 0.99.0.
636
+ *
637
+ * Rules:
638
+ * 1. v99.0 can always be installed.
639
+ * - v77.0 can only be installed on encrypted Circulo 7 devices **after** v99.0.
640
+ * - v77.1 can only be installed on encrypted Circulo 9 devices **after** v99.0.
641
+ * 2. Versions v1.92 - v1.99 are unencrypted and **cannot** be installed on devices
642
+ * that already have encrypted firmware.
643
+ * 3. Encrypted firmware versions (>= v1.3) can only be installed on devices with
644
+ * encrypted firmware, and unencrypted versions can only be installed on devices
645
+ * with unencrypted firmware.
646
+ *
647
+ * @param deviceSerialNumber - The serial number of the device.
648
+ * @param deviceSmmFirmwareVersion - The current SMM firmware version of the device
649
+ * (number or semver string).
650
+ * @param targetSmmFirmwareVersion - The target SMM firmware version to install
651
+ * (number or semver string).
652
+ * @param force - If `true`, bypasses certain checks and forces the installation.
653
+ * @returns `true` if installation is allowed, `false` otherwise.
654
+ */
655
+ function checkSmmFirmwareInstallationAllowed(deviceSerialNumber, deviceSmmFirmwareVersion, targetSmmFirmwareVersion, force = false) {
656
+ var _a;
657
+ const productGroup = (_a = (0, product_1.findSomanetProductById)(deviceSerialNumber)) === null || _a === void 0 ? void 0 : _a.group;
658
+ const deviceSmmVersionInfo = getInformationFromSmmFirmwareVersion(deviceSmmFirmwareVersion);
659
+ const binarySmmVersionInfo = getInformationFromSmmFirmwareVersion(targetSmmFirmwareVersion);
660
+ // Device has v99.0 installed
661
+ if (deviceSmmVersionInfo.version === 25344) {
662
+ // v77.0
663
+ if (binarySmmVersionInfo.version === 19712) {
664
+ return productGroup === 'Circulo 7';
665
+ }
666
+ // v77.1
667
+ if (binarySmmVersionInfo.version === 19713) {
668
+ return productGroup === 'Circulo 9';
669
+ }
670
+ // Allow only encrypted binaries to be installed, unless it's forced
671
+ return binarySmmVersionInfo.isEncrypted || force;
672
+ }
673
+ // Device has v77.0 installed
674
+ if (deviceSmmVersionInfo.version === 19712) {
675
+ return productGroup === 'Circulo 7' && binarySmmVersionInfo.isEncrypted;
676
+ }
677
+ // Device has v77.1 installed
678
+ if (deviceSmmVersionInfo.version === 19713) {
679
+ return productGroup === 'Circulo 9' && binarySmmVersionInfo.isEncrypted;
680
+ }
681
+ // Target is v99.0
682
+ if (binarySmmVersionInfo.version === 25344) {
683
+ return true;
684
+ }
685
+ // Target is v77.0
686
+ if (binarySmmVersionInfo.version === 19712) {
687
+ return false;
688
+ }
689
+ // Target is v77.1
690
+ if (binarySmmVersionInfo.version === 19713) {
691
+ return false;
692
+ }
693
+ // Target is v1.92 - v1.99 (unencrypted)
694
+ if (exports.smmFirmwareUnencryptedVersions.includes(binarySmmVersionInfo.version)) {
695
+ return !deviceSmmVersionInfo.isEncrypted;
696
+ }
697
+ // All other versions: encrypted can only go on encrypted, unencrypted on unencrypted
698
+ return ((deviceSmmVersionInfo.isEncrypted && binarySmmVersionInfo.isEncrypted) ||
699
+ (!deviceSmmVersionInfo.isEncrypted && !binarySmmVersionInfo.isEncrypted));
700
+ }
701
+ exports.checkSmmFirmwareInstallationAllowed = checkSmmFirmwareInstallationAllowed;
702
+ // Special SMM firmware versions: v77.0, v77.1, and v99.0
703
+ exports.smmFirmwareSpecialVersions = [19712, 19713, 25344];
704
+ // Firmware versions that are *not encrypted*.
705
+ // Generally, versions >= 1.3 are encrypted, except for v1.92 - v1.99 and v99.0.
706
+ exports.smmFirmwareUnencryptedVersions = [348, 349, 350, 351, 352, 353, 354, 355, 25344];
707
+ /**
708
+ * Extracts metadata from a given SMM firmware version, including whether it is a special
709
+ * version and whether it is encrypted.
710
+ *
711
+ * Internally, the firmware version is first encoded using `bitwiseEncodeSemverString`.
712
+ * The function then:
713
+ * 1. Checks if the version is considered "special" (currently v77.0, v77.1, or v99.0).
714
+ * 2. Determines if the firmware is encrypted based on version rules:
715
+ * - Versions >= 1.3 are encrypted.
716
+ * - Exceptions: versions v1.92 through v1.99 are not encrypted.
717
+ *
718
+ * @param firmwareVersion - The firmware version to analyze, provided as a number or string.
719
+ * @returns An object containing:
720
+ * - `version`: The encoded firmware version number.
721
+ * - `isSpecial`: `true` if the version is in the list of special versions.
722
+ * - `isEncrypted`: `true` if the version is considered encrypted according to the rules.
723
+ */
724
+ function getInformationFromSmmFirmwareVersion(firmwareVersion) {
725
+ const version = bitwiseEncodeSemverString(firmwareVersion);
726
+ const isSpecial = exports.smmFirmwareSpecialVersions.includes(version);
727
+ const isEncrypted = version >= 259 && !exports.smmFirmwareUnencryptedVersions.includes(version);
728
+ return { version, isSpecial, isEncrypted };
729
+ }
730
+ exports.getInformationFromSmmFirmwareVersion = getInformationFromSmmFirmwareVersion;
531
731
  //# sourceMappingURL=smm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smm.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/smm.ts"],"names":[],"mappings":"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AU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE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"}
1
+ {"version":3,"file":"smm.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/smm.ts"],"names":[],"mappings":"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,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;QAC1G,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;KAC/C,CAAC;IAEF,IAAI,GAAG,GAAG,OAAO,CAAC;IAElB,IAAI,MAAc,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1C,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;KACpD;IAED,OAAO,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AA1CD,oCA0CC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IACnE,OAAO,uBAAY,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAFD,gDAEC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CAAC,WAAmB,EAAE,WAAmB;IAC5E,OAAO,uBAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC;AAFD,sDAEC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,sBAAsB,CAAC,MAAkB,EAAE,4BAAoC,MAAM;IACnG,MAAM,UAAU,GAAG,4BAA4B,CAAC,yBAAyB,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,uBAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE3D,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,uBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,eAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAExD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC1D,CAAC;AAVD,wDAUC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,wBAAwB,CAAC,MAAkB,EAAE,4BAAoC,MAAM;IACrG,MAAM,UAAU,GAAG,4BAA4B,CAAC,yBAAyB,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,uBAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAJD,4DAIC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qCAAqC,CACnD,MAAkB,EAClB,UAAkB,EAClB,4BAAoC,MAAM;IAE1C,MAAM,WAAW,GAAG,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,uBAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAG,8BAA8B,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;IAE5F,MAAM,cAAc,GAAG,IAAA,uBAAgB,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,uBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE1D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC;AAlBD,sFAkBC;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAC,IAAU;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,uBAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3F,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,kCAYC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,uBAAuB,CAAC,OAAmB,EAAE,IAAU,EAAE,QAAgB,EAAE,QAAgB;IACzG,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,uBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEpE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AACtC,CAAC;AAXD,0DAWC;AAED;;;;;;;;;GASG;AACH,SAAgB,wBAAwB,CAAC,GAAW;IAClD,OAAO,uBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAFD,4DAEC;AAED;;;;;;;;;GASG;AACH,SAAgB,0BAA0B,CAAC,4BAAoC,MAAM;IACnF,MAAM,KAAK,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC,CAAC,CAAC,wBAAO,CAAC,CAAC,CAAC,wBAAO,CAAU,CAAC;IAEhF,MAAM,QAAQ,GAAG,IAAA,oBAAa,EAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AALD,gEAKC;AAEY,QAAA,oBAAoB,GAAG,wBAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;AAuDvH;;;;GAIG;AACU,QAAA,sBAAsB,GAA0B;IAC3D,SAAS;IACT,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,EAAE;IACzC,SAAS;IACT,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,SAAS;IACT,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,SAAS;IACT,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM;CACnE,CAAC;AAEF;;;;GAIG;AACU,QAAA,sBAAsB,GAA0B;IAC3D,SAAS;IACT,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,EAAE;IACzC,SAAS;IACT,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC9C,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAChE,SAAS;IACT,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxD,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACzD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACjD,SAAS;IACT,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM;CACnE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CAAC,4BAAoC,MAAM;IAChF,OAAO,CACL,yBAAyB,GAAG,MAAM,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,CAAC,8BAAsB,CAC5D,CAAC;AAC7B,CAAC;AAJD,0DAIC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,2BAA2B,CAAC,4BAAoC,MAAM;IACpF,OAAO,uBAAuB,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;;QAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACnB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACrB;QACD,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAA,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,mCAAI,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AATD,kEASC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAgB,yCAAyC,CAAI,GAA2B;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D,IAAI,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnD,MAAM,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACvC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D;KACF;IAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAtBD,8FAsBC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,qBAAqB,CAAC,iBAA6B;IACjE,MAAM,MAAM,GAAG,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,GAAG,CAAC;IACvB,aAAa;IACb,IAAI,kBAAkB,GAAG,GAAG,UAAU,GAAG,CAAC;IAC1C,IAAI,iBAAiB,GAAG,GAAG,UAAU,aAAa,CAAC;IACnD,IAAI,WAAW,GAAG,GAAG,UAAU,QAAQ,CAAC;IAExC,IAAI,aAAa,GAAG,uBAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAW,CAAC;IAEjF,+CAA+C;IAC/C,IAAI,aAAa,GAAG,GAAG,EAAE;QACvB,iBAAiB,GAAG,GAAG,UAAU,UAAU,CAAC;KAC7C;IAED,MAAM,MAAM,GAAG,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,WAAW,EAAE,CAAC;IAEzE,MAAM,IAAI,GAAG,uBAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAA0B,CAAC;IAE1E,MAAM,mBAAmB,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7F,IAAI,IAAA,WAAE,EAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE;QACpC,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACpC,MAAM,eAAe,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC/B,OAAO;YACL,aAAa;YACb,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtB,IAAI;YACJ,IAAI;YACJ,uBAAuB;YACvB,mBAAmB;YACnB,eAAe;SACG,CAAC;KACtB;SAAM;QACL,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QACpC,MAAM,eAAe,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAW,CAAC;QAChC,OAAO;YACL,aAAa;YACb,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtB,IAAI;YACJ,IAAI;YACJ,uBAAuB;YACvB,mBAAmB;YACnB,eAAe;SACG,CAAC;KACtB;AACH,CAAC;AAxDD,sDAwDC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,yBAAyB,CAAC,MAAuB;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAA,cAAK,EAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;AACrB,CAAC;AAPD,8DAOC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,mCAAmC,CACjD,kBAA0B,EAC1B,wBAAyC,EACzC,wBAAyC,EACzC,KAAK,GAAG,KAAK;;IAEb,MAAM,YAAY,GAAG,MAAA,IAAA,gCAAsB,EAAC,kBAAkB,CAAC,0CAAE,KAAK,CAAC;IACvE,MAAM,oBAAoB,GAAG,oCAAoC,CAAC,wBAAwB,CAAC,CAAC;IAC5F,MAAM,oBAAoB,GAAG,oCAAoC,CAAC,wBAAwB,CAAC,CAAC;IAE5F,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,QAAQ;QACR,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1C,OAAO,YAAY,KAAK,WAAW,CAAC;SACrC;QAED,QAAQ;QACR,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1C,OAAO,YAAY,KAAK,WAAW,CAAC;SACrC;QAED,oEAAoE;QACpE,OAAO,oBAAoB,CAAC,WAAW,IAAI,KAAK,CAAC;KAClD;IAED,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,OAAO,YAAY,KAAK,WAAW,IAAI,oBAAoB,CAAC,WAAW,CAAC;KACzE;IAED,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,OAAO,YAAY,KAAK,WAAW,IAAI,oBAAoB,CAAC,WAAW,CAAC;KACzE;IAED,kBAAkB;IAClB,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,OAAO,IAAI,CAAC;KACb;IAED,kBAAkB;IAClB,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,OAAO,KAAK,CAAC;KACd;IAED,kBAAkB;IAClB,IAAI,oBAAoB,CAAC,OAAO,KAAK,KAAK,EAAE;QAC1C,OAAO,KAAK,CAAC;KACd;IAED,wCAAwC;IACxC,IAAI,sCAA8B,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE;QACzE,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC;KAC1C;IAED,qFAAqF;IACrF,OAAO,CACL,CAAC,oBAAoB,CAAC,WAAW,IAAI,oBAAoB,CAAC,WAAW,CAAC;QACtE,CAAC,CAAC,oBAAoB,CAAC,WAAW,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CACzE,CAAC;AACJ,CAAC;AA7DD,kFA6DC;AAED,yDAAyD;AAC5C,QAAA,0BAA0B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEhE,8CAA8C;AAC9C,gFAAgF;AACnE,QAAA,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAE9F;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,oCAAoC,CAAC,eAAgC;IACnF,MAAM,OAAO,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,kCAA0B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,IAAI,GAAG,IAAI,CAAC,sCAA8B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AALD,oFAKC"}
@@ -492,3 +492,62 @@ export type NotchFilter = {
492
492
  rejectionBand: number;
493
493
  depth: number;
494
494
  };
495
+ /**
496
+ * Represents structured metadata extracted from an unpacked SMM firmware binary header.
497
+ *
498
+ * This type includes both raw header fields and derived data, such as semantic version
499
+ * strings for use in the OBLAC Drives UI. Some fields (e.g., encrypter initialization vectors)
500
+ * are only present in LW2 firmware headers.
501
+ */
502
+ export type SmmBinaryHeader = {
503
+ /** Encoded numeric header version. */
504
+ headerVersion: number;
505
+ /**
506
+ * Software version (encoded as a number).
507
+ * Can be converted to a semantic version string using `swVersionSemver`.
508
+ */
509
+ swVersion: number;
510
+ /** Length of binary part A in bytes. */
511
+ lengthBinaryA: number;
512
+ /** Length of binary part B in bytes. */
513
+ lengthBinaryB: number;
514
+ /** CRC checksum of binary part A. */
515
+ crcA: number;
516
+ /** CRC checksum of binary part B. */
517
+ crcB: number;
518
+ /** Header version as a semantic version string (used in OBLAC Drives UI). */
519
+ headerVersionSemver: string;
520
+ /** Software version as a semantic version string (used in OBLAC Drives UI). */
521
+ swVersionSemver: string;
522
+ };
523
+ /**
524
+ * Represents the unpacked raw values from an SMM firmware binary header.
525
+ *
526
+ * This type captures both LW1 and LW2 header formats as tuples, with fields in the
527
+ * order returned by `PythonStruct.unpack`. Each element corresponds to a specific
528
+ * header field.
529
+ */
530
+ export type SmmBinaryHeaderValues = [
531
+ headerVersion: string,
532
+ validHwVersionEntries: number,
533
+ someField: number,
534
+ validHwVersions: string,
535
+ encrypterInitializationVectors: string,
536
+ swVersion: number,
537
+ reserved: string,
538
+ lengthBinaryA: number,
539
+ lengthBinaryB: number,
540
+ crcA: number,
541
+ crcB: number
542
+ ] | [
543
+ headerVersion: string,
544
+ validHwVersionEntries: number,
545
+ someField: number,
546
+ validHwVersions: string,
547
+ swVersion: number,
548
+ reserved: string,
549
+ lengthBinaryA: number,
550
+ lengthBinaryB: number,
551
+ crcA: number,
552
+ crcB: number
553
+ ];